Talos 블로그 - 전 세계 50만 대의 네트워킹 장비를 공격한 신종 VPNFilter 멀웨어

전 세계 50만 대의 네트워킹 장비를 공격한 신종 VPNFilter 멀웨어

게시일: 2018년 5월 23일 오전 6시(PDT 기준)

 

 

서론

Talos는 공공/민간 부문 위협 정보 파트너사 및 법률 집행 기관과 지난 몇 달간 공동 조사를 수행하여 "VPNFilter"라고 하는 정교한 모듈식 멀웨어 시스템이 확산되고 있음을 확인했습니다. 이 공격은 정부의 후원을 받거나 정부와 연루된 전문 해커의 소행으로 추정됩니다. 아직 조사가 진행 중이긴 하지만 최근 사건들을 미루어 볼 때, 잠재적 피해자가 스스로 방어 대책을 마련할 수 있도록 조사 결과를 조기에 공유하는 것이 바람직하다고 판단했습니다. 특히, 이 멀웨어의 코드는 BlackEnergy 멀웨어 버전과 일치하는 것으로 확인됐습니다. BlackEnergy는 우크라이나 지역의 장비들을 대상으로 한 다수의 대규모 공격에 사용된 바 있습니다. 아직 속단하긴 이르지만, 치명적일 수 있는 VPNFilter가 우크라이나 전용 명령 및 제어(C2) 인프라를 사용해 우크라이나 호스트를 빠르게 감염시키고 있는 것으로 보입니다. Talos는 이 같은 요인들을 고려해볼 때, 조사를 마무리하기에 앞서 현재까지 파악된 상황을 먼저 발표하는 것이 최선이라고 판단했습니다. 이번 게시물은 초기 발표로서 앞으로 검토해야 할 해결책이 남아있기 때문에, 현재까지의 조사 결과를 공개하고 추후 조사가 진행되는 대로 결과를 업데이트하겠습니다.

 

VPNFilter의 공격 기능과 그 규모는 가히 우려할만한 수준입니다. Talos가 파트너들과 진행한 공동 조사에 따르면, 적어도 54개국에서 50만 대가 넘는 장비가 이 멀웨어에 감염된 것으로 추정됩니다. QNAP NAS(Network-Attached Storage) 장비 외에도, SOHO(Small Office/Home Office) 분야의 Linksys, MikroTik, NETGEAR TP-Link 네트워킹 장비도 이번 공격의 피해를 입은 것으로 확인됐습니다. 시스코를 비롯한 타 시스템 제조업체들의 경우 아직 확인된 피해 사례가 없지만 조사는 계속 진행할 예정입니다. VPNFilter 멀웨어의 구성 요소를 통해 웹사이트 자격 증명 도용과 Modbus SCADA 프로토콜의 모니터링이 이뤄지기 때문에, 이 멀웨어가 네트워킹 장비에 미치는 영향을 특히 주의할 필요가 있습니다. 마지막으로, 이 멀웨어가 치명적인 이유는 감염된 장비를 마비시키고 각 피해자의 시스템에서 단독으로 실행되거나 동시에 실행되며, 전 세계 수십만 명에 달하는 피해자의 인터넷 접속을 차단할 수 있기 때문입니다.

 

이 멀웨어가 표적으로 삼은 장비들은 보안이 취약하다는 공통점이 있습니다. 이런 유형의 장비는 IPS(침입 방지 시스템)의 사정권을 벗어난 네트워크 경계에 위치하는 경우가 많고 일반적으로 AV(바이러스 백신) 패키지와 같은 호스트 기반 보호 시스템을 지원하지 않습니다. 특정 상황에서 어떤 익스플로잇이 사용되는지 정확히 예단할 수는 없지만, 표적이 된 대부분의 장비, 특히 구형 장비에는 비교적 공략하기 쉬운 공개 익스플로잇이나 기본 자격 증명이 존재하는 것으로 확인됐습니다. 이 같은 요인들로 인해 2016년부터 이 멀웨어가 은밀하게 확산된 것입니다.

 

이 게시물은 Talos 블로그에서 일반적으로 제시하는 기술적 조사 결과를 담고 있습니다. Talos Talos 분석가들의 조사 결과와 경험을 토대로 이번 위협에 사용된 기술을 상세히 분석하여 해커의 사고 과정과 행동 방향을 분석할 예정입니다. 아울러, 이 위협에 대한 대응법과 감염에 취약한 장비를 관리하는 방법을 제시하겠습니다. 마지막으로, 상황을 좀 더 지켜봐야겠지만 우선 현재까지 관측된 IOC를 공유하도록 하겠습니다.

 

기술 분석 개요

 

VPNFilter 멀웨어는 정보 수집과 파괴적인 사이버 공격에 효과적인 여러 가지 기능을 갖춘 다단계 모듈식 플랫폼입니다.

 

사물 인터넷 장비를 공격하는 대부분의 멀웨어는 일반적으로 장비를 재부팅하면 소멸되는 데 반해, 1단계 VPNFilter는 재부팅하더라도 살아남습니다. 1단계 VPNFilter의 주요 목적은 지속적 공격의 교두보를 마련하고 2단계 멀웨어의 유포를 지원하는 것입니다. 1단계 VPNFilter는 여러 가지 명령 및 제어(C2) 메커니즘을 활용하여 2단계 VPNFilter의 배포 서버 IP를 찾게 되는데, 이는 해당 악성코드가 C2 인프라 환경에 예상치 못한 변화가 생기더라도 제대로 동작할 수 있도록 합니다. 그 이유는 이 멀웨어가 여러 가지 명령 및 제어(C2) 메커니즘을 활용하여 현재 활동 중인 2단계 배포 서버의 IP 주소를 찾아낼 수 있기 때문입니다.

재부팅하면 소멸되는 2단계 VPNFilter는 파일 수집, 명령 실행, 데이터 유출, 장비 관리 같은 일반적인 정보 수집 플랫폼의 기능을 갖추고 있습니다. 그러나 일부 2단계 VPNFilter의 경우 장비 펌웨어의 중요 부분을 덮어쓰고 장비를 재부팅하는 수법으로 장비를 마비시키는 일종의 자폭 기능도 겸비하고 있습니다공격자가 피해 장비들을 대상으 로 입증한 지식과 일부 2단계 버전들의 기능으로 유 추해볼 때, 자폭 기능이 없는 멀웨어 감염 장비에도 해커가 자폭 명령을 유포할 수 있는 것으로 추정됩니.

 

또한 여러 가지 3단계 모듈이 2단계 멀웨어의 플러그인으로 사용되고 있습니다. 이 플러그인은 2단계 멀웨어에 추가 기능을 지원합니다. 현재까지 두 가지 플러그인 모듈(웹사이트 자격 증명 도용 및 Modbus SCADA 프로토콜 모니터링을 목적으로 장비를 통과하는 트래픽을 수집하는 패킷 스니퍼, 2단계 멀웨어의 Tor 통신을 지원하는 통신 모듈)이 발견됐습니다. Talos는 아직 발견되지 않았을 뿐, 여러 가지 다른 플러그인 모듈이 존재할 것이라는 상당히 신빙성이 있는 결론을 내렸습니다.

 

 

공격 수법

 

Talos는 공격자가 다양한 작전을 펼치는 데 사용할 수 있고 책임 소재를 파악하기 어려운 광범위한 인프라를 구현하는 것이 이 멀웨어의 목적이라는 설득력 있는 결론에 도달했습니다. 기업이나 개인이 합법적으로 소유한 장비가 이 멀웨어에 감염되기 때문에 피해자를 감염된 장비에서 이뤄지는 악의적 활동의 주범으로 오인할 가능성이 있습니다. 이 멀웨어의 여러 가지 버전과 플러그인에는 아주 다양한 기능이 내장되어 있기 때문에 사이버 범죄자가 다양한 방식으로 장비를 활용할 수 있습니다.

 

국가를 기반으로 하는 그룹을 포함하여 주요 그룹들이 그들의 공격 행위를 의도적 으로 공개하는 경우도 있으나, 대부분은 그 실체를 감 추기 위해 노력합니다. 대부분은 그 실체를 감추려고 할 것입니다. 전문적인 공격 그룹들은 이를 위해 여러 가지 수법을 이용하는데, 가령 다른 사람이 소유한 인프라를 공격 작전에 이용하는 경우가 있습니다. 해커는 최종 피해자에게 연결하기 전에 이 멀웨어에 감염된 장비를 홉 포인트로 사용하는 간단한 수법으로 공격의 진원지를 오판하게 만들 수 있습니다.

 

또한 VPNFilter는 장비를 통과하는 데이터를 수집하는 데 활용되기도 합니다. 이는 단순히 데이터 수집이 목적일 수도 있지만 장비가 연결된 네트워크의 잠재적 가치를 파악하는 것이 목적일 수도 있습니다. 사이버 범죄자에게 이익이 될 만한 정보가 네트워크에 존재하는 것으로 확인되면 장비를 통과하는 콘텐츠를 계속 수집하거나 연결된 네트워크에 멀웨어를 유포하여 데이터를 수집할 수 있습니다. 장비가 연결된 네트워크의 취약점을 추가로 악용할 수 있는 3단계 플러그인은 아직 발견되지 않았습니다. 그러나 이와 같은 3단계 플러그인이 존재할 개연성은 충분하며 주요 공격자 그룹이 이 모듈 식 멀웨어에 그와 같은 기능을 추가했을 가능성이 매우 높습니다.

 

마지막으로, 이 멀웨어는 "kill" 명령으로 장비의 전체 또는 일부를 물리적으로 마비시키는 대규모 파괴 공격을 감행하는 데 사용될 수 있습니다. "kill" 명령은 Talos가 파악한 다수의 2단계 샘플에 내장되어 있지만, 모든 2단계 샘플에 내장된 "exec" 명령으로도 동일한 효과를 거둘 수 있습니다. 이 명령으로 마비된 장비를 복구하려면 일반 사용자에게는 없는 기술적 역량과 노하우 및 도구가 필요하므로 피해자가 그 피해를 스스로 복구하는 것은 불가능에 가깝습니다. Talos는 이 기능에 대해 깊이 우려하여 지난 몇 개월간 이 위협을 은밀히 조사해왔습니다.

 

관련 정황 포착

 

Talos는 이 위협을 조사하면서 모니터링과 검사를 통해 위협의 범위와 감염된 장비의 반응을 파악하고자 했습니다. 분석 결과, 이 멀웨어는 전 세계에 널리 유포되어 있으며 그 활동 영역을 넓혀가고 있는 것으로 파악됐습니다. 조사를 진행하던 중, 이 멀웨어에서 데이터 유출 활동과 연관이 있을 것으로 추정되는 정황을 포착했습니다.

 

5월 초에 감염된 장비가 포트 번호 23, 80, 2000, 8080에서 TCP를 검색하는 활동이 발견됐습니다. 이를 통해, 이 포트들이 또 다른 Mikrotik QNAP NAS 장비를 검색하는 데 이용된다는 것을 알 수 있습니다. 이 검색 활동은 100개국 이상에 소재하는 장비를 대상으로 이뤄졌습니다.

 

또한 Talos는 텔레메트리를 활용하여 감염이 의심되는 세계 각지의 장비들을 찾아냈습니다. 그리고 C2 인프라의 특성을 추가로 파악하고자 감염된 장비에서 드러나는 공통적인 현상을 파악했습니다. 그 결과, 다수의 피해자 IP에서 데이터 유출이 확실히 의심되는 정황이 드러났습니다.

 

VPNFilter 감염 건수를 살펴본 결과 5 8일에 특히 급증한 것으로 드러났습니다. 추가로 확인된 피해자의 대다수가 우크라이나 지역에 거주하고 있었습니다. 또한 공격을 받은 장비 대부분이 IP 46.151.209[.]33에서 다른 국가에 소재한 2단계 C2 인프라를 공유하는 것으로 밝혀졌습니다. 이 시점에서 BlackEnergy VPNFilter의 코드가 일치한다는 사실을 발견했으며 우크라이나의 이전 공격 시기에 비추어 봤을 때 또 한 차례의 공격이 임박할 수 있음을 알 수 있었습니다. Talos는 이 같은 상황에 대해 파트너들과 고민한 끝에 현재까지 조사한 내용부터 우선 발표하기로 했습니다.

 

Talos가 공식 발표 준비를 진행하던 중, 5 17일에 우크라이나를 중심으로 VPNFilter 피해자가 추가로 대거 발생했습니다. 이에 따라 Talos는 최대한 빨리 조사 결과를 발표하기로 한 것입니다.

 

그림 1. 시기 별 VPNFilter 감염 장비 발생 현황

 

위협 방어 대책

 

공격에 취약한 장비들이 갖는 특성 때문에 공격 위협을 저지하기란 대단히 어렵습니다. 잠재적 공격자와 장비 사이에 보안 장비나 서비스가 구현되어 있지 않은 상태에서 대다수의 장비가 인터넷에 직접 연결됩니다. 공격에 취약한 장비들이 가진 취약점을 일반 사용자들이 패치하기 쉽지 않다는 점이 이를 더욱 어렵게 만들고 있습니다. 설상가상으로 대다수 장비에는 멀웨어 차단 기능이 내장되어 있지 않습니다. 이 세 가지 요인으로 인해 위협에 대처하기가 매우 어렵고 멀웨어를 근절하거나, 취약점을 해소하고 위협을 차단할 기회가 극히 제한됩니다.

 

이러한 난관에도 불구하고 Talos는 제한적인 선택지를 활용할 수 있도록 위협 대응 방안을 다각도로 제시했습니다. Talos는 이러한 장비들이 갖는 취약점에 적용할 Snort 시그니쳐를 100여개 이상 개발하여 배포한 바 있습니다. Snort 규칙은 Snort 세트로 배포되며, 누구나 사용하여 장비를 보호할 수 있습니다. 그리고 Talos Cisco Security 에코시스템의 보호를 받는 사용자를 지원하기 위해 관련 도메인/IP를 블랙리스트에 추가하는 한편, 이 위협과 관련된 해시에 대해 경계령을 내리고 Linksys, Mikrotik, Netgear, TP-Link, QNAP에 상황을 고지했습니다. (참고: QNAP는 이미 VPNFilter의 일부 특성을 인지하고 이에 대한 대응 방안을 마련했습니다.) 끝으로 Talos는 이 자료를 발표하기에 앞서, 보다 거시적인 차원에서 이 위협에 신속히 대처할 수 있도록 이 같은 지표와 조사 결과를 국제적인 법집행 기관들 및 사이버 위협 연맹(Cyber Threat Alliance) 소속 동료 회원들과 공유했습니다.

 

권고안

 

Talos는 다음과 같은 권고안을 제시합니다.

□ SOHO 라우터 및/또는 NAS 장비 사용자는 비영속적이면서 치명적인 2단계 및 3단계 멀웨어가 제거되도록 장비를 기본 설정으로 초기화한 후 재부팅해야 합니다.

사용자에게 SOHO 라우터를 제공하는 인터넷 서비스 제공업체는 고객을 대신해 라우터를 재부팅해야 합니다.

이 위협에 취약한 장비거나 취약할 것으로 의심되는 장비를 사용 중인 사용자는 제조업체에 연락하여 장비가 최신 패치 버전으로 업데이트됐는지 확인해야 합니다. 최신 패치를 적용하지 않은 경우 즉시 패치를 설치해야 합니다.

인터넷 서비스 제공업체는 고객에게 적극적으로 연락을 취하여 장비를 최신 펌웨어/소프트웨어 버전으로 패치했는지 확인해야 합니다.

 

 

사이버 범죄자가 치명적인 공격에 돌입할 가능성이 있으므로, 이 위협에 대한 취약성과 관계 없이 SOHO장비나 NAS 장비를 보유한 모든 사용자가 각별히 주의할 것을 권장합니다.

 

단계별 기술 정보

 

악용(익스플로잇테이션)

 

사이버 범죄자가 취약한 장비를 악용하는 방식에 대한 확실한 증거는 현재까지 발견되지 않았습니다. 그러나 Talos가 확인한 모든 제품/모델에는 널리 알려진 취약점이 존재합니다. 전문 해커들은 대체로 공격에 필요한 최소한의 리소스만 사용하므로, VPNFilter에는 제로 데이 공격 수법이 필요하지 않다고 볼 수 있습니다.

 

1단계(지속성 로더)

 

VPNFilter 1단계 멀웨어는 Busybox Linux를 기반으로 펌웨어 실행 장비를 감염시키며 여러 가지 CPU 아키텍처에 맞게 컴파일됩니다. 1단계 바이너리의 주요 목적은 보다 완전한 기능을 갖춘 2단계 멀웨어를 지원할 서버를 찾는 한편, 감염된 장비에 2단계 멀웨어를 다운로드하고 지속성을 유지하는 것입니다. 1단계 멀웨어는 비휘발성 구성 메모리(NVRAM) 값을 수정할 수 있으며 Linux 작업 스케줄러인 crontab에 등록하여 지속성을 확보합니다. 이는 장비를 재부팅하면 소멸되는 비지속성 Mirai와 같은 기존의 IoT 멀웨어와 구별됩니다.

 

Talos MIPS x86 프로세서에 사용된 샘플을 분석했습니다. C2 통신과 2단계 멀웨어 다운로드는 Tor 또는 SSL 암호화 연결을 통해 이뤄집니다. 바이너리 자체는 난독화되지 않지만 그렇다고 제거되는 것도 아닙니다. 일부 문자열은 암호화된 형식으로 저장되며 런타임 시점에만 해독됩니다. 해독 루틴은 정적 분석에서 RC4와 아주 유사해 보이지만 멀웨어 개발자가 S-box 초기화를 잘못한 탓으로 추정됩니다. 치환 단계에서 값에 배타적 논리합(XOR)이 적용되지만 값은 바뀌지 않습니다. RC4 구현 상태를 분석해보니 BlackEnergy에 사용된 구현 방법과 동일했습니다. 법 집행 기관들이 정부 기반의 공격으로 지목한 이유이기도 합니다.

 

 

RC4 초기화를 실시할 때 내부 상태 초기화의 치환 단계에서 값에 배타적 논리합이 적용됩니다. 마지막 기본 블록에 보이는 것처럼 코드는 S[i] 값과 S[j] 값을 맞바꾸지 않습니다(아래의 RC4 의사 코드와 비교).

 

 

 

 

멀웨어가 초기화를 완료하고 나면 시드 URL의 페이지를 다운로드하기 시작합니다. Talos의 조사에서 MIPS 샘플 캐시와 하나를 제외한 모든 x86 샘플의 URL은 이미지 공유 호스트인 Photobucket.com를 참조했습니다. 멀웨어는 URL이 참조한 갤러리의 첫 번째 이미지를 다운로드한 후 다운로드 서버의 IP 주소를 추출합니다. IP 주소는 EXIF 정보의 GPS 위도와 경도에 해당하는 여섯 개의 정수 값에서 추출됩니다.

 

1단계 멀웨어가 Photobucket에 연결하지 못하거나, Photobucket에서 이미지를 다운로드하지 못하거나 또는 Photobucket에서 다운로드한 이미지를 통해 IP 주소를 확보하지 못한 경우, 백업 도메인인 toknowall[.]com에 연결하여 이미지를 다운로드하고 동일한 시도를 반복합니다.

 

백업 도메인 연결에 실패한 경우 1단계 멀웨어는 공격자가 장비에 연결할 수 있도록 해주는 특정 트리커 패킷을 수신하기 위해 수신기를 열고 대기합니다. 그래야 해커가 장비에 연결할 수 있기 때문입니다. 수신기가 열리면 api.ipify [.] org의 공개 IP를 확인하고 나중에 비교할 목적으로 저장합니다. 그런 다음, 패킷이 포트에 유입되면 수신기는 일련의 검사를 실시하여 트리거 패킷을 식별합니다. 패킷이 지정된 조건에 부합하면 패킷에서 IP 주소를 추출하고 2단계 멀웨어 다운로드를 시도합니다.

 

수신기 동작:

1.     SYN 플래그가 설정된 모든 TCP/IPv4 패킷을 검사합니다.

2.     수신기가 열렸을 때 대상 IP가 기준과 일치하는지 검사합니다(참고: 수신기가 api.ipify[.]org에서 IP를 확보하지 못하면 이 검사를 건너뜁니다).

3.     패킷이 8바이트 이상으로 구성되어 있는지 확인합니다.

4.     데이터에서 바이트 \x0c\x15\x22\x2b를 찾습니다.

5.      4바이트 마커 바로 뒤에 오는 바이트가 IP이므로 \x01\x02\x03\x04 1.2.3[.]4가 됩니다.

6.     2단계 멀웨어를 다운로드하기 위해 평소처럼 새로 수신한 IP에 연결합니다.

7.     2단계 멀웨어가 최소 1,001바이트인지 확인합니다(참고: 2단계 멀웨어가 100,000바이트 이상 이어야 하는 다른 호출 방식에 비하면 훨씬 작은 크기입니다).

 

2단계(비지속성)

 

2단계 멀웨어는 모듈 폴더(/var/run/vpnfilterm)와 작업 디렉토리(/var/run/vpnfilterw)를 생성하여 우선 작업 환경을 구현합니다. 그 후 루프로 실행되는데, C2 서버에 연결한 다음 C2에서 찾아낸 명령을 실행합니다. 명령 이름은 1단계 멀웨어 실행 단계와 마찬가지로 RC4 기반의 해시 함수로 암호화됩니다. 다행히, 이전 버전의 x86 2단계 샘플은 굉장히 허술해서 디버깅을 실시하면 수행된 모든 작업이 단계적으로 출력됩니다. 그러나 MIPS 샘플과 최신 버전의 x86 2단계샘플에는 디버그 출력 기능이 포함되어 있지 않습니다.

 

x86 샘플은 다음과 같은 명령을 실행할 수 있습니다.

□ kill: /dev/mtdblock0의 앞 부분 5,000바이트를 0으로 덮어쓰고 장비를 재부팅합니다.(공간만 차지하고 쓸모 없어집니다).

□ exec: 쉘 명령이나 플러그인을 실행합니다.

□ tor: Tor 구성 플래그를 설정합니다(0 또는 1).

□ copy: 클라이언트의 파일을 서버로 복사합니다.

□ seturl: 현재 구성 패널의 URL을 설정합니다.

□ proxy: 현재 프록시 URL를 설정합니다.

□ port: 현재 프록시 포트를 설정합니다.

□ delay: 메인 루프 실행 간격을 설정합니다.

□ reboot: 장비가 256초 이상 가동된 경우 장비를 재부팅하고 빌드 이름이 매개변수로 지정됩니다.

□ download: URL을 파일에 다운로드합니다. 이 명령은 모든 장비나 특정 빌드 이름에만 적용할 수 있습니다.

 

 

 

MIPS 샘플에는 다음과 같은 명령이 추가로 포함되어 있습니다.

□ stop: 멀웨어 프로세스를 종료합니다.

□ relay: x86 버전에 포함되어 있는 `delay` 명령의 오타입니다.

 

 

2단계 멀웨어는 Tor 모듈이 설치될 때까지 구성 설정에 저장된 하나 이상의 IP SOCKS5 프록시로 사용하여 Tor에 연결하고 구성 설정에서 발견된 제어 패널과의 통신을 시도합니다. 1단계 멀웨어와 마찬가지로 2단계 멀웨어와 프록시 간의 통신은 인증된 SSL 연결을 통해 이뤄집니다. Tor 모듈이 설치되면 2단계 멀웨어는 일반 HTTP 대신 모듈이 제공하는 로컬 SOCKS5 프록시를 통해 .onion 도메인에 연결됩니다. Talos는 모든 트래픽을 INetSim으로 리디렉션하는 가짜 SOCKS5 프록시를 사용하여 테스트했습니다.

 

멀웨어가 서버로 전송하는 요청의 예:

 

{

 

"uq":"px(01:02:03:04:05:06)",

 

"pv":"pPRXi686QNAPX86",

 

"ad":"10.0.0.1",

 

"bv":"0.11.1a/0.3.9qa",

 

"nn":"YnVpbGRyb290",

 

"tn":"",

 

"on":"1"

 

}

 

멀웨어는 이 요청을 인코딩하여 JSON 객체로 변환합니다. JSON 객체는 base64로 인코딩되어 HTTP POST 매개변수 "me"의 경로 /bin32/update.php로 전송됩니다. Request 요청에 사용되는 사용자 에이전트(Mozilla/6.1(compatible; MSIE 9.0; Windows NT 5.3;  Trident/5.0))가 특이합니다. 그 이유는 ”Windows NT 5.3" 은 존재하지 않는 버전이기 때문입니다.

□ uq: 감염된 장비의 고유 ID(멀웨어 네트워크 인터페이스의 MAC 주소)

pv: 멀웨어가 실행되는 플랫폼 버전

ad: 멀웨어 감염 장비의 공개 IP 주소

bv: 1단계 로더(0.3.9qa) 2단계 바이너리(0.11.1a)의 버전

nn: 노드 이름

tn: Tor 플래그

on: 어니언 플래그

 

 

서버의 메시지 응답:

 

{

 

"tr":3060,

 

"pxs":["217.12.202.40","94.242.222.68","91.121.109.209"],

 

"tor":"tor 1",

 

"mds":[]

 

}

tr: 메인 루프의 지연 시간을 설정합니다.

pxs: 연결할 패널 목록을 설정합니다. C2 서버가 이에 해당됩니다.

tor: Tor 모듈의 이름과 버전을 설정합니다.

mds: 가져올 모듈 목록을 설정합니다. 각 항목의 형식은 "<command_id> <module_id> <module_name> <module_args (base64-encoded)>"입니다. 멀웨어는 /bin32/update.php에서 POST 양식 매개변수 me를 아키텍처가 추가된 모듈 이름(: Tor 모듈의 경우, tor_i686)으로 설정함으로써 /bin32/update.php에서 모듈을 다운로드하고 모듈을 반복적으로 실행합니다. (위의 응답 예시처럼) 명령 목록이 비어 있는 경우 기존의 명령을 비활성화하고 그와 관련하여 실행 중인 모든 프로세스를 중단함으로써 기존의 명령을 제거합니다.

 

3단계(비지속성)

  

Talos는 멀웨어가 Tor를 통해 통신할 수 있게 해주는 멀웨어, 패킷 스니퍼, 통신 플러그인용 플러그인 모듈 두 가지를 분석했습니다. 이 외에도 아직 발견되지 않은 플러그인 모듈이 더 있을 것으로 추정됩니다. Talos가 초기에 입수한 샘플 중에는 패킷 스니퍼의 일종인 MIPS 2단계 멀웨어용 플러그인이 있습니다. 이 플러그인은 RAW 소켓을 통해 모든 네트워크 트래픽을 탈취하고 HTTP 기본 인증에 사용되는 문자열을 검색합니다. 또한 이 플러그인은 Modbus TCP/IP 패킷을 개별적으로 추적합니다. 이를 통해 확보한 로그 파일은 2단계 멀웨어의 작업 디렉토리인 /var/run/vpnfilterw에 저장됩니다. 덕분에 공격자는 장비를 통과하는 트래픽을 파악하고 수집하며 추적할 수 있습니다.

 

Tor 플러그인 모듈은 부분적으로 2단계 멀웨어에 연결되어 있지만 별도의 Tor 실행 파일을 가지고 있습니다. Tor 실행 파일은 /var/run/tor에 다운로드되며 2단계 멀웨어와 분리된 프로세스로 실행됩니다. Tor 바이너리는 고정적으로 연결/제거되는 바이너리 형식으로 표준 Tor 클라이언트와 유사합니다. Tor 바이너리는 /var/run/torrc에 구성 파일을, /var/run/tord에 작업 디렉토리를 생성합니다.

 

결론

 

방어에 취약한 장비를 공격하는 VPNFilter는 강력하고 급격히 확산되며 확장성이 뛰어나고 위험한 멀웨어입니다. 고도로 모듈화된 프레임워크는 공격자의 작전용 인프라를 신속하게 변환하여 그 실체를 숨기고, 정보를 수집하며, 공격에 적합한 플랫폼을 찾으려는 공격자의 목적을 충실히 지원할 수 있습니다.

 

이 멀웨어의 자폭 기능은 특히 우려할만한 수준입니다. 해커는 단순히 멀웨어의 흔적을 지우는 데 그치지 않고 추적을 막고자 사용자의 장비를 기꺼이 무용지물로 만들 수 있습니다. 목표에 부합할 경우 이 명령을 광범위하게 실행해 수십만 대의 장비를 마비시키고 해커들이 노리는 특정 지역, 혹은 전 세계 수십만 명에 달하는 피해자의 인터넷 접속을 차단할 수 있습니다.

 

IoT 장비 공격이 처음 있는 일은 아니지만, 전문 국가 행위자가 장비 고장을 초래할 수 있는 사이버 공격에 이를 악용한다는 것을 감안하면, 이 문제를 가급적 빨리 해결해야 할 필요가 있습니다. Talos는 보안 커뮤니티 전체가 의기투합하여 이 위협에 적극 대응할 것을 촉구하는 바입니다.

 

Talos는 고객을 보호하고 대중에게 정보를 전달하기 위해 앞으로도 계속 VPNFilter를 모니터링하고 파트너들과 협력하여 이 위협의 전개 양상을 주시할 예정입니다.

 

IOC

 

앞서 언급했듯, 아직 발견되지 않는 멀웨어와 IOC가 더 있을 것으로 추정하고 있습니다. 현재까지 확인된 IOC는 다음과 같습니다.

 

알려진 C2 도메인 및 IP

 

1단계 멀웨어와 관련된 C2 도메인 및 IP

 

photobucket[.]com/user/nikkireed11/library

photobucket[.]com/user/kmila302/library

photobucket[.]com/user/lisabraun87/library

photobucket[.]com/user/eva_green1/library

photobucket[.]com/user/monicabelci4/library

photobucket[.]com/user/katyperry45/library

photobucket[.]com/user/saragray1/library

photobucket[.]com/user/millerfred/library

photobucket[.]com/user/jeniferaniston1/library

photobucket[.]com/user/amandaseyfried1/library

photobucket[.]com/user/suwe8/library

photobucket[.]com/user/bob7301/library

toknowall[.]com

 

2단계 멀웨어와 관련된 C2 도메인 및 IP

 

91.121.109[.]209

217.12.202[.]40

94.242.222[.]68

82.118.242[.]124

46.151.209[.]33

217.79.179[.]14

91.214.203[.]144

95.211.198[.]231

195.154.180[.]60

5.149.250[.]54

91.200.13[.]76

94.185.80[.]82

62.210.180[.]229

zuh3vcyskd4gipkm[.]onion/bin32/update.php

 

알려진 파일 해시

 

1단계 멀웨어

 

50ac4fcd3fbc8abcaa766449841b3a0a684b3e217fc40935f1ac22c34c58a9ec

0e0094d9bd396a6594da8e21911a3982cd737b445f591581560d766755097d92

 

2단계 멀웨어

 

9683b04123d7e9fe4c8c26c69b09c2233f7e1440f828837422ce330040782d17

d6097e942dd0fdc1fb28ec1814780e6ecc169ec6d24f9954e71954eedbc4c70e

4b03288e9e44d214426a02327223b5e516b1ea29ce72fa25a2fcef9aa65c4b0b

9eb6c779dbad1b717caa462d8e040852759436ed79cc2172692339bc62432387

37e29b0ea7a9b97597385a12f525e13c3a7d02ba4161a6946f2a7d978cc045b4

776cb9a7a9f5afbaffdd4dbd052c6420030b2c7c3058c1455e0a79df0e6f7a1d

8a20dc9538d639623878a3d3d18d88da8b635ea52e5e2d0c2cce4a8c5a703db1

0649fda8888d701eb2f91e6e0a05a2e2be714f564497c44a3813082ef8ff250b

 

3단계 플러그인

 

f8286e29faa67ec765ae0244862f6b7914fcdde10423f96595cb84ad5cc6b344

afd281639e26a717aead65b1886f98d6d6c258736016023b4e59de30b7348719

 

자체 서명 인증서 핑거프린트

 

d113ce61ab1e4bfcb32fb3c53bd3cdeee81108d02d3886f6e2286e0b6a006747

c52b3901a26df1680acbfb9e6184b321f0b22dd6c4bb107e5e071553d375c851

f372ebe8277b78d50c5600d0e2af3fe29b1e04b5435a7149f04edd165743c16d

be4715b029cbd3f8e2f37bc525005b2cb9cad977117a26fac94339a721e3f2a5

27af4b890db1a611d0054d5d4a7d9a36c9f52dffeb67a053be9ea03a495a9302

110da84f31e7868ad741bcb0d9f7771a0bb39c44785055e6da0ecc393598adc8

fb47ba27dceea486aab7a0f8ec5674332ca1f6af962a1724df89d658d470348f

b25336c2dd388459dec37fa8d0467cf2ac3c81a272176128338a2c1d7c083c78

cd75d3a70e3218688bdd23a0f618add964603736f7c899265b1d8386b9902526

110da84f31e7868ad741bcb0d9f7771a0bb39c44785055e6da0ecc393598adc8

909cf80d3ef4c52abc95d286df8d218462739889b6be4762a1d2fac1adb2ec2b

044bfa11ea91b5559f7502c3a504b19ee3c555e95907a98508825b4aa56294e4

c0f8bde03df3dec6e43b327378777ebc35d9ea8cfe39628f79f20b1c40c1b412

8f1d0cd5dd6585c3d5d478e18a85e7109c8a88489c46987621e01d21fab5095d

d5dec646c957305d91303a1d7931b30e7fb2f38d54a1102e14fd7a4b9f6e0806

c0f8bde03df3dec6e43b327378777ebc35d9ea8cfe39628f79f20b1c40c1b412

 

공격에 취약한 장비

 

공격에 취약한 장비는 다음과 같습니다. 이번 조사는 그 규모가 큰 관계로 대부분의 정보를 원격으로 수집하였고 관련 장비를 집중 조사한 것이 아니기 때문에 버전과 모델을 구체적으로 파악하기가 어렵습니다. 다만, 아래의 모든 장비에는 널리 알려진 취약점이 존재한다는 점에 주목해야 합니다.

 

이 위협에 대한 조사 방법을 감안했을 때 아래 목록이 완성된 것은 아니며 취약한 장비가 더 있을 것으로 추정됩니다.

 

Linksys 장비:

 

E1200

E2500

WRVS4400N

 

Cloud Core Router Mikrotik RouterOS 버전:

 

1016

1036

1072

 

Netgear 장비:

 

DGN2200

R6400

R7000

R8000

WNR1000

WNR2000

 

QNAP 장비:

 

TS251

TS439 Pro

 

QTS 소프트웨어가 사용되는 기타 QNAP NAS 장비

 

TP-Link 장비:

 

R600VPN

 

대응

 

시스코 고객은 Cisco AMP(Cisco Advanced Malware Protection), CWS(Cloud Web Security), 네트워크 보안, ThreatGrid, Umbrella, WSA(Web Security Appliance)를 통해 이 위협으로부터 보호 받고 있습니다. 또한 시스코 고객이라면 누구나 StealthWatch StealthWatch Cloud를 사용하여 알려진 C2 IP 주소 및 도메인과 통신하는 장비를 찾을 수 있습니다.

 

StealthWatch에서 두 가지 항목을 구성하면 악성 IP 주소에 연결하려고 시도할 때 경고 메시지를 받을 수 있습니다.

먼저, Java 사용자 인터페이스를 사용하여 Outside Hosts 그룹에 "VPNFilter C2"라는 호스트 그룹을 새로 생성해야 합니다.

□ VPNFilter C2가 생성되면 현재 이뤄지고 있는 통신이 없는지 확인할 수 있습니다.

새로 생성한 "VPNFilter C2" 호스트 그룹을 마우스 오른쪽 버튼으로 클릭하고 Top -> Conversations -> Total로 이동하여 통신 상태를 확인할 수 있습니다.

□ 통신 상태를 확인하면 활성 트래픽이 있는지 손쉽게 알 수 있습니다.

□ 활성 트래픽이 전혀 없다면 "VPNFilter C2" 호스트로 송수신되는 트래픽이 관측됐을 때 경고 메시지를 표시하도록 설정할 수 있습니다.

□ 경고 메시지는 웹 사용자 인터페이스에서 사용자 정의 이벤트를 생성하고 적절한 호스트나 객체를 선택하여 설정할 수 있습니다.

 

VPNFilter 관련 Snort 탐지:

 

 

45563 45564 46782 46783

 

영향을 받는 장비의 알려진 취약점을 방어할 수 있는 Snort 규칙: 

 

25589 26276 26277 26278 26279 29830 29831 44743 46080 46081 46082 46083 46084 46085 46086 46287 46121 46122 46123 46124 41445 44971 46297 46298 46299 46300 46301 46305 46306 46307 46308 46309 46310 46315 46335 46340 46341 46342 46376 46377 37963 45555 46076 40063 44643 44790 26275 35734 41095 41096 41504 41698 41699 41700 41748 41749 41750 41751 44687 44688 44698 44699 45001 46312 46313 46314 46317 46318 46322 46323 40866 40907 45157

 

ClamAV 시그니쳐:

 

Unix.Trojan.Vpnfilter-6425811-0

Unix.Trojan.Vpnfilter-6425812-0

Unix.Trojan.Vpnfilter-6550590-0

Unix.Trojan.Vpnfilter-6550591-0

Unix.Trojan.Vpnfilter-6550592-0