Рубрики
Без рубрики

Интегрируйте статическую проверку безопасности на Python!

Основы сегодня мы будем говорить о Бандите, инструменте статического анализа Python, который Revie … Tagged Security, Python, Vscode.

Основы

Сегодня мы поговорим о Bandit, инструменте статического анализа Python, который рассматривает ваш код для возможных недостатков безопасности. Мы будем использовать Bandit, давайте создадим виртуальную среду и используем PIP для установки Bandit.

python -m venv venv
source venv/bin/activate
pip install bandit

Давайте используем следующее приложение ниже в качестве примера.

from os import system

system('sudo su')

Очевидно, что использование Sudo Su в процессе оболочки не является хорошей практикой, но мы просто демонстрируем возможности Bandit. Итак, давайте запустим бандит против нашего файла.

bandit app_name.py

Ниже приведен пример ответа

Test results:
>> Issue: [B605:start_process_with_a_shell] Starting a process with a shell: Seems safe, but may be changed in the future, consider rewriting without shell
   Severity: Low   Confidence: High
   Location: bad.py:3
   More Info: https://bandit.readthedocs.io/en/latest/plugins/b605_start_process_with_a_shell.html
2
3       system('sudo su')

--------------------------------------------------
>> Issue: [B607:start_process_with_partial_path] Starting a process with a partial executable path
   Severity: Low   Confidence: High
   Location: bad.py:3
   More Info: https://bandit.readthedocs.io/en/latest/plugins/b607_start_process_with_partial_path.html
2
3       system('sudo su')

--------------------------------------------------

Code scanned:
        Total lines of code: 2
        Total lines skipped (#nosec): 0

Run metrics:
        Total issues (by severity):
                Undefined: 0.0
                Low: 2.0
                Medium: 0.0
                High: 0.0
        Total issues (by confidence):
                Undefined: 0.0
                Low: 0.0
                Medium: 0.0
                High: 2.0
Files skipped (0):

Это довольно приятно, что дает нам все необходимые результаты. Мы можем использовать эти результаты различными способами, но в том, что я делаю, это Grep отчет и посмотреть, есть ли какие -либо «высокие или средние» элементы тяжести, а затем убить трубопровод CI/CD.

Реализация VSCODE

В vscode вы можете использовать CMD+Shift+P, в то время как в вашем приложении Python и выберите Linter, и выберите Bandit, вас могут попросить установить его, выберите «Да», убедитесь, что вы сказали vscode снова использовать бандит, а теперь и теперь , если вы будете зависать над отмеченным текстом, вы увидите ошибку/предупреждения.

Оригинал: “https://dev.to/getsec/integrate-static-security-checking-for-python-4i59”