최근 Magniber 랜섬웨어는 멀버타이징을 통해 활발히 유포되고 있다. 멀버타이징(Malvertising)은 광고 서비스의 정상적인 네트워크를 이용하여 악성코드를 유포 및 감염시키는 방법이다.  

유포 건수가 증가하는 만큼, 랜섬웨어 유포 방식 또한 활발하게 변화되고 있다. 사용자 시스템에 랜섬웨어 파일을 숨기는 ADS Data Hiding 기법이 사용된 지 일주일이 채 지나지 않아, Windows 정상 프로그램인 "forfiles.exe"를 이용하는 실행방식으로 변하였다. 그리고 최근에 들어 파일 은폐 방식이 사라지고 "rundll32.exe"를 이용한 실행 방식으로 변하였다.

Magniber 랜섬웨어를 사용자 시스템에 유포하는 자바 스크립트의 기간별 변화는 다음과 같다. 

<그림 1. 복호화된 2월 7일 Magniber 랜섬웨어 유포 스크립트>

(샘플 MD5 : 6f4753b9629eecebbf15d1afe9ea4bb5)

 2월 7일 : ADS 스트림에 숨겨진 랜섬웨어 데이터를 WMI 쿼리를 통해 실행


<그림 2. 복호화된 2월 20일 Magniber 랜섬웨어 유포 스크립트>

(샘플 MD5 : b82a0a91130751fdb0e6b535c7e186d3)

2월 20일 : 기존 실행방식에 "forfiles.exe"를 통해 실행하는 방식이 추가됨.


<그림 3. 복호화된 2월 28일 Magniber 랜섬웨어 유포 스크립트>

(샘플 MD5 : 3b570cefa9908a796e2dc6f0fa3d176f)

 2월 28일 : ADS 파일 은폐 방식이 사라지고 %appdata% 경로에 ".com" 확장자로 생성 후, WMI 쿼리를 통해 실행


<그림 4. 복호화된 3월 5일 Magniber 랜섬웨어 유포 스크립트>

(샘플 MD5 : 4388df3ea6bf2cd9b3c450bf088ab420)

3월 5일 : 이전과 마찬가지로  %appdata% 경로에 ".com" 확장자로 생성 후,  WMI 쿼리를 통해 직접 실행하지 않고 "rundll32.exe"를 통해 랜섬웨어 파일을 실행하며, 실행이 실패할 경우  "wscript.exe"를 통해 실행


현재 V3에서는 Magniber 랜섬웨어를 수동, 실시간 모두 진단이 가능하며, 다음의 진단명으로 진단하고 있다.

- 파일 진단 : Trojan/Win32.Magniber

(엔진 반영 버전 : 2018.03.05.03)

- 행위 진단 : Malware/MDP.Ransome.M1659

(엔진 반영 버전 : 2018.02.27.00)

Posted by 분석팀

멀버타이징을 통해 유포되는 Magniber 랜섬웨어는 최근 파일 은폐 기법(ADS Data Hiding)을 이용해 파일을 생성한 후 WMI 쿼리를 통해 사용자 시스템에서 실행된다는 사실이 하기 URL의 게시글을 통해 공유되었다.   

Magniber 랜섬웨어 파일 생성 방식의 변화(파일은폐) (URL : http://asec.ahnlab.com/1090)

이어서 금일 수집된 Magniber 랜섬웨어를 유포하는 자바 스크립트에서 ADS 스트림에 생성한 파일을 forfiles.exe를 통해 실행하는 기법이 새롭게 추가되었다.


[그림 1] 난독화된 Magniber 랜섬웨어 유포 스크립트

(샘플 MD5 : b82a0a91130751fdb0e6b535c7e186d3)


[그림 2] 복호화된 Magniber 랜섬웨어 유포 스크립트


[그림 2] 는 금일 접수된 [그림 1]의 난독화된 Magniber 랜섬웨어 유포 스크립트를 복호화한 스크립트이다. [그림 2] 의 빨간색 박스의 실행문이 새롭게 추가되었고, 해당 실행문은 사용자 시스템의 ADS 스트림에 생성된 랜섬웨어 파일을 forfiles.exe를 통해 실행하는 기능이다. 

forfiles.exe 는 Windows 운영체제에서 제공되는 프로그램으로서, 선택적인 파일을 대상으로 커맨드 명령을 수행하게 하는 기능을 가지고 있다. forfiles.exe를 통하면 ADS 스트림에 저장된 파일이 Window 7, Windows 10에서도 실행 가능하였고, 이는 WMI 쿼리가 비활성화된 시스템을 감염하기 위한 목적으로 보인다.


forfiles /p c:\\windows\\system32 /m notepad.exe /c \""+ FilePath + "\"" 

[표 1] Magniber 랜섬웨어를 실행하는 forfiles.exe 커맨드


[표 1]의 커맨드 내용을 보면, forfiles.exe의 명령 반복 횟수를 한 번으로 제한하기 위해 앞단의 명령 인자("/p c:\\windows\\system32 /m notepad.exe)가 사용되었다. 

따라서 이어지는 명령 인자(/c \"" + FilePath + "\"") 가 한 번 실행되며, 공격자는 해당 명령을 통해 forfiles.exe를 단일 파일을 실행하기 위한 목적으로 사용하였다.

  

현재 V3에서는 Alternate Data Stream(ADS)에 쓰여지는 파일이 수동, 실시간 모두 진단이 가능하며, 다음의 진단명으로 진단하고 있다.

- 파일 진단 : Trojan/Win32.Magniber

(엔진 반영 버전 : 2018.02.20.03)

- 행위 진단 : Malware/MDP.Ransome.M1171

(엔진 반영 버전 : 2016.12.03.01)

Posted by 분석팀

한글 파일 취약점은 주로 APT 공격에 사용 되었으며 파일명과 본문 내용은 정치,외교 관련 내용을 포함한 경우가 많았다.

그러나, 최근 특수한 내용이 아닌 일반적인 내용을 담은 한글 EPS 취약점이 발견되었다.


[그림 1] 한글문서 취약점 (1)

[그림 2] 한글 문서 취약점 (2)

[그림 3] 한글 문서 취약점 (3)


CVE-2017-8291 취약점이 발생하는 Encapsulated PostScript 파일이 포함 된 한글 문서가 [그림 1~3]과 같이 다양한 내용을 포함하여 악의적으로 제작되고 있다.

따라서, 한글 문서를 사용하는 시스템에서는 프로그램을 최신 버전으로 업데이트하여 취약점이 발생되지 않게 해야하며, 또한 발신자가 불분명한 의심스러운 이메일에 첨부된 문서는 열어보지 않도록 각별한 주의가 요구된다.


현재 V3에서는 한글 취약점 문서파일을 다음 진단명으로 진단하고 있다.

- 파일 진단 : EPS/Dropper.Gen (2017.12.14.04)


실제 악성행위를 하는 PE는 Explorer.exe에 인젝션되어 동작하며 메모리상에만 존재한다.

현재 V3에서 다음 진단명으로 진단하고 있다.

- 파일 진단 32bit : Trojan/Win32.Navepry.R215554 (2017.12.15.02)

- 파일 진단 64bit: Trojan/Win64.Navepry.R215553 (2017.12.15.02)


Posted by 분석팀

최근 알려진 신종 랜섬웨어인 GandCrab이 국내에서 유포되고 있다. 해당 랜섬웨어는 Exploit Kit에 의해 취약한 웹사이트에 방문 시 감염된다. 최초 발견된 이후 부터 현재까지 지속적으로 유포가 되고 있다.

을 안랩의 악성코드 위협 분석 및 클라우드 진단 시스템인 ASD(AhnLab Smart Defense)에서 확인되었다.

출처: http://asec.ahnlab.com/1066?category=342979 [ASEC Threat Research & Response blog]

이 랜섬웨어에 감염될 경우 파일의 확장자가 .GDCB 로 변경되고 GDCB-DECRYPT.txt 파일이 생성된다.

[그림 1. 랜섬웨어 감염 시 확장자 변경]

GandCrab 랜섬웨어가 실행 될 시 자기 자신을 %appdata%\Microsoft\[Randomstr{6}].exe 로 복사 한 뒤 레지스트리 등록을 통해 PC에 남아 지속적으로 실행되도록 한다.


파일 생성 경로 

 %appdata%\Microsoft\[Randomstr{6}].exe


 레지스트리

 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

[ 표 1. 지속적으로 실행하기 위한 파일 복사 및 자동 실행 등록 ]


이 후 특정 프로세스가 동작 중인지 확인하고 동작 중 일 경우 해당 프로세스를 종료한다.

프로세스 종료 대상 

msftesql.exe
sqlagent.exe
sqlbrowser.exe
sqlservr.exe
sqlwriter.exe
oracle.exe
ocssd.exe
dbsnmp.exe
synctime.exe
mydesktopqos.exe
agntsvc.exeisqlplussvc.exe
xfssvccon.exe
mydesktopservice.exe
ocautoupds.exe
agntsvc.exeagntsvc.exe
agntsvc.exeencsvc.exe
firefoxconfig.exe
tbirdconfig.exe
ocomm.exe
mysqld.exe
mysqld-nt.exe
mysqld-opt.exe
dbeng50.exe
sqbcoreservice.exe
excel.exe
infopath.exe
msaccess.exe
mspub.exe
onenote.exe
outlook.exe
powerpnt.exe
steam.exe
thebat.exe
thebat64.exe
thunderbird.exe
visio.exe
winword.exe
wordpad.exe

[ 표 2. 프로세스 종료 대상 목록 ]


또한 C&C 연결을 통해 사용자의 정보를 수집하여 전송한다. 수집하는 사용자 정보 중 현재 실행 중인 프로세스 목록을 확인하여 AntiVirus 제품을 사용 중일 경우 해당 제품을 목록화 하여 함께 전송한다. 이 때 확인하는 프로세스 목록은 아래와 같다.

사용 중인 AntiVirus 제품 확인 목록

AVP.EXE
ekrn.exe
avgnt.exe
ashDisp.exe
NortonAntiBot.exe
Mcshield.exe
avengine.exe
cmdagent.exe
smc.exe
persfw.exe
pccpfw.exe
fsguiexe.exe
cfp.exe
msmpeng.exe

[ 표 3. 사용자가 사용 중인 AntiVirus 제품 확인 대상 ]

그 외에도 IP, PC_USER, PC_NAME, PC_GROUP, 언어, OS version, OS bit, 식별자, 저장장치 정보를 함께 전송한다.

C&C 도메인 

no****ra***m.bit
em***o*t.bit
ga****ab.bit

[ 표 4. C&C 도메인 ]


이 후 암호화를 진행하는데 암호화 대상은 아래와 같다.

암호화 대상 확장자 (456개)

 .1cd, .3dm, .3ds, .3fr, .3g2, .3gp, .3pr, .7z, .7zip, .aac, .ab4, .abd, .acc, .accdb, .accde, .accdr, .accdt, .ach, .acr, .act, .adb, .adp, .ads, .agdl, .ai, .aiff, .ait, .al, .aoi, .apj, .apk, .arw, .ascx, .asf, .asm, .asp, .aspx, .asset, .asx, .atb, .avi, .awg, .back, .backup, .backupdb, .bak, .bank, .bay, .bdb, .bgt, .bik, .bin, .bkp, .blend, .bmp, .bpw, .bsa, .c, .cash, .cdb, .cdf, .cdr, .cdr3, .cdr4, .cdr5, .cdr6, .cdrw, .cdx, .ce1, .ce2, .cer, .cfg, .cfn, .cgm, .cib, .class, .cls, .cmt, .config, .contact, .cpi, .cpp, .cr2, .craw, .crt, .crw, .cry, .cs, .csh, .csl, .css, .csv, .d3dbsp, .dac, .das, .dat, .db, .db_journal, .db3, .dbf, .dbx, .dc2, .dcr, .dcs, .ddd, .ddoc, .ddrw, .dds, .def, .der, .des, .design, .dgc, .dgn, .dit, .djvu, .dng, .doc, .docm, .docx, .dot, .dotm, .dotx, .drf, .drw, .dtd, .dwg, .dxb, .dxf, .dxg, .edb, .eml, .eps, .erbsql, .erf, .exf, .fdb, .ffd, .fff, .fh, .fhd, .fla, .flac, .flb, .flf, .flv, .flvv, .forge, .fpx, .fxg, .gbr, .gho, .gif, .gray, .grey, .groups, .gry, .h, .hbk, .hdd, .hpp, .html, .ibank, .ibd, .ibz, .idx, .iif, .iiq, .incpas, .indd, .info, .info_, .ini, .iwi, .jar, .java, .jnt, .jpe, .jpeg, .jpg, .js, .json, .k2p, .kc2, .kdbx, .kdc, .key, .kpdx, .kwm, .laccdb, .lbf, .lck, .ldf, .lit, .litemod, .litesql, .lock, .log, .ltx, .lua, .m, .m2ts, .m3u, .m4a, .m4p, .m4v, .ma, .mab, .mapimail, .max, .mbx, .md, .mdb, .mdc, .mdf, .mef, .mfw, .mid, .mkv, .mlb, .mmw, .mny, .money, .moneywell, .mos, .mov, .mp3, .mp4, .mpeg, .mpg, .mrw, .msf, .msg, .myd, .nd, .ndd, .ndf, .nef, .nk2, .nop, .nrw, .ns2, .ns3, .ns4, .nsd, .nsf, .nsg, .nsh, .nvram, .nwb, .nx2, .nxl, .nyf, .oab, .obj, .odb, .odc, .odf, .odg, .odm, .odp, .ods, .odt, .ogg, .oil, .omg, .one, .orf, .ost, .otg, .oth, .otp, .ots, .ott, .p12, .p7b, .p7c, .pab, .pages, .pas, .pat, .pbf, .pcd, .pct, .pdb, .pdd, .pdf, .pef, .pem, .pfx, .php, .pif, .pl, .plc, .plus_muhd, .pm!, .pm, .pmi, .pmj, .pml, .pmm, .pmo, .pmr, .pnc, .pnd, .png, .pnx, .pot, .potm, .potx, .ppam, .pps, .ppsm, .ppsx,.ppt, .pptm, .pptx, .prf, .private, .ps, .psafe3, .psd, .pspimage, .pst, .ptx, .pub, .pwm, .py, .qba, .qbb, .qbm, .qbr, .qbw, .qbx, .qby, .qcow, .qcow2, .qed, .qtb, .r3d, .raf, .rar, .rat, .raw, .rdb, .re4, .rm, .rtf, .rvt, .rw2, .rwl, .rwz, .s3db, .safe, .sas7bdat, .sav, .save, .say, .sd0, .sda, .sdb, .sdf, .sh, .sldm, .sldx, .slm, .sql, .sqlite, .sqlite3, .sqlitedb, .sqlite-shm, .sqlite-wal, .sr2, .srb, .srf, .srs, .srt, .srw, .st4, .st5, .st6, .st7, .st8, .stc, .std, .sti, .stl, .stm, .stw, .stx, .svg, .swf, .sxc, .sxd, .sxg, .sxi, .sxm, .sxw, .tax, .tbb, .tbk, .tbn, .tex, .tga, .thm, .tif, .tiff, .tlg, .tlx, .txt, .upk, .usr, .vbox, .vdi, .vhd, .vhdx, .vmdk, .vmsd, .vmx, .vmxf, .vob, .vpd, .vsd, .wab, .wad, .wallet, .war, .wav, .wb2, .wma, .wmf, .wmv, .wpd, .wps, .x11, .x3f, .xis, .xla, .xlam, .xlk, .xlm, .xlr, .xls, .xlsb, .xlsm, .xlsx, .xlt, .xltm, .xltx, .xlw, .xml, .xps, .xxx, .ycbcra, .yuv, .zip

[ 표 5. 암호화 대상 확장자 ]

일부 경로 및 파일명은 암호화 대상에서 제외한다.

암호화 제외 경로 

 암호화 제외 파일명

\ProgramData\
\Program Files\
\Tor Browser\
\Ransomware\
\All Users\
\Local Settings\
%ProgramFiles%
%CommonProgramFiles%
%windir%
%LOCALAPPDATA%

desktop.ini
autorun.inf
ntuser.dat
iconcache.db
bootsect.bak
boot.ini
ntuser.dat.log
thumbs.db
GDCB-DECRYPT.txt

[ 표 6. 암호화 제외 대상 ]

암호화 완료 후 복원을 불가능 하도록 하기 위해 wmic, vssadmin 등을 활용하여 Volumn Shadow Copy를 삭제한다.

[ 그림 2. 랜섬노트 ]

랜섬웨어의 특성상 완벽한 복구 방법이나 예방법은 없지만, 피해를 최소화하기 위해서 항상 윈도우 보안 패치 및 V3 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 중요하다.

또한 신뢰할 수 없는 출처의 메일 등의 첨부 파일 실행 및 확인되지 않은 웹 페이지 방문 시 사용자의 각별한 주의와 플래시 취약점을 이용함으로 플래시 보안 업데이트도 최신으로 유지가 필요하다.

현재 V3에서는 GandCrab 랜섬웨어를 다음 진단명으로 진단 하고 있다.

- 파일 진단 : Trojan/Win32.GandCrypt(2018.02.05.07)
- 행위 진단 : Malware/MDP.Ransom.M1171



Posted by 분석팀

멀버타이징(Malvertising)을 통해 유포되는 Magniber 랜섬웨어의 최근 유포방식에서 사용자 시스템에 랜섬웨어 파일을 생성할때 Alternate Data Stream(ADS)를 활용한 파일 은폐 기법이 사용되었다. 멀버타이징(Malvertising)은 광고 서비스의 정상적인 네트워크를 이용하여 악성코드를 유포 및 감염 시키는 방법이다.

[그림 1], [그림 2]는 각각 암/복호화된 유포 스크립트를 나타낸다. [그림 2]의 복호화된 Magniber 유포 스크립트를 보면, %temp% 경로에 생성하는 파일명이 “wa0flL0Y: wa0flL0Y” 임을 확인할 수 있다.

[그림 1] 난독화된 Magniber 랜섬웨어 유포 스크립트

(샘플 MD5 : 6f4753b9629eecebbf15d1afe9ea4bb5)


[그림 2] 복호화된 Magniber 랜섬웨어 유포 스크립트


해당 기법을 통해 로컬에 저장된 파일은 디렉터리에서 확인하면 [그림 3]과 같이 파일의 크기가 0byte 로 보여진다하지만 [그림 4]와 같이 커맨드 명령(dir /r)을 통해 해당 경로를 확인해 보면 “wa0flL0Y: wa0flL0Y” 라는 이름의 Alternate Data Stream(ADS)에 실제 랜섬웨어 파일이 쓰여진다.


[그림 3] temp 폴더에 생성된 파일


[그림 4] 커맨드 명령을 통해 확인한 실제 폴더구조


Alternate Data Stream(ADS) 에 쓰인 실제 랜섬웨어 파일은  [그림 2]의 복호화된 유포 스크립트의 마지막 줄의 실행문에 의해 실행되며, [표 1]의 WMIC 쿼리를 통해 실행한다.

windows xp 이후, ADS에 생성된 파일은 "start [파일명]" 과 같은 커맨드 명령으로는 실행되지 않지만 WMIC 쿼리를 통하면 windows 7 환경에서도 ADS에 생성된 파일이 실행 가능함을 확인하였다.

WMIC process call create "%temp%\\wa0f1LoY:wa0f1LoY 

[표 1] 실행되는 WMIC 쿼리


현재 V3에서는 Alternate Data Stream(ADS)에 쓰여지는 파일이 수동, 실시간 모두 진단이 가능하며다음의 진단명으로 진단하고 있다.

- 파일 진단 : Trojan/Win32.Magniber

(엔진 반영 버전 : 2018.02.07.01)

- 행위 진단 : Malware/MDP.Ransome.M1171

(엔진 반영 버전 : 2016.12.03.01)


Posted by 분석팀

지난 1월 17일 국내 대형 포털사이트를 대상으로 검색어 조회 수와 블로그 방문자 수를 늘려 순위를 조작한 조직이 적발되었다는 뉴스가 보도되었다. 해당 조직은 특정 프로그램을 제작하여 고가의 유료 프로그램으로 판매하였다.

안랩은 이와 같은 유형의 프로그램, 일명 ‘조작기’나 ‘매크로 프로그램’을 악성 파일로 분류하고 진단하고 있다. 하지만 정보 유출 목적의 파일이나 랜섬웨어처럼 불특정 다수를 대상으로 악의적으로 공격하는 것이 아닌 상업적인 이득을 목적으로 거래되는 파일이라는 점을 고려하여, 그 유형을 달리 분류한다. 이러한 악성 파일은 수년 전부터 확인되었으며, 유포 경로를 확인해본 결과 회원제 전용 유료 자료실 또는 개인 간의 1:1 거래로 주로 거래된다.

아래는 국내 대형 포털사이트의 카페에 자동으로 글을 올리거나 블로그 조회 수를 조작하는 유해 프로그램에 대한 대표 예시와 동작 방식 일부를 설명한다. 

[1] 카페 자동 글 작성

다음은 네이버 포털사이트 카페에 자동으로 글을 작성하는 프로그램이다. 기본적으로 웹 기반으로 컨텐츠를 주고 받으며 프로그램은 GUI 모드로 동작한다. 아래는 주요 기능과 특징이다.

  • 로그인 한 계정으로 가입한 카페 정보 출력: 카페 목록, 게시판 목록 등
  • 글을 올릴 때 작성자로 이용될 네이버 계정 선택 가능
  • 에디터를 이용하여 카페에 올릴 게시글 미리 작성
  • 선택된 정보를 바탕으로 게시글 자동 작성
  • 최소 30 초~ 주기로 글 작성 시작/예약/정지 가능

카페 자동 글 작성을 목적으로 하는 예시 프로그램 기본 화면

카페 자동 글 작성을 목적으로 하는 예시 프로그램의 실행 화면 일부

로그램 실행 시 기본 화면은 위와 같다. 자동 글 작성 기능을 수행하기 전에 먼저 작업할 정보를 생성한다. 본인이(글 작성자) 가입한 카페 정보를 확인하기 위해 로그인을 하고 각 카페의 게시판 목록을 웹에 쿼리함으로서 얻어온다. 프로그램 내 포함된 코드를 보면 네이버 카페의 웹 페이지 소스에 사용된 카페ID 값 등을 이용하여 게시판 목록 등을 얻어오는 것을 확인할 수 있다. 

네이버 카페 웹 페이지 소스 일부

작성할 글은 HTML 웹 에디터와 동일한 화면으로 이 부분에 내용을 작성한다. 이후 업로드 대상 카페와 게시판, 글 내용을 선택한 뒤에 일정 시간 주기(사용자 선택 가능)를 바탕으로 스레드를 생성한다. 


특징적으로 글 컨텐츠 전송은 정상적으로 PC나 모바일 웹 브라우저를 거치지 않기 때문에 프로그램 내 하드코딩 되어 있는 임의의 User-Agent 정보를 포함하여 전송되어야 한다. 이 프로그램은 iPad 의 User-Agent 를 이용하였으며 이외에도 iOS 등 모바일 브라우저에서 작성된 것으로 위장하여 데이터를 서버에 전송한다. 

프로그램 내 코드 - 글 작성 시 접속하는 주소와 전송되는 정보 일부
 
실제로 프로그램을 이용하여 현재 운영되고 있는 카페에 다음과 같이 짧은 시간 내에 다수 개의 글이 작성되는 것을 확인하였다. 이러한 유해 프로그램은 주로 상업적인 목적으로 동일한 내용의 광고성 글을 남기기 위해 이용될 수 있다. 

프로그램 실행 후 자동으로 글이 업로드 된 카페 게시판 예시

[2] 블로그 조회 수 조작

다음은 카카오의 티스토리 블로그 조회 수를 조작할 수 있는 프로그램이다. 조회 수는 블로그 게시글 주소에 직접 접속하거나 검색 등 다른 유입 경로(키워드 유입)를 거쳐서 올리게 되는데 이 프로그램은 이 두 가지 방식을 모두 이용한다. 조회 수 조작이나 유입 경로 조작 등을 포함한 어뷰징은 저품질/광고성 블로그가 검색 상위에 랭크되게 할 수 있다. 또한, 경쟁 블로그를 대상으로 어뷰징을 하게 될 경우 엉뚱한 검색 키워드로 유입 경로와 조회 수를 조작 (Ex. ‘신제품 리뷰’ 관련 글이 ‘여행’ 키워드로 다수 유입된 것으로 조작) 할 수 있기 때문에 블로그 운영자와 다른 사용자에게 피해를 줄 수 있다.
 
이러한 블로그 조회 수 조작 프로그램의 상당수는 비교적 단순하게 HTTP Request 접속을 반복적으로 실행하게 하는 것으로 동작한다. 따라서 동일 IP에 대해서는 1건의 접속으로 처리하는 블로그 서비스의 경우 정상적으로 기능하지 않는다. 또한, 접속자 정보를 계속 변경하기 위해 다른 유사 프로그램에서는 별도의 VPN, 혹은 프록시 프로그램을 이용하는 프로그램도 확인되었다. 아래는 예시 프로그램의 주요 기능과 특징이다. 

  • 일정 주기 간격으로 특정 URL 반복 접속 – HTTP, User-Agent 고정
  • 프록시를 이용하여 접속 IP 변경 가능
  • 계정을 이용하여 특정 계정으로 접속 가능

블로그 조회 수 조작을 목적으로 하는 예시 프로그램 실행 화면 일부

파일 내에는 수십 개의 다른 User-Agent 정보를 포함하여 HTTP 클라이언트 요청을 하는데 이를 통해 실제 웹 브라우저에서 접속하는 것으로 위장해 블로그 서비스 서버에 전송된다. 아래 패킷 데이터를 보면 1초 간격으로 블로그에 접속하는 것을 확인할 수 있다.

프로그램 동작 중일 때 웹 쿼리 패킷

실제로 프로그램을 이용하여 단시간 동작했을 때 아래와 같이 특정일 방문자 수가 급격하게 올라간 것을 확인하였다. 

조회 수 조작 결과

위에서 살펴본 바와 같이 개인의 목적에 따라 ‘조작기’ ‘매크로 프로그램’이 실제로 유포, 거래, 이용되고 있다. 이는 비정상적인 경로를 이용하여 서비스를 어뷰징해서 서비스 제공 업체와 일반 사용자에게 피해를 줄 수 있다. 

안랩에서는 이러한 유해 가능 프로그램류에 대해 아래와 같이 Unwanted 혹은 Hacktool 류로 진단하고 있다. 이 진단은 V3 제품(기업용 제품 또는 개인용 V3 유료 제품) 옵션에서 ‘유해 가능 프로그램’을 검사 대상으로 설정했을 때 탐지할 수 있다.

- Hacktool/Win32.AutoMacro
- Unwatned/Win32.AutoMacro


Posted by 분석팀

최근 소개 된 것과 같이 변형 된 Hermes 랜섬웨어가 국내에 유포 중이다. 특이한 점은 이 Hermes가 자사 AhnLab을 타겟으로 한 정황이 포착되었다. Hermes는 시스템의 특정 폴더와 파일을 암호화에서 제외하는데 이 제외 폴더 목록에 'AhnLab'을 포함하고 있다. 이는 V3 기능 중 자사 제품 설치 폴더의 파일이 암호화 될 경우 자체 보호 기능에 의해 사용자가 인지할 수 있도록 하는 부분을 우회하기 위한 것으로 추정된다.


자사의 제품을 설치 할 시 Program Files 경로에 AhnLab이라는 폴더가 생성되는데, Hermes는 폴더명에 AhnLab이 포함 될 경우 암호화 대상에서 제외한다. 이는 과거 2017년 초의 Hermes에서는 없었던 것으로 최근의 변형에 반영되었다.


2017년 초의 Hermes와의 공통점 및 차이점은 아래와 같다.

[표] - Hermes 랜섬웨어 초기 버전과 최근 버전의 공통 및 차이점


섬웨어의 피해를 최소화하기 위해서 사용자는 항상 윈도우 보안 패치 및 V3 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 중요하다또한 신뢰할 수 없는 출처의 메일 등의 첨부 파일 실행 및 확인되지 않은 웹 페이지 방문 시 사용자의 각별한 주의와 플래시 취약점을 이용함으로 플래시 보안 업데이트도 최신으로 유지가 필요하다.

현재 V3 에서 Hermes 랜섬웨어는 다음 진단명으로 진단하고 있다.

파일 진단 : Trojan/Win32.Hermesran, Trojan/Win32.RansomHermes

행위 진단 : Malware/MDP.Ransom.M1171



Posted by 분석팀

2017년에 확장자 명을 변경하지 않는 랜섬웨어로 알려졌던 ‘Hermes(헤르메스)가 국내에 다시 등장했다. 기존과 마찬가지로 여전히 감염된 파일의 확장자를 변경하지 않으며, 아래와 같이 Time Date Stamp 정보로 보아 최근 제작되어 유포 중임을 알 수 있다.

[그림 1] – 최근 유포 된 파일의 Time Date Stamp 정보


최근 유포 중인 Hermes는 악성 행위를 수행하기 전에, 아래 레지스트리를 확인하여 해당 시스템의 언어 국가를 참조하여 특정 국가의 경우 감염에서 제외한다.


확인 레지스트리

확인 값

해당 국가

HKLM\SYSTEM\ControlSet001\Control\Nls\Language\InstallLanguage

0419

러시아

0422

우크라이나

0423

벨라루스






[표 1] – 감염 제외 국가

해당 국가가 아닌 경우 감염 행위를 수행하는데, 자기 자신을 %TEMP% 폴더에 svchosta.exe라는 파일명으로 복사 후 CMD명령을 통해 동작한다.

자기 파일 복사

/C copy /B “[원본파일]” “%Temp%\svchosta.exe”

복사 된 파일 실행

/C start "%Temp%\svchosta.exe”


[표 2] – 자기 파일 복사 및 실행 CMD 명령


복사 된 svhosta.exe가 실행 되면 정상 파일들을 암호화하는데 암호화 대상 조건은 아래와 같다.

암호화 제외 폴더 명

AhnLab, Microsoft, Chrome, Mozilla, Windows, esktop, $Recycle.Bin

암호화 제외 확장자

exe, dll, lnk, ini, hrmlog



[표3] - 암호화 제외 폴더 및 확장자


Hermes는 드라이브를 검색하여 정상 파일을 암호화하며 해당 동작이 완료되면, 볼륨 쉐도우 카피 삭제 명령을 수행하는 bat파일을 생성 및 실행한다.

Bat 파일 생성 경로

Bat 파일 생성 파일명

C:\users\Public

window.bat

[표 4] – 볼륨 쉐도우 카피 삭제 기능을 하는 bat파일

 

생성 된 window.bat는 볼륨 쉐도우 카피 저장 공간을 작게 조정하여 간접적으로 내부 파일들을 삭제되도록 한 후 모든 볼륨 쉐도우 카피 삭제를 수행한다. 또한 아래와 같이 특정 확장자의 백업 파일들까지 삭제하여 사용자의 복구를 힘들게 한다.

[그림 2] – 볼륨 쉐도우 카피 삭제 기능을 하는 bat 파일 내용 (window.bat)


또한 정상 파일 암호화 시, 각 폴더 마다 DECRYPT_INFORMATION.html 명의 랜섬 노트를 생성하며, 복구를 원할 시 비트코인을 요구한다.

[그림 3] – Hermes 랜섬노트 (DECRYPT_INFORMATION.html)


섬웨어의 피해를 최소화하기 위해서 사용자는 항상 윈도우 보안 패치 및 V3 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 중요하다. 또한 신뢰할 수 없는 출처의 메일 등의 첨부 파일 실행 및 확인되지 않은 웹 페이지 방문 시 사용자의 각별한 주의와 플래시 취약점을 이용함으로 플래시 보안 업데이트도 최신으로 유지가 필요하다.

현재 V3 에서 Hermes 랜섬웨어는 다음 진단명으로 진단하고 있다.

파일 진단 : Trojan/Win32.Hermesran (2018.01.28.08)

- 행위 진단 : Malware/MDP.Ransom.M1171


Posted by 분석팀

지난 118일 안랩은 고객사로부터 APT 공격 형태와 유사한 WSF(Windows Script File) 악성코드를 접수받았다.


WSF(Windows Script File)파일은 윈도우에서 실행되는 스크립트 파일의 확장자로 사용되며 자바스크립트, VB 스크립트 등 다양한 언어를 지원한다. 출처가 불분명한 수신 메일에 WSF 확장자, JS 확장자 등 스크립트 파일이 첨부되어 있다면, APT 악성코드 이외에도 랜섬웨어 등 다양한 악성코드에 노출될 수 있으므로 사용자의 각별한 주의가 필요하다.

 

첨부된 WSF 악성코드 파일의 전체적인 APT 동작 과정은 [그림 1]과 같다.

 

[그림 1] 악성코드의 전체적인 동작 과정

 

첨부된 WSF 파일을 실행하면 사용자에게 정상 한글 문서를 화면에 보여주고, 백그라운드에서는 악성코드 유포 서버로부터 악성 DLL을 다운받아 실행한다. 실행된 악성 DLL에는 시스템 정보를 유출하는 기능과 추가 악성코드를 다운로드 하는 기능이 존재한다.


 

1) “정보보고.WSF” 파일의 동작 과정

정보보고.WSF”는 내부에 정상 HWP 파일을 포함하고 악성 DLL을 다운로드 및 regsvr32.exe에 악성 DLL을 적재하는 기능을 갖고 있다.

특이한 점은 이후 설명할 ㄱ)~) 까지의 악성 행위를 수행하는 동안에 각 단계마다 특정 사이트에 접속을 시도한다. 이는 악성코드 제작자가 자신이 유포한 WSF 파일을 통해 공격이 어디까지 수행되었고, 파급력은 어느 정도인지 확인하기 위해 사용하는 기법으로 추정된다.

 

악성 행위 단계

사이트 접속 (GET 통신)

)~)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=1

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=2

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=3

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=4

[1] 악성 행위 단계 별 접속하는 사이트 목록

 

) “정보보고.HWP” 파일 드롭 및 실행

정보보고.wsf 파일 내부에는 [그림 2]와 같이 HWP 파일을 BASE64 인코딩된 상태로 포함하고 있으며 실행 시 HWP 파일을 현재 디렉터리 경로에 정보보고.hwp”라는 이름으로 드롭 및 실행한다.

 

[그림 2] BASE64로 인코딩된 HWP 바이너리


[그림 3] “정보보고.hwp” 내용

 

) 압축 프로그램 탐색 및 압축해제 파라미터 설정

정보보고.hwp 파일을 실행 후 WSF 파일은 시스템에 Winrar 혹은 알집 압축 프로그램의 설치 여부를 확인하고 압축 프로그램이 있으면 설치된 압축 프로그램에 맞게 압축 해제 파라미터를 설정한다. 이후 설정된 파라미터는 ) (cmd 명령을 통한 압축해제) 악성 단계에서 수행된다.

악성 WSF 파일이 압축 해제 파라미터를 설정하는 이유는 악성코드 유포 서버로부터 다운로드 되는 악성 DLL 파일이 특정 패스워드로 암호화된 압축 파일이기 때문이다.

 

압축 프로그램

사용되는 파라미터 및 설명

Winrar

설정 파라미터 : UnRar.exe x -o -p “압축해제 대상이 되는 악성 DLL”

x : 압축풀기

-o :덮어 쓰기 모드

-p : 암호 설정

알집

설정 파라미터 : ALZipCon.exe -x -xf -oa -p “압축해제 대상이 되는 악성 DLL”

-x : 압축풀기

-xf :압축풀 때 폴더이름을 사용하지 않고 압축을 품

-oa :파일이 중복일 때 중복된 모든 파일을 덮어씀

-p : 암호 설정

[2] 압축 프로그램 파라미터 설정 및 설명

※ 악성 DLL에 대한 압축 패스워드는 WSF 파일에 하드코딩 되어 있음

 

) “악성 DLL.rar” 다운로드 및 시그니쳐 검증

악성코드 유포 서버로부터 악성 DLL을 다운로드 후 Rar 파일 MAGIC 값 검증을 수행한다.

 

OS

파일 경로

Windows Vista 이상

C:\ProgramData\fund.pas

Windows XP

C:\Windows\fund.pas

[3] 압축된 악성 DLL 파일 저장 경로

 

[그림 4] 다운로드 파일에 대한 파일 MAGIC 값 검증

 

) cmd 명령을 통해 압축 해제

악성 DLL.rar 파일을 다운로드 받으면, WSF 파일은 ) 에서 획득한 압축 해제 파라미터를 cmd 명령 파라미터로 전달한다. [4]의 경로에 압축 해제 된다.

 

OS

파일 저장 경로

Windows Vista 이상

C:\ProgramData\fund.lis

Windows XP

C:\Windows\fund.lis

[4] 악성 DLL 압축 해제 경로

 

) 압축 프로그램이 없을 경우 파워쉘 실행

압축 프로그램이 존재하지 않을 경우에 아래의 파워쉘 커맨드를 실행하는데, 이는 악성코드가 접속하는 서버로부터 BASE64로 인코딩된 또 다른 파일이 유포될 수 있다는 것을 의미한다.

 

파워쉘 명령

powershell.exe -windowstyle hidden certutil –decode “서버로부터 다운로드 받은 파일

[5] 파워쉘 명령어

 

) regsvr32.exe를 통해 fund.lis(악성 DLL) 적재 후 실행

최종적으로 복호화된 fund.lis 파일을 regsvr32 프로세스를 통해 실행한다.


fund.lis(악성 DLL) 적재

regsvr32 /s /i “fund.lis(악성 DLL) 파일 경로

[6] regsvr32에 전달되는 파라미터

 

2) fund.lis(악성 DLL) 동작 과정

regsvr32.exe의 메모리에 적재된 fund.lis는 감염 시스템의 정보를 유출하고 C&C 서버로부터 추가 악성코드를 다운로드 및 실행하는 기능을 갖고 있다. 전체적인 동작 과정은 [그림 5]와 같다.

 

[그림 5] fund.lis의 전체적인 동작 과정

 

) 자가 복제 경로 및 자동 실행 레지스트리 키 등록

fund.lis[ 7]의 경로에 자기 자신을 복사하여 재부팅 뒤에도 자동 실행되도록 Run 키에 해당 파일을 등록한다.

 

자가 복제 경로

%Appdata%\Microsoft\Protect\S-1-5-21-2955441095-2801345911-1478128028-1000\zerobase.dll

[7] fund.lis의 자가 복제 경로

 

레지스트리 키 (Key)

(Value)

데이터 (Data)

HKCU\SOFTWARE\Microsoft\

Windows\CurrentVersion\Run

msProtect

C:\Windows\System32\regsvr32.exe /s 자가 복제 경로”

[8] 자동 실행 레지스트리 등록 값

 

[그림 6] 자동 실행 레지스트리 등록

 

) 유출되는 정보

사용자 시스템에서 유출되는 정보는 [9]와 같으며 공격자의 C&C 서버에 아래의 정보가 전송된다.

 

유출되는 정보

시스템 MAC 주소

설치된 OSMajor, Minor, 빌드 버전 정보

설치된 OS의 환경 정보 (64비트 or 32비트)

[9] 유출되는 정보

 

C&C 서버 정보

http://*******.site11.com/data/zero/log.php?v=맥주소 OS Major, OS Minor,빌드버젼,OS환경

[10] 접속하는 C&C 서버 및 전달되는 파라미터 값

 

[그림 7] C&C 서버에 유출 데이터를 전송하는 GET 통신 시도

 

) 새로운 악성코드 다운로드 및 실행

fund.lis[11]의 주소에 접속하여 새로운 악성코드를 다운로드 및 실행한다. 악성코드 다운로드 주소를 MAC 주소별로 관리하는 것으로 보아 사용자 환경마다 다운로드 되는 악성코드가 다를 것으로 추정된다.

 

추가 악성코드 다운로드 주소

http://*******.site11.com/data/zero/[사용자 MAC 주소]/zerobase

[11] 추가 악성코드 다운로드 주소

 

추가로 다운로드 된 악성코드는 사용자 %Temp% 디렉터리에 [랜덤4자리].tmp로 저장되며, 특정 XOR 키로 암호화되어 있는 것으로 확인된다.

 

[그림 8] 다운로드된 악성코드를 복호화 하는 코드 일부

 

복호화된 파일은 [그림9]와 같이 regsvr32.exe의 인자로 실행된다. 실행이 완료되면 fund.lis는 C&C 서버에 [사용자 Mac 주소] : OK Sucess라는 메시지를 GET 방식으로 송신한다.

 

[그림 9] regsvr32.exe를 통해 추가 악성코드를 실행하는 부분

 

20분 간격으로 [그림 5] 2~4번 과정을 반복 수행하며 [그림 9] regsvr32.exe를 통해 실행된 [랜덤4자리].tmpfund.lis에 의해 삭제된다.

 

[그림 10] 추가로 다운로드 된 악성코드를 삭제하는 부분 (%temp%\[랜덤4자리].tmp)

 

현재 V3 제품군에서는 아래와 같은 진단명으로 위 파일들을 진단하고 있다.

- JS/Downloader (정보보고.wsf)

(엔진 반영 버전 : 2018.01.18.05)

- Trojan/Win32.Akdoor.C2358769 (fund.lis)

(엔진 반영 버전 : 2018.01.18.06)

Posted by 분석팀

암호화폐 시장이 달아오름과 동시에 채굴 방식 또한 점차 다양해지고 있다. PC에 악성 채굴기 실행파일을 몰래 설치하는 악성코드뿐만 아니라[각주:1], 웹 브라우저를 기반으로 하여 암호화폐를 채굴하는 방식이 2017년부터 폭증하고 있다. 

웹 브라우저 기반으로 동작하는 마이닝 방식은 기존의 실행 파일 기반과는 다르게 악성 자바스크립트(JavaScript)를 이용해 동작한다. 자바스크립트는 추가로 악성 자바(JAVA) 파일 또는 웹어셈블리(WebAssembly) 파일을 로드할 수 있으며, 해당 웹 페이지에 접속했을 때 접속자는 개인 하드웨어 자원을 이용하여 채굴을 하게 되고 그 결과는 공격자의 지갑 주소에 전송된다. 

파일 기반의 악성코드는 최종 페이로드를 사용자 시스템에 전달하기 위해 파일 다운로드 후 실행하기까지 과정이 필요하지만, 웹 기반의 마이닝 악성코드는 단순 웹 페이지 접속 조건만을 만족하면 되기 때문에 공격자 입장에서는 좀 더 손쉬운 채굴 방식이 될 수 있다.

웹 브라우저를 이용한 최초의 마이닝 방식은 암호화폐 가격이 지금보다 낮았던 2011년에 이미 확인된 바 있다. ‘Bitcoin Plus’란 이름의 서비스는 비트코인을 채굴할 목적으로 작성된 자바스크립트를 제공하였다. 이 스크립트는 악성 자바아카이브(JAR) 파일을 다운로드 하고 자바 실행 환경의 시스템에서 채굴하였다.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>

<script src="http://www.bitcoinplus.com/js/miner.js" type="text/javascript"></script>

<script type="text/javascript">BitcoinPlusMiner("donny@bitcoinplus.com")</script>

miner.js - 악성 JAR 파일 bitcoinplus-miner.jar 로드

bitcoinplus-miner.jar - 실제 마이닝 기능을 수행

최근에는 암호화폐 종류가 다양해지고 마이닝이 인기가 높아짐에 자바스크립트 마이너 파일 역시 다양하게 제작, 유포되고 있다. 대표적으로는 CoinHive (XMR 채굴)이 있으며 이 외에도 CryptoNoter(XMR, BCN, ETN), DeepMiner(XMR, ETN 외) 등 다양하다. 이러한 마이너 파일들은 GitHub 등 저장소에 소스가 공개되어 있어 접근하기도 쉽다. 자바스크립트 파일 외에 지갑 주소, 프록시, 스레드 개수 등을 설정하는 Config 파일을 별도로 구현하기도 하며 이는 마이너마다 차이가 있다.

공격자는 다음과 같은 방식 등을 이용하여 악성 마이너 파일을 웹 브라우저에 로드할 수 있다. 

  • 개인 사이트 또는 블로그에 악성 자바스크립트 포함
  • 해킹으로 탈취한 사이트에 악성 자바스크립트 포함 (Ex. iframe 태그 이용)
  • 정상 사이트에 포함된 광고 배너에 악성 자바스크립트 포함
다음은 최근 접수된 샘플로 ad1.html 이름의 광고성 페이지 안에 악성 자바스크립트 파일을 로드하는 코드가 삽입되어 있다.

ad1.html – 마이닝 목적의 자바스크립트 파일 로드

로드 된 deepMiner.js 파일은 다음과 같이 난독화 되어 있는 파일이다. 소켓 관리, 마이닝 기능 수행 시작 등 실질적인 기능에 대한 구현 부분만 포함하고 있으며 접속 풀 주소, 호스트, 포트 등의 기본 정보는 파일 내에 없다. 이 부분은 서버에 업로드 된 별도의 설정 파일로 구현 되어있을 것으로 보인다. 

deepMiner.js – 난독화 되어 있음

ad1.html 페이지 접속시 로드 된 deepMiner.js 파일은 채굴을 위한 CryptoNight 알고리즘 수행을 위해 worker.min.js 파일을 로드한다. 

추가 파일 로드

worker.min.js 파일 또한 난독화 되어 있는데 이 파일은 유포지의 /lib/ 경로에 존재하는 해시 알고리즘 구현 파일인 cryptonight.asm.js 파일 또는 cryptonight.wasm 웹어셈블리 파일을 로드하여 메모리에 올리는 역할을 한다. 웹어셈블리 파일은 웹 브라우저 상에서 실행 가능한 컴파일된 바이너리로서 자바스크립트(인터프리터 방식)보다 훨씬 빠른 속도로 실행 가능하다. 다만 웹어셈블리 WASM 파일은 컴파일 된 형태이기 때문에 외형만 봐서는 그 기능을 파악하기 어렵다. 따라서 이를 웹어셈블리를 텍스트 형식 파일인 WAT 파일로 변환하면 부분적으로 그 기능을 파악할 수 있다. 

웹어셈블리 파일 – 해시 알고리즘 구현

웹어셈블리 파일 텍스트 포맷 – 해시 알고리즘 구현

웹어셈블리를 이용한 것은 채굴을 좀 더 빠르고 효과적으로 하기 위한 방식으로, 최근 발견되는 악성코드는 대부분 해시 알고리즘 부분을 웹어셈블리 파일로 구현하여 로드하는 것으로 확인된다.

참고로 웹어셈블리는 브라우저 종류와 버전에 따라 지원 여부가 다르다. 만약 지원하지 않는 브라우저 환경일 경우에는 원본 코드인 자바스크립트 파일을 로드한다. 작성 기준 현재 Internet Explorer 는 웹어셈블리를 지원하지 않는다.[각주:2] Internet Explorer 로 ad1.html 페이지를 방문한 사용자는 웹어셈블리 파일 대신 asm.js 자바스크립트 파일이 로딩된다. 

최종적으로 마이닝 기능을 위한 파일이 모두 로드 되면 웹 브라우저의 CPU 사용량이 급등하며 채굴 기능이 수행된다. 

지금까지 살펴본 바와 같이 암호화폐 채굴 악성코드는 채굴자 개인의 PC 자원 혹은 다른 사람의 자원을 이용하기 위해 최근 들어서 그 수가 증가하고 있다. 웹 브라우저에 로드되어 마이닝 기능을 수행되는 방식은 웹브라우저를 종료하면 그 기능이 종료되고 현재까지는 채굴 이외의 기능은 확인되지 않고 있다. 하지만 사용자의 시스템 자원을 무단으로 이용하고 불특정 다수를 대상으로 악성 행위를 하기 때문에 주의를 기울일 필요가 있다. 

V3 제품군에서는 다음과 같은 진단명으로 탐지하고 있다.

  • HTML/CoinMiner
  • JAVA/CoinMiner
  • JS/CoinMiner
  • WASM/Cryptojs


  1. http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=3&menu_dist=2&seq=26900&key=&dir_group_dist=&dir_code= [본문으로]
  2. https://caniuse.com/#search=webassembly [본문으로]
Posted by 분석팀