
AISLE의 최소한의 LLM 기반 제로데이 취약점 스캐너.
AISLE의 간결한 LLM 기반 제로데이 취약점 스캐너입니다.

시연 목적의 연구 프로토타입입니다. 실제 제로데이 취약점을 탐지할 수 있는 단일 파일 기반의 간단한 도구입니다. C/C++ 메모리 안전 버그에 편향된 프로토타입이며, 오탐지를 발생시킬 수 있습니다. 공개 연구의 정신에 따라 있는 그대로 공유합니다 — 날카로운 모서리가 있을 수 있습니다.
Nano-analyzer는 소스 코드를 세 단계 LLM 파이프라인에 전송하는 단일 파일 Python 스캐너입니다:
결과는 사람이 검토할 수 있도록 Markdown 및 JSON 파일로 저장됩니다.
이것은 v0.1 프로토타입입니다. 다음 사항을 유념해 주세요:
rg)csearch/cindex)git clone https://github.com/weareaisle/nano-analyzer.git
cd nano-analyzer
# 종속성 설치 불필요. 바로 실행:
python3 scan.py --help
API 키를 환경 변수로 설정하세요:
# OpenAI 모델(슬래시 없는 모델 이름, 예: "gpt-5.4-nano"):
export OPENAI_API_KEY=sk-...
# OpenRouter 모델(슬래시 있는 모델 이름, 예: "qwen/qwen3-32b"):
export OPENROUTER_API_KEY=sk-or-...
스캐너는 모델 이름에 따라 사용할 키를 결정합니다: 슬래시가 포함되면 OpenRouter를 통해 라우팅하고, 그렇지 않으면 OpenAI API를 직접 사용합니다.
# 단일 파일 스캔
python3 scan.py ./path/to/file.c
# 디렉토리 재귀 스캔
python3 scan.py ./path/to/src/
# 다른 모델 사용
python3 scan.py ./src --model gpt-5.4
# 병렬 처리 수 제어
python3 scan.py ./src --parallel 30
# 트라이지 grep을 전체 저장소 루트로 지정 (하위 디렉토리 스캔 시 유용)
python3 scan.py ./lib/crypto/ --repo-dir ./
# 높은 신뢰도의 결과만 표시
python3 scan.py ./src --min-confidence 0.7
# 더 높은 정확도를 위해 트라이지 라운드 증가 (기본값: 5)
python3 scan.py ./src --triage-rounds 7
결과는 ~/nano-analyzer-results/<timestamp>/ (또는 --output-dir)에 저장됩니다:
<timestamp>/
├── summary.json # 기계 판독 가능 스캔 요약
├── summary.md # 사람 판독 가능 스캔 요약
├── <filename>.md # 파일별 원시 스캐너 출력
├── <filename>.context.md # 파일별 컨텍스트 브리핑
├── <filename>.json # 파일별 전체 결과 데이터
├── triages/ # 상세 트라이지 추론
│ └── T0001_<file>_<title>.md
├── findings/ # 트라이지를 통과한 결과
│ └── VULN-001_<file>.md
├── triage.json # 모든 트라이지 판정
└── triage_survivors.md # 검증된 결과 요약
스캔 결과 중간 이상 심각도의 문제가 발견되면 트라이지 파이프라인이 작동합니다:
트라이지를 통과한 결과는 전체 추론 체인과 함께 findings/ 디렉토리에 기록됩니다.
이 도구는 연구 프로토타입입니다. 전문 보안 감사, 수동 코드 검토 또는 기존 정적 분석 도구를 대체하지 않습니다. 유일한 보안 평가 수단으로 의존하지 마십시오. 사용에 따른 책임은 본인에게 있습니다.
Apache License 2.0
| 플래그 | 기본값 | 설명 |
|---|
path | (필수) | 스캔할 파일 또는 디렉토리 |
--model | gpt-5.4-nano | 모든 단계(컨텍스트, 스캔, 트라이지)에 사용할 모델 |
--parallel | 50 | 최대 동시 스캔 API 호출 수 |
--triage-threshold | medium | 이 심각도 이상의 트라이지 결과 처리 |
--triage-rounds | 5 | 결과당 트라이지 라운드 수 |
--triage-parallel | 50 | 최대 동시 트라이지 API 호출 수 |
--max-connections | parallel + triage-parallel | 총 API 호출 상한 |
--min-confidence | 0.0 | 이 신뢰도(0.0–1.0) 이상의 결과만 표시 |
--project | 디렉토리 이름 | 트라이지 프롬프트에 사용되는 프로젝트 이름 |
--repo-dir | 자동 | grep 조회를 위한 저장소 루트 (자동: 파일의 상위 디렉토리, 폴더의 스캔 디렉토리) |
--output-dir | ~/nano-analyzer-results/<timestamp>/ | 결과 저장 위치 |
--max-chars | 200,000 | 이보다 큰 파일 건너뛰기 |
--verbose-triage | 꺼짐 | 라운드별 트라이지 진행 상황 표시 |