Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Types de fichiers supportés

PRX-SD identifie les types de fichiers en utilisant la détection par nombre magique (en examinant les premiers octets d'un fichier) plutôt qu'en se basant sur les extensions de fichier. Cela garantit une identification précise même lorsque les fichiers sont renommés ou ont des extensions manquantes.

Matrice des types de fichiers

Le tableau suivant montre tous les types de fichiers supportés et les couches de détection applicables à chacun :

Type de fichierExtensionsOctets magiquesHachageYARAHeuristiquesRécursion d'archive
PE (Windows).exe, .dll, .sys, .scr, .ocx4D 5A (MZ)OuiOuiOui--
ELF (Linux).so, .o, (sans ext)7F 45 4C 46OuiOuiOui--
Mach-O (macOS).dylib, .bundle, (sans ext)FE ED FA CE/CF ou CE FA ED FE/CFOuiOuiOui--
Binaire universel(sans ext)CA FE BA BEOuiOuiOui--
PDF.pdf25 50 44 46 (%PDF)OuiOuiOui--
Office (OLE).doc, .xls, .pptD0 CF 11 E0OuiOuiOui--
Office (OOXML).docx, .xlsx, .pptx50 4B 03 04 (ZIP) + [Content_Types].xmlOuiOuiOuiExtrait
ZIP.zip50 4B 03 04OuiOuiLimitéRécursif
7-Zip.7z37 7A BC AF 27 1COuiOuiLimitéRécursif
tar.tar75 73 74 61 72 au décalage 257OuiOuiLimitéRécursif
gzip.gz, .tgz1F 8BOuiOuiLimitéRécursif
bzip2.bz242 5A 68 (BZh)OuiOuiLimitéRécursif
xz.xzFD 37 7A 58 5A 00OuiOuiLimitéRécursif
RAR.rar52 61 72 21 (Rar!)OuiOuiLimitéRécursif
CAB.cab4D 53 43 46 (MSCF)OuiOuiLimitéRécursif
ISO.iso43 44 30 30 31 au décalage 32769OuiOuiLimitéRécursif
Script shell.sh, .bash23 21 (#!)OuiOuiMotif--
Python.py, .pycTexte / 42 0D 0D 0AOuiOuiMotif--
JavaScript.js, .mjsDétection texteOuiOuiMotif--
PowerShell.ps1, .psm1Détection texteOuiOuiMotif--
VBScript.vbs, .vbeDétection texteOuiOuiMotif--
Batch.bat, .cmdDétection texteOuiOuiMotif--
Java.class, .jarCA FE BA BE / ZIPOuiOuiLimité.jar récursif
WebAssembly.wasm00 61 73 6DOuiOuiLimité--
DEX (Android).dex64 65 78 0A (dex\n)OuiOuiLimité--
APK (Android).apkZIP + AndroidManifest.xmlOuiOuiLimitéRécursif

Légende des couches de détection

CoucheSignification
HachageHachage SHA-256/MD5 vérifié par rapport à la base de données de signatures
YARAEnsemble complet de règles YARA appliqué au contenu du fichier
Heuristiques : OuiAnalyse heuristique complète spécifique au type de fichier (voir Heuristiques)
Heuristiques : LimitéVérifications de base d'entropie et de structure uniquement
Heuristiques : MotifCorrespondance de motifs textuelle pour les commandes suspectes et l'obfuscation
Récursion d'archiveLe contenu est extrait et chaque fichier est analysé individuellement

Détection par nombre magique

PRX-SD lit les 8 192 premiers octets de chaque fichier pour déterminer son type. Cette approche est plus fiable que la détection basée sur l'extension :

File: invoice.pdf.exe
Extension suggests: PDF
Magic bytes: 4D 5A → PE executable
PRX-SD identifies: PE (correct)

Discordance d'extension

Lorsque l'extension du fichier ne correspond pas au nombre magique détecté, PRX-SD ajoute une note au rapport d'analyse. Les discordances d'extensions sont une technique courante d'ingénierie sociale (par exemple, photo.jpg.exe).

Priorité de détection par nombre magique

Lorsque plusieurs signatures pourraient correspondre (par exemple, la signature magique ZIP pour les fichiers .zip et .docx), PRX-SD utilise une inspection plus approfondie :

  1. Lire les octets magiques au décalage 0
  2. Si ambigu (par exemple, ZIP), inspecter la structure interne
  3. Pour les formats basés sur ZIP, rechercher [Content_Types].xml (OOXML), META-INF/MANIFEST.MF (JAR), AndroidManifest.xml (APK)
  4. Retomber sur le type de conteneur générique

Analyse récursive des archives

Lorsque PRX-SD rencontre une archive (ZIP, 7z, tar, gzip, RAR, etc.), il extrait le contenu vers un répertoire temporaire et analyse chaque fichier individuellement à travers le pipeline de détection complet.

Profondeur de récursion

ParamètreDéfautDescription
max_archive_depth5Niveaux d'imbrication maximum pour les archives dans les archives
max_archive_files10 000Nombre maximum de fichiers à extraire d'une seule archive
max_archive_size_mb500Taille totale extraite maximale avant l'arrêt

Ces limites empêchent l'épuisement des ressources dû aux bombes zip et aux archives profondément imbriquées.

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

Bombes zip

PRX-SD détecte les bombes zip (archives avec des taux de compression extrêmes) et arrête l'extraction avant de consommer un espace disque ou une mémoire excessive. Une détection de bombe zip est signalée comme SUSPICIOUS dans les résultats d'analyse.

Archives protégées par mot de passe

PRX-SD ne peut pas extraire les archives protégées par mot de passe. Celles-ci sont signalées comme ignorées dans les résultats d'analyse avec une note sur le chiffrement. Le fichier d'archive lui-même est toujours vérifié par rapport aux bases de données de hachages et YARA.

Détection de scripts

Pour les fichiers de script textuels (shell, Python, JavaScript, PowerShell, VBScript, batch), PRX-SD applique des heuristiques basées sur des motifs :

MotifPointsDescription
Chaînes obfusquées10-20Commandes encodées en base64, concaténation de chaînes excessive
Téléchargement + exécution15-25curl/wget canalisé vers bash/sh, Invoke-WebRequest + Invoke-Expression
Shell inversé20-30Motifs de shell inversé connus (/dev/tcp, nc -e, bash -i)
Accès aux identifiants10-15Lecture de /etc/shadow, magasins d'identifiants de navigateur, trousseau
Mécanismes de persistance10-15Ajout de tâches cron, services systemd, clés de registre

Fichiers non supportés

Les fichiers qui ne correspondent à aucun nombre magique connu sont toujours vérifiés par rapport aux bases de données de hachages et YARA. L'analyse heuristique n'est pas appliquée aux types de fichiers inconnus. Exemples courants :

  • Données binaires brutes
  • Formats propriétaires sans nombres magiques publics
  • Fichiers chiffrés (sauf si le format de conteneur est reconnu)

Ces fichiers apparaissent avec type: unknown dans les rapports d'analyse et reçoivent uniquement l'analyse par hachage + YARA.

Étapes suivantes

Released under the Apache-2.0 License.