Skip to content
이 페이지는 AI의 도움으로 작성 및 번역되었습니다. 부정확한 내용이 있으면 개선에 참여해 주세요. GitHub에서 편집

지원 파일 유형

PRX-SD는 파일 확장자에 의존하는 대신 매직 넘버 탐지(파일의 첫 번째 바이트 검사)를 사용하여 파일 유형을 식별합니다. 이를 통해 파일이 이름이 변경되거나 확장자가 없어도 정확한 식별이 보장됩니다.

파일 유형 매트릭스

다음 표는 지원되는 모든 파일 유형과 각각에 적용되는 탐지 레이어를 보여줍니다:

파일 유형확장자매직 바이트해시YARA휴리스틱아카이브 재귀
PE (Windows).exe, .dll, .sys, .scr, .ocx4D 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--
PDF.pdf25 50 44 46 (%PDF)--
Office (OLE).doc, .xls, .pptD0 CF 11 E0--
Office (OOXML).docx, .xlsx, .pptx50 4B 03 04 (ZIP) + [Content_Types].xml추출됨
ZIP.zip50 4B 03 04제한됨재귀
7-Zip.7z37 7A BC AF 27 1C제한됨재귀
tar.tar오프셋 257에서 75 73 74 61 72제한됨재귀
gzip.gz, .tgz1F 8B제한됨재귀
bzip2.bz242 5A 68 (BZh)제한됨재귀
xz.xzFD 37 7A 58 5A 00제한됨재귀
RAR.rar52 61 72 21 (Rar!)제한됨재귀
CAB.cab4D 53 43 46 (MSCF)제한됨재귀
ISO.iso오프셋 32769에서 43 44 30 30 31제한됨재귀
셸 스크립트.sh, .bash23 21 (#!)패턴--
Python.py, .pyc텍스트 / 42 0D 0D 0A패턴--
JavaScript.js, .mjs텍스트 탐지패턴--
PowerShell.ps1, .psm1텍스트 탐지패턴--
VBScript.vbs, .vbe텍스트 탐지패턴--
Batch.bat, .cmd텍스트 탐지패턴--
Java.class, .jarCA FE BA BE / ZIP제한됨.jar 재귀
WebAssembly.wasm00 61 73 6D제한됨--
DEX (Android).dex64 65 78 0A (dex\n)제한됨--
APK (Android).apkZIP + 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는 더 깊은 검사를 사용합니다:

  1. 오프셋 0에서 매직 바이트 읽기
  2. 모호한 경우(예: ZIP), 내부 구조 검사
  3. ZIP 기반 형식의 경우 [Content_Types].xml(OOXML), META-INF/MANIFEST.MF(JAR), AndroidManifest.xml(APK) 확인
  4. 일반 컨테이너 유형으로 폴백

아카이브 재귀 스캔

PRX-SD가 아카이브(ZIP, 7z, tar, gzip, RAR 등)를 만나면 임시 디렉토리로 내용을 추출하고 각 파일을 전체 탐지 파이프라인으로 개별적으로 스캔합니다.

재귀 깊이

설정기본값설명
max_archive_depth5아카이브 내 아카이브의 최대 중첩 레벨
max_archive_files10,000단일 아카이브에서 추출할 최대 파일 수
max_archive_size_mb500중단하기 전 최대 총 추출 크기

이러한 제한은 압축 폭탄 및 깊이 중첩된 아카이브로 인한 리소스 소진을 방지합니다.

toml
# ~/.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-20base64 인코딩된 명령어, 과도한 문자열 연결
다운로드 + 실행15-25curl/wgetbash/sh로 파이프됨, Invoke-WebRequest + Invoke-Expression
리버스 셸20-30알려진 리버스 셸 패턴 (/dev/tcp, nc -e, bash -i)
자격증명 접근10-15/etc/shadow 읽기, 브라우저 자격증명 저장소, 키체인
지속성 메커니즘10-15cron 작업, systemd 서비스, 레지스트리 키 추가

지원되지 않는 파일

알려진 매직 넘버와 일치하지 않는 파일도 해시 및 YARA 데이터베이스에 대해 확인됩니다. 알 수 없는 파일 유형에는 휴리스틱 분석이 적용되지 않습니다. 일반적인 예:

  • 원시 이진 데이터
  • 공개 매직 넘버가 없는 독점 형식
  • 컨테이너 형식이 인식되지 않는 암호화된 파일

이러한 파일은 스캔 보고서에서 type: unknown으로 나타나며 해시 + YARA 스캔만 받습니다.

다음 단계

Released under the Apache-2.0 License.