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

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

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

[[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)

推薦する

atlantic-real VPS クラウド - 最小 256M メモリ / 5 USD/月 / Linux+Windows

前回の記事で atlantic.net を紹介しました。次に、同社の VPS クラウド サービスにつ...

3分レビュー! 2021年10月のクラウドコンピューティング分野の重要な動向の概要

2020年以降、クラウドコンピューティングがトレンドになりました。ますます多くの資本と企業がクラウド...

検索は新たな三国時代へ:360が百度を攻撃し、Sogouが反撃

8月29日午後4時、奇虎360は公開書簡を発表し、自社の検索機能を強調しながらも「独占禁止法」の旗を...

分散コンピューティングにおけるデータ品質に関する講演

[[442615]] 1. 概要1. データ品質の問題はどこにでもある基本的に、データを利用するすべ...

ユーザーエクスペリエンス分析: 情報製品の読書リストのインタラクティブなデザイン思考

リストは、テーブルをコンテナーとして使用するテキストまたはグラフの形式として定義されます。商品の種類...

大学生が初めて職場に入りSEOに従事する際の評価期間をどうやってうまく通過できるか

著者は、ウェブサイトの最適化を行っている友人の多くが大学を卒業していることに気付きました。彼らが初め...

検索エンジンが重視するものと重視しないもの

SEO に携わる人たちがこう言うのをよく耳にします。「Baidu はまたおかしなことをしているの?」...

エッジコンピューティングは3つの主要システムを再構築し、OICTの共同イノベーションの重要なサポートとなる

ネットワーク エッジ デバイスの数がますます増加しているため、クラウド コンピューティングに基づくエ...

著作権フリー VPS: hostsolutions-2 ユーロ/2g メモリ/30g ハードディスク/30T トラフィック/ルーマニア

hostsolutions.ro は、おそらく最もよく知られているルーマニアのホスティング会社です ...

新しいインフラストラクチャにおけるクラウドとオープンソース、知りたいことはすべてここにあります

疫病のブラックスワンは私たちに前例のない影響をもたらしました。人々の生産と生活のパターンを変える!オ...

パーソナライズされたコンテンツ推奨エンジンが中小規模のウェブサイトへのトラフィックを増加

元のタイトル: パーソナライズされたコンテンツ推奨エンジン Outbrain が、中小規模のウェブサ...

マイクロソフトはソフトウェアとハ​​ードウェアを組み合わせて現代のオフィスを再定義する

テクノロジーの継続的な発展とビジネスモデルの革新により、効率性の向上とコラボレーションの強化を主な特...

friendhosting: 夏のプロモーション、8 つのデータ センター、無制限のトラフィック VPS、半年あたり 7.18 ユーロから

7月31日から8月31日まで、friendhostingの毎年恒例のサマープロモーションが開催中です...

大規模なベアメタル管理は難しい? UMCloudのZhang WenmoがOpenStackを使って問題を解決する方法を教えます

[51CTO.comより引用] 2018年5月18日〜19日、51CTO主催のグローバルソフトウェア...

ネット収入初心者の皆さん、無人オンデマンドステーションで稼げると思いますか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています生放送?ビ...