연초 경찰청 사이버안전국이 북한 소행으로 파악했다는 악성 메일 공격의 수사 결과를 공개했다. 작년말과 올초 사이 송신된 메일을 받은 국내 대북 연구기관과 단체 관계자가 첨부된 HWP 파일을 받아 열자 악성코드에 감염돼 정보를 탈취당한 사례였다.
비슷한 시기 악성 HWP 파일 기반 공격을 조사한 곳이 또 있었다. 미국 회사 시스코시스템즈다. 시스코 위협정보분석조직 '탈로스(Talos)'는 경찰청 사이버안전국이 '북한발' 사이버공격 수사결과 발표를 한 지 1개월쯤 뒤, 그와 꽤 유사한 HWP 공격 사례 분석 결과를 공개했다. 탈로스 측은 당시 정부 사이트가 공격에 악용된 정황을 짚었고, 이후 다른 공격 사례를 분석하는 과정에서 HWP 기반 새 공격코드까지 찾아냈다.
경찰이 수사한 사건과 탈로스가 분석한 사건이 동일한 공격 사례는 아니다. 다만 둘 사이엔 눈길을 끄는 공통점이 있다. 둘 다 한국내 북한 관련 업무를 수행하는 담당자를 표적으로 삼았다. 또 정부부처가 작성한 문건처럼 조작된 HWP 파일을 이용했다. 동일범의 소행일 가능성을 의심해 볼만하다. 탈로스 역시 과거 정부 지원 해커 조직의 공격 사례와 접점이 있다고 봤지만, 북한을 배후로 지목하진 않았다.
국내서 정부 사이트를 동원하며 진행된 악성 HWP 파일 기반 공격을 수차례 상세 분석하고, 그간 알려지지 않았던 HWP 공격코드까지 찾아낸 탈로스의 활동은, 시스코의 한국 사이버보안 시장에 대한 관심을 방증한다. 또 시스코같은 외국 보안업체의 위협 분석 활동과 정보가 국내 사이버보안 강화에 도움이 될 가능성도 보여 줬다.
■ 같은 듯 다른 악성 HWP 파일 기반 공격들
북한전문매체의 앞선 보도(1월3일) 내용과 이후 사이버안전국 발표(1월 25일)로 파악된, 경찰 수사 사건 전말을 요약하면 이렇다.
북한 해커가 2016년 11월 3일 '우려되는 대한민국.hwp' 파일을, 2017년 1월 3일 '2017년 북한 신년사 분석.hwp' 파일을 첨부한 악성 메일을 유포했다. 북한 '류경동 조직' 소속 공격자가 북한 IP주소로 미국 소재 서버를 경유해 메일을 발송했다. 국내 외교, 안보, 국방, 통일 분야 종사자 40명이 메일을 받았다. 이들이 PC로 발송된 이메일에 첨부된 HWP 파일을 열람했다면, 악성코드에 감염, 명령제어 서버를 통해 정보를 유출당했을 것이다. 다만 국내 소재 명령제어서버 분석 결과 실제 감염 피해는 확인되지 않았다.
다음은 탈로스가 경찰 발표로부터 약 1개월 뒤(2월 23일) 공식블로그를 통해 상세 공개한, 유사 공격 사례 분석 내용이다.
2016년 11월과 2017년 1월 사이 한국의 소수 인물을 겨냥한 악성코드 공격이 진행됐다. 역시 악성문서를 이메일에 첨부한 형태였다. 공격자는 당시 통일부 로고가 박힌 '5170101-17년_북한_신년사_분석.hwp' 파일을 유포했다. 정부 공식 배포판으로 위장한 이 문서 끝부분에 '붙임' 자료 목록 2건의 링크가 제시됐다. 둘 중 하나를 더블클릭하면 문서에 PE32 파일 형태로 삽입된 악성코드가 실행된다.
PE32 파일 악성코드는 더블클릭 입력을 정상 처리한 것처럼 보이기 위해 HWP파일에 원래 내장돼 있던 다른 문서를 띄운다. 동시에 공격 절차를 이어가기 위해 외부 서버에서 추가 악성코드를 내려받는다. wscript.exe 바이너리 명령을 실행하고 이 프로세스에 'BIN'이라 명명된 리소스에 삽입된 셸코드를 주입한다. 셸코드는 wscript.exe 프로세스에 추가 악성코드 PE32 파일을 집어넣고 실행하기 위해 동작한다.
이렇게 실행된 바이너리는 감염 시스템의 정보를 수집해 명령제어서버와 통신한다. 수집되는 정보는 컴퓨터 이름, 사용자명, 실행되는 경로, 해당 시스템이 가상머신인지 식별 가능한 윈도 레지스트리키 값을 분석해 얻은 컴퓨터 바이오스 모델, 감염 시스템을 식별하기 위해 임의 생성한 ID값 등이다. 탈로스 측은 이런 정보로 "해당 시스템에 악성코드 공격의 최종 단계를 수행할지 판단할 수 있다"고 지적했다.
■악성코드 유포 '도우미' 된 공공웹사이트
악성코드는 공격의 최종 단계에서 다른 외부 서버와 네트워크 통신을 거친다. 악성코드가 접속하는 외부 서버 중 하나는 바로 한국의 공공웹사이트 중 하나인 '정부법무공단' 홈페이지였다. 악성코드는 해당 웹서버의 2개 URL과 접속한다. 하나는 앞서 수집한 정보가 전달되는 특정 경로 URL이고, 또 하나는 웹서버상의 이미지(JPG) 파일이다. JPG 파일명에 앞서 생성된 ID값과 일치하는 문자열이 포함된다.
탈로스 측은 특정 경로 URL의 index.php 파일 동작에 의해, 파일명에 악성코드가 전달한 ID값과 일치하는 문자열을 포함하는 JPG 이미지가 웹서버에 생성된다고 판단했다. 이 JPG 이미지의 내용은 감염된 시스템에 officepatch.exe 이름을 가진 파일로 저장된다. 이 파일은 실행된 다음 스스로 종료하는 형태로 작동한다.
탈로스는 악성코드 동작 마지막 단계에서 감염 시스템과 통신을 수행하는 곳으로 지목한 정부법무공단 홈페이지 역시, 공격자에 의해 조작됐을 것이라 추정했다. 사실이라면 공공기관 사이트가 국내 악성코드 유포를 거든 셈이 된다. 다만 탈로스 보안연구자들의 분석 시점에 사이트는 운영 중단 상태였기 때문에, 실제로 악성코드의 마지막 동작이 제대로 돌아가는지 직접 확인할 수는 없었다고 덧붙였다.
탈로스는 악성코드 제작자가 공격에 사용한 국내외 명령제어서버 4곳의 소재를 파악했다. 이 공격에 사용된 PE32 파일, 이걸로 실행되는 추가 악성코드, 이 악성코드가 동작시 통신을 수행하는 곳의 인프라 등에서 발견한 유사성을 근거로 삼았다. 명령제어서버는 한국에 3곳, 네덜란드에 1곳 있었다. 한국 소재 명령제어서버 3곳 중 2곳은 민간에서 운영하는 웹사이트였다. 나머지 하나가 정부법무공단이었다.
■"재정 지원 원활한 조직이 설계한 공격…특정 정부기관이 수행한 사례와 연관성"
이 공격 주체의 배경에 대해 탈로스가 분석하고 추정한 내용은 다음과 같다.
일단 공격자는 HWP 파일 형식 문서를 다루는 제한적인 표적을 상정하고 공격을 수행했다. 덕분에 이 파일 포맷을 처리하지 못하는 일부 보안 장비의 탐지를 회피할 수 있었다. 또 HWP 형식의 '미끼'를 가급적 평범해 보이게 만들어, 표적 사용자가 호기심에 파일을 열어 보도록 유도했다. 그리고 공격을 유도한 보조 수단을 제거하고, 관련 인프라를 재사용하지 않는 신중함을 기울였다.
하지만 탈로스는 이런 운영 보안 수준은 정교한 공격자에게 일반적이라고 평했다. 다만 한국 공공부문 사용자를 겨냥한 이 표적 공격이 한국어를 모국어로 구사하는 사람과 접촉할 수 있는 공격자에 의해 벌어졌을 것이라고 진단했다. 공격의 표적이 된 개인들은 매우 가치가 높다고 기대되는 자산에 접근하기 위한 발판이 됐을 것이라고 덧붙였다.
이상의 기술 및 정황적 근거를 종합한 탈로스는 의심할만한 공격 주체로 '한국에서 정보를 얻으려 하는 국외 정부 지원 해커 조직'을 언급했다. 이 공격이 "한국 공공 부문 주체를 대상으로 수행하기 위해 재정적 지원이 원활한 조직에 의해 설계됐을 가능성이 높다"며 "공격에 동원된 기술 가운데 상당수는 앞서 특정 정부 기관에 의해 벌어진 공격 사례에 들어맞는다"고 진단했다.
■"KISA와 협력으로 사이버침해사고 대응시 기밀 정보 공유 원활해질 것"
시스코의 보안부문 임원인 브렛 하트만 보안 최고기술책임자(CTO)는 탈로스가 분석한 사례가 이미 경찰 조사를 통해 파악이 끝난 것 아니냐는 물음에 "해당 분석은 상당기간 이슈가 된 HWP 관련 취약점 악용사례 중 특징적인 것이었다"며 "알려진 HWP 취약점을 사용했지만 그와 관련된 신형 공격코드를 분석한 최초 보고였고, 발견 당시 그와 관련된 내용을 다른 어디에서도 찾을 수 없었다"고 반박했다.
실제로 탈로스는 이후 별개의 공격 사례에서 이와 동일한 명령제어서버와 통신하는 악성코드 감염 시스템을 발견했다. 지난 4월초 상세 공개된 해당 공격 사례는 수법이나 정황면에서 기존과 동일범 소행이라 의심할만한 근거가 여럿 발견됐다. 이전과 비슷한 악성 HWP 파일이 사용됐고, 해당 문서 내용이 북한과 관련된 주제를 다뤘으며, 정상적인 것처럼 위장돼 있었다는 점 등이다.
탈로스는 특히 이 공격자가 악성 HWP 문서를 만들기 위해 '록랫(ROKRAT)'이라는, 새로운 익스플로잇(exploit)을 만들어냈다는 점에 주목했다. 익스플로잇은 소프트웨어의 취약점을 악용하는 공격용 코드를 가리킨다. 록랫은 '대한민국(Republic of Korea)'과 '원격 접근 트로이목마(remote acccess trojan)'의 앞글자를 따서 붙인 이름이다.
록랫은 한글과컴퓨터 한글 워드프로그램과 그 문서 형식의 취약점을 악용한 결과물이다. 다만 악용된 취약점(CVE-2013-0808) 자체는 과거 알려진 것이다. 록랫은 지난번처럼 공격자 의도대로 명령제어서버 역할을 하도록 조작된 웹사이트와 통신하는 역할을 맡았다. 다만 공격자는 이번에 HTTPS 암호화통신을 수행하는 클라우드 서비스까지 동원, 감염 시스템이 어떤 정보를 주고받았는지 분석하기 어렵게 만들었다.
관련기사
- KISA-시스코, 사이버위협 공동대응 협약2017.06.12
- HWP 악성코드가 많긴 많나 보다2017.06.12
- 시스코 "우리 제품이 HTTPS 보안 훼손? 동의 안 해"2017.06.12
- "사이버 공격자도 머신러닝·AI 활용할 것"2017.06.12
향후 한국 지역을 겨냥한 시스코의 위협 요소 예방과 추적 활동은 더 늘어날 수 있다. 지난달 시스코와 한국인터넷진흥원(KISA)과 사이버위협 공동대응 협약을 맺었기 때문이다. 당시 협약에 따라 KISA 사이버침해대응센터(KISC)와 탈로스는 사이버침해사고 및 분석 노하우 정보를 공유하기로 했다. 하트만 CTO는 시스코 측 임원으로 협약식에 참석하기도 했다.
하트만 CTO는 KISA와의 협력 의의에 대해 묻자 "탈로스와 KISA KISC간 사이버 침해사고 정보 공유 협약의 취지 가운데 하나는 기밀 정보 공유에 대한 원활한 공조"라면서 "(협약은 향후 활동에 한국의 현황을 좀 더 반영하는 되겠지만) 이 활동 성과를 위해 의도적으로 이전보다 더 많은 부분을 대외 공개하진 않을 것 같다"고 덧붙였다.