返回资讯中心
外部精选
软件工程
#开发者实时流

Bagel 推出跨平台 CLI,可检查开发者工作站配置与密钥元数据

来源标题:Bagel is a cross‑platform CLI that inspects developer workstations

Bagel 是一款跨平台命令行工具,可扫描 macOS、Linux 和 Windows 开发者工作站,生成工具、配置及密钥元数据的结构化 JSON 报告。该工具仅采集元数据(路径、权限、时间戳、密钥类型等),不输出或写入密钥值,且为只读操作、无网络扫描。其目标是帮助组织提升供应链安全可见性,而不外泄敏感负载。

Hacker News 最新rdslw2026/11/11 · 今天24 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

Bagel 是一个跨平台 CLI,用于检查开发者工作站(macOS、Linux、Windows),并生成一份结构化报告,涵盖开发者机器上真正重要的内容——工具、配置,以及关于密钥的元数据——帮助提升组织的供应链安全,同时不窃取任何实际数据。

关于每个探测器和检测器的详细文档,请参阅 Bagel 文档站点。

想要更多?如果你需要更强大的企业级版本,能够大规模部署并收集整个开发者笔记本机群的态势信息,可以看看 BoostSecurity Developer Endpoint Protection(DEP)产品。

绝不收集任何实际数据。 Bagel 只记录元数据(路径、所有者、权限、时间戳、配置标志、密钥类型/长度/过期时间)。密钥值绝不会出现在输出中,也不会写入磁盘。

本地优先。 报告默认以 JSON 格式输出到 stdout。

最小侵入。 只读操作;不注入进程;不进行网络扫描。

透明。 每个探测器都有文档说明,并可通过配置开关控制。

为什么要运行它?

现代供应链风险往往落在开发者终端上(恶意软件包、配置不当的凭据、薄弱的密钥管理习惯)。Bagel 将可见性标准化,让安全团队能够:

Git: credential.helper=store、http.sslVerify=false、使用非标准二进制文件的自定义 core.sshCommand、危险协议、禁用 fsck。

npm: .npmrc 中的 token、strict-ssl=false、HTTP(非 HTTPS)仓库。

SSH: 无密码短语的密钥、ForwardAgent yes、StrictHostKeyChecking=no、过于宽松的文件权限。

环境与历史记录: 嵌入在环境变量、.env 文件或 shell 命令历史中的密钥。

云服务: 配置文件中的 AWS 凭据、GCP API 密钥、Azure 存储密钥。

安装

预编译二进制文件

从 GitHub Releases 下载最新版本。

Intel Mac

curl -sL https://github.com/boostsecurityio/bagel/releases/latest/download/bagel_Darwin_x86_64.tar.gz | tar xz sudo mv bagel /usr/local/bin/

Apple Silicon

curl -sL https://github.com/boostsecurityio/bagel/releases/latest/download/bagel_Darwin_arm64.tar.gz | tar xz sudo mv bagel /usr/local/bin/

Homebrew:

x86_64

curl -sL https://github.com/boostsecurityio/bagel/releases/latest/download/bagel_Linux_x86_64.tar.gz | tar xz sudo mv bagel /usr/local/bin/

ARM64

curl -sL https://github.com/boostsecurityio/bagel/releases/latest/download/bagel_Linux_arm64.tar.gz | tar xz sudo mv bagel /usr/local/bin/

Windows:

从 releases 页面下载 bagel_Windows_x86_64.zip,解压后添加到 PATH。

Invoke-WebRequest -Uri "https://github.com/boostsecurityio/bagel/releases/latest/download/bagel_Windows_x86_64.zip" -OutFile "bagel.zip" Expand-Archive -Path "bagel.zip" -DestinationPath "."

从源码构建

需要 Go 1.25 或更高版本。

git clone https://github.com/boostsecurityio/bagel.git cd bagel go build -o bagel ./cmd/bagel

验证安装

bagel version

用法

bagel scan

该命令扫描你的工作站,并以 JSON 格式将结果输出到 stdout。

标志 说明 --format, -f 输出格式:json(默认)、table --output, -o 将输出写入文件而非 stdout --strict 如果检测到任何问题,以退出码 2 退出 --no-cache 绕过文件索引缓存并强制重建 --no-progress 禁用进度条 --verbose, -v 启用详细(调试)日志 --config 配置文件路径 --disable-version-check 禁用每日一次的新版本检查(环境变量:BAGEL_DISABLE_VERSION_CHECK,配置项:disable_version_check)

示例

将报告保存到文件

bagel scan -o report.json

表格输出,便于快速查看

bagel scan -f table

CI 门禁:如果发现问题则使构建失败

bagel scan --strict

调试特定扫描

bagel scan --verbose --no-progress

配置

Bagel 使用 YAML 配置文件。它会按以下顺序查找 bagel.yaml:

version: 1 probes: git: enabled: true ssh: enabled: true npm: enabled: true env: enabled: true shell_history: enabled: true cloud: enabled: true jetbrains: enabled: true gh: enabled: true ai_credentials: enabled: true ai_chats: enabled: true privacy: redact_paths: [] exclude_env_prefixes: [] output: include_file_hashes: false include_file_content: false

所有探测器默认启用。要禁用某个探测器,将 enabled 设为 false。

默认情况下,bagel 最多每 24 小时请求一次,检查是否有新版本可用。该请求会上报当前 bagel 版本、一个持久化在平台配置目录下的匿名实例标识符(Unix 上为 ~/.config/bagel/version-check.yaml,Windows 上为 %APPDATA%\bagel\version-check.yaml),以及自上次检查以来 CLI 的调用次数。不会发送任何扫描数据、主机数据或发现结果数据。如需禁用,可使用以下任一方式:

"metadata": { "version": "0.1.0

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →