보안 이슈

AhnLab 보안 전문가의 심층분석! 보안 이슈 정보를 전해드립니다.

IoT 시대를 위협하는 KiraV2의 역습

  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.

  • AhnLab
  • 2020-11-02
IoT 산업이 발전하고 코로나 팬데믹으로 인해 원격 근무가 증가해 네트워크의 경계가 넓어지면서, IoT 기기를 감염시키기 위한 해커들의 공격도 지속되고 있다. 대표적으로, 전 세계 수 많은 IoT 기기들을 감염시켜 디도스(DDoS) 공격을 감행했던 미라이 악성코드가 있다. 해커들은 여기에 그치지 않고 더 많은 IoT 기기들을 점령하기 위해 미라이 기반 신·변종 악성코드들을 만들어냈다. 

안랩 시큐리티대응센터(AhnLab Security Emergency-response Center, 이하 ASEC)은 2020년 3분기 보고서를 통해 대표적인 미라이 변종인 ‘KiraV2’ 악성코드를 분석했다. 이번 글에서는 ASEC 리포트에 저술된 내용 중 Kira V2의 정의, 동작 방법 및 공격 흐름에 대해 조명하고자 한다.  



지난 2016년 등장한 미라이(Mirai) 악성코드는 전 세계 무수히 많은 IoT 기기를 감염시키고, 봇넷을 이용한 대규모 분산서비스거부(DDoS) 공격을 수행했던 악명 높은 악성코드다. 특히, 미라이의 소스코드가 공개된 이후로 더 많은 공격자들이 미라이 악성코드를 이용해 IoT 장비를 감염시킨 뒤 표적을 향해 디도스(DDoS) 공격을 수행할 수 있게 됐다. 미라이 악성코드는 지금까지도 수많은 변종들이 생성 및 유포되고 있다. 

KiraV2 악성코드란?
올해 상반기는 코로나19로 인한 원격 근무의 증가로 기업 네트워크의 경계가 집까지 확대됐다. 조직의 입장에서는 방어해야 할 지점이 늘어난 것이며, 보안 사각지대의 취약점도 불가피하게 증가하게 됐다. 반대로, 공격자들의 입장에서는 공격 범위가 넓어지고 더 많은 디바이스를 감염시킬 수 있는 환경이 조성됐다. 봇넷을 이용한 미라이 계열 악성코드 활동에 더욱 주목해야 하는 상황이다. 

최근 유포되고 있는 변종 미라이 악성코드들은 더 많은 IoT 장비들을 감염시켜 봇넷을 확보하기 위해 미라이 소스코드에 추가로 원격 코드 실행 취약점을 활용하고 있다. 연결 가능한 디바이스를 스캔하고 취약한 디바이스로 확인되면, 원격 코드 실행 취약점을 이용하여 스스로를 취약 디바이스에 전파하는 방식이다. 

‘KiraV2’ 악성코드는 효과적인 전파를 위해 원격 코드 실행 취약점 공격 루틴들이 추가된 대표적인 변종이다. 기존 미라이 악성코드에서 전파 기능이 한층 강화된 변종으로 보면 된다. 또한, 제작자가 의도한 것으로 보이는 ‘KiraV2’라는 시그니처 문자열을 보이는 것이 특징이다.

KiraV2는 어떻게 동작하나?
기본적으로, KiraV2 악성코드는 미라이의 원본 소스코드에서 사용하지 않는 부분은 제거하고 필요한 부분은 수정했다. 전파에 관해서는 제작자가 직접 추가한 루틴이 존재한다. 참고로, 최근에는 미라이 기반 악성코드뿐 아니라 가프지트(gafgyt)와 같은 다른 악성코드들도 미라이(Mirai)의 소스코드를 일정 부분 차용하는 경우가 다수 존재한다.

KiraV2의 전반적인 기능은 미라이 악성코드와 흡사하다. 이 악성코드의 실질적은 목적은 디도스(DDoS) 공격이며, 다수의 봇넷을 확보하기 위해 취약한 IoT 장비에 악성코드를 전파한다. 전파 대상 역시 미라이와 같이 임베디드 리눅스 운영체제 및 비지박스(busybox)가 설치된 IoT 장비들을 포함한다. 또한, 화웨이(Huawei) 라우터와 JAWS Web Server가 설치된 MVPower DVR 관련 디바이스 두 종류의 장비들을 취약점 공격 대상으로 한다.


 [그림 1] 화웨이 라우터 취약점 공격 패킷

 
[그림 2] JAWS Web Server 취약점 공격 패킷

본래 미라이 악성코드의 전파 기능은 취약한 디바이스에 대한 텔넷(telnet) 사전 공격으로 계정 정보를 획득하고, 로그인 후 외부에서 악성코드를 다운로드 받아 실행하는 단일 방식이었다. 하지만, KiraV2를 포함한 최근의 변종들은 원격 코드 실행 취약점을 이용해 스스로를 취약 디바이스에 전파하는 것으로 확인됐다.
 
미라이 악성코드는 x86과 x64 외에도 arm, mips, m68, sparc, sh4 등 다수의 아키텍처를 대상으로 하며, 이를 가능하게 하기 위해 uClibc 크로스 컴파일러를 활용한다. 일반적으로 데스크톱과 서버에 설치되는 윈도우 운영체제는 x86과 x64 CPU 기반 아키텍처를 기준으로 하며, 악성코드 역시 x86 및 x64 아키텍처 대상 PE 포맷 실행 파일로 생성된다. 하지만, IoT 장비에 설치된 임베디드 리눅스의 경우 다양한 CPU 환경을 지원하기 때문에 악성코드 역시 여러 아키텍처를 포괄해야 한다. 

KiraV2도 마찬가지로 uClibc를 활용해 빌드되었다. 현재 분석 대상 샘플은 x86 아키텍처의 ELF 바이너리지만 다른 장비들을 대상으로 arm, mips와 같은 다른 아키텍처들에 대해서도 크로스 컴파일되어 전파에 사용되고 있다.

이 밖에, IoT 악성코드는 빌드 방식에서도 주요한 특징을 갖고 있다. 미라이 악성코드와 KiraV2 및 대부분의 IoT 장비 대상 악성코드들은 라이브러리를 정적으로 빌드하여 유포되고 있다. 만약 동적으로 해당 라이브러리를 빌드할 경우, 전파 대상 디바이스에 uClibc 등의 동적 라이브러리가 존재하지 않는다면 정상적으로 실행될 수 없기 때문이다.  

공격의 흐름
KiraV2의 공격 흐름도에서도 기존 미라이에는 존재하지 않는 취약점 전파 부분이 추가된 것을 확인할 수 있다. KiraV2의 경우 현재 봇 바이너리만 확보 가능하지만, 동작 방식이 미라이와 큰 차이가 없어 미라이에서 사용된 C&C 및 DB 서버와 리포트(Report) 서버 및 로더(Loader) 메커니즘이 그대로 사용되고 있을 가능성이 높을 것으로 추정된다.
 

[그림 3] Kira V2 공격 흐름도 

[그림 3]에 표현된 각 공격 단계별 주요 기능을 정리하면 아래와 같다. 

봇(Bot)
1. 초기화: KiraV2와 미라이 악성코드는 C&C 서버 주소를 포함하여 사용되는 대부분의 문자열들을 인코딩하고, 사용될 시점에만 복호화하여 사용한다. 먼저 인코딩된 문자열들을 초기화하며, 이외에도 분석 방해 기법 및 데몬 프로세스로 동작하기 위한 루틴들이 존재한다.
 

[그림 4] KiraV2 인코딩 테이블

2. Keep Alive: IoT 장비들은 프로그램이 의도치 않게 무한 루프에 갇히는 상황을 방지하기 위해 와치독(watchdog)을 활용한다. 와치독 타이머가 설정된 환경에서는 시스템에서 동작 중인 프로그램이 주기적으로 카운터 값을 초기화하는 루틴을 실행해야 하며, 무한 루프에 갇히게 되면 시스템을 재부팅해 정상 동작하도록 한다. KiraV2와 미라이 악성코드는 이러한 와치독 기능을 비활성화한다.
 

[그림 5] 와치독(watchdog) 비활성화 시도 

3. 다른 악성코드 종료: IoT 장비가 이미 다른 악성코드에 의해 감염되어 있을 경우를 대비, 프로세스 이름을 검색하여 특정 이름을 갖는 프로세스들, 즉 이미 설치된 다른 악성코드들을 강제 종료시킨다

 
[그림 6] 종료 대상 프로세스

4. 디도스 공격: 다수의 디도스 공격 함수들을 가지고 있다가 C&C 서버의 명령에 따라 공격을 수행한다. KiraV2 악성코드는 TCP Ack Flooding, UDP Flooding 등 다양한 종류의 디도스 공격을 지원한다.

5. 전파: 취약한 계정 정보(ID/PW)를 갖는 IoT 장비들에 대한 사전 공격을 수행한다. KiraV2의 경우 앞서 언급한대로, 기존 미라이의 전파 기능에 원격 코드 실행 취약점을 이용한 전파 루틴이 추가되어 있다.

C&C 서버 & DB 서버
C&C 서버는 DB 서버를 활용해 감염된 IoT 장비들을 관리한다. 공격자로부터 명령을 받아 감염된 IoT 장비들에 디도스 공격 명령을 내릴 수 있다. DB 서버는 감염된 다수의 장비들을 관리하기 위한 목적으로 활용된다.

리포트 서버 & 로더
리포트(Report) 서버는 봇으로부터 전달받은 취약 IoT 장비들에 대한 IP 주소, 계정 정보(ID/PW) 등의 주요 정보를 로더(Loader)에 전달한다. 이후, 로더 전달받은 정보를 활용해 로그인한 후 추가 악성코드를 다운로드하고 실행시킨다. 미라이 원본 소스코드에서는 전파를 위해 wget, tftp, echo를 활용한다.

강력한 자격 증명으로 IoT 기기 보호
최근 IoT 산업이 발전하면서 IoT 장비들의 숫자와 종류 역시 늘어나고 있다. 해당 장비들 중 상당수는 외부와 연결되어 있으며, 이를 노린 공격자들은 신변종 악성코드를 생성해 취약 디바이스를 향한 공격을 시도하고 있다. 이미 다수의 장비들이 감염되어 봇넷을 구성하고 있으며 디도스 공격에 활용되고 있다. IoT 기기의 감염은 해당 디바이스에서 그치는 것이 아니라 또 다른 IT 환경으로의 공격까지 파생시킬 수 있는 것이다. 

IoT 장비의 보안을 위해서는 아이디, 패스워드 등의 자격 증명을 강력하게 만들고, 또 주기적으로 변경하는 것이 중요하다. 또한, 취약점 공격으로부터 장비를 보호하기 위해 최신버전으로의 업데이트를 지속적으로 시행해야 한다. 

KiraV2 악성코드에 대한 보다 자세한 사항은 2020년 3분기 ASEC 리포트를 확인하면 된다.
▶2020년 3분기 ASEC 리포트 바로가기
  • AhnLab 로고
  • ASEC 분석팀 이재진 연구원
  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.