Перейти к основному содержимому
Версия: v0.20

API поиска сигнатур

AMWScan\Signatures предоставляет поиск только для чтения по встроенным индексам сигнатур. Используйте его для обогащения данных или сортировки. Используйте Scanner, когда нужен обход файловой системы, сопоставление шаблонов, формирование отчетов или устранение.

use AMWScan\Signatures;

$match = Signatures::findKnownMalwareHash('sha256', $sha256);

if ($match !== null) {
printf("%s: %s\n", $match['severity'], $match['description']);
}

SHA-256 известных вредоносных программ

МетодВходные данныеВозврат
findKnownMalwareHash(string $algorithm, string $hash)Алгоритм sha256 и шестнадцатеричный хеш SHA-256 из 64 символовЗапись совпадения или null
getKnownMalwareSha256()НетМассив встроенных хешей SHA-256
getKnownMalwareIndexSha256()НетКонтрольная сумма SHA-256 встроенного исходного индекса
getKnownMalwareMd5PrefixCount()НетЧисло записей префиксов MD5 фиксированной ширины
matchesKnownMalwareMd5(string $md5)Шестнадцатеричный MD5 из 32 символовtrue, когда его префикс из восьми символов присутствует в индексе

findKnownMalwareHash() проверяет оба аргумента. Он возвращает null для неподдерживаемого алгоритма, некорректного хеша или отсутствия точного совпадения. Положительная запись совпадения имеет ключи id, algorithm, hash, severity и description.

Совпадение префикса MD5 является сигналом-кандидатом, а не точным совпадением полного файла. Отделяйте его в оповещениях от точных совпадений SHA-256 и проверяйте файл перед устранением.

Нормализация устаревшего ядра

МетодВходные данныеВозврат
normalizedFileSha256(string $path)Существующий обычный файл, не являющийся символической ссылкойНормализованная строка SHA-256 или null
matchesLegacyCoreSha256(string $sha256)Шестнадцатеричный хеш SHA-256 из 64 символовbool
matchesLegacyCoreFile(string $path)Существующий обычный файл, не являющийся символической ссылкойbool
getLegacyCoreSha256Count()НетЧисло записей устаревшего ядра
getLegacyCoreIndexSha256()НетКонтрольная сумма SHA-256 исходного индекса устаревшего ядра

normalizedFileSha256() удаляет пробелы, табуляции, возвраты каретки и переводы строк во время хеширования. Это поддерживает сопоставление устаревшего ядра; для отформатированных исходных файлов результат не совпадает со значением hash_file('sha256', $path).

Индикаторы доменов

getDomainIndicators() возвращает записи с id, domain, classification и severity. Во встроенных записях используются classification: suspicious и severity: warn.

foreach (Signatures::getDomainIndicators() as $indicator) {
if ($indicator['domain'] === $domain) {
// Record a warning-level enrichment signal.
}
}

Индикатор подозрительного домена требует контекста. Домены могут быть переназначены, очищены или упомянуты в архивном содержимом. Не блокируйте трафик и не изменяйте файлы только на основании этого сигнала.

Внутренние данные определений

Signatures::$raw, Signatures::$regex, Signatures::$domains, getAll() и optimizeSignatures() обеспечивают обнаружение сканером. Они не являются контрактом расширения. В частности, optimizeSignatures() изменяет переданный по ссылке аргумент. Не изменяйте массивы определений в процессе приложения; вместо этого используйте настройку сканера и проверку отчетов.