programmersd21/aur_checker

GitHub: programmersd21/aur_checker

结合静态分析和 AI 审查,对 Arch Linux AUR 的 PKGBUILD 文件进行安全风险评分的命令行工具。

Stars: 6 | Forks: 0

# aur_checker ![演示](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/9ef41ad949164114.png) 一个用于分析 Arch Linux AUR PKGBUILD 文件以识别安全风险的命令行工具。结合使用静态分析和 AI 驱动的检查。 [![构建状态](https://img.shields.io/github/actions/workflow/status/programmersd21/aur_checker/ci.yml?style=for-the-badge)](https://github.com/programmersd21/aur_checker/actions) [![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](LICENSE.md) [![Python 3.10+](https://img.shields.io/badge/Python-3.10+-blue?style=for-the-badge&logo=python)](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, 云安全监控, 动态分析, 无后门, 逆向工具, 静态分析