Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
network-attack-detection — 머신러닝 기술을 활용한 포트 스캐닝, DoS 및 맬웨어 공격 고급 탐지 | Kitploit
도구/GitHubGitHub/lucadibello/network-attack-detection
Vulnerability AnalysisInformation GatheringNetwork SecurityMachine LearningIntrusion DetectionLearning & EducationAnomaly DetectionLog Analysis
GitHublucadibello/network-attack-detection

network-attack-detection

머신러닝 기술을 활용한 포트 스캐닝, DoS 및 맬웨어 공격 고급 탐지

저장소 보기
133603년 전아직 검토되지 않음
웹사이트

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

머신러닝을 활용한 네트워크 공격 탐지

설명

이 프로젝트는 머신러닝 기법을 활용하여 포트 스캐닝, 서비스 거부(DoS), 악성코드와 같은 네트워크 공격을 분류합니다. 입력 데이터는 Cisco에서 사용하는 표준 형식인 Netflow V9 형식입니다.

분류는 다음 모델을 사용하여 수행됩니다:

  • K-최근접 이웃 (KNN)
  • RBF(방사형 기저 함수) 커널을 사용한 서포트 벡터 머신 분류기 (SVC)
  • 주성분 분석(PCA)과 서포트 벡터 머신 분류기(SVC)를 사용한 파이프라인
  • 배깅 분류기 (RBF 커널 기반 SVC)
  • 랜덤 포레스트 분류기
  • 엑스트라 트리 분류기
  • 신경망 (MLPClassifier)

이 프로젝트는 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개의 고유 네트워크 호스트)

데이터셋 특징

  • FLOW_ID: 플로우의 고유 식별자
  • PROTOCOL_MAP: 플로우에서 사용된 프로토콜을 나타내는 문자열, 가능한 값은 "ICMP", "TCP", "UDP", "IGMP", "GRE", "ESP", "AH", "EIGRP", "OSPF", "PIM", "IPV6-ICMP", "IPV6-IP", "IPV6-ROUTE", "IPV6-FRAG", "IPV6-NONXT", "IPV6-OPTS" 등이 있습니다.
  • L4_SRC_PORT: 플로우의 소스 포트 번호, 가능한 값은 0에서 65535 사이입니다.
  • IPV4_SRC_ADDR: 플로우의 소스 IPv4 주소, 점으로 구분된 10진 표기법의 문자열 (예: "192.168.0.1").
  • L4_DST_PORT: 플로우의 대상 포트 번호, 가능한 값은 0에서 65535 사이입니다.
  • IPV4_DST_ADDR: 플로우의 대상 IPv4 주소, 점으로 구분된 10진 표기법의 문자열 (예: "192.168.0.2").
  • FIRST_SWITCHED: 플로우가 시작된 시간, epoch(1970년 1월 1일) 이후 초 단위.
  • FLOW_DURATION_MILLISECONDS: 플로우의 지속 시간(밀리초).
  • LAST_SWITCHED: 플로우가 종료된 시간, epoch(1970년 1월 1일) 이후 초 단위.
  • PROTOCOL: 플로우에서 사용된 프로토콜, 가능한 값은 1(ICMP), 6(TCP), 17(UDP) 등입니다.
  • TCP_FLAGS: 플로우에서 설정된 TCP 플래그, 이진 문자열로 표시 (예: "100101").
  • TCP_WIN_MAX_IN: 수신 트래픽에 대해 알려진 최대 창 크기(바이트).
  • TCP_WIN_MAX_OUT: 송신 트래픽에 대해 알려진 최대 창 크기(바이트).
  • TCP_WIN_MIN_IN: 수신 트래픽에 대해 알려진 최소 창 크기(바이트).
  • TCP_WIN_MIN_OUT: 송신 트래픽에 대해 알려진 최소 창 크기(바이트).
  • TCP_WIN_MSS_IN: 수신 트래픽의 최대 세그먼트 크기(바이트).
  • TCP_WIN_SCALE_IN: 수신 트래픽의 창 크기 조정 계수.
  • TCP_WIN_SCALE_OUT: 송신 트래픽의 창 크기 조정 계수.
  • SRC_TOS: 소스 IP 주소의 서비스 유형(ToS) 값.
  • DST_TOS: 대상 IP 주소의 서비스 유형(ToS) 값.
  • TOTAL_FLOWS_EXP: 예상되는 총 플로우 수.
  • MIN_IP_PKT_LEN: 플로우 내 IP 패킷의 최소 길이(바이트).
  • MAX_IP_PKT_LEN: 플로우 내 IP 패킷의 최대 길이(바이트).
  • TOTAL_PKTS_EXP: 플로우 내 예상되는 총 패킷 수.
  • TOTAL_BYTES_EXP: 플로우 내 예상되는 총 바이트 수.
  • IN_BYTES: 플로우에서 수신된 바이트 수.
  • IN_PKTS: 플로우에서 수신된 패킷 수.
  • OUT_BYTES: 플로우에서 전송된 바이트 수.
  • OUT_PKTS: 플로우에서 전송된 패킷 수.
  • ANALYSIS_TIMESTAMP: 플로우가 분석된 시간, epoch(1970년 1월 1일) 이후 초 단위.
  • ANOMALY: 플로우에 이상이 있는지 여부를 나타내는 이진 플래그 (1 = true, 0 = false).
  • ALERT: (훈련 세트에서만 사용 가능) 현재 플로우에서 탐지된 공격 유형. 가능한 값은 다음과 같습니다:
    • None: 공격이 탐지되지 않음
    • Port scanning: 플로우가 포트 스캐닝 공격
    • Denial of Service: 플로우가 DoS 공격
    • Malware: 플로우가 악성코드 공격
  • ID: 플로우의 고유 식별자.

데이터셋 저자

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)

Kaggle 링크

도구 다운로드