Hugging Face 与 TruffleHog 合作扫描秘密信息

发布日期:2024年9月4日
在 GitHub 上更新

我们很高兴地宣布与 Truffle Security 建立合作伙伴关系并进行整合,将 TruffleHog 强大的秘密扫描功能引入我们的平台,作为我们持续安全承诺的一部分。

TruffleHog 是一款开源工具,用于检测和验证代码中的秘密信息泄露。它拥有针对流行 SaaS 和云提供商的广泛检测器,可扫描文件和存储库中的敏感信息,如凭据、令牌和加密密钥。

意外地将秘密信息提交到代码存储库可能会带来严重的后果。通过扫描存储库中的秘密信息,TruffleHog 帮助开发人员在敏感信息成为问题之前捕获并删除这些信息,从而保护数据并防止代价高昂的安全事件。

为了打击公共和私人存储库中的秘密信息泄露,我们与 TruffleHog 团队在两个不同的方面展开合作:通过 TruffleHog 增强我们的自动化扫描流程在 TruffleHog 中创建原生的 Hugging Face 扫描器

通过 TruffleHog 增强我们的自动化扫描流程

在 Hugging Face,我们致力于保护用户的敏感信息。这就是为什么我们实施了自动化安全扫描流程,该流程扫描所有存储库和提交。我们已将 TruffleHog 纳入我们的自动化扫描流程,这意味着现在有三种类型的扫描:

  • 恶意软件扫描:使用 ClamAV 扫描已知的恶意软件签名
  • pickle 扫描:使用 picklescan 扫描 pickle 文件中的恶意可执行代码
  • 秘密信息扫描:使用 TruffleHog 扫描密码、令牌和 API 密钥

在每次推送到存储库时,我们都会在新文件或修改文件上运行 `trufflehog filesystem` 命令,以扫描潜在的秘密信息。如果检测到并验证了秘密信息,我们将通过电子邮件通知用户,以便他们采取纠正措施。

已验证的秘密信息是指已确认可对其各自提供商进行身份验证的秘密信息。但是,请注意,未验证的秘密信息不一定无害或无效:验证可能由于技术原因而失败,例如提供商停机的情况。

即使我们为您运行 TruffleHog,您自己运行 TruffleHog 扫描您的存储库也始终是有价值的。例如,您可能已经轮换了泄露的秘密信息,并希望确保它们显示为“未验证”,或者您想手动检查未验证的秘密信息是否仍然构成威胁。

一旦支持 LFS,我们将最终迁移到 `trufflehog huggingface` 命令,即原生的 Hugging Face 扫描器。

TruffleHog 原生 Hugging Face 扫描器

在 TruffleHog 中创建原生 Hugging Face 扫描器的目标是让我们的用户(以及保护他们的安全团队)能够主动扫描自己的账户数据是否存在泄露的秘密信息。

TruffleHog 新的开源 Hugging Face 集成可以扫描模型、数据集和 Spaces,以及任何相关的 PR 或讨论。唯一的限制是 TruffleHog 目前不会扫描存储在 LFS 中的文件。他们的团队正在寻求尽快解决所有 `git` 源的这个问题。

要使用 TruffleHog 扫描您或您组织的 Hugging Face 模型、数据集和 Spaces 中的秘密信息,请运行以下命令:

# For your user
trufflehog huggingface --user <username>

# For your organization
trufflehog huggingface --org <orgname>

# Or both
trufflehog huggingface --user <username> --org <orgname>

您可以选择包含 (`--include-discussions`) 和 PRs (`--include-prs`) 标志来扫描 Hugging Face 讨论和 PR 评论。

如果您只想扫描一个模型、数据集或 Space,TruffleHog 为每个都有特定的标志。

# Scan one model
trufflehog huggingface --model <model_id>

# Scan one dataset
trufflehog huggingface --dataset <dataset_id>

# Scan one Space
trufflehog huggingface --space <space_id>

如果您需要传入身份验证令牌,可以使用 --token 标志或设置 HUGGINGFACE_TOKEN 环境变量。

以下是 TruffleHog 在 mcpotato/42-eicar-street 上运行时输出的示例:

trufflehog huggingface --model mcpotato/42-eicar-street
🐷🔑🐷  TruffleHog. Unearth your secrets. 🐷🔑🐷

2024-09-02T16:39:30+02:00	info-0	trufflehog	running source	{"source_manager_worker_id": "3KRwu", "with_units": false, "target_count": 0, "source_manager_units_configurable": true}
2024-09-02T16:39:30+02:00	info-0	trufflehog	Completed enumeration	{"num_models": 1, "num_spaces": 0, "num_datasets": 0}
2024-09-02T16:39:32+02:00	info-0	trufflehog	scanning repo	{"source_manager_worker_id": "3KRwu", "model": "https://huggingface.co/mcpotato/42-eicar-street.git", "repo": "https://huggingface.co/mcpotato/42-eicar-street.git"}
Found unverified result 🐷🔑❓
Detector Type: HuggingFace
Decoder Type: PLAIN
Raw result: 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
Commit: 9cb322a7c2b4ec7c9f18045f0fa05015b831f256
Email: Luc Georges <luc.sydney.georges@gmail.com>
File: token_leak.yml
Line: 1
Link: https://huggingface.co/mcpotato/42-eicar-street/blob/9cb322a7c2b4ec7c9f18045f0fa05015b831f256/token_leak.yml#L1
Repository: https://huggingface.co/mcpotato/42-eicar-street.git
Resource_type: model
Timestamp: 2024-06-17 13:11:50 +0000
2024-09-02T16:39:32+02:00	info-0	trufflehog	finished scanning	{"chunks": 19, "bytes": 2933, "verified_secrets": 0, "unverified_secrets": 1, "scan_duration": "2.176551292s", "trufflehog_version": "3.81.10"}

感谢 TruffleHog 团队提供如此出色的工具来保障我们社区的安全!敬请期待更多功能,我们将继续合作,让 Hub 对每个人都更安全。

社区

注册登录 发表评论