Skip to content

Repository files navigation

计算安全小助手 · ComputeSec

ComputeSec 图标

一个基于 GTK4 / libadwaita / Python 的 Linux 桌面安全评估工具。它会读取你的系统状态,与安全基线对比,用通俗的语言解释每一项检查的意义与缺失的危害,并给出可以直接复制粘贴的修复方法。做得好的地方会用绿色告诉你:继续保持!🤗

License: GPL v3

[🇨🇳 中文] • 🇺🇸 English🌐 官方网站📦 获取🐛 报告问题

Screenshot


功能页面

1. 仪表盘

  • 核心内容:综合评分、四大板块卡片、待办摘要。

2. HSI 固件安全

  • 状态获取:通过 fwupd D-Bus(或 fwupdmgr security)获取 Host Security ID (HSI) 检测结果。
  • 风险解读:逐项解释各项检测的含义以及未开启/缺失时的安全危害。
  • 修复指引(“您可以修复”栏目)
    • “操作系统内”“固件设置中” 分组提供具体操作步骤。
    • 涵盖要点:IOMMU、Kernel Lockdown、加密 swap、Secure Boot、TPM、s2idle 等。

3. 内核加固

  • 状态读取与对比
    • 读取 /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 的最大值。

4. 硬件品牌

  • 厂商识别:读取 DMI / 设备树识别硬件厂商。
  • 信誉库对照:对比内置的厂商安全信誉库(详细记载了联想 Superfish/LSE、华硕 ShadowHammer、MSI Boot Guard 私钥泄漏、技嘉 UEFI 后门式更新器、戴尔 eDellRoot 等历史事件)。
  • 安全建议:对存在安全污点的品牌,提示建议不要用于高安全性计算环境。

5. 使用习惯

  • 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 fwupd
git 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   # 移除

方式二:Flatpak

从 Release 安装

Releases 下载对应架构的 .flatpak

flatpak install --user ./ComputeSec-x86_64.flatpak
flatpak run uk._92li.lingyicute.ComputeSec

本地构建

flatpak 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

Flatpak 权限说明

本工具需要读取宿主机信息,因此请求了以下权限(可用 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_bitsvm.mmap_rnd_compat_bits 对应的 /proc/sys 文件权限是 0600 root:root;在 Flatpak 沙箱内还有更多条目不可见。

因此 ComputeSec 在启动时会弹出一个分步向导:

  1. 每一步给出一条只读命令(如 sudo sysctl -a),可一键复制;
  2. 您在自己的终端里执行并确认输出;
  3. 复制输出后回到窗口点击「我已复制结果」——程序直接从剪贴板读取并解析,无需粘贴框。

采集结果只保存在 ~/.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=rwrhgbquietvconsole.keymap 等机器专属启动配置项不会被评估,请勿照搬他人的 root=UUID=...
  • 部分加固参数有微小副作用(例如 module.sig_enforce=1 会阻止 NVIDIA 私有驱动加载,ia32_emulation=0 会让 Steam/Wine 无法运行,mitigations=auto,nosmt 会关闭超线程),页面中已逐项标注 ⚠。建议先在 GRUB 菜单按 e 临时添加试运行一次。

Important

出于安全性上的考虑,梨不建议您使用 NVIDIA 闭源驱动和闭源内核模块,也不建议您使用 Wine 运行来源未知的 Windows 程序。

  • 厂商信誉信息来自公开报道与 CVE 记录,仅供参考。

🗂️ License

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.

About

A Linux desktop security assessment tool.

Resources

Stars

11 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages