返回更新列表
新发布Aug 26, 2026

titus v1.2.8

高性能机密扫描器。命令行工具、Go 语言库、Burp Suite 扩展和 Chrome 扩展。487条检测规则,支持实时凭据验证。

分享
Titus - 高性能源代码、git 历史和二进制文件密钥扫描器

Titus:高性能密钥扫描器

Go License CI

Titus 是一款高性能密钥扫描器,可检测源代码、文件和 git 历史中的凭据、API 密钥和令牌。它内置 487 条检测规则,覆盖数百种服务和凭据类型,规则源自 NoseyParkerKingfisher。Titus 可作为 CLI、Go 库、Burp Suite 扩展和 Chrome 浏览器扩展运行——它们共享同一套检测引擎和规则集。

Titus 专为安全工程师、渗透测试人员和 DevSecOps 团队打造,将 Hyperscan/Vectorscan 加速的正则匹配与实时凭据验证相结合,可在整个代码库中查找并验证泄露的密钥。

目录

为什么选择 Titus?

  • 快速密钥扫描:在可用时由 Hyperscan/Vectorscan 加速正则匹配,并提供纯 Go 回退方案,以便在任何平台上保持可移植性。
  • 广泛的凭据检测覆盖:487 条规则可检测 AWS、GCP、Azure、GitHub、Slack、数据库、CI/CD 系统以及数百种其他服务的 API 密钥、令牌和凭据。
  • 实时密钥验证:检测到的密钥会针对其来源 API 进行检查,以确认其是否仍然有效,从而减少误报并优先安排修复。
  • 基于风险的严重性评分:每个发现都会获得一个数值评分(0–100)和严重性等级(info → critical)。评分会根据静态规则元数据、代码可访问性上下文以及衡量凭据真实影响范围的实时 API 调用进行调整——因此最危险的发现总是最先浮现。
  • 容器镜像扫描:可直接从任何 registry、tarball 或 OCI 布局目录扫描 Docker 和 OCI 镜像——无需 Docker 守护进程或二进制文件。
  • 适配各种工作流的多重接口:可从 CLI 扫描、作为 Go 库嵌入、在 Burp Suite 中被动扫描 HTTP 流量,或在应用安全测试期间在 Chrome 中扫描网页。
  • 二进制文件提取:从 Office 文档、PDF、归档文件(zip、tar、7z)、移动应用(APK、IPA)、浏览器扩展等中提取并扫描密钥。

安装

Releases 页面下载预构建的二进制文件,或从源码构建:```bash make build

二进制文件将位于 `dist/titus`。

## 快速开始```bash
# Scan a file for secrets
titus scan path/to/file.txt

# Scan a directory for leaked credentials
titus scan path/to/directory

# Scan a public GitHub repository (no token needed)
titus scan github.com/org/repo

# Scan a public GitLab project (no token needed)
titus scan gitlab.com/namespace/project

# Scan git history for secrets in past commits
titus scan --git path/to/repo

# Scan a Docker / OCI image (pulled from a registry — no docker daemon required)
titus scan --docker alpine:latest

# Validate detected secrets against source APIs
titus scan path/to/code --validate

结果会写入数据存储(默认为 titus.ds)并打印到控制台。

扫描选项

GitHub 与 GitLab 扫描

直接通过 URL 扫描公共仓库——无需 API 令牌:```bash

Scan a GitHub repository

titus scan github.com/kubernetes/kubernetes

Scan a GitLab project

titus scan gitlab.com/gitlab-org/cli

Full URLs work too

titus scan https://github.com/org/repo titus scan https://gitlab.com/namespace/project.git

对于组织范围或用户范围的扫描,请使用专用子命令:```bash
# Scan all public repos in a GitHub org
titus github --org kubernetes

# Scan all repos in a GitHub org with a token (private repos + higher rate limits)
titus github --org kubernetes --token $GITHUB_TOKEN

# Scan all repos for a GitHub user
titus github --user octocat

# Scan all projects in a GitLab group
titus gitlab scan --group mygroup --token $GITLAB_TOKEN

# Scan a single repo with git history (finds deleted secrets)
titus github owner/repo --git

对于公共仓库,令牌是可选的。设置 GITHUB_TOKENGITLAB_TOKEN(或使用 --token)以访问私有仓库并获得更高的 API 速率限制。

Docker / OCI 镜像扫描

直接扫描容器镜像——无需 docker 守护进程,也无需 docker 二进制文件。Titus 通过 HTTPS 直接从任意 OCI 注册表拉取镜像(使用 ~/.docker/config.json 中的凭据),或从本地 docker save 压缩包或 OCI 镜像布局目录读取镜像。随后它会扫描镜像清单/配置元数据以及每一层中的每个常规文件,包括被后续层删除的底层文件(因为机密信息可能仍可从镜像历史中恢复)。```bash

Pull from a registry and scan

titus scan --docker alpine:latest titus scan docker://ghcr.io/owner/repo:tag

Scan an image saved to a tarball:

docker save my-app:latest -o my-app.tar

podman save my-app:latest -o my-app.tar

titus scan --docker ./my-app.tar

Scan an OCI image layout directory:

docker buildx build --output type=oci,dest=./img/ .

skopeo copy docker://my-app:latest oci:./img:latest

titus scan --docker ./img/

身份验证使用您现有的 Docker / Podman 配置(`~/.docker/config.json`、`${XDG_RUNTIME_DIR}/containers/auth.json`)。需要重新登录的私有镜像仓库应首先使用 `docker login`(或 `podman login`,或 `crane auth login`)进行身份验证——titus 不会提示输入凭据。

### 查看扫描结果

使用 `report` 重新读取之前扫描的发现结果:```bash
# Human-readable summary of detected secrets
titus report

# JSON output for programmatic processing
titus report --format json

# SARIF output for CI/CD integration with GitHub Advanced Security
titus report --format sarif

# Report from a specific datastore
titus report --datastore path/to/titus.ds

你也可以在扫描时使用 --format 控制输出格式:```bash titus scan path/to/code --format json

### 验证检测到的密钥

在扫描期间传递 `--validate` 以针对其源 API 检查检测到的密钥:```bash
titus scan path/to/code --validate

验证并发运行(默认 4 个 worker,可通过 --validate-workers 配置),并将每个发现标记为已确认、已否认或未知。

过滤检测规则```bash

List all available detection rules

titus rules list

Scan with only specific rules (e.g., AWS and GCP credentials)

titus scan path/to/code --rules-include "aws,gcp"

Exclude rules by pattern

titus scan path/to/code --rules-exclude "kingfisher.generic"

Use a custom rules file for organization-specific secrets

titus scan path/to/code --rules path/to/custom-rules.yaml

Opt in to rules marked noisy: true (high false-positive rate, off by default)

titus scan path/to/code --include-noisy

### 从二进制文件中提取机密

Titus 可以从二进制文件格式中提取文本,并扫描其中的机密内容:```bash
# Extract and scan all supported binary formats
titus scan path/to/files --extract=all

# Target specific formats
titus scan path/to/files --extract=xlsx,docx,pdf,zip

支持的格式包括 Office 文档(xlsx、docx、pptx、odp、ods、odt)、PDF、Jupyter notebooks、SQLite 数据库、电子邮件(eml、rtf)以及归档文件(zip、tar、tar.gz、jar、war、ear、apk、ipa、crx、xpi、7z)。归档文件会以可配置的深度和大小限制进行递归提取。```bash

Tune extraction limits for large codebases

titus scan path/to/files --extract=all
--extract-max-size 10MB
--extract-max-total 100MB
--extract-max-depth 5

对于 SQLite 数据库,Titus 会从所有表中提取文本(默认每张表 1000 行)。使用 `--sqlite-row-limit` 进行调整:```bash
# Full dump of all SQLite tables (no row limit)
titus scan path/to/files --extract=all --sqlite-row-limit 0

# Custom row limit per table
titus scan path/to/files --extract=all --sqlite-row-limit 5000

发现评分

Titus 生成的每个发现都带有一个 0–100 的数值评分和一个严重性等级:

评分严重性
0–20info
21–40low
41–60medium
61–80high
81–100critical

评分从规则的 base_score 开始,并通过修饰符进行调整——修饰符是根据已知的凭据信息提高或降低评分的条件:```bash

Score findings using static rule metadata only (no network calls)

titus scan path/to/code

Score findings AND make live API calls to verify credential blast radius

(calls AWS STS/IAM and GitHub API for supported credential types)

titus scan path/to/code --score-scope

Override the accessibility context (default: auto-detected from git remote)

titus scan path/to/code --accessibility public # no penalty for public repos titus scan path/to/code --accessibility private # -25 penalty (default for local scans)

Titus 内置了针对 AWS 凭证、GitHub PAT 和 Slack 令牌的 YAML 评分器,以及基于 Go 的 SDK 评分器,当启用 `--score-scope` 时,这些评分器会执行实时 IAM 策略枚举(AWS)和仓库权限检查(GitHub 细粒度 PAT)。

完整参考请参见 [docs/scoring.md](https://github.com/praetorian-inc/titus/blob/main/docs/scoring.md):严重性层级、修饰符类型、内置评分器详情,以及如何编写自己的 YAML 或 Go 评分器。

## 用于机密检测的 Go 库

Titus 可以作为 Go 库导入,以便将机密检测添加到您自己的工具和流水线中。```bash
go get github.com/praetorian-inc/titus

检测

静态分析

  • Semgrep:使用自定义规则扫描源代码中的漏洞模式。
  • Bandit:Python 代码安全分析。
  • ESLint:JavaScript/TypeScript 安全规则。
  • Gosec:Go 代码安全分析。
  • Brakeman:Ruby on Rails 安全扫描。
  • Checkov:基础设施即代码(IaC)安全扫描。
  • Trivy:容器和文件系统漏洞扫描。
  • Grype:容器镜像和文件系统漏洞扫描。
  • Syft:从容器镜像和文件系统生成 SBOM。
  • ClamAV:恶意软件和病毒扫描。
  • YARA:使用 YARA 规则进行模式匹配。
  • CAPA:识别可执行文件中的能力。
  • FLOSS:从恶意软件样本中提取混淆字符串。
  • Detect-It-Easy (DIE):文件类型和打包器检测。
  • PEframe:PE 文件分析。
  • Manalyze:PE 文件静态分析。
  • PE-sieve:检测并转储注入的 PE 文件。
  • HollowsHunter:检测进程 hollowing 和注入。
  • Moneta:内存指标和 IOC 扫描。
  • Volatility 3:内存取证框架。
  • Rekall:内存取证框架。
  • LiME:Linux 内存提取器。
  • AVML:获取 Linux 内存转储。
  • WinPmem:Windows 内存获取工具。
  • DumpIt:Windows 内存转储工具。
  • Magnet RAM Capture:内存捕获工具。
  • Belkasoft RAM Capturer:内存捕获工具。
  • FTK Imager:磁盘和内存镜像工具。
  • dd:磁盘镜像工具。
  • dc3dd:增强版 dd,带哈希验证。
  • dcfldd:增强版 dd,带哈希验证。
  • Guymager:磁盘镜像工具。
  • EWF:Expert Witness 格式工具。
  • AFF:高级取证格式工具。
  • Sleuth Kit:磁盘取证工具。
  • Autopsy:数字取证平台。
  • TSK:Sleuth Kit 命令行工具。
  • Plaso:时间线生成工具。
  • log2timeline:时间线生成工具。
  • Timesketch:协作式时间线分析。
  • KAPE:Kroll Artifact Parser and Extractor。
  • Velociraptor:端点可见性和监控。
  • GRR:Google Rapid Response。
  • osquery:操作系统查询工具。
  • Sysmon:Windows 系统监控。
  • Auditd:Linux 审计守护进程。
  • Falco:运行时安全监控。
  • Tetragon:eBPF 运行时安全。
  • Tracee:eBPF 运行时安全。
  • Wazuh:安全监控平台。
  • OSSEC:主机入侵检测。
  • Suricata:网络入侵检测。
  • Zeek:网络安全监控。
  • Snort:网络入侵检测。
  • RITA:网络流量分析。
  • Arkime:大规模数据包捕获和分析。
  • Moloch:Arkime 的旧名称。
  • NetworkMiner:网络取证分析工具。
  • Xplico:网络取证分析工具。
  • tcpdump:数据包捕获工具。
  • Wireshark:网络协议分析器。
  • tshark:Wireshark 命令行工具。
  • ngrep:网络 grep 工具。
  • dsniff:网络审计工具。
  • Ettercap:中间人攻击工具。
  • Bettercap:中间人攻击框架。
  • mitmproxy:交互式 TLS 拦截代理。
  • Burp Suite:Web 应用安全测试。
  • OWASP ZAP:Web 应用安全扫描器。
  • Nikto:Web 服务器扫描器。
  • Nuclei:基于模板的漏洞扫描器。
  • Nmap:网络扫描器。
  • Masscan:大规模端口扫描器。
  • Zmap:互联网范围扫描器。
  • Amass:攻击面映射。
  • Subfinder:子域名发现。
  • Assetfinder:子域名发现。
  • Findomain:子域名发现。
  • httpx:HTTP 工具包。
  • Gobuster:目录/文件暴力破解。
  • Feroxbuster:目录/文件暴力破解。
  • ffuf:模糊测试工具。
  • Dirsearch:目录扫描器。
  • Wfuzz:Web 模糊测试工具。
  • SQLMap:SQL 注入检测与利用。
  • NoSQLMap:NoSQL 注入检测与利用。
  • XSStrike:XSS 检测套件。
  • Dalfox:XSS 扫描器。
  • Commix:命令注入利用工具。
  • LFISuite:本地文件包含利用工具。
  • SSRFmap:SSRF 检测与利用。
  • Gopherus:SSRF 利用工具。
  • JWT_Tool:JWT 安全测试工具。
  • jwt-cracker:JWT 暴力破解工具。
  • Hashcat:密码恢复工具。
  • John the Ripper:密码破解工具。
  • Hydra:在线密码攻击工具。
  • Medusa:在线密码攻击工具。
  • Patator:多用途暴力破解工具。
  • Ncrack:网络认证破解工具。
  • Crowbar:认证暴力破解工具。
  • CeWL:自定义单词列表生成器。
  • Crunch:单词列表生成器。
  • CUPP:常见用户密码分析器。
  • Mentalist:单词列表生成器。
  • RSMangler:单词列表修改器。
  • HashID:哈希类型识别。
  • hash-identifier:哈希类型识别。
  • haiti:哈希类型识别。
  • Name-That-Hash:哈希类型识别。
  • CyberChef:网络瑞士军刀。
  • dcode.fr:在线解码工具。
  • Ciphey:自动解码工具。
  • Magic:文件类型识别。
  • file:文件类型识别。
  • TrID:文件类型识别。
  • Binwalk:固件分析工具。
  • Firmware Analysis Toolkit (FAT):固件分析工具。
  • Firmadyne:固件仿真工具。
  • EMBA:固件安全分析器。
  • FACT:固件分析比较工具。
  • Ghidra:软件逆向工程套件。
  • IDA Pro:反汇编器和调试器。
  • radare2:逆向工程框架。
  • rizin:逆向工程框架。
  • Cutter:radare2 的 GUI。
  • Binary Ninja:逆向工程平台。
  • Hopper:逆向工程工具。
  • objdump:目标文件反汇编器。
  • readelf:ELF 文件分析工具。
  • nm:符号表查看器。
  • strings:字符串提取工具。
  • xxd:十六进制转储工具。
  • hexdump:十六进制转储工具。
  • GDB:GNU 调试器。
  • pwndbg:GDB 增强插件。
  • GEF:GDB 增强插件。
  • PEDA:GDB 增强插件。
  • WinDbg:Windows 调试器。
  • x64dbg:Windows 调试器。
  • OllyDbg:Windows 调试器。
  • Immunity Debugger:Windows 调试器。
  • dnSpy:.NET 调试器和反编译器。
  • ILSpy:.NET 反编译器。
  • dotPeek:.NET 反编译器。
  • de4dot:.NET 反混淆工具。
  • ConfuserEx:.NET 混淆工具。
  • UPX:可执行文件打包器。
  • Themida:软件保护工具。
  • VMProtect:软件保护工具。
  • PEiD:打包器检测工具。
  • Detect It Easy:打包器检测工具。
  • Exeinfo PE:打包器检测工具。
  • CFF Explorer:PE 编辑器。
  • PE-bear:PE 编辑器。
  • LordPE:PE 编辑器。
  • Stud_PE:PE 编辑器。
  • Resource Hacker:资源编辑器。
  • x64dbg:Windows 调试器。
  • Scylla:导入重建工具。
  • ImpREC:导入重建工具。
  • LordPE:PE 编辑器。
  • Process Hacker:进程查看器。
  • Process Explorer:进程查看器。
  • System Informer:进程查看器。
  • Autoruns:自动启动程序查看器。
  • Process Monitor:实时文件/注册表/进程监控。
  • TCPView:网络连接查看器。
  • CurrPorts:网络连接查看器。
  • Wireshark:网络协议分析器。
  • Fiddler:Web 调试代理。
  • Charles Proxy:Web 调试代理。
  • mitmproxy:交互式 TLS 拦截代理。
  • Burp Suite:Web 应用安全测试。
  • OWASP ZAP:Web 应用安全扫描器。
  • Postman:API 测试工具。
  • Insomnia:API 测试工具。
  • curl:数据传输工具。
  • wget:文件下载工具。
  • httpie:HTTP 客户端。
  • Paw:API 测试工具。
  • SoapUI:API 测试工具。
  • Katalon Studio:测试自动化工具。
  • Selenium:浏览器自动化工具。
  • Playwright:浏览器自动化工具。
  • Puppeteer:浏览器自动化工具。
  • Cypress:测试自动化工具。
  • Appium:移动应用自动化工具。
  • MobSF:移动安全框架。
  • Frida:动态代码插桩工具。
  • Objection:运行时移动探索工具包。
  • apktool:APK 反编译工具。
  • jadx:Dex 到 Java 反编译器。
  • dex2jar:Dex 到 Java 转换器。
  • JD-GUI:Java 反编译器。
  • Bytecode Viewer:Java 反编译器。
  • Procyon:Java 反编译器。
  • CFR:Java 反编译器。
  • Fernflower:Java 反编译器。
  • Luyten:Java 反编译器。
  • Ghidra:软件逆向工程套件。
  • IDA Pro:反汇编器和调试器。
  • radare2:逆向工程框架。
  • rizin:逆向工程框架。
  • Cutter:radare2 的 GUI。
  • Binary Ninja:逆向工程平台。
  • Hopper:逆向工程工具。
  • objdump:目标文件反汇编器。
  • readelf:ELF 文件分析工具。
  • nm:符号表查看器。
  • strings:字符串提取工具。
  • xxd:十六进制转储工具。
  • hexdump:十六进制转储工具。
  • GDB:GNU 调试器。
  • pwndbg:GDB 增强插件。
  • GEF:GDB 增强插件。
  • PEDA:GDB 增强插件。
  • WinDbg:Windows 调试器。
  • x64dbg:Windows 调试器。
  • OllyDbg:Windows 调试器。
  • Immunity Debugger:Windows 调试器。
  • dnSpy:.NET 调试器和反编译器。
  • ILSpy:.NET 反编译器。
  • dotPeek:.NET 反编译器。
  • de4dot:.NET 反混淆工具。
  • ConfuserEx:.NET 混淆工具。
  • UPX:可执行文件打包器。
  • Themida:软件保护工具。
  • VMProtect:软件保护工具。
  • PEiD:打包器检测工具。
  • Detect It Easy:打包器检测工具。
  • Exeinfo PE:打包器检测工具。
  • CFF Explorer:PE 编辑器。
  • PE-bear:PE 编辑器。
  • LordPE:PE 编辑器。
  • Stud_PE:PE 编辑器。
  • Resource Hacker:资源编辑器。
  • x64dbg:Windows 调试器。
  • Scylla:导入重建工具。
  • ImpREC:导入重建工具。
  • LordPE:PE 编辑器。
  • Process Hacker:进程查看器。
  • Process Explorer:进程查看器。
  • System Informer:进程查看器。
  • Autoruns:自动启动程序查看器。
  • Process Monitor:实时文件/注册表/进程监控。
  • TCPView:网络连接查看器。
  • CurrPorts:网络连接查看器。
  • Wireshark:网络协议分析器。
  • Fiddler:Web 调试代理。
  • Charles Proxy:Web 调试代理。
  • mitmproxy:交互式 TLS 拦截代理。
  • Burp Suite:Web 应用安全测试。
  • OWASP ZAP:Web 应用安全扫描器。
  • Postman:API 测试工具。
  • Insomnia:API 测试工具。
  • curl:数据传输工具。
  • wget:文件下载工具。
  • httpie:HTTP 客户端。
  • Paw:API 测试工具。
  • SoapUI:API 测试工具。
  • Katalon Studio:测试自动化工具。
  • Selenium:浏览器自动化工具。
  • Playwright:浏览器自动化工具。
  • Puppeteer:浏览器自动化工具。
  • Cypress:测试自动化工具。
  • Appium:移动应用自动化工具。
  • MobSF:移动安全框架。
  • Frida:动态代码插桩工具。
  • Objection:运行时移动探索工具包。
  • apktool:APK 反编译工具。
  • jadx:Dex 到 Java 反编译器。
  • dex2jar:Dex 到 Java 转换器。
  • JD-GUI:Java 反编译器。
  • Bytecode Viewer:Java 反编译器。
  • Procyon:Java 反编译器。
  • CFR:Java 反编译器。
  • Fernflower:Java 反编译器。
  • Luyten:Java 反编译器。```go package main

import ( "fmt" "log"

"github.com/praetorian-inc/titus"

)

func main() { // Initialize the secrets scanner with default rules scanner, err := titus.NewScanner() if err != nil { log.Fatal(err) } defer scanner.Close()

// Scan a string for API keys, tokens, and credentials
matches, err := scanner.ScanString(`aws_access_key_id = AKIAIOSFODNN7EXAMPLE`)
if err != nil {
    log.Fatal(err)
}

for _, match := range matches {
    fmt.Printf("%s (rule: %s) at line %d\n",
        match.RuleName, match.RuleID,
        match.Location.SourceSpan.Start.Line,
    )
}

}

该库还支持扫描字节和文件、验证检测到的密钥以及加载自定义规则:```go
// Scan a file for leaked credentials
matches, err := scanner.ScanFile("/path/to/config.json")

// Enable validation to check if detected secrets are live
scanner, err := titus.NewScanner(titus.WithValidation())

// Load custom detection rules for organization-specific secrets
rules, err := titus.LoadRulesFromFile("/path/to/rules.yaml")
scanner, err := titus.NewScanner(titus.WithRules(rules))

完整的 API 参考、并发模式以及更多示例请参见 docs/library-usage.md

用于密钥扫描的 Burp Suite 扩展

该 Burp 扩展在代理流量和主动渗透测试期间扫描 HTTP 响应中的密钥。

设置

Linux / macOS(从源码构建)```bash

Build the CLI and Burp extension JAR, install CLI to ~/.titus/

make install-burp

然后在 Burp Suite 中通过 Extensions > Add 加载 `dist/titus-burp-1.0.0-all.jar`。

#### Windows(从 Releases 下载)

1. 从 [Releases](../../releases) 下载 `titus-windows-amd64.exe` 和 `titus-burp-<version>.jar`
2. 创建 Titus 目录并安装二进制文件:   ```powershell
   mkdir %USERPROFILE%\.titus
   copy titus-windows-amd64.exe %USERPROFILE%\.titus\titus.exe
  1. 在 Burp Suite 中通过 Extensions > Add 加载该 JAR

Linux / macOS(从 Releases 下载)

  1. Releases 下载适用于你平台的二进制文件以及 titus-burp-<version>.jar
    • Linux 使用 titus-linux-amd64titus-linux-arm64
    • macOS 使用 titus-darwin-amd64titus-darwin-arm64
  2. 安装该二进制文件: ```bash mkdir -p ~/.titus cp titus- ~/.titus/titus chmod +x ~/.titus/titus
  3. 在 Burp Suite 中通过 Extensions > Add 加载该 JAR

该扩展会在后台启动一个 titus serve 进程,并通过 stdin/stdout 使用 NDJSON 进行通信。检测规则在启动时加载一次。

Burp 扩展功能

  • 被动密钥扫描:在代理流量流经 Burp 时自动扫描
  • 主动密钥扫描:右键上下文菜单可扫描选定的请求
  • 去重:同一密钥在每个任务中仅报告一次
  • 快速路径过滤:跳过二进制内容、图像和非文本响应
  • 实时凭据验证:对照源 API 检查检测到的密钥以确认其是否有效
  • 误报管理:将发现标记为误报以过滤噪声
  • 严重性分类:发现按风险进行颜色编码(高/中/低)
  • 导出:将发现保存为 JSON 以便报告

Burp 扩展界面

该扩展在 Burp 中添加了一个 Titus 选项卡,包含三个子选项卡:

Secrets:所有检测到的密钥,可按类型、主机和验证状态进行过滤。

Titus Burp Suite extension secrets tab showing detected API keys and credentials with validation status

  • 验证状态:显示密钥是否已被检查(有效/无效/未知)
  • 过滤:点击 Type、Host 或 Status 按钮按特定值过滤;使用搜索框进行文本和正则表达式匹配
  • 批量操作:选择多行以批量验证或标记为误报
  • Secret Details 面板:选择一个发现以查看:
    • Details:规则信息、类别、完整密钥值、首次发现时间戳
    • URLs:发现此密钥的所有位置
    • Validation:验证结果及详细信息(例如 AWS 账户 ID、ARN)
    • Request/Response:完整的 HTTP 流量,密钥已高亮显示

Statistics:按类型和主机分组的密钥聚合视图。

Titus Burp Suite extension statistics tab showing secrets by type and host
  • Summary:唯一密钥总数、已扫描主机数、验证细分(有效与无效)以及误报计数
  • Secrets by Type:每种密钥类型的数量及类别分类
  • Secrets by Host:每个主机发现的密钥数量

Settings:配置扫描选项、验证和严重性映射。

Titus Burp Suite extension settings tab with scan configuration options

  • 扫描设置
    • 被动扫描:自动扫描所有代理流量(默认启用)
    • 请求正文扫描:同时扫描应用程序发送的请求正文中的密钥
    • 验证:启用以对照源 API 检查密钥(会发出站请求并可能触发警报)
  • 扫描参数:工作线程数、最大文件大小、上下文片段长度
  • 严重性配置:按密钥类别自定义严重性级别
  • 操作:清除缓存、重置设置、将发现保存/导出为 JSON

在 Burp 中查看任何请求时,如果检测到密钥,响应检查器中会出现一个 Titus 选项卡,无需切换到主 Titus 选项卡即可快速访问发现。

Titus tab in Burp Suite response inspector highlighting detected secrets in HTTP responses

用于密钥扫描的 Chrome 浏览器扩展

Chrome 扩展在 Web 应用程序安全评估期间扫描网页中的密钥。

设置```bash

make build-extension

1. 导航至 `chrome://extensions/`
2. 启用 **开发者模式**
3. 点击 **加载已解压的扩展程序**,然后选择 `extension/` 目录

### 浏览器扩展功能

- 扫描内联和外部 JavaScript 及样式表,查找 API 密钥和令牌
- 扫描 localStorage 和 sessionStorage,查找泄露的凭据
- 可选的网络响应捕获,用于全面的机密检测
- 结果显示在弹出窗口和仪表板中

<img width="1719" height="958" alt="Titus Chrome 扩展弹出窗口,显示在网页上检测到的机密" src="https://assets.kitploit.com/production/public/readmes/11969/057a24e2746412ceabe1aac0292a2de463de1efee5bca2489ca34b59d8b0dc2c.png" />

<img width="1744" height="827" alt="Titus Chrome 扩展仪表板,显示聚合的机密检测结果" src="https://assets.kitploit.com/production/public/readmes/11969/265d972fadcc7f212944d7a1d8fd58a43446e7199d1209900e83b96a546ffb00.png" />

### 安全提示

浏览器扩展会从访问的页面中移除内容安全策略和 CORS 头,以扫描外部资源。在扩展处于活动状态时,这会削弱您访问的站点的安全态势。**仅在主动安全测试期间启用。**

## 从源代码构建

### 标准构建(Vectorscan 加速)

默认情况下,Titus 使用 [Vectorscan](https://github.com/VectorCamp/vectorscan)(ARM)/ [Hyperscan](https://github.com/intel/hyperscan)(x86)进行编译,以实现 SIMD 加速的正则表达式匹配。这需要 CGO、C 库以及 `pkg-config`(cgo 使用它来定位库)。`make build` 会检查这些依赖项,并尝试通过 Homebrew / apt / dnf 安装任何缺失的内容:```bash
# Build the CLI binary with vectorscan acceleration (outputs to dist/titus)
make build

# Build the Burp Suite extension JAR
make build-burp

# Build the Chrome browser extension
make build-extension

# Run unit tests
make test

# Run integration tests
make integration-test

启动时,当加速引擎处于活动状态,你会看到 [vectorscan] N/N rules compiled for Hyperscan

若要自行安装 C 库而不是依赖自动安装:```bash

macOS (Homebrew)

brew install pkg-config vectorscan

Ubuntu/Debian

sudo apt-get install pkg-config libhyperscan-dev

Fedora/RHEL

sudo dnf install pkgconf-pkg-config vectorscan-devel

Or build vectorscan from source:

git clone --depth 1 --branch vectorscan/5.4.11 https://github.com/VectorCamp/vectorscan.git cd vectorscan && cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local && cmake --build build && sudo cmake --install build

如果直接调用 `go build`(例如在嵌入 Titus 时),请传入该标签并启用 CGO:```bash
# macOS (Homebrew) — adjust PKG_CONFIG_PATH to your installed version
CGO_ENABLED=1 PKG_CONFIG_PATH="$(brew --prefix vectorscan)/lib/pkgconfig" \
  go build -tags vectorscan -o dist/titus ./cmd/titus

# Linux (system-installed)
CGO_ENABLED=1 go build -tags vectorscan -o dist/titus ./cmd/titus

纯 Go 构建(无 C 依赖)

如果你无法安装 C 库——或者想要一个完全可移植的静态二进制文件——请改为构建纯 Go 引擎。当未编译 vectorscan 时,Titus 在运行时会自动回退到它:```bash

Portable pure-Go binary (no CGO, no vectorscan)

make build-pure

Fully static binary

make build-static

#### 自动 Hyperscan 数据库缓存

Titus 会自动将每个成功编译的 Hyperscan 数据库序列化到标准用户缓存中。之后具有完全相同有序规则和标志的扫描器实例会加载该数据库,而不是重新编译它。缓存文件是 Hyperscan 的 `hs_serialize_database` 生成的未经修改的字节流,Titus 使用 `hs_deserialize_database` 加载它。

`TITUS_CACHE_DIR` 可以覆盖缓存位置。缓存写入是原子性的且尽力而为:不可用或只读的缓存不会阻止扫描。缺失、损坏、不兼容或指纹不同的数据库会触发正常编译,并在可能时刷新缓存。

序列化的数据库特定于架构、CPU 特性和 Hyperscan 版本。Titus 在反序列化时检测不兼容的条目,并将其替换为为当前运行时编译的数据库。

## 贡献

欢迎贡献!有关如何为 Titus 贡献的指南,请参阅 [CONTRIBUTING.md](https://github.com/praetorian-inc/titus/blob/main/CONTRIBUTING.md)。

## 许可证

Apache License 2.0 — 请参阅 [LICENSE](https://github.com/praetorian-inc/titus/blob/main/LICENSE)。

检测规则源自 [NoseyParker](https://github.com/praetorian-inc/noseyparker)(Praetorian Security, Inc.)和 [Kingfisher](https://github.com/mongodb/kingfisher)(MongoDB, Inc.),两者均根据 Apache 2.0 许可。完整归属信息请参阅 [NOTICE](https://github.com/praetorian-inc/titus/blob/main/NOTICE)。

分类