TL;DR

Secrets Patterns DB của Mazin Ahmed (mazen160) là feed regex mã nguồn mở lớn nhất hiện có để detect API keys, passwords và tokens trong source code. 1600+ pattern, confidence-based, ReDoS-safe, xuất thẳng sang format của Gitleaks (TOML), TruffleHog v2 (JSON) và TruffleHog v3 (YAML). Miễn phí CC-BY-SA-4.0. Nếu AppSec của bạn đang chỉ chạy rule mặc định — bạn đang bỏ sót hàng trăm loại secret.

Secrets Patterns DB là gì

Không phải scanner mới. Đây là database pattern — nguồn cấp regex cho các scanner bạn đã dùng. Mục tiêu: gom tất cả pattern secret đã biết vào một format duy nhất, portable, rồi generate config cho tool bất kỳ.

  • 1600+ regex cho API tokens, cloud keys, OAuth credentials, passwords, session tokens…
  • Format thống nhất (YAML source) → export sang: .toml cho Gitleaks, .json cho TruffleHog v2, .yaml cho TruffleHog v3.
  • Confidence level gắn vào từng pattern để dev dễ triage finding.
  • ReDoS-safe: mọi regex được validate qua script tự động và CI job, tránh regex gây catastrophic backtracking làm treo scanner.
  • License CC-BY-SA-4.0 cho database (TruffleHog data subset là AGPL).

Vì sao vấn đề này quan trọng

Limited regex coverage = missed secrets. Scanner mặc định ship với ít rule đến bất ngờ: TruffleHog v2 chỉ có ~40, Gitleaks gốc chỉ ~60. TruffleHog v3 đã nhảy lên ~700–790 pattern nhưng nhét thẳng vào Golang modules — bạn không thể ingest chúng sang tool khác. Muốn coverage đó trong Gitleaks? Phải viết lại toàn bộ TOML bằng tay.

Secrets Patterns DB giải chính xác bài toán vendor lock-in đó: 1 nguồn dữ liệu, mọi tool consume được. Security team chạy layered defense (Gitleaks pre-commit + TruffleHog history sweep) không còn phải maintain hai bộ rule song song.

Pattern count: ai có gì

Tool / DBBuilt-in rulesApproachPortable rules?
Secrets Patterns DB1600+Regex (confidence-tagged, ReDoS-tested)Yes — core feature
TruffleHog v3~700–790Regex + entropy + live verificationNo (Go modules)
Gitleaks~60 gốc / 150+ hiện tạiRegex onlyYes (TOML)
TruffleHog v2~40Regex onlyYes (JSON)
detect-secrets~20 typesRegex + entropyPlugins

Dễ thấy: chạy một mình Gitleaks mặc định, bạn có coverage thua Secrets Patterns DB ~10 lần. Kể cả TruffleHog v3 xịn nhất cũng kém gấp đôi về số regex.

Regex vs Entropy — và vì sao 1600 pattern vẫn đáng

Có hai trường phái detect secret: regex (match pattern đã biết) và Shannon entropy (flag string random).

  • Entropy bắt được secret kiểu mới nhưng false-positive cao: URL, hash, UUID, base64 test fixture đều trigger. Bug-bounty hunter chấp nhận noise này vì review tay được; production pipeline thì không.
  • Regex cho finding high-confidence, dễ verify, nhưng chỉ thấy cái đã biết. Nếu pattern không có trong rule set — bạn không bao giờ phát hiện.

Đó là lý do kích thước rule set là tất cả đối với cách tiếp cận regex. Secrets Patterns DB dồn resource cộng đồng vào đúng chỗ này.

Ai nên dùng

DevSecOps & AppSec teams: export sang TOML, nhét vào Gitleaks GitHub Action — pre-commit hook chặn commit leak secret ngay tại dev machine, không cần network.

Security teams chạy layered strategy: Gitleaks (fast, pre-commit) + TruffleHog (slow, weekly history sweep với verification). Cả hai đều consume cùng một Secrets Patterns DB — không duplicate công maintain.

Bug bounty hunter & pentester: 1600+ pattern chính xác là checklist khổng lồ cho khi scan tài sản target, lọc bớt noise từ entropy scan.

Solo dev & startup: coverage enterprise-grade miễn phí, không cần SaaS scanning đắt tiền.

Limitations & pricing

  • Miễn phí hoàn toàn, CC-BY-SA-4.0. Nếu bạn build tool/product dựa vào DB này, phải explicit reference nguồn.
  • Regex-only: không phát hiện secret kiểu mới chưa ai viết pattern. Password dạng Tr0ub4dor&3 hay API token format lạ sẽ lọt.
  • Không verify live credential (khác TruffleHog v3) — DB chỉ nói "cái này trông giống Stripe key", không xác nhận "key này còn hoạt động".
  • Beta status: tác giả đã tuyên thẳng còn nhiều chỗ cần cải thiện, kêu gọi PR cộng đồng.

Roadmap & next steps

Ideas mở để contribute (list trên repo): thêm trường severity, categorize pattern theo type và tag, hỗ trợ thêm scanner ngoài TruffleHog và Gitleaks. Ai đang xây AppSec program và muốn trả ơn cộng đồng — đây là low-hanging fruit.

Quickstart: git clone https://github.com/mazen160/secrets-patterns-db → chạy script export cho tool của bạn → point scanner vào file output → done. 5 phút để nhân coverage lên gấp 10.

Nguồn: github.com/mazen160/secrets-patterns-db, mazinahmed.net, Rafter comparison.