[보안뉴스 문정후 기자] 보안 소프트웨어도 소프트웨어다. 취약점이라는 게 있고, 그것을 익스플로잇 하는 방법들이 있으며, 따라서 공격의 통로가 되기도 한다. 보호를 해야 할 것이 오히려 공격자들을 안내하는 창구의 역할을 하는 것인데, 최근 보안 업체 트렐릭스(Trellix)가 이러한 사례를 발견해 알렸다. 공격자들은 어베스트(Avast)의 오래된 드라이버를 악용함으로써 피해자들을 농락하고 있었다고 한다.
[이미지 = gettyimagesbank]
문제의 중심에 있는 건 어베스트 안티루트킷(Avast Anti-Rootkit)이라는 드라이버로, 보통 aswArPot.sys라는 파일 형태로 존재한다. 이는 합법적이고 정상적인 보안 도구이지만 이번 공격에서는 오히려 공격자들을 위한 도구가 됐다고 한다. 이 보안 도구는 사용자의 시스템 깊숙한 곳에까지 접근할 수 있는 권한을 가지고 있었기 때문에 공격자들 역시 높은 권한을 휘두를 수 있게 되었다고 트렐릭스는 경고했다. “결국 모든 보안 프로세스를 종료시키고 피해자의 시스템을 장악하는 데에까지 공격자들은 성공했습니다.”
감염의 시작과 과정
먼저 공격자들은 드로퍼 멀웨어를 사용한다. 이 멀웨어는 kill-floor.exe라는 파일명을 가지고 있으며, 피해자의 시스템에 침투한 후 aswArPot.sys를 설치한다. “이 드라이버는 ntfs.bin이라는 이름으로 저장됩니다. 저장되는 폴더는 C:\Users\Default\AppData\Local\Microsoft\Windows이고요.”
여기까지 공격을 진행한 후, 즉 드라이버가 설치된 후 kill-floor.exe는 sc.exe라는 실행파일을 사용해 aswArPot.sys라는 이름의 서비스를 임의로 생성하고, 여기에 방금 설치한 드라이버를 등록한다. “그렇게 되면 드라이버가 설치 및 실행되고, kill-floor.exe는 커널 수준의 접근 권한을 가져가게 됩니다. 거기서부터는 주요 보안 관련 프로세스들을 종료시킬 수 있게 됩니다.”
이 공격에서 주요 표적이 되는 보안 관련 프로세스들은 시장에서 널리 알려진 백신 및 EDR 솔루션과 관련되어 있다. “멀웨어 내에는 종료시켜야 할 보안 프로세스들의 이름이 총 142개 하드코딩 되어 있습니다.” 트렐릭스의 블로그에 있는 내용에 따르면 이 142개 프로세스는 다음과 같다.
1) ERAAgent.exe
2) efwd.exe
3) SophosSafestore64.exe
4) PEFService.exe
5) mfefw.exe
6) mfemms.exe
7) mfewc.exe
8) McDiReg.exe
9) ProtectedModuleHost.exe
10) msmpeng.exe
11) ssdvagent.exe
12) avp.exe
13) swc_service.exe
14) bccavsvc.exe
15) psuaservice.exe
16) TmCCSF.exe
17) coreserviceshell.exe
18) repux.exe
19) vapm.exe
20) cylancesvc.exe
21) avpsus.exe
22) sbamtray.exe
23) sophoslivequeryservice.exe
24) epwd.exe
25) sophosmtrextension.exe
26) sophoscleanup.exe
27) iptray.exe
28) sentinelservicehost.exe
29) endpointbasecamp.exe
30) macompatsvc.exe
31) sepWscSvc64.exe
32) epab_svc.exe
33) mcsagent.exe
34) sophosfilescanner.exe
35) aswtoolssvc.exe
36) mfemactl.exe
37) avpsus.exe
38) avpul.exe
39) mcupdatemgr.exe
40) McAWFwk.exe
41) mfewch.exe
42) mfevtps.exe
43) McCSPServiceHost.exe
44) McPvTray.exe
45) MMSSHOST.exe
46) sophosul.exe
47) avastul.exe
48) paul.exe
49) bcc.exe
50) psuamain.exe
51) tesvc.exe
52) coreframeworkhost.exe
53) RepUtils.exe
54) updateui.exe
55) cptrayui.exe
56) savservice.exe
57) SBAMSvc.exe
58) sophossafestore.exe
59) epam_svc.exe
60) sdcservice.exe
61) hostedagent.exe
62) idafserverhostservice.exe
63) sentinelhelperservice.exe
64) cetasvc.exe
65) macmnsvc.exe
66) sepagent.exe
67) responseservice.exe
68) mbcloudea.exe
69) SopohsCleanM64.exe
70) easervicemonitor.exe
71) mfeann.exe
72) SophosNtqService.exe
73) ekrn.exe
74) MsMpEng.exe
75) QcShm.exe
76) mfeatp.exe
77) mfehcs.exe
78) mcshield.exe
79) Launch.exe
80) McInstruTrack.exe
81) MfeAVSvc.exe
82) avastsvc.exe
83) ntrtscan.exe
84) svcgenerichost.exe
85) psanhost.exe
86) swi_service.exe
87) clientmanager.exe
88) repmgr.exe
89) tmilsten.exe
90) cptraylogic.exe
91) savapi.exe
92) vstskmgr.exe
93) wrsa.exe
94) efrservice.exe
95) scanhost.exe
96) sophosfimservice.exe
97) hostedagent.exe
98) SentinelAgentWorker.exe
99) SentinelUI.exe
100) cloudendpointservice.exe
101) logwriter.exe
102) dsa-connect.exe
103) mbamservice.exe
104) smcgui.exe
105) endpointagenttray.exe
106) mctray.exe
107) SophosHealth.exe
108) eguiProxy.exe
109) agentsvc.exe
110) ModuleCoreService.exe
111) mfeesp.exe
112) mfeensppl
113) mfetp.exe
114) delegate.exe
115) McUlCnt.exe
116) alsvc.exe
117) notifier.exe
118) sspservice.exe
119) pccntmon.exe
120) swi_fc.exe
121) ccsvhost.exe
122) remediationservice.exe
123) tmcpmadapter.exe
124) cpda.exe
125) savadminservice.exe
126) ViperNis.exe
127) ds_monitor.exe
128) dsa.exe
129) sbpimsvc.exe
130) sophosoquery.exe
131) hmpalert.exe
132) sentinelagent.exe
133) sophos_ui.exe
134) klnagent.exe
135) sentinelstaticenginescanner.exe
136) wscommunicator.exe
137) masvc.exe
138) sfc.exe
139) fsagentservice.exe
140) mcsclient.exe
141) sophosfs.exe
142) avwrapper.exe
멀웨어는 시스템에서 실행되고 있는 모든 프로세스의 스냅샷을 찍어 저장하는데, 이 과정을 무한히 반복한다. 그러면서 각 프로세스의 이름을 초기 정의된 하드코딩 된 이름과 비교한다. 이름이 일치하면 종료시키기 위해서다. “보안 소프트웨어는 보안의 제 기능을 다 하기 위해 어쩔 수 없이 높은 권한을 가져가게 됩니다. 높은 권한이 있기 때문에 시스템의 모든 부분을 막을 수 있지만, 반대로 높은 권한이 있기 때문에 악용되면 공격자에게 높은 권한을 주게 됩니다. 양날의 검 같은 존재죠. 그런 일이 이번 사건을 통해 확실히 드러난 겁니다.”
드라이버를 통한 공격을 방어하려면
이번 사태의 중심에 있는 안티루트킷 드라이버는 정상적인 보안 장치이긴 하지만 오래되어 지원 기간이 끝난 것이기도 하다. 공격자들은 더 이상 지원 및 관리되지 않는, 그래서 취약한 드라이버를 자신들의 목적에 맞게 활용한 것으로, 어베스트 편에서 잘못한 것은 아니다. “오히려 각 기업들이 특정 취약 드라이버를 고유한 서명 또는 해시를 기반으로 식별하고 차단하는 규칙을 만들어 적용해야 합니다. 정상적인 드라이버라도, 오래된 것이라면 아닐 수 있다는 걸 인지하고 있어야 합니다.”
이를 위해 트렐릭스는 다음(https://www.trellix.com/assets/instructions/byovd-expert-rule.pdf)과 같은 규칙을 제안하고 있다. 보안 담당자들이라면 한 번쯤 참고해볼 만하다.
3줄 요약
1. 유명 보안 도구를 악용한 공격 캠페인이 적발됨.
2. 문제는 그 유명 보안 도구가 너무나 오래되어 지원도 끝나고 취약했다는 것이었음.
3. 정상적이고 신뢰할 만한 것이더라도 오래된 것이면 아닐수 있다는 걸 인지해야 함.
[국제부 문정후 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>