leckminartor/arch-shield

GitHub: leckminartor/arch-shield

针对 Arch Linux 生态的 AUR 供应链恶意软件防御脚本,提供多层扫描、系统加固、安装拦截与感染后的紧急恢复功能。

Stars: 0 | Forks: 0

# 🛡️ arch-shield **Arch Linux AUR 安全加固脚本** — 保护任何基于 Arch 的系统免受 AUR 恶意软件的侵害。 [![许可证](https://img.shields.io/badge/license-GPL--3.0-blue.svg)](LICENSE) [![Bash](https://img.shields.io/badge/bash-4%2B-green.svg)](https://www.gnu.org/software/bash/) [![Arch Linux](https://img.shields.io/badge/Arch%20Linux-supported-blue.svg)](https://archlinux.org) [![版本](https://img.shields.io/badge/version-1.4.3-green.svg)](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://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/klausminator) ## 许可证 GPL-3.0-or-later — 请参阅 [LICENSE](LICENSE)
标签:Arch Linux, DNS 反向解析, Docker镜像, 子域名枚举, 安全基线加固, 应用安全, 系统安全, 系统运维, 网络信息收集, 防恶意软件