Search
🔄

The Circle Of Life: A Large-Scale Study of The IoT Malware Lifecycle

Created
2021/08/16 00:05
Tags
IoT
Malware
Conference
Usenix
Published
2021

0. 소개

본 글에서 다룰 논문은 30th Usenix Security Symposium 에서 발표되었던 "The Circle Of Life: A Large-Scale Study of The IoT Malware Lifecycle"입니다.
Hydra나 Mirai Botnet등의 사건으로 미루어 보았을 때, IoT 멀웨어(malware)에 대한 보안은 아직 미흡한 부분이 많습니다.
다른 분야에 비해 비교적 미흡한 수준인 IoT 멀웨어의 보안의 수준을 높이고자 IoT 멀웨어를 분석하고, 데스크탑과 모바일 플랫폼에서의 멀웨어들과 IoT 멀웨어를 비교하였습니다.

1. 배경지식

Mirai Botnet Attack

Mirai Botnet은 IoT기기를 좀비, 혹은 (bot)으로 감염시키는 Botnet의 일종입니다. Mirai Botnet은 관리자 계정설정이 취약한 스마트 기기를 스캐닝 접속하고, 이를 기반으로 악성코드를 통해 좀비PC화하고, 이 스마트 기기들을 이용하여 디도스 공격을 진행합니다.
당시 Mirai malware는 공격의 근원을 감추기 위해 소스코드를 공개했고, 이 코드는 다른 사이버 범죄자들에 의해 빠르게 모방범죄에 이용되었습니다. 이러한 특징때문에 Mirai Botnet의 경우 Mirai Botnet은 가장 큰 규모의 DDoS 공격을 일으켰다고 평가받고 있습니다.

2. 논문 내용

저는 크게 5개의 파트로 나누어 논문을 분석하였습니다. 제가 읽고 개인적으로 정리한거라 순서 및 구성은 차이가 있을 수 있습니다.
본 논문은 두 가지 질문에 대해서 주요하게 다룹니다. 아래 두 질문은 논문 전반에 걸쳐 논의되며, 결론에 이에 대한 답변이 있습니다.
RQ1 : IoT 멀웨어는 전통적인 멀웨어와 다른 점이 있는가?
RQ2 : 현재 사용되는 anti-malware 기술을 IoT 멀웨어에서도 적용할 수 있는가?

IoT 멀웨어 연구 배경

본 논문은 멀웨어의 라이프사이클(lifecycle)에 대한 5가지 구성 요소 중점적으로 살펴봅니다. 감염 벡터(Infection vector), 페이로드 특성(payload property), 지속 방법(persistent method), 기능(capability) 및 C&C 인프라(C&C Infrastructure)를 연구합니다. 각 5가지 구성 요소를 기준으로, 기존 멀웨어(데스크톱/모바일)에 대한 기술을 탐구하고 IoT 멀웨어에 대해 실증적으로 비교합니다. 각각 구성 요소는 다음과 같이 정의됩니다.
감염 벡터 (Infection vector) : 멀웨어가 시스템을 감염하는 방법을 뜻합니다.
페이로드 (payload) : exploit을 위한 malware 코드를 뜻합니다.
지속 방법 (persistence) : 멀웨어가 시스템 안에서 계속해서 실행되는 방법을 뜻합니다.
기능 (capability) : 멀웨어 코드를 통해 실행되는 기능들을 뜻합니다.
C&C 인프라 (C&C Infrastructure) : 멀웨어가 운영자와 통신하기 위해 사용하는 인프라를 뜻합니다.
위 5가지 요소는 25가지의 선례 논문들을 통해 정한 것이며, 이걸 더 세분화하여 정리한 표는 아래 Table 1과 같습니다.
다음과 같은 기준으로 총 166,000개 이상의 linux기반 IoT 멀웨어 분석을 하였으며, VirusTotal, Active and Passive DNS, Bad Packets Honeypots, Tranco Top Site Ranking 등을 참고하였습니다.

IoT 멀웨어 분석

분석 기법
본 논문에서는 166,000개 이상의 멀웨어를 분석하는 과정에서 정적, 동적 그리고 네트워크 분석을 사용하였습니다. 이 방법은 선례 논문들을 참고하여 작성되었으며, 아래 Figure 2를 통해 전체 과정을 볼 수 있습니다.
메타데이터(Metadata) 분석
Metadata 분석은 가장 먼저 진행하는 분석으로, VT를 이용하여 AV레이블 탐지에 사용됩니다. AV 레이블을 AVClass과 결합하여 각 샘플의 레이블을 통합합니다. 이 메타데이터 분석은 멀웨어 샘플에 대한 컨텍스트를 제공하며 정적 및 동적 분석의 결과 상관 관계를 파악하는 데 도움이 됩니다.
정적(Static) 분석
동적으로 분석하기에 앞서, 멀웨어에 대해 정적 분석을 진행합니다. 정적 분석의 목표는 각 바이너리의 대상 아키텍처, 링크 방법(정적/동적), anti-analysis 기법, 패킹, 임베디드 도메인 및 IP 주소, 감염 벡터 등을 식별하는 것입니다. 본 연구에서는 binutils의 툴들을(readelf, objdump, objcopy, strings, and hexdump) 사용하여 정적 분석을 진행하였습니다. 과정은 다음과 같습니다.
1.
binary 파일을 파싱하고 파일 헤더를 기반으로 아키텍처, endian 및 링크 정보를 식별합니다.
2.
4개의 휴리스틱을 사용하여 ELF 이진 파일에 대한 안티분석 아티팩트를 검사합니다.
PT_LOAD 분석, 가짜 섹션 헤더 검증, SHT_DYNSYM 확인, 섹션 헤더 필드 검증
3.
기본 설정과 정규식이 있는 문자열을 사용하여 IP 주소 및 도메인을 추출합니다. 이 과정에서 python, Yara, 등등을 활용합니다.
동적(Dynamic) 분석
정적 분석을 바탕으로, 정적 분석만으로 알 수 없는 부분들을 동적 분석을 통해 분석합니다. 본 연구에서는 각 샘플을 실행하고 시스템 호출 및 네트워크 트래픽을 수집하는 아키텍처별 가상 머신을 구축하여 분석하였습니다. 분석 기준은 우리는 각 샘플을 60초 동안 실행하고 트레이스와 네트워크 트레이스를 사용하여 시스템 호출 트레이스를 수집하였으며, ELF 파일의 명령과 시스템 호출을 에뮬레이터를 사용하여 system call trace를 생성했습니다.
다만 샘플을 60초동안 실행하는 것은 몇몇 샘플에 있어서 영향을 미칠 수 있기 때문에, 전체 시스템과 binary emulation 간의 추적 분산을 측정했습니다. Binary emulation을 사용하면 절전 시스템 호출을 건너뛰고 악성 프로그램의 실행을 빠르게 전달하여 가능한 숨겨진 동작을 확인할 수 있습니다. 또한 멀웨어에서 유출된 소스코드를 사용하여 실행 추적 및 함수 기호와 일치시켜 기능을 식별하여 이에 대한 영향을 최소화하였습니다.
결론적으로 이 방법을 통해 ARM에 대한 binary emulation trace가 전체 system emulation trace와 85% 일치하였습니다. 따라서 이를 기반으로 분석을 하였고, 성공적으로 실행된 샘플을 시스템 아티팩트와 네트워크 아티팩트의 두 가지 메트릭으로 악성코드 여부를 계산하였습니다. 본 연구팀은 이 과정에서 제작한 멀웨어 분석 툴을 공개하기로 했습니다. 결과는 아래 Table 3과 같습니다.
인프라(Infrasturcture) 분석
마지막으로 멀웨어가 통신하는 C&C 인프라를 분석하기 위해 정상 도메인을 3단 필터링으로 제거하는 방식을 진행하였습니다.
1.
Tranco 상위 사이트를 사용하여 정상 도메인 목록을 열거하여 제거합니다. 이것을 기반으로 가장 많이 참조된 도메인을 기록하고, 1차적으로 필터링을 진행하였습니다.
2.
남은 목록을 수동으로 검사하여 나머지 정상 도메인을 제거하였습니다.
3.
도메인과 IP 간에 초당 그래프를 작성하여 연결된 구성요소를 찾고 추가적인 정상 클러스터를 필터링하였습니다.
이렇게 정상 도메인을 제거한 뒤 멀웨어들이 공통적으로 접속하는 pDNS 및 DNS를 조사하였습니다.
결론적인 조사 결과는 아래 Table 3과 같습니다.

IoT 멀웨어의 5요소

본 논문에서는 앞서 언급했던 Infection vector, payload, persistent method, capability, 그리고 C&C Infrastructure의 5가지 기준을 통해 IoT 멀웨어의 라이프사이클을 분석하였습니다. 각각의 내용은 다음과 같습니다.
Infection Vector
Infection Vector는 멀웨어가 공격을 진행할 때 사용하는 취약점을 주로 뜻합니다. 분석 결과, 초기 IoT 멀웨어는 미흡한 default credentials이나 인터넷과 연결되는 IoT 기기의 네트워크적 취약점을 사용하였습니다. 그러나 조사 결과 IoT 멀웨어는 이전에는 볼 수 없었던 다양한 장치 범주(인터넷 대면 또는 NAT 장치 이면)를 대상으로 exploit하도록 발전해 온 것을 확인할 수 있었습니다.
또한 한가지 특징이 있었는데, 대부분의 IoT 기기가 GUI가 없다는 점을 이용하여, 대부분의 IoT 멀웨어가 사용자와의 interaction 없이 빠르게 감염될 수 있는 것을 확인하였습니다. 특히 IoT 멀웨어의 아키텍처에 구애받지 않는 특성으로 인해 이전 데스크톱 웜보다 더 큰 위협이 될 수 있습니다.
위 특징들을 보았을 때, IoT 악성코드는 기존 악성코드보다 더 큰 위협이 될 수 있다는 결론을 내었습니다. 현재는 전통적인 malware에 비해 심각성이 떨어진다고 생각할 수 있겠지만, IoT 기기가 발전함에 따라 repackaging, drive-by download, 피싱 및 이동식 미디어가 모두 IoT 악성 프로그램이 악용할 수 있는 실질적인 감염 벡터가 될 것으로 예상됩니다.
Payload
페이로드는 멀웨어가 시스템을 exploit하기 위한 malware 코드를 뜻합니다. 페이로드는 기본적으로 대부분 Mirai Botnet의 형태를 주로 보이고 있었으며, 그 외로는 주로 1-day 취약점을 이용하여 페이로드를 구성한 것을 확인할 수 있었습니다. 주로 사용된 exploit들은 아래 table 6과 같습니다.
이러한 경향들을 보통 앞서 언급한 정적/동적 분석 등으로 감지하는데, 페이로드 분석 결과 이미 IoT 멀웨어에도 고급 다형성(polymorphic) 및 anti-analysis 전술을 통합한 것으로 나타났습니다. 이 수치는 분석 당시 5%정도로 높지 않은 비율을 보였지만, IoT의 접근성과 발전가능성을 보았을 때 고려해야할 점이라고 시사합니다.
Persistent Method
멀웨어가 시스템에 침입한 이후로도 계속해서 그 시스템에 남아있는 것 또한 멀웨어에 있어서 중요한 요소입니다. IoT 멀웨어는 데스크톱이나 모바일 시스템에서 찾을 수 없는 파일 시스템 제약 조건을 처리해야 합니다. 그러나 현재 IoT의 특성상 사용자 공간, 커널 공간 및 펌웨어를 통합할 경우 기존 플랫폼에서 볼 수 있는 계층화된 보호 기능이 제거되므로 IoT 멀웨어가 장치의 하드웨어에 대한 권한 있는 액세스를 가질 수 있습니다. 조사 결과 현재로서는 영구 메서드가 제한되어 있지만, 디바이스 하드웨어에 직접 액세스하는 방식으로 exploit할 경우 디바이스 교체로만 복구가 가능할 것으로 예상합니다.
Capability
멀웨어가 타겟을 감염시킨 뒤 할 수 있는 일들은 다양합니다. 연구 조사 결과, IoT 멀웨어는 검색 및 악용에 의한 장치 감염에서 정보 도난 및 네트워크 트래픽 하이잭킹과 같은 보다 정교한 장치 감염에 이르기까지 다양한 악용 범위를 제시합니다.
한 가지 더 알아낸 점은 IoT 멀웨어가 전반적인 IoT가 아닌, 특정 제품군을 대상으로 하고 있으며, 기존의 스피어 피싱처럼 맞춤형 IoT 기기 타겟팅이 더 많이 나타날 수 있음을 시사합니다.
C&C Infrastructure
앞서 언급했던 인프라 분석 방법을 통해 IoT 멀웨어는 P2P와 중앙 집중식 제어 인프라가 혼합된 것으로 나타났습니다. ISP 네트워크에서 관찰된 갑작스러운 IoT 봇넷 활동을 기반으로, 봇넷 운영자는 확장성과 안정성, 복원력을 달성하기 위해 유사한 계층 C&C 통신 접근방식을 Storm 봇넷에 적용하는 방향으로 전환할 수 있습니다.
IoT 멀웨어 운영자들이 주로 페이로드 호스팅을 위해 DNS를 사용한다는 사실로 보았을 때, 이런 경향은 기존의 Mirai Botnet에서의 상속 버그로 인해 IoT 악성코드의 Mirai 코드에 대한 의존도가 저하됐다고 분석합니다.
결론적으로, 대부분의 IoT 멀웨어가 Mirai Botnet의 코드에 기반한다는 것을 알 수 있었습니다.(Figure 4 참고) 따라서 어느 정도 비슷한 경향성을 보이는 것 또한 확인할 수 있었고, 어떻게 보면 쉽게 대응할 수 있다고도 해석할 수 있었습니다. 그러나 앞으로 IoT가 더 발전함에 따라 공격벡터와 감염 방식이 증가하고 진화할 것으로 예상됩니다.

방어 기법 분석

앞서 IoT 멀웨어 분석을 통해 전반적인 IoT 멀웨어의 종류 및 동향을 알아보았습니다. 결론적으로 Mirai Botnet에서 파생된 양상을 보여줬지만, 장기적으로 보았을 때는 단순히 Mirai Botnet 유형의 멀웨어를 방어하는 것보다 멀웨어의 근본적인 공격 원인을 분석하여 방어하는 것이 바람직합니다. 본 논문에서는 기기 소유자, 기기 벤더ISP 운영자의 세 가지 기준으로 나누어 방어기법을 논합니다. 자세한 내용은 다음과 같습니다.
기기 소유자(Device Owners)
기기 소유자는 비교적 IoT 멀웨어를 감지하고 제거하는 방법이 제한되어 있습니다. 사용하지 않을 때는 인터넷에 접속하는 서비스를 비활성화하고, 기본 credentials를 제한하고, 네트워크를 분할하여 감염 위험을 일부 완화해야 합니다.
대부분의 기기 소유자들은 기기가 먹통이 되거나 서비스 품질이 저하된다고 느껴지면 보통 재부팅을 합니다. 물론 현재로서는 대부분의 멀웨어가 단순히 재부팅을 통해 정리될 수 있었지만, 더 영구적인 방법을 통해서 IoT의 멀웨어 라이프사이클을 유지시키는 케이스 또한 관찰할 수 있었습니다. 또한 신뢰할 수 있는 펌웨어로 다시 imaging하는 것은 손상의 위험때문에 어렵거나 불가능할 가능성이 높습니다. 따라서 앞서 언급한 제안들을 수용하는 것이 필수적입니다.
기기 벤더(Device Vendors)
기기 벤더는 IoT 멀웨어 감염에 있어 예방하고 해결할 수 있는 전반적인 가시성을 가지고 있습니다. 예를 들어, 장치 원격 분석을 통해 시스템 이상 징후를 탐지하고 장치 펌웨어를 통해 시스템 셸 상호 작용을 제한하고 컨테이너화를 통해 프로세스 상호 작용을 제한할 수 있습니다. 같은 맥락으로 프로세스 화이트리스트를 실행하거나 신뢰할 수 있는 실행을 통한 원격 증명으로 깨끗한 상태를 보장하고 클라이언트-서버 설계로 공격 벡터의 노출을 제한할 수 있습니다.
이런 제안들이 비용대비 효율적이지 않을 수는 있으나, Linux 기반의 일부 기기는 내장된 Linux의 기본 보호 기능으로도 구현될 수 있습니다. 더불어 IoT 시장은 현재도 발전하고 있는 분야이므로 향후 등장할 공격 벡터와 공격 유형 또한 염두에 두어야 합니다. (ex. phishing, drive-by download, application repackaging, incorporating browser)
ISP 운영자(ISP Operator)
ISP 운영자는 실제 공격에 있어 가장 빨리 대응할 수 있다는 점에서 이전 연구들에서 언급해온 것과 같이 매우 중요한 역할을 담당합니다. ISP는 감염 고객을 위해 다른 고객들과 분리시키는 것 이외에도 알려진 IoT C&C나 페이로드 호스팅 서버에 대한 IP 차단 및 리디렉션을 전개해 감염을 지연시킬 수 있습니다.
나아가 더 적극적으로 방어를 한다면 ISP가 페이로드 전달이나 C&C 통신을 가로채고 대신 사용자의 개입 없이 취약한 서비스를 투명하게 정리하고 비활성화하는 치료 payload를 실행할 수 있습니다. 그러나 이런 접근 방식은 대규모 네트워크로 확장하기 위해 세심한 설계가 필요합니다.

Are we prepared for another attack?

이 연구를 시작하게 된 동기는 "또다른 Mirai 공격에 대해서 준비가 되어있는가?"입니다. 이 궁금증을 바탕으로 IoT 멀웨어 위협 환경에 대한 대규모적인 관찰 결과를 제시하였습니다. 결론적으로 166,000개 이상의 linux기반 IoT 멀웨어 분석을 통해 전통적인 멀웨어와의 차이점과 인사이트를 얻을 수 있었습니다. 연구의 맨 처음 제시한 두 질문에 답을 하자면 다음과 같습니다.
RQ1 : IoT 멀웨어는 전통적인 멀웨어와 다른 점이 있는가?
A1 : IoT 멀웨어는 명백히 전통적인 멀웨어와 다른 특징들을 보입니다. 그러나, 전체적인 lifecycle을 분석해보았을 때 기존 멀웨어들과 비슷한 양상을 보이는 것 또한 확인할 수 있었습니다.
RQ2 : 현재 사용되는 anti-malware 기술을 IoT 멀웨어에서도 적용할 수 있는가?
A2 : A1의 내용에 덧붙여 이야기하자면, lifecycle 간의 공통점때문에 어느 정도 기존의 anti-malware 기술을 사용할 수 있을 것으로 보입니다. 그러나 앞으로 발전되고 도입될 수많은 IoT기기의 종류와 갯수를 생각해 보았을 때, IoT 멀웨어에 초점을 맞추어 대비하고 연구하는 것은 더 큰 사고를 방지하기 위해 필수적이라고 시사합니다.
이렇게 마무리하며, 본 연구팀은 연구 과정에서 구축한 체계를 지원하고 업데이트하기 위해 사용한 툴, 분석 아티팩트 및 결과를 https://badthings.info 에서 제공합니다.

3. Reference