
AI 스마트 계약 보안 분석 및 PoC 생성 프레임워크
버전 6.0 | v6.0의 새로운 기능 | 변경 로그
Aether는 Solidity 스마트 계약을 분석하고, 취약점 결과를 생성하며, Foundry 기반 개념 증명(PoC) 테스트를 제작하고, 메인넷 포크에서 익스플로잇을 검증하는 Python 기반 프레임워크입니다. Solidity AST 파싱, 오염 분석, 제어 흐름 그래프 분석, 크로스 컨트랙트 분석, Halmos 기호 실행, 180개 이상의 패턴 기반 정적 탐지기, 공유 SAGE 제도적 기억을 갖춘 협업 다중 에이전트 LLM 파이프라인(GPT/Gemini/Claude), 14개의 프로토콜 아키타입, 75개 이상의 익스플로잇 지식 기반, ML 기반 탐지, 토큰 특이점 탐지, 불변식 추출, 관련 컨트랙트 컨텍스트 해결, 고급 컨텍스트 인식 필터링을 하나의 지속적인 전체 화면 TUI로 결합합니다.
협업 에이전트 파이프라인 — 심층 분석 파이프라인이 5개의 독립적인 패스에서 SAGE 제도적 기억을 통해 구조화된 지식을 공유하는 5개의 협업 에이전트로 변환됩니다:
docker compose up -d를 실행하여 시작하세요.SAGE 제도적 기억 — Aether는 이제 모든 감사에서 학습하여 시간이 지남에 따라 거짓 양성을 줄이고 결과 품질을 향상시킵니다:
SageFeedbackManager.sync_detector_accuracy()는 고성능/저성능 탐지기를 식별하고 수행/금지 반영을 저장합니다.docker compose up -d로 SAGE 시작; ~/.aether/config.yaml에서 sage_enabled/sage_url을 통해 구성기여자: 하드코딩된 경로 변수를 수정해 주신 @sashavdv(PR #1)와 누락된 validate_anthropic_key() 메서드를 식별해 주신 @pro258b(PR #2)님께 감사드립니다.
SAGE는 BFT 합의로 구동되는 지속적인 제도적 기억 시스템입니다. 전체 문서는 SAGE 프로젝트를 참조하세요.```bash
pip install sage-agent-sdk
docker compose up -d
python aether.py
python -c "from core.sage_seeder import SageSeeder; SageSeeder.generate_seed_fixtures()"
### SAGE가 감사를 개선하는 방법```
Audit 1 → Findings + FPs → Record outcomes in SAGE
↓
Audit 2 → SAGE recalls FP patterns → Fewer false positives
↓
Audit 3 → Richer institutional context → Better severity calibration
↓
Audit N → Institutional expert-level knowledge → Bug-bounty-quality findings
PoC 자동 실행 — 생성된 Foundry PoC가 이제 자동으로 컴파일 및 실행됩니다:
forge test --json 통합으로 컴파일 직후 PoC 실행PoCTestResult 데이터클래스를 통한 JSON 결과 파싱으로 구조화된 통과/실패/오류 보고POC_TESTING 단계Halmos 기호 실행 — 기호 실행을 통한 형식 검증:
HalmosRunnerHalmosPropertyGeneratorHalmosSymbolicNode 파이프라인 노드enable_symbolic_verification, halmos_timeout제어 흐름 그래프 분석 — 컴파일러 수준의 제어 흐름 이해:
solidity_ast.py의 BasicBlock, CFGEdge, ControlFlowGraph 데이터클래스build_cfg(), get_dominators(), get_loop_headers(), format_cfg_for_llm()parse_assembly_block()을 통한 어셈블리 블록 파싱ML 피드백 루프 — 과거 결과 기반 캘리브레이션:
AccuracyTracker.record_finding_outcome()get_detector_accuracy() 및 get_detector_weights()DetectorStats 데이터클래스EnhancedVulnerabilityDetector의 신뢰도 가중치 조정관련 컨트랙트 컨텍스트 — LLM 분석이 이제 전체 종속성 소스 코드를 확인:
RelatedContractResolver가 상위, 인터페이스, 라이브러리 및 종속성 컨트랙트를 자동으로 발견기술 부채 정리 — 8,500줄의 데드 코드 제거:
ai_ensemble.py, audit_engine.py, fork_verifier.pyslither_project_cache 제거Solidity AST 파싱 — Aether v4.0은 py-solc-x를 통해 컴파일러 지원 코드 분석을 추가하여 정규식 기반 정적 분석을 넘어섭니다:
solc --ast-json 통합오염 분석 엔진 — 컨트랙트를 통한 사용자 제어 입력을 추적하여 위험한 데이터 흐름 식별:
컨트랙트 간 분석 (Pass 3.5) — 다중 컨트랙트 취약점을 대상으로 하는 새로운 깊은 분석 패스:
토큰 특이점 데이터베이스 — 실제 익스플로잇을 유발하는 12가지 비표준 ERC-20 동작:
정적 탐지 파이프라인 및 원형 체크리스트에 통합됨.
향상된 정밀도 엔진 — 고급 반올림 및 정밀도 취약점 탐지:
실행 가능한 PoC 생성 — 생성된 Foundry 테스트가 이제 실제로 컴파일 및 실행:
LLM 파이프라인 개선:
깊은 분석 엔진 — Aether v3.5는 도구가 취약점을 찾는 방식을 근본적으로 변환하여, 단발성 "버그 찾기" LLM 호출에서 전문 감사자가 코드 리뷰에 접근하는 방식(먼저 이해한 후 체계적으로 공격)을 반영한 구조화된 6패스 파이프라인으로 전환합니다.
전체 컨트랙트를 단일 프롬프트로 LLM에 보내는 대신, Aether는 이제 축적된 컨텍스트로 6개의 순차적 분석 패스를 실행합니다:
Pass 1-2는 컨트랙트 콘텐츠 해시로 캐시되므로 재감사 시 이해 단계를 건너뜁니다. 각 후속 패스는 모든 이전 컨텍스트를 수신하여 포괄적인 공격 모델을 구축합니다. AETHER_DEEP_ANALYSIS=1로 기능 플래그 지정 (기본 ON); 실패 시 단발성으로 폴백.
버그를 분석하기 전에, Aether는 컨트랙트가 구현하는 프로토콜의 종류를 감지하고 원형별 취약점 체크리스트를 로드합니다:
총 10개 원형, 각각 3-7개의 실제 익스플로잇에서 가져온 특정 체크리스트 항목 포함.
이전의 정적 10패턴 목록을 대체하는 50개 이상의 분류된 실제 익스플로잇 패턴의 구조화된 데이터베이스:
각 패턴에는 코드 지표, 누락된 보호 조치, 단계별 익스플로잇 메커니즘 및 실제 사례(금액 포함)가 포함됩니다. 패턴은 감지된 원형 및 에이전트 초점 영역에 따라 필터링됩니다.
세 가지 소스에서 프로토콜 불변량을 자동으로 추출:
@invariant 태그형식 검증 라이트 증명 역할을 하는 Foundry invariant_*() 테스트 스위트 생성 — 실패하는 불변량 테스트는 버그가 실제임을 증명.
division_by_zero, integer_underflow 등을 낮음으로 일괄 하향 조정하지 않음. 이제 해당 발견이 unchecked{} 블록 내에 있는지, 값 전송 근처, 가격 계산, 또는 오라클 컨텍스트에 있는지 확인한 후 결정"pending" 발견이 이제 LLM 분석으로 전달됨 (이전에는 "validated"만 전달되어 많은 실제 발견이 조용히 누락됨)(line // 10) * 10 버킷 제거DeFiVulnerabilityDetector (2단계 존재/부재 분석)가 이제 흐름 기반 파이프라인뿐만 아니라 기본 향상된 감사 엔진에서도 실행완전 인라인 텍스트 TUI — Aether v3.0은 원시 터미널로 절대 떨어지지 않는 지속적인 전체 화면 애플리케이션입니다. 모든 작업(감사, PoC 생성, 보고서 생성, GitHub 범위 선택, 설정 구성)이 전적으로 TUI 내에서 실행됩니다:
app.suspend() 호출 제로 — TUI가 절대 사라지지 않으며, 갑작스러운 터미널 전환 없음Enter를 눌러 라이브 스크롤 출력, 단계 진행률 표시줄 및 메타데이터 확인a/n으로 모두/없음 선택, 입력하여 필터, 이전에 감사된 컨트랙트는 색상 코드로 표시n 새 감사, r 재개, h 기록, p PoC, o 보고서, f 가져오기, s 설정, 종료네 가지 백그라운드 작업 유형: 모든 무거운 작업은 AuditRunner를 통해 백그라운드 데몬 스레드로 실행되며, ThreadDemuxWriter로 출력이 캡처되어 JobDetailScreen에서 확인 가능:
| 작업 유형 | 설명 |
|---|---|
local | 단일 또는 병렬 컨트랙트 감사 |
github | 미리 선택된 범위로 GitHub 저장소 감사 |
poc | Foundry 개념 증명 생성 |
세 가지 제공자 LLM 지원: 최대 유연성과 중복성을 위해 OpenAI (GPT-5/5.3), Google Gemini (2.5/3.0), Anthropic Claude (Sonnet 4.5/Opus 4.6).
향상된 PoC 생성: AST 기반 컨트랙트 분석, 반복적인 컴파일 수정, 버그 바운티 제출에 적합한 익스플로잇을 생성하는 프로덕션 준비 LLM 프롬프트.
고급 거짓 양성 필터링: 다단계 검증으로 거짓 양성을 66%에서 ~20-25%로 줄여 정확도를 33%에서 75-80%로 향상:
script/, .s.sol, forge-std/Script.sol)는 취약점 분석에서 자동으로 제외[PRODUCTION]/[DEPLOYMENT SCRIPT] 레이블이 포함되어 모델이 프로덕션 코드에 집중onlyDistributor, authorized)가 컨트랙트 소스에서 추출되어 하드코딩된 패턴과 함께 인식Move 취약점 데이터베이스 통합: 77개 감사의 128개 Critical/High 발견 패턴이 Solidity/EVM에 맞게 조정됨:
python setup.py # Interactive installer (recommended)
### 2. Aether 실행```bash
python aether.py # Launches the full-screen Textual TUI
그것뿐입니다. TUI는 키보드 단축키와 모달 다이얼로그를 통해 모든 것을 안내합니다.
OPENAI_API_KEY (GPT 모델용)GEMINI_API_KEY (Gemini 모델용)ANTHROPIC_API_KEY (Claude 모델용)ETHERSCAN_API_KEY (선택 사항, 검증된 컨트랙트 조회용)수동 설치를 선호하는 경우:```bash
curl -L https://foundry.paradigm.xyz | bash && foundryup export PATH="$PATH:$HOME/.foundry/bin"
pip install solc-select solc-select install 0.4.26 0.8.0 0.8.19 0.8.20 latest
python -m venv venv && source venv/bin/activate pip install -r requirements.txt
## 설정
설정 마법사(`python setup.py`)가 모든 것을 처리합니다. TUI 내에서 `s`(설정)를 통해 구성할 수도 있습니다:
- **API 키 구성** — 마스킹된 현재 값과 함께 OpenAI, Gemini, Anthropic, Etherscan 키에 대한 순차적 프롬프트
- **모델 구성** — 사용 가능한 옵션 중 공급자별 모델 선택
- **전체 마법사** — API 키 구성 후 모델 선택 순서로 실행
- **분류 설정** — 심각도 임계값, 신뢰 수준, 최대 결과 수 조정
또는 환경 변수를 직접 설정:```bash
export OPENAI_API_KEY=sk-...
export GEMINI_API_KEY=...
export ANTHROPIC_API_KEY=...
설정은 ~/.aether/config.yaml에 저장됩니다.
데이터베이스 위치:
~/.aether/aetheraudit.db~/.aether/aether_github_audit.db모든 상호작용은 메인 화면에서 키보드 단축키를 통해 이루어집니다:
n — 새 감사(New Audit)세 가지 소스 유형을 선택하는 다단계 마법사:
로컬 파일 또는 디렉토리:
GitHub URL:
a/n으로 전체/없음)블록 탐색기 URL / 주소:
r — 감사 재개(Resume Audit)진행 중인 모든 GitHub 감사 테이블 (프로젝트 이름, 범위, 진행 상황 (N/M 계약), 마지막 업데이트 시간). 하나를 선택하여 보류 중인 계약을 확인하고 백그라운드 작업으로 실행합니다.
h — 감사 내역(Audit History)로컬 및 GitHub 두 데이터베이스의 모든 과거 감사 통합 보기. 항목을 선택하면 하위 메뉴 표시:
p — PoC 생성(Generate PoCs)프로젝트 선택, 최대 항목, 최소 심각도, 합의 전용 필터링 구성. PoC 생성이 백그라운드 작업으로 실행 — 작업 테이블에서 진행 상황 확인.
o — 보고서(Reports)프로젝트, 범위 및 형식 (markdown/json/html/all) 선택. 보고서 생성이 백그라운드 작업으로 실행.
f — 계약 가져오기(Fetch Contract)10개 이상의 지원 체인에서 네트워크 선택, 주소 입력 또는 탐색기 URL 붙여넣기, 검증된 소스 코드 가져오기, 선택적으로 즉시 감사.
s — 설정(Settings)Enter — 작업 상세(Job Detail)작업 테이블의 아무 행에 Enter 키를 누르면 다음 항목 확인:
q — 종료(Quit)TUI 종료. 실행 중인 작업이 있으면 확인 프롬프트 표시.
build_cfg()가 지배자 트리 및 루프 헤더 탐지로 기본 블록 구성; 어셈블리 블록 파싱; CFG 컨텍스트를 심층 분석 및 오염 전파에 제공RelatedContractResolver를 포함한 계약 간 관계 분석기HalmosRunner + HalmosPropertyGenerator; 검증 단계 1.95에 통합; Halmos가 설치되지 않은 경우 우아한 성능 저하AccuracyTracker가 제출 결과를 기록하고 탐지기별 신뢰 가중치 생성; 심층 분석에 주입되는 과거 데이터의 심각도 보정RelatedContractResolver가 부모, 인터페이스, 라이브러리 및 의존성 계약 발견; 표준 라이브러리 요약이 포함된 패스별 예산 시스템./output/ — 일반 출력 루트./output/reports/ — 생성된 보고서./output/pocs/ — 생성된 Foundry PoC 스위트./output/exploit_tests/ — 익스플로잇 테스트 결과aether.py — 유일한 진입점; Textual TUI 실행cli/interactive_menu.py — JobManager + AetherApp 생성하는 얇은 셈cli/tui/app.py — AetherApp(App) — 주요 Textual 앱 (키 바인딩 및 1초 새로고침 타이머 포함)cli/tui/)MainScreen (작업 테이블 + 비용 바), JobDetailScreen (실시간 로그 + 단계 + 메타데이터), NewAuditScreen, HistoryScreen, ResumeScreen, PoCScreen, ReportsScreen, FetchScreen, SettingsScreenJobsTable (JobManager를 폴링하는 DataTable), CostBar (공급자별 세션 비용), LogViewer (증분 새로고침이 있는 RichLog), PhaseBar (유니코드 블록 진행률)ConfirmDialog, , , , , — 모두 ModalScreen 서브클래스cli/audit_runner.py — 감사, PoC, 보고서 및 GitHub 감사를 데몬 스레드에서 실행하는 AuditRunner 클래스core/job_manager.py — JobManager 싱글톤: 세션 작업 등록 (QUEUED/RUNNING/COMPLETED/FAILED/CANCELLED)core/audit_progress.py — 작업별 로그 버퍼가 있는 ContractAuditStatus, stdout/stderr 캡처용 ThreadDemuxWritercore/llm_usage_tracker.py — 작업별 비용 델타용 snapshot()이 있는 스레드 안전 싱글톤cli/main.py — AetherCLI 클래스 (~2600줄) — AuditRunner가 사용하는 내부 감사 오케스트레이터core/enhanced_audit_engine.py — 심층 분석 통합이 포함된 주요 감사 엔진core/post_audit_summary.py — 공급자별 비용 분석이 포함된 감사 후 패널core/deep_analysis_engine.py — 6패스 LLM 파이프라인 + Pass 3.5 (계약 간): 이해 → 공격 표면 → 불변식 → 계약 간 → 함수 간 → 적대적 → 엣지 케이스; 모델 계층 선택, 캐싱, 퓨샷 예제, 사고 사슬 강제, Pass 2의 CFG 컨텍스트, Pass 5의 ML 심각도 보정, 패스별 관련 계약 컨텍스트core/protocol_archetypes.py — 프로토콜 아키타입 탐지 (LIQUID_STAKING, PERPETUAL_DEX, CDP_STABLECOIN, YIELD_AGGREGATOR 등 14가지 유형) 및 아키타입별 취약점 체크리스트core/exploit_knowledge_base.py — CROSS_CONTRACT, SIGNATURE_AUTH, TOKEN_INTEGRATION, PROXY_UPGRADE, TYPE_SAFETY 등 14개 범주에 걸친 75개 이상의 분류된 실제 익스플로잇 패턴core/invariant_engine.py — 불변식 추출 (NatSpec + LLM + 패턴) 및 Foundry 불변식 테스트 생성 + Halmos 속성 생성core/solidity_ast.py — py-solc-x를 통한 Solidity AST 파싱 (상속, 가시성, 스토리지 레이아웃, 상태 읽기/쓰기 추적을 위한 정규식 폴백 포함); 제어 흐름 그래프 구성 (build_cfg(), get_dominators(), get_loop_headers())core/taint_analyzer.py — 8가지 소스 유형, 12가지 싱크 유형, 살균 탐지, 계약 간 추적, 분기 인식 CFG 전파를 사용한 데이터 흐름/오염 분석core/cross_contract_analyzer.py — 신뢰 경계 탐지, 합집합-찾기 그룹화 및 의존성 컨텍스트를 위한 RelatedContractResolver를 포함한 계약 간 관계 분석core/enhanced_vulnerability_detector.py — 60개 이상의 패턴이 있는 주요 탐지기core/business_logic_detector.py, core/state_management_detector.py, core/data_inconsistency_detector.py, core/centralization_detector.py, core/looping_detector.py — Move에서 영감을 받은 탐지기core/defi_vulnerability_detector.py, core/mev_detector.py, core/oracle_manipulation_detector.py — DeFi 특화 탐지기 (DeFi 탐지기는 v3.5에서 향상된 엔진에 통합됨)core/arithmetic_analyzer.py, core/precision_analyzer.py, core/gas_analyzer.py, core/input_validation_detector.py, — 특수 분석기 (정밀도 분석기는 지분 인플레이션, 반올림 방향, 나눗셈 잘림, 더스트 익스플로잇, 누산기 오버플로우 탐지로 향상됨)core/validation_pipeline.py — 다단계 파이프라인: 내장 보호 확인, 거버넌스 탐지, 오염 인식 검증 (Stage 1.85), Halmos 기호 검증 (Stage 1.95), 배포 검증, 로컬 검증core/governance_detector.py, core/deployment_analyzer.py, core/llm_false_positive_filter.pycore/control_flow_guard_detector.py, core/inheritance_verifier.pycore/nodes/halmos_node.py — 기호 실행 검증을 위한 HalmosSymbolicNode 파이프라인 노드core/enhanced_llm_analyzer.py — JSON 출력 및 다중 공급자 순환을 사용한 구조화된 LLM 분석 (GPT/Gemini/Claude)core/enhanced_prompts.py — 지식 베이스의 동적 익스플로잇 패턴 로드, 퓨샷 예제, 심각도 보정 및 사고 사슬 강제를 포함한 프로덕션 프롬프트 템플릿core/foundry_poc_generator.py (~8000줄) — AST 기반 분석, 반복 컴파일 피드백 (최대 5회), forge test --json을 통한 자동 실행 (PoCTestResult 파싱 및 포크 모드 지원 포함)core/llm_foundry_generator.py — 모의 API 문서 및 권장 setUp 패턴을 사용한 LLM 기반 테스트 생성core/enhanced_foundry_integration.py — Foundry 검증 및 포맷팅core/poc_templates.py — 모의 계약 템플릿 (MockERC20, MockOracle, MockWETH, MockFlashLoanProvider)core/poc_setup_generator.py — 지능형 setUp() 생성: 생성자 매개변수 추출, 모의 배포, 업그레이드 가능 계약 처리, 토큰 민팅 및 승인core/database_manager.py — DatabaseManager (로컬 감사) + AetherDatabase (GitHub 감사)core/analysis_cache.py — 반복 분석을 2배 빠르게 하기 위한 스마트 캐싱core/accuracy_tracker.py — ML 피드백 루프: 제출 결과, 바운티 수익, 탐지기별 정확도 통계, 신뢰 가중치 생성core/github_auditor.py — 저장소 클론, 프레임워크 탐지, 계약 발견, 분석 조정core/etherscan_fetcher.py, core/basescan_fetcher.py — 블록 탐색기에서 검증된 계약 가져오기core/exploit_tester.py — Anvil 포크에 대해 익스플로잇 검증감사 흐름은 YAML 구성(configs/)에 정의됨. 향상된 감사 파이프라인:
FileReaderNode -> StaticAnalysisNode -> LLMAnalysisNode -> EnhancedExploitabilityNode -> [FixGeneratorNode -> ValidationNode -> HalmosSymbolicNode] -> ReportNode
76개 테스트 파일에 걸쳐 2059개의 테스트, 약 23초 소요:```bash python -m pytest tests/ # All tests (~23s, 2059 tests) python -m pytest tests/test_enhanced_detectors.py -v # Single file python -m pytest tests/test_enhanced_detectors.py::TestArithmeticAnalyzer -v # Single class python -m pytest tests/ -k "governance" -v # Pattern match python -m pytest tests/ --cov=core --cov-report=html # With coverage
## 문제 해결
- **Foundry를 찾을 수 없음** — `forge`/`anvil`이 설치되어 있고 `PATH`에 있는지 확인하세요 (`foundryup` 및 `export PATH="$PATH:$HOME/.foundry/bin"`)
- **solc를 찾을 수 없음** — `solc-select` 및 필요한 버전을 설치하세요: `solc-select install 0.8.20 latest`
- **LLM 기능이 작동하지 않음** — API 키가 설정되어 있는지 확인하세요. 일부 모델은 계정/지역에서 사용하지 못할 수 있습니다. 시스템이 자동으로 대체됩니다.
- **데이터베이스를 찾을 수 없음** — GitHub 보고서의 경우 감사 워크플로가 먼저 실행되었는지 확인하세요.
- **Textual이 로드되지 않음** — 누락된 경우 `pip install textual>=1.0.0`을 실행하세요.
---
## 변경 로그
### v4.7 — PoC 자동 실행, Halmos 기호 검증, CFG 분석 및 ML 피드백 루프
- **PoC 자동 실행** — 생성된 Foundry PoC가 `forge test --json`을 통해 자동으로 컴파일 및 실행되며, `PoCTestResult` 파싱 및 포크 모드를 지원합니다. 라이브 TUI 추적을 위한 `POC_TESTING` 단계
- **Halmos 기호 실행** — `HalmosRunner`, `HalmosPropertyGenerator`, `HalmosSymbolicNode` 파이프라인 노드(검증 단계 1.95)가 불변 조건의 형식 검증을 수행합니다. Halmos가 설치되지 않은 경우 정상적으로 저하됩니다.
- **제어 흐름 그래프 분석** — `BasicBlock`, `CFGEdge`, `ControlFlowGraph`와 `build_cfg()`, 지배자 트리, 루프 헤더 감지, 어셈블리 블록 파싱을 포함합니다. CFG 컨텍스트가 심층 분석 Pass 2에 주입됩니다. 분기 인식 오염 전파
- **ML 피드백 루프** — `AccuracyTracker`가 `get_detector_accuracy()` 및 `get_detector_weights()`를 통해 제출 결과를 기록하여 탐지기별 통계를 제공합니다. `EnhancedVulnerabilityDetector`에서 신뢰도 가중치 조정, 심층 분석 Pass 5에서 심각도 보정
- **관련 컨트랙트 컨텍스트** — `RelatedContractResolver`가 패스별 예산 시스템(200K/100K/50K 문자)으로 부모, 인터페이스, 라이브러리 및 종속 컨트랙트를 발견합니다. 표준 라이브러리 요약, 단일 파일 형제 발견
- **기술 부채 정리** — 8,500줄의 데드 코드 제거: `ai_ensemble.py`, `audit_engine.py`, `fork_verifier.py` 삭제; CLI, 감사 실행기, TUI 화면, 보고서 생성기에서 모든 ai_ensemble 참조 제거
- **2059개 테스트** 통과 (76개 테스트 파일)
### v4.0 — Solidity AST 파싱, 오염 분석 및 데이터 흐름 추적
- **Solidity AST 파서** — py-solc-x를 통한 완전한 solc 통합으로 적절한 상속 해석, 함수 가시성, 저장소 레이아웃, 상태 읽기/쓰기 추적을 제공합니다. 정규식 대체
- **오염 분석 엔진** — 8가지 소스 유형에서 12가지 위험 싱크로 사용자 제어 입력을 추적하며, 살균기 감지 및 교차 컨트랙트 추적을 포함합니다.
- **파이프라인 통합** — AST 데이터가 Pass 1에, 오염 데이터가 Pass 2에 공급되며, 오염 인식 검증 단계 1.85를 포함합니다.
- **1839개 테스트** 통과 (67개 테스트 파일, 약 23초)
### v3.8 — 향상된 탐지 및 PoC 생성
- **교차 컨트랙트 분석** — 새로운 Pass 3.5: 컨트랙트 간 관계 분석기, 신뢰 경계 탐지, union-find 그룹화
- **토큰 특이점 데이터베이스** — 12가지 비표준 ERC-20 동작(수수료 전가, 리베이스, ERC-777 등)
- **향상된 정밀도 엔진** — 지분 인플레이션 탐지, 반올림 방향 분석, 나눗셈 잘림 추적, 더스트 악용, 누산기 오버플로우
- **실행 가능한 PoC 생성** — 모의 컨트랙트 라이브러리(ERC20, Oracle, WETH, FlashLoan), 지능형 setUp(), 최대 컴파일 시도 3→5
- **Few-shot 예제** — 심층 분석 Pass 3, 4, 5에 실제 취약점 및 오탐지 예제 포함
- **심각도 보정** — 구체적인 임계값(Critical >$1M, High >$100K, Medium >$10K, Low 이론적)
- **사고 사슬 강제** — JSON 출력 전 필수 5단계 추론
- **AI 앙상블 폐기** — 심층 분석 패스 전반에 걸친 다중 공급자 순환으로 대체
- **다중 공급자 순환** — Gemini Flash(저렴한 패스), Anthropic Claude(추론), OpenAI GPT(다양성)
- **1682개 테스트** 통과
### v3.7 — 확장된 아키타입 및 익스플로잇 패턴
- **4가지 새로운 프로토콜 아키타입** — LIQUID_STAKING, PERPETUAL_DEX, CDP_STABLECOIN, YIELD_AGGREGATOR (10→14 총계)
- **25가지 새로운 익스플로잇 패턴** — CROSS_CONTRACT, SIGNATURE_AUTH, TOKEN_INTEGRATION, PROXY_UPGRADE, TYPE_SAFETY 카테고리 (50→75 총계)
- **향상된 컨트랙트 스캐너** — 추상 컨트랙트 점수 매김, 모노레포 지원을 위한 임계값 조정
- **1528개 테스트** 통과
### v3.5.2 — 오탐지 감소
- **컨트랙트 발견 시 스크립트 감지** — `script/`/`scripts/` 디렉토리 내 파일, `.s.sol` 파일 및 `forge-std/Script.sol`을 임포트하거나 `is Script`를 상속하는 컨트랙트는 배포 스크립트로 태그되어 LLM 취약점 분석에서 제외됩니다. Foundry 배포 헬퍼가 프로덕션 코드로 분석되면서 발생하는 전체 오탐지 클래스가 제거됩니다.
- **LLM 프롬프트 내 파일 컨텍스트 마커** — 결합된 콘텐츠에 파일당 `// FILE: <name>` 마커가 포함되며, 심층 분석 Pass 1 및 3은 `## Project Files` 헤더를 받아 각 파일을 `[PRODUCTION]` 또는 `[DEPLOYMENT SCRIPT]`로 레이블링하여 LLM이 올바른 코드에 집중하도록 합니다.
- **동적 수정자 탐지** — `GovernanceDetector`가 이제 컨트랙트에 정의된 사용자 정의 접근 제어 수정자(예: `onlyDistributor`, `onlyMinter`, `authorized`)를 추출하기 위해 `only` 접두사 또는 `msg.sender` 검사가 있는 수정자 정의를 스캔합니다. 이러한 수정자는 `has_access_control()` 및 `is_governance_function()`을 위한 하드코딩된 수정자 목록과 병합됩니다.
- **함수 범위 중복 제거** — `VulnerabilityDeduplicator`가 이제 컨트랙트 코드를 사용할 수 있을 때 `(function_name, vuln_type)`별로 결과를 그룹화하여 동일 함수 내 인접 라인 중복을 놓치는 취약한 정확한 라인 매칭을 대체합니다. 함수 컨텍스트를 사용할 수 없을 때는 20라인 버킷 그룹화로 대체됩니다.
- **AI 앙상블 라인 허용 오차 확대** — `_findings_match_fuzzy()` 허용 오차가 ±5에서 ±15라인으로 증가하여 에이전트 간 동일 함수 중복을 잡아냅니다.
- **원자적 생성자 오탐지 패턴** — `_check_constructor_context()`가 이제 컨트랙트가 동일 생성자 내에서 배포(`new`/`Create2`)되고 초기화(`.initialize()`)되는 것을 감지하여 프론트러닝 우려를 오탐지로 표시합니다. (작업이 원자적이므로)
- **LLM 검증 패턴 #18** — LLM 검증 프롬프트의 18패턴 오탐지 체크리스트에 "원자적 배포 및 초기화" 추가
- **1489개 테스트** 통과 (56개 테스트 파일, 약 40초), 1461에서 증가
### v3.5 — 심층 분석 엔진
- **6패스 심층 분석 파이프라인** — 일회성 LLM 호출을 구조화된 다중 패스 추론으로 대체: 프로토콜 이해 → 공격 표면 매핑 → 불변 조건 위반 분석 → 교차 함수 상호작용 → 적대적 모델링 → 경계 및 에지 케이스. 각 패스는 이전 패스의 누적 컨텍스트를 받습니다. Pass 1-2는 콘텐츠 해시로 캐시되어 빠른 재감사 가능
- **프로토콜 아키타입 탐지** — 프로토콜 유형(ERC-4626 Vault, Lending Pool, DEX/AMM, Bridge, Staking, Governance, Oracle, NFT Marketplace, Token, Orderbook)을 자동 식별하며, 실제 익스플로잇에서 추출된 아키타입별 취약점 체크리스트 제공
- **익스플로잇 지식 베이스** — 9개 카테고리(인플레이션/지분, 재진입, 오라클, 거버넌스, 브리지, 정밀도/반올림, 접근 제어, 경제/DeFi, 로직)에 걸친 50개 이상의 분류된 익스플로잇 패턴으로, 정적 10패턴 목록을 대체합니다. 각 패턴에는 코드 지표, 누락된 보호, 단계별 익스플로잇 메커니즘, 실제 사례(금액 포함) 및 아키타입 적용 가능성이 포함됩니다.
- **불변 조건 엔진** — NatSpec `@invariant` 태그, LLM 분석 및 6가지 일반 패턴 탐지기(vault 보존, 잔액 추적, 공급 회계, AMM 상수 곱, 대출 담보화, 스테이킹 보상)에서 프로토콜 불변 조건을 추출합니다. 공식 검증 라이트 증명으로 Foundry `invariant_*()` 테스트 스위트를 생성합니다.
- **컨텍스트 인식 심각도 보정** — 일반적인 심각도 하향 조정을 위험 컨텍스트 검사로 대체합니다. `unchecked{}` 블록, 값 전송 근처(`call{value:}`, `_mint`, `safeTransfer`), 가격 계산 또는 오라클 컨텍스트에서 발견된 결과는 원래 심각도를 유지합니다.
- **검증 게이트 수정** — `"pending"` 결과가 이제 `needs_llm_validation` 플래그와 함께 LLM 분석으로 전달됩니다. 명시적 `"false_positive"` 결과만 제거됩니다(이전에는 `"validated"`가 아닌 모든 결과가 자동으로 필터링됨).
- **전문가 인식 신뢰도 패널티** — 단일 에이전트 결과가 해당 에이전트의 전문화(예: AnthropicReasoningSpecialist + 경제 공격)와 일치하면 -0.05 패널티, 비전문가 결과는 -0.15 유지
- **라인 버킷 중복 제거 수정** — 임의 경계 문제를 일으킨 `(line // 10) * 10` 버킷 제거(라인 9와 11이 다른 버킷에 속함). 이제 정규화된 취약점 유형만 사용하며 `_findings_match_fuzzy()`가 라인 근접성을 처리합니다.
- **DeFi 탐지기 통합** — `DeFiVulnerabilityDetector`(2단계 존재/부재 의미 분석)가 `EnhancedVulnerabilityDetector`와 함께 향상된 감사 엔진에서 실행됩니다.
- **프롬프트 내 동적 익스플로잇 패턴** — `enhanced_prompts.py`가 이제 초점 영역으로 필터링된 ExploitKnowledgeBase의 패턴을 로드하며, 정적 패턴으로 대체됩니다.
- **1461개 테스트** 통과 (55개 테스트 파일, 약 50초)
### v3.2 — 작업 통계 및 UI 수정
- **작업 결과/비용/LLM 통계가 항상 0으로 표시되는 문제 수정** — 감사 워커가 이제 `run_audit()`에서 결과 딕셔너리를 캡처하여 결과 수를 추출합니다. 싱글톤 참조를 고아로 만든 `LLMUsageTracker.reset()` 제거. 4개 워커 유형 모두 스냅샷 델타에서 작업별 통계를 계산합니다.
- **창 전환 시 UI 다시 그리기 아티팩트 수정** — JobDetailScreen에서 스크롤 가능 컨테이너를 일반 `Container` + `overflow: hidden`으로 대체하여 오래된 컴포지터 프레임을 방지합니다.
- **"작업 세부 정보"를 border_title로 이동** — 메타데이터 패널 렌더링 개선
- `CLAUDE.md`를 git 추적에서 제거
### v3.0 — 완전 인라인 Textual TUI
- **`app.suspend()` 호출 제로** — TUI가 원시 터미널로 드롭되지 않음; 모든 작업이 인라인으로 실행
- **백그라운드 PoC 생성** — `AuditRunner.start_poc_generation()`을 통해 데몬 스레드로 실행되며 JobDetailScreen에 실시간 출력 표시
- **백그라운드 보고서 생성** — `AuditRunner.start_report_generation()`을 통해 데몬 스레드로 실행되며 실시간 출력
- **백그라운드 GitHub 감사** — Textual 대화상자를 통한 범위 선택, `AuditRunner.start_github_audit()`를 통해 데몬 스레드로 감사 실행
- **ContractSelectorDialog** — curses 기반 `ScopeManager.interactive_select()`를 대체하는 거의 전체 화면 필터링 가능 다중 선택 모달. Space로 토글, `a`/`n`으로 전체/없음, 입력하여 필터, 이전에 감사된 컨트랙트는 색상 코드 표시
- **GitHubAuditHelper** — `GitHubAuditor`/`AetherDatabase`를 감싸는 분해된 래퍼로 Textual 화면에서 호출 가능한 원자적 연산(`clone_and_discover`, `get_scope_state`, `save_new_scope`, `get_pending_contracts`, `handle_reaudit`) 제공
- **인라인 설정** — API 키 및 모델 구성을 네이티브 TextInputDialog/SelectDialog를 통해 설정, 외부 설정 마법사 불필요
- **인라인 GitHub 범위 관리** — SelectDialog를 통해 계속, 재감사 또는 새 범위 생성; ContractSelectorDialog를 통한 컨트랙트 선택
- **6개 화면 재작성** — PoCScreen, ReportsScreen, SettingsScreen, NewAuditScreen, HistoryScreen, ResumeScreen — 모두 완전 인라인
- **770개 테스트** 통과 (50개 테스트 파일)
### v2.2 — Textual TUI 대시보드
- 전체 화면 Textual TUI, 영구 앱, 키 바인딩, 1초 새로고침 타이머
- 실시간 작업 테이블 및 세션 비용 표시줄이 있는 MainScreen
- 실시간 로그 뷰어, 단계 진행률 표시줄 및 메타데이터가 있는 JobDetailScreen
- questionary 프롬프트를 대체하는 모달 대화상자(확인, 텍스트 입력, 선택, 체크박스, 경로 선택기)
- ThreadDemuxWriter 출력 캡처를 통한 AuditRunner의 백그라운드 감사 실행
- 세션 작업 등록을 위한 JobManager 싱글톤
- LLMUsageTracker 스냅샷을 통한 작업별 비용 추적
### v2.1 — 병렬 감사, Slither 제거 및 테스트 정리
- 병렬 감사 엔진 — `ThreadPoolExecutor`로 여러 컨트랙트를 동시에 실행, 최대 8개 병렬 워커까지 구성 가능
- 스레드 안전 진행률 추적 — 잠금이 있는 `ContractAuditStatus`, stdout 다중화를 위한 `ThreadDemuxWriter`
- 감사 후 요약 — 병렬 감사 완료 후 통합 결과 보기
- LLM 사용 추적 — 세 공급자 모두에 대한 토큰 사용량, 비용 및 API 호출 추적
- Slither 완전 제거 — 모든 종속성, 통합 코드 및 테스트 삭제(~1200줄); 패턴 기반 탐지기 + Foundry ABI + 정규식이 유일한 분석 도구
- 테스트 스위트 정리 — 40개 이상의 오래된/느린/통합 테스트 파일 제거
### v2.0 — 대화형 메뉴 TUI
- 대화형 메뉴 중심 TUI를 기본 인터페이스로
- 소스 선택, 기능 체크박스 및 확인이 포함된 안내 감사 마법사
- 진행 중인 GitHub 감사에 대한 재개 감사 기능
- 로컬 및 GitHub 데이터베이스 모두에 대한 통합 감사 기록 브라우저
- 메뉴에서 통합 PoC 생성 및 보고서 워크플로
- 선택적 즉시 감사가 가능한 다중 체인 컨트랙트 가져오기
- 메뉴에서 설정 관리
- 메뉴에서 콘솔 시작/반환
### v1.5 — 세 공급자 LLM 지원 및 향상된 분석
- Anthropic Claude 통합(Sonnet 4.5, Opus 4.6, Haiku 4.5)을 세 번째 LLM 공급자로 추가
- 6에이전트 AI 앙상블: 2 OpenAI + 2 Gemini + 2 Anthropic 전문가 에이전트
- 최대 가용성을 위한 자동 교차 공급자 대체
- 업데이트된 OpenAI 모델(GPT-5.3) 및 Google Gemini 모델(3.0 Flash/Pro)
- Anthropic API 키 구성 및 모델 선택이 포함된 설정 마법사 업데이트
- 손상된 generate-foundry CLI 명령 수정
---
## 라이선스
Aether는 **MIT 라이선스** 하에 배포됩니다. 자세한 내용은 [LICENSE](https://github.com/l33tdawg/aether/blob/HEAD/LICENSE) 파일을 참조하세요.
## 저자
**Dhillon Andrew Kannabhiran** (@l33tdawg)
- 이메일: [email protected]
- 트위터: [@l33tdawg](https://twitter.com/l33tdawg)
- GitHub: [@l33tdawg](https://github.com/l33tdawg)
## 기여
기여를 환영합니다! 자유롭게 이슈를 제출하고, 저장소를 포크하고, 풀 리퀘스트를 생성해 주세요.
| 카테고리 | 심각도 | 예시 토큰 |
|---|
| 전송 수수료 | HIGH | USDT, STA, PAXG |
| 리베이스 토큰 | HIGH | stETH, AMPL, OHM |
| ERC-777 콜백 | HIGH | imBTC |
| 플래시 민트 가능 | HIGH | DAI |
| 비표준 반환 | MEDIUM | 구 USDT |
| 블랙리스트 토큰 | MEDIUM | USDC, USDT |
| 일시 중지 가능 토큰 | MEDIUM | USDC |
| 저소수점 토큰 | MEDIUM | USDC (6), WBTC (8) |
| 전송 훅 | MEDIUM | LINK (ERC-677) |
| 승인 경쟁 | LOW | 다양함 |
| 다중 진입점 | LOW | TUSD |
| 업그레이드 가능 토큰 | LOW | USDC v2 |
| 패스 | 목적 | 모델 계층 |
|---|
| Pass 1 | 프로토콜 이해 — 프로토콜이 무엇인지, 불변량, 가치 흐름, 신뢰 가정 | 저렴 (캐시됨) |
| Pass 2 | 공격 표면 매핑 — 모든 진입점, 상태 읽기/쓰기, 재진입 기회 | 저렴 (캐시됨) |
| Pass 3 | 불변량 위반 분석 — 모든 코드 경로에 대해 모든 불변량 체계적으로 확인 | 강력 |
| Pass 4 | 함수 간 상호 작용 — 상태 종속성 분석, 시간 종속성, 플래시 대출 시퀀스 | 강력 |
| Pass 5 | 적대적 모델링 — 플래시 대출, MEV, 다중 계정을 이용한 명시적 공격자 관점 | 강력 |
| Pass 6 | 경계 및 극한 사례 — 첫 번째/마지막 연산, 0 값, 최대 값, 자기 참조 연산 | 중간 |
| 원형 | 예시 체크리스트 항목 |
|---|
| ERC-4626 볼트 | 최초 예치자 인플레이션, 반올림 방향, 기부를 통한 주식 가격 조작 |
| 대출 풀 | 오라클 가격 조작, 청산 임계값 조작, 부실 채무 캐스케이드, 이자율 조작 |
| DEX/AMM | 최초 LP 조작, 샌드위치 공격, 준비금을 통한 가격 오라클 |
| 브리지 | 체인 간 리플레이, 검증자 손상, 토큰 매핑 불일치, 인출 증명 위조 |
| 스테이킹 | 보상 계산 조작, 보상율 오버플로, 언스테이킹 재진입 |
| 거버넌스 | 플래시 대출 거버넌스 공격, 타임락 우회, 쿼럼 조작 |
| 오라클 | 오래된 가격 데이터, 가격 편차, L2 시퀀서 다운타임 |
| 카테고리 | 패턴 | 예시 |
|---|
| 인플레이션/주식 공격 | 6 | ERC-4626 최초 예치자, LP 토큰 인플레이션, 기부 기반 조작 |
| 재진입 | 7 | 클래식, 읽기 전용, 함수 간, 컨트랙트 간, ERC-777/1155 훅, 플래시 대출 콜백 |
| 오라클 | 5 | 현물 가격 조작, TWAP 조작, 만료, 소수점 불일치, L2 시퀀서 |
| 거버넌스 | 4 | 플래시 대출 투표(Beanstalk), 타임락 우회, 쿼럼 조작 |
| 브리지 | 5 | 메시지 리플레이(Nomad), 검증자 손상(Ronin), 토큰 매핑(Wormhole) |
| 정밀도/반올림 | 4 | 반올림 방향, 확인되지 않은 오버플로, 전송 수수료, 리베이스 토큰 드리프트 |
| 접근 제어 | 5 | 초기화되지 않은 프록시, 스토리지 충돌, 선택기 충돌, delegatecall 주입 |
| 경제적/DeFi | 8 | 샌드위치 공격, JIT 유동성, 부실 채무 캐스케이드, 반환 데이터 폭탄, 서명 리플레이 |
| 로직 | 6 | 1차이 오류, 마감일/슬리피지 누락, 확인되지 않은 반환, 자체 전송 회계 |
qreport | 감사 보고서 생성 (markdown/json/html) |
forge test --json을 통한 자동 실행 (포크 모드 지원)TextInputDialogSelectDialogCheckboxDialogPathDialogContractSelectorDialogGitHubAuditHelper — TUI 통합을 위해 분해된 GitHub 감사 작업theme.tcss — 청록색 테마 Textual CSScore/token_quirks.py — 토큰 특이점 데이터베이스 (비표준 ERC-20 동작의 12개 범주)core/halmos_runner.py — 형식 검증을 위한 Halmos 기호 실행 실행기core/halmos_property_generator.py — 불변식에서 Halmos 검증 속성 자동 생성core/accuracy_tracker.py — ML 피드백 루프: 탐지기별 정확도 추적, 신뢰 가중치 조정, 심각도 보정core/data_decoding_analyzer.pycore/token_quirks.py를 통해 정적 탐지 파이프라인에 통합됨