MyoungSoo7/vaccine

GitHub: MyoungSoo7/vaccine

Stars: 0 | Forks: 0

# vaccine 기존 V3 / 알약처럼 *signature DB 를 *직접 *유지하지 않고*, *VirusTotal · YARA · eBPF · 알려진 IoC (Indicators of Compromise) 피드를 *조합* 해서 *개인 / 소규모 *환경에서 *''*무엇이 *수상한가""* 를 *알려주는 도구. ## 철학 - **재구축 (Reinvent) 금지** — 시그니처 DB 는 *VirusTotal / abuse.ch / OTX 같은 *전문 *피드* 를 *위임 사용* - **모니터링 + 알람 우선** — 자동 격리 / 자동 삭제 *최소화*. 사용자에게 *결정권* - **투명성** — 어떤 IoC, 어떤 룰로 매칭됐는지 *모두 공개* - **경량** — *백그라운드 *상시 *프로세스가 *수십 MB 이하* ## 지원 플랫폼 | Platform | Status | |---|---| | macOS (Apple Silicon + Intel) | 1차 타겟 | | Linux (Ubuntu/Debian/RHEL) | 1차 타겟 | | Windows | 향후 (커널 드라이버 인증 부담으로 후순위) | | Android | 별도 앱으로 검토 | | iOS | 샌드박스 한계로 *지원 어려움* | ## 명령어 요약 vaccine scan 파일/디렉터리 스캔 (VT + 로컬 blocklist + 캐시) vaccine netscan 활성 네트워크 connection 나열 + URLhaus 매칭 vaccine procscan 프로세스 cmdline 의심 패턴 탐지 (curl|bash 등) vaccine intel-sync URLhaus IoC feed 다운로드 + 캐시 vaccine watch 위 셋을 주기적으로 (cron 대체) 종료 코드: `0` 정상 / `2` 설정 오류 / `3` 위협 발견 — 자동화 hook 친화. ## 빠른 시작 # 빌드 make build # 또는: go build -o vaccine ./cmd/vaccine # VirusTotal API key 받기 (무료, 4 req/min, 500/day) # https://www.virustotal.com/gui/my-apikey export VACCINE_VT_API_KEY="your-api-key" # (선택) Telegram 알람 — 발견 시 푸시 export VACCINE_TELEGRAM_BOT_TOKEN="..." export VACCINE_TELEGRAM_CHAT_ID="..." # 활용 ───────────────────────── # 1) 파일 스캔 ./vaccine scan ~/Downloads --only-bad # 2) URLhaus 피드 동기화 ./vaccine intel-sync # 3) 네트워크 + 프로세스 점검 ./vaccine netscan ./vaccine procscan # 4) cron 대체 — 30 분마다 전체 점검 + Telegram 알람 ./vaccine watch ~/Downloads --interval 30 ## 설정 파일 `~/.vaccine/config.json` (선택). 환경변수가 *우선*. { "vt_api_key": "", "cache_dir": "/Users/me/.vaccine/cache", "cache_ttl_hours": 24, "blocklist_paths": ["/Users/me/.vaccine/my-bad-hashes.txt"], "whitelist_paths": ["/Users/me/Library"], "urlhaus_feed_url": "https://urlhaus.abuse.ch/downloads/csv_recent/", "watch_interval_min": 60, "max_file_mb": 100, "vt_rate_seconds": 16 } ## 핵심 기능 (Roadmap) ### Phase 1 — *File Scanner* ✅ - [x] 파일 SHA256/SHA1/MD5 해시 - [x] VirusTotal API v3 조회 - [x] 디렉터리 재귀 스캔 - [x] 24h 디스크 캐시 (quota 절약) - [x] 로컬 hash blocklist - [x] Whitelist (스킵 경로) - [x] JSON / table 출력 - [ ] YARA 룰 매칭 (Phase 1.5) ### Phase 2 — *Network Monitor* ✅ (passive) - [x] 활성 connection 나열 (gopsutil) - [x] URLhaus 피드 다운로드 + 매칭 - [x] 프로세스명 / PID 매핑 - [ ] eBPF 기반 실시간 감시 (Phase 2.5, Linux 전용) ### Phase 3 — *Process Monitor* ✅ (passive) - [x] 프로세스 cmdline 의심 패턴 탐지 (curl|bash, base64|sh, rev-shell, miner) - [ ] EndpointSecurity (macOS) / fanotify+audit (Linux) 기반 실시간 감시 ### Phase 4 — *Daemon + Reporting* ✅ (basic) - [x] `vaccine watch` 주기 실행 - [x] Telegram 알림 - [ ] Tauri 트레이 앱 ### Phase 5 — *Threat Intel Integration* - [x] URLhaus (abuse.ch) 피드 - [ ] MalwareBazaar 해시 피드 - [ ] AlienVault OTX - [ ] SBOM 분석 (npm/pip 패키지 위험도) ## 의존성 github.com/shirou/gopsutil/v4 프로세스 / 네트워크 (cross-platform) 표준 라이브러리만으로도 80% 구현. 외부 의존 *최소화*. ## 비-목표 (Non-goals) - *Windows 커널 드라이버* — 인증 비용 / 복잡도 너무 큼 - *자체 시그니처 DB* — VirusTotal 등 위임 - *유료 상용화* — 오픈소스 + 학습 목적 - *V3 / 알약 대체* — 그건 *50+ 명 팀의 영역* ## 라이선스 MIT — 개인 / 학술 / 상업 *자유 사용*. ## 면책 이 도구는 *''보조 알림기''* 이지 *''완전한 보안 솔루션''* 이 아닙니다. *Production 시스템 보호용* 으로는 *AhnLab V3, CrowdStrike, Microsoft Defender* 같은 *전문 제품을 함께 사용* 하세요.
标签:EVTX分析