
Uma coleção das minhas regras Semgrep para facilitar a pesquisa de vulnerabilidades.
"A superfície de ataque é a vulnerabilidade. Encontrar um bug lá é apenas um detalhe."
-- Mark Dowd
"Alguns detalhes são mais importantes do que outros."
-- Fedor G. Pikus
Uma coleção das minhas regras Semgrep para facilitar a pesquisa de vulnerabilidades.
# high priority scan (quick wins)
semgrep --severity ERROR --config "p/0xdea"
# high and medium priority scan (recommended)
semgrep --severity ERROR --severity WARNING --config "p/0xdea"
# full scan (might include marginal findings and more false positives)
semgrep --config "p/0xdea"
Alternativamente, você pode clonar este repositório GitHub localmente e executar:
# full scan
semgrep --config semgrep-rules/rules /path/to/source
# specific rule scan
semgrep --config semgrep-rules/rules/c/command-injection.yaml /path/to/source
[!TIP] Especifique a opção
--no-git-ignorepara examinar arquivos independentemente do status de rastreamento git ou das regras de.gitignore.
Para uma experiência mais simplificada, recomendo salvar a saída da verificação do Semgrep no formato SARIF e usar o SARIF Explorer no VS code:
semgrep --sarif --sarif-output=/path/to/source/SEMGREP.sarif --config semgrep-rules/rules /path/to/source
code /path/to/source # then open the SEMGREP.sarif file in VS code with SARIF Explorer
Veja também o exemplo de saída SARIF incluído.
Testado com Semgrep CLI 1.169.0.
Conjunto de regras C (e às vezes C++) testado em batalha.
gets.strcpy, stpcpy, strcat.sprintf e vsprintf.scanf.strncat.strncpy, memcpy, snprintf e variantes.sizeof em um ponteiro em vez de seu alvo.strncpy e stpncpy.snprintf e vsnprintf.strlcpy e strlcat.strlen para short pode ser perigoso.