Syntax highlighting of devops/vln
= Уязвимости = <<TableOfContents(2)>> == Refs == [[https://ossindex.sonatype.org/]] == Уязвимости в зависимостях == === dependency-check === [[https://owasp.org/www-project-dependency-check|Homepage]] [[https://github.com/jeremylong/DependencyCheck|Sourcecode]] [[https://hub.docker.com/r/owasp/dependency-check|Image 1]] [[https://hub.docker.com/r/owasp/dependency-check-action|Image 2]] Варианты запуска: '''image 1''' - Образ программы. Запускаем сценарий по ссылке из директории проекта. Программа скачивает базу уязвимостей и запускает проверку. База уязвимостей кэшируется на хосте и обновляется при очередном запуске. . Сценарий падает при сохранении отчета. Лечение - заменяем `-u $(id -u ${USER}):$(id -g ${USER})` на `-u root` '''image 2''' - Образ программы с базой уязвимостей. Выполняем команду ниже: {{{#!highlight bash docker pull owasp/dependency-check-action:latest docker run --rm \ --volume $(pwd):/src \ --volume $(pwd)/odc-reports:/report:z \ owasp/dependency-check-action:latest --scan /src --format HTML --project app --out /report }}} Вызов программы внутри контейнера {{{#!highlight bash docker run --rm \ --entrypoint=/bin/sh -it \ --volume $(pwd):/src \ --volume $(pwd)/odc-reports:/report:z \ owasp/dependency-check-action:latest /usr/share/dependency-check/bin/dependency-check.sh --scan /src --format HTML --project app --out /report }}} Параметр `--failOnCVSS SCORE` задает рейтинг найденных уязвимостей, при котором проверка упадет. Например, параметр `--failOnCVSS 9.0` приведет к падению сценария проверки, если одна или более найденных уязвимостей будут иметь рейтинг >= 9.0. О рейтинге уязвимостей - https://nvd.nist.gov/vuln-metrics/cvss {{https://clck.ru/sH78d|CVSS ratings}} {{{#!highlight bash # ... /usr/share/dependency-check/bin/dependency-check.sh \ --scan /src --format HTML --project app --out /report --failOnCVSS 9.0 # ... # [INFO] Writing report to: /report/dependency-check-report.html # [ERROR] # # One or more dependencies were identified with vulnerabilities that have a CVSS score greater than or equal to '9.0': # # app.jar: h2-1.4.197.jar: CVE-2022-23221(9.8), CVE-2021-42392(9.8) # app.jar: spring-core-5.3.13.jar: CVE-2022-22965(9.8) # app.jar: spring-web-5.3.13.jar: CVE-2022-22965(9.8), CVE-2016-1000027(9.8) }}} == Уязвимости в Docker-образах == === Gitlab Way === https://docs.gitlab.com/ee/user/application_security/container_scanning/ {{{#!highlight bash # --- check Docker image for vulnerabilites docker run --rm \ -e DOCKER_IMAGE=image-name \ registry.gitlab.com/security-products/container-scanning:5 \ gtcs scan }}} Результат работы проверки всегда позитивный, независимо от наличия найденных уязвимостей (перепроверить). Для того, что проверка "падала", необходимо в конфигурации линии сборки добавить следующую конфигурацию: {{{#!highlight yaml script: - gtcs scan # --- gtcs always exit with 0 so job always success # --- workaround # see https://gitlab.com/gitlab-org/gitlab/-/issues/213087 - sudo apt update && sudo apt install -y jq - | [ $(jq '.vulnerabilities | length' gl-container-scanning-report.json) -eq 0 ] }}} === Trivy === [[https://github.com/aquasecurity/trivy||class=" moin-https"]] [[https://trivy.dev/||class=" moin-https"]] [[https://aquasecurity.github.io/trivy/v0.34/getting-started/installation/|Installation|class=" moin-https"]] {{{#!highlight bash trivy image nginx:latest }}}
