솔루션

AI Security Suite

AI 기반 네트워크·호스트 침입 탐지와 악성코드 스캐너에 v1.1 에서 실시간 선제 방어, 모니터링 UI, 보고서를 더했습니다 — CLI 하나, 설정 파일 하나, logs 폴더 하나.

개요

구성 요소

문서 기준 버전: 매뉴얼 v1.1 / 소프트웨어 aisec 1.1.0. 단일 CLI(main.py, aisec)를 가진 Python 도구 모음입니다.

구성 요소기능기술
NIDS
(네트워크 침입 탐지)
pcap 파일 또는 실시간 캡처 → 양방향 플로우 → NSL-KDD 호환 33개 + 확장 20개 특징 → 4개 모델 투표 → 공격 유형 힌트가 담긴 JSONL 경보Scapy, Isolation Forest, Random Forest, LightGBM, PyTorch Autoencoder
HIDS
(호스트 로그 이상 탐지)
auth.log / syslog 파싱 → 메시지 템플릿, 희소도, IP별 시간 창 특징(26개) → 이상 줄 탐지정규식 파서, Isolation Forest
악성코드 스캐너 — 정적PE 헤더 / 섹션 / 엔트로피 / 임포트 / 문자열(55개 특징) → SHAP 기여도를 포함한 XGBoost 확률, YARA 규칙pefile, yara-python, XGBoost
악성코드 스캐너 — 동적Cuckoo/CAPE 샌드박스 행위 보고서(JSON, 39개 특징) → 분류. 파일은 절대 실행하지 않음scikit-learn Random Forest
VirusTotal 연동SHA-256 해시 평판 조회(업로드 없음), 캐시와 호출 제한, 키가 없으면 자동 건너뜀VirusTotal API v3
실시간 방어 (v1.1)입력원 → 탐지기 → 정책 → 안전 게이트 → 대응, 모두 감사 기록aisec defend
모니터링 UI · 보고서 (v1.1)로컬 웹 대시보드와 일간·주간·기간 지정 보고서aisec ui, aisec report
기능

각 구성 요소가 하는 일

NIDS — 네트워크 침입 탐지

패킷을 플로우로 바꾸고 여러 모델로 점수화하므로 한 모델이 혼자 판단하지 않습니다.

  • pcap + 실시간 캡처
  • 53개 플로우 특징
  • 다수결 투표
  • pcap 파일(스트리밍) 또는 실시간 인터페이스(Scapy AsyncSniffer, 선택적 BPF 필터)를 읽습니다.
  • TCP 상태 요약(SF / S0 / REJ / RST / OTH)과 30초 비활성 타임아웃을 가진 양방향 플로우를 만듭니다.
  • 최근 2초와 최근 100개 연결의 창 특징 — NSL-KDD 의 count / srv_count / serror_rate 와 같은 의미입니다.
  • 각 모델은 “클수록 위험”으로 점수를 내고, min_votes 개 이상(기본: 과반)이 동의하면 경보를 냅니다.
  • 경보에는 심각도(high = 모든 모델 동의), 공격 유형 힌트(SYN 플러드, 포트 스캔, 호스트 스윕, UDP 플러드, 무차별 대입, 통계적 이상), 핵심 특징 값이 담깁니다.

HIDS — 호스트 로그 이상 탐지

호스트의 정상 auth.log / syslog 가 어떤 모습인지 학습하고, 새롭거나 폭주하는 패턴을 표시합니다.

  • auth.log / syslog
  • 26개 특징
  • Isolation Forest
  • 시간대(sin/cos), 메시지 템플릿 희소도, 보안 키워드 13종, IP별 60초 창의 이벤트·실패·시도 계정 수 등을 특징으로 씁니다.
  • 임계값 = 정상 학습 로그 점수의 99 백분위수(설정 가능).
  • 경보마다 기여도가 큰 특징을 보여 줍니다. 예: ip_fail_window → 무차별 대입.
  • 공격이 없었다고 판단되는 기간으로 학습하며, 며칠~몇 주의 로그를 권장합니다.

악성코드 스캐너

정적, 규칙, 평판, 행위 신호를 파일 실행 없이 하나의 설명 가능한 판정으로 합칩니다.

  • PE · XGBoost · SHAP
  • YARA
  • VirusTotal(해시만)
  • PE 특징 55개 기반 정적 ML. SHAP 값이 어떤 특징이 점수를 올리거나 내렸는지 보여 줍니다.
  • 폴더의 YARA 규칙을 사용합니다(예시 규칙 7개 포함: EICAR, UPX, 높은 엔트로피, 인젝션 API, 랜섬 문자열, 인코딩된 PowerShell, 서명 없음).
  • 동적 분석은 외부 샌드박스(Cuckoo/CAPE)가 만든 report.json 만 읽습니다.
  • 종합 점수 = max(신호 × 가중치). 0.8 이상 악성, 0.5 이상 의심, 그 외 정상. “정상”은 증거를 찾지 못했다는 뜻이며 보증이 아닙니다.
  • PE 파일만 ML 분석하며, 스크립트·문서·ELF 는 YARA 와 VirusTotal 만 적용됩니다.

실시간 선제 방어

v1.1 은 위협을 받아 정책으로 판단하고 대응하는 엔진을 더했으며, 브레이크는 기본으로 걸려 있습니다.

  • 입력원 5종
  • 대응 6종
  • 기본 dry-run
  • 입력: scapy 스니핑, pcap 재생, /proc/net/tcp 폴링, auth.log 추적, 기존 악성코드 스캐너에 연결되는 파일 감시(watchdog).
  • 대응: IP 차단(nft / iptables / netsh, TTL, 허용 목록), 속도 제한, 파일 격리, 프로세스 종료·계정 잠금(둘 다 기본 꺼짐), 경보.
  • 정책 예시: 포트 스캔 75 → 즉시 차단, 사용자 열거 40 → 경보만, SSH 무차별 대입 80, SYN 플러드 90, 악성 파일 100.
  • 분산·위조 SYN 플러드는 피해자 오차단을 막기 위해 경보만 냅니다(syn_flood_target).
  • 운영 명령: list-blocks, unblock, rollback, gc, restore, verify-audit, self-test, simulate.

모니터링 UI · 보고서

엔진이 보고 한 일을 확인하고, 경영진이나 감사인에게 읽기 쉬운 보고서를 전달합니다.

  • 로컬 웹 UI
  • HTML · JSON · CSV · DOCX
  • Python 표준 라이브러리만으로 만든 대시보드: 외부 CDN·글꼴·스크립트가 없고 5초마다 갱신됩니다.
  • 타일, 60분 추이, 종류별 이벤트, 상위 공격자 IP, 위험 점수, 차단 목록, 격리 파일, 최근 이벤트와 감사 기록.
  • 기본 바인드는 127.0.0.1 이며 다른 주소는 토큰이 필수입니다. 해제·복구 버튼은 --allow-actions 가 있어야 합니다.
  • 보고서: 일간, 주간(7일), 기간 지정. HTML 은 자체 완결형이며 감사 체인 상태를 포함하고, CSV 는 수식 주입을 무력화합니다.
아키텍처

v1.1 실시간 방어 아키텍처

매뉴얼의 아키텍처 그림을 다시 그렸습니다. 파란 점선 화살표는 읽기 전용이며, 대시보드의 해제·복구 버튼만 쓰기 경로이고 별도의 게이트가 필요합니다.

AI Security Suite v1.1 아키텍처입력원이 탐지기로, 탐지기가 정책 엔진과 안전 게이트로 이어지고, 승인된 조치는 대응 모듈로 갑니다. 모든 기록은 모니터링 UI와 보고서가 읽는 logs 폴더에 저장됩니다.1 입력원2 탐지3 정책 · 안전 게이트4 대응실시간 패킷 스니핑scapy · root / CAP_NET_RAWPacketDetector포트 스캔 · SYN / UDP 플러드IP 차단nft / iptables / netsh · TTL · 허용 목록pcap 재생시험 / 사후 분석NIDS / HIDS ML 어댑터학습 모델 (선택)속도 제한차단보다 약한 조치/proc/net/tcp 폴링Linux · 일반 사용자ConnMonitor원격 IP별 연결 수파일 격리이동만, 삭제 안 함 · 해시·경로 보관auth.log 추적SSH / 로그인 이벤트AuthLogDetector무차별 대입 · 계정 열거프로세스 종료 / 계정 잠금기본 꺼짐파일 감시watchdog (폴링 대체)FileScanGate기존 악성코드 스캐너경보콘솔 · JSONL · syslog · webhookPolicyEngine위험 점수 누적(반감기 감쇠)경보 30 / 차단 70 임계값허용 목록 확인동시 차단 상한안전 게이트기본: dry-run(결정만 기록)--enforce 그리고enforcement.allow: truelogs_dir (기본 <설치 폴더>/logs) — 모든 데이터를 한곳에defense/events · alerts · audit.jsonl (SHA-256 해시 체인) · blocks.json · status.json · quarantine/ · reports/ · ui/access.jsonl로테이션 (max_bytes · backups) + 보존 (retention_days)aisec ui (모니터)127.0.0.1 · 토큰 · CSRF · 오프라인 SVG 대시보드aisec report일간 / 주간 / 기간 지정 · HTML · JSON · CSV · DOCX읽기 전용

옆으로 스크롤하면 전체 그림을 볼 수 있습니다.

  • 입력원
  • 탐지
  • 정책
  • 안전 게이트
  • 대응
  • 관찰
설계 원칙

방어 전용, 설명 가능, 오프라인 동작을 전제로 설계

방어 전용

공격 기능이 없습니다. 데모 pcap 은 파일로만 만들어지고 전송되지 않으며, 자동 대응은 이중 게이트 뒤의 dry-run 이 기본입니다.

비실행 원칙

악성코드 스캐너는 바이트를 읽기만 합니다. 동적 분석은 외부 샌드박스의 JSON 보고서를 입력으로 받습니다.

오프라인 동작

NSL-KDD 다운로드가 실패하면 합성 데이터로 대체하고, VirusTotal 은 키가 없으면 건너뛰며, 시험은 네트워크 없이 통과합니다.

학습·탐지 일관성

합성 생성기와 실제 패킷 파서가 같은 FlowRecord 집계 경로를 공유해 특징 불일치를 줄입니다.

설명 가능성

공격 유형 힌트와 핵심 특징(NIDS), 기여 특징(HIDS), SHAP 값(정적 ML), 근거(동적)를 제공합니다.

운영 친화

JSON Lines 경보와 JSON 결과는 Splunk, Elastic 같은 SIEM 에 수집할 수 있고, 종료 코드(0 / 1 / 2)는 자동화에 적합합니다.

요구 사항

시스템 요구 사항

항목권장 / 검증 환경비고
OSLinux x86_64 (검증: Debian 계열)Windows / macOS 는 pcap 분석과 파일 스캔이 가능하며 실시간 캡처는 Npcap 과 권한이 필요합니다. 실제 차단은 Linux 에서만 검증되었습니다.
Python3.10+ (검증: 3.13.5)가상환경 권장
메모리4GB 이상 (NSL-KDD 전체 학습 시 약 1.5GB)CIC-IDS2017 전체는 8GB 이상 권장
디스크약 2GB (PyTorch CPU 포함 venv 약 1.8GB)데이터셋은 별도
권한실시간 캡처: root 또는 CAP_NET_RAW · 실제 차단: root 또는 CAP_NET_ADMINpcap 분석, 스캔, 로그·파일 감시, UI, 보고서는 일반 사용자로 실행
방화벽nftables 또는 iptables (Linux)둘 다 없으면 엔진은 dry-run 으로 동작하며 macOS 는 방화벽 백엔드가 없습니다
화면

대시보드와 보고서

제품 문서의 스크린샷입니다. 둘 다 데모 데이터로 만든 것입니다.

가상 방화벽으로 집행 모드를 시연하는 모니터링 대시보드: 탐지 이벤트 12건, 조치 9건, 차단 8건, 격리 파일 1건, 추이 차트, 이벤트 종류, 공격자 IP, 위험 점수, 차단 목록, 격리 파일.
문서 데모 데이터의 대시보드: 합성 공격과 가상 방화벽을 사용했으며 실제 방화벽은 바뀌지 않았습니다.
일간 HTML 보고서: 요약 타일, 시간대별 추이, 이벤트 종류, 조치 종류·결과, 상위 출발지 IP, 수행된 조치 표.
같은 데모 데이터로 만든 일간 HTML 보고서의 일부.
한계 알아두기

이 도구가 하지 않는 일

귀사 환경에 대해 이야기해 주세요

네트워크, 호스트, 제약 사항을 알려 주시면 dry-run(모의 실행) 우선의 시범 도입 계획을 제안드립니다. 부담 없이 문의하세요.