
titus v1.2.8
高性能机密扫描器。命令行工具、Go 语言库、Burp Suite 扩展和 Chrome 扩展。487条检测规则,支持实时凭据验证。
Titus:高性能密钥扫描器
Titus 是一款高性能密钥扫描器,可检测源代码、文件和 git 历史中的凭据、API 密钥和令牌。它内置 487 条检测规则,覆盖数百种服务和凭据类型,规则源自 NoseyParker 和 Kingfisher。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_TOKEN 或 GITLAB_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–20 | info |
| 21–40 | low |
| 41–60 | medium |
| 61–80 | high |
| 81–100 | critical |
评分从规则的 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
- 在 Burp Suite 中通过 Extensions > Add 加载该 JAR
Linux / macOS(从 Releases 下载)
- 从 Releases 下载适用于你平台的二进制文件以及
titus-burp-<version>.jar:- Linux 使用
titus-linux-amd64或titus-linux-arm64 - macOS 使用
titus-darwin-amd64或titus-darwin-arm64
- Linux 使用
- 安装该二进制文件: ```bash
mkdir -p ~/.titus
cp titus- ~/.titus/titus
chmod +x ~/.titus/titus
- 在 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:按类型和主机分组的密钥聚合视图。
- 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)。