Salus:一款功能强大的安全扫描协调工具

Salus概述
Salus是一款功能强大的安全扫描协调工具,它可以帮助广大研究人员自动判断和选择需要使用哪一款安全扫描工具。我们可以通过Docker守护进程来对一个代码库运行Salus,而Salus则会自动判断适合运行哪一个扫描器,然后运行目标扫描器之后会将扫描结果输出给研究人员。Salus所支持的大部分扫描器都是成熟的开源项目,并且已经直接包含在了Salus项目之中。

Salus对于CI/CD管道特别有用,因为它成为了一个集中的地方来协调跨存储库的扫描。通常,扫描器会对每一个项目从代码库级别进行扫描。这也就意味着,在进行项目组织级别的切换时,就必须更改扫描器的运行方式,并且每一个库都需要更新。但在Salus的帮助下,我们可以直接更新Salus,而所有构建都将立即继承更改。

Salus支持强大的配置,允许全局默认值和局部调整。而且Salus可以报告每个存储库的细粒度信息,比如包含哪些包或存在哪些问题等等。

工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/coinbase/salus.git
工具使用
在命令行终端中切换至该项目的根目录:

cd /path/to/repo
然后在该项目的根目录下运行下列命令:

docker run –rm -t -v $(pwd):/home/repo coinbase/salus
支持的扫描器
Bandit

Brakeman

semgrep

BundleAudit

Gosec

npm audit

yarn audit

PatternSearch

Cargo Audit

依赖跟踪
Salus还可以解析依赖文件,并报告所使用的代码库及版本信息。当前版本的Salus支持下列语言:

Ruby

js

Python

Go

Rust

CircleCI整合
Salus可以通过使用一个公共Orb来跟CircleCI整合。所有的Salus配置选项都支持,默认配置跟Salus本身配置相同。

CircleCI config.yml样例:

version: 2.1

orbs:

salus: federacy/[email protected]

workflows:

main:

jobs:

– salus/scan
GitHub Action整合
Salue还可以跟GitHub Action整合一起使用。

.github/workflows/main.yml样例:

on: [push]

jobs:

salus_scan_job:

runs-on: ubuntu-latest

name: Salus Security Scan Example

steps:

– uses: actions/[email protected]

– name: Salus Scan

id: salus_scan

uses: federacy/[email protected]
在自己的项目中使用Salus
我们根据给定的CI,可以更新配置文件并运行Salue:

docker run –rm -t -v $(pwd):/home/repo coinbase/salus
项目地址
Salus:【GitHub传送门】

许可证协议
本项目的开发与发布遵循Apache 2.0开源许可证协议。

参考资料
https://github.com/coinbase/salus/blob/master/docs/development.md

https://github.com/coinbase/salus/blob/master/docs/architecture.md

https://github.com/federacy/scan-action

https://github.com/coinbase/salus/blob/master/integrations/circleci/README.md