cargo-audit

Links:

Cargo audit - это инструмент, который проверяет зависимости проекта на наличие известных уязвимостей. Он не запускает код, не генерирует тесты и не следит за памятью. Вместо этого он сверяет версии всех библиотек (crates) с базой данных уязвимостей (RustSec Advisory Database).

Установка и запуск

cargo install cargo-audit   # установить один раз
cargo audit                 # проверить проект

Пример вывода:

Crate:         regex
Version:       1.4.0
Title:         Regex panic on crafted input
Severity:      high
Solution:      upgrade to >= 1.5.0

Cargo audit находит только те проблемы, о которых кто-то сообщил и добавил в базу. Он не ищет новые, неизвестные уязвимости.

Какие проблемы находит Cargo Audit?

Тип уязвимостиПример
Паника при специальном вводеБиблиотека крашится на строке вида “aaaaaaaa…”
Утечка данныхБиблиотека отправляет данные на левый сервер
Проблемы с безопасностьюВ версии 1.2.3 веб-сервера есть дыра для DoS-атаки
RUSTSEC-уведомленияОфициально зарегистрированные уязвимости

Интеграция с GitHub Actions

- name: Security audit
  run: |
    cargo install cargo-audit
    cargo audit