leckminartor/arch-shield
GitHub: leckminartor/arch-shield
针对 Arch Linux 生态的 AUR 供应链恶意软件防御脚本,提供多层扫描、系统加固、安装拦截与感染后的紧急恢复功能。
Stars: 0 | Forks: 0
# 🛡️ arch-shield
**Arch Linux AUR 安全加固脚本** — 保护任何基于 Arch 的系统免受 AUR 恶意软件的侵害。
[](LICENSE)
[](https://www.gnu.org/software/bash/)
[](https://archlinux.org)
[](https://github.com/leckminartor/arch-shield/releases)
**[Deutsch](README.de.md)** | **English**
## 兼容的发行版
Arch Linux · CachyOS · EndeavourOS · Manjaro · Garuda Linux · Artix Linux · 以及所有基于 Arch 的发行版
## 快速开始
```
# 下载
curl -L -o arch-shield.sh https://github.com/leckminartor/arch-shield/raw/main/arch-shield.sh
# 设置为可执行
chmod +x arch-shield.sh
# 交互式菜单
./arch-shield.sh
# 或者直接运行:Everything (Scan + Protect + Harden)
./arch-shield.sh all
# 先进行 Dry run(不做任何更改)
./arch-shield.sh --dry-run all
```
## 命令
| 命令 | 描述 |
|--------|-------------|
| `./arch-shield.sh` | 交互式菜单 |
| `./arch-shield.sh scan` | 扫描系统中的恶意软件 |
| `./arch-shield.sh protect` | 安装所有防护措施 |
| `./arch-shield.sh harden` | 内核、构建隔离与软件仓库加固 |
| `./arch-shield.sh status` | 显示防护状态 |
| `./arch-shield.sh check ` | 检查特定的 AUR 软件包 |
| `./arch-shield.sh all` | 执行所有操作:扫描 + 防护 + 加固 |
| `./arch-shield.sh emergency` | **针对已确认感染的紧急恢复** |
| `./arch-shield.sh update` | **更新威胁情报数据库** |
| `./arch-shield.sh --dry-run ` | 模拟运行(不会更改任何内容) |
| `./arch-shield.sh help` | 显示帮助 |
## 模块
该脚本包含 **7 个模块**:
1. **🔍 系统扫描** — 6 层扫描:1,935 个 IOC 软件包、静态 PKGBUILD 分析(118 条规则)、eBPF rootkit、npm/bun 缓存、systemd 持久化、pacman 日志历史记录
2. **🛡️ 安装防护** — aur-scanner、aur-malware-check、shell 集成、安装前后钩子 (hook)、每周 systemd 定时器
3. **🔧 系统加固** — eBPF 加固、构建隔离 (chroot)、软件仓库 SigLevel 验证、AUR 助手配置、防火墙状态
4. **📊 状态** — 概览所有已安装的防护措施
5. **📦 检查软件包** — 根据所有数据库检查单个 AUR 软件包
6. **🚨 紧急恢复** — 针对已确认感染的 9 步引导式恢复(快照、凭据轮换、清理、验证)
7. **🔄 威胁情报更新** — 从社区订阅源更新 IOC 数据库(git pull、HedgeDoc、Arch News)
## 安装内容
- **aur-scanner** — 包含 118 条检测规则的 PKGBUILD 安全扫描器
- **aur-malware-check** — 包含 1,935+ 个受感染软件包的社区 IOC 数据库
- **Shell 集成** — 在每次执行 `paru`/`yay` 命令前进行扫描(bash、zsh、fish、nu)
- **Pacman 安装前钩子 (Pre-Install Hook)** — 在安装前拦截恶意软件 (`AbortOnFail`)
- **Pacman 安装后钩子 (Post-Install Hook)** — 在每次安装后进行扫描
- **每周 systemd 定时器** — 每周一自动扫描并更新威胁情报
- **eBPF 加固** — 通过 sysctl 提供 rootkit 防护
- **构建隔离** — 使用 paru chroot 模式进行隔离的 AUR 构建
- **安全的 AUR 助手配置** — NewsOnUpgrade、UpgradeMenu、SaveChanges
## 扫描检查内容
1. **1,935+ 个已知的受感染软件包** — 与社区 IOC 数据库进行交叉比对
2. **静态 PKGBUILD 分析** — 118 条检测规则(反向 shell、凭据窃取、eBPF Rootkit、挖矿程序、代码混淆等)
3. **eBPF rootkit 痕迹** — `/sys/fs/bpf/hidden_*` 映射
4. **npm/bun 缓存** — 恶意软件包(atomic-lockfile、js-digest、lockfile-js)
5. **systemd 持久化** — 包含 `Restart=always` 的可疑服务
6. **pacman 日志历史记录** — 在攻击窗口期间发生的安装行为
## 紧急恢复
如果确认受到感染,`./arch-shield.sh emergency` 将引导您完成以下 9 个步骤:
1. 记录系统状态(取证快照)
2. 轮换凭据(GitHub、npm、SSH、浏览器等)
3. 移除受感染的软件包
4. 清除持久化项(systemd、cron、autostart、bashrc)
5. 移除 eBPF rootkit(→ 建议重新安装系统)
6. 删除 /tmp、/dev/shm 中的可疑文件
7. 清理 AUR 构建缓存和 npm/bun 缓存
8. 重新加载 systemd
9. 验证扫描 — 系统真的干净了吗?
## 环境要求
- 基于 Arch 的 Linux (x86_64)
- `bash` 4+
- `python3`(用于 aur-malware-check,可选)
- `git`(用于下载 aur-malware-check,可选)
- `sudo` 或 `doas`(用于系统钩子和 sysctl)
- 一个 AUR 助手(`paru`、`yay`、`pikaur`、`trizen`)— 推荐
该脚本会自动检测:发行版、AUR 助手、shell、sudo 可用性以及缺失的工具。
## 代码审查
此脚本经过了两个 AI 模型的代码审查:
- **qwen3-coder:480b** — Bash/安全代码审查(语法、引号使用、竞态条件、健壮性)
- **deepseek-v4-pro** — 安全架构审查(攻击向量、构建隔离、软件仓库安全)
它已在 Distrobox Arch 容器环境中进行了测试(扫描、带有模拟恶意软件的紧急恢复)。
## 来源
- [Arch Linux 安全公告](https://archlinux.org/news/active-aur-malicious-packages-incident/)
- [aur-malware-check](https://github.com/lenucksi/aur-malware-check)
- [aur-scanner](https://github.com/KiefStudioMA/ks-aur-scanner)
- [BleepingComputer 报告](https://www.bleepingcomputer.com/news/security/over-400-arch-linux-packages-compromised-to-push-rootkit-infostealer/)
- [Truesec 分析](https://www.truesec.com/hub/blog/supply-chain-attack-compromising-arch-linux-aur-packages-infostealer-rootkit)
- [CloudSecurityAlliance eBPF Rootkit 分析](https://labs.cloudsecurityalliance.org/research/csa-research-note-aur-supply-chain-ebpf-rootkit-20260614-csa/)
## 免责声明
本项目为自愿提供,不提供任何担保。
**不承担任何责任** — 无论是因使用此脚本而导致的直接或间接损害、数据丢失、系统故障还是安全事件,概不负责。
- ❌ **不保证** 100% 防御所有威胁
- ❌ **不保证** 在所有环境中都能无错误运行
- ❌ **不对**误报或漏报负责
- ❌ **不对**系统、数据或凭据的损坏负责
**使用风险由您自己承担。**
此脚本是您自身的谨慎操作、手动 PKGBUILD 审查以及既定安全实践的补充,而非替代品。AUR 是一个非官方的、由社区维护的软件仓库。唯一安全的使用方法是在安装前审查 `PKGBUILD` 和 `.install` 文件中的每一行代码。
## 捐赠
如果这个脚本对您有帮助,我希望能得到您的捐赠:
[](https://paypal.me/klausminator)
## 许可证
GPL-3.0-or-later — 请参阅 [LICENSE](LICENSE)
标签:Arch Linux, DNS 反向解析, Docker镜像, 子域名枚举, 安全基线加固, 应用安全, 系统安全, 系统运维, 网络信息收集, 防恶意软件