Add Level 0 + Level 1 + Level 2 security scanning #19
@@ -49,7 +49,30 @@ jobs:
|
|||||||
curl -sSL -o /tmp/gitleaks.tar.gz \
|
curl -sSL -o /tmp/gitleaks.tar.gz \
|
||||||
"https://github.com/gitleaks/gitleaks/releases/download/v8.30.1/gitleaks_8.30.1_linux_${GL_ARCH}.tar.gz"
|
"https://github.com/gitleaks/gitleaks/releases/download/v8.30.1/gitleaks_8.30.1_linux_${GL_ARCH}.tar.gz"
|
||||||
tar -xzf /tmp/gitleaks.tar.gz -C /usr/local/bin gitleaks
|
tar -xzf /tmp/gitleaks.tar.gz -C /usr/local/bin gitleaks
|
||||||
gitleaks detect --source=. --report-format json --report-path /tmp/gitleaks.json --exit-code 0 -v || true
|
|
||||||
|
# curl-auth-header — дефолтное правило gitleaks, ловит ЛЮБОЙ
|
||||||
|
# "curl -H \"Authorization: Bearer ...\"" по форме, не по
|
||||||
|
# содержимому. Подтверждено живьём на нескольких клиентских
|
||||||
|
# README: ни одна формулировка примера (одинаковый токен,
|
||||||
|
# разные токены, плейсхолдер в угловых скобках) не проходит
|
||||||
|
# — а HIGH-находка блокирует мерж навсегда, потому что
|
||||||
|
# документация с примером curl-запроса есть почти у любого
|
||||||
|
# проекта с API. Точечно исключаем только эту находку на
|
||||||
|
# markdown-файлах; остальные правила (реальные секреты по
|
||||||
|
# энтропии/префиксам) продолжают действовать и там.
|
||||||
|
cat > /tmp/.gitleaks.toml <<'GLCFG'
|
||||||
|
[extend]
|
||||||
|
useDefault = true
|
||||||
|
|
||||||
|
[[rules]]
|
||||||
|
id = "curl-auth-header"
|
||||||
|
|
||||||
|
[rules.allowlist]
|
||||||
|
paths = ['''(?i)\.md$''']
|
||||||
|
GLCFG
|
||||||
|
|
||||||
|
gitleaks detect --source=. --config=/tmp/.gitleaks.toml \
|
||||||
|
--report-format json --report-path /tmp/gitleaks.json --exit-code 0 -v || true
|
||||||
[ -f /tmp/gitleaks.json ] || echo '[]' > /tmp/gitleaks.json
|
[ -f /tmp/gitleaks.json ] || echo '[]' > /tmp/gitleaks.json
|
||||||
|
|
||||||
- name: semgrep (SAST)
|
- name: semgrep (SAST)
|
||||||
|
|||||||
Reference in New Issue
Block a user