scanner

메인 인덱스 | Shield4U | GitHub

이 문서는 scanner 레포의 핵심 정보와 포트폴리오 메모를 한 파일로 정리한 노트입니다.

레포지토리 정보

  • Name: scanner
  • Primary Purpose: 보안 테스트를 위한 Nuclei 기반 취약점 스캐너
  • Part of: Hackerspace-Shield4U 마이크로서비스 아키텍처

주요 목적

Nuclei (오픈 소스 취약점 스캐너)와 통합된 취약점 스캐닝 마이크로서비스입니다. LLM이 생성한 스캔 규칙을 분석하고, 타겟팅된 취약점 스캔을 실행하며, 사용자 정의 Nuclei 템플릿을 관리합니다.

주요 기술 스택

  • Language: Python 3
  • Framework: Flask
  • Security Engine: Nuclei (ProjectDiscovery)
  • Template Engine: YAML 기반 Nuclei 템플릿
  • Configuration: Config 클래스를 사용한 환경 기반 설정
  • Containerization: Docker

주요 컴포넌트

  1. API Service (app.py): 스캔 작업을 위한 Flask 엔드포인트 (342줄)
  2. Nuclei Scanner (services/nuclei_scanner.py):
    • Nuclei subprocess 실행
    • 결과 파싱 및 포맷팅
    • 사용자 정의 템플릿 지원
    • 타겟 검증
  3. Template Manager (services/template_manager.py):
    • 템플릿 탐색 및 분류
    • 동적 템플릿 로딩
    • 템플릿 수 추적
  4. Configuration (config.py): 서비스 설정
  5. Logger (utils/logger.py): 로깅 유틸리티

기능

  • Nuclei Integration: Nuclei 취약점 스캐너와의 완전한 통합
  • Template Management: 1,000개 이상의 Nuclei 템플릿 동적 로딩
  • Custom Scans: 사용자 정의 YAML 템플릿 지원
  • Target Validation: 사전 스캔 검증
  • Result Storage: 영속성을 위한 controller 콜백
  • Categories: 템플릿 분류 (xss, sqli, lfi 등)

포트폴리오 메모

분석할 주요 파일 (진입점)

  1. app.py - Flask API 서비스 (342줄)
  2. services/nuclei_scanner.py - Nuclei 통합 핵심
  3. services/template_manager.py - 템플릿 관리
  4. config.py - 서비스 설정
  5. utils/logger.py - 로깅 설정
  6. Dockerfile - 컨테이너 설정
  7. requirements.txt - Python 의존성

레포지토리 컨텍스트

  • Role: 취약점 스캐닝 실행
  • Dependencies: Nuclei 바이너리, controller 서비스
  • Input: LLM이 생성한 스캔 규칙 및 템플릿
  • Output: 콜백을 통한 취약점 발견
  • Integration: Subprocess 기반 Nuclei 실행

참고사항

  • 포트폴리오 메모: 보안 도구 통합의 사례
  • 외부 도구 통합 패턴을 보여줌
  • 템플릿 관리 시스템
  • 프로덕션 수준의 오류 처리
  • 업계 표준 Nuclei 스캐너와의 통합
  • 보안 마이크로서비스 아키텍처의 좋은 예시