Bandit

PyCQA

Linter de segurança para Python — a varredura SAST de base, e uma lição sobre o que a base não vê.

Aplicações e Cadeia de Suprimentos Gratuito e Open Source CLI Praticado em Lab Cross-platform

Cyber Kill Chain e Ciclo do Defensor

Atacante — Kill Chain
1 Reconhecimento
2 Armamento
3 Entrega
4 Exploração
5 Instalação
6 Comando e Controle
7 Ações sobre Objetivos
Defensor — Ciclo de RI
8 Preparação
9 Detecção e Análise
10 Contenção, Erradicação e Recuperação
11 Atividade Pós-Incidente

Descrição

O Bandit percorre a AST do Python procurando construções sabidamente perigosas: subprocess com shell=True, yaml.load sem loader seguro, assert usado para validação, senhas hardcoded.

É o primeiro scan a rodar e o mais barato de manter. A série o usa como linha de base honesta em todo laboratório, inclusive onde ele volta limpo diante de código realmente vulnerável — o Bandit conhece Python, não Django, então uma chamada .raw() do ORM montada com f-string é invisível para ele. É nessa lacuna que as regras próprias do Semgrep começam.

Casos de uso

  • Primeira passagem de SAST em qualquer base Python
  • Hook de pre-commit contra chamadas perigosas da stdlib
  • Estabelecer o que um scanner genérico pega e o que não pega

Exemplo

bandit -r . -x ./venv,./tests -ll

Posts relacionados