# Bandit

### Overview

Bandit — это статический анализатор безопасности (SAST) для Python, интегрированный в TRAIO. Сканер проверяет исходный код на типовые небезопасные паттерны (например, использование небезопасных функций, слабые настройки криптографии, потенциальные инъекции)

### Supported languages

* Python

### Key features

* Быстрый запуск “из коробки”&#x20;
* Рекурсивное сканирование каталога с исходным кодом

### How it works

Сканер использует официальный docker-образ Bandit:

* `ghcr.io/pycqa/bandit/bandit:latest`

При запуске выполняется команда:

* `bandit -r ./$SEC_CODE_FOLDER -f json -o /data/$REPORT_FILE_NAME`

### Environment variables (env)

| Переменная         | Пример      | Обязательная | Описание                                                               |
| ------------------ | ----------- | ------------ | ---------------------------------------------------------------------- |
| SEC\_CODE\_FOLDER  |             | Да           | Путь к исходному коду. Проставляется автоматический                    |
| REPORT\_FILE\_NAME | bandit.json | Да           | Имя итогового отчёта. Файл будет сохранён в `/data/$REPORT_FILE_NAME`. |
| SCAN\_TYPE         | Bandit Scan | Да           | Тип сканирования для парсинга в TRAIO.                                 |

### Settings and parameters

* `allow_failure: True` — ошибки сканера не прерывают пайплайн
* `overwrite_entrypoint: True` — позволяет явно задавать `run_command`
* `timeout: 20` — таймаут выполнения (в минутах)

### Customization and advanced settings

Bandit поддерживает настройку порогов и фильтрации результатов через CLI-флаги (опционально):

* `-l` / `--level` — минимальный уровень серьёзности (LOW/MEDIUM/HIGH)
* `-i` / `--confidence` — минимальный уровень уверенности (LOW/MEDIUM/HIGH)

Пример (уменьшить шум, оставив только MEDIUM+ и confidence MEDIUM+):

* `bandit -r ./$SEC_CODE_FOLDER -f json -o "/data/$REPORT_FILE_NAME" -l MEDIUM -i MEDIUM`

### Links

* Репозиторий Bandit: <https://github.com/PyCQA/bandit>
* Docker image (GHCR): <https://github.com/orgs/PyCQA/packages/container/package/bandit%2Fbandit>
