Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Сопоставление хешей

Сопоставление хешей — первый и самый быстрый уровень в конвейере обнаружения PRX-SD. Для каждого сканируемого файла PRX-SD вычисляет криптографический хеш и ищет его в локальной базе данных известных вредоносных хешей. Совпадение означает, что файл является точной, побайтной копией известного образца вредоносной программы.

Принцип работы

  1. Вычисление хеша — PRX-SD вычисляет хеш SHA-256 файла. Для поиска по VirusShare также вычисляется хеш MD5.
  2. Поиск в LMDB — Хеш проверяется в базе данных LMDB с использованием B+-дерева с отображением в память. Это обеспечивает O(1) среднее время поиска.
  3. Получение метаданных — При нахождении совпадения возвращаются связанные метаданные (источник, семейство вредоносных программ, дата первого обнаружения).
  4. Вердикт — Совпадение хеша немедленно даёт вердикт MALICIOUS, и оставшиеся уровни обнаружения пропускаются.

Производительность

ОперацияВремя
Вычисление SHA-256 (файл 1 КБ)~2 микросекунды
Вычисление SHA-256 (файл 10 МБ)~15 миллисекунд
Поиск в LMDB~0,5 микросекунды
Итого на файл (малый файл, попадание по хешу)~3 микросекунды

LMDB использует файлы, отображённые в память, поэтому кэш страниц ОС сохраняет часто используемые части базы данных в ОЗУ. На системе с достаточным объёмом памяти поиск практически бесплатен.

Поддерживаемые типы хешей

Тип хешаРазмерИспользование
SHA-256256 бит (64 hex-символа)Основной хеш для всех поисков. Используется источниками abuse.ch и встроенным списком блокировок.
MD5128 бит (32 hex-символа)Используется для совместимости с базой данных VirusShare. Вычисляется только при наличии данных VirusShare.

Ограничения MD5

MD5 криптографически взломан и уязвим для атак коллизий. PRX-SD использует MD5 только для обратной совместимости с базой данных VirusShare. SHA-256 является основным хешем для всех других источников.

Источники данных

PRX-SD агрегирует хеш-сигнатуры из нескольких источников разведки угроз:

ИсточникТип хешаБесплатноСодержимоеЧастота обновления
abuse.ch MalwareBazaarSHA-256ДаПоследние 48 часов образцов вредоносных программКаждые 5 минут
abuse.ch URLhausSHA-256ДаФайлы вредоносных программ с вредоносных URLЕжечасно
abuse.ch Feodo TrackerSHA-256ДаБанковские трояны (Emotet, Dridex, TrickBot)Каждые 5 минут
abuse.ch ThreatFoxSHA-256ДаПлатформа обмена IOC сообществаЕжечасно
VirusShareMD5Да20 млн+ хешей вредоносных программ (исторические)Периодически
Встроенный список блокировокSHA-256В комплектеEICAR, WannaCry, NotPetya, Emotet и т.д.С выпусками

Общее покрытие хешами

Режим обновленияХешейРазмер базы данных
Стандартный (sd update)~28 000 SHA-256~5 МБ
Полный (sd update --full)~28 000 SHA-256 + 20 млн+ MD5~800 МБ

Обновление базы данных хешей

Стандартное обновление

Получает последние хеши SHA-256 из всех источников abuse.ch:

bash
sd update

Это выполняется автоматически при первой установке PRX-SD и может быть запланировано с помощью cron или sd service для непрерывных обновлений.

Полное обновление

Включает полную базу данных MD5 VirusShare:

bash
sd update --full

Когда использовать полный режим

База данных VirusShare содержит 20 млн+ исторических хешей MD5 за несколько лет. Она полезна для криминалистических расследований и комплексного сканирования, но добавляет ~800 МБ к базе данных. Для повседневной защиты достаточно стандартного обновления.

Ручной импорт хешей

Импортируйте пользовательские списки хешей из текстовых файлов (один хеш на строку):

bash
sd import my_hashes.txt

Команда импорта автоматически определяет тип хеша (SHA-256 или MD5) по длине строки. Вы также можете указать метаданные:

bash
sd import my_hashes.txt --source "internal-ir" --family "custom-trojan"

База данных LMDB

PRX-SD хранит хеши в LMDB (Lightning Memory-Mapped Database), выбранной за следующие свойства:

СвойствоПреимущество
I/O с отображением в памятьZero-copy чтение, без накладных расходов на сериализацию
Структура B+-дереваO(1) амортизированный поиск
ACID-транзакцииБезопасное параллельное чтение во время обновлений
Устойчивость к сбоямCopy-on-write предотвращает повреждение
Компактный размерЭффективное хранение ключей хешей

База данных хранится по адресу ~/.local/share/prx-sd/signatures.lmdb по умолчанию. Путь можно изменить:

toml
# ~/.config/prx-sd/config.toml
[database]
path = "/opt/prx-sd/signatures.lmdb"

Проверка статуса базы данных

Просмотр текущей статистики базы данных хешей:

bash
sd info
PRX-SD Signature Database
=========================
SHA-256 hashes:  28,428
MD5 hashes:      0 (run 'sd update --full' for VirusShare)
YARA rules:      38,800
Database path:   /home/user/.local/share/prx-sd/signatures.lmdb
Database size:   4.8 MB
Last updated:    2026-03-21 10:00:00 UTC

Место сопоставления хешей в конвейере

Сопоставление хешей разработано как первая линия защиты, потому что:

  • Скорость — При ~3 микросекундах на файл добавляется незначительная нагрузка. Миллион чистых файлов можно проверить менее чем за 3 секунды.
  • Ноль ложных срабатываний — Совпадение SHA-256 является криптографической гарантией того, что файл идентичен известному образцу вредоносной программы.
  • Короткое замыкание — При нахождении совпадения хеша анализ YARA и эвристика полностью пропускаются, экономя значительное время обработки.

Ограничение сопоставления хешей в том, что оно обнаруживает только точные копии известных образцов. Изменение одного байта даёт другой хеш и позволяет уклониться от этого уровня. Именно поэтому уровни YARA и эвристики существуют как последующие рубежи обороны.

Следующие шаги

Released under the Apache-2.0 License.