이전에 AWS 계정에서 비용이 청구되었다는 글을 포스팅한 적이 있다. 이때까지만 해도 별일 아닌줄 알고 그냥 넘겼는데, 이게 웬걸.... 갑자기 46만원이 청구되었다😭😭😭 너무 놀라서 계정을 확인해보니 정말 46만원이 청구되어 있는 상태였다... 무슨 일인가 내역을 확인했더니 내가 전혀 사용한 적이 없는 서비스들에 대해서 금액이 청구되어 있는 상태였다. 그러다 문득 전에 비용이 청구되었을 때 이메일 계정이 바뀌었었다는 것이 생각났다. 이를 바탕으로 구글링을 해보았는데 해킹을 당한 것이 아닐까하는 생각이 들었다. 그때가 밤 10시였는데 밤 늦게 부랴부랴 AWS Support를 통해서 해당 이슈에 대해 채팅했다. 실시간으로 채팅할 수 있는 기능이 있어서 종말 다행인 것 같다...
상담 내용은 대강 갑자기 금액이 너무 많이 청구되었다. 해킹을 당한 것 같은데 확인 부탁드린다 같은 내용이었다. 아무래도 이 모든 과정을 영어로 해야하다보니 커뮤니케이션이 굉장히 느렸다. (아마 상담해주시는 분이 많이 답답했을거 같다...) 약 1시간의 상담 끝에 우선 보안팀에 연락해놓을테니 걱정하지 말고 기다리기로 하였다. 상담사 분이 정말 친철하셔서 뭔가 굉장한 믿음이 갔다. 그 뒤부터는 실시간 채팅이 아니라 AWS 내 메일로 컨택을 해야해서 과정이 조금 느렸던 거 같다. 지금 살펴보니 거의 한달동안이나 AWS 측과 상담을 해야했다.(절대 해킹당하면 안되는 이유...😂) 내 계정에 대해 확인해야 할 것도 많았고 나도 중간에 조금 바빠서 메일 확인을 못했더니 더 지연된 거 같다.
결론적으로 얘기하면 금액과 관련해서는 다행히 해결이 되었다. 하지만 정확히 이야기하면 이번은 예외적으로 나에게 청구된 금액에 대해 비용처리를 없애주는 것이었다. AWS 규정상 이번에 내 케이스는 사용자에게 책임이 있는 것이어서 원래는 비용이 청구가 되는 상황인데 이번 한번은 예외로 봐주겠다는 뜻이었다.
이번 경험을 계기로 클라우드나 여러 비용이 나갈 수 있는 서비스에 대한 보안이 정말 중요하다는 것을 깨달았다. 지금은 개인 계정이고 금액도 그리 크지 않지만(?) 만약 회사 계정이 털리고 해커가 어마무시한 요금을 사용했다면 정말 상상만으로도 끔찍하다. 그래서 이번 문제를 해결하면서 배웠던 AWS에서 사용할 수 있는 몇 가지 보안 방법에 대해 알아보려고 한다. 몇 가지라고 하긴 했지만 아마 MFA만 알아도 보안에는 크게 문제가 없지 않을까 싶다.
budget alarm 사용하기
우선 내 계정에서 나도 모르는 비용이 청구되는 것을 사전에 깨닫기 위해서는 꼭 budget 알람을 사용해야 한다. 나도 이번에 알람을 사용하지 않았다면 끝까지 요금이 청구된지 몰랐을 것이다. 그리고 팁인지는 모르겠지만 알람을 보낼 메일은 꼭 자주 사용하거나 휴대폰으로 관련 메일이 팝업에 뜨는 주소로 사용하는 것을 추천한다. 나는 이번에 비용 알림 메일을 네이버로 했었는데 잘 사용하지도 않고 확인도 하지 않아서, 나중에 등록된 카드에 잔액 부족으로 팝업이 뜨고 나서 알게되었다. 그러니 비용 알림은 꼭 자주 확인하거나 휴대폰에 팝업이 뜨는 메일로 등록하길 추천한다!
MFA 등록하기
사실 위의 방법은 이미 계정이 털렸다면 빨리 알아차렸더라도 어느정도 비용이 청구되었을 가능성이 있는 소잃고 외양간을 고치는 방법이라고 할 수 있다. 따라서 처음부터 해커들이 내 계정에 접근하지 못하도록 하는 것이 중요한데, 이를 위해 MFA를 꼭 사용해야 한다.
Multi-Factor Authentication의 준말인 MFA는 주로 (2FA)이라고도 많이 불린다. 멀티라는 말에서 어느정도 유추할 수 있듯이 여러 가지 팩터(절차)를 통해 인증하는 방법이다. 절차에는 다양한 종류가 있는데 우리가 가장 많이 사용하는 것은 지식기반 팩터이다. 이는 비밀번호, PIN 등 사용자만 알 수 있는 팩터를 통해 나임을 증명하는 방법이다. 가장 손쉽게 사용할 수 있지만 비밀번호가 유출되면 말 그대로 다 뚫려버리는 취약점을 가지고 있다. 나 또한 지식기반 팩터만 설정해놓아서 이런 사태가 발생했다. 또 큰 문제는 사용자들은 대부분 같은 비밀번호를 사용하기 때문에 하나가 유출되면 다른 계정까지 위험해질 수 있다. 이를 방지하기 위해서 여러 개의 팩터를 사용함으로써 보안을 한층 강화하는 방법이 멀티 팩터 인증이다.
이에는 소유기반 팩터, 속성기반 팩터 등 여러 종류가 있는데, 가장 많이 사용하는 소유기반 팩터에 대해 설명해보려 한다. 소유기반 팩터는 말 그대로 사용자만이 소유할 수 있는 것을 바탕으로 인증을 할 수 있는 방법이다. 가장 대표적인 것이 스마트폰이다. 요즘에는 모두가 스마트폰을 사용하고 있는데 이를 2차 인증의 수단으로 이용하는 것이다. 구글 로그인을 다른 컴퓨터에서 해본 사람들은 모두 경험해보았을텐데 로그인을 시도하려고 하면 내 스마트폰에서 화면에 표시된 특정 숫자를 눌러야 된다. 이는 "내 스마트폰"이 없다면 불가능하다. 이처럼 소유기반 팩터를 설정해놓으면 거의 99%는 해킹을 막을 수 있다.
본론으로 돌아가서 AWS의 MFA에 대해서 자세히 알고 싶다면 해당 링크에서 알 수 있다. https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_mfa.html
그리고 MFA를 지정하고 싶다면 이 링크로 설명된 절차를 따라 설정할 수 있다. https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html
다양한 방식이 있는데, 나는 가상 MFA를 사용하고 있다. OTP와 동일한 방식인데 어플로 구글 OTP를 다운받고 AWS에 로그인할 때 해당 어플에서 제공하는 6자리 숫자를 입력하면 성공적으로 로그인할 수 있다. 이번 사태를 겪고 나서 보안이 정말 정말 중요하다는 것을 알게되었다. 개인적으로 보안 관련된 공부를 조금 해보면 좋겠다는 생각도 들었고, 40만원에 대한 교훈이라고 생각하고(물론 내지는 않았지만) 이번 일을 꼭 기억하고 앞으로는 보안에 신경쓰는 개발을 해야겠다.
'개인적인 이야기 > 여러가지' 카테고리의 다른 글
🎉 인프런 강의 런칭 - Mixpanel로 데이터 들여다보기 (0) | 2024.03.26 |
---|---|
AWS Budgets 비용 알람 메일 문의 후기/해결과정 (1) | 2022.05.29 |
노션 -> 블로그 부스트캠프 회고록 옮기기 포기... (0) | 2022.01.26 |
오늘부터 블로그 (0) | 2021.11.30 |