AWS 필수 보안 지침 : 미처 다루지 못한 사고

hacker-with-anonymous-mask (1)

안녕하세요. 이동현입니다.
AWS에서 발생한 보안사고를 통해 정보보안을 알아보는 강의를 준비하면서 다양한 사고사례를 정리했고,
그중 사고의 원인을 몇 가지 유형으로 분류해 커리큘럼을 만들었죠.
그런데 독특하면서 배울 점, 생각할 부분이 많은 사례들도 있었는데 아쉽게도 모두 강의에 담기지는 못했어요.
그래서 미처 강의에서 다루지 못했지만, 여러분들이 흥미를 느낄만한 사례 하나를 글로 풀어보려고 합니다.

인터넷 강의와 동일하게 구성했는데 재미있게 봐주세요.

이번 사고의 대상은 신문을 기반으로 한 대형 언론사로 이름만 들어도 알만한 유명한 언론사입니다.
이 언론사에서는 잘못된 AWS S3 설정으로 인해 보안사고가 발생하게 돼요.
내용은 이렇습니다.

크립토재킹 공격으로 수많은 디바이스의 컴퓨팅 자원의 악용

2018년 2월 크립토재커가 보안이 취약한 AWS S3 (이하 S3) 버킷에 백도어를 심었고,
이를 통해 이번 사건의 희생양이 된 대형 언론사의 웹사이트에 몰래 채굴 코드를 삽입한 것이 발견되었어요.

사고가 난 이 회사는 미국 캘리포니아주 로스앤젤레스에서 발행되는 일간신문으로,
미국 서부 전 지역에 걸쳐 배달되고 있다고 해요. – 편의상 L사라고 할게요.
L사는 발행 부수가 미국 내에서 두 번째로 큰 대도시의 신문사로써, 미국 내에서 네 번째로 가장 많이 읽히는 신문이기도 하답니다.

먼저 공격자는 L사의 S3에 보안이 취약하다는 점을 이용해 암호화폐를 채굴하는 코드를 특정 버킷에 삽입해요.
조금 더 자세히 설명해 드리자면 L사가 제공하는 도시 살인 사건의 대화형 지도 서비스에 Coinhive Monero 채굴기를 삽입한 거예요.


바로 이 사이트가 그 대상이었습니다.

그런데 사건이 일어나기 전 익명의 누군가가 S3가 Public으로 open되어 있다는 사실을 알려줬어요.

안녕하세요. Amazon AWS S3 버킷 설정이 잘못되었음을 알려드립니다.
누구나 이 버킷에 쓸 수 있습니다. 나쁜 사람이 발견하기 전에 이 문제를 해결해 주세요.

하지만 이 메시지는 읽히지 않았거나 무시되었고 공격자들이 이 사실(취약점)을 알게 되었어요.

조사 과정에서 이 공격에 사용된 (위에서 언급한) Coinhive 사이트 키가 2주 전 미국 법원 시스템(uscourts.gov) 및 영국 Student Loans Company와 같은 정부 사이트를 포함하여 수천 개의 웹 사이트에 채굴자를 설치하는 데 사용된 것과 동일하다는 것이 밝혀졌어요.
이건 이런 공격을 전문적으로 하는 누군가(개인 혹은 집단)가 미국과 영국 정부의 사이트를 비롯해 많은 곳에도 L사와 같은 공격을 했다는 것을 의미하는 거죠.

이 공격으로 인해 사용자 입장에서 입은 피해는 그리 크지 않을 수 있어요.
채굴자는 단지 CPU 자원을 훔칠 뿐이고, 브라우저를 종료하면 채굴을 멈출 수 있는 단지 귀찮은 일일 뿐이니까요.

Coinhive란?

Coinhive는 사용자가 방문한 웹사이트에 coinhive js파일이 삽입되어 있으면,
그 웹사이트는 사용자의 브라우저로 사용자 CPU 자원을 이용해 가상화폐 중 하나인 모네로(Monero)를 채굴해요.
그러면, 사용자가 단지 페이지를 읽는 것만으로도 채굴을 통해 사이트 운영자 (공격자)가 이익을 얻을 수 있게 되죠.

이번 공격은 사용자들이 살인사건과 관련된 지도를 검색하기 위해 위의 홈페이지에 접속하는 것만으로 모네로를 채굴한 거예요.

Coinhive가 동작하는 동안의 CPU 추이 그래프에요.
별다른 액션이 없어도 CPU 사용량이 일정 수준 유지되고 있다는 걸 알 수 있어요.
바로 이 부분을 알아차리면 내 PC가 무언가 (채굴)를 하고 있다는 사실을 의심할 수 있는데 대부분의 사용자는 알아차리지 못해요.
왜냐하면 채굴에 필요한 CPU 자원을 쓸 때 사용자가 알아차리지 못하는 수준으로 사용량을 제한하기 때문이죠.

[우리가 놓치지 말아야 할 보안]

1. 누군가 보안 취약점에 대해 경고했다면 확인이라도 해야 합니다.
2. S3 Public Open으로 인한 사고는 공격자의 잘못이 아니라 관리자의 잘못이에요.
3. 사용자에게 제공되는 코드가 조직이 관리하는 소스 리포지토리로부터 온 것인지 무결성 검사를 해야 합니다.

 

L 언론사의 사례 어떻게 보셨나요?

이번 사고의 피해라면 CPU 자원을 무단으로 사용했다는 점일 텐데요.
‘별로 피해가 크지 않은 거 아니야?’라고 생각할 수 있을 것 같아요.
하지만 타인의 자산을 허락 없이 사용해서 금전적 이득을 취하는 건 엄연히 불법입니다.
그리고 공격자가 고도의 해킹기법을 이용한 게 아닌, 단지 L언론사의 S3 설정을 잘못해서 사고가 발생했다는 것도 주목할 점이라고 생각해요.

강의에서도 말씀드렸지만, 기업에서 사용하는 S3 bucket은 그 수도 많고 일일이 설정을 안전하게 관리하기란 매우 어렵죠.
하지만 가장 기본적인 S3 설정인 ‘Public Open’만은 반드시 확인하시기를 바라요.

그렇지 않으면 L사가 겪은 이런 사고를 여러분들이 겪을 수도 있으니까요.

AWS 보안 사고사례에 대해 더 많은 이야기를 듣고 싶다면!

보안 경력 17년차, 현직 CISO와 함께 AWS 보안에 대해 알아보세요.
AWS 보안 수준을 높이기 위한 정보 공유와 현직으로서 고민할 수밖에 없는 AWS 보안 방법 및 보안 원칙에 대해 이야기합니다.

댓글 달기