올림픽 디스트로이어(Olympic Destroyer) 악성코드의 배후자

게시: 2018년 2월 26일



올림픽 디스트로이어(Olympic Destroyer) 악성코드의 배후자




본 블로그 게시물은 Paul RascagneresMartin Lee가 공동으로 작성했습니다.


요약

 

올림픽 디스트로이어(Olympic Destroyer) 악성코드에 특정 공격자 집단이 관여했다는 의혹에는 모순이 있으며 명확한 배후도 드러나지 않았습니다. 이번 악성코드를 유포한 공격자는 분석가와 연구원들을 교란시키기 위해 거짓 증거를 의도적으로 심어 놓은 것으로 보입니다. 공격자는 의혹에 대해 제3자의 거짓 주장일 뿐이라며 거짓 증거를 방패삼아 혐의를 부인했습니다. 이러한 연관성은 사람들의 관심을 끌긴 했지만 복잡할뿐더러 정확하지도 않습니다. 이 때문에 앞으로 누군가는 소프트웨어 기반의 연관성 자체에 대해 의문을 품게 될지도 모릅니다. 


서론


이달 초 한국에서 열린 평창 올림픽에서 사이버 공격이 한 차례 발생했습니다. 보도에 따르면, 사이버 공격으로 인해 올림픽 웹사이트의 연결이 끊어져 티켓을 인쇄하지 못하는 사태가 발생했다고 합니다. WiFi 연결이 되지 않아 개회식 현장에 있던 기자들이 당시 상황을 보도하는 데 난항을 겪기도 했습니다. 2월 12일, Talos는 자신의 블로그에 올림픽 디스트로이어(Olympic Destroyer)라고 하는 악성코드의 기능에 대해 자세히 다루었는데, 아마 이 악성코드가 이번 공격에 사용된 것으로 보입니다.


올림픽 디스트로이어(Olympic Destroyer)의 연관성을 공개한 일부 언론 보도자료


이 악성코드는 저절로 생겨난 것도 아니며 우연히 발생한 사건도 아닙니다. 그렇다면 과연 누구의 소행일까요? 사이버 공격자로 특정 악성코드 개발자 또는 공격자 집단을 지목하는 것은 단순하거나 정확한 분석이 아닙니다. 공격의 유사성을 파악하려면 여러 가지 매개변수를 고려하고 이전에 발생했던 공격들과 비교 분석을 거쳐야 합니다. 여느 범죄들과 마찬가지로, 사이버 범죄자들 역시 주로 사용하는 수법이 있으며 디지털 지문과 같은 흔적을 남기는 경향이 있는데 이러한 흔적을 찾아 다른 범죄들과 견주어 볼 수 있습니다.


사이버 보안 사고가 발생하면, 분석가들은 다음과 같은 연관된 유사성을 찾습니다.

  • 전술, 수법, 절차(TTP)(공격자 수법)

  • 피해자 프로필

  • 인프라(공격 시 사용한 플랫폼)

  • IOC(Indicator of Compromise, 침해지표)(공격 시 남겨진 식별 가능한 아티팩트)

  • 악성코드 샘플(공격 시 사용한 악성코드)


소프트웨어 엔지니어링의 한 가지 장점을 들자면, 코드를 공유하고 타인이 개발한 라이브러리를 기반으로 애플리케이션을 제작하며 다른 소프트웨어 엔지니어들의 성공 및 실패 사례를 공유할 수 있다는 점입니다. 이 점은 공격자들에게도 마찬가지입니다. 두 명의 서로 다른 공격자가 동일한 소스의 코드를 사용할 수도 있기 때문에 공격 집단이 다르더라도 공격에 유사성을 가질 수 있습니다. 이들은 다른 집단의 특성을 고의적으로 포함시켜 분석가들을 교란시키고 거짓 증거를 만들도록 유도하기도 합니다.


올림픽 디스트로이어(Olympic Destroyer)의 경우, 그 증거는 무엇이며 그 연관성은 무엇으로 결론지을 수 있을까요?



올림픽 디스트로이어의 배후



라자러스 그룹(Lazarus Group)


일명 그룹 77(Group 77)이라고도 하는 라자러스 그룹은 현재까지 다수의 사이버 공격에 관여해온 교묘한 공격자 집단입니다. 특히, 그 하위조직인 블루노로프(Bluenoroff)가 방글라데시에 소재한 한 은행의 SWIFT 인프라를 공격하면서 라자러스는 악명을 떨치기 시작했습니다. 


BAE Systems의 분석에 따르면, SWIFT 악성코드에는 evtdiag.exe, evtsys.exe 및 evtchk.bat라는 파일이 존재한다고 합니다.


올림픽 디스트로이어(Olympic Destroyer) 악성코드는 유포 즉시 시스템 내에 다음과 같은 파일을탐색합니다. %programdata%\evtchk.txt. 


위 두 가지 사례에서 한 가지 명확한 유사성을 찾아볼 수 있습니다. 증거는 아니지만 희미한 단서가 있다는 점입니다.


BAE Systems의 분석 결과, 올림픽 디스트로이어(Olympic Destroyer)와 블루노로프의 와이퍼 악성코드의 유사성에서 추가적인 증거가 확인되었습니다. 예시에서 좌측이 블루노로프 와이퍼, 오른쪽이 올림픽 디스트로이어 와이퍼 기능입니다.



이 둘의 코드는 동일하지 않습니다. 하지만 분명한 점은, 대용량 파일의 첫 0x1000 바이트를 작성할 때의 로직이 동일하다는 것이며 이는 여기에서만 드러나는 특징입니다. 이는 또 다른 단서이자 파일명보다 더욱 확실한 증거입니다.


하지만 블루노로프가 사용한 파일명과 와이퍼 기능에 대해서는 문서화된 자료가 존재하며 이는 누구나 확인할 수 있습니다. 실제 범인들은 자신들의 신원을 감추기 위해 라자러스 그룹을 가장하여 파일명 체크를 추가하고 와이퍼 기능을 흉내 냈습니다.


올림픽 디스트로이어(Olympic Destroyer) 샘플: 

23e5bb2369080a47df8284e666cac7cafc207f3472474a9149f88c1a4fd7a9b0


블루노로프 샘플 #1: 

ae086350239380f56470c19d6a200f7d251c7422c7bc5ce74730ee8bab8e6283


블루노로프 샘플 #2: 

5b7c970fee7ebe08d50665f278d47d0e34c04acc19a91838de6a3fc63a8e5630 


APT3와 APT10 


Intezer Labs는 올림픽 디스트로이어와 APT3 및 APT10의 공격에 사용된 악성코드에서 공통의 코드를 찾아냈습니다.


Intezer Labs는 올림픽 디스트로이어가 자신의 전체 코드 중 18.5%를 APT3의 툴에 사용하여 메모리에서 자격증명을 빼낸 것을 확인했습니다. 이는 아마 매우 확실한 단서일 것 입니다. 하지만 APT3 툴은 오픈 소스 툴인 Mimikatz를 기반으로 합니다. Mimikatz는 누구나 다운로드가 가능하며 이러한 수법을 이용한 공격은 이전에도 있습니다. 따라서, 올림픽 디스트로이어 개발자 역시 Mimikatz에 있는 코드를  악성코드 유포에 사용했을 가능성이 있습니다. 


Intezer Labs는 올림픽 디스트로이어와 APT10 사이에서 AES 키를 생성하는 데 사용한 기능에서도 유사성을 찾아냈습니다. Intezer Labs의 분석에 따르면 이 특정 기능은 APT10에서만 사용해온 기능입니다. 악성코드 개발자는 자신의 신원에 중요한 단서가 될 수 있는 정보를 실수로 흘린 것일 수도 있습니다.


Nyetya


Mimikatz에서 도용한 코드를 사용해 자격증명을 빼내는 수법은 2017년 6월 Nyetya(NotPetya) 악성코드에서도 확인할 수 있습니다.  올림픽 디스트로이어는 Nyetya와 같이 PsExec과 WMI의 합법적인 기능을 악용해 우회적으로 퍼져 나갔으며, 이는 몰래 빼낸 자격증명을 메인 모듈로 전송합니다.


 올림픽 디스트로이어가 Nyetya와 다른 점은 악성코드를 유포하는 데 EternalBlue와 EternalRomance라고 하는 익스플로잇을 사용하지 않았다는 것입니다. 하지만, 범인은 올림픽 디스트로이어 소스 코드 안에 SMB 익스플로잇의 존재를 암시하는 아티팩트를 남겼습니다. 


올림픽 디스트로이어는 다음과 같은 4가지 구조의 정의를 포함합니다.




이 4가지 구조는 공용 EternalBlue PoC(proof of concept)에서도 찾아볼 수 있습니다.



이 구조는 올림픽 디스트로이어가 실행되는 런타임 시 로드 되지만 실제로 사용되지는 않습니다. 분명한 점은 개발자가 EternalBlue PoC를 인지하고 있었다는 것입니다. 하지만 이 구조들이 존재하는 이유는 명확하지 않습니다. 이는 보안 분석가들의 판단을 교란시키기 위한 개발자의 함정일지도 모릅니다. 이 외에, 악성코드에 최종적으로 사용되지 않은 기능들도 확인되었습니다.

 

결론


공격의 배후를 파악하는 것은 어려운 일입니다. 분석가들이 법원에서 유죄를 끌어낼 정도의 확실한 증거를 잡아내는 경우도 흔치 않습니다. 대부분의 분석가들은 성급히 결론을 내리고 올림픽 디스트로이어를 특정 집단의 소행으로 지목했습니다. 하지만, 혐의에 대한 명확한 근거는 없습니다. 악성코드 개발자들이 여러 거짓 증거들을 심어 놓았을 가능성은 있지만 악성코드 샘플만으로는 그 배후를 파악하기가 더욱 어려워졌습니다.


이번 공격자들과 관련하여 가해자임을 밝힐 수 있는 확실한 스모킹 건은 존재하지 않습니다. 아마도 다른 보안 분석가와 조사 기관들이 추가적인 증거를 찾아낼 수도 있습니다. 시그널 인텔리전스나 인적 정보 소스처럼 배후의 확실한 단서가 될 수 있는 추가 증거를 수집한 기관이라면 해당 정보를 공유해서 정보 수집 임무를 저버리지 않도록 해야 할 것입니다.


이번 올림픽 디스트로이어 악성코드는 확실히 대담한 공격이었으며, 범인은 자신의 신원이 쉽게 드러나지 않는 교묘한 수법을 이용했습니다.


공격자들 간의 코드 공유도 예상해볼 수 있습니다. 오픈 소스 툴은 유용한 기능성의 소스이며 다른 집단의 성공적인 공격 수법을 응용했을 경우, 거짓 증거가 도출되어 배후를 잘못 추정하게 될 수 있습니다.


우리는 공격자들이 이러한 교묘한 수법을 이용해 거짓 증거를 심어 놓고 분석가들을 교란시켜 다른 집단을 지목하도록 유도한다는 것을 알고 있습니다. 공격자들은 보안 분석가들이 내놓는 잘못된 분석을 보고 즐거워하고 있을지도 모릅니다. 연관성을 잘못 지정하게 되면 제3자가 제시한 증거를 근거로 한 국가가 완전히 잘못된 판단을 내릴 수도 있습니다. 사이버 공격을 분석할 때마다 잘못된 연관성은 항상 존재하기 마련이며 이는 공격자가 숨을 수 있는 여지를 남깁니다. 가짜 뉴스가 범람하는 이 시대에서 연관성은 매우 민감한 요소라 할 수 있습니다. 


공격자들의 수법이 날로 정교하고 교묘해짐에 따라 분석가들은 거짓 연관성으로 인해 더욱 혼란에 빠질 것입니다. 공격의 배후를 파악하는 것은 너무나 어려운 문제로, 좀처럼 쉽게 해결될 것 같아 보이지 않습니다.