이 게시글을 보고 있는 사람이라면,
저희와 비슷한 상황이 생겼거나, 도움이 필요하신 분이라 생각합니다.
그래서 결론부터 작성하고 포스팅 시작하겠습니다.
본인 과실이 없다면 99.9999% 환불 받을 수 있습니다.
제일 중요한 건 언어가 통하지 않는다고 멘붕하지 않고 침착하게 해결하려는 자세입니다.
타 커뮤니티에서 3억이 과금되어 6천만원은 자부담 했다는 내용이 있긴 하지만,
첫 1회에 한하여 본인 과실이 없을 경우 AWS는 재량껏 환불해주고 있습니다.
시간과 타이밍이 금입니다. 하루라도 빨리 AWS Support 팀에게 해킹 사실을 알리고 case를 urgent로 개설하세요.
나와 내 짝꿍은 한국 VS 포르투갈의 경기를 보기 위해 늦은 시간까지 안자고 버티고 있었다.
강팀 포르투갈과 경기에서 이겨야만 16강에 올라간다는 두려움과 혹시나 하는 희망을 품고 있을 무렵.
핸드폰으로 구글메일 알람이 울렸다.
카드사에서 온 메일처럼 보였으나 처음엔 결제금액이 말도 안되는 금액이라 흔한 피싱이겠거니 생각했었다.
그런데 짝꿍 핸드폰으로 결제가 승인되었다는 카드사 알림까지 띠링! 울리는 순간
축구로 가득찼던 기대는 사라져버리고, 온몸의 신경이 결제 메일로 향했다.
정신차리고 결제내역을 보니 AWS에서 결제가 된 것이었다.
내 AWS 계정에 짝꿍 카드를 등록한 적이 없는데… 왜 결제가 된걸까?
알고보니 짝꿍이 2022년 1월에 AWS 관련 교육을 나와 함께 들으면서 카드를 등록 해놓고 계정을 방치해 놓았던 것.
짝꿍이 교육 당시 만들었던 계정으로 로그인을 시도하는데 로그인이 되질 않는다.
AWS 가입 당시 구글메일로 왔던 인증메일 같은게 있나 메일함을 구석구석 찾아보았다.
네…?
저희는 AWS 계정을 바꾼 적이 없는데요?
며칠 전인 11월 28일에 누군가 내 짝꿍의 AWS 계정을 해킹해서 접속 계정 주소를 변경해버렸다.
짝꿍은 개발도 안하고 github이나 cloud 등에 aws 관련 정보를 업로드 한 적도 없다.
어떻게 해킹한거지?(아직까지도 모름)
과금이 된 계정은 이미 해킹당해서 접속을 할 수가 없어 내 계정으로 로그인해서 Support(고객센터)에서 create case(1:1 문의와 비슷한 서비스)를 했다.(지인 계정이 없다면 로그인 없이도 create case를 할 수도 있다.)
전반적인 내용은,
💡 난 AWS 교육을 위해 올해 초에 계정을 생성하고 카드를 등록했어. 그 이후에 개발은 커녕 AWS 계정에 로그인한 적도 없는데 부당한 과금이 발생했어. 그리고 메일을 확인해보니 누군가 내 계정을 임의로 변경해버렸어. 아마 해킹당한 것 같아. 나는 이 부당한 청구에 대해서 지불할 수가 없어. 나는 한국의 서울에 살고 있고, 너희가 내 로그인 기록을 볼 수 있을거라고 생각해.부탁해. 나는 나의 계정을 되찾고 싶고, 부당한 요금을 내지 않을 방법이 필요해.
나는 한국의 서울에 살고 있고, 너희가 내 로그인 기록을 볼 수 있을거라고 생각해.
좀 도와줘. 답장 기다릴게.
이러했다.
첫번째 국가번호를 쓰는 나라에서 국제전화가 걸려왔다.
현재 너의 case가 개설되었고,
이 문제를 해결하기 위해 우리 아마존은 널 무조건적으로 도울거야.
준비됐어?
오늘이 주말이라 주말 지나고 월요일이 되면 진행상황을 보고해줄게.
라는 내용의 전화 통화였다.
Obrigado!, 호날두!
아마존의 일처리 속도는 어마어마했다.
물론 한국은 화요일 새벽이었지만, 미국의 영업시간이 되자마자 메일 한통이 왔다.
고갱님!
메일 복구 해드렸는데요?
로그인 한번 해보시지요!
복구된 계정은 이전에 짝꿍이 사용하던 구글 계정이었다.
로그인을 하고 Support에 가보니 이미 case가 개설되어 있었다.
대략적인 내용은,
고갱님… 아이디에서 비정상적인 행동들이 보여요!
해킹당한 거 아니면 확인 좀요….
라는 내용!
하지만 내 짝꿍은 이미 11월 28일에 AWS 계정을 해킹 당했으니까,
저 case와 메일을 받을 수가 없었다.(해커의 완전범죄)
Support를 보니 11월 28일에 개설되었던 위의 case 외에도
계정이 복구된 날짜에 새롭게 개설된 case가 하나 더 있었다.
내 짝꿍과 같이 AWS 해킹으로 인해 고통 받는 사람들 위해 전문을 이미지가 아니라 텍스트 원문으로 공유하고자 한다.
Hi there,
Thank you for reaching back regarding your account's security alert.
Please know that once we detect any exposed access key or credential, our internal service team place a flag on the account, we will need to establish a protocol that must be followed to consider the account fully secured and sanitized again.
As soon as we confirm that the account is secured and fully sanitized, we'll reach our billing team to review the unauthorized charges generated during the compromise event.
To complete sanitizing your account, please follow the steps below:
Step 1: Terminate Cloudwatch Resources
Logs:
1. Access the Cloudwatch logs console here:
https://eu-central-1.console.aws.amazon.com/cloudwatch/home?region=eu-central-1#logsV2:log-groups
2. Select the Log group, and then choose Actions, Delete.
3. When prompted for confirmation, choose Yes, Delete. Repeat for all unauthorized logs.
4. Make sure to check region by region and terminate all those unauthorized.
Step 2: Terminate Elemental MediaLive Resources
Channels:
1. Open the MediaLive console at
https://eu-central-1.console.aws.amazon.com/medialive/home?region=eu-central-1#!/welcome
2. On the Channels page, choose the option by the channel name.
3. If the channel is running, choose Stop.
4. Choose Delete.
5. Make sure to check region by region and terminate all those unauthorized.
Inputs:
1. Open the MediaLive console at
https://eu-central-1.console.aws.amazon.com/medialive/home?region=eu-central-1#!/welcome
2. In the navigation pane, choose Inputs.
3. On the Inputs page, find the input that you want to delete, and then look at the State column.
4. If the state is Detached, then choose Delete.
5. Make sure to check region by region and terminate all those unauthorized.
Input security group:
1. Open the MediaLive console at
https://console.aws.amazon.com/medialive/
2. In the navigation pane, choose Input security groups.
3. On the Input security groups page, look at the State for the group to delete:
4. If the State is Idle, choose the group, and then choose Delete.
5. If the State is In use, continue with this procedure.
6. Make a note of the ID of the input security group. For example, 1234567.
7. Choose the group, and then choose Edit.
8. On the Edit input security group page, look at the Inputs on the right side and count how many inputs are attached to this input security group.
9. Choose the first input. Then on the page for that input, choose Edit. On the Edit page, in the Input security group, either create a new input security group for this input or choose another group (make sure you don't rechoose the same group; check the ID that you noted earlier). Choose Update so that this input is no longer attached to the input security group that you want to delete.
If there are still more inputs associated with this input group, then in the navigation pane, choose Input security groups, and repeat these steps to detach this input security group from all the inputs.
10. After detaching the last input from this input security group, wait for the State of the input security group to specify Idle. Then choose the group, and choose Delete.
Step 3: Terminate S3 Resources
1. Sign in to the AWS Management Console and open the Amazon S3 console at
https://console.aws.amazon.com/s3/
2. In the Buckets list, select the option next to the name of the bucket that you want to delete, and then choose Delete at the top of the page.
3. On the Delete bucket page, confirm that you want to delete the bucket by entering the bucket name into the text field, and then choose Delete bucket.
Note:
If the bucket contains any objects, empty the bucket before deleting it by selecting the empty bucket configuration link in the This bucket is not empty error alert and following the instructions on the Empty bucket page. Then return to the Delete bucket page and delete the bucket.
4. To verify that you've deleted the bucket, open the Buckets list and enter the name of the bucket that you deleted. If the bucket can't be found, your deletion was successful.
Once you complete the steps above, please reply to this case with your confirmation.
I look forward to hear back from you!
We value your feedback. Please share your experience by rating this and other correspondences in the AWS Support Center. You can rate a correspondence by selecting the stars in the top right corner of the correspondence.
Best regards,
Nicole U.
Amazon Web Services
너무나도 친절하신 우리의 AWS 니콜님… ㅠㅠ
이슈 해결하는 내내 정말 큰 도움 받았다.
위의 내용을 요약하자면,
고갱님! 너, 계정 해킹 당한 것 같은 느낌적인 느낌이 들어.
그러니까 우리가 도와줄게. 시키는대로만 해줘. 그럼 부당요금은 환불해줄 수도 있어!
해커가 고갱님 계정으로 이거저거 많이 사용했는데,
그 흔적들부터 지워보자고!
첫번째, Cloudwatch 리소스 종료
두번째, MediaLive 리소스 종료
세번째, S3 리소스 종료
이거 전부다 하고나서 다시 Reply 해줘!
라는 내용이었다.
해커가 사용한 서비스들을 보니, 우리돈으로 코인 채굴했네…
위의 Step 1~2번은 모두 종료했는데,
S3는 짧은 시간동안 말도 안되는 트래픽이 발생하다보니,
콘솔에 접근이 안되도록 밴이 되어 있었다.
다시 한 번, 니콜에게 S3 콘솔에 접근이 안되어서
너가 나에게 요청한 Step3를 못하고 있다고 reply를 하니
아래와 같은 답장이 왔다.
안녕하세요…?
저는 니콜 친구 셀레나인데욥…
니콜이 휴가 갔어요…ㅎ…!
그치만 걱정 마세요!
저 셀레나가 있잖아요???
지금 관련 팀에서 왜 S3에 접근이 안되는지 문제 파악중이니까 곧 해결해준대요~
라는 내용이었다.
하루만에 복귀한 우리의 니콜느님…!
이제 S3 콘솔에 접근을 할 수 있는 상태가 되었으니,
해커가 만들어놓은 버킷을 지우라는 내용이었다.
해커가 만든 버킷을 확인하러 들어갔는데,
프랑크푸르트에 사는 해커인지는 모르겠으나,
괜히 독일이 미워졌다.
look-who-we-are
정말 재수 없는 버킷명(내 눈 앞에 나타나기만 해봐라^^;;;;)
버킷을 모두 지우고 니콜에게 보고를 했다.
니콜에게서 또 한 번의 답장이 왔다.
Hi there,
Thank you for taking the required steps to secure your account.
All restrictions on your account have been removed.
Our billing adjustments team will review charges for the usage that you didn't authorize. Before they can do so, you must take the following steps to help prevent similar issues from reoccurring:
1. Set up at least two of the following services to monitor cost and usage:
- Budgets:
https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html
- CloudWatch:
- CloudTrail:
https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html
-Trusted Advisor:
https://docs.aws.amazon.com/awssupport/latest/user/get-started-with-aws-trusted-advisor.html
Should you have web facing resources or APIs in your account, you may wish to consider AWS WAF which can provide protection for your workloads against well-known attack types.
Please see the WAF documentation for usage and pricing:
https://docs.aws.amazon.com/waf/latest/developerguide/getting-started.html
https://aws.amazon.com/waf/pricing/
For more information about managing your AWS cost and usage, see the following:
https://docs.aws.amazon.com/cost-management/latest/userguide/what-is-costmanagement.html
- Respond to the support case and confirm which two cost and usage monitoring services you have set up.
- We request you to enable Cost Explorer as it would help us to review the charges. To turn on Cost Explorer, follow the steps here:
https://docs.aws.amazon.com/cost-management/latest/userguide/ce-enable.html
If you don't set up preventative measures, then note the following:
We can't submit a request to review a bill adjustment for December.
If this issue occurs again, then we can't submit a request to review future bills.
As a reminder, you should regularly review the AWS Customer Agreement and AWS Shared Responsibility Model to make sure that you understand the agreements and responsibilities that are involved in your use of the Service Offerings. For more information, see the following:
- Customer Agreement:
https://aws.amazon.com/agreement/
- Shared Responsibility Model:
https://aws.amazon.com/compliance/shared-responsibility-model/
I look forwatd to hear back from you!
We value your feedback. Please share your experience by rating this and other correspondences in the AWS Support Center. You can rate a correspondence by selecting the stars in the top right corner of the correspondence.
Best regards,
Nicole U.
Amazon Web Services
내용인즉,
안녕하세요!
저 니콜인데요~
해커 흔적은 다 지우신 것 같네용!
또 다시 해킹 당하면 그땐 저희가 못도와드리니까…
계정 보안 설정 좀 같이 해봐요 우리~
Budgets, CloudWatch, CloudTrail 등등
AWS에서 제공하는 여러 보안 서비스들이 있는데요~
이거 한번 설정해보세요! 두개 이상 하셔야 합니다!
라는 내용이었다.
나는 전부 다 설정했다.
관련 가이드와 매뉴얼 링크를 함께 보내줘서 쉽게 설정할 수 있었다.
설정을 모두 끝마치고 니콜에게 또 보고하니 하루가 갔다.
그 다음 날 니콜에게 걱정 마라,
우리의 빌링 팀에서 너의 case를 계속해서 파악하고 있고 도와주려 하고 있다!
라는 내용의 답장이 왔었다.
미국은 토요일.
영업 안합니다요~
미국은 일요일.
영업 안합니다요~
드디어 미국 사람들이 일하는 시간!
Hello,
Thank you for your patience while we worked with our billing team to review the unauthorized charges in your account.
As part of the AWS Customer Agreement, customers are responsible for all activities that occur under their accounts. This includes all applicable fees and charges for use of AWS services.
- As a one-time exception, we’ve issued a refund of $5,619.11 USD for charges on your November bill.
The refund is returned to the card or bank account that you used to pay the bill. The refund can take up to 7 business days to appear. Because processing times vary by bank, we can’t tell you the date that you can expect the refund to appear.
You can confirm the refund in your Billing console:
https://console.aws.amazon.com/billing/home#/paymenthistory- We’ve also approved a credit of $610.31 USD. This credit has been applied it to your AWS account for the month of December. The credit automatically absorbs any service charges that it applies to. Because the credit reduces your service charges, you will see an update to the total tax amount.
You can see the credit that we applied in your console:
https://console.aws.amazon.com/billing/home#/credits
To view your bill for the current month, see:
https://console.aws.amazon.com/billing/home#/bills
The Billing console can take up to 48 hours to show the updated bill and tax total.
For your convenience, I have resolved this case. No further action is required on your part.
We value your feedback. Please share your experience by rating this and other correspondences in the AWS Support Center. You can rate a correspondence by selecting the stars in the top right corner of the correspondence.
Best regards,
Nicole U.
Amazon Web Services
드디어 니콜에게서 답장이 왔다. 최종 해결 보고였다.
너무 행복하니까 전문을 공개한다.
내용인즉,
가입할 때, 고객 약관에 따르면 원래 너가 모든 비용을 내야하는 게 맞지만,
이번 한번만 특별하게 5619달러는 환불해줄게.
그리고 이번달에 추가적으로 청구될 610달러는 AWS 크레딧을 지급해줄테니 그걸로 내도록 해.
대신 수수료나 세금은 너가 내!(약 60달러)
글을 쓰고 있는 지금.
사건이 접수되고 총 10일만에 모든게 해결되었다.
다른 블로그나 커뮤니티에서는 최소 30일에서 최장 60일까지도 걸렸다고 하던데
AWS 측에서 시키는거 바로하고, 즉각 보고하니 휴무일 4일 제외하면 일주일도 채 안걸렸다.
이글은 AWS를 사용하는 모든 사용자에게 발생할 수 있는 사건이기 때문에,
이렇게 글로 남겨 모두에게 공유하고자 한다.
무엇보다도 해킹을 당하지 않으려면
깃헙이나 여타 커뮤니티 등에 자신의 AWS 계정에 접근할 수 있는 코드나 정보를 남기지 않아야 한다.
그리고 MFA(2차 인증) 설정을 통해 계정 보안을 강화해야 한다.
짝꿍 계정이 해킹당한 탓에 약 열흘간 맘졸였지만,
큰 교육과 교훈이 된 것 같다.
데이터베이스, 클라우드 해킹은 개인의 신용정보 도용으로도 이어질 수 있는만큼
앞으로 더 보안에 힘써야 할 것 같다.
AWS 해킹으로 인해 깊은 우울감이나, 멘붕이 오신 분들, 도움이 필요하신 분들이 계시다면
dev.zzame@gmail.com으로 언제든지 메일 주세요.
기꺼이 도와드리겠습니다.
안녕하세요~ 글 잘봤습니다^^ 저도 며칠전에 260만원 당해서 현재 구제절차 진행중이네요 ㅠ 앞으로 올 연락이 두려운데 미치겠습니다..