返回更新列表
新发布Jul 28, 2026

oversight v0.5.8

一个轻量级的安全审计器与沙箱,专为 Shell 脚本设计。Oversight 将静态分析引擎(Rust)与动态强制机制(Linux Landlock)相结合,确保您的系统免受恶意脚本的侵害。

分享

Oversight (v0.5.8)

GitHub stars Discord License Rust

Oversight 是一款基于终端的安全情报工具,旨在审计 shell 脚本和命令,防止它们在接触你的系统之前造成危害。它通过提供对本地文件和通过 Raw URL 获取的远程脚本的高速交互式分析,弥合了"盲目信任"与"手动审计"之间的鸿沟。

Oversight

Oversight Demo

实时 AUR 更新

Oversight Live Aur Update

截图 1

Oversight TUI 界面运行中

截图 2

Oversight TUI 界面运行中

使命

大多数系统入侵都源于盲目信任,例如执行未经验证的软件包升级或运行原始安装脚本。Oversight 能让你清晰洞察这些缓冲区域,标记恶意模式并以通俗易懂的语言解释安全风险,使你在确认安装之前能够做出明智的决策。

功能特性

  • 动态多流标签页布局:自动实时解析统一的 git 流头部。当批量更新发布时,它会隔离合并后的补丁流,并为每个软件包生成专用的可读标签页,同时从本地构建目录中拉取并审计附带的 .install 脚本和 .patch 文件。
  • 启发式熵引擎:实现香农熵计算,用于识别传统正则表达式扫描器无法发现的混淆载荷、打包数据和隐藏字符串。
  • 恶意生命周期追踪:高级行为分析,将脚本中的相关事件关联起来,例如典型的木马安装程序所具备的 获取 -> 权限变更 -> 执行 链条。
  • 安全热力图侧边栏:一条垂直轨道,实时提供活动文件中威胁分布的视觉概览,确保精确的坐标指示器能针对每个不同的标签页缓冲区准确缩放。
  • 反取证与持久化检测:监控隐蔽行为,包括自删除(rm $0)、静默管道(> /dev/null)、仅内存执行路径(/dev/shm)以及重载钩子(crontabsystemctl)。
  • 加权风险评分:实现 0 到 100 的安全指数,基于扁平宏观指标将流分类为"干净"、"谨慎"或"危险",避免风险评分膨胀。
  • 全局缓解开关:允许用户通过 TUI 中的单个开关即时抑制当前发现。此操作会通过注释掉标记的代码块来视觉净化视图,并实时重新计算全局风险评分指数。
  • 干净流分页器模式:移除空视口块。当流通过分析且零标记时,完整终端布局仍保持打开状态,作为功能齐全的分页器使用,允许进行标准的逐行手动代码审查。
  • 动态规则引擎:模式被外部化到独立的规则模块中,允许在不同模式签名之间进行模块化更新,而不会破坏 TUI 解析循环。
  • 远程获取引擎:通过仅内存分析,安全地直接审计来自 GitHub、Gist 或原始 URL 的脚本。
  • 教育性审计:每个安全标记都包含详细说明和外部参考资料,帮助用户学习识别恶意脚本模式。
  • 漏洞情报:集成使用 OSV.dev API 对已知 CVE 进行实时扫描,在检测到受支持的软件包安装命令时自动触发。

依赖项

Oversight 使用 Rust 构建,以实现性能和二进制隔离。编译需要以下原生组件:

  • Rust 工具链cargorustc(2021 版)用于编译原生引擎。
  • OpenSSLreqwest 建立安全远程 TLS/SSL 获取操作所需的系统库。
  • 核心 Cratesratatuicrosstermtokioreqwestclapregex

安装与设置

  1. 通过 AUR(推荐用于 Arch Linux) 稳定版本维护在 AUR 上。使用你偏好的辅助工具安装:

yay -S oversight-git

  1. 或手动构建
git clone [https://aur.archlinux.org/oversight-git.git](https://aur.archlinux.org/oversight-git.git)
cd oversight-git
makepkg -si
  1. 从源码构建:

git clone https://github.com/Rakosn1cek/oversight.git cd oversight

  1. 运行自动安装程序: 安装程序负责编译、将二进制文件移动到 ~/.local/bin,并将必要的钩子注入到你的 shell 配置中(.zshrc、.bashrc 或 config.fish)。
chmod +x install.sh
./install.sh
  1. 重新加载你的 shell:

source ~/.zshrc 或你相应的 shell 配置


文件与位置

  • 二进制文件:~/.local/bin/oversight
  • 规则数据库:~/.local/share/oversight/rules.json(遵循 $XDG_DATA_HOME)
  • Shell 钩子:~/.local/share/oversight/oversight.[zsh|bash|fish]

使用方法

  • 审计本地脚本oversight ./install.sh
  • 审计远程 URLoversight https://raw.githubusercontent.com/...
  • 审计本地配置文件oversight ~/.local/share/oversight/rules.json
  • 实时保护:自动拦截独立命令(如 curl https://...)或危险模式(如 rm -rf /),提供多选项分流菜单,并在执行前深度检查下游 AUR 缓存配置文件。

Shell 配置集成

要将 Oversight 永久部署为你的主要文本和升级分页器,请将以下任一配置规则追加到你的 shell 配置文件中(例如 ~/.zshrc~/.bashrc~/.config/fish/config.fish):

选项 A:专用 AUR 辅助工具集成(定向)

强制你的辅助工具专门为软件包升级使用 Oversight,而不影响其他系统命令:

对于 yay(~/.zshrc 或 ~/.bashrc)alias yay="yay --diffpager oversight"

对于 paru(~/.config/paru/paru.conf): 将以下行添加到你的 ~/.config/paru/paru.conf。你必须包含 CombinedUpgrade 选项,否则 paru 会在将文本传递给 Oversight 之前剥离 ANSI 颜色代码,导致你看到黑白文本:

[options]
Pager = oversight
CombinedUpgrade

对于其他辅助工具(如 Shelly) 如果你使用不同的辅助工具,你需要通过 AUDIT_HELPER 变量告诉 Oversight 缓存文件的位置。例如,你可以这样运行:

AUDIT_HELPER=shelly shelly -Sua | oversight

或者,你可以在 shell 配置文件中全局导出辅助工具变量,以便 Oversight 始终知道要检查哪个缓存路径:

export AUDIT_HELPER="shelly"

选项 B:全局系统分页器环境(通用)

此设置将 Oversight 注册为你的默认系统文本分页器。这意味着软件包、手册页和 git 流将自动在界面内打开。

将以下行添加到你的 ~/.zshrc 或 ~/.bashrc:

export PAGER="oversight"
export MANPAGER="oversight"

如果你的系统配置已将 MANPAGER 设置为 less 或其他工具,则第二行是必需的。


全局分页器副作用参考

  • 当通过将 Oversight 导出为系统主要文本查看器来全局部署时,引擎会拦截所有经过终端分页机制的流数据。
  • 虽然系统能安全处理这些输入,但你会注意到日常终端操作中的特定行为。
  • 运行完整系统升级时,会先处理官方仓库镜像,然后才到达 AUR 队列。由于官方二进制文件缺乏 Git 结构路径或缓存脚本,Oversight 会自动回退到扁平文本缓冲区。界面会渲染单个"静态分析通过"发现行,并将你的方向键映射为像标准文本分页器一样逐行垂直滚动文本事务列表。
  • 查看命令参考(如 man pacman)会将指令手册直接重定向到引擎中。文本解析为干净流,允许你使用标准视口热键在统一 TUI 框架内查看文档。
  • 本地仓库中的核心命令(如 git loggit diff)会通过静态规则数据库。如果提交包含匹配的签名模式,则会触发引擎警报;否则,会在主窗格中干净地呈现标准代码审查。
  • 内部解析逻辑依赖严格的统一头部钩子来分配多个软件包标签页。如果传入流不包含这些特定的缓存令牌(例如普通手册页或仓库镜像),则会完全绕过多标签页布局,以防止终端工作区碎片化。

快捷键

  • 上 / 下方向键:随时在左侧面板的发现项中导航,确保列表选择永远不会被卡住。
  • PageUp / PageDown 键:独立于列表选择,逐行平滑滚动中央代码视口。
  • Tab 键:在活动代码流段之间向前循环切换焦点,从合并的补丁流直接跳转到各个 PKGBUILD 源标签页。
  • 数字键(0-9):即时跳转到特定的标签页索引布局。
  • 左方向键:立即将视口垂直滚动坐标偏移重置回顶部。
  • [S] 键:切换全局抑制,即时注释掉活动选择块中的标记代码块,并在一次操作中重新平衡风险参数。
  • [Q] 或 Esc:安全关闭界面,并将执行控制权交还给终端进程管道。

注意:Oversight 是一款咨询工具。虽然它使用强大的正则表达式模式匹配,但没有任何安全工具是 100% 万无一失的。请始终将"最终裁决"作为参考,如果你对某个来源不确定,请手动审查高亮显示的代码。

注意2:Oversight 仍处于积极开发阶段;因此,现阶段对其功能或系统影响不作任何保证。

支持与贡献

如果你愿意支持或为项目做出贡献,我们非常欢迎。

如果你想讨论或询问有关 Oversight 的问题,请加入我的 Discord 服务器 Rakosn1cek <- 这是可选的,并非强制要求。

你也可以开启一个 Issue 或在 Discussions 中留言。

许可证

MIT © 2026 Rakosn1cek。任何再分发或衍生作品均需注明出处。

分类