一个基于 GTK4 / libadwaita / Python 的 Linux 桌面安全评估工具。它会读取你的系统状态,与安全基线对比,用通俗的语言解释每一项检查的意义与缺失的危害,并给出可以直接复制粘贴的修复方法。做得好的地方会用绿色告诉你:继续保持!🤗
[🇨🇳 中文] • 🇺🇸 English • 🌐 官方网站 • 📦 获取 • 🐛 报告问题
- 核心内容:综合评分、四大板块卡片、待办摘要。
- 状态获取:通过 fwupd D-Bus(或
fwupdmgr security)获取 Host Security ID (HSI) 检测结果。 - 风险解读:逐项解释各项检测的含义以及未开启/缺失时的安全危害。
- 修复指引(“您可以修复”栏目):
- 按 “操作系统内” 与 “固件设置中” 分组提供具体操作步骤。
- 涵盖要点:IOMMU、Kernel Lockdown、加密 swap、Secure Boot、TPM、s2idle 等。
- 状态读取与对比:
- 读取
/proc/cmdline与/proc/sys(等价于sysctl -a)。 - 对于仅 root 可读的条目(
vm.mmap_rnd_bits等),通过「数据采集向导」由您粘贴sudo sysctl -a的结果补全;未提供时该项显示为「无法读取」并不计入评分。 - 程序会根据您的当前架构,分别与内置 amd64 / aarch64 推荐 kargs 列表及 sysctl 加固列表进行对比。
- 读取
- 快速修复与指引:
- 支持一键复制缺失参数。
- 提供
grubby/ GRUB / systemd-boot / rpm-ostree 的配置方法。 - 提供
/etc/sysctl.d配置文件生成与设置指引。
- 特殊架构提示:在 aarch64 平台上,提示手动探索
vm.mmap_rnd_bits的最大值。
- 厂商识别:读取 DMI / 设备树识别硬件厂商。
- 信誉库对照:对比内置的厂商安全信誉库(详细记载了联想 Superfish/LSE、华硕 ShadowHammer、MSI Boot Guard 私钥泄漏、技嘉 UEFI 后门式更新器、戴尔 eDellRoot 等历史事件)。
- 安全建议:对存在安全污点的品牌,提示建议不要用于高安全性计算环境。
- Flatpak 生态评估:
- 统计应用数量(自动排除运行时与桌面环境自带包)。
- 数量不足 5 个时建议多使用 Flatpak。
- 推荐使用梨的 harden-flatpak 项目,默认拒绝所有 Flatpak 权限,并辅以 Flatseal 进行权限加固。
- 运行时间提醒:检测到系统
uptime超过一天时,提醒进行更新和重启。 - 外设安全检测:检测是否存在 2.4G 无线接收器,提示潜在的按键嗅探风险。
- 环境隔离检测:检测是否存在 NTFS 分区或 Windows 系统安装(提示不可审计、可能污染 Linux 环境)。
依赖:Python ≥ 3.9、PyGObject、GTK 4、libadwaita ≥ 1.4(Fedora 39+ / Ubuntu 24.04+ / Debian 13+ / Arch),以及 fwupd(用于 HSI)。
# Fedora
sudo dnf install python3-gobject gtk4 libadwaita fwupd
# Debian / Ubuntu
sudo apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 fwupd
# Arch
sudo pacman -S python-gobject gtk4 libadwaita fwupdgit clone https://github.com/lingyicute/ComputeSec.git
cd ComputeSec
python3 run.py想让它出现在应用菜单里、并让任务栏/Dock 正确显示图标(Wayland 下需要 .desktop 文件与 App ID 匹配):
python3 run.py --install # 安装 .desktop 与 SVG 图标到 ~/.local/share
python3 run.py --uninstall # 移除在 Releases 下载对应架构的 .flatpak:
flatpak install --user ./ComputeSec-x86_64.flatpak
flatpak run uk._92li.lingyicute.ComputeSecflatpak install flathub org.gnome.Platform//50 org.gnome.Sdk//50
flatpak-builder --user --install --force-clean build-dir uk._92li.lingyicute.ComputeSec.json
flatpak run uk._92li.lingyicute.ComputeSec本工具需要读取宿主机信息,因此请求了以下权限(可用 Flatseal 随时收回,对应功能会显示“无法获取”):
| 权限 | 用途 |
|---|---|
--system-talk-name=org.freedesktop.fwupd |
通过 D-Bus 读取 HSI 结果 |
--system-talk-name=org.freedesktop.hostname1 |
通过 D-Bus 读取宿主机的发行版名称、内核版本与机型(沙箱内 /etc/os-release 是 runtime 的字段) |
--filesystem=/var/lib/flatpak:ro、~/.local/share/flatpak:ro |
统计已安装的 Flatpak 应用 |
--filesystem=/run/udev:ro、/boot/efi:ro、/efi:ro |
检测 NTFS 分区与 Windows 引导器 |
/proc/cmdline、/proc/sys、/sys/class/dmi、/sys/bus/usb 在沙箱内默认可读,无需额外权限。
从 v1.0.3 开始,本工具已不再请求
--talk-name=org.freedesktop.Flatpak。 该权限允许通过flatpak-spawn --host在宿主机上以您的身份执行任意命令,等同于沙箱逃逸, 对一个只读检测工具来说过于侵入。需要更高权限才能获得的信息,改由「数据采集向导」引导您自己执行只读命令并粘贴结果。
有一部分信息普通用户权限读不到,例如 vm.mmap_rnd_bits 与 vm.mmap_rnd_compat_bits
对应的 /proc/sys 文件权限是 0600 root:root;在 Flatpak 沙箱内还有更多条目不可见。
因此 ComputeSec 在启动时会弹出一个分步向导:
- 每一步给出一条只读命令(如
sudo sysctl -a),可一键复制; - 您在自己的终端里执行并确认输出;
- 复制输出后回到窗口点击「我已复制结果」——程序直接从剪贴板读取并解析,无需粘贴框。
采集结果只保存在 ~/.local/share/computesec/hostdata.json,并记录 boot_id:
重启后自动失效(因为 sysctl 可能已改变),同一次开机内不会重复打扰您。
任何一步都可以跳过,跳过的项目会显示为「无法读取」且不计入评分;
随时可以从主菜单的「重新采集系统数据」(Ctrl+D)重新运行向导。
run.py 启动器(克隆运行 / Flatpak 内为 /app/bin/computesec)
computesec/
├── main.py 应用与窗口、导航、后台检测线程
├── ui.py 五个页面的构建
├── checks.py 数据采集与比对(fwupd、cmdline、sysctl、DMI、Flatpak、uptime、USB、NTFS)
├── wizard.py 数据采集向导(分步执行只读命令 + 读取剪贴板)
├── hostdata.py 用户协助采集的数据:解析、校验、缓存(按 boot_id 失效)
├── hostinfo.py 宿主机身份信息(D-Bus org.freedesktop.hostname1)
└── data.py 知识库:HSI 说明、内核参数、sysctl、厂商信誉
tests/ 单元测试(pytest,不依赖 GTK/D-Bus,运行:python -m pytest)
pyproject.toml pytest / ruff 工程配置
data/
└── 图标和构建信息
uk._92li.lingyicute.ComputeSec.json Flatpak 清单
.github/workflows/build.yml Build Workflow
- 内核参数列表中的
root=、rootflags=、rw、rhgb、quiet、vconsole.keymap等机器专属启动配置项不会被评估,请勿照搬他人的root=UUID=...。 - 部分加固参数有微小副作用(例如
module.sig_enforce=1会阻止 NVIDIA 私有驱动加载,ia32_emulation=0会让 Steam/Wine 无法运行,mitigations=auto,nosmt会关闭超线程),页面中已逐项标注 ⚠。建议先在 GRUB 菜单按e临时添加试运行一次。
Important
出于安全性上的考虑,梨不建议您使用 NVIDIA 闭源驱动和闭源内核模块,也不建议您使用 Wine 运行来源未知的 Windows 程序。
- 厂商信誉信息来自公开报道与 CVE 记录,仅供参考。
This program is released under the GNU General Public License v3.0 (GPLv3).
Copyright © 2025-2026 lingyicute.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses.
