Перейти к содержимому
traio.kz

Trufflehog

TruffleHog — сканер для поиска утечек секретов (токены, API keys, ключи доступа, креды) в исходном коде и артефактах. В TRAIO используется как Secrets Detection сканер и поддерживает два режима запуска: Directory Scan и Git Scan.

  • В Sequences перед этим инструментом должен быть добавлен job Code Downloader

Поддерживаются два режима:

  • Directory Scan (TRUFFLE_MODE=dir) — сканирует файловую систему по пути, который передаёт TRAIO.
  • Git Scan (TRUFFLE_MODE=git) — сканирует .git

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

  • registry.gitlab.com/gitlab-org/security-products/analyzers/secrets:latest

Команда запуска

Окно терминала
TMP="/tmp/trufflehog.jsonl"
JQ="/tmp/jq"
# Stage 0 — Validate correct choose of parser
echo "Stage 0 — Validate correct choose of parser SCAN_TYPE='$SCAN_TYPE' TRUFFLE_MODE='$TRUFFLE_MODE'"
case "$SCAN_TYPE" in
"Trufflehog - Git Scan")
[ "$TRUFFLE_MODE" = "git" ] || { echo "ERROR: Config mismatch: SCAN_TYPE='$SCAN_TYPE' requires TRUFFLE_MODE=git"; exit 2; }
;;
"Trufflehog - Directory Scan")
[ "$TRUFFLE_MODE" = "dir" ] || { echo "ERROR: Config mismatch: SCAN_TYPE='$SCAN_TYPE' requires TRUFFLE_MODE=dir"; exit 2; }
;;
esac
# Stage 1 — Scanning
echo "Stage 1 — Scan Scanning TRUFFLE_MODE=$TRUFFLE_MODE"
case "$TRUFFLE_MODE" in
dir) trufflehog filesystem "$SEC_CODE_FOLDER" --json $EXTRA_ARGS > "$TMP" || true ;;
git) trufflehog git "file://$SEC_CODE_FOLDER" --json $EXTRA_ARGS > "$TMP" || true ;;
*) echo "Unknown TRUFFLEHOG_MODE=$TRUFFLE_MODE. Use: dir|git"; exit 2 ;;
esac
# Stage 2 — Empty report fallback
echo "Stage 2 — Empty report fallback check"
[ -s "$TMP" ] || { echo "[]" > "/data/$REPORT_FILE_NAME"; exit 0; }
# Stage 3 — Install needed tools to convert report (install curl + download jq)
echo "Stage 3 — Install needed tools to convert report (install curl & fetch jq)"
apk add --no-cache curl >/dev/null
curl -fsSL -o "$JQ" "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-amd64"
chmod +x "$JQ"
# Stage 4 — Convert JSONL report -> To parsable JSON array
echo "Stage 4 — Convert JSONL report -> To parsable JSON array"
"$JQ" -s '.' "$TMP" > "/data/$REPORT_FILE_NAME" || echo "[]" > "/data/$REPORT_FILE_NAME"
ПеременнаяПримерОбязательнаяОписание
SEC_CODE_FOLDERДаПуть к исходному коду. Проставляется автоматический
REPORT_FILE_NAMEtrufflehog.jsonДаИмя отчёта
SCAN_TYPETrufflehog - Directory ScanДаТип сканирования для парсинга Возможные значения: Trufflehog - Directory Scan, Trufflehog - Git Scan.
TRUFFLE_MODEgit или dirДаРежим запуска: dir или git
EXTRA_ARGSНетДополнительные CLI-флаги, которые прокидываются в TruffleHog.
  • --no-verification — отключить внешнюю верификацию секретов
  • --results=unverified,unknown — оставить только непроверенные/unknown результаты

TruffleHog не отдаёт severity и CWE

Рекомендуемые дефолты в TRAIO:

  • Severity: Medium по умолчанию
  • JSON format: TruffleHog отдаёт JSONL; в пресете используется jq -s '.' для конвертации в JSON array.
  • Network access: для работы пресета нужен исходящий доступ к Alpine репозиториям (для apk add curl) и GitHub (для скачивания jq).