Milan-Gautam/astra

GitHub: Milan-Gautam/astra

一款零依赖、精度优先的密钥与凭证扫描工具,专注于从 JavaScript 文件和 URL 中发现泄露的 API 密钥、令牌及安全风险。

Stars: 2 | Forks: 0

# Astra ``` _ ____ _____ ____ _ / \ / ___|_ _| _ \ / \ / _ \ \___ \ | | | |_) | / _ \ / ___ \ ___) || | | _ < / ___ \ /_/ \_\____/ |_| |_| \_\/_/ \_\ secret & credential scanner ``` 300+ 模式 · 零依赖 · Python 3.10+ ## 安装 ``` curl -O https://raw.githubusercontent.com/Milan-Gautam/astra/main/astra.py chmod +x astra.py ``` 无需 pip。无需 Go。无需 Docker。 ## 用法 ``` FLAGS: -u, --urls URLs to scan -f, --file File with URLs (one per line) -s, --severity confirmed|probable|possible|info (default: possible) -r, --show-raw Show raw secrets -v, --verbose Show all URLs -q, --quiet Minimal output -j, --json JSON output --tags Filter by tags (aws,stripe,github) -t, --threads Threads (default: 20) --timeout Timeout seconds (default: 30) -d, --depth JS URL depth (default: 1) --no-follow Don't follow JS URLs --no-fp Disable FP filter -l, --list List rules ``` ## 严重程度 | 标签 | 含义 | |---|---| | `◆ confirmed` | 明确的格式 —— 极少出现误报 | | `◇ probable` | 强匹配 —— 值得快速人工检查 | | `○ possible` | 置信度较低 —— 需人工验证 | | `· info` | 侦察数据(IP、电子邮件) | ## 与其他工具的对比 | 功能 | **astra** | trufflehog v3 | gitleaks v8 | |---|:---:|:---:|:---:| | **模式数量** | 307 | ~700 | ~160 | | **专注 JS** | ✓ | — | — | | **URL 获取 + 扫描** | ✓(多线程) | — | — | | **误报处理** | 优秀 | 差 | 差 | | **AI/LLM token** | 20+ | 4–5 | 3–4 | | **支付提供商** | 22+ | 1 | 2 | | **安全 Sink 检测** | ✓(XSS/RCE/SQLi) | — | — | | **严重程度分类** | 4 级 | 2 级 | 3 级 | | **Git 历史扫描** | — | ✓ | ✓ | | **Pre-commit hook** | — | ✓ | ✓ | | **实时 API 验证** | — | ✓(100+ 服务) | — | | **JSON 输出** | ✓ | ✓ | ✓ | | **安装方式** | 单文件 | Go/Docker | Go | | **依赖项** | 无(仅标准库) | 40+ 模块 | 20+ 模块 | | **扫描速度** | ~5k 行/秒 | ~1k 行/秒 | ~10k 行/秒 | ## 可检测内容 **云服务** — AWS key ID + secret、GCP 服务账号、Azure Storage DSN、DigitalOcean PAT、Cloudflare、Heroku、Netlify、Vercel、Linode、Scaleway、阿里云 **AI / LLM** — OpenAI(`sk-` 经典版 + `sk-proj-`)、Anthropic、Google Gemini、HuggingFace、Groq (`gsk_`)、Perplexity (`pplx-`)、OpenRouter (`sk-or-v1-`)、Replicate、Together AI、Mistral、ElevenLabs、Deepgram、AssemblyAI、Stability AI、Cohere、Fireworks AI、Anyscale、Tavily **源代码控制 / CI** — GitHub PAT + Actions token、GitLab PAT + deploy token、CircleCI、Travis CI、Jenkins、Buildkite、Pulumi、Bitbucket、Codecov、Terraform Cloud **通讯** — Slack token + webhook、Discord bot token + webhook、Telegram bot token、Twilio、SendGrid、Mailgun、Zendesk、Intercom、PagerDuty **支付** — Stripe live/restricted/test keys + webhook secret、PayPal Braintree、Square、Razorpay、Paystack、WooCommerce、Adyen、Flutterwave、Mollie、Revolut、Wise、Checkout.com **电子邮件** — Mailchimp、SendGrid、Mailgun、Resend **身份验证 / 会话** — JWT、OAuth2 `client_secret`、`api_key=`、`access_token=`、`password=`(仅限带引号的值)、URL 中的 Basic Auth、查询参数中的 secret、Okta、Auth0、WorkOS、Stytch、Liveblocks **加密** — RSA / DSA / EC / PGP / OpenSSH / PKCS8 私钥头部 **数据库** — 带有凭证的 MySQL、PostgreSQL、MongoDB、Redis、MSSQL、MariaDB、ClickHouse、CockroachDB、Cassandra DSN,Supabase、PlanetScale、Neon、Upstash、Turso、Xata **DOM XSS** — `eval(location.*)`、来自模板字符串的 `innerHTML`、`document.write+location`、`postMessage+eval` **RCE / 注入** — `child_process.exec`、`pickle.loads`、`vm.runInNewContext`、通过字符串拼接导致的 SQLi、NoSQL injection、prototype pollution、path traversal、SSRF **侦察** — 私有 IPv4、电子邮件地址、API endpoint、GraphQL endpoint、管理面板、Swagger/OpenAPI 规范、source map、调试 endpoint ## 设计理念 astra 采用**精度优先、感知 JS 的方法**,而不是一味追求模式数量。关键设计决策如下: - **逐行扫描**结合上下文提取,确保每个匹配项都包含周边代码以供验证 - **严格的误报过滤器**,可消除常见的 JavaScript 标识符、压缩代码块和十六进制字符串 - **强制带引号值**,避免标记类似 `var x = req.token` 的常见变量赋值 - **基于模式的熵阈值**,允许进行微调以减少噪音 - **多线程 URL 获取**,支持大规模扫描实时 Web 应用 - **4 级严重程度分类**(confirmed → probable → possible → info)有助于确定调查发现的优先级 - **基于标签的过滤**,允许针对特定类别(aws、stripe、ai 等)进行扫描 astra 是对 trufflehog 和 gitleaks 等通用工具的补充 —— 它是一款专用工具,适用于严重依赖 JavaScript/TypeScript 的代码库以及对精度要求极高的现代 Web 技术栈。 ## 🥟 请我吃 Momo 喜欢 **astra**?请我吃些 momo 吧 → [点击此处捐赠](https://buymemomo.com/milang) ## 贡献 我对**新的模式文件**特别感兴趣。如果在你的日常工作中经常需要 grep 某些内容,非常欢迎提交 PR 将模式文件添加到 `examples/` 目录中。 一如既往,欢迎提交 Bug 修复。
标签:DevSecOps, Python, StruQ, 上游代理, 动态分析, 敏感信息扫描, 无后门, 防御框架