programmersd21/aur_checker
GitHub: programmersd21/aur_checker
结合静态分析和 AI 审查,对 Arch Linux AUR 的 PKGBUILD 文件进行安全风险评分的命令行工具。
Stars: 6 | Forks: 0
# aur_checker

一个用于分析 Arch Linux AUR PKGBUILD 文件以识别安全风险的命令行工具。结合使用静态分析和 AI 驱动的检查。
[](https://github.com/programmersd21/aur_checker/actions)
[](LICENSE.md)
[](https://www.python.org/)
## 概述
aur_checker 检查 PKGBUILD 文件中的安全漏洞和可疑模式。它将基于 regex 的静态分析与 AI 审查相结合,以生成风险评估分数。
**分析 pipeline:**
```
PKGBUILD → Fetch → Static Analysis → Metadata → Scoring → AI Review → Risk Verdict
```
## 安装说明
```
git clone https://github.com/programmersd21/aur_checker.git
cd aur_checker
pip install -e .
```
需要 Python 3.10 或更高版本。
## 快速开始
```
# 检查单个 package
aur_checker check keepassx2
# 输出为 JSON
aur_checker check --json keepassx2
# 检查多个 package
aur_checker batch keepassx2 visual-studio-code-bin
# 从 file 检查
aur_checker batch --file packages.txt
# 基于先前结果的 AI 分析
aur_checker explain --input analysis.json
# 使用 makepkg 构建
aur_checker install keepassx2
# 清除缓存的分析
aur_checker clear-cache
```
## 配置
### API Key
将你的 Google Generative AI API key 设置为环境变量:
```
# Linux/macOS
export AURCHECKER_AI_API_KEY="your-api-key"
# Windows PowerShell
$env:AURCHECKER_AI_API_KEY="your-api-key"
```
### 可选设置
| 变量 | 用途 | 默认值 |
|----------|---------|---------|
| `AURCHECKER_AI_MODEL` | 要使用的 AI 模型 | `gemini-3.1-flash-lite` |
| `AURCHECKER_AI_TIMEOUT` | 请求超时(毫秒) | `120000` |
## 工作原理
### 分析过程
1. **获取** - 从 AUR CGit 下载 PKGBUILD
2. **静态分析** - 通过 regex 扫描危险模式
3. **元数据** - 获取 AUR RPC v5 包信息
4. **评分** - 根据信号计算 0-100 的风险分数
5. **AI 审查** - 分析代码结构和上下文(gemini-3.1-flash-lite)
6. **判定** - 融合静态(30%)和 AI(70%)的分数
### 风险评估
| 分数 | 风险等级 | 建议 |
|-------|-----------|-----------------|
| 0-20 | 低 | 使用安全 |
| 21-50 | 中 | 建议人工审查 |
| 51-100 | 高 | 不建议使用 |
### 安全信号
静态分析器检测:
| 信号 | 模式 | 风险权重 |
|--------|---------|-------------|
| `remote_exec` | 下载内容通过管道传递给 shell(curl/wget 管道) | 50 |
| `external_calls` | 非源码的 HTTP/HTTPS URL | 15 |
| `pkg_manager` | 调用 npm、pip、cargo、go、gem、pacman、yay | 10 |
| `orphan_adopted` | 没有活跃维护者的软件包 | 10 |
| `obfuscation` | Base64、hex、eval、openssl、printf+xxd | 30 |
| `system_mod` | 写入 /etc、/usr/lib、/opt、/boot | 30 |
| `maintainer_changed` | 检测到维护者变更 | 0 |
## 开发
### 运行测试
```
# Unit tests
pytest
# Type checking
mypy .
# Code style
ruff check .
```
### 项目结构
```
aur_checker/
__init__.py
cli.py # Command-line interface
analyzer.py # Static analysis engine
scorer.py # Risk scoring logic
ai.py # AI integration
aur_api.py # AUR RPC client
cache.py # Result caching
```
## 架构
**核心组件:**
- **CLI** - 具有多种分析模式的命令行界面
- **静态分析器** - 基于 regex 的模式检测
- **风险评分器** - 将信号聚合为单个分数
- **AI 引擎** - 集成 Google Generative AI 进行上下文分析
- **缓存** - 用于存储先前分析的本地存储
- **AUR API Client** - 获取包元数据和 PKGBUILD 文件
## 局限性
- AI 分析需要有效的 API key 和网络连接
- 静态分析使用模式匹配,可能会遗漏复杂的混淆
- 风险分数是基于启发式的,应为人工审查提供参考,而不是取代人工审查
- AI 响应取决于模型质量,并且在每次调用之间可能会有所不同
## 许可证
MIT 许可证。有关详情,请参阅 [LICENSE.md](LICENSE.md)。
**维护者:** [geniussantu1983@gmail.com](mailto:geniussantu1983@gmail.com)
**仓库:** [github.com/programmersd21/aur_checker](https://github.com/programmersd21/aur_checker)
标签:AI辅助分析, Arch Linux, AUR, Python, 云安全监控, 动态分析, 无后门, 逆向工具, 静态分析