Интеграция AppSec.Track CLI в пайплайны CI/CD¶
AppSec.Track CLI — это утилита командной строки, позволяющая:
- Осуществлять интеграцию с пайплайнами CI/CD (см. раздел «Пример пайплайна GitLab CI»).
- Проводить сканирование/генерацию файлов SBOM (см. раздел «Сканирование SBOM с использованием CLI»).
Пример пайплайна GitLab CI¶
Для интеграции AppSec.Track CLI с пайплайном инструмента GitLab CI необходимо настроить пайплайн так, как показано в примере ниже.
variables:
SCANNER_IMAGE: example.ex/example/sca-track-cli:3.14.1
SCANNER_APP: testing_cli_app
SCANNER_TEAM: testing_cli_team
APP_VERSION: "0.0.1"
APP_ENVIRONMENT: dev
TRACK_URL: https://track.example.ru
TRACK_TOKEN: "111"
SBOM_NAME: sbom.json
SCANNING_IMAGE: example.ex/example/nginx:latest
Scan Repo:
stage: SCAN
image:
name: $SCANNER_IMAGE
entrypoint: [""]
script:
- mkdir -p ~/.docker && echo $DOCKER_CONF > ~/.docker/config.json
- /app/appsec-track-cli scan
-a $SCANNER_APP
-t $SCANNER_TEAM
-v $APP_VERSION
-e $APP_ENVIRONMENT
-s $TRACK_URL
--token $TRACK_TOKEN
--sbom-output-file $SBOM_NAME
--no-progress
fs $CI_PROJECT_DIR
Scan Image:
stage: SCAN
image:
name: $SCANNER_IMAGE
entrypoint: [""]
script:
- mkdir -p ~/.docker && echo $DOCKER_CONF > ~/.docker/config.json
- /app/appsec-track-cli scan
-a $SCANNER_APP
-t $SCANNER_TEAM
-v $APP_VERSION
-e $APP_ENVIRONMENT
-s $TRACK_URL
--token $TRACK_TOKEN
--sbom-output-file $SBOM_NAME
--cache-dir $TRIVY_JAVA_DB
--no-progress
image $SCANNING_IMAGE
Примеры лога задания при наличии блокирующих политик¶
Scan Image:
2025-02-06T09:44:24Z INFO ***** AppSec.Track CLI 3.14.1.33 *****
2025-02-06T09:44:24Z INFO Operation mode: SCAN
2025-02-06T09:44:24Z INFO Application name: testing_cli_app
2025-02-06T09:44:24Z INFO Application team: testing_cli_team
2025-02-06T09:44:24Z INFO Application version: 0.0.1
2025-02-06T09:44:24Z INFO Application environment: dev
2025-02-06T09:44:26Z WARN Unable to initialize trivy-java-db. trivy-java-db will not be used to parse jar files. err="cache dir doesn't contain trivy-java-db."
2025-02-06T09:44:26Z INFO Save response to file filename="sbom.json"
2025-02-06T09:44:26Z INFO Sending SBOM report tohttps://track.example.ru/api/sca/json
2025-02-06T09:44:30Z INFO Сканирование завершено. Компоненты нарушают блокирующие политики
<<<CRITICAL POLICIES>>>
╭──────────────────────────────────────────────────────────────┬───────────────────────────────────────────┬─────────┬───────────────────────────╮
│ Policy │ Component │ Blocked │ Details │
├──────────────────────────────────────────────────────────────┼───────────────────────────────────────────┼─────────┼───────────────────────────┤
│ Приложения │ pkg:deb/curl@7.88.1-10+deb12u7 │ yes │ KLA61027 (7.5) and 5 more │
│ │ pkg:deb/bash@5.2.15-2+b7 │ yes │ AST-2024-045965 (7.8) │
│ │ pkg:deb/tar@1.34+dfsg-1.2+deb12u1 │ yes │ KLA48401 (5.5) │
│ │ pkg:deb/ca-certificates@20230311 │ yes │ │
│ │ pkg:deb/fontconfig-config@2.14.1-4 │ yes │ │
│ │ pkg:deb/libbz2-1.0@1.0.8-5+b1 │ yes │ │
│ │ pkg:deb/libyuv0@0.0~git20230123.b2528b0-1 │ yes │ │
│ │ pkg:deb/gpgv@2.2.40-1.1 │ yes │ │
│ │ pkg:deb/libudev1@252.30-1~deb12u2 │ yes │ │
│ │ pkg:deb/base-passwd@3.6.1 │ yes │ │
│ │ │ │ │
│ Компонент содержит уязвимость с оценкой критичности CVSS > 1 │ pkg:deb/curl@7.88.1-10+deb12u7 │ yes │ KLA61027 (7.5) and 5 more │
│ │ pkg:deb/bash@5.2.15-2+b7 │ yes │ AST-2024-045965 (7.8) │
│ │ pkg:deb/tar@1.34+dfsg-1.2+deb12u1 │ yes │ KLA48401 (5.5) │
╰──────────────────────────────────────────────────────────────┴───────────────────────────────────────────┴─────────┴───────────────────────────╯
2025-02-06T09:44:30Z INFO Link to report: https://track.example.ru/sca/scan/82ee799d-252e-4f47-a02e-57a24c0b536a
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: command terminated with exit code 1
Scan Repo:
2025-02-06T09:44:24Z INFO ***** AppSec.Track CLI 3.14.1.33 *****
2025-02-06T09:44:24Z INFO Operation mode: SCAN
2025-02-06T09:44:24Z INFO Application name: testing_cli_app
2025-02-06T09:44:24Z INFO Application team: testing_cli_team
2025-02-06T09:44:24Z INFO Application version: 0.0.1
2025-02-06T09:44:24Z INFO Application environment: dev
2025-02-06T09:44:24Z WARN Unable to initialize trivy-java-db. trivy-java-db will not be used to parse jar files. err="Java DB open error: can't open db: sql: unknown driver \"sqlite\" (forgotten import?)"
2025-02-06T09:45:29Z INFO Save response to file filename="sbom.json"
2025-02-06T09:45:29Z INFO Sending SBOM report tohttps://track.example.ru/api/sca/json
2025-02-06T09:45:39Z INFO Сканирование завершено. Компоненты нарушают блокирующие политики
<<<CRITICAL POLICIES>>>
╭──────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────┬─────────┬────────────────────────────────────╮
│ Policy │ Component │ Blocked │ Details │
├──────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────┼─────────┼────────────────────────────────────┤
│ Приложения │ pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.9.1 │ yes │ AST-2024-000018 (5.9) and 137 more │
│ │ pkg:golang/github.com/hashicorp/go-getter@v1.7.5 │ yes │ KLA41657 (8.6) and 3 more │
│ │ pkg:maven/org.apache.logging.log4j/log4j-core@2.23.1 │ yes │ │
│ │ pkg:golang/github.com/imdario/mergo@v0.3.16 │ yes │ │
│ │ pkg:golang/go.opentelemetry.io/contrib/instrumentation/goog- │ yes │ │
│ │ le.golang.org/grpc/otelgrpc@v0.49.0 │ │ │
│ │ pkg:golang/k8s.io/klog/v2@v2.120.1 │ yes │ │
│ │ pkg:golang/github.com/aws/aws-sdk-go-v2/config@v1.27.27 │ yes │ │
│ │ pkg:golang/github.com/containerd/containerd/api@v1.7.19 │ yes │ │
│ │ pkg:golang/github.com/makenowjust/heredoc@v1.0.0 │ yes │ │
│ │ pkg:golang/github.com/chai2010/gettext-go@v1.0.2 │ yes │ │
│ │ │ │ │
│ Компонент содержит уязвимость с оценкой критичности CVSS > 1 │ pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.9.1 │ yes │ AST-2024-000018 (5.9) and 137 more │
│ │ pkg:golang/github.com/hashicorp/go-getter@v1.7.5 │ yes │ KLA41657 (8.6) and 3 more │
│ │ │ │ │
│ Компонент опубликован после 24/02/2022 │ pkg:maven/org.apache.logging.log4j/log4j-core@2.23.1 │ yes │ │
╰──────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┴─────────┴────────────────────────────────────╯
2025-02-06T09:45:39Z INFO Link to report: https://track.example.ru/sca/scan/dbc1253c-36bc-433b-aa7f-827308049683
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: command terminated with exit code 1
Примеры лога задания при отсутствии блокирующих политик¶
Scan Image:
2025-02-06T10:37:42Z INFO ***** AppSec.Track CLI 3.14.1.33 *****
2025-02-06T10:37:42Z INFO Operation mode: SCAN
2025-02-06T10:37:42Z INFO Application name: testing_cli_app
2025-02-06T10:37:42Z INFO Application team: testing_cli_team
2025-02-06T10:37:42Z INFO Application version: 0.0.1
2025-02-06T10:37:42Z INFO Application environment: dev
2025-02-06T10:37:44Z WARN Unable to initialize trivy-java-db. trivy-java-db will not be used to parse jar files. err="cache dir doesn't contain trivy-java-db."
2025-02-06T10:37:44Z INFO Save response to file filename="sbom.json"
2025-02-06T10:37:44Z INFO Sending SBOM report tohttps://track.example.ru/api/sca/json
2025-02-06T10:37:55Z INFO Сканирование завершено. Блокирующие политики не нарушены
2025-02-06T10:37:55Z INFO Link to report: https://track.example.ru/sca/scan/a66c07b1-bd2a-44c4-b6dd-4520a26cf1e0
Cleaning up project directory and file based variables
00:02
Job succeeded
Scan Repo:
2025-02-06T10:37:35Z INFO ***** AppSec.Track CLI 3.14.1.33 *****
2025-02-06T10:37:35Z INFO Operation mode: SCAN
2025-02-06T10:37:35Z INFO Application name: testing_cli_app
2025-02-06T10:37:35Z INFO Application team: testing_cli_team
2025-02-06T10:37:35Z INFO Application version: 0.0.1
2025-02-06T10:37:35Z INFO Application environment: dev
2025-02-06T10:37:54Z WARN Unable to initialize trivy-java-db. trivy-java-db will not be used to parse jar files. err="Java DB open error: can't open db: sql: unknown driver \"sqlite\" (forgotten import?)"
2025-02-06T10:37:54Z INFO Save response to file filename="sbom.json"
2025-02-06T10:37:54Z INFO Sending SBOM report tohttps://track.example.ru/api/sca/json
2025-02-06T10:38:08Z INFO Сканирование завершено. Блокирующие политики не нарушены
2025-02-06T10:38:08Z INFO Link to report: https://track.example.ru/sca/scan/4a685963-a268-4403-babe-aca806ad6b9d
Cleaning up project directory and file based variables
00:01
Job succeeded