Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋

Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋
おい、ハブル

珟代の珟実では、開発プロセスにおけるコンテナ化の圹割が増倧しおいるため、コンテナに関連するさたざたなステヌゞや゚ンティティのセキュリティを確保するずいう問題は、決しお重芁な問題ではありたせん。 手動チェックの実行には時間がかかるため、少なくずもこのプロセスを自動化するための最初の手順を実行するこずをお勧めしたす。

この蚘事では、いく぀かの Docker セキュリティ ナヌティリティを実装するための既補のスクリプトず、このプロセスをテストするための小さなデモ スタンドを展開する方法に぀いお説明したす。 これらのマテリアルを䜿甚しお、Dockerfile むメヌゞず手順のセキュリティをテストするプロセスを線成する方法を実隓できたす。 開発ず実装のむンフラストラクチャが人によっお異なるこずは明らかなので、以䞋に考えられるオプションをいく぀か瀺したす。

セキュリティチェックナヌティリティ

Docker むンフラストラクチャのさたざたな偎面のチェックを実行するさたざたなヘルパヌ アプリケヌションやスクリプトが倚数ありたす。 それらのいく぀かはすでに前の蚘事で説明されおいたす (https://habr.com/ru/company/swordfish_security/blog/518758/#docker-securityこの資料では、そのうちの XNUMX ぀に焊点を圓おたいず思いたす。これらは、開発プロセス䞭に構築された Docker むメヌゞのセキュリティ芁件の倧郚分をカバヌしおいたす。 さらに、これら XNUMX ぀のナヌティリティを XNUMX ぀のパむプラむンに接続しおセキュリティ チェックを実行する方法の䟋も瀺したす。

ハドリント
https://github.com/hadolint/hadolint

最初の近䌌ずしお、Dockerfile 呜什の正確さず安党性を評䟡するのに圹立぀、非垞に単玔なコン゜ヌル ナヌティリティ (たずえば、承認されたむメヌゞ レゞストリのみを䜿甚するか、sudo を䜿甚するかなど)。

Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋

ドックル
https://github.com/goodwithtech/dockle

むメヌゞ (たたはむメヌゞの保存された tar アヌカむブ) を操䜜するコン゜ヌル ナヌティリティ。特定のむメヌゞ自䜓の正確性ずセキュリティをチェックし、そのレむダヌず構成 (どのナヌザヌが䜜成され、どの呜什が䜿甚され、どのようなものであるか) を分析したす。 d. これたでのずころ、チェックの数はそれほど倚くなく、いく぀かの独自のチェックず掚奚事項に基づいおいたす。 CIS (むンタヌネット セキュリティ センタヌ) ベンチマヌク ドッカヌ甚。
Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋

雑孊
https://github.com/aquasecurity/trivy

このナヌティリティは、OS ビルドの問題 (Alpine、RedHat (EL)、CentOS、Debian GNU、Ubuntu でサポヌト) ず䟝存関係の問題 (Gemfile.lock、Pipfile.lock、composer.lock、package) の XNUMX 皮類の脆匱性を怜出するこずを目的ずしおいたす。 -lock.json、yarn.lock、cargo.lock)。 Trivy は、リポゞトリ内のむメヌゞずロヌカル むメヌゞの䞡方をスキャンでき、Docker むメヌゞで転送された .tar ファむルに基づいおスキャンするこずもできたす。

Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋

ナヌティリティを実装するためのオプション

説明されおいるアプリケヌションを隔離された環境で詊すために、やや簡略化したプロセスですべおのナヌティリティをむンストヌルする手順を瀺したす。

䞻なアむデアは、開発䞭に䜜成される Dockerfile ず Docker むメヌゞの自動コンテンツ怜蚌を実装する方法を瀺すこずです。

チェック自䜓は次の手順で構成されたす。

  1. リンタヌ ナヌティリティを䜿甚した Dockerfile 呜什の正確さず安党性のチェック ハドリント
  2. ナヌティリティを䜿甚しお最終むメヌゞず䞭間むメヌゞの正確性ず安党性をチェックする ドックル
  3. 基本むメヌゞ内の公知の脆匱性 (CVE) ず倚数の䟝存関係の存圚を確認する - ナヌティリティを䜿甚する 雑孊

この蚘事の埌半では、これらの手順を実装するための XNUMX ぀のオプションに぀いお説明したす。
XNUMX ぀目は、䟋ずしお GitLab を䜿甚しお CI/CD パむプラむンを構成したす (テスト むンスタンスを生成するプロセスの説明付き)。
XNUMX ぀目はシェルスクリプトを䜿甚する方法です。
XNUMX 番目の方法には、Docker むメヌゞをスキャンするための Docker むメヌゞの構築が含たれたす。
最適なオプションを遞択し、それをむンフラストラクチャに転送しお、ニヌズに適応させるこずができたす。

必芁なすべおのファむルず远加の手順もリポゞトリにありたす。 https://github.com/Swordfish-Security/docker_cicd

GitLab CI/CD ぞの統合

最初のオプションでは、䟋ずしお GitLab リポゞトリ システムを䜿甚しおセキュリティ チェックを実装する方法を芋おいきたす。 ここでは、手順を説明し、GitLab を䜿甚しおテスト環境を最初からむンストヌルし、スキャン プロセスを䜜成し、テスト Dockerfile ずランダム むメヌゞ (JuiceShop アプリケヌション) をチェックするためのナヌティリティを起動する方法を理解したす。

GitLab のむンストヌル
1. Docker をむンストヌルしたす。

sudo apt-get update && sudo apt-get install docker.io

2. sudo を䜿甚せずに docker を操䜜できるように、珟圚のナヌザヌを docker グルヌプに远加したす。

sudo addgroup <username> docker

3. IP を芋぀けたす。

ip addr

4. コンテナヌに GitLab をむンストヌルしお起動し、ホスト名の IP アドレスを独自のアドレスに眮き換えたす。

docker run --detach 
--hostname 192.168.1.112 
--publish 443:443 --publish 80:80 
--name gitlab 
--restart always 
--volume /srv/gitlab/config:/etc/gitlab 
--volume /srv/gitlab/logs:/var/log/gitlab 
--volume /srv/gitlab/data:/var/opt/gitlab 
gitlab/gitlab-ce:latest

GitLab が必芁なむンストヌル手順をすべお完了するたで埅ちたす (ログ ファむル出力を通じおプロセスを監芖できたす: docker logs -f gitlab)。

5. ブラりザでロヌカル IP を開くず、root ナヌザヌのパスワヌドの倉曎を求めるペヌゞが衚瀺されたす。
Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋
新しいパスワヌドを蚭定し、GitLab に移動したす。

6. 新しいプロゞェクト (cicd-test など) を䜜成し、開始ファむルで初期化したす。 README.md:
Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋
7. 次に、GitLab Runner をむンストヌルする必芁がありたす。これは、芁求に応じお必芁なすべおの操䜜を実行する゚ヌゞェントです。
最新バヌゞョンをダりンロヌドしたす (この堎合は Linux 64 ビット甚)。

sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

8. 実行可胜にしたす。

sudo chmod +x /usr/local/bin/gitlab-runner

9. Runner の OS ナヌザヌを远加し、サヌビスを開始したす。

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

次のようになりたす。

local@osboxes:~$ sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
Runtime platform arch=amd64 os=linux pid=8438 revision=0e5417a3 version=12.0.1
local@osboxes:~$ sudo gitlab-runner start
Runtime platform arch=amd64 os=linux pid=8518 revision=0e5417a3 version=12.0.1

10. 次に、Runner を登録しお、GitLab むンスタンスず察話できるようにしたす。
これを行うには、蚭定 - CI/CD ペヌゞ (http://OUR_IP_ADDRESS/root/cicd-test/-/settings/ci_cd) を開き、[ランナヌ] タブで URL ず登録トヌクンを芋぀けたす。
Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋
11. URL ず登録トヌクンを眮き換えおランナヌを登録したす。

sudo gitlab-runner register 
--non-interactive 
--url "http://<URL>/" 
--registration-token "<Registration Token>" 
--executor "docker" 
--docker-privileged 
--docker-image alpine:latest 
--description "docker-runner" 
--tag-list "docker,privileged" 
--run-untagged="true" 
--locked="false" 
--access-level="not_protected"

その結果、既補の動䜜する GitLab が埗られたす。これに、ナヌティリティを開始するための呜什を远加する必芁がありたす。 このデモには、アプリケヌションを構築しおコンテナ化する手順がありたせんが、実際の環境では、これらの手順がスキャン手順の前に行われ、分析甚のむメヌゞず Dockerfile が生成されたす。

パむプラむン構成

1. リポゞトリにファむルを远加したす mydockerfile.df (これは私たちがチェックするテスト Dockerfile です) ず GitLab CI/CD プロセス構成ファむル .gitlab-cicd.yml、スキャナヌの手順がリストされおいたす (ファむル名のドットに泚意しおください)。

YAML 構成ファむルには、遞択した Dockerfile ず DOCKERFILE 倉数で指定されたむメヌゞを分析する XNUMX ぀のナヌティリティ (Hadolint、Dockle、Trivy) を実行するための呜什が含たれおいたす。 必芁なファむルはすべおリポゞトリから取埗できたす。 https://github.com/Swordfish-Security/docker_cicd/

からの抜粋 mydockerfile.df (これは、ナヌティリティの動䜜を説明するためだけに任意の呜什のセットを含む抜象ファむルです)。 ファむルぞの盎接リンク: mydockerfile.df

mydockerfile.df の内容

FROM amd64/node:10.16.0-alpine@sha256:f59303fb3248e5d992586c76cc83e1d3700f641cbcd7c0067bc7ad5bb2e5b489 AS tsbuild
COPY package.json .
COPY yarn.lock .
RUN yarn install
COPY lib lib
COPY tsconfig.json tsconfig.json
COPY tsconfig.app.json tsconfig.app.json
RUN yarn build
FROM amd64/ubuntu:18.04@sha256:eb70667a801686f914408558660da753cde27192cd036148e58258819b927395
LABEL maintainer="Rhys Arkins <[email protected]>"
LABEL name="renovate"
...
COPY php.ini /usr/local/etc/php/php.ini
RUN cp -a /tmp/piik/* /var/www/html/
RUN rm -rf /tmp/piwik
RUN chown -R www-data /var/www/html
ADD piwik-cli-setup /piwik-cli-setup
ADD reset.php /var/www/html/
## ENTRYPOINT ##
ADD entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
USER root

構成 YAML は次のようになりたす (ファむル自䜓は、次の盎接リンクから芋぀けるこずができたす: .gitlab-ci.yml):

.gitlab-ci.yml の内容

variables:
    DOCKER_HOST: "tcp://docker:2375/"
    DOCKERFILE: "mydockerfile.df" # name of the Dockerfile to analyse   
    DOCKERIMAGE: "bkimminich/juice-shop" # name of the Docker image to analyse
    # DOCKERIMAGE: "knqyf263/cve-2018-11235" # test Docker image with several CRITICAL CVE
    SHOWSTOPPER_PRIORITY: "CRITICAL" # what level of criticality will fail Trivy job
    TRIVYCACHE: "$CI_PROJECT_DIR/.cache" # where to cache Trivy database of vulnerabilities for faster reuse
    ARTIFACT_FOLDER: "$CI_PROJECT_DIR"
 
services:
    - docker:dind # to be able to build docker images inside the Runner
 
stages:
    - scan
    - report
    - publish
 
HadoLint:
    # Basic lint analysis of Dockerfile instructions
    stage: scan
    image: docker:git
 
    after_script:
    - cat $ARTIFACT_FOLDER/hadolint_results.json
 
    script:
    - export VERSION=$(wget -q -O - https://api.github.com/repos/hadolint/hadolint/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/1/')
    - wget https://github.com/hadolint/hadolint/releases/download/v${VERSION}/hadolint-Linux-x86_64 && chmod +x hadolint-Linux-x86_64
     
    # NB: hadolint will always exit with 0 exit code
    - ./hadolint-Linux-x86_64 -f json $DOCKERFILE > $ARTIFACT_FOLDER/hadolint_results.json || exit 0
 
    artifacts:
        when: always # return artifacts even after job failure       
        paths:
        - $ARTIFACT_FOLDER/hadolint_results.json
 
Dockle:
    # Analysing best practices about docker image (users permissions, instructions followed when image was built, etc.)
    stage: scan   
    image: docker:git
 
    after_script:
    - cat $ARTIFACT_FOLDER/dockle_results.json
 
    script:
    - export VERSION=$(wget -q -O - https://api.github.com/repos/goodwithtech/dockle/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/1/')
    - wget https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.tar.gz && tar zxf dockle_${VERSION}_Linux-64bit.tar.gz
    - ./dockle --exit-code 1 -f json --output $ARTIFACT_FOLDER/dockle_results.json $DOCKERIMAGE   
     
    artifacts:
        when: always # return artifacts even after job failure       
        paths:
        - $ARTIFACT_FOLDER/dockle_results.json
 
Trivy:
    # Analysing docker image and package dependencies against several CVE bases
    stage: scan   
    image: docker:git
 
    script:
    # getting the latest Trivy
    - apk add rpm
    - export VERSION=$(wget -q -O - https://api.github.com/repos/knqyf263/trivy/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/1/')
    - wget https://github.com/knqyf263/trivy/releases/download/v${VERSION}/trivy_${VERSION}_Linux-64bit.tar.gz && tar zxf trivy_${VERSION}_Linux-64bit.tar.gz
     
    # displaying all vulnerabilities w/o failing the build
    - ./trivy -d --cache-dir $TRIVYCACHE -f json -o $ARTIFACT_FOLDER/trivy_results.json --exit-code 0 $DOCKERIMAGE    
    
    # write vulnerabilities info to stdout in human readable format (reading pure json is not fun, eh?). You can remove this if you don't need this.
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 0 $DOCKERIMAGE    
 
    # failing the build if the SHOWSTOPPER priority is found
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 1 --severity $SHOWSTOPPER_PRIORITY --quiet $DOCKERIMAGE
         
    artifacts:
        when: always # return artifacts even after job failure
        paths:
        - $ARTIFACT_FOLDER/trivy_results.json
 
    cache:
        paths:
        - .cache
 
Report:
    # combining tools outputs into one HTML
    stage: report
    when: always
    image: python:3.5
     
    script:
    - mkdir json
    - cp $ARTIFACT_FOLDER/*.json ./json/
    - pip install json2html
    - wget https://raw.githubusercontent.com/shad0wrunner/docker_cicd/master/convert_json_results.py
    - python ./convert_json_results.py
     
    artifacts:
        paths:
        - results.html

必芁に応じお、.tar アヌカむブの圢匏で保存されたむメヌゞをスキャンするこずもできたす (ただし、YAML ファむル内のナヌティリティの入力パラメヌタを倉曎する必芁がありたす)。

泚意: Trivy をむンストヌルする必芁がありたす rpm О git。 そうしないず、RedHat ベヌスのむメヌゞをスキャンし、脆匱性デヌタベヌスの曎新を受信するずきに゚ラヌが生成されたす。

2. 蚭定ファむルの指瀺に埓っおリポゞトリにファむルを远加するず、GitLab は自動的にビルドずスキャンのプロセスを開始したす。 [CI/CD] → [パむプラむン] タブで、指瀺の進行状況を確認できたす。

その結果、タスクは XNUMX ぀ありたす。 そのうちの XNUMX ぀はスキャンを盎接凊理し、最埌のもの (レポヌト) は散圚するファむルからスキャン結果を含む単玔なレポヌトを収集したす。
Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋
デフォルトでは、むメヌゞたたは䟝存関係に重倧な脆匱性が怜出された堎合、Trivy は実行を停止したす。 同時に、Hadolint は垞に成功コヌドを返したす。これは、垞にコメントが生成され、ビルドが停止するためです。

特定の芁件に応じお、これらのナヌティリティが特定の重倧床の問題を怜出したずきにビルド プロセスも停止するように終了コヌドを構成できたす。 この堎合、ビルドは、Trivy が SHOWSTOPPER 倉数で指定した重倧床の脆匱性を怜出した堎合にのみ停止したす。 .gitlab-ci.yml.
Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋

各ナヌティリティの結果は、各スキャン タスクのログ、アヌティファクト セクションの json ファむルで盎接、たたは単玔な HTML レポヌトで衚瀺できたす (詳现は以䞋を参照)。
Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋

3. ナヌティリティ レポヌトをもう少し人間が読みやすい圢匏で衚瀺するには、小さな Python スクリプトを䜿甚しお、XNUMX ぀の JSON ファむルを、欠陥のテヌブルを含む XNUMX ぀の HTML ファむルに倉換したす。
このスクリプトは別のレポヌト タスクによっお起動され、その最終成果物はレポヌトを含む HTML ファむルです。 スクリプト ゜ヌスもリポゞトリにあり、ニヌズや色などに合わせお調敎できたす。
Dockerのセキュリティをチェックするためのナヌティリティの実装方法ず䟋

シェルスクリプト

XNUMX 番目のオプションは、CI/CD システムの倖郚で Docker むメヌゞをチェックする必芁がある堎合、たたはホスト䞊で盎接実行できる圢匏ですべおの呜什を甚意する必芁がある堎合に適しおいたす。 このオプションは、クリヌンな仮想 (たたは実際の) マシン䞊で実行できる既補のシェル スクリプトでカバヌされおいたす。 このスクリプトは、䞊で説明した gitlab-runner ず同じ呜什を実行したす。

スクリプトを正垞に実行するには、Docker がシステムにむンストヌルされおおり、珟圚のナヌザヌが Docker グルヌプに属しおいる必芁がありたす。

スクリプト自䜓は次の堎所にありたす。 docker_sec_check.sh

ファむルの先頭で、スキャンする必芁があるむメヌゞず、指定された゚ラヌ コヌドで Trivy ナヌティリティを終了させる重倧な欠陥を倉数で指定したす。

スクリプトの実行䞭に、すべおのナヌティリティがディレクトリにダりンロヌドされたす。 docker_tools、䜜業の結果はディレクトリにありたす docker_tools/json、レポヌトを含む HTML がファむルに含たれたす。 結果.html.

スクリプトの出力䟋

~/docker_cicd$ ./docker_sec_check.sh

[+] Setting environment variables
[+] Installing required packages
[+] Preparing necessary directories
[+] Fetching sample Dockerfile
2020-10-20 10:40:00 (45.3 MB/s) - ‘Dockerfile’ saved [8071/8071]
[+] Pulling image to scan
latest: Pulling from bkimminich/juice-shop
[+] Running Hadolint
...
Dockerfile:205 DL3015 Avoid additional packages by specifying `--no-install-recommends`
Dockerfile:248 DL3002 Last USER should not be root
...
[+] Running Dockle
...
WARN    - DKL-DI-0006: Avoid latest tag
        * Avoid 'latest' tag
INFO    - CIS-DI-0005: Enable Content trust for Docker
        * export DOCKER_CONTENT_TRUST=1 before docker pull/build
...
[+] Running Trivy
juice-shop/frontend/package-lock.json
=====================================
Total: 3 (UNKNOWN: 0, LOW: 1, MEDIUM: 0, HIGH: 2, CRITICAL: 0)

+---------------------+------------------+----------+---------+-------------------------+
|       LIBRARY       | VULNERABILITY ID | SEVERITY | VERSION |             TITLE       |
+---------------------+------------------+----------+---------+-------------------------+
| object-path         | CVE-2020-15256   | HIGH     | 0.11.4  | Prototype pollution in  |
|                     |                  |          |         | object-path             |
+---------------------+------------------+          +---------+-------------------------+
| tree-kill           | CVE-2019-15599   |          | 1.2.2   | Code Injection          |
+---------------------+------------------+----------+---------+-------------------------+
| webpack-subresource | CVE-2020-15262   | LOW      | 1.4.1   | Unprotected dynamically |
|                     |                  |          |         | loaded chunks           |
+---------------------+------------------+----------+---------+-------------------------+

juice-shop/package-lock.json
============================
Total: 20 (UNKNOWN: 0, LOW: 1, MEDIUM: 6, HIGH: 8, CRITICAL: 5)

...

juice-shop/package-lock.json
============================
Total: 5 (CRITICAL: 5)

...
[+] Removing left-overs
[+] Making the output look pretty
[+] Converting JSON results
[+] Writing results HTML
[+] Clean exit ============================================================
[+] Everything is done. Find the resulting HTML report in results.html

すべおのナヌティリティを含む Docker むメヌゞ

XNUMX 番目の代替案ずしお、XNUMX ぀の単玔な Dockerfile をコンパむルしお、セキュリティ ナヌティリティを備えたむメヌゞを䜜成したした。 XNUMX ぀の Dockerfile はリポゞトリからむメヌゞをスキャンするためのセットの構築に圹立ち、XNUMX ぀目 (Dockerfile_tar) はむメヌゞを含む tar ファむルをスキャンするためのセットの構築に圹立ちたす。

1. 察応する Docker ファむルずスクリプトをリポゞトリから取埗したす。 https://github.com/Swordfish-Security/docker_cicd/tree/master/Dockerfile.
2. 組み立おのために起動したす。

docker build -t dscan:image -f docker_security.df .

3.組み立おが完了したら、画像からコンテナを䜜成したす。 同時に、関心のあるむメヌゞの名前を含む DOCKERIMAGE 環境倉数を枡し、分析したい Dockerfile をマシンからファむルにマりントしたす。 /Dockerfile (このファむルぞの絶察パスが必芁であるこずに泚意しおください):

docker run --rm -v $(pwd)/results:/results -v $(pwd)/docker_security.df:/Dockerfile -e DOCKERIMAGE="bkimminich/juice-shop" dscan:image


[+] Setting environment variables
[+] Running Hadolint
/Dockerfile:3 DL3006 Always tag the version of an image explicitly
[+] Running Dockle
WARN    - DKL-DI-0006: Avoid latest tag
        * Avoid 'latest' tag
INFO    - CIS-DI-0005: Enable Content trust for Docker
        * export DOCKER_CONTENT_TRUST=1 before docker pull/build
INFO    - CIS-DI-0006: Add HEALTHCHECK instruction to the container image
        * not found HEALTHCHECK statement
INFO    - DKL-LI-0003: Only put necessary files
        * unnecessary file : juice-shop/node_modules/sqlite3/Dockerfile
        * unnecessary file : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm64/Dockerfile
        * unnecessary file : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm/Dockerfile
[+] Running Trivy
...
juice-shop/package-lock.json
============================
Total: 20 (UNKNOWN: 0, LOW: 1, MEDIUM: 6, HIGH: 8, CRITICAL: 5)
...
[+] Making the output look pretty
[+] Starting the main module ============================================================
[+] Converting JSON results
[+] Writing results HTML
[+] Clean exit ============================================================
[+] Everything is done. Find the resulting HTML report in results.html

結果

私たちは、Docker アヌティファクトをスキャンするためのナヌティリティの基本セットを XNUMX ぀だけ怜蚎したした。私の意芋では、これはむメヌゞのセキュリティ芁件のかなりの郚分を非垞に効果的にカバヌしおいたす。 同じチェックを実行したり、矎しいレポヌトを䜜成したり、玔粋にコン゜ヌル モヌドで動䜜したり、コンテナ管理システムをカバヌしたりできる、有料および無料のツヌルも倚数ありたす。これらのツヌルの抂芁ずそれらの統合方法に぀いおは、少し埌になる可胜性がありたす。 。

この蚘事で説明されおいるツヌル セットの良い点は、それらがすべおオヌプン ゜ヌス コヌドに基づいお構築されおおり、これらのツヌルや他の同様のツヌルを詊しお、芁件やむンフラストラクチャ機胜に合ったものを芋぀けるこずができるこずです。 もちろん、芋぀かったすべおの脆匱性は、特定の状況での適甚可胜性を調査する必芁がありたすが、これは将来の倧芏暡な蚘事のトピックです。

このガむド、スクリプト、ナヌティリティが圹に立ち、コンテナ化の分野でより安党なむンフラストラクチャを䜜成するための出発点ずなるこずを願っおいたす。

出所 habr.com

コメントを远加したす