보안정보
전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.
사물인터넷(IoT)과 악성코드 : Part1. 임베디드 기반 악성코드와 미라이를 통한 시사점 분석
2020.12.02
10,209
01. 개요
4차 산업혁명의 핵심 기술인 사물인터넷은 스마트 빌딩, 스마트 시티 등 다양한 환경에 적용 및 보편화되면서 급격한 기술발전을 이루고 있다. 기술시장 분석 전문기관 가트너(Gartner)에 따르면 2009년 사물인터넷 기술을 사용하는 개수가 9억여 개 였으나, 2020년까지 260억에 이를 것이라고 예상한 바 있다. 시스코(Cisco) 역시 2013년부터 2020년까지 10년간 사물인터넷이 14조 4천억 달러에 이르는 경제적 가치를 창출할 것이라고 예상하면서 가트너와 같이 사물인터넷 시장의 확장과 이로 인한 효과에 대한 긍정적인 평가를 하고 있다.
그렇다면 4차 산업혁명의 핵심요소로 가파른 시장 성장세와 경제적 가치를 전망하고 있는 사물인터넷은 무엇일까?
사물인터넷(IoT, Internet of Things)란 각종 사물에 센서와 통신 기능을 내장하여 무선 통신을 통해 각종 사물을 연결하는 기술을 지칭한다. 여기에서 사물(Things)이란 가전제품, 모바일 장비, 웨어러블 디바이스 등 다양한 디바이스 환경(주로 임베디드)에 IP가 부여된 디바이스를 의미하게 된다. IP CCTV, 냉장고, 에어컨 등 가전기기 등 생활 가전제품에서부터 빌딩의 시선관리, 보안, 방법 등에 IT기술을 활용하는 스마트빌딩 같이 사물인터넷 기술은 생활전반에 적용되어 새로운 시장 창출과 비용 절감 등의 효과를 보이고 있다.
사물인터넷 장비는 종류에서부터 가격까지 스펙트럼이 넓다. 특히 웨어러블 디바이스를 필두로 사물인터넷을 기반으로 하는 디바이스 사업이 활발하게 이뤄지면서 저가의 디바이스로 인한 보안이슈가 꾸준히 보고되고 있다. 보안이 고려(Security by design)되지 않은 디바이스 환경을 노리는 공격자들로 인해 사물인터넷 취약점을 이용하여 등의 직접적인 피해가 발견됨에 따라 사물인터넷을 노리는 공격의 증가 원인을 분석하고 CCTV 해킹, DDoS 대응할 수 있는 방법에 대해서 살펴보고자 한다.
02. IoT 장비는 왜 이렇게 천적이 많은가?
임베디드 리눅스 기반의 디바이스를 공격하는 악성코드들이 주로 사용하는 공격방식 중 대표적인 공격방식은 임베디드 디바이스를 봇넷으로 사용하여 DDoS 공격에 사용하는 경우다. [그림 1]은 현재까지 공개된 임베디드 리눅스 악성코드 중 DDoS 공격 기능이 존재하거나 공격으로 인한 피해가 큰 악성코드 유형을 정리한 그래프이다.
[그림 1] 임베디드 리눅스 기반 악성코드 연대표
[표 1] 임베디드 리눅스 기반 악성코드 요약 정보
03. 임베디드 리눅스 기반의 악성코드 사례분석 : 미라이(Mirai)
[그림 1]에서 언급된 임베디드 리눅스 기반의 악성코드 중 유독 눈에 띄는 악성코드명을 발견할 수 있다. Mirai 악성코드 이후 탐지된 임베디드 리눅스 악성코드는 공개된 Mirai 소스 코드에서 수정/변화를 거쳐 제작된 변종이 많다. 최종 DDoS까지의 행위는 Mirai 악성코드와 크게 다르지 않다는 소리다. 그렇다면 [표 1]에서 확인되는 악성코드 목록 중 Mirai 악성코드가 어떤 행위를 하는지에 대해서 알아보자.
1) Mirai 악성코드 공격 Timeline
[표 2] Mirai 악성코드 공격 Timeline
[그림 2] Mirai 악성코드 공격 방식 개요 (출처 : 해시넷)
2) Mirai 악성코드 행위 분석
※ 공개된 소스코드 기반으로 분석 진행 (https://github.com/jgamblin/Mirai-Source-Code)
최초 실행 시 23번 포트(Telnet) 스캔을 진행한다. 접근할 IP는 랜덤으로 생성하며 스캔하지 않는 IP 대역도 존재한다. 추후 해당 기기가 접근에 성공하여 감염될 경우 감염된 기기에서도 동일한 포트 스캔을 진행한다.
[그림 3] 랜덤 IP 생성, 포트 스캔 시도
연결 성공 시 사용될 총 62개의 ID/PW를 저장하고 있으며 ID, PW, 가중치의 구성을 가지고 있다. 접속에 사용될 ID/PW는 랜덤으로 정해지며 가중치가 높을수록 뽑힐 가능성이 커진다. 부여된 가중치는 Mirai 악성코드가 제작되던 당시 제품 판매량을 기초로 하여 부여한 것으로 추측된다.
[그림 4] 미리 설정된 공장 초기 ID/PW 목록 중 일부 (총 62개)
[표 3] 가중치가 가장 높은 ID/PW 3개가 사용되는 장비명 (출처: krebsonsecurity)
랜덤으로 선택된 ID/PW를 이용하여 접속을 시도하며 실패하여 연결이 끊어지지 않은 경우 연결이 끊길 때까지 시도한다.
[그림 5] 최초 실패에 따른 재시도 코드
로그인 성공 시 busybox*의 wget** 명령어를 이용하여 설정된 C2에서 파일 다운로드를 시도한다. 다운로드받은 Mirai 악성코드를 실행하여 감염시킨 뒤 이미 생성된 봇넷에 편입시킨다.
[그림 6] busybox 화면
[그림 7] 코드 내부에서 사용되는 busybox, wget
이후 C2 명령을 대기하고 있으며 공격 명령 수신 시 DDoS 공격을 수행한다.
[그림 8] DDoS 공격 관련 코드
[표 4] 가능한 DDoS 공격 방식
Mirai 악성코드는 실행 시 자기 자신을 삭제 후 메모리에서 실행되기 때문에 감염의 지속성을 위해 장치의 재부팅을 막아야 한다. 그렇기에 장비의 오류가 발생 시 재부팅을 수행하는 기능을 가진 watchdog를 비활성화시킨다.
[그림 9] watchdog 비활성화
04. 미라이 악성코드 분석을 통한 시사점
사물인터넷을 위협하는 다양한 악성코드 중 하나인 Mirai 악성코드에 대해 중점적으로 알아보았다. 파급력이 컸던 악성코드이지만 분석해 보니 이런 사소한 방법으로 장비에 침투하여 기기를 봇넷화 하는 것이 어떻게 가능한지에 대한 의문이 어느 정도 풀렸다고 생각한다. 하지만 공격에 사용된 방식은 여전히 유효하며 이후 변종 또는 다른 IoT 악성코드에서 공개된 소스 코드의 일부를 차용할 정도로 파급력은 막강하다고 생각된다.
인터넷에 연결된 장비를 찾는 검색엔진인 Shodan에서 Mirai 악성코드가 침투를 위해 스캔을 시도하는 23번 포트를 검색해본 결과 약 400만대 이상의 장비가 외부에 노출된 것으로 확인된다. 물론 모든 장비가 IoT 장비는 아닐 것이라 추측되지만 만약 이 중에서 약 10퍼센트의 장비가 봇넷화되어 DDoS 공격을 감행할 경우 동일하거나 더 큰 피해가 발생될 것이라 예측된다.
[그림 10] shodan에서 23번 포트로 검색 결과 (2020/11/09 기준)
사물인터넷 악성코드 하면 Mirai 악성코드가 가장 유명하지만 전파 방식에서 차이가 있거나 봇넷을 만드는 것이 아닌 장비 자체를 무력화하는 악성코드도 존재한다. 해당 내용에 대한 추가적인 분석 및 대응 방안에 대해서는 “Part2. 미라이 악성코드로 발발된 미라이家 악성코드 분석”에서 다룰 예정이다.
05. 참고자료
[1] 임베디드 리눅스 악성코드
[2] Mirai
http://wiki.hash.kr/index.php/%EB%AF%B8%EB%9D%BC%EC%9D%B4_%EB%B4%87%EB%84%B7
https://krebsonsecurity.com/wp-content/uploads/2016/10/IoTbadpass-Sheet1.pdf
https://github.com/jgamblin/Mirai-Source-Code
https://www.shodan.io/search?query=port%3A23
※ 12월 월간보안동향