Ⅰ. 서론
사물인터넷 기술의 발전과 더불어 전 산업영역 및 일상생활에 사물인터넷 장치의 보급이 증가하면서 관련 시장이 급격히 확대되고 있다. 시장조사업체 IHS 마킷 사물인터넷 커넥티비티 부문 선임 수석 애널리스트 줄리안 왓슨은 2017년 278억 개 디바이스에서 연평균 12% 성장하여 2030년 1,350억 개로급사물인터넷 장치 시장의 폭발적인 성장을 예상하였다. 하지만 리소스가 제한된 사물인터넷 장치의 특성상 보안 내재 화가 어려워 수많은 취약점 등을 악용한 위협이 지속적으로 증가할 것이다. KT 경제경영연구소에 따르면 2030년 국내 사물인터넷 해킹 피해액만 26조 7천억에 달한다고 분석하였다. 이러한 해킹 공격에 대응하기 위해 국내에서는 한국인터넷진흥원이 사물인터넷 제품의 보안 내재화를 위한 ‘사물인터넷 공통 보안원칙’을 발표하며 하드웨어 및 소프트웨어 전반에 걸친 보안 가 이드라인을 제시하고 있다. 미국의 경우 사물인터넷 관련 보안법을 통해 사물인터넷 기기에 보안 기능 탑재를 법적으로 규정하고 있다. 하지만 기존에 유통된 대다수의 기기는 보안이 취약한 상태로 사용되고 있으며, 장치를 사용하는 사용자의 기기 보안에 대한 인식 및 지식이 부족하여 자신의 기기가 감염되었는지 확인이 어려우며 대응 또한 쉽지않다. 본 논문에서는 이러한 보안 내재화 및 사용자 대응이 어려운 사물인터넷 환경의 알려진 취약점을 악용한 공격에 대응하기 위해 관련한 취약점과 익스플로잇을 분석하고 대응하기 위한 기술을 제안하였다.
Ⅱ. IoT 익스플로잇 현황
본 논문에서는 IoT 임베디드 기기 대상 익스플로잇 현황을 파악하기 위해 두 가지 조사 결과를 정리하였다. 2020년 3월 팔로알토 네트웍스의 Unit 42 IoT Threat Report[1]에 따르면 IoT 임베디드 기기 대상 위협은 익스플로잇 감염, 멀웨어, 사용자 정보 탈취로 나눌 수 있다. 그 중 IoT 임베디드 기기의 주요한 익스플 로잇은 네트워크 스캔, RCE, Command injection, Buffer Overflow 등으로 관찰되었다. 기기 취약성을 통한 익스플로잇 감염의 대부분은 장치 네트워크의 다른 시스템을 공격하기 위한 측면 이동(Lateral movement)의 목적으로 사용된다. 먼저 네트워크에서 많은 수의 네트워크 스캔, IP 스캔, 포트 스캔 및 취약점 스캔을 통해 다른 기기와 시스템을 식별하려고 시도하고 측면 이동의 다음 단계를 위한 대상을 찾는다. 취약한 기기를 발견 후 초기 액세스 권한을 얻기 위해 Command injection, Buffer Overflow 등과 같은 공격을 시도한다.
[그림 1] 사물인터넷 위협 분류
2008년부터 2020년까지 27개의 IoT 멀웨어를 조사한 논문[2]에 따르면 초기 IoT 멀웨어는 브루트 포스 공격을 이용하며 취약점을 거의 악용하지 않았으나, 2016년부터 감염 전략의 일환으로 취약점 사용이 보편 화되었다고 한다. IoT 멀웨어 개발자가 익스플로잇에 자주 사용하는 상위 6개 CWE 유형은 CWE-20(부적절한 입력 검증), CWE-77(명령어 인젝션), CWE-78(OS 명령 주입), CWE-94(부적절한 코드 삽입), CWE-119(메모리 버퍼 오류) 및 CWE-287(부적절한 인증 오류)이다. 이는 전체 취약점의 67%를 차지하며 이러한 6가지 CWE는 모두 입력 유효성 검사 오 류 또는 인증 오류이다.
[표 1]은 가장 많이 악용된 6가지 CWE를 보여준다. 위의 두 가지 조사 결과를 바탕으로 IoT 임베디드 기기 익스플로잇에 사용되는 위협 및 취약점 유형의 비율을 파악했다. 그 결과를 이용한 익스플로잇 사례에서 Command injection이 높은 비율을 차지하는 것을 알 수 있다.
[표 1] CWE 익스플로잇 비율
Ⅲ. IoT 익스플로잇 동향
스마트홈, 스마트공장, 산업 환경, 운송 네트워크 및 기타 여러 분야에 사물인터넷(IoT) 장치가 지속적으로 보급됨에 따라 악의적인 IoT 네트워크 공격자의 공격 표면도 증가하고 있다.2021년 4월 IBM 선임 위협 연구원 Dave McMillen[3]에 따르면 네트워크 공격 지표는 전체 IoT 공격이 매년 500% 증가하고 있다고 한다.
[그림 2] IoT 위협 분류
X-Force 연구에 따르면 이 급증은 주로 미라이와 코드를 공유하는 비교적 새로운 봇넷인 Mozi 봇넷 활동에 의해 발생한다. 2020년에 이 악성코드는 한 해 동안 탐지된 총 IoT 공격의 89%를 차지했다. 현재 많은 IoT 봇넷은 공개된 미라이 코드 기반으로 수많은 변종이 발견되었다. 그 중 Mozi는 미라이 변종이지만 Gafgyt 및 IoT Reaper의 코드 스니펫과 자체 코드로 구성되었 다. Mozi는 2019년 말에 라우터와 DVR을 대상으로 처음 발견되었다. 멀웨어는 분산 해시 테이블 프로토콜을 사용하여 DDoS 공격, 페이로드 실행 및 원격 명령 실행에 활용할 수 있는 봇의 P2P 네트워크를 구축한다. Mozi가 크게 확산되었던 주된 이유는 가장 일반적인 공격 벡터 중 하나인 Command injection 기술을 주로 사용하기 때문이다. IBM이 관찰한 거의 모든 IoT 타겟팅은 Command injection 공격을 사용하여 장치에 대한 초기 액세스 권한을 얻으려고 시도했다고 한다. 대상 엔드 포인트가 IoT 장치이고 이러한 공격에 취약한 경우 페이로드가 다운로드 되고 실행된다. CMDi 공격은 여러 가지 이유로 IoT 장치에서 매우 자주 사용된다. 첫째, IoT 임베디드 시스템에는 일반적으로 웹 인터페이스와 펌웨어 개발에 쓰인 디버깅 인터페이스를 통해 익스플로잇이 가능하다. 둘째, IoT 웹 인터페이스에 내장된 PHP 모듈을 악용하여 공격자에 게 원격 실행 기능을 제공할 수 있다. 셋째, 관리자가 예상되는 원격 입력을 삭제하여 인터페이스를 강화하지 못하기 때문에 IoT 인터페이스는 배포 시 취약한 상태로 남아있는 경우가 많다. 이를 통해 공격자는 ‘wget’과 같은 쉘 명령을 입력할 수 있다.
Ⅳ. IoT 익스플로잇 수집
4.1. IoT 기기 및 서비스 키워드 생성
IoT 기기 및 서비스 키워드를 생성하기 위해 다양한 채널에서 IoT 키워드를 수집하였다. 해당 정보는 nmap os list, techinfodepo.shoutwiki.com, wikidevi.wi-cat.ru, zoomeye를 통해 임베디드 시스템 기기 및 서비스 키워드를 수집하고 조합하여 검색 키워드로 생성하였다. 이때 중복되거나 ‘linux’, ‘redhat’, ‘debian’과 같이 기기 성격의 범위가 큰 키워드의 경우 데이터 신뢰성을 위해 제외하였다.
4.2. IoT 취약점 수집
3.1에서 생성된 키워드를 통해 IoT 취약점(CVE ID)을 수집한다. 최초에 IP Camera용 취약점을 파싱하여 저장한다. 그리고 NVD에서 제공하는 연도별 취약점 (CVE ID)을 저장한다. 우선 수집된 IoT 기기 및 서비스 키워드에서 Vendor 정보를 추출하고 연도별 취약점 파일의 CVE ID와 일치하는 취약점 정보들을 분류한다. 이 과정에서 ‘windows’, ‘microsoft’, ‘apple’ 등 기기 성격의 범위가 큰 키워드는 제외한다.
4.3. IoT 익스플로잇 코드 수집
생성된 키워드 및 nvd 연도별 취약점 정보를 통해 exploit-db.com의 IoT 익스플로잇 코드(EDB ID)를 수집한다. IoT 키워드와 일치하는 모든 데이터를 수집하고 수집된 정보의 CVE ID와 EDB ID를 확인한다. 확인된 모든 익스플로잇 정보(PoC 코드 등)를 수집 및 저장한다.
4.4. IoT 익스플로잇 공격유형 분류
모든 수집된 정보는 연구를 통해 수동으로 추출한 공격유형 별 선정된 키워드를 통해 공격유형을 분류한다. CWE 정보를 기준으로 1차 분류하였으며, 페이로 드의 특징 정보를 기준으로 2차 세부 분류하였다. 추가로 1차 공격유형만 분류된 Exploit Code의 경우 수동으로 분류하였다. 21년 10월 기준 총 44,412개의 Exploit code를 수집하였으며, 이 중 IoT 관련된 12,339개의 익스플로잇을 256종으로 세부 분류하였다[그림 3].
[그림 3] IoT 공격유형 분류
4.5. 미라이 변종 공격유형
위 과정에서 미라이 변종을 추가 분석하였으며, 이를 통해 미라이 변종과 관련하여 107개의 EDB-ID를 수집하였다. 미라이 공격의 경우 Scanning Phase, Infection Phase, Control Phase 3개의 공격단계를 구분할 수 있다. 수집된 107개 EDB-ID는 Scanning Phase 3개, Infection Phase 86개, Control Phase 0개, 미분류 18개로 분류하였다. 이를 별도의 20종의 공격 유형으로 분류하였으며 이는 [그림 4]와 같다.
[그림 4] IoT 공격유형 분류
본 논문에서는 이후 4절 IoT 익스플로잇 분석을 통해 총 90종의 IoT 익스플로잇 90종과 미라이 변종 107종의 공격유형을 탐지하기 위한 Snort Rule을 개발하였다.
Ⅴ. IoT 익스플로잇 분석
최근 IoT 익스플로잇 사례 분석을 통해 IoT 임베디드 기기 대상 익스플로잇 감염에 CMDi 공격이 주로 사용됨을 알 수 있었다. 본 절에서는 2008년부터 2021년 6월까지의 IoT 익스플로잇 감염 취약점을 조사하여 전체 취약점 중 CMDi 공격의 비율을 조사하였다. IoT 익스플로잇은 CVE취약점을 기준으로 exploit-db.com ID, 공격유형, 페이로드, 사용된 IoT 멀웨어 등을 조사했다. CVE-ID와 EDB-ID, 페이로드는 팔로알토 네트웍스 Unit42[4]와 같은 블로그, 보고서, badpackets 트 위터1) , URLhaus Database2)와 같이 매일 업데이트되 는 무료 서비스를 참조하였다.
공격유형은 수집된 취약점 별 익스플로잇 코드의 페이로드를 조사한 후 기존에 분류했던 IoT 공격유형 분류 결과 [그림 2]와 익스플로잇 페이로드 특징을 비교하여 분석하였다. 기존에 조사한 IoT 공격유형 분류 결과를 바탕으로 IoT 키워드를 통해 수집된 exploit-db.com ID의 CWE 별 공격유형을 18종(Type A)으로 분류하였으며, 18종의 공격유형 분류는 페이로드의 특징적 차이를 기준으로 256종(Type B)으로 세부분류 하였다. IoT 공격유형 분류 결과는 IoT 익스 플로잇 취약점으로 사용 가능한 모든 익스플로잇을 대상으로 분류한 결과이고, 이번에 조사하는 전체 IoT 익스 플로잇 취약점 조사 결과는 실제 익스플로잇 공격으로 쓰인 취약점만을 대상으로 공격유형을 분류했다는 점에서 차이가 있다. 기존에 조사한 IoT 공격유형 분류 결과를 바탕으로 IoT 키워드를 통해 수집된 exploit-db.com ID의 CWE 별 공격유형을 18종(Type A)으로 분류하였으며[그림 5], 18종의 공격유형 분류는 페이로드의 특징적 차이를 기준으로 256종(Type B)으로 세부분류[그림 6]하였다. IoT 공격유형 분류 결과는 IoT 익스플로잇 취약점으로 사용 가능한 모든 익스플로잇을 대상으로 분류한 결과이고, 이번에 조사하는 전체 IoT 익스플로잇 취약점 조사 결과는 실제 익스플로잇 공격으로 쓰인 취약점만을 대상으로 공격 유형을 분류했다는 점에서 차이가 있다. 실제 IoT 익스 플로잇 공격으로 쓰인 취약점의 Type B 분류 결과에서 전체 256종 중 51종을 확인하였고, 이는 전체의 20%에 해당하는 비율로 공격으로 사용가능한 취약점 중 일부만 사용되고 있음을 의미한다. 그중 5종의 CMDi 공격이 전체 50%를 넘는 것을 확인했다. IoT 익스플로잇 공격에 쓰인 취약점의 비율을 확인하기 위해 Type A 분류 결과의 전체 18종 중 14종을 확인하였다. CMDi 공격은 전체 취약점 중 57.14%를 넘는 것을 확인하였다.
[그림 5] IoT 위협 대분류(CWE기반) - Type A
[그림 6] IoT 위협 세부분류(페이로드 특징 기반) - Type B
Ⅵ. IoT 익스플로잇 대응
앞서 분석한 결과를 바탕으로 [그림 7]과 같이 197개의 세부공격 유형에 대한 익스플로잇 대응을 위한 탐지 정책을 생성하였다.
[그림 7] IoT 익스플로잇 탐지 공격유형
각각의 공격유형에 대해 생성된 197개의 탐지 정책 중 2개의 탐지 정책은 다음과 같다.
6.1. Crafted-GET-Request(Authentication Bypass)
Crafted Get Request 공격 패킷을 탐지하기 위해 [그림 8]과 같은 룰을 적용하였다. 탐지할 요청은 GET 요청이며 사용된 content값은 “/cgi-bin”과 “Admin.asp”, “Password”, “sessionKey”이다. 해당 익스플로잇은 [그림 9]의 CVE-2018-8898 취약점을 악용 패킷을 탐지한다.
[그림 8] Crafted GET Request 공격유형 탐지
[그림 9] Crafted GET Request 공격 패킷 정보
6.2. DictBruteForce_Telnet(Scanning Phase)
미라이 봇넷의 Scanning Phase 단계의 공격유형 중 DictBruteForce_Telnet 공격유형을 탐지하기 위해 [그림 10]과 같은 룰을 적용하였다. 해당 정책도 GET 요청을 탐지하며 content 값은 취약한 URI 경로 “/set_ftp.cgi”와 “%24%28nc”이다. 해당 익스플로잇은 [그림 11]의 CVE-2017-8224 취약점 악용 패킷을 탐지한다.
[그림 10] DictBruteForce_Telnet 공격유형 탐지
[그림 11] DictBruteForce_Telnet 공격 패킷 정보
Ⅶ. 결론
본 논문에서는 IoT 익스플로잇의 수집 및 분석을 통해 CMDi 공격이 높은 비율로 사용되고 있음을 확인하였다. 그리고 현재까지는 공격으로 사용 가능한 전체 취약점 유형 중 일부만 사용되고 있음을 확인했다. 이는 앞으로 다양한 IoT 공격에 대한 대응이 필요하다는 예상이 가능하다. 특히 전체 익스플로잇 공격 중 Command injection, Authentication Bypass, Buffer Overflow가 75.16%로 대부분을 차지하므로 무엇보다 이들 공격에 대한 확실한 대응이 필요하다고 생각한다. 또한 공격유형 분류를 통해 253종으로 공격유형을 세부 분류하였으며, 이 중 IoT 익스플로잇 공격유형 90종과 미라이 봇넷 공격유형 107종에 대한 위협 탐지 정책을 마련하였다.
References
- Unit 42, 2020 Unit 42 IoT Threat Report, paloalto Networks Unit 42, pp. 11~12, Mar 2020.
- R. Khoury, B. Vignau, S.Halle and A.Hamou-Lhadj, "An Analysis of the Use of CVEs by IoT Malware," Foundations and Practice of Security: 13th International Symposium, pp. 47-62, Mar 2020.
- Dave McMillen, "Internet of Threats: IoT Botnets Drive Surge in Network Attacks," IBM X-Force, Apr 2021.
- V. Singhal, R. Nigam, Z. Zhang and A. Davila, "New Mirai Variant Targeting Network Security Devices," paloalto Networks Unit 42, Mar 2021.