올해 초 “T9 Project 여정의 시작”이라는 글을 시작으로 어느새 T9 Data의 첫 공개일이 다가왔습니다. 먼저 첫 공개인 만큼 T9 Project의 배경 및 목적을 간략히 소개하고, T9 Project의 대표 홈페이지와 공개되는 공격/데이터의 선정 이유 및 환경 구축 방법에 대해 설명하도록 하겠습니다. [이전 블로그 바로가기]
T9 Project의 연구 배경은 첫째, 사이버 공격 탐지 인공지능 모델(이하, 보안 AI 모델)에 활용할 고품질의 학습데이터 셋이 부족하고 둘째, 기존에 연구된 학습데이터 셋이 최신 사이버 공격 트랜드를 반영하지 못하는 문제가 있습니다. 그리고 사이버 공격 학습데이터 셋을 구축하기 위해 많은 시간과 노력이 필요합니다. 이러한 한계점과 문제점을 개선하기 위해 주기적으로 최신 사이버 공격(Apache Log4Shell, CryptoWire Ransomware 등)을 모사하여 공격 수행 및 로그(패킷, 시스템 변화 로그 등) 수집 자동 환경을 구축하여 보안 AI 모델을 생성하고 강화하는 데 활용할 수 있도록 하는데 있습니다.
표 1. T9 Project 2024년도 공격 목록 (2024-01)
순번 | T9 공격 아이디 | 공격 영역 | 공격 명 / 방법 |
1 | T1-24-01-S-N-CL | Network | Apache Log4Shell |
2 | T2-24-01-S-N-CL | Network | SMBGhost |
3 | T3-24-01-S-N-CL | Network | Apache ActiveMQ Deserialization |
4 | T4-24-01-S-E-M | End Point | CryptoWire Ransomware |
5 | T5-24-01-S-E-LM | End Point | XMRing Miner |
6 | T6-24-01-S-E-FH | End Point | Su Brute-Force |
7 | T7-24-01-M-NE-CLM | Network End Point | Apache Log4Shell + XMRing Miner |
8 | T8-24-01-M-NE-CFHL | Network End Point | Apache ActiveMQ + Su Brute-Force |
9 | T9-24-01-M-NE-CLM | Network End Point | SMBGhost + CryptoWire Ransomware |
[표 1]과 같이 선정된 공격 목록은 공격으로 인해 사회적 혼란이 크게 야기되었거나, 최근 2년 이내에 발생한 최신 공격을 대상으로 하였습니다. Apache Log4Shell과 SMBGhost와 같은 경우에는 다소 오래되었지만 사회적 이슈와 공격 결과의 파장을 고려하여 선정하였습니다.
[표 1]의 공격 영역은 해당 공격을 어디서 탐지할 수 있는지에 따라 구분하였습니다. 즉, Network는 네트워크 패킷을 분석하여 탐지할 수 있는 공격을 의미하며, End Point는 호스트에서 수집된 시스템 로그를 이용하여 탐지할 수 있는 공격을 의미합니다. 물론 해당 공격들이 무를 자르듯 네트워크와 호스트 각각의 영역의 정보만으로 공격을 탐지할 수는 없습니다. 예를 들어 Apache Log4Shell 공격의 경우 명령어가 실행되는 호스트에서도 탐지할 수 있지만 네트워크 패킷 데이터를 이용하면 더욱 효과적으로 탐지할 수 있어 이를 바탕으로 공격 영역을 나누었습니다.
지금부터 T9 Project에서 가장 중요한 부분인 공격 로그 자동 수집 방법에 대해 살펴보도록 하겠습니다. 공격 로그 수집 방법은 공격 환경 구축에 따라 달라지는데, Network 공격의 경우 기본적으로 Docker를 사용하여 공격 환경을 구성하였고, End Point나 복합 공격(단일 공격은 T9 공격 하나를 의미, 복합 공격의 경우 단일 공격이 2개 이상으로 조합된 것을 의미)의 경우 Virtualbox를 사용하여 구축하였습니다. 또한 로그 수집의 경우 Network 공격의 경우 패킷 덤프 응용프로그램인 tcpdump, pktmon을 이용해 패킷을 수집하였고, End Point의 경우 마이크로소프트에서 제공되는 Sysmon을 사용하여 시스템 로그를 수집하였습니다.
그림 1. T9 Project 공격 데이터 수집 예시
[그림 1]은 공격 데이터를 수집하는 개념도를 나타내는 것으로 구축 환경에 따라 차이는 있지만 전반적인 흐름은 크게 다르지 않습니다. 공격을 수행하기 위해 ‘run.py’를 실행하면 첫 번째로 가상환경이 실행되고 로그 수집기가 동작하며, 공격 수행 후 로그 수집을 멈추고 로그를 호스트로 전송하는 순서로 동작합니다. 각 공격(2024-01 공격 목록)과 환경이 어떻게 구성되어 있는지, 어떻게 로그가 수집되는지는 홈페이지(https://t9project.dev/)에 상세히 설명되어 있고, 최소로 수집된 공격 로우데이터도 다운로드 할 수 있습니다.
T9 Project의 대표 홈페이지에 대해 간단히 소개하도록 하겠습니다. T9 Project 홈페이지는 크게 4가지의 메뉴가 존재하며, Home에는 T9 Project에 대한 배경 및 목적 그리고 전체적인 연구에 대한 소개가 기술되어 있습니다.
그림 2. T9 Project의 홈페이지 메인 화면 구성
Attack 메뉴는 각 공격에 대한 상세 설명, 환경을 구축하고 실행하는 방법, MITRE ATT&CK Tactic 관계성, 수집 공격 데이터(패킷, 로그 등)에 대한 설명이 기술되어 있습니다.
그림 3. Attack 메뉴 화면 구성
Dataset 메뉴에는 공격 데이터를 다운로드(각 파일의 확장자의 경우 Network 로그의 경우 pcap의 형태로 제공되고, End Point 로그의 경우 evtx, log 형태로 제공) 할 수 있도록 목록화되어 있고, Contact Us 메뉴를 통해 구축 환경 및 공격 소스 등 제공을 요청할 수 있도록 대표 이메일 주소가 안내되어 있습니다.
그림 4. Dataset 메뉴 화면 구성
글을 마치며
이번 블로그에서는 T9 Project의 구현 및 수집 로그에 대한 간략한 설명과 T9 Project의 T9 Data를 제공 받을 수 있는 대표 홈페이지에 대해 소개하였습니다. 이후 지속적으로 최신 사이버 공격을 분석하여 T9 Data를 주기적으로 업데이트할 예정이며, 2025년에는 실질적으로 보안 AI 모델에 활용할 수 있도록 정상 데이터 셋과 이를 이용하여 생성한 사이버 공격 탐지 AI 모델을 공개하도록 하겠습니다. T9 Data 2024-02는 12월 17일에 업데이트 예정임으로 많은 관심 부탁드립니다.
KAIST 사이버보안연구센터 악성코드 분석 팀원으로 악성코드 분석 및 연구를 수행하고 있다.
KAIST 사이버보안연구센터 악성코드분석 팀원으로 리버싱 및 악성코드 분석 관련된 연구를 수행하고 있다.