PicasoTheDeal/AUR-scanner
GitHub: PicasoTheDeal/AUR-scanner
一款零依赖的 Arch Linux AUR 包离线安全扫描工具,通过静态分析检测 PKGBUILD 脚本中的恶意代码模式。
Stars: 10 | Forks: 1
# AUR-scanner
一款轻量级的离线静态分析工具,用于扫描本地 ALPM 元数据和 AUR helper 构建缓存,以检测受感染的软件包和可疑的代码模式。
## 功能特性
- **软件包验证**:通过离线威胁清单对本地外部软件包进行交叉比对。
- **深度缓存扫描**:全面扫描 `yay`、`paru`、`aurutils` 和 `/var/cache/aur` 目录。
- **静态内容分析**:采用优化的正则表达式匹配,捕获 `PKGBUILD` 和 `install` 脚本中常见的混淆技术和带外执行钩子。
- **零网络足迹**:完全在本地运行,不包含任何遥测或动态网络查询。
## 追踪的启发式特征
- 远程执行管道(通过管道将 `curl`、`wget` 传递给 `sh`、`bash`、`node`、`python`)
- Base64 编码管道(`base64 -d`、`openssl enc -base64`、`echo | base64`)
- 直接的交互式反向 shell 和网络套接字(`/dev/tcp/`、`/dev/udp/`)
- 可疑的 helper 或原生网络工具(`netcat`、`nc`、`socat`)
- 十六进制编码的字符串布局混淆(`\xHEX`)
- 未授权的构建时软件包执行(`npm install`)
## 免责声明与局限性
`aur-scanner` 是一款静态签名和启发式审计工具,**而非**内核级的 EDR 或完整的防病毒解决方案。
- **绕过检测**:静态正则表达式追踪可能会被高级的 runtime 混淆、编译二进制文件(`.so` 或可执行文件)内部的动态 payload 获取,或自定义加密(例如,非标准的 OpenSSL 标志)所绕过。它旨在捕获易于识别的显著目标和粗糙的、未经混淆的脚本注入。
- **误报**:由于它会标记结构性异常,因此使用复杂 shell 循环或原始十六进制数组的良性构建脚本也可能触发警报。应对检查结果进行人工审计。
## 要求
- Python 3.x
- Arch Linux 环境(`pacman` 二进制文件)
## 安装与使用
1. 克隆仓库:
git clone https://github.com/PicasoTheDealer/AUR-scanner.git
cd aur-scanner
2. 将您已知的受感染软件包名称列表放置在名为 `packages.txt` 的文件中(每行一个软件包名称),并与脚本位于同一目录下。
3. 执行扫描:
python3 aur-audit.py
## 输出目标与判定结果
[+] Found nothing (Green, Exit Code 0):未匹配到任何签名。环境符合当前的基线配置阈值。
[!] [Path]: Trigger [Pattern] (Red, Exit Code 1):检测到代码层面的异常。
**注意**:如果在已安装的软件包元数据或本地缓存中确认了启发式触发器,请假定主机环境已遭到入侵。如果在构建/安装阶段发生了带外执行,标准的 pacman -R 卸载操作可能是不够的。建议立即进行取证分类或重新安装系统。
## 鸣谢与感谢
- Gemini (Google AI)
- EndeavourOS、CachyOS 和 Arch Linux 社区的成员,感谢他们提供的技术反馈
标签:Arch Linux, DNS 反向解析, Python, 云安全监控, 威胁情报, 开发者工具, 无后门, 网络信息收集, 逆向工具, 静态分析