コンテナとマイクロサービスがセキュリティに及ぼす影響

コンテナとマイクロサービスがセキュリティに及ぼす影響
  • クラウドネイティブのアプリケーションとインフラストラクチャでは、セキュリティに対してまったく異なるアプローチが必要です。これらのベストプラクティスを念頭に置いてください

今日、大規模から小規模まで、あらゆる組織がクラウドネイティブ テクノロジーの導入を検討しています。 「クラウド ネイティブ」とは、ソフトウェアをコンテナと呼ばれる標準化されたユニットにパッケージ化するアプローチを指します。コンテナはマイクロサービスに編成され、接続してプログラムを形成し、実行中のアプリケーションが完全に自動化されて速度、柔軟性、スケーラビリティが向上するようにします。

[[209844]]

このアプローチはソフトウェアの構築、展開、実行の方法を根本的に変えるため、ソフトウェアを保護する方法も根本的に変わります。クラウド ネイティブ プログラムとインフラストラクチャは、組織のクラウド ネイティブ テクノロジの使用をサポートするために新しいセキュリティ プログラムを構築する必要のあるセキュリティ専門家にとって、いくつかの新たな課題をもたらします。

これらの課題を確認し、セキュリティ チームがそれらの課題に対処するためにどのようなベスト プラクティスを採用すべきかについて説明します。最初の課題は次のとおりです。

従来のセキュリティ インフラストラクチャにはコンテナの可視性が欠けています。既存のホストベースおよびネットワークベースのセキュリティ ツールのほとんどには、コンテナのアクティビティを監視またはキャプチャする機能がありません。これらのツールは、個々のオペレーティング システムまたはホスト間のトラフィックを保護するように設計されており、それらで実行されているアプリケーションを保護するようには設計されていないため、コンテナ イベント、システムの相互作用、およびコンテナ間のトラフィックの可視性が欠如しています。

攻撃対象領域は急速に変化する可能性があります。クラウド ネイティブ アプリケーションは、マイクロサービスと呼ばれる多数の小さなコンポーネントで構成されており、これらは高度に分散されているため、それぞれを個別に監査して保護する必要があります。これらのアプリケーションはオーケストレーション システムを通じて構成および適応されるように設計されているため、攻撃対象領域は常に変化し、従来のモノリシック アプリケーションよりもはるかに高速です。

分散データフローは継続的に監視する必要があります。コンテナとマイクロサービスは軽量で、プログラム可能な方法で相互接続したり、外部のクラウド サービスと相互接続したりするように設計されています。これにより、環境全体で大量の高速移動データが生成され、攻撃や侵害の兆候、および不正なデータアクセスや流出に対処するために継続的な監視が必要になります。

検出、防止、対応は自動化する必要があります。コンテナによって生成されるイベントの速度と量は、現在のセキュリティ運用プロセスを圧倒します。コンテナの寿命が短いため、インシデントの捕捉、分析、根本原因の特定も困難になります。効果的な脅威保護とは、データの収集、フィルタリング、相関、分析を自動化し、新しいインシデントに迅速に対応できるようにすることを意味します。

これらの新たな課題に直面して、セキュリティ専門家は、組織でのクラウドネイティブ テクノロジの使用をサポートするための新しいセキュリティ プログラムを構築する必要があります。当然のことながら、セキュリティ プランでは、クラウド ネイティブ アプリケーションのライフサイクル全体に対応する必要があります。これは、ビルドとデプロイメント フェーズと、ランタイム フェーズという 2 つの異なるフェーズに分けられます。各フェーズには異なるセキュリティ上の考慮事項があり、包括的なセキュリティ プランを作成するには、これらすべてに対処する必要があります。

コンテナのビルドとデプロイメントの保証

ビルドおよびデプロイ フェーズ中のセキュリティは、開発者のワークフローと継続的インテグレーションおよびデプロイ パイプラインに制御を適用して、コンテナーの起動後に発生する可能性のあるセキュリティ問題のリスクを軽減することに重点を置いています。これらの制御には、次のようなガイドラインとベスト プラクティスが含まれます。

画像はできるだけ小さくしてください。コンテナ イメージは、アプリケーション コードとその依存関係をパッケージ化する軽量の実行可能ファイルです。各イメージをソフトウェアの実行に必要なものに制限することで、イメージから起動される各コンテナの攻撃対象領域を最小限に抑えます。 Alpine Linux などの最小限のオペレーティング システム ベース イメージから開始すると、イメージ サイズが縮小され、イメージの管理が容易になります。

画像のスキャンに関する既知の問題。イメージをビルドするときには、既知の脆弱性の開示がないか確認する必要があります。イメージを構成する各ファイル システム レイヤーをスキャンし、その結果を定期的に更新される Common Vulnerabilities and Exposures (CVE) データベースと比較できます。開発チームとセキュリティ チームは、イメージを使用してコンテナを起動する前に、発見された脆弱性に対処できます。

デジタル署名された画像。イメージが作成されたら、展開する前にその整合性を検証する必要があります。一部の画像形式では、画像の内容が変更されたかどうかを検出するために使用できるダイジェストと呼ばれる一意の識別子が使用されます。秘密キーを使用してイメージに署名すると、コンテナの起動に使用される各イメージが信頼できる当事者によって作成されたことが暗号化によって保証されます。

ホスト オペレーティング システムへのアクセスを強化し、制限します。ホスト上で実行されるコンテナーは同じオペレーティング システムを共有するため、適切に制限された機能セットで起動されるようにする必要があります。これは、Seccomp、AppArmor、SELinux などのカーネル セキュリティ機能とモジュールを使用することで実現できます。

アプリケーション レベルのセグメンテーション戦略を指定します。マイクロサービス間のネットワーク トラフィックをセグメント化して、相互の接続を制限することができます。ただし、これはタグやセレクターなどのアプリケーション レベルのプロパティに基づいて構成する必要があり、IP アドレスなどの従来のネットワークの詳細を処理する複雑さが排除されます。セグメンテーションの課題は、コンテナが通常のアクティビティの一環として環境内および環境間で通信する機能に影響を与えずに、通信を制限するためのポリシーを事前に定義する必要があることです。

コンテナで使用されるシークレットを保護します。マイクロサービスは、パスワード、トークン、キーなどの機密データ(シークレットと呼ばれる)を頻繁に相互に交換します。この秘密情報をイメージや環境変数に保存すると、誤って公開される可能性があります。そのため、Docker や Kubernetes などのいくつかのオーケストレーション プラットフォームでは、シークレットが必要な場合にのみそれを使用するコンテナーに配布されるように、シークレット管理が統合されています。

Docker、Red Hat、CoreOS などの企業が提供するいくつかの主要なコンテナ プラットフォームとツールは、これらの機能の一部またはすべてを提供します。これらのアプローチのいずれかを開始することが、ビルドおよびデプロイフェーズ中に強力なセキュリティを確保する最も簡単な方法です。

ただし、包括的なセキュリティ プログラムを確保するには、ビルドおよび展開フェーズの制御だけでは不十分です。コンテナの実行を開始する前にすべてのセキュリティ インシデントに積極的に対処することは、次の理由により不可能です。まず、脆弱性を完全に排除することはできず、常に新しい脆弱性が出現します。第二に、宣言型コンテナ メタデータとネットワーク セグメンテーション ポリシーでは、高度に分散された環境におけるすべての正当なアプリケーション アクティビティを完全に予測することはできません。 3 番目に、ランタイム コントロールは使い方が複雑で、誤って構成されていることが多く、アプリケーションが脅威に対して脆弱になります。

実行時にコンテナを保護する

実行段階でのセキュリティには、コンテナの実行後に発生する攻撃やポリシー違反を検出して阻止するために必要なすべての機能 (可視性、検出、対応、防止) が含まれます。セキュリティ チームは、セキュリティ インシデントを完全に修復するために、その根本原因をトリアージ、調査、特定する必要があります。ランタイム セキュリティを成功させるための重要な側面は次のとおりです。

継続的な可視性を実現するために、環境全体を計測します。攻撃や侵害を検出するには、実行中のコンテナ内のすべてのアクティビティをリアルタイムでキャプチャし、実用的な「真実のソース」を提供できることから始まります。さまざまな種類のコンテナ関連データをキャプチャするさまざまなインストルメンテーション フレームワークがあります。コンテナの容量と速度に対応できるソリューションを選択することが重要です。

分散された脅威指標を相関させます。コンテナは、リソースの可用性に基づいてコンピューティング インフラストラクチャ全体に分散されるように設計されています。アプリケーションは数百または数千のコンテナで構成される場合があり、侵害の兆候が多数のホストに分散され、アクティブな脅威に関連する重要な兆候を特定することが困難になることがあります。特定の攻撃の根拠となる指標を特定するには、大規模で迅速な相関関係が必要です。

コンテナとマイクロサービスの動作を分析します。マイクロサービスとコンテナを使用すると、アプリケーションを特定の機能を実行し、不変となるように設計された最小のコンポーネントに分割できます。これにより、従来のアプリケーション環境よりも、予想される動作の通常のパターンを理解しやすくなります。これらの動作ベースラインからの逸脱は悪意のある動作を反映している可能性があり、脅威をより正確に検出するために使用できます。

機械学習を通じて脅威の検出を強化します。コンテナ環境で生成されるデータの量と速度は、従来の検出手法を上回っています。自動化と機械学習により、より効果的な動作モデリング、パターン認識、分類が可能になり、より高い忠実度で脅威を検出し、誤検知を減らすことができます。異常を警告するための静的ホワイトリストを生成するためだけに機械学習を使用するソリューションでは、重大なアラートノイズと疲労が発生する可能性があることに注意してください。

許可されていないコンテナ エンジン コマンドを傍受してブロックします。 Docker などのコンテナ エンジンに送信されるコマンドは、コンテナの作成、起動、終了、および実行中のコンテナ内でのコマンドの実行に使用されます。これらのコマンドはコンテナを侵害する意図を反映している可能性があり、つまり、許可されていないコマンドはすべて禁止される可能性があります。

自動応答とフォレンジック。コンテナの寿命が短いため、インシデント対応やフォレンジックのためのインシデントに関する情報がほとんど提供されないことがよくあります。さらに、クラウドネイティブ アーキテクチャでは、インフラストラクチャが不変として扱われることが多く、影響を受けるシステムが自動的に新しいシステムに置き換えられるため、調査中にコンテナーが消えてしまう可能性があります。自動化により、攻撃や侵害の影響を軽減するのに十分な速さで情報が取得、分析、エスカレーションされることが保証されます。

コンテナ テクノロジーとマイクロサービス アーキテクチャに基づくクラウド ネイティブ ソフトウェアにより、アプリケーションとインフラストラクチャが急速に近代化されています。このパラダイムシフトにより、セキュリティ専門家は組織を効果的に保護するために必要な計画を再考する必要に迫られています。クラウドネイティブ ソフトウェアの包括的なセキュリティ プランは、コンテナーの構築、展開、実行におけるアプリケーション ライフサイクル全体に対応します。上記のガイドラインを使用して計画を実装することで、組織はコンテナ インフラストラクチャと、その上で実行されるアプリケーションおよびサービスのための安全な基盤を構築できます。

著者: WeLien Dang は、コンテナに対する適応型脅威保護を提供するセキュリティ企業、StackRox の製品担当副社長です。以前は、CoreOS の製品責任者を務め、Amazon、Splunk、Bracket Computing でセキュリティとクラウド インフラストラクチャの上級製品管理職を歴任しました。

<<:  クラウド コンピューティングの指標をアジリティの指標に変える方法

>>:  クラウド コンピューティング アーキテクチャにおける Cloud TiDB の技術的秘密 (パート 1)

推薦する

ウェブサイトのインタラクション デザインの分析: 依然として盛況で、ケーキにアイシングを追加する場所

ブラウザは魔法のツールとして、インターネットの多彩な世界への窓を開くのに役立ちます。現在まで発展を続...

草の根ウェブマスターが秘密を明かす - SEO をゼロから学ぶ方法

インターネットの普及と発展により、ウェブマスターはウェブサイトプログラムをダウンロードするだけで簡単...

eurobyte: 31元から、ロシア/オランダ、無制限のトラフィックKVM仮想VPS、//中国人はもっと少なくすべき

Eurobyte は 2010 年に設立されたロシアのホスティング会社です。同社の事業は仮想ホスティ...

Alibaba Cloud 上の複数のアカウントを一元管理

1. マルチアカウントアーキテクチャ設計Alibaba Cloud リソースディレクトリ (RD) ...

ビデオソーシャルネットワーキングは誤った提案です!

2005 年の初めに、eBay のエンジニアである Steve Chen が辞任しました。この26歳...

産業用ソフトウェアのクラウド移行の槍と盾

産業用ソフトウェアは数千種類、中小企業は数万社あるが、その中で「鶏や犬の鳴き声は聞こえるが、死ぬまで...

内部ページは含まれているのに、ホームページが更新されていないのはなぜですか?

内側のページは、最近この問題に遭遇することができませんでしたコンテンツと外部リンクに関して、外部のリ...

モバイルゲームダウンロードサイト運営概要

草の根ウェブマスターとして、ウェブサイトを構築する方法を見つけなければなりません。ウェブマスターはウ...

#ドメイン名: com/net/org/biz/info の登録には 6.49 ドルかかります

Zhuzhumao がドメイン名の割引に関する情報を掲載してからかなり経ちました。期限切れのドメイン...

APPを効率的に宣伝するには? 2大チャネルを賢く活用!

APPのプロモーションでは、選択したプロモーションチャネルによって、主なユーザーのソースとユーザーの...

私のウェブサイトは Baidu によって K されました。この方法で回復できますか?

みなさんこんにちは。私はハルビン仮想および現実ウェブサイト設計です。最近、私は百度の調整、ランキング...

百度のアルゴリズムバージョン8.22は本日正午に発効予定

Baidu の 6.22 および 6.28 アルゴリズム アップグレードの結果、多数の Web サイ...

ウェブサイトの重量減少のリスクを回避し、重量戦略の共有を着実に改善する

多くの場合、ウェブサイトはSEOを通じて非常に短期間でランキングを向上させることができますが、そのよ...

flokinet: オランダの苦情に強い VPS、20% 割引、月額 7.6 ユーロ、1G メモリ、1 コア、20g NVMe、3T トラフィック

アイスランドのホスティングプロバイダー flokinet.is (~) は現在、7 月 31 日まで...