
augusthome/nodescanner该Docker镜像用于August扫描Node.js软件中的已知安全风险和非必要密钥。它基于以下三个工具构建:
./entropyscanner.py假设:
augusthome团队docker login登录该账户docker build -t augusthome/nodescanner . docker push augusthome/nodescanner
推送新镜像后,所有引用该镜像的Bitbucket流水线构建将使用新镜像。但仅更新Docker镜像不会触发Bitbucket流水线自动重建。
要运行这些Node安全测试,请参考以下示例,并将第一个step应用到项目根目录的bitbucket-pipelines.yml中。
clone: depth: 1有助于加快拉取速度。Bitbucket默认深度为50。
image: node:8 # 限制深度以避免安全扫描浪费时间检查旧提交 clone: depth: 1 pipelines: default: - parallel: - step: name: Node安全扫描器 # 覆盖镜像以获取包含扫描软件的版本 image: name: augusthome/nodescanner # 确保与用户"scanner"的ID匹配(使用`id -u scanner`查看) run-as-user: 1001 script: # 在/opt/atlassian/pipelines/agent/build中运行 - ~/scan_node.sh - step: name: 测试 script: - echo $APICREDS_JSON | base64 --decode > ~/apicreds.json - export APIKEYFILE=~/apicreds.json - ./scripts/cibuild.sh
可使用默认配置运行,或在项目设置中设置以下环境变量:
配置变量(括号内为默认值): FAIL_ON_NPM_AUDIT_SCAN (1) : 1 FAIL_ON_AWS_SECRETS (1) : 1 FAIL_ON_HIGH_ENTROPY (0) : 0 NPM_AUDIT_SKIP_SEVERITIES (moderate,low) : moderate,low ENTROPY_MIN (0-1, <0表示跳过) (0.6) : 0.6 ENTROPY_BLOCK (-1表示整行) (-1) : -1 ENTROPY_IGNORE (文件名) (npm-shrinkwrap.json package-lock.json package.json) : npm-shrinkwrap.json package-lock.json package.json 可在以下地址设置这些环境变量: [***]
FAIL_ON_*控制安全扫描步骤失败时是否导致构建失败。设为0忽略失败,设为1则失败时终止构建。例如,FAIL_ON_HIGH_ENTROPY默认值为0,因为高熵扫描结果通常噪声较大(许多代码行看似高熵密钥)。
NPM_AUDIT_*这些是仓库中npm审计安全扫描器ciaudit.js的参数。
NPM_AUDIT_SKIP_SEVERITIES:逗号分隔的忽略严重级别列表。使用此功能时需谨慎,密切关注例外情况。ENTROPY_*这些是仓库中自定义熵扫描器entropyscanner.py的参数。
ENTROPY_MIN:0-1之间的值,数值越高表示需要检测的熵越高。设为0将跳过熵扫描。低于约0.5时会检测到大量代码,0.7时虽仍有较多代码,但密钥更易识别,不过可能遗漏部分密钥。ENTROPY_BLOCK:计算熵的字节数(假设为ASCII字符)。默认值-1表示检查整行,20也是常用限制。ENTROPY_IGNORE:空格分隔的忽略文件列表。不支持通配符,但会忽略所有目录中的这些文件。git-secrets本脚本不支持通过环境变量配置git-secrets。如需添加配置,请参考[***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务