mitre/saf
GitHub: mitre/saf
MITRE 推出的安全自动化命令行框架,旨在统一各类安全工具的输出格式并简化 DevOps 流程中的合规性管理。
Stars: 174 | Forks: 42
# Security Automation Framework CLI
MITRE Security Automation Framework (SAF) Command Line Interface (CLI) 汇集了 MITRE 和安全社区开发的应用程序、技术、库和工具,旨在为系统和 DevOps 流程简化安全自动化
SAF CLI 是 [Heimdall Tools](https://github.com/mitre/heimdall_tools) 和 [InSpec Tools](https://github.com/mitre/inspec_tools) 的继任者。
## 术语
- ["Heimdall"](https://github.com/mitre/heimdall2) - 所有安全结果数据的可视化工具
- ["OASIS Heimdall Data Format (OHDF) - aka HDF"](https://saf.mitre.org/#/normalize) - 一种用于保存和转换安全数据的通用数据格式
## 安装
* [通过 NPM](#installation-via-npm)
* [通过 NPM 更新](#update-via-npm)
* [通过 Brew](#installation-via-brew)
* [通过 Brew 更新](#update-via-brew)
* [通过 Docker](#installation-via-docker)
* [通过 Docker 更新](#update-via-docker)
* [通过 Windows 安装程序](#installation-via-windows-installer)
* [通过 Windows 安装程序更新](#update-via-windows-installer)
## 开发者
有关 SAF 项目的开发、测试和贡献的详细信息,请参阅 [MITRE SAF Development](https://github.com/mitre/saf/blob/main/docs/contributors-guide.md)
## 用法
### 认证 HDF 数据
* [认证](#attest)
* [创建认证](#create-attestations)
* [应用认证](#apply-attestations)
### [获取 Convert 命令帮助](#convert-command)
### 将 HDF 转换为其他格式
* [从 HDF 转换](#convert-from-hdf)
* [HDF 转 ASFF](#hdf-to-asff)
* [HDF 转 Splunk](#hdf-to-splunk)
* [HDF 转 XCCDF Results](#hdf-to-xccdf-results)
* [HDF 转 Checklist](#hdf-to-checklist)
* [HDF 转 CSV](#hdf-to-csv)
* [HDF 转 Condensed JSON](#hdf-to-condensed-json)
### 将其他格式转换为 HDF
* [转换为 HDF](#convert-to-hdf)
* [Anchore Grype 转 HDF](#anchore-grype-to-hdf)
* [ASFF 转 HDF](#asff-to-hdf)
* [AWS Config 转 HDF](#aws-config-to-hdf)
* [Burp Suite 转 HDF](#burp-suite-to-hdf)
* [CKL 转 POA&M](#ckl-to-poam)
* [CycloneDX SBOM 转 HDF](#cyclonedx-sbom-to-hdf)
* [DBProtect 转 HDF](#dbprotect-to-hdf)
* [Dependency-Track 转 HDF](#dependency-track-to-hdf)
* [Fortify 转 HDF](#fortify-to-hdf)
* [gosec 转 HDF](#gosec-to-hdf)
* [Ion Channel 转 HDF](#ion-channel-2-hdf)
* [JFrog Xray 转 HDF](#jfrog-xray-to-hdf)
* [Tenable Nessus 转 HDF](#tenable-nessus-to-hdf)
* [Microsoft Secure Score 转 HDF](#msft_secure-to-hdf)
* [Netsparker 转 HDF](#netsparker-to-hdf)
* [NeuVector 转 HDF](#neuvector-to-hdf)
* [Nikto 转 HDF](#nikto-to-hdf)
* [Prisma 转 HDF](#prisma-to-hdf)
* [Prowler 转 HDF](#prowler-to-hdf)
* [Sarif 转 HDF](#sarif-to-hdf)
* [Scoutsuite 转 HDF](#scoutsuite-to-hdf)
* [Snyk 转 HDF](#snyk-to-hdf)
* [SonarQube 转 HDF](#sonarqube-to-hdf)
* [Splunk 转 HDF](#splunk-to-hdf)
* [Trivy 转 HDF](#trivy-to-hdf)
* [Trufflehog 转 HDF](#trufflehog-to-hdf)
* [Twistlock 转 HDF](#twistlock-to-hdf)
* [Veracode 转 HDF](#veracode-to-hdf)
* [XCCDF Results 转 HDF](#xccdf-results-to-hdf)
* [OWASP ZAP 转 HDF](#owasp-zap-to-hdf)
### eMASSer 客户端
* [eMASSer API CLI](#emasser-api-cli)
### 查看 HDF 摘要和数据
* [查看](#view)
* [Heimdall](#heimdall)
* [摘要](#summary)
### 验证 HDF 阈值
* [验证](#validate)
* [阈值](#thresholds)
### 生成数据报告及更多
* [生成](#generate)
* [Delta](#delta)
* [Delta 支持命令](#delta-supporting-options)
* [CKL 模板](#ckl-templates)
* [InSpec 元数据](#inspec-metadata)
* [Inspec Profile](#inspec-profile)
* [阈值](#thresholds-1)
* [电子表格 (csv/xlsx) 转 InSpec](#spreadsheet-csvxlsx-to-inspec)
* [DoD Stub 与 CIS Stub 格式化](#dod-stub-vs-cis-stub-formatting)
* [映射文件](#mapping-files)
### 增强和补充 HDF 数据
* [补充](#supplement)
* [透传](#passthrough)
* [读取](#read)
* [写入](#write)
* [目标](#target)
* [读取](#read-1)
* [写入](#write-1)
### 许可证和作者
* [许可证和作者](#license-and-author)
## 安装
### 通过 NPM 安装
可以使用 `npm` 安装和更新 SAF CLI,`npm` 通常包含在大多数版本的 [NodeJS](https://nodejs.org/en/) 中。
```
npm install -g @mitre/saf
```
#### 通过 NPM 更新
使用 `npm` 更新 SAF CLI:
```
npm update -g @mitre/saf
```
[返回顶部](#installation)
### 通过 Brew 安装
可以使用 `brew` 安装和更新 SAF CLI。
```
brew install mitre/saf/saf-cli
```
#### 通过 Brew 更新
使用 `brew` 更新 SAF CLI:
```
brew upgrade mitre/saf/saf-cli
```
[返回顶部](#installation)
### 通过 Docker 安装
**在 Linux 和 Mac 上:**
下面的 docker 命令可用于一次性运行 SAF CLI,其中 `arguments` 包含您想要运行的命令和标志。例如:`--version` 或 `view summary -i hdf-results.json`。
```
docker run -it -v$(pwd):/share mitre/saf
```
要在一个持久化的 shell 中运行 SAF CLI 以执行一个或多个命令,请使用以下命令,然后运行每个完整的命令。例如:`saf --version` 或 `saf view summary -i hdf-results.json`。您可以更改希望使用的 entrypoint。例如,使用 `--entrypoint sh` 以在 shell 终端中打开。如果找不到指定的 entrypoint,请尝试使用路径,如 `--entrypoint /bin/bash`。
```
docker run --rm -it --entrypoint bash -v$(pwd):/share mitre/saf
```
**在 Windows 上:**
下面的 docker 命令可用于一次性运行 SAF CLI,其中 `arguments` 包含您想要运行的命令和标志。例如:`--version` 或 `view summary -i hdf-results.json`。
```
docker run -it -v%cd%:/share mitre/saf
```
要在一个持久化的 shell 中运行 SAF CLI 以执行一个或多个命令,请使用以下命令,然后运行每个完整的命令。例如:`saf --version` 或 `saf view summary -i hdf-results.json`。您可以更改希望使用的 entrypoint。例如,使用 `--entrypoint sh` 以在 shell 终端中打开。如果找不到指定的 entrypoint,请尝试使用路径,如 `--entrypoint /bin/bash`。
```
docker run --rm -it --entrypoint sh -v%cd%:/share mitre/saf
```
**注意:**
请根据需要使用 Docker CLI 标志来运行各种子命令。
例如,要运行 `emasser configure` 子命令,您需要传入一个包含您的证书并且可以存储生成的 .env 文件的卷 (volume)。此外,您需要传入用于启用伪 TTY 和交互性的标志。
```
docker run -it -v "$(pwd)":/share mitre/saf emasser configure
```
其他命令可能不需要 `-i` 或 `-t` 标志,而只需要绑定挂载的卷 (bind-mounted volume),例如基于文件的 `convert`。
```
docker run --rm -v "$(pwd)":/share mitre/saf convert -i test/sample_data/trivy/sample_input_report/trivy-image_golang-1.12-alpine_sample.json -o test.json
```
还有其他标志用于开放网络端口或传递环境变量,因此请确保使用成功运行命令所需的任何标志。
#### 通过 Docker 更新
使用 `docker` 更新 SAF CLI:
```
docker pull mitre/saf:latest
```
[返回顶部](#installation)
### 通过 Windows 安装程序安装
要在 Windows 上安装最新版本的 SAF CLI,请从 [Releases](https://github.com/mitre/saf/releases) 🌬️ 页面下载并运行适合您系统架构的最新安装程序。
#### 通过 Windows 安装程序更新
要在 Windows 上更新 SAF CLI,请从系统中卸载任何现有版本,然后从 [Releases](https://github.com/mitre/saf/releases) 🌬️ 页面下载并运行适合您系统架构的最新安装程序。
[返回顶部](#installation)
## 用法
### 认证 (Attest)
对“未审查”(Not Reviewed) 的控制进行认证:有时安全工具无法自动测试要求,因此需要人工审查,即某人通过采访人员或检查系统来确认(即认证)控制要求是否已满足。
#### 创建认证
```
attest create Create attestation files for use with `saf attest apply`
USAGE
$ saf attest create -o [-i -t ]
FLAGS
-i, --input= (optional) An input HDF file to search for controls
-o, --output= (required) The output filename
-t, --format=