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

Обновление сигнатур

Команда sd update загружает последние сигнатуры угроз из всех настроенных источников. Регулярные обновления критически важны — новые образцы вредоносных программ появляются каждые несколько минут, а устаревшая база данных сигнатур оставляет пробелы в защите.

Использование

bash
sd update [OPTIONS]

Параметры

ФлагСокр.По умолчаниюОписание
--check-onlyfalseПроверить наличие обновлений без загрузки
--force-ffalseПринудительно перезагрузить все сигнатуры, игнорируя кеш
--source-sвсеОбновить только конкретную категорию: hashes, yara, ioc, clamav
--fullfalseВключить большие наборы данных (VirusShare 20M+ MD5-хешей)
--server-urlофициальныйURL пользовательского сервера обновлений
--no-verifyfalseПропустить верификацию подписи Ed25519 (не рекомендуется)
--timeout-t300Таймаут загрузки для каждого источника в секундах
--parallel-p4Количество параллельных загрузок
--quiet-qfalseПодавить вывод прогресса

Как работают обновления

Процесс обновления

sd update
  1. Получить metadata.json с сервера обновлений
  2. Сравнить локальные версии с удалёнными версиями
  3. Для каждого устаревшего источника:
     a. Загрузить инкрементальный diff (или полный файл, если diff недоступен)
     b. Верифицировать подпись Ed25519
     c. Применить к локальной базе данных
  4. Перекомпилировать правила YARA
  5. Обновить локальный metadata.json

Инкрементальные обновления

PRX-SD использует инкрементальные обновления для минимизации трафика:

Тип источникаМетод обновленияТипичный размер
Базы данных хешейDelta diff (добавления + удаления)50-200 КБ
Правила YARAПатчи в стиле Git10-50 КБ
IOC-фидыПолная замена (небольшие файлы)1-5 МБ
ClamAVИнкрементальные обновления cdiff100-500 КБ

Когда инкрементальные обновления недоступны (первая установка, повреждение данных или --force), загружаются полные базы данных.

Верификация подписи Ed25519

Каждый загруженный файл верифицируется по подписи Ed25519 перед применением. Это защищает от:

  • Подмены — изменённые файлы отклоняются
  • Повреждения — неполные загрузки обнаруживаются
  • Атак воспроизведения — старые подписи не могут быть воспроизведены (проверка временной метки)

Открытый ключ подписи встроен в бинарный файл sd во время компиляции.

WARNING

Никогда не используйте --no-verify в продакшене. Верификация подписи существует для предотвращения атак на цепочку поставок через скомпрометированные серверы обновлений или атаки «человек посередине».

Проверка наличия обновлений

Просмотр доступных обновлений без загрузки:

bash
sd update --check-only
Checking for updates...
  MalwareBazaar:    update available (v2026.0321.2, +847 hashes)
  URLhaus:          up to date (v2026.0321.1)
  Feodo Tracker:    update available (v2026.0321.3, +12 hashes)
  ThreatFox:        up to date (v2026.0321.1)
  YARA Community:   update available (v2026.0320.1, +3 rules)
  IOC Feeds:        update available (v2026.0321.1, +1,204 indicators)
  ClamAV:           not configured

3 sources have updates available.
Run 'sd update' to download.

Пользовательский сервер обновлений

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

bash
sd update --server-url https://signatures.internal.corp/prx-sd

Установите сервер постоянно в config.toml:

toml
[update]
server_url = "https://signatures.internal.corp/prx-sd"
interval_hours = 6
auto_update = true

TIP

Используйте инструмент prx-sd-mirror для настройки локального зеркала сигнатур. Подробнее см. в руководстве по самостоятельному хостингу.

Альтернатива с Shell-скриптом

Для систем, где sd не установлен, используйте входящий в комплект shell-скрипт:

bash
# Стандартное обновление (хеши + YARA)
./tools/update-signatures.sh

# Полное обновление с VirusShare
./tools/update-signatures.sh --full

# Обновить только хеши
./tools/update-signatures.sh --source hashes

# Обновить только правила YARA
./tools/update-signatures.sh --source yara

Примеры

bash
# Стандартное обновление
sd update

# Принудительная полная перезагрузка
sd update --force

# Обновить только правила YARA
sd update --source yara

# Полное обновление с VirusShare (большая загрузка)
sd update --full

# Тихий режим для cron-заданий
sd update --quiet

# Сначала проверить наличие обновлений
sd update --check-only

# Использовать пользовательский сервер с увеличенным параллелизмом
sd update --server-url https://mirror.example.com --parallel 8

Автоматизация обновлений

С sd daemon

Демон обрабатывает обновления автоматически. Настройте интервал:

bash
sd daemon start --update-hours 4

С cron

bash
# Обновлять сигнатуры каждые 6 часов
0 */6 * * * /usr/local/bin/sd update --quiet 2>&1 | logger -t prx-sd

С таймером systemd

ini
# /etc/systemd/system/prx-sd-update.timer
[Unit]
Description=PRX-SD Signature Update Timer

[Timer]
OnCalendar=*-*-* 00/6:00:00
RandomizedDelaySec=900
Persistent=true

[Install]
WantedBy=timers.target
bash
sudo systemctl enable --now prx-sd-update.timer

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

Released under the Apache-2.0 License.