지원 파일 유형
PRX-SD는 파일 확장자에 의존하는 대신 매직 넘버 탐지(파일의 첫 번째 바이트 검사)를 사용하여 파일 유형을 식별합니다. 이를 통해 파일이 이름이 변경되거나 확장자가 없어도 정확한 식별이 보장됩니다.
파일 유형 매트릭스
다음 표는 지원되는 모든 파일 유형과 각각에 적용되는 탐지 레이어를 보여줍니다:
| 파일 유형 | 확장자 | 매직 바이트 | 해시 | YARA | 휴리스틱 | 아카이브 재귀 |
|---|---|---|---|---|---|---|
| PE (Windows) | .exe, .dll, .sys, .scr, .ocx | 4D 5A (MZ) | 예 | 예 | 예 | -- |
| ELF (Linux) | .so, .o, (확장자 없음) | 7F 45 4C 46 | 예 | 예 | 예 | -- |
| Mach-O (macOS) | .dylib, .bundle, (확장자 없음) | FE ED FA CE/CF 또는 CE FA ED FE/CF | 예 | 예 | 예 | -- |
| 유니버설 바이너리 | (확장자 없음) | CA FE BA BE | 예 | 예 | 예 | -- |
25 50 44 46 (%PDF) | 예 | 예 | 예 | -- | ||
| Office (OLE) | .doc, .xls, .ppt | D0 CF 11 E0 | 예 | 예 | 예 | -- |
| Office (OOXML) | .docx, .xlsx, .pptx | 50 4B 03 04 (ZIP) + [Content_Types].xml | 예 | 예 | 예 | 추출됨 |
| ZIP | .zip | 50 4B 03 04 | 예 | 예 | 제한됨 | 재귀 |
| 7-Zip | .7z | 37 7A BC AF 27 1C | 예 | 예 | 제한됨 | 재귀 |
| tar | .tar | 오프셋 257에서 75 73 74 61 72 | 예 | 예 | 제한됨 | 재귀 |
| gzip | .gz, .tgz | 1F 8B | 예 | 예 | 제한됨 | 재귀 |
| bzip2 | .bz2 | 42 5A 68 (BZh) | 예 | 예 | 제한됨 | 재귀 |
| xz | .xz | FD 37 7A 58 5A 00 | 예 | 예 | 제한됨 | 재귀 |
| RAR | .rar | 52 61 72 21 (Rar!) | 예 | 예 | 제한됨 | 재귀 |
| CAB | .cab | 4D 53 43 46 (MSCF) | 예 | 예 | 제한됨 | 재귀 |
| ISO | .iso | 오프셋 32769에서 43 44 30 30 31 | 예 | 예 | 제한됨 | 재귀 |
| 셸 스크립트 | .sh, .bash | 23 21 (#!) | 예 | 예 | 패턴 | -- |
| Python | .py, .pyc | 텍스트 / 42 0D 0D 0A | 예 | 예 | 패턴 | -- |
| JavaScript | .js, .mjs | 텍스트 탐지 | 예 | 예 | 패턴 | -- |
| PowerShell | .ps1, .psm1 | 텍스트 탐지 | 예 | 예 | 패턴 | -- |
| VBScript | .vbs, .vbe | 텍스트 탐지 | 예 | 예 | 패턴 | -- |
| Batch | .bat, .cmd | 텍스트 탐지 | 예 | 예 | 패턴 | -- |
| Java | .class, .jar | CA FE BA BE / ZIP | 예 | 예 | 제한됨 | .jar 재귀 |
| WebAssembly | .wasm | 00 61 73 6D | 예 | 예 | 제한됨 | -- |
| DEX (Android) | .dex | 64 65 78 0A (dex\n) | 예 | 예 | 제한됨 | -- |
| APK (Android) | .apk | ZIP + AndroidManifest.xml | 예 | 예 | 제한됨 | 재귀 |
탐지 레이어 범례
| 레이어 | 의미 |
|---|---|
| 해시 | SHA-256/MD5 해시가 시그니처 데이터베이스에 대해 확인됨 |
| YARA | 파일 내용에 전체 YARA 규칙 세트 적용 |
| 휴리스틱: 예 | 전체 파일 유형별 휴리스틱 분석 (휴리스틱 참조) |
| 휴리스틱: 제한됨 | 기본 엔트로피 및 구조 확인만 |
| 휴리스틱: 패턴 | 의심스러운 명령어 및 난독화를 위한 텍스트 기반 패턴 매칭 |
| 아카이브 재귀 | 내용이 추출되고 각 파일이 개별적으로 스캔됨 |
매직 넘버 탐지
PRX-SD는 유형을 결정하기 위해 각 파일의 첫 8192바이트를 읽습니다. 이 접근 방식은 확장자 기반 탐지보다 더 신뢰할 수 있습니다:
파일: invoice.pdf.exe
확장자 제안: PDF
매직 바이트: 4D 5A → PE 실행 파일
PRX-SD 식별: PE (올바름)확장자 불일치
파일 확장자가 탐지된 매직 넘버와 일치하지 않으면 PRX-SD가 스캔 보고서에 메모를 추가합니다. 확장자 불일치는 일반적인 소셜 엔지니어링 기술입니다(예: photo.jpg.exe).
매직 탐지 우선순위
여러 시그니처가 매칭될 수 있는 경우(예: .zip과 .docx 모두에 대한 ZIP 매직), PRX-SD는 더 깊은 검사를 사용합니다:
- 오프셋 0에서 매직 바이트 읽기
- 모호한 경우(예: ZIP), 내부 구조 검사
- ZIP 기반 형식의 경우
[Content_Types].xml(OOXML),META-INF/MANIFEST.MF(JAR),AndroidManifest.xml(APK) 확인 - 일반 컨테이너 유형으로 폴백
아카이브 재귀 스캔
PRX-SD가 아카이브(ZIP, 7z, tar, gzip, RAR 등)를 만나면 임시 디렉토리로 내용을 추출하고 각 파일을 전체 탐지 파이프라인으로 개별적으로 스캔합니다.
재귀 깊이
| 설정 | 기본값 | 설명 |
|---|---|---|
max_archive_depth | 5 | 아카이브 내 아카이브의 최대 중첩 레벨 |
max_archive_files | 10,000 | 단일 아카이브에서 추출할 최대 파일 수 |
max_archive_size_mb | 500 | 중단하기 전 최대 총 추출 크기 |
이러한 제한은 압축 폭탄 및 깊이 중첩된 아카이브로 인한 리소스 소진을 방지합니다.
# ~/.config/prx-sd/config.toml
[scanning]
max_archive_depth = 5
max_archive_files = 10000
max_archive_size_mb = 500압축 폭탄
PRX-SD는 압축 폭탄(극단적인 압축 비율을 가진 아카이브)을 탐지하고 과도한 디스크 공간이나 메모리를 소비하기 전에 추출을 중단합니다. 압축 폭탄 탐지는 스캔 결과에서 SUSPICIOUS로 보고됩니다.
암호로 보호된 아카이브
PRX-SD는 암호로 보호된 아카이브를 추출할 수 없습니다. 이러한 아카이브는 암호화에 대한 메모와 함께 스캔 결과에서 skipped로 보고됩니다. 아카이브 파일 자체는 여전히 해시 및 YARA 데이터베이스에 대해 확인됩니다.
스크립트 탐지
텍스트 기반 스크립트 파일(셸, Python, JavaScript, PowerShell, VBScript, 배치)에 대해 PRX-SD는 패턴 기반 휴리스틱을 적용합니다:
| 패턴 | 포인트 | 설명 |
|---|---|---|
| 난독화된 문자열 | 10-20 | base64 인코딩된 명령어, 과도한 문자열 연결 |
| 다운로드 + 실행 | 15-25 | curl/wget이 bash/sh로 파이프됨, Invoke-WebRequest + Invoke-Expression |
| 리버스 셸 | 20-30 | 알려진 리버스 셸 패턴 (/dev/tcp, nc -e, bash -i) |
| 자격증명 접근 | 10-15 | /etc/shadow 읽기, 브라우저 자격증명 저장소, 키체인 |
| 지속성 메커니즘 | 10-15 | cron 작업, systemd 서비스, 레지스트리 키 추가 |
지원되지 않는 파일
알려진 매직 넘버와 일치하지 않는 파일도 해시 및 YARA 데이터베이스에 대해 확인됩니다. 알 수 없는 파일 유형에는 휴리스틱 분석이 적용되지 않습니다. 일반적인 예:
- 원시 이진 데이터
- 공개 매직 넘버가 없는 독점 형식
- 컨테이너 형식이 인식되지 않는 암호화된 파일
이러한 파일은 스캔 보고서에서 type: unknown으로 나타나며 해시 + YARA 스캔만 받습니다.
다음 단계
- 휴리스틱 분석 -- 파일 유형별 상세 휴리스틱 검사
- YARA 규칙 -- 특정 파일 형식 구조를 대상으로 하는 규칙
- 파일 및 디렉토리 스캔 -- 실제로 파일 스캔
- 탐지 엔진 개요 -- 모든 레이어가 함께 작동하는 방식