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() изменяет переданный по ссылке аргумент. Не изменяйте массивы определений в процессе приложения; вместо этого используйте настройку сканера и проверку отчетов.