trendmicro/tmas-scan-action
GitHub: trendmicro/tmas-scan-action
趋势科技提供的 GitHub Action,利用 TMAS CLI 在 CI/CD 流水线中对代码仓库和容器镜像进行漏洞、机密信息及恶意软件扫描,并支持基于策略的合并阻断。
Stars: 16 | Forks: 3
# TMAS Scan Action

使用 [TMAS (TrendAI™ Artifact Scanner)](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-__artifact-scanner-tmas-2) 扫描工作区中的制品以查找开源漏洞、恶意软件或机密信息。
## 简介
此 [GitHub Action](https://github.com/features/actions) 会在 GitHub Actions runner 上安装指定版本的 TMAS CLI 工具,并扫描指定的制品以查找开源漏洞、机密信息或恶意软件。
完整的扫描结果将显示在 Action 日志中,同时会在相关 PR 上以评论形式发布摘要报告。
## 要求
- 拥有一个 [TrendAI Vision One™ Account](https://signin.v1.trendmicro.com/)。如果您还没有,请[立即注册](https://account.trendmicro.com)。
- [A TrendAI Vision One™ API Key](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-__obtaining-api-key-2)。
- 确定您的 TrendAI Vision One™ 区域(`us-east-1`、`eu-central-1`、`eu-west-2`、`ca-central-1`、`ap-southeast-2`、`ap-south-1`、`ap-northeast-1`、`ap-southeast-1`、`me-central-1`)。
## 用法
在您的 `.github/workflows` YAML 文件中添加一个 Action,以使用 TMAS 扫描您的制品。TMAS 可以扫描来自多种来源的文件、目录和容器镜像。有关更多详细信息,请参阅[制品文档](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-__artifact-scanner-cli-2#GUID-09957805-70E7-401F-A691-F587FCE2CB8B-ofd60h__supportedArtifacts)。
可通过 `additionalArgs` 字段配置 TMAS GitHub Action 的完整功能和标志列表,详见 [CLI 工具文档](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-__artifact-scanner-cli-2)和[示例](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-__tmas-examples-2)。
### 扫描 GitHub 仓库
```
name: TMAS Scan
on:
push:
jobs:
tmas-scan:
name: TMAS Repo Scan
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: repo-name
- name: Download TMAS and Scan Repo for Open Source Vulnerabilities and Secrets
uses: trendmicro/tmas-scan-action@vX
with:
version: '2' # Recommended: pin to major version for automatic updates within v2.x.x
vulnerabilitiesScan: true
malwareScan: false # Malware scanning is only available for container images at this time
secretsScan: true
artifact: dir:./repo-name
additionalArgs: --region=eu-central-1
tmasApiKey: ${{ secrets.TMAS_API_KEY }}
githubToken: ${{ secrets.GITHUB_TOKEN }}
```
### 扫描构建制品
```
name: TMAS Scan
on:
pull_request:
jobs:
tmas-scan:
name: TMAS Container Scan
runs-on: ubuntu-22.04
steps:
- name: Download TMAS and scan container for Open Source Vulnerabilities, Malware and Secrets
uses: trendmicro/tmas-scan-action@vX
with:
version: X.X.X
vulnerabilitiesScan: true
malwareScan: true
secretsScan: true
artifact: registry:my-registry/my-app:latest
additionalArgs: --region=eu-central-1
tmasApiKey: ${{ secrets.TMAS_API_KEY }}
githubToken: ${{ secrets.GITHUB_TOKEN }}
```
## 输入
Action 支持的输入和输出在 [Action 定义文件](action.yml)中进行了描述。
## Runner 前置条件
TMAS scan action 要求在 GitHub Actions runner 上安装以下工具:
- `curl`
- `jq`
- `sha256sum`(来自 GNU coreutils)或 `shasum`
## 结果
- TMAS 扫描结果的摘要将作为评论发布在相关 PR 上。
- 完整的扫描结果可以在 Action 日志中的 `TMAS Scan Report` 下找到。
### GitHub 权限
要发布扫描摘要评论,必须向 Action 提供 GitHub token。在大多数情况下,默认的 Action token `secrets.GITHUB_TOKEN` 就足够了。但是,如果此默认 token 被限制为只读,则需要在工作流中指定额外的权限(如下所示),或者改用个人访问 token。
```
name: TMAS Scan
on:
pull_request:
permissions:
contents: read
pull-requests: write
```
## 策略评估
您可以使用 [TrendAI Vision One™ Code Security](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-code-security-intro) 添加策略,如果扫描结果不符合预期的策略标准,该策略将导致 tmas-scan-action 失败。当此工作流在 GitHub 中被标记为必需时,可用于阻止合并拉取请求,直到这些问题得到解决。
要将 TMAS GitHub Action 配置为使用您定义的 TrendAI Vision One™ Code Security 策略,请将 `--evaluatePolicy` 标志添加到 `additionalArgs` 中([扫描命令标志](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-__artifact-scanner-cli-2#GUID-09957805-70E7-401F-A691-F587FCE2CB8B-jp80o3__scanCommandFlags))。当扫描结果违反策略的阻断规则时,scan action 将使工作流失败。如果结合要求工作流成功的 GitHub 分支保护规则,则可以在安全问题得到解决之前,阻止合并拉取请求代码。
### GitHub 权限
要发布扫描摘要评论,必须向 Action 提供 GitHub token。在大多数情况下,默认的 Action token `secrets.GITHUB_TOKEN` 就足够了。但是,如果此默认 token 被限制为只读,则需要在工作流中指定额外的权限(如下所示),或者改用个人访问 token。
```
name: TMAS Scan
on:
pull_request:
permissions:
contents: read
pull-requests: write
```
## 策略评估
您可以使用 [TrendAI Vision One™ Code Security](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-code-security-intro) 添加策略,如果扫描结果不符合预期的策略标准,该策略将导致 tmas-scan-action 失败。当此工作流在 GitHub 中被标记为必需时,可用于阻止合并拉取请求,直到这些问题得到解决。
要将 TMAS GitHub Action 配置为使用您定义的 TrendAI Vision One™ Code Security 策略,请将 `--evaluatePolicy` 标志添加到 `additionalArgs` 中([扫描命令标志](https://docs.trendmicro.com/en-us/documentation/article/trend-vision-one-__artifact-scanner-cli-2#GUID-09957805-70E7-401F-A691-F587FCE2CB8B-jp80o3__scanCommandFlags))。当扫描结果违反策略的阻断规则时,scan action 将使工作流失败。如果结合要求工作流成功的 GitHub 分支保护规则,则可以在安全问题得到解决之前,阻止合并拉取请求代码。标签:DevSecOps, GitHub Action, 上游代理, 安全扫描, 时序注入