
침해 대응 - 빠른 의심 파일 찾기

위협 사냥 및 포렌식 트라이지를 위한 경량 침해 대응 도구
FastFinder는 위협 사냥, 실시간 포렌식 및 엔드포인트 트라이지를 수행하는 사이버 보안 전문가를 위해 설계된 강력하고 가벼운 침해 대응 도구입니다. Windows와 Linux 플랫폼 모두에서 구축되었으며, 여러 탐지 기준을 사용하여 신속한 의심 파일 발견에 탁월합니다.
기본 사용자 인터페이스
구성 선택
스캔 결과 및 일치 항목
⚠️ 참고: 컴파일하려면 CGO 및 YARA 종속성이 필요합니다. 플랫폼별 가이드를 참조하세요:
종속성을 설치하지 않고 FastFinder를 빌드하는 가장 쉬운 방법:
# Linux 및 Windows용 바이너리 빌드
cd docker
make build-binaries
# 바이너리는 ./bin/에 생성됩니다
# - fastfinder-linux-amd64
# - fastfinder-windows-amd64.exe
권한 있는 도커 컨테이너 내에서 FastFinder를 실행하여 볼륨 또는 마운트된 파일시스템을 스캔합니다:
# 런타임 이미지 빌드 (FastFinder + YARA + 편집기 포함)
.\docker-helper.ps1 build-runtime
# 구성 디렉토리를 지정하여 스캔 실행
.\docker-helper.ps1 run-runtime -ConfigPath "C:\path\to\config_folder" -ScanPath "C:\data\to\scan"
# 대화형 셸 모드 (스캔 없이 셸 접근만)
.\docker-helper.ps1 run-runtime -Interactive
fastfinder [옵션]
# 구성 파일을 사용한 기본 스캔
./fastfinder -c config.yaml
# 지속적인 모니터링 모드
./fastfinder -c config.yaml -t
# 독립 실행형 실행 파일 생성 (x64 아키텍처만)
./fastfinder -c config.yaml -b standalone_scanner.exe
💡 팁: FastFinder는 표준 사용자 권한으로 실행할 수 있지만, 관리자 권한이 있으면 모든 시스템 파일에 접근할 수 있습니다.
구성 예제는 여기에서 확인할 수 있습니다. 다음은 전체 구성 빈 예제입니다. 모든 것을 사용하지 않는다면 모든 속성을 구현할 필요는 없습니다.
input:
path: [] # 단순 문자열 기반 파일 경로 및/또는 파일 이름 매칭
content:
grep: [] # 파일 내용 내 리터럴 문자열 값 매칭
yara: [] # 복잡한 패턴 검색을 위해 YARA 규칙 사용 및 규칙 경로 지정 (와일드카드/정규식/조건)
checksum: [] # 파일 내용에서 md5/sha1/sha256 해시 파싱
options:
contentMatchDependsOnPathMatch: true # true인 경우, 경로는 grep(문자열) 검색의 사전 필터 역할만 합니다. YARA 및 체크섬은 항상 평가됩니다.
findInHardDrives: true # 하드 드라이브 내용 열거
findInRemovableDrives: true # 이동식 드라이브 내용 열거
findInNetworkDrives: true # 네트워크 드라이브 내용 열거
findInCDRomDrives: true # 물리적 CD-ROM 및 마운트된 iso/vhd 등 열거
findInMemory: true # 프로세스 메모리에서 결과 확인
output:
copyMatchingFiles: true # 모든 일치 파일의 복사본 생성
base64Files: true # 복사 전 일치 콘텐츠를 base64로 인코딩
filesCopyPath: '' # 빈 값은 일치 파일을 fastfinder.exe 폴더에 복사
advancedparameters:
yaraRC4Key: '' # YARA 규칙은 지정된 RC4 키를 사용하여 암호화/복호화 가능
maxScanFilesize: 2048 # maxScanFileSize MB까지 파일 무시 (기본값: 2048)
cleanMemoryIfFileGreaterThanSize: 512 # 무거운 파일 스캔 후 FastFinder 내부 메모리 정리 (기본값: 512MB)
eventforwarding:
enabled: true
buffer_size: 5
flush_time_seconds: 10
file: # 애플리케이션 활동을 jsonl 파일로 저장
enabled: true
directory_path: "./event_logs"
rotate_minutes: 1 # 테스트용으로 1분마다 로테이션
max_file_size_mb: 1 # 테스트용으로 1MB에서 로테이션
retain_files: 5 # 이전 파일 5개 유지
http: # 애플리케이션 활동을 HTTP POST JSON 데이터로 전달
enabled: false
url: "https://your-forwarder-url.com/api/events"
ssl_verify: false
timeout_seconds: 10
headers:
Authorization: "Bearer YOUR_API_KEY"
MY-CUSTOM-HEADER: "My-Header-Value"
retry_count: 3
filters:
event_types:
- "error"
- "warning"
- "alert"
- "info"
YAML 구성에서 상대 경로는 구성 파일 위치를 기준으로 확인됩니다:
input:
content:
yara:
- "./example_rule_linux.yar" # config.yaml과 동일한 폴더에서 검색
- "./subfolder/custom_rules.yar" # config 기준 하위 폴더에서 검색
- "/absolute/path/to/rule.yar" # 절대 경로는 그대로 작동
- "https://example.com/rules.yar" # URL도 지원됨
예제 디렉토리 구조:
project/
├── config.yaml
├── example_rule_linux.yar # ✅ "./example_rule_linux.yar"로 찾음
└── rules/
└── custom.yar # ✅ "./rules/custom.yar"로 찾음
기여를 환영합니다! 다음 지침을 참조하세요:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)# 저장소 클론
git clone https://github.com/codeyourweb/fastfinder.git
cd fastfinder
# 종속성 설치 (컴파일 가이드 참조)
# 소스에서 빌드
go build -tags yara_static,gio -a -ldflags '-s -w' .
# 테스트 실행
go test ./...
이 프로젝트는 AGPL 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
사이버 보안 커뮤니티의 ❤️로 만들어졌습니다
제작: Jean-Pierre GARNIER (@codeyourweb) • 2021-2026
| 옵션 | 설명 | 기본값 |
|---|
-h, --help | 도움말 출력 | |
-c, --configuration <yaml config file> | 구성 파일 경로 | |
-b, --build <output executable> | 구성이 포함된 독립 실행형 바이너리 생성 (x64 아키텍처만) | |
-r, --root <Path> | 스캔 루트 경로 (드라이브 열거 재정의) | |
-s, --silent | 자동 모드 - 보이지 않는 창이나 콘솔로 실행 | |
-v, --verbosity <verbosityLevel> | 로그 상세도 수준 (1-5) | 3 |
-t, --triage | 지속적인 모니터링 모드 | false |