Salus(安全自动化轻量级通用扫描器),以罗马保护女神命名,是一个用于协调执行安全扫描器的工具。您可以通过Docker守护进程在仓库上运行Salus,它会确定哪些扫描器相关,运行它们并提供输出。大多数扫描器是我们直接包含在容器中的其他成熟的开源项目。
Salus对于CI/CD流水线特别有用,因为它成为跨大量仓库协调扫描的集中化场所。通常,扫描器在每个项目的仓库级别配置。这意味着当对整个组织范围内扫描器的运行方式进行更改时,每个仓库都必须更新。相反,您可以更新Salus,所有构建将立即继承更改。
Salus支持强大的配置,允许全局默认值和本地调整。最后,Salus可以报告每个仓库的指标,例如包含了哪些包或存在哪些问题。这些报告可以在您的基础设施中进行集中评估,以实现可扩展的安全跟踪。
# Navigate to the root directory of the project you want to run Salus on
cd /path/to/repo
# Run the following line while in the root directory (No edits necessary)
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
semgrep 1.0.0,在AST级别查找代码中的语义和语法模式。npm audit 6.14.8,在node模块依赖中查找CVE。yarn audit 1.22.0,在node模块依赖中查找CVE。sift 0.9.0,在项目中查找可能危险或需要存在的特定字符串。TruffleHog 3.19.0,查找泄露的凭据。Salus还会解析依赖文件,并报告正在使用的库和版本。这对于跨整个技术栈跟踪依赖项非常有用。
当前支持的语言:
Salus被设计为高度可配置,以便能够在多种不同类型的环境中与多种不同的扫描器一起工作。它支持环境变量插值和级联配置,并且可以读取配置并通过HTTP报告。
有时需要忽略某些CVE、规则、测试、组、目录,或者以其他方式修改扫描器的默认配置。docs/scanners目录解释了如何为Salus支持的每个扫描器执行此操作。
如果您想构建自定义扫描器或支持当前不支持的更多语言,可以使用构建自定义Salus镜像的方法。
Salus可以通过使用公共Orb与CircleCI集成。支持所有Salus配置选项,默认值与Salus本身相同。
CircleCI config.yml 示例:
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Salus也可以与GitHub Actions一起使用。
.github/workflows/main.yml 示例:
on: [push]
jobs:
salus_scan_job:
runs-on: ubuntu-latest
name: Salus Security Scan Example
steps:
- uses: actions/checkout@v1
- name: Salus Scan
id: salus_scan
uses: federacy/[email protected]
对于给定的CI,更新配置文件以运行Salus。在CircleCI中,如下所示:
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
coinbase/salus 拉取Docker镜像
欢迎为本项目做出贡献,我们衷心希望目前所做的工作仅作为一个基础,让整个安全/开发社区能够共同来改进每个人基础设施的安全性。
您还可以找到向Salus添加新扫描器的步骤
本项目以开源方式提供,遵循 Apache 2.0 许可证。