orelsv/orel-cybersecurity-check
GitHub: orelsv/orel-cybersecurity-check
oscan 是一款授权自评估 Web 安全扫描器,覆盖漏洞检测与 GDPR 隐私合规检查,支持本地代码库和远程站点扫描。
Stars: 3 | Forks: 0
# oscan - orel-cybersecurity-check
[](https://github.com/orelsv/orel-cybersecurity-check/actions/workflows/ci.yml)
[](LICENSE)
[](pyproject.toml)
```
uvx --from orel-cybersecurity-check oscan https://your-site.example
```

一款手动的、**授权的自评估**扫描器,适用于人们越来越多地使用 AI 构建的网站、Web 应用和代码库。
它能发现这些构建中固有的漏洞:SQL 注入、git 历史记录中的机密信息、脆弱的 cookie/token、暴露的 `.git`/`.env`、
缺失的安全标头、无速率限制,并且它还会检查 **GDPR/隐私** 基础知识。
### 核心亮点
- **单条命令,覆盖全面** - TLS、安全标头、cookie 与 token、**git 历史记录**中的机密信息、暴露的 `.git`/`.env`、注入、身份验证强化、抵御 DoS 能力以及 GDPR。
- **扫描器 + Claude Code 技能** - 审计现有应用,或构建默认安全的新应用。
- **可操作的输出** - 0-100 的风险评分、字母等级以及通俗易懂的修复建议,外加 JSON 和 Markdown 报告。
- **默认安全** - passive 模式仅进行观察;侵入性检查受 `--i-am-authorized` 控制。
- **本地或远程** - 扫描在线 URL、本地代码库或通过其 git URL 扫描远程代码库。
检测是确定性的(在代码中);可选的 Claude 层仅将
检查结果重写为通俗易懂的语言。该工具在没有它的情况下也可以完全离线工作。
本仓库包含**这两**部分:
- **`oscan`** - 扫描器(本 README)。
- **`orel_cybersecurity_check`** - 一项 [Claude Code](https://claude.com/claude-code)
技能(位于 [`skill/`](skill/orel_cybersecurity_check/SKILL.md)),用于驱动 `oscan`
并添加默认安全的构建指南。请参阅下方的 [Claude Code 技能](#claude-code-skill)。
## ⚠️ 授权与道德规范
**仅**在你拥有或获得明确测试授权的资产上使用此工具。它适用于
自评估、授权的渗透测试和学习。
- 默认的 `passive` 配置文件仅进行观察(安全的 GET 请求,无 payload)。
- 侵入性的 `active` 配置文件(注入标记、身份验证锁定、有上限的
速率限制突发)**需要** `--i-am-authorized` 标志、交互式
确认,并会写入审计日志条目。
- **没有 DDoS 洪水攻击器,也没有密码破解器**。“DoS 防御能力”用于验证
速率限制/WAF *是否存在*(严格限制上限的突发);“身份验证强化”用于验证
账户*锁定*机制是否存在(在你自己的账户上进行几次失败的登录)。目标是
确认防御机制有效,而不是进行攻击。
- 所有 payload 都是具有非破坏性的检测标记 - 绝不使用 `DROP`,绝不进行数据
外泄。
## 安装
无需永久安装即可运行一次(需要 [uv](https://docs.astral.sh/uv/)):
```
uvx --from orel-cybersecurity-check oscan https://your-site.example
```
安装 `oscan` 命令以供重复使用:
```
pipx install orel-cybersecurity-check # isolated (recommended)
pip install orel-cybersecurity-check # or plain pip
```
对于可选的 Claude 扩展层,请添加 `ai` 扩展:
`pipx install "orel-cybersecurity-check[ai]"`。
从源码安装,用于开发:
```
git clone https://github.com/orelsv/orel-cybersecurity-check.git
cd orel-cybersecurity-check
python3 -m venv .venv && source .venv/bin/activate
pip install -e . # add ".[ai]" for the optional Claude layer
```
可选的外部工具(自动检测,如果缺失则会平滑回退):
[`gitleaks`](https://github.com/gitleaks/gitleaks) 用于更强的机密扫描。
## 用法
```
# 对在线网站进行 passive scan(安全默认设置)
oscan https://your-site.example
# 扫描本地 repo 中 working tree 和 git history 里的 secrets
oscan --repo /path/to/your-repo
# 通过 URL 扫描远程 repo(克隆到 temp dir,然后删除)
oscan --repo https://github.com/org/project
# 生成机器 + 人类可读的 reports
oscan https://your-site.example --json report.json --md report.md
# GDPR / 隐私重点
oscan https://your-site.example --gdpr
# 对您自己的 target 进行 active(侵入式、非破坏性)scan
oscan https://your-site.example --profile active --i-am-authorized
# 验证是否存在 login lockout(使用您自己的测试账户)
oscan https://your-site.example --profile active --i-am-authorized \
--login-url https://your-site.example/login --login-user you@example.com
```
### 配置文件
| 配置文件 | 功能描述 | 限制条件 |
|---|---|---|
| `passive`(默认) | TLS、标头、cookie/token、暴露的 `.git`/`.env`、机密信息、GDPR | 无 |
| `standard` | + 路径枚举、JWT 分析、WAF/速率限制标头检查 | 无 |
| `active` | + SQLi/XSS/路径遍历/开放重定向标记、管理端点探测、登录锁定、DoS 防御突发测试 | `--i-am-authorized` + 确认 |
### 检查内容
- **传输与 TLS** - HTTPS、TLS 版本、证书有效性、HTTP→HTTPS 重定向、HSTS
- **安全标头** - CSP、X-Content-Type-Options、点击劫持保护、Referrer-Policy、版本泄露
- **Cookie 与 token** - Secure / HttpOnly / SameSite 标志、cookie 中的 JWT、URL 中的 token
- **机密信息与 git** - 工作树**以及完整的 git 历史记录**(已提交随后被删除的机密信息)、`.gitignore` 覆盖范围。使用内联的 `# gitleaks:allow`(或 `# pragma: allowlist secret`)标记,或仓库中的 `.gitleaksignore` 文件将已知/伪造的机密信息加入白名单。
- **暴露的文件** - `/.git`、`/.env`、配置/备份文件、source map
- **CORS** *(standard)* - 任意来源反射、带凭证的通配符
- **API 安全** *(standard)* - 暴露的 OpenAPI/Swagger 文档、GraphQL 自省、过度暴露的数据(JSON 中的敏感字段)、详细的错误/堆栈跟踪信息泄露
- **注入** *(active)* - SQLi(基于错误 + **基于时间的盲注**)、**NoSQL** 注入、反射型 XSS、路径遍历、开放重定向、**SSRF**(云元数据)
- **身份验证强化** *(active)* - JWT 规范(`alg=none`、HMAC 算法混淆风险、空签名、无过期声明、敏感声明)、未经身份验证的管理/调试端点、登录速率限制/锁定
- **DoS 防御能力** - WAF/CDN/速率限制是否存在 + 一次有上限的突发测试以确认节流
- **GDPR / 隐私** - 追踪前的同意机制、第三方追踪器、Google Fonts、隐私政策、通过 HTTP 传输的 PII
### 输出
控制台摘要包含**风险评分 (0-100)**、字母等级和估计的
**失陷时间**,以及可选的 JSON(适合 SIEM)和 Markdown 报告。
### 可选的 Claude 扩展
如果安装了 `anthropic` 包并设置了 `ANTHROPIC_API_KEY`,每个
检查结果都会获得一句通俗易懂的解释。检测逻辑保持不变 -
Claude 仅作为展示层。使用 `--no-enrich` 禁用;通过
`OSCAN_ENRICH_MODEL` 选择模型(默认为 `claude-haiku-4-5`)。
## Claude Code 技能
`orel_cybersecurity_check` 技能让 [Claude Code](https://claude.com/claude-code)
默认安全地构建应用,并驱动 `oscan` 审计现有应用。全局安装
它(只需一行命令):
```
mkdir -p ~/.claude/skills && curl -sL https://github.com/orelsv/orel-cybersecurity-check/archive/main.tar.gz | tar -xz --strip-components=2 -C ~/.claude/skills orel-cybersecurity-check-main/skill/orel_cybersecurity_check
```
然后重启你的 Claude Code 会话。该技能位于
[`skill/orel_cybersecurity_check/SKILL.md`](skill/orel_cybersecurity_check/SKILL.md)。
如果要在项目本地安装而不是全局安装,请在你的项目根目录下将 `~/.claude/skills` 替换为
`.claude/skills`。
## 开发
```
pip install -e ".[dev]"
ruff check . && ruff format --check . # lint + formatting (CI gate)
pytest # 51 tests, no network required
```
测试套件包括针对一个故意存在漏洞的
本地服务器以及一个包含已提交随后被删除机密的 git 仓库进行的端到端运行。CI 会在
Python 3.11-3.13 上运行相同的检查。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
MIT
标签:Claude, CVE检测, DOE合作, Python, StruQ, Web安全, 合规检测, 数据泄露, 无后门, 蓝队分析, 逆向工具