Найти в Дзене
Павлин Шарит

Safety - сканирование уязвимостей в Python-зависимостях

Если в вашем проекте больше 10 зависимостей, то с высокой вероятностью хотя бы одна из них содержит известную уязвимость - вопрос только в том, критичная она или нет Safety - это инструмент который проверяет все установленные пакеты на наличие известных уязвимостей из базы CVE. Запускается одной командой и показывает что именно не так и насколько это серьезно safety check Правда в последнее время разработчики активно пытаются перевести всех на safety scan - там уже нужна регистрация, API-ключи и есть лимиты на количество проверок. но не смотря на предупреждение о том, что check deprecated он отлично работает Главная проблема в продакшене - ложные срабатывания. Иногда уязвимость есть в пакете, но не касается того функционала который вы используете, или патч еще не вышел. Для таких случаев можно игнорировать конкретные CVE через конфиг: # .safety-policy.yml security: ignore-cvs: - id: 12345 reason: "Не используем уязвимую функцию" Интеграция в CI/CD решает проблему забывчивости - прове

Safety - сканирование уязвимостей в Python-зависимостях

Если в вашем проекте больше 10 зависимостей, то с высокой вероятностью хотя бы одна из них содержит известную уязвимость - вопрос только в том, критичная она или нет

Safety - это инструмент который проверяет все установленные пакеты на наличие известных уязвимостей из базы CVE. Запускается одной командой и показывает что именно не так и насколько это серьезно

safety check

Правда в последнее время разработчики активно пытаются перевести всех на safety scan - там уже нужна регистрация, API-ключи и есть лимиты на количество проверок. но не смотря на предупреждение о том, что check deprecated он отлично работает

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

# .safety-policy.yml

security:

ignore-cvs:

- id: 12345

reason: "Не используем уязвимую функцию"

Интеграция в CI/CD решает проблему забывчивости - проверка запускается автоматически на каждый коммит. Правда когда билд падает из-за очередной уязвимости в транзитивной зависимости, появляется соблазн добавить || true и забыть. Но добровольно-принудительное обновление зависимостей дисциплинирует и экономит время в долгосрочной перспективе