Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
trivy-action — Запускает Trivy как действие GitHub для сканирования вашего образа Docker контейнера на уязвимости | Kitploit
Инструменты/GitHubGitHub/aquasecurity/trivy-action
Сканеры уязвимостейБезопасность контейнеровАнализ КодаБезопасность облачных средDevSecOpsОбнаружение СекретовБезопасность Цепочки ПоставокНеправильная Конфигурация
GitHubaquasecurity/trivy-action

trivy-action

Запускает Trivy как действие GitHub для сканирования вашего образа Docker контейнера на уязвимости

Репозиторий
1.4k3571126 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Trivy Action

GitHub Action для Trivy

[![GitHub Release][release-img]][release] [![GitHub Marketplace][marketplace-img]][marketplace] [![License][license-img]][license]

Содержание

  • Использование
    • Сканирование конвейера CI
    • Сканирование конвейера CI (с конфигурацией Trivy)
    • Кэш
    • Настройка Trivy
    • Сканирование Tarball
    • Использование Trivy с шаблонами
    • Использование Trivy со сканированием кода GitHub
    • Использование Trivy для сканирования Git-репозитория
    • Использование Trivy для сканирования корневых файловых систем
    • Использование Trivy для сканирования инфраструктуры как кода
    • Использование Trivy для создания SBOM
    • Использование Trivy для сканирования частного реестра
    • Использование Trivy, если сканирование кода не включено
  • Настройка
inputs
  • Переменные окружения
  • Файл конфигурации Trivy
  • Использование

    Сканирование конвейера CI```yaml

    name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4 - name: Build an image from Dockerfile run: docker build -t docker.io/my-organization/my-app:${{ github.sha }} . - name: Run Trivy vulnerability scanner uses: aquasecurity/[email protected] with: image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}' format: 'table' exit-code: '1' ignore-unfixed: true vuln-type: 'os,library' severity: 'CRITICAL,HIGH'

    root@kitploit:~
    ### Сканирование CI конвейера (с Trivy Config)```yaml
    name: build
    on:
      push:
        branches:
        - main
      pull_request:
    jobs:
      build:
        name: Build
        runs-on: ubuntu-24.04
        steps:
        - name: Checkout code
          uses: actions/checkout@v4
    
        - name: Run Trivy vulnerability scanner in fs mode
          uses: aquasecurity/[email protected]
          with:
            scan-type: 'fs'
            scan-ref: '.'
            trivy-config: trivy.yaml
    

    В данном случае trivy.yaml — это YAML-конфигурация, которая включена в состав репозитория. Подробная информация доступна на сайте Trivy, но пример выглядит следующим образом:```yaml format: json exit-code: 1 severity: CRITICAL secret: config: config/trivy/secret.yaml

    root@kitploit:~
    Все параметры можно определить в файле `trivy.yaml`. Указание отдельных параметров через action оставлено для обратной совместимости. Определение следующих параметров обязательно, так как их нельзя задать через файл конфигурации:
    - `scan-ref`: Если используется сканирование `fs, repo`.
    - `image-ref`: Если используется сканирование `image`.
    - `scan-type`: Для определения типа сканирования, например `image`, `fs`, `repo` и т.д.
    
    #### Порядок приоритета параметров
    Trivy использует [Viper](https://github.com/spf13/viper), который имеет определённый порядок приоритета для параметров. Порядок следующий:
    - Флаг GitHub Action
    - Переменная окружения
    - Файл конфигурации
    - По умолчанию
    
    ### Кеш
    Действие имеет встроенную функциональность для кеширования и восстановления [базы данных уязвимостей](https://github.com/aquasecurity/trivy-db), [базы данных Java](https://github.com/aquasecurity/trivy-java-db) и [набора проверок](https://github.com/aquasecurity/trivy-checks), если они загружаются во время сканирования.
    Кеш по умолчанию хранится в каталоге `$GITHUB_WORKSPACE/.cache/trivy`.
    Кеш восстанавливается перед началом сканирования и сохраняется после его завершения.
    
    Под капотом используется [actions/cache](https://github.com/actions/cache), но требуется меньше настроек конфигурации.
    Параметр `cache` является необязательным, и кеширование включено по умолчанию.
    
    #### Отключение кеширования
    Если вы хотите отключить кеширование, установите входной параметр `cache` в `false`, но мы рекомендуем оставить его включённым, чтобы избежать проблем с ограничением частоты запросов.```yaml
        - name: Run Trivy scanner without cache
          uses: aquasecurity/[email protected]
          with:
            scan-type: 'fs'
            scan-ref: '.'
            cache: 'false'
    

    Обновление кэшей в ветке по умолчанию

    Обратите внимание, что в GitHub Actions существуют ограничения на доступ к кэшу между ветками. По умолчанию рабочий процесс может получить доступ и восстановить кэш, созданный либо в текущей ветке, либо в ветке по умолчанию (обычно main или master). Если вам нужно делиться кэшами между ветками, вам может потребоваться создать кэш в ветке по умолчанию и восстановить его в текущей ветке.

    Чтобы оптимизировать рабочий процесс, вы можете настроить задачу cron для регулярного обновления кэша в ветке по умолчанию. Это позволит последующим сканированиям использовать кэшированную базу данных без повторной загрузки.```yaml

    Note: This workflow only updates the cache. You should create a separate workflow for your actual Trivy scans.

    In your scan workflow, set TRIVY_SKIP_DB_UPDATE=true and TRIVY_SKIP_JAVA_DB_UPDATE=true.

    name: Update Trivy Cache

    on: schedule: - cron: '0 0 * * *' # Run daily at midnight UTC workflow_dispatch: # Allow manual triggering

    jobs: update-trivy-db: runs-on: ubuntu-latest steps: - name: Setup oras uses: oras-project/setup-oras@v1

    root@kitploit:~
      - name: Get current date
        id: date
        run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
    
      - name: Download and extract the vulnerability DB
        run: |
          mkdir -p $GITHUB_WORKSPACE/.cache/trivy/db
          oras pull ghcr.io/aquasecurity/trivy-db:2
          tar -xzf db.tar.gz -C $GITHUB_WORKSPACE/.cache/trivy/db
          rm db.tar.gz
    
      - name: Download and extract the Java DB
        run: |
          mkdir -p $GITHUB_WORKSPACE/.cache/trivy/java-db
          oras pull ghcr.io/aquasecurity/trivy-java-db:1
          tar -xzf javadb.tar.gz -C $GITHUB_WORKSPACE/.cache/trivy/java-db
          rm javadb.tar.gz
    
      - name: Cache DBs
        uses: actions/cache/save@v4
        with:
          path: ${{ github.workspace }}/.cache/trivy
          key: cache-trivy-${{ steps.date.outputs.date }}
    
    root@kitploit:~
    При запуске сканирования установите переменные окружения `TRIVY_SKIP_DB_UPDATE` и `TRIVY_SKIP_JAVA_DB_UPDATE`, чтобы пропустить процесс загрузки.```yaml
        - name: Run Trivy scanner without downloading DBs
          uses: aquasecurity/[email protected]
          with:
            scan-type: 'image'
            scan-ref: 'myimage'
          env:
            TRIVY_SKIP_DB_UPDATE: true
            TRIVY_SKIP_JAVA_DB_UPDATE: true
    

    Настройка Trivy

    По умолчанию действие вызывает aquasecurity/setup-trivy в качестве первого шага, который устанавливает версию trivy, указанную во входном параметре version. Если вы уже установили trivy другим способом, например, вызвав aquasecurity/setup-trivy напрямую, или запускаете это действие несколько раз, вы можете использовать входной параметр skip-setup-trivy, чтобы отключить этот шаг.

    Ручная настройка Trivy```yaml

    name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4

    root@kitploit:~
    - name: Manual Trivy Setup
      uses: aquasecurity/[email protected]
      with:
        cache: true
        version: v0.72.0
    
    - name: Run Trivy vulnerability scanner in repo mode
      uses: aquasecurity/[email protected]
      with:
        scan-type: 'fs'
        ignore-unfixed: true
        format: 'sarif'
        output: 'trivy-results.sarif'
        severity: 'CRITICAL'
        skip-setup-trivy: true
    
    root@kitploit:~
    #### Пропуск установки при многократном вызове Trivy Action
    Другой распространенный случай использования — когда сборка вызывает это действие несколько раз; в этом случае мы можем установить `skip-setup-trivy` в `true` при последующих вызовах, например:```yaml
    name: build
    
    on:
      push:
        branches:
          - main
      pull_request:
    
    jobs:
      test:
        runs-on: ubuntu-latest
        permissions:
          contents: read
        steps:
          - name: Check out Git repository
            uses: actions/checkout@v4
    
          # The first call to the action will invoke setup-trivy and install trivy
          - name: Generate Trivy Vulnerability Report
            uses: aquasecurity/[email protected]
            with:
              scan-type: "fs"
              output: trivy-report.json
              format: json
              scan-ref: .
              exit-code: 0
    
          - name: Upload Vulnerability Scan Results
            uses: actions/upload-artifact@v4
            with:
              name: trivy-report
              path: trivy-report.json
              retention-days: 30
    
          - name: Fail build on High/Criticial Vulnerabilities
            uses: aquasecurity/[email protected]
            with:
              scan-type: "fs"
              format: table
              scan-ref: .
              severity: HIGH,CRITICAL
              ignore-unfixed: true
              exit-code: 1
              # On a subsequent call to the action we know trivy is already installed so can skip this
              skip-setup-trivy: true
    

    Использовать нестандартный токен для установки Trivy

    GitHub Enterprise Server (GHES) использует недействительный github.token для https://github.com сервера. Поэтому вы не можете установить Trivy с помощью действия setup-trivy.

    Чтобы исправить эту проблему, вам необходимо переопределить токен для setup-trivy с помощью входного параметра token-setup-trivy:```yaml - name: Run Trivy scanner without cache uses: aquasecurity/[email protected] with: scan-type: 'fs' scan-ref: '.' token-setup-trivy: ${{ secrets.GITHUB_PAT }}

    root@kitploit:~
    У GitHub даже есть [create-github-app-token](https://github.com/actions/create-github-app-token) для подобных случаев.
    
    ### Сканирование Tarball```yaml
    name: build
    on:
      push:
        branches:
        - main
      pull_request:
    jobs:
      build:
        name: Build
        runs-on: ubuntu-24.04
        steps:
        - name: Checkout code
          uses: actions/checkout@v4
    
        - name: Generate tarball from image
          run: |
            docker pull <your-docker-image>
            docker save -o vuln-image.tar <your-docker-image>
    
        - name: Run Trivy vulnerability scanner in tarball mode
          uses: aquasecurity/[email protected]
          with:
            input: /github/workspace/vuln-image.tar
            severity: 'CRITICAL,HIGH'
    

    Использование Trivy с шаблонами

    Действие поддерживает [Trivy templates][trivy-templates].

    Используйте входной параметр template, чтобы указать путь (не забудьте добавить префикс @ к пути) к файлу шаблона.```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4

    root@kitploit:~
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/[email protected]
        with:
          scan-type: "fs"
          scan-ref: .
          format: 'template'
          template: "@path/to/my_template.tpl"
    
    root@kitploit:~
    #### Шаблоны по умолчанию
    Trivy имеет [шаблоны по умолчанию][trivy-default-templates].
    
    По умолчанию `setup-trivy` устанавливает их в каталог `$HOME/.local/bin/trivy-bin/contrib`.```yaml
    name: build
    on:
      push:
        branches:
          - main
      pull_request:
    jobs:
      build:
        name: Build
        runs-on: ubuntu-24.04
        steps:
          - name: Checkout code
            uses: actions/checkout@v4
    
          - name: Run Trivy vulnerability scanner
            uses: aquasecurity/[email protected]
            with:
              scan-type: "fs"
              scan-ref: .
              format: 'template'
              template: "@$HOME/.local/bin/trivy-bin/contrib/html.tpl"
    

    Использование Trivy с GitHub Code Scanning

    Если у вас доступно сканирование кода GitHub, вы можете использовать Trivy в качестве инструмента сканирования следующим образом:```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 permissions: contents: read # Required to checkout and read repo files security-events: write # Required to upload SARIF files to Security tab steps: - name: Checkout code uses: actions/checkout@v4

    root@kitploit:~
      - name: Build an image from Dockerfile
        run: |
          docker build -t docker.io/my-organization/my-app:${{ github.sha }} .
    
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/[email protected]
        with:
          image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
          format: 'sarif'
          output: 'trivy-results.sarif'
    
      - name: Upload Trivy scan results to GitHub Security tab
        uses: github/codeql-action/upload-sarif@v4
        with:
          sarif_file: 'trivy-results.sarif'
    
    root@kitploit:~
    Вы можете найти более подробный пример здесь: https://github.com/aquasecurity/trivy-sarif-demo/blob/master/.github/workflows/scan.yml
    
    Если вы хотите загрузить результаты SARIF в GitHub Code scanning даже при ненулевом коде выхода из Trivy Scan, вы можете добавить следующее в ваш шаг загрузки:```yaml
    name: build
    on:
      push:
        branches:
          - main
      pull_request:
    jobs:
      build:
        name: Build
        runs-on: ubuntu-24.04
        permissions:
          contents: read          # Required to checkout and read repo files
          security-events: write  # Required to upload SARIF files to Security tab
        steps:
          - name: Checkout code
            uses: actions/checkout@v4
    
          - name: Build an image from Dockerfile
            run: |
              docker build -t docker.io/my-organization/my-app:${{ github.sha }} .
    
          - name: Run Trivy vulnerability scanner
            uses: aquasecurity/[email protected]
            with:
              image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
              format: 'sarif'
              output: 'trivy-results.sarif'
    
          - name: Upload Trivy scan results to GitHub Security tab
            uses: github/codeql-action/upload-sarif@v4
            if: always()
            with:
              sarif_file: 'trivy-results.sarif'
    

    Подробнее см. здесь: https://docs.github.com/en/actions/learn-github-actions/expressions#always

    Использование Trivy для сканирования вашего Git-репозитория

    Также можно сканировать ваши git-репозитории с помощью встроенного сканирования репозиториев Trivy. Это может быть полезно, если вы хотите запускать Trivy в качестве проверки во время сборки для каждого PR, открываемого в вашем репозитории. Это помогает выявить потенциальные уязвимости, которые могут быть внесены с каждым PR.

    Если у вас доступно сканирование кода GitHub, вы можете использовать Trivy как инструмент сканирования следующим образом:```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 permissions: contents: read # Required to checkout and read repo files security-events: write # Required to upload SARIF files to Security tab steps: - name: Checkout code uses: actions/checkout@v4

    root@kitploit:~
      - name: Run Trivy vulnerability scanner in repo mode
        uses: aquasecurity/[email protected]
        with:
          scan-type: 'fs'
          ignore-unfixed: true
          format: 'sarif'
          output: 'trivy-results.sarif'
          severity: 'CRITICAL'
    
      - name: Upload Trivy scan results to GitHub Security tab
        uses: github/codeql-action/upload-sarif@v4
        with:
          sarif_file: 'trivy-results.sarif'
    
    root@kitploit:~
    ### Использование Trivy для сканирования каталогов rootfs
    Также можно сканировать каталоги rootfs с помощью встроенного в Trivy сканера rootfs. Это может быть удобно, если вы хотите запускать Trivy как проверку во время сборки для каждого PR, открываемого в вашем репозитории. Это помогает выявить потенциальные уязвимости, которые могут быть внесены с каждым PR.
    
    Если у вас есть [сканирование кода GitHub](https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/about-code-scanning), вы можете использовать Trivy как инструмент сканирования следующим образом:```yaml
    name: build
    on:
      push:
        branches:
          - main
      pull_request:
    jobs:
      build:
        name: Build
        runs-on: ubuntu-24.04
        permissions:
          contents: read          # Required to checkout and read repo files
          security-events: write  # Required to upload SARIF files to Security tab
        steps:
          - name: Checkout code
            uses: actions/checkout@v4
    
          - name: Run Trivy vulnerability scanner with rootfs command
            uses: aquasecurity/[email protected]
            with:
              scan-type: 'rootfs'
              scan-ref: 'rootfs-example-binary'
              ignore-unfixed: true
              format: 'sarif'
              output: 'trivy-results.sarif'
              severity: 'CRITICAL'
    
          - name: Upload Trivy scan results to GitHub Security tab
            uses: github/codeql-action/upload-sarif@v4
            with:
              sarif_file: 'trivy-results.sarif'
    

    Использование Trivy для сканирования Infrastructure as Code

    Также вы можете сканировать свои IaC-репозитории с помощью встроенного сканирования репозиториев Trivy. Это может быть полезно, если вы хотите запускать Trivy в качестве проверки времени сборки для каждого PR, открываемого в вашем репозитории. Это помогает выявлять потенциальные уязвимости, которые могут быть внесены с каждым PR.

    Если у вас доступно GitHub code scanning, вы можете использовать Trivy в качестве инструмента сканирования следующим образом:```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 permissions: contents: read # Required to checkout and read repo files security-events: write # Required to upload SARIF files to Security tab steps: - name: Checkout code uses: actions/checkout@v4

    root@kitploit:~
      - name: Run Trivy vulnerability scanner in IaC mode
        uses: aquasecurity/[email protected]
        with:
          scan-type: 'config'
          hide-progress: true
          format: 'sarif'
          output: 'trivy-results.sarif'
          exit-code: '1'
          severity: 'CRITICAL,HIGH'
    
      - name: Upload Trivy scan results to GitHub Security tab
        if: always()
        uses: github/codeql-action/upload-sarif@v4
        with:
          sarif_file: 'trivy-results.sarif'
    
    root@kitploit:~
    **Примечание**: Если ваша конфигурация Terraform содержит частные модули, настройте Git для аутентификации с репозиторием, в котором они размещены. 
    Это можно сделать, добавив шаг в ваш CI-процесс, который настраивает доступ, например, используя Personal Access Token (PAT) или SSH-ключи:```yaml
    - name: Configure Git for private modules
      run: |
        git config --global url."https://$GITHUB_USER:[email protected]/".insteadOf "https://github.com/"
      env:
        GITHUB_USER: ${{ github.actor }}
        PRIVATE_REPO_TOKEN: ${{ secrets.PRIVATE_REPO_TOKEN }}
    

    Это гарантирует, что Trivy может загружать закрытые модули.

    Использование Trivy для генерации SBOM

    Trivy может создать SBOM ваших зависимостей и отправить их потребителю, такому как GitHub Dependency Graph.

    Функция отправки SBOM в GitHub доступна только в том случае, если у вас в репозитории включён GitHub Dependency Graph.

    Чтобы отправить результаты в GitHub Dependency Graph, вам потребуется создать GitHub PAT или использовать токен установки GitHub (также известный как GITHUB_TOKEN):```yaml

    name: Generate SBOM on: push: branches: - main

    GITHUB_TOKEN authentication, add only if you're not going to use a PAT

    permissions: contents: write

    jobs: generate-sbom: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4

    root@kitploit:~
      - name: Run Trivy in GitHub SBOM mode and submit results to Dependency Graph
        uses: aquasecurity/[email protected]
        with:
          scan-type: 'fs'
          format: 'github'
          output: 'dependency-results.sbom.json'
          scan-ref: '.'
          github-pat: ${{ secrets.GITHUB_TOKEN }} # or ${{ secrets.github_pat_name }} if you're using a PAT
    
    root@kitploit:~
    При сканировании образов вам может понадобиться разобрать фактический выходной JSON, так как Github Dependency не показывает все детали, например, путь к файлу каждой зависимости.
    
    Вы можете загрузить отчёт как артефакт и скачать его, например, с помощью [действия upload-artifact](https://github.com/actions/upload-artifact):```yaml
    ---
    name: Generate SBOM
    on:
      push:
        branches:
        - main
    
    ## GITHUB_TOKEN authentication, add only if you're not going to use a PAT
    permissions:
      contents: write
    
    jobs:
      generate-sbom:
        runs-on: ubuntu-latest
        steps:
          - name: Scan image in a private registry
            uses: aquasecurity/[email protected]
            with:
              image-ref: "private_image_registry/image_name:image_tag"
              scan-type: image
              format: 'github'
              output: 'dependency-results.sbom.json'
              github-pat: ${{ secrets.GITHUB_TOKEN }} # or ${{ secrets.github_pat_name }} if you're using a PAT
              severity: "MEDIUM,HIGH,CRITICAL"
              scanners: "vuln"
            env:
              TRIVY_USERNAME: "image_registry_admin_username"
              TRIVY_PASSWORD: "image_registry_admin_password"
    
          - name: Upload trivy report as a Github artifact
            uses: actions/upload-artifact@v4
            with:
              name: trivy-sbom-report
              path: '${{ github.workspace }}/dependency-results.sbom.json'
              retention-days: 20 # 90 is the default
    

    Использование Trivy для сканирования вашего приватного реестра

    Также можно сканировать ваш приватный реестр с помощью встроенного сканирования образов Trivy. Всё, что нужно сделать, — установить переменные окружения.

    Реестр Docker Hub

    Для Docker Hub требуются TRIVY_USERNAME и TRIVY_PASSWORD. При загрузке из публичного репозитория устанавливать переменные окружения не нужно.```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 permissions: contents: read # Required to checkout and read repo files security-events: write # Required to upload SARIF results to the GitHub Security tab steps: - name: Checkout code uses: actions/checkout@v4

    root@kitploit:~
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/[email protected]
        with:
          image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
          format: 'sarif'
          output: 'trivy-results.sarif'
        env:
          TRIVY_USERNAME: Username
          TRIVY_PASSWORD: Password
    
      - name: Upload Trivy scan results to GitHub Security tab
        uses: github/codeql-action/upload-sarif@v4
        with:
          sarif_file: 'trivy-results.sarif'
    
    root@kitploit:~
    #### AWS ECR (Elastic Container Registry)
    Trivy использует AWS SDK. Вам не нужно устанавливать `aws` CLI.
    Вы можете использовать [переменные окружения AWS CLI][env-var].
    
    [env-var]: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html%60%60%60yaml
    name: build
    on:
      push:
        branches:
          - main
      pull_request:
    jobs:
      build:
        name: Build
        runs-on: ubuntu-24.04
        permissions:
          contents: read          # Required to checkout and read repo files
          security-events: write  # Required to upload SARIF files to Security tab
        steps:
          - name: Checkout code
            uses: actions/checkout@v4
    
          - name: Run Trivy vulnerability scanner
            uses: aquasecurity/[email protected]
            with:
              image-ref: 'aws_account_id.dkr.ecr.region.amazonaws.com/imageName:${{ github.sha }}'
              format: 'sarif'
              output: 'trivy-results.sarif'
            env:
              AWS_ACCESS_KEY_ID: key_id
              AWS_SECRET_ACCESS_KEY: access_key
              AWS_DEFAULT_REGION: us-west-2
    
          - name: Upload Trivy scan results to GitHub Security tab
            uses: github/codeql-action/upload-sarif@v4
            with:
              sarif_file: 'trivy-results.sarif'
    

    GCR (Google Container Registry)

    Trivy использует Google Cloud SDK. Вам не нужно устанавливать команду gcloud.

    Если вы хотите использовать репозиторий целевого проекта, вы можете настроить его через GOOGLE_APPLICATION_CREDENTIALS.```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 permissions: contents: read # Required to checkout and read repo files security-events: write # Required to upload SARIF files to Security tab steps: - name: Checkout code uses: actions/checkout@v4

    root@kitploit:~
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/[email protected]
        with:
          image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
          format: 'sarif'
          output: 'trivy-results.sarif'
        env:
          GOOGLE_APPLICATION_CREDENTIALS: /path/to/credential.json
    
      - name: Upload Trivy scan results to GitHub Security tab
        uses: github/codeql-action/upload-sarif@v4
        with:
          sarif_file: 'trivy-results.sarif'
    
    root@kitploit:~
    #### Самостоятельный хостинг
    Серверу BasicAuth требуются `TRIVY_USERNAME` и `TRIVY_PASSWORD`.
    если вы хотите использовать порт 80, используйте NonSSL `TRIVY_NON_SSL=true````yaml
    name: build
    on:
      push:
        branches:
          - main
      pull_request:
    jobs:
      build:
        name: Build
        runs-on: ubuntu-24.04
        permissions:
          contents: read          # Required to checkout and read repo files
          security-events: write  # Required to upload SARIF files to Security tab
        steps:
          - name: Checkout code
            uses: actions/checkout@v4
    
          - name: Run Trivy vulnerability scanner
            uses: aquasecurity/[email protected]
            with:
              image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
              format: 'sarif'
              output: 'trivy-results.sarif'
            env:
              TRIVY_USERNAME: Username
              TRIVY_PASSWORD: Password
    
          - name: Upload Trivy scan results to GitHub Security tab
            uses: github/codeql-action/upload-sarif@v4
            with:
              sarif_file: 'trivy-results.sarif'
    

    Использование Trivy, если у вас не включено сканирование кода

    Также можно просмотреть результат сканирования в сводке рабочего процесса.

    Этот шаг особенно полезен для частных репозиториев без лицензии GitHub Advanced Security.```yaml

    • name: Run Trivy scanner uses: aquasecurity/[email protected] with: scan-type: config hide-progress: true output: trivy.txt

    • name: Publish Trivy Output to Summary run: | if [[ -s trivy.txt ]]; then { echo "### Security Output" echo "

      Click to expand" echo "" echo 'terraform' cat trivy.txt echo '' echo "
      " } >> $GITHUB_STEP_SUMMARY fi

    root@kitploit:~
    ## Настройка
    
    Приоритет конфигурации:
    - [Входные параметры](#inputs)
    - [Переменные окружения](#environment-variables)
    - [Файл конфигурации Trivy](#trivy-config-file)
    - Значения по умолчанию
    
    
    ### Входные параметры
    
    Следующие входные параметры могут использоваться как ключи `step.with`:
    
    | Имя                          | Тип     | По умолчанию                       | Описание                                                                                                                                                         |
    |------------------------------|---------|------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
    | `scan-type`                  | String  | `image`                            | Тип сканирования, например `image` или `fs`                                                                                                                      |
    | `input`                      | String  |                                    | Ссылка на tar-архив, например `alpine-latest.tar`                                                                                                                |
    | `image-ref`                  | String  |                                    | Ссылка на образ, например `alpine:3.10.2`                                                                                                                        |
    | `scan-ref`                   | String  | `/github/workspace/`               | Ссылка для сканирования, например `/github/workspace/` или `.`                                                                                                   |
    | `format`                     | String  | `table`                            | Формат вывода (`table`, `json`, `template`, `sarif`, `cyclonedx`, `spdx`, `spdx-json`, `github`, `cosign-vuln`)                                                  |
    | `template`                   | String  |                                    | Шаблон вывода (`@$HOME/.local/bin/trivy-bin/contrib/gitlab.tpl`, `@$HOME/.local/bin/trivy-bin/contrib/junit.tpl`)                                                |
    | `tf-vars`                    | String  |                                    | Путь к файлу переменных Terraform                                                                                                                                |
    | `output`                     | String  |                                    | Сохранить результаты в файл                                                                                                                                      |
    | `exit-code`                  | String  | `0`                                | Код возврата при обнаружении указанных уязвимостей                                                                                                               |
    | `ignore-unfixed`             | Boolean | false                              | Игнорировать незакрытые/неисправленные уязвимости                                                                                                                |
    | `vuln-type`                  | String  | `os,library`                       | Типы уязвимостей (os,library)                                                                                                                                    |
    | `severity`                   | String  | `UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL` | Уровни серьезности уязвимостей для поиска и отображения                                                                                                          |
    | `skip-dirs`                  | String  |                                    | Список каталогов, в которых пропускается обход, разделенный запятыми                                                                                             |
    | `skip-files`                 | String  |                                    | Список файлов, в которых пропускается обход, разделенный запятыми                                                                                                |
    | `cache-dir`                  | String  | `$GITHUB_WORKSPACE/.cache/trivy`   | Каталог кэша. ПРИМЕЧАНИЕ: это значение нельзя настроить через `trivy.yaml`.                                                                                      |
    | `timeout`                    | String  | `5m0s`                             | Тайм-аут сканирования                                                                                                                                            |
    | `ignore-policy`              | String  |                                    | Фильтрация уязвимостей с помощью языка OPA Rego                                                                                                                  |
    | `hide-progress`              | String  | `false`                            | Отключить индикатор выполнения и вывод журнала                                                                                                                   |
    | `list-all-pkgs`              | String  |                                    | Вывести все пакеты независимо от уязвимости                                                                                                                      |
    | `scanners`                   | String  | `vuln,secret`                      | Список типов проверок безопасности через запятую (`vuln`,`secret`,`misconfig`,`license`)                                                                        |
    | `trivyignores`               | String  |                                    | Список относительных путей внутри репозитория к одному или нескольким файлам `.trivyignore`, разделенных запятыми, или один файл `.trivyignore.yaml`.            |
    | `trivy-config`               | String  |                                    | Путь к конфигурационному файлу trivy.yaml                                                                                                                        |
    | `github-pat`                 | String  |                                    | Токен аутентификации для отправки результатов сканирования SBOM в граф зависимостей GitHub. Может быть либо личным токеном доступа GitHub (PAT), либо GITHUB_TOKEN |
    | `limit-severities-for-sarif` | Boolean | false                              | По умолчанию формат *SARIF* выводит все уязвимости независимо от настроенных уровней серьезности. Чтобы переопределить это поведение, установите параметр **true** |
    | `docker-host`                | String  |                                    | По умолчанию установлено `unix://var/run/docker.sock`, но может быть изменено для помощи с контейнеризированной инфраструктурой (требуется `unix:/` или другой префикс) |
    | `version`                    | String  | `v0.72.0`                          | Версия Trivy для использования, например `latest` или `v0.72.0`                                                                                                  |
    | `skip-setup-trivy`           | Boolean | false                              | Пропустить вызов действия `setup-trivy` для установки `trivy`                                                                                                    |
    | `token-setup-trivy`          | Boolean |                                    | Переопределить `github.token`, используемый `setup-trivy` для клонирования репозитория `trivy`                                                                   |
    
    ### Переменные окружения
    Вы можете использовать [переменные окружения Trivy][trivy-env] для установки необходимых параметров (включая флаги, которые не поддерживаются [Входными параметрами](#inputs), такие как `--secret-config`).
    
    **Примечание:** В некоторых старых версиях Action была ошибка, из-за которой входные параметры из одного вызова Action просачивались 
    в последующие вызовы Action. Это могло приводить к тому, что рабочие процессы, вызывающие Action несколько раз, например для 
    выполнения нескольких сканирований или для тех же сканирований с разными форматами вывода, не давали желаемого результата. Вы можете проверить,
    является ли это вашим случаем, посмотрев информацию о шаге GitHub Actions: если в разделе `env`, показанном в выводе вашего Actions,
    содержатся переменные окружения `TRIVY_*`, которые вы явно не задавали, возможно, вы подвержены этой ошибке и должны 
    обновиться до последней версии Action.
    
    ### Файл конфигурации Trivy
    При использовании `trivy-config` [Входного параметра](#inputs) вы можете задавать параметры через [файл конфигурации Trivy][trivy-config] (включая флаги, которые не поддерживаются [Входными параметрами](#inputs), такие как `--secret-config`).
    
    [release]: https://github.com/aquasecurity/trivy-action/releases/latest
    [release-img]: https://img.shields.io/github/release/aquasecurity/trivy-action.svg?logo=github
    [marketplace]: https://github.com/marketplace/actions/aqua-security-trivy
    [marketplace-img]: https://img.shields.io/badge/marketplace-trivy--action-blue?logo=github
    [license]: https://raw.githubusercontent.com/aquasecurity/trivy-action/master/LICENSE
    [license-img]: https://img.shields.io/github/license/aquasecurity/trivy-action
    [trivy-env]: https://aquasecurity.github.io/trivy/latest/docs/configuration/#environment-variables
    [trivy-config]: https://aquasecurity.github.io/trivy/latest/docs/references/configuration/config-file/
    [trivy-templates]: https://aquasecurity.github.io/trivy/latest/docs/configuration/reporting/#template
    [trivy-default-templates]: https://aquasecurity.github.io/trivy/latest/docs/configuration/reporting/#template
    
    Скачать инструмент