
NetLogic은 트래픽 검사, 패킷 분석 및 위협 탐지를 위한 고급 네트워크 분석 및 사이버 보안 툴킷입니다.
클라우드 네이티브 공격 표면 매퍼 & 취약점 상관 분석기 — v3.0
NetLogic은 네트워크 보안 플랫폼으로, 활성 포트 스캐닝, CVE 상관 분석(실시간 NVD API), SSL/TLS 분석, HTTP 보안 감사, DNS/이메일 보안 평가, 서브도메인 탈취 탐지, 패시브 OSINT, 활성 취약점 프로빙, AI 기반 추론 엔진, 호스트 간 공격 체인 발견 및 딥 프로브 에이전트 아키텍처를 결합하여 웹 앱(React 대시보드 + FastAPI)으로 제공합니다. 핵심 스캔 엔진은 순수 Python 3.9+ stdlib이며 타사 종속성이 없습니다.
| 모듈 | 설명 |
|---|---|
| 포트 스캐너 | 43/58 포트 TCP 연결 스캔, 22개 서비스 프로브, 배너 그래빙 |
| CVE 상관 분석기 | 실시간 NVD API v2.0 + FIRST.org를 통한 EPSS 강화 |
| TLS 분석기 | 프로토콜 버전, 취약한 암호, POODLE/BEAST/CRIME/DROWN, 인증서 만료 |
| HTTP 헤더 감사 | HSTS, CSP, X-Frame-Options, CORS, 쿠키 플래그; 0–100 점수 |
| 스택 핑거프린트 | 배너/헤더/본문에서 CMS, 프레임워크, 클라우드 제공자, CDN, WAF 탐지 |
| DNS 보안 | SPF, DKIM, DMARC, DNSSEC, 영역 전송, 스푸핑 가능 점수 |
| 패시브 OSINT | 인증서 투명성 로그, DoH DNS, ASN 조회 — 대상 직접 접촉 없음 |
| 서비스 프로버 | 인증 없는 Redis/Mongo/ES/Docker/K8s/etcd 프로브, 33개 관리자 경로 |
| 탈취 탐지기 | CT 로그 서브도메인 발견 + 25개 클라우드 제공자 CNAME 핑거프린트 |
| Nuclei 통합 | 13k+ 커뮤니티 템플릿(CVE, 기술, 노출, 잘못된 구성)을 위한 래퍼 — MIT 라이선스 |
| 퓨전 파이프라인 | 다중 센서 신호 게이트 → 결정적 합의 → AI 판정 → 공격 그래프 → 6섹션 보고서 |
| 웹 핑거프린트 | 파비콘 해시(Shodan 호환 mmh3), JS 비밀, 버전 마커, 노출된 파일, 기본 랜더 탐지 |
| AI 분석 | OpenAI / Anthropic / OpenRouter / Ollama / Gemini / Groq / Kimi / Qwen — 토큰 스트리밍 SSE |
| 추론 엔진 | 적응형 관찰→추론→행동 루프, EvidenceGraph, 가설 엔진, 신뢰도 감쇠, 출처, 스케줄러, 플레이북, 변경 탐지, 활성 검증 포함 |
| 딥 프로브 | 서비스별 에이전트 아키텍처: ScoutAgent(정찰), ProbeAgent(대상 CVE 확인), Coordinator, Sandbox |
| AI 조사 에이전트 | ReAct 스타일 루프: 기본 센서 후 AI가 큐레이팅된 범위 제한 및 감사된 도구 표면(~35 도구)을 구동하여 리드를 검증하고 공격 체인 구축 — 승인된 대상에 대한 선택적 공격적 도구(충돌 프로브, 자유 형식 증명, 자유 형식 익스플로잇) 포함 |
| 검증기 엔진 | AI 기반 CVE 재검증: CVE 컨텍스트에서 원시 HTTP 프로브 계획 설계, stdlib 소켓을 통해 실행 |
| 다중 호스트 오케스트레이션 | 호스트당 전체 스캔 파이프라인 → 호스트 간 컨텍스트 및 도달 가능성 매트릭스 → 공격 체인 발견 |
| AI 센서 디렉터 | LLM이 열린 포트, 기술 스택 및 CVE를 기반으로 우선 순위를 지정할 센서 결정 |
| 인증 SSH | 자격 증명 ssh 서브프로세스가 실제 설치된 패키지 버전(60개 이상 제품 매핑) 읽기 |
| 서비스 열거 | 프로토콜 수준 속성 추출(SSH KEX, SMBv1, RDP NLA, SNMP 커뮤니티, HTTP 인증 상태) |
| 토폴로지 매퍼 | 역방향 DNS, IPv6, traceroute, ip-api.com을 통한 ASN/조직/국가 |
| 도달 가능성 프로버 | 서브넷 인접성을 통한 사후 침해 측면 이동 매트릭스 |
| 네트워크 프로버 | 활성 서브넷 스위프(/24 사설 이웃)와 2단계 발견(라이브 스위프 → 전체 포트 스캔) |
| 스캔 차이 | 시간 경과에 따른 변경: 대상별 가장 최근 이전 JSON 보고서와 현재 스캔 비교 |
| 라이선스 관리 | 키 활성화를 통한 상용 라이선스 시스템(Stripe/Paddle/Lemon Squeezy 스텁) |
| 조직별 AI 구성 | 각 조직이 Fernet을 통해 저장된 자체 LLM 자격 증명을 암호화 |
| OIDC / Clerk | Clerk에서 발급한 세션 JWT를 확인하여 공개 JWKS로 사람 로그인, 자동 프로비저닝 포함 |
| PostgreSQL | 자동 적용 마이그레이션(스캔 작업, 조직 설정, 추론 상태, 감사)을 통한 완전한 멀티 테넌트 영속성 |
| 퓨전 벤치마크 | 기록된 HTTP 캐셋에 대한 오프라인 벤치마크; 정밀도/재현율/중요 재현율/FP 감소 메트릭 |
NetLogic을 실행하는 방법은 정확히 두 가지입니다:
| 모드 | 명령어 | 설명 |
|---|---|---|
| 웹 앱 | netlogic --gui | FastAPI 시작 + React SPA 제공 + 인프로세스 스캔 에이전트, 비밀 자동 생성, 브라우저에서 대시보드 열기. 이것이 웹 앱을 실행하는 유일한 방법입니다. |
| CLI | netlogic <target> [flags] | 일회성 터미널 스캔(서버 없음), 보고서 출력/저장 |
제품 표면은 웹 앱(React 대시보드 + FastAPI)입니다. src/ 아래의 스캔 엔진은 UI에서 시작된 작업을 구동합니다.
pip install -r requirements-api.txt pip install -e .
netlogic --gui
netlogic scanme.nmap.org --full
---
## CLI 참조```
netlogic [target] [flags]
진입점은 api.cli:main (pyproject.toml에 정의)이며, netlogic.py:main()에 위임됩니다. 모든 스캔 로직은 src/에 있습니다.
| Format | Example | Mode |
|---|---|---|
| Hostname | example.com | 단일 호스트 스캔 |
| IPv4 | 10.0.0.5 | 단일 호스트 스캔 |
| CIDR | 192.168.1.0/24 | CIDR 스윕 (스캐너 전용, 융합 없음) |
| Comma-separated | target1,target2 | 다중 호스트 오케스트레이션 (호스트 간 컨텍스트) |
netlogic example.com
netlogic example.com --full
netlogic example.com --tls --headers
netlogic example.com --takeover
netlogic example.com --osint
netlogic example.com --stack
netlogic example.com --dns
netlogic 10.0.0.5 --probe
netlogic example.com --full --probe
### 포트 선택```
# Quick — 43 common ports (default)
netlogic example.com --ports quick
# Full — 58 extended ports
netlogic example.com --ports full
# Custom list
netlogic example.com --ports custom=22,80,443,8080,9200
netlogic example.com --ai --ai-key $KEY
netlogic example.com --ai --ai-provider openai --ai-key $KEY --ai-model gpt-4o-mini
netlogic example.com --ai --ai-provider anthropic --ai-key $KEY
netlogic example.com --ai --ai-provider gemini --ai-key $KEY --ai-model gemini-2.0-flash
netlogic example.com --ai --ai-provider ollama
netlogic example.com --ai --ai-provider custom --ai-base-url https://... --ai-model model-name
### 지원되는 AI 제공자
| 제공자 | 기본 모델 | API 스타일 |
|---|---|---|
| `openrouter` | `anthropic/claude-sonnet-4` | OpenAI |
| `openai` | `gpt-4o-mini` | OpenAI |
| `anthropic` | `claude-3-5-sonnet-20241022` | Anthropic Messages |
| `kimi` (Moonshot) | `kimi-k2.6` | OpenAI |
| `qwen` (Alibaba) | `qwen-plus` | OpenAI |
| `groq` | `llama-3.3-70b-versatile` | OpenAI |
| `gemini` (Google) | `gemini-2.0-flash` | OpenAI |
| `ollama` | `llama3` | OpenAI |
| `custom` | 사용자 지정 | OpenAI |
### 추론 엔진```
# Adaptive observe→reason→act loop (deterministic by default; AI-augmented with --ai)
netlogic example.com --reason
# Multi-host world modeling — discovers in-scope neighbours, reasons per host
netlogic example.com --reason --multi-host
# Change detection — diffs against prior saved report
netlogic example.com --since-last
# Active validation — confirms hypotheses with safe non-destructive GETs
netlogic example.com --reason --active-validate
# Deep probe — per-service agent architecture with context isolation
netlogic example.com --deep-probe
기준 센서가 실행된 후, 선택적 ReAct 스타일 에이전트를 통해 AI가 자체 도구를 구동하여 리드를 확인하고 공격 체인을 구축할 수 있습니다. 이는 버전/배너 CVE 적중을 확인되지 않은 리드로 남겨두는 대신입니다. AI는 도구 호출을 제안하고, 결정론적 런타임이 이를 실행합니다. 모든 도구는 대상에 범위가 제한되고, 살균되며, 관찰 결과로 기록됩니다. AI는 직접 네트워크에 접촉하지 않습니다.```
netlogic example.com --ai --ai-agent
netlogic example.com --ai --agent-depth --agent-max-steps 24 --agent-max-requests 80
에이전트는 기본적으로 약 35개의 읽기 전용/안전 활성 도구를 보유합니다: HTTP/TLS/DNS 프로브, `dir_enum`, `confirm_tech`,
`timing_probe`, `cve_probe` (큐레이팅된 알려진 CVE 마커 검사), `sqli_boolean`/`sqli_time`, `ssrf_canary`,
`idor_diff`, `file_disclosure`, `browser_get` (헤드리스, JS 챌린지 통과), 그리고 HackerOne 부기
(`record_poc`, `severity_suggest`, `submit_readiness`).
**옵트인 공격적 도구** — 기본적으로 꺼져 있으며, **승인된/소유한 범위 내 대상 전용** (공용 또는 낯선 스캔에서는 절대 사용하지 않음). 각각 `--ai-agent`가 필요합니다:
| 플래그 | 도구 | 해제하는 기능 | 보존된 제약 |
|---|---|---|---|
| `--allow-crash-probes` | `crash_probe` | 큐레이팅된 크래시/DoS CVE 검사 (http.sys, MS15-034)로 호스트를 크래시시킬 수 있음 | 고정된 3-CVE 카탈로그 — 자유 형식 아님 |
| `--allow-freeform-proof` | `http_proof` | 계층 C: 자유 형식 GET/HEAD/OPTIONS (검색/로그인/GraphQL 유사 경로에는 POST 포함) | 파괴적 패턴 + PUT/PATCH/DELETE 차단; 증명, 변형 금지 |
| `--allow-exploit-requests` | `exploit_request` | 계층 E: **모든 메서드** (PUT/PATCH/DELETE 포함) + 대상에 대한 임의의 경로/헤더/본문 | 범위 제한됨; 대량 파괴 패턴 (DROP/TRUNCATE TABLE, `rm -rf`) 및 CR/LF 헤더 주입 시 실패-종료; 모든 요청 감사됨 |