
머신러닝 기술을 활용한 포트 스캐닝, DoS 및 맬웨어 공격 고급 탐지
이 프로젝트는 머신러닝 기법을 활용하여 포트 스캐닝, 서비스 거부(DoS), 악성코드와 같은 네트워크 공격을 분류합니다. 입력 데이터는 Cisco에서 사용하는 표준 형식인 Netflow V9 형식입니다.
분류는 다음 모델을 사용하여 수행됩니다:
이 프로젝트는 Python으로 구현되었으며, Jupyter Notebook과 UMAP, Pandas, NumPy, Scikit-Learn, Matplotlib, Seaborn을 포함한 여러 인기 라이브러리를 사용합니다.
노트북은 여기에서 GitHub에서 직접 볼 수 있습니다. 또는 NbViewer를 통해 이 링크에서 확인할 수 있습니다.
PDF 형식의 Keynote 발표 자료는 여기에서 확인할 수 있습니다.
이 프로젝트에 사용된 데이터셋은 NetFlow V9 형식입니다 (Cisco 문서, 여기 참조). 두 개의 파일로 구성됩니다: train_net.csv와 test_net.csv.
train_net.csv 파일은 특정 알림이 발생할 가능성이 있는 시기에 대한 정보를 제공하며, test_net.csv 파일은 테스트 목적으로만 사용되며 모델 성능 평가를 위한 목표 변수를 포함하지 않습니다.
데이터셋은 상당히 큽니다:
train_net.csv: 약 4백만 개의 패킷 (14,066개의 고유 네트워크 호스트)test_net.csv: 약 2백만 개의 패킷 (6,186개의 고유 네트워크 호스트)Maria-Elena Mihailescu, Darius Mihai, Mihai Carabas, Mikolaj Komisarek, Marek Pawlicki, Witold Holubowicz, Rafal Kozik: The Proposition and Evaluation of the RoEduNet-SIMARGL2021 Network Intrusion Detection Dataset. Sensors 21(13): 4319 (2021)