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テキスト検出ありありパターン--
バッチ.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停止前の最大合計解凍サイズ

これらの制限はZIPボムや深くネストされたアーカイブによるリソース枯渇を防ぎます。

toml
# ~/.config/prx-sd/config.toml
[scanning]
max_archive_depth = 5
max_archive_files = 10000
max_archive_size_mb = 500

ZIPボム

PRX-SDはZIPボム(極端な圧縮率のアーカイブ)を検出し、過剰なディスク容量やメモリを消費する前に解凍を停止します。ZIPボムの検出はスキャン結果でSUSPICIOUSとして報告されます。

パスワード保護されたアーカイブ

PRX-SDはパスワード保護されたアーカイブを解凍できません。これらはスキャン結果で暗号化に関するメモとともにskippedとして報告されます。アーカイブファイル自体はハッシュとYARAデータベースに対してチェックされます。

スクリプト検出

テキストベースのスクリプトファイル(シェル、Python、JavaScript、PowerShell、VBScript、バッチ)に対して、PRX-SDはパターンベースのヒューリスティックを適用します:

パターンポイント説明
難読化された文字列10〜20Base64エンコードされたコマンド、過剰な文字列連結
ダウンロードして実行15〜25curl/wgetbash/shにパイプ、Invoke-WebRequest + Invoke-Expression
リバースシェル20〜30既知のリバースシェルパターン(/dev/tcpnc -ebash -i
認証情報アクセス10〜15/etc/shadowの読み込み、ブラウザ認証情報ストア、キーチェーン
永続化メカニズム10〜15cronジョブ、systemdサービス、レジストリキーの追加

未対応ファイル

既知のマジックナンバーと一致しないファイルでも、ハッシュとYARAデータベースに対してチェックされます。不明なファイルタイプにはヒューリスティック分析は適用されません。一般的な例:

  • 生のバイナリデータ
  • 公開されているマジックナンバーのない独自の形式
  • 暗号化されたファイル(コンテナ形式が認識される場合を除く)

これらのファイルはスキャンレポートでtype: unknownとして表示され、ハッシュとYARAスキャンのみを受けます。

次のステップ

Released under the Apache-2.0 License.