コンテナの脅威
Dockerとイメージに潜むリスクを理解します
「コンテナの脅威」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
コンテナとは
コンテナは、アプリケーションとその依存関係をまとめてパッケージ化し、どこでも同じように実行できるようにします。
Dockerなどのツールによってコンテナが普及したのは、仮想マシンと比べて起動が速く、軽量だからです。
共有カーネルのリスク
仮想マシンとは異なり、同じホスト上のコンテナはオペレーティングシステムのカーネルを共有します。
攻撃者がコンテナから脱出すると、その共有カーネルがホストや他のコンテナへ侵入する経路になる可能性があります。
信頼できないイメージ
多くのチームは、パブリックレジストリからイメージを取得します。
不明な作成者によるイメージには、マルウェア、バックドア、隠れた暗号資産マイナーが含まれている可能性があります。イメージの入手元は必ず把握してください。
脆弱なベースイメージ
信頼できるイメージでも、古い場合は危険です。
数か月前に作成されたベースイメージには、上流でずっと前に修正されたライブラリの既知の脆弱性が残っている可能性があります。
イメージへのシークレットの埋め込み
よくある間違いは、イメージにパスワードやAPIキーをハードコードすることです。
イメージを取得できる人は誰でも、そのシークレットを読み取れます。レイヤーを調べれば簡単に見つかります。
docker history myapp:latestrootでの実行
デフォルトでは、コンテナ内のプロセスがrootとして実行されることがよくあります。
そのプロセスが侵害されると、攻撃者はコンテナ内でrootレベルの権限を得るため、コンテナから脱出された場合の危険性が大幅に高まります。
過度に広い権限
追加の権限を与えるフラグは、攻撃対象領域を広げます。
コンテナを特権モードで実行すると、分離機能のほとんどが失われます。
docker run --privileged myapp絶対に必要な場合を除き、使用しないでください。
公開されたポートとサービス
コンテナでは、ネットワークポートを公開することがよくあります。
データベースをインターネットに公開する場合など、不要なポートが開いていると、攻撃者に直接狙われます。本当に必要なポートだけを公開してください。
安全でないレジストリ
暗号化も認証もされていないレジストリを介してイメージを転送すると、攻撃者に転送中のイメージを改ざんされる可能性があります。
TLSとアクセス制御を備えた、信頼できるレジストリを使用してください。
リソースの悪用
制限のないコンテナは、ホスト上のCPUやメモリをすべて消費する可能性があります。
これにより、他のワークロードがサービス拒否状態になります。一つのコンテナが他のコンテナのリソースを枯渇させないよう、リソース制限を設定してください。
全体像
コンテナのリスクは、ライフサイクル全体に及びます。
- ビルド元のイメージ
- イメージの取得元となるレジストリ
- 実行時に付与する権限
- 共有するホスト
各段階に注意を払う必要があります。
簡単な確認
コンテナからの脱出が、VMからの脱出よりも深刻になりやすいのはなぜでしょうか。
まとめ
コンテナの脅威には、信頼できないイメージ、古いベースイメージ、埋め込まれたシークレット、rootでの実行、特権モード、公開されたポート、共有カーネルなどがあります。
これらのリスクを把握することが、コンテナのデプロイを安全にするための第一歩です。
よくある質問
「コンテナの脅威」レッスンは無料ですか?
はい。「コンテナの脅威」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「コンテナの脅威」で何を学びますか?
Dockerとイメージに潜むリスクを理解します ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「コンテナの脅威」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。