API de recherche de signatures
AMWScan\Signatures fournit des recherches en lecture seule dans les index de signatures intégrés. Utilisez-le pour l'enrichissement ou le triage. Utilisez Scanner lorsque vous avez besoin de parcours du système de fichiers, de correspondance de modèles, de rapports ou de remédiation.
use AMWScan\Signatures;
$match = Signatures::findKnownMalwareHash('sha256', $sha256);
if ($match !== null) {
printf("%s: %s\n", $match['severity'], $match['description']);
}
SHA-256 de malwares connus
| Méthode | Entrée | Retour |
|---|---|---|
findKnownMalwareHash(string $algorithm, string $hash) | L'algorithme sha256 et un hachage SHA-256 hexadécimal de 64 caractères | Enregistrement de correspondance ou null |
getKnownMalwareSha256() | Aucune | Tableau de hachages SHA-256 intégrés |
getKnownMalwareIndexSha256() | Aucune | Somme de contrôle SHA-256 de l'index source intégré |
getKnownMalwareMd5PrefixCount() | Aucune | Nombre d'enregistrements de préfixes MD5 de largeur fixe |
matchesKnownMalwareMd5(string $md5) | Un MD5 hexadécimal de 32 caractères | true lorsque son préfixe de huit caractères apparaît dans l'index |
findKnownMalwareHash() valide ses deux arguments. Elle renvoie null pour un algorithme non pris en charge, un hachage mal formé ou aucune correspondance exacte. Un enregistrement de correspondance positif possède les clés id, algorithm, hash, severity et description.
Une correspondance de préfixe MD5 est un signal candidat, et non une correspondance exacte de fichier complet. Séparez-la des correspondances SHA-256 exactes dans les alertes et examinez le fichier avant toute remédiation.
Normalisation du noyau historique
| Méthode | Entrée | Retour |
|---|---|---|
normalizedFileSha256(string $path) | Fichier régulier existant qui n'est pas un lien symbolique | Chaîne SHA-256 normalisée ou null |
matchesLegacyCoreSha256(string $sha256) | Un SHA-256 hexadécimal de 64 caractères | bool |
matchesLegacyCoreFile(string $path) | Fichier régulier existant qui n'est pas un lien symbolique | bool |
getLegacyCoreSha256Count() | Aucune | Nombre d'enregistrements du noyau historique |
getLegacyCoreIndexSha256() | Aucune | Somme de contrôle SHA-256 de l'index source du noyau historique |
normalizedFileSha256() supprime les espaces, tabulations, retours chariot et sauts de ligne pendant le hachage. Cela prend en charge la correspondance du noyau historique ; cela ne produit pas la même valeur que hash_file('sha256', $path) pour les fichiers sources formatés.
Indicateurs de domaines
getDomainIndicators() renvoie des enregistrements contenant id, domain, classification et severity. Les enregistrements intégrés utilisent classification: suspicious et severity: warn.
foreach (Signatures::getDomainIndicators() as $indicator) {
if ($indicator['domain'] === $domain) {
// Record a warning-level enrichment signal.
}
}
Un indicateur de domaine suspect nécessite du contexte. Les domaines peuvent être réattribués, assainis ou référencés dans du contenu archivé. Ne bloquez pas de trafic et ne modifiez pas de fichiers sur ce seul signal.
Données de définition internes
Signatures::$raw, Signatures::$regex, Signatures::$domains, getAll() et optimizeSignatures() alimentent la détection du scanner. Ils ne constituent pas un contrat d'extension. En particulier, optimizeSignatures() modifie son argument passé par référence. Évitez de modifier les tableaux de définitions dans un processus applicatif ; utilisez plutôt la configuration du scanner et l'examen des rapports.