어즈니프, 스테가노그래피로 일본 금융권 공격
금융 정보 탈취 악성코드인 어즈니프(Ursnif)가 또다시 활동을 재개했다. 어즈니프는 금융권에서 가장 많이 발견되는 악성코드 중 하나다. 초기에는 북미, 유럽, 호주 등에서 활동했으나 최근에는 일본 금융권에 많은 피해를 입히고 있다. 특히 지난 9월과 10월 일본에서 각각 다른 감염 벡터(Infection Vector)를 사용하는 변형이 발견되었다. 9월 발견된 변형에서는 하드코딩된 다운로드 주소를 포함한 파워쉘을 실행했으며, 10월 접수된 변형은 스테가노그래피를 이용한 것이 특징이다.
이 글에서는 지난 10월 일본 금융권을 겨냥한 공격에 사용된 변형을 기반으로 어즈니프의 최신 유포 방법을 소개한다. 또한 어즈니프 악성코드의 행위 분석, 주요 기능 및 특징 등 심층 분석 보고서 내용을 공개한다.
어즈니프 악성코드 최신 유포 방법
드림봇(Dreambot), 코지(Cozi), ISFB, 베블로(Bebloh)로도 불리는 어즈니프(Ursnif, Trojan/Win32.Ursnif)는 사용자를 속이기 위하여 사회공학기법을 이용한다. 이를 테면 위장된 주문서, 신청서, 보고서, 납품서, 청구서 등의 내용의 메일 제목과 본문을 사용했다. [그림 1]과 같이 해당 메일에는 악의적인 매크로가 포함된 엑셀 문서를 첨부하여 유포되었다. 사회공학기법을 이용한 악성 스팸메일은 정상적인 메일처럼 위장하여 제작되기 때문에 사용자는 발신자가 불명확한 메일 및 첨부 파일은 열지 않도록 각별한 주의가 필요하다.
어즈니프 악성코드의 전파 및 감염 개요는 [그림 2]와 같다. 간단히 설명하자면, 악성코드 제작자는 유포를 위해 사회공학기법을 이용한 스팸메일을 발송하며, 메일에는 악성 매크로가 포함된 엑셀 파일이 첨부되어 있다. 사용자가 메일에 첨부된 파일을 실행하면 악성 매크로가 동작하여 단계별로 각종 스크립트를 실행시킨다. 이 과정에서 특정 배치 명령어가 cmd.exe에서 실행되고, cmd.exe는 파워쉘 스크립트를 실행한다. 파워쉘 스크립트에는 이미지 다운로드 및 베블로 악성코드를 다운로드하는 명령어가 포함되어 있다. 이후 베블로 악성코드가 실행하면서 C2에 접속하여 어즈니프를 다운로드해 사용자의 시스템을 감염시키는 방식이다.
지금부터 각 단계별로 자세히 살펴보자. 첨부된 엑셀 문서의 본문 내용은 일본어로 작성되었으며 [그림 3]과 같이 정상적인 회계 문서로 위장하고 있다. 일반적으로 사용자의 시스템에서 문서 프로그램의 보안 설정이 낮게 설정된 경우에는 별도의 알림 창 없이 바로 매크로가 실행된다. 따라서 사용자는 보안 설정을 높음 수준으로 유지하여 의도하지 않은 기능이 실행되지 않도록 주의해야 한다.
[그림 3] 스팸메일에 첨부된 엑셀 문서
엑셀 문서 내 포함된 매크로가 실행되면 [그림 4] 와 같이 난독화된 데이터를 조합하여 추가 악성코드를 다운로드 한다.
[그림 5]는 다운로드 중인 과정의 프로세스 목록을 나타내며, 각 단계의 명령문 인자 값은 [표 1]과 같다.
[표 1] CMD/POWERSHELL 명령문
[표 1]에서 확인할 수 있듯이 CMD-2 에서 다운로드 받아오는 파일은 656,028 바이트의 PNG 그림 파일이다([그림 6] 참고).
해당 파일은 정상적인 이미지로 보이지만 실제 PNG파일을 구성하는 각 픽셀 데이터에 유효한 값을 추가한 스테가노그래피(Steganography) 기법을 사용한 악성 파일이다. 스테가노그래피란 사진이나 음악 파일 등에 특정한 정보(파일)를 숨기는 기술로, 실제로 전달하고자 하는 비밀 메시지나 정보 등을 다른 정보에 은닉하는 방법이다.
[그림 6] 다운로드되는 PNG 이미지
[그림 7]은 해당 PNG 이미지 파일을 구성하는 바이너리를 나타내며 정상적인 헤더 구조 및 이미지 데이터를 포함하고 있다.
PNG 파일의 각 픽셀 정보를 구성하는 R(Red), G(Green), B(Blue) 3바이트 중 G, B 에 해당하는 값에 각 4비트씩 나누어 유효 데이터가 포함되어 있다.
CMD-2 에서는 해당 데이터를 디코딩하여 파워쉘(PowerShell) 명령의 인자로 실행되며, 디코딩 및 난독화를 제거한 스크립트는 [표 3]과 같다.
해당 스크립트는 파워쉘 ‘Get-Culture’ 명령을 수행하여 시스템의 언어가 일본어로 설정된 경우에만 추가 다운로드를 수행한다.
어즈니프 변형 악성코드의 주요 특징
2018년 10월과 9월 각각 접수된 변형 샘플의 차이점은 다운로드를 수행하는 CMD/PowerShell 명령 구조에 있다.
[그림 8]은 지난 9월 발견된 변형에서 스크립트를 실행하는 구조이며, cmd.exe 인자로 하드코딩된 다운로드를 포함한 파워쉘 스크립트를 실행한다.
반면 10월 발견된 변형에서는 베블로 악성코드를 다운로드 받는 주소가 엑셀 문서 내 하드코딩 되어 있지 않으며, 스테가노그래피를 적용한 이미지를 다운로드 받은 후 디코딩을 완료한 이후에 최종 다운로드 주소를 획득할 수 있다.
난독화 해제된 파워쉘 스크립트는 PIPE 명령(‘|ʼ)을 통해 윈도우 클립보드(CLIP.EXE)로 전달되며 파워쉘에서 [System.Windows.Forms.Clipboard]::GetText() 함수를 통해 인자로 사용된다.
최종 다운로드된 실행 파일은 베블로로 불리는 악성코드로, 주로 어즈니프 유포 과정의 중간 단계로 함께 사용되고 있다. 베블로 악성코드의 주요 기능은 익스플로러(explorer.exe, iexplore.exe) 프로세스의 인젝션을 통한 어즈니프 악성코드의 다운로드이며, 추가 동작을 위한 별도의 C&C를 운영하여 공격자의 명령을 수행한다.
인젝션이 성공한 이후에는 추가 동작을 위한 컨피그(Config) 다운로드를 위해 특정(oaril.com/auth/) C&C 주소로 접속을 시도하며, 시스템 정보, 사용자명, 브라우저 쿠키 정보 등을 전송한다. 이후 공격자의 명령에 따라 어즈니프 악성코드를 다운로드 한다.
진단 정보 및 예방
지금까지 최근 일본 금융권에 피해를 입히고 있는 금융 정보 탈취 악성코드인 어즈니프 변형의 유포 방식을 알아보았다. 2018년 11월 현재, 해당 악성코드에 의한 국내 피해 사례는 접수된 바 없다. 앞서 설명했듯이 시스템의 언어가 일본어일때만 악성코드를 다운로드하기 때문이다. 하지만 어즈니프뿐만 아니라 현재 다양한 악성코드가 활동하고 있는 만큼 기본 보안 수칙을 준수해 감염 가능성을 최소화해야 한다.
우선 악성코드 공격자가 스팸메일을 악용하는 사례가 많은 만큼 알 수 없는 발신자의 메일은 확인하지 않고 즉시 삭제하는 것이 바람직하다. 덧붙여, 메일 첨부 파일 또는 다운로드 한 파일이 실행 파일일 경우에는 의도한 파일이 맞는지 확인한 후 실행해야 한다. 안티바이러스 제품의 엔진 버전을 최신으로 유지하고, 실시간 검사 기능을 실행한 상태에서 시스템을 사용할 것을 권장한다. 아울러 윈도우 운영체제를 포함하여 어도비 플래시, 자바 등 주요 프로그램도 최신 버전으로 업데이트해야 한다.
V3 제품군에서는 어즈니프 악성코드를 다음과 같은 진단명으로 탐지 및 치료하고 있다.
<V3 제품군 진단명>
- MSOffice/Downloader (2018.10.25.00)
- PNG/Encoded (2018.11.07.03)
- Trojan/Win32.Bebloh.C2786445 (2018.10.25.08)
- Trojan/Win32.Ursnif.C2785938 (2018.10.25.05)
- Trojan/Win32.Ursnif..R243031 (2018.11.06.05)
지금까지 어즈니프 변형의 최신 유포 방식에 대해서만 설명했다. 어즈니프 악성코드의 행위 분석, 주요 기능 및 특징 등에 관한 심층 분석 보고서는 안랩 홈페이지(www.ahnlab.com)에서 다운로드할 수 있다.
- AhnLab분석연구팀 정진성 수석, 김아영 선임 연구원