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

Движок обнаружения ​

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

Обзор конвейера ​

Конвейер обнаружения обрабатывает каждый файл через до пяти уровней:

mermaid
graph LR
    FILE["Файл"] --> L1["Уровень 1<br/>Сопоставление хешей"]
    L1 -->|промах| L2["Уровень 2<br/>Правила YARA-X"]
    L1 -->|попадание| AGG["Агрегация<br/>результатов"]
    L2 -->|промах| L3["Уровень 3<br/>Эвристика"]
    L2 -->|попадание| AGG
    L3 -->|промах| L4["Уровень 4<br/>Вывод ML"]
    L3 -->|попадание| AGG
    L4 -->|промах| L5["Уровень 5<br/>VirusTotal"]
    L4 -->|попадание| AGG
    L5 --> AGG

Сводка уровней ​

УровеньДвижокСкоростьПокрытиеОбязателен
Уровень 1Сопоставление хешей LMDB~1 микросекунда/файлИзвестные вредоносные программы (точное совпадение)Да (по умолчанию)
Уровень 2Сканирование правил YARA-X~0,3 мс/файлПо паттернам (38 800+ правил)Да (по умолчанию)
Уровень 3Эвристический анализ~1-5 мс/файлПоведенческие индикаторы по типу файлаДа (по умолчанию)
Уровень 4Вывод ML ONNX~10-50 мс/файлНовые/полиморфные вредоносные программыОпционально (--features ml)
Уровень 5API VirusTotal~200-500 мс/файлКонсенсус 70+ вендоровОпционально (--features virustotal)

Уровень 1: Сопоставление хешей ​

Самый быстрый уровень. PRX-SD вычисляет хеш SHA-256 каждого файла и ищет его в базе данных LMDB, содержащей хеши известных вредоносных файлов. LMDB обеспечивает O(1) среднее время поиска с файлами, отображёнными в память, что делает этот уровень практически бесплатным с точки зрения производительности.

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

  • abuse.ch MalwareBazaar (последние 48 часов, обновление каждые 5 минут)
  • abuse.ch URLhaus (ежечасные обновления)
  • abuse.ch Feodo Tracker (Emotet/Dridex/TrickBot, каждые 5 минут)
  • abuse.ch ThreatFox (платформа обмена IOC)
  • VirusShare (20 млн+ хешей MD5, опциональное обновление --full)
  • Встроенный список блокировок (EICAR, WannaCry, NotPetya, Emotet и другие)

Совпадение хеша немедленно даёт вердикт MALICIOUS. Оставшиеся уровни для этого файла пропускаются.

Подробнее см. в Сопоставлении хешей.

Уровень 2: Правила YARA-X ​

Если совпадение хеша не найдено, файл сканируется по 38 800+ правилам YARA с использованием движка YARA-X — переписанной на Rust следующего поколения версии YARA. Правила обнаруживают вредоносные программы путём сопоставления байтовых паттернов, строк и структурных условий внутри содержимого файлов.

Источники правил:

  • 64 встроенных правила (программы-вымогатели, трояны, бэкдоры, руткиты, майнеры, веб-шеллы)
  • Yara-Rules/rules (поддерживается сообществом, GitHub)
  • Neo23x0/signature-base (высококачественные правила для APT и популярных вредоносных программ)
  • ReversingLabs YARA (правила коммерческого уровня с открытым исходным кодом)
  • ESET IOC (отслеживание продвинутых постоянных угроз)
  • InQuest (вредоносные документы: OLE, DDE, вредоносные макросы)

Совпадение с правилом YARA даёт вердикт MALICIOUS с именем правила в отчёте.

Подробнее см. в Правилах YARA.

Уровень 3: Эвристический анализ ​

Файлы, прошедшие проверки хешей и YARA, анализируются с помощью эвристики с учётом типа файла. PRX-SD определяет тип файла по сигнатуре и применяет целевые проверки:

Тип файлаЭвристические проверки
PE (Windows)Энтропия секций, подозрительные API-импорты, обнаружение упаковщиков, аномалии временных меток
ELF (Linux)Энтропия секций, ссылки на LD_PRELOAD, persistence через cron/systemd, паттерны SSH-бэкдоров
Mach-O (macOS)Энтропия секций, внедрение dylib, persistence через LaunchAgent, доступ к Keychain
Office (docx/xlsx)Макросы VBA, поля DDE, ссылки на внешние шаблоны, триггеры автоматического выполнения
PDFВстроенный JavaScript, действия Launch, действия URI, обфусцированные потоки

Каждая проверка добавляет баллы к накопительной оценке:

ОценкаВердикт
0 - 29Clean
30 - 59Suspicious — рекомендуется ручная проверка
60 - 100Malicious — угроза с высокой достоверностью

Подробнее см. в Эвристическом анализе.

Уровень 4: Вывод ML (опционально) ​

При компиляции с функцией ml PRX-SD может запускать файлы через модель машинного обучения ONNX, обученную на миллионах образцов вредоносных программ. Этот уровень особенно эффективен для обнаружения новых и полиморфных вредоносных программ, которые уклоняются от обнаружения на основе сигнатур.

bash
# Сборка с поддержкой ML
cargo build --release --features ml

Модель ML работает локально с использованием ONNX Runtime. Облачное соединение не требуется.

Когда использовать ML

Вывод ML добавляет задержку (~10-50 мс на файл). Включайте его для целевых сканирований подозрительных файлов или каталогов, а не для полного сканирования диска, где первые три уровня обеспечивают достаточное покрытие.

Уровень 5: VirusTotal (опционально) ​

При компиляции с функцией virustotal и настройке с ключом API PRX-SD может отправлять хеши файлов в VirusTotal для получения консенсуса от 70+ антивирусных вендоров.

bash
# Сборка с поддержкой VirusTotal
cargo build --release --features virustotal

# Настройка ключа API
sd config set virustotal.api_key "YOUR_API_KEY"

Ограничения скорости

Бесплатный API VirusTotal разрешает 4 запроса в минуту и 500 в день. PRX-SD автоматически соблюдает эти ограничения. Этот уровень лучше использовать как финальный шаг подтверждения, а не для массового сканирования.

Агрегация результатов ​

Когда файл сканируется через несколько уровней, окончательный вердикт определяется наивысшим найденным уровнем серьёзности:

MALICIOUS > SUSPICIOUS > CLEAN

Если уровень 1 возвращает MALICIOUS, файл считается вредоносным независимо от того, что могут сказать другие уровни. Если уровень 3 возвращает SUSPICIOUS и ни один другой уровень не возвращает MALICIOUS, файл считается подозрительным.

Отчёт о сканировании включает подробности с каждого уровня, который дал результат, предоставляя аналитику полный контекст.

Отключение уровней ​

Для специализированных случаев использования отдельные уровни можно отключить:

bash
# Сканирование только по хешам (быстрее всего, только известные угрозы)
sd scan /path --no-yara --no-heuristics

# Пропустить эвристику (только хеши + YARA)
sd scan /path --no-heuristics

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

Released under the Apache-2.0 License.