代码分享之前,先用假数据练一次凭据检查

把代码分享出去前,值得先确认有没有把服务密码或访问令牌写进文件。这些用来证明访问权限的值,统称为"凭据"。先别拿真实密码测试,用一份无效假数据把流程练通,才容易知道工具到底在检查什么。

我们用开源工具 Trivy v0.76.1 做了一个小练习:一份假样例命中1项,替换成另一份样例后复扫0项。这个结果只验证自定义练习规则与操作流程,没有验证识别所有真实凭据的准确率。

环境先说清楚

本期实际运行环境是 macOS Apple Silicon。CPU就够,不用GPU、Docker、模型API或服务账号。下文命令针对macOS的终端;其他系统请从官方发行版选择对应架构,我们整理的Windows/Linux入口未实测。

首次从GitHub下载程序需要网络。本次只用文件内凭据扫描,不做漏洞检查,不需要漏洞数据库;这不代表Trivy全部功能都不需要数据库或联网。

1. 从固定官方下载并核对文件

先新建一个只放练习内容的文件夹,进入它。不要把真实密钥放进去。以下下载地址固定为macOS Apple Silicon的v0.76.1,其他架构不能照用。

bash 复制代码
mkdir -p repogo-trivy-practice
cd repogo-trivy-practice
curl --fail --location \
  https://github.com/aquasecurity/trivy/releases/download/v0.76.1/trivy_0.76.1_macOS-ARM64.tar.gz \
  -o trivy_0.76.1_macOS-ARM64.tar.gz
shasum -a 256 trivy_0.76.1_macOS-ARM64.tar.gz

输出的SHA-256应为下面这一串。SHA-256可以理解为文件内容的指纹,用来确认拿到的文件与预期一致;它不等于软件安全审计。

text 复制代码
11a9b6cd2752011b54f01ea4bd0dbfa9f0c41dc6538d5a3f9d23955f471bf4e5

与固定release的官方trivy_0.76.1_checksums.txt一并核对。一致后再执行:

bash 复制代码
tar -xzf trivy_0.76.1_macOS-ARM64.tar.gz -O trivy > trivy
chmod 700 trivy
./trivy --version

成功标志是Version: 0.76.1。不一致就停止,重新从固定官方release取得文件;不要改掉校验值凑成功,也不要关闭系统防护。

2. 创建两份完全无效的样例

bash 复制代码
mkdir -p practice reports
cat > practice/demo.txt <<'EOF'
REPOGO_DEMO_TOKEN=REPOGO_PRACTICE_ONLY_1234567890
EOF
cat > practice-secret.yaml <<'EOF'
rules:
  - id: repogo-demo-only
    category: Custom
    title: RepoGo fake practice marker
    severity: HIGH
    regex: 'REPOGO_PRACTICE_ONLY_[0-9]{10}'
    keywords:
      - REPOGO_PRACTICE_ONLY_
EOF

YAML是带缩进的配置文件格式,这里它告诉工具:找出特定前缀后接十位数字的文本。缩进用空格,保持示例层级。这个特意设计的标记不是真实供应商令牌;不要用它推断内置规则能否识别你的真实凭据。

3. 扫描,再修改,再扫描

在同一个终端中定义一个便于重复的命令:

bash 复制代码
scan_demo() {
  TRIVY_CONFIG="$PWD/no-default-config.yaml" ./trivy \
    --cache-dir "$PWD/cache" fs \
    --scanners secret --skip-version-check --disable-telemetry --offline-scan \
    --secret-config "$PWD/practice-secret.yaml" \
    --format json --exit-code 1 --output "$PWD/reports/$1.json" "$PWD/practice"
}
scan_demo before
echo "本次扫描退出码:$?"

我们设置了--exit-code 1:命中时返回1。它在这一步是预期结果,不是安装失败。打开reports/before.json,确认Secrets中有一项,RuleID为repogo-demo-only。如果报告没有生成,先看终端真实错误,不能把任意退出码1都理解为成功。

再改掉假标记:

bash 复制代码
cat > practice/demo.txt <<'EOF'
REPOGO_DEMO_TOKEN=READ_FROM_ENV_AT_RUNTIME
EOF
scan_demo after
echo "本次扫描退出码:$?"

成功标志是退出码0,reports/after.json里没有凭据发现。占位文字只是演示"别把值直接写进文件",并未实际实现读取环境变量。

几个容易误会的地方

  • 发现0项不等于安全。 文件跳过规则、允许规则、供应商格式和扫描范围都会影响结果。这次只证明一条假数据规则与复扫流程。
  • 只扫描指定练习目录。 命令最后的practice就是扫描范围,别擅自改成家目录或整个磁盘。真实报告可能含本地路径与内容,分享前脱敏。
  • 下载网络失败和扫描报错分开看。 官方发行包下载失败先处理网络;本练习不用漏洞库,遇到漏洞库下载说明命令或配置范围可能变了。
  • 删了字符串,不代表撤销了凭据。 如果真实值曾经公开,应先在对应服务撤销/轮换,核查使用记录,再按团队流程清理Git历史和副本。

上图对应公开的 RepoGo 练习包,不是上文手工步骤。包里的 start.sh、start.cmd 是一键练习入口,报告在 .runtime/reports/;本文手工操作的报告在 reports/,两种入口选一种即可。Windows/Linux 入口尚未实测。

这不是常驻服务,没有浏览器端口;扫描结束进程就退出,中途可Ctrl+C。保留需要的规则、样例和报告;更新版本时重新核对release和校验值,不直接替换版本号绕过验证。

来源与交付

原项目由Aqua Security维护,Apache-2.0许可:github.com/aquasecurit... 。固定版本:github.com/aquasecurit... 。规则说明:trivy.dev/docs/v0.76/... 。

RepoGo知识星球已整理本期中文手册、固定版本下载校验入口、假样例、排错和三系统说明。前述公开练习包包含 RepoGo 原创的中文启动入口、假样例与手册;Trivy 程序仍从原作者官方发行页下载。上面的公开步骤也可独立完成练习。我们分享运行知识与原创包装,不冒称上游作者或官方合作。

本文由AI协助整理;macOS本期流程实跑,Windows/Linux和真实供应商规则识别率未实测。三图为原创示意及真实结果重新排版,不是终端截图。欢迎在站内讨论步骤,请勿贴真实密码、令牌或完整报告。

相关推荐
Angeldream1233 小时前
第 10 章 医学影像伦理与安全
图像处理·人工智能·python·安全·机器学习·医学影像
方白羽3 小时前
Android 双开环境底层剖析与风控检测落地
android·安全·app
pt10433 小时前
Cisco设备网络安全系列-18:SIEM与SOAR安全解决方案
网络·安全
yyuuuzz4 小时前
云服务器安全组规则优先级的机制记录
运维·服务器·网络·安全·阿里云·aws
福大大架构师每日一题6 小时前
redis 8.10.3正式发布:聚焦集群总线超大消息传播场景的安全修复,8.10.3 Latest更新解读
数据库·redis·安全
Linux运维技术栈6 小时前
WAF部署在防火墙后面,获取不到真实IP怎么办?
服务器·网络·tcp/ip·安全·防火墙·waf
是真的小外套8 小时前
网络安全实战第6期:Hydra爆破SSH实战
安全·web安全·ssh
是真的小外套8 小时前
网络安全实战第5期:Wireshark抓明文密码
安全·web安全·wireshark
KeyAction66668 小时前
从西班牙高铁追尾看安全系统设计:当违规指令成为输入,防护逻辑如何兜底
运维·服务器·安全