本文の内容は、2022年2月23日にAnna Belakが投稿したブログ(https://sysdig.com/blog/cloud-kill-security-agents/)を元に日本語に翻訳・再構成した内容となっております。
「エージェントを使うのか?使わないのか?」という議論は古くからあり、永遠に続くものです。約10年ごとに、「エージェントは最悪だ、廃止しよう」「システムを安全に保つためには、より多くの可視性とコントロールが必要だ、今度は “センサー “と呼ぼう」という議論が繰り返されます。最終的には、いつも同じ結論にたどり着きます。銀の弾丸はありません。今日では、クラウドが新たなフロンティアであることから、この議論は健在です。私たちはそうは思いません。
エージェントレスは、クラウド・セキュリティを始めるには最適です。盲点を受け入れたくないのであれば、エージェントや他のアプローチも必要でしょう。
クラウド環境が優れているのは、APIベースの統一されたコントロールプレーンを提供しているからです。これは、エージェントレスのセキュリティ手法に簡単にアクセスでき、多くの種類の問題を特定することができます。さらに、迅速なオンボーディングが可能なので、すぐに勝利を手にした気分になれます。しかし、セキュリティの世界では、すべての話がそれほど単純ではありません。夜眠ることができるかどうかは、初日にすぐに勝てるかどうかよりも、真の意味での多層防御にかかっているのです。クラウド用に設計されたセキュリティ・ツールを評価すると、エージェントレス、エージェント・ベース、そしてそれらを組み合わせたアプローチを採用しているものがあります。あなたのチームがクラウドを使い始めたばかりであっても、環境の拡大やプロセスの成熟に合わせて、ツールがどのように対応するかを検討する必要があります。
以下の表は、クラウド・セキュリティのユースケースの例と、エージェントレスとエージェントベースのどちらのアプローチが適しているかを示しています。
エージェントレスの使用例 |
エージェントベースの使用例 |
|
アセットディスカバリーとインベントリー |
|
|
脆弱性管理 |
|
|
コンフィギュレーション・コンプライアンス |
|
|
ランタイムセキュリティ |
|
|
クラウドセキュリティにおけるエージェントレスアプローチ
エージェントレス・クラウド・セキュリティ・ソリューションは、クラウド環境のセキュリティ・ポスチャーを可視化しながら、目立たず、管理しやすいことを目的としています。メタデータの検査、APIの活用、その他の間接的な方法を用いて、環境の脆弱性や設定ミスをスキャンします。エージェントレス方式では、サーバーレスのコンピュートインスタンスやその他のクラウド・ネイティブ・サービスなど、エージェントによる計測が不可能なシステムや意味をなさないシステムに対して、ある程度の可視性を提供することができます。
エージェントレスのセキュリティツールは魔法ではありません。クラウドアカウントを可視化する必要があります。これは通常、サードパーティ・ベンダーに特別なIAMロールを定義し、スキャンしたい資産へのアクセス(通常は読み取り専用)を許可することで実現します。
多くのエージェントレス・ツールは、「継続的なモニタリング」を売り物にしています。この文脈では、「継続的」とは、通常、毎日または毎時のように「定期的」という意味です。「モニタリング」とは通常「スキャン」を意味します。これらのツールは、現在の状態と最後に確認された状態を比較し、両者の間のあらゆる変化を報告します。しかし、これらのツールはリアルタイムの可視性を持っていないため、スキャンの間のシステムの中間状態に関する情報を見逃してしまう可能性があります。この点は、スピンアップしてタスクを実行した後、ツールに検出されずに消えてしまうような、動的で短命なワークロードにとっては課題となります。
エージェントレス・ツールは、クラウドが提供するプログラム・インフラストラクチャーにより、オンプレミスよりもクラウドでより強力になります。これらのツールは、ワークロードにパフォーマンス上のオーバーヘッドを課すことなく、複数のユースケースに対応することができ、チームに要求される管理上のオーバーヘッドもほとんどありません。
エージェントレスの長所:
- 導入が容易
- 最小限の管理オーバーヘッド
- ワークロードに影響を与えない
- エージェントを収容できないシステムにも導入可能
- ワークロードのパフォーマンスへの影響がない、または非常に少ない
エージェントレスの短所:
- ワークロードのリアルタイムな監視機能がない
- システムに対する可視性が低い
- クラウドプロバイダーの機能に依存しているため、オンプレミスでは使えない
- アクティブレスポンスアクションを実行できない
エージェント・ベースのクラウドセキュリティアプローチ
エージェントベースのセキュリティアプローチの利点は、システムに常駐することで、計測対象のマシン上で何が実行されているかをリアルタイムで常に把握できることです。マシンがクラウド上にある場合、関連するコンテキストを取得し、生成されたアラートを非常に迅速に充実させることが容易になります。システムコールのように、ある種の遠隔測定はローカルにしか収集できません。そのため、これらのデータにアクセスしたい場合は、エージェントを導入する必要があります。さらに、エージェントは、悪意のあるプロセスの実行をブロックしたり、潜在的な悪意のある活動に関する遠隔測定やメタデータを収集するなど、ワークロードでの即時対応を促進することができます。最新のエージェントは、軽量に設計されており、eBPFのような技術を活用してホストシステムへの影響を軽減しています。これが、主要なエンドポイントプロテクションシステムがすべてエージェントベースである理由です。
ただし、エージェントを対象となるマシンにデプロイし、ときには管理する必要があります。今日では、KubernetesのようなInfrastructure-as-Codeやオーケストレーションシステムによって、この作業は簡素化、高速化されているため、YAMLファイルを1、2個用意するだけで、すぐに勝利を手にすることができるかもしれません。
よりスマートなエージェントは、ワークロードでアナリティクスを実行できます。これにより、データを迅速にエンリッチしたり、どのデータをSIEMなどの中央システムに転送するかを決定したり、既知の悪いシグナルが検出された場合に即座に強制措置を講じたりすることが可能になります。
エージェントベースの長所:
- ホストベースの深い可視性
- OSがサポートされていればどこでも実行可能
- リアルタイムでの検知による発見までの時間短縮
- 迅速なインシデント対応と封じ込め
エージェントベースの短所:
- 管理のオーバーヘッド
- パフォーマンスへの影響
- エージェントのインストールに対応できないシステムでは機能しない
エージェントを使うのか?使わないのか?
ここでは、いくつかのクラウドセキュリティのユースケースにおいて、エージェントが必要なのか、オプションなのかを検討してみましょう。ここでは、クラウドとコンテナを対象に、脆弱性、設定、権限、ランタイムセキュリティの4つのカテゴリーに分けて考えます。脆弱性
クラウドの脆弱性管理は、エージェントレスのアプローチから大きな恩恵を受け、オンプレミスの多くの問題点を一度に軽減することができます。しかし、エージェントがエージェントレスの脆弱性管理を補完し、付加価値を与えることができるのは、より効果的なリスクベースの優先順位付けのためのコンテキストを提供したり、すぐには修正できない欠陥を軽減したりすることです。- 資産の発見とインベントリ管理:クラウド環境では、API駆動の性質上、資産の追跡が容易になります。言い換えれば、クラウドはあなたがそこに何を置いたかを知っており、エージェントを必要とせず、喜んでそれを教えてくれます。しかし、コンテナのような特定のタイプの資産は、クラウドの中でも捉えどころがなく、それらを追跡するにはエージェントの方が適しています。
- 脆弱性評価とは、環境内の既知の脆弱なコンポーネントを列挙するプロセスです。最新のクラウドセキュリティツールでは、仮想マシンイメージやスナップショットなどのクラウド固有のソースから関連データを取得することで、ネットワークスキャンやエージェントを必要とせずにこれを実現できます。クラウドに組み込まれた脆弱性評価アプローチは、クラウドAPIを使用して、仮想マシン・イメージ、コンテナイメージ、ストレージ・スナップショット、およびその他のデータ・ソースを検査します。
- リスクベースの脆弱性の優先順位付けは、どの問題を最初に修正すべきかを、それが組織に与える実際のリスクの大きさを考慮して決定する方法です。エージェントレスのアプローチでは、CVSSレーティングなどの要素や、資産のネットワークへの露出度、その資産に内在するビジネス価値、問題となっている脆弱性にまつわる脅威情報などの属性を考慮することができます。しかし、エージェントベースのアプローチは、ソフトウェアの脆弱性の優先順位付けに大きな影響を与える1つの分野で大きな優位性を持っています。エージェントは、各マシンで実行されているプロセスを列挙することができ、実際に使用されているパッケージと含まれているパッケージに基づいて脆弱性の優先順位を決定することで、修復の優先順位を飛躍的に向上させることができます。
- 脆弱性の緩和とは、その脆弱性が環境に残っている間、悪用された場合の潜在的な影響を軽減するために行うあらゆる措置のことです。多くの場合、修正プログラムが提供されていなかったり、すぐに導入できなかったりするため、一時的な措置となります。仮想パッチや設定変更のように、エージェントを必要としない緩和策もあります。しかし、アプリケーション制御や検出・応答ツールのようなエージェントベースのミティゲーションも非常に効果的であり、特に予防的な補完制御では混乱を招く可能性があります。
コンフィグレーション
クラウドでは、コンフィグレーション管理が、データセンター時代よりもさらに決定的に重要になります。データセンターでは、何層ものセキュリティ管理が、恐ろしい外界と、本番環境の奥深くにある誤った設定のサーバとの間に存在していました。クラウドでは、セキュリティ侵害の大部分が、ごく単純な設定ミスによって発生します。- クラウドの管理とデプロイメントの構成とは、クラウドサービスがどのように構成されているかを意味します。ここでは、公開されたストレージ、過剰なパーミッション、無効化されたログとモニタリングなどの領域が含まれます。エージェントレスのツールは、ベストプラクティスやCIS AWS Foundations BenchmarkやPCI DSSなどのコンプライアンス要件に照らして構成をチェックすることで、ここでも役に立ちますし、すべてのワークロードでエージェントを使用する必要はありません。
- クラウドワークロードの構成には、ホストのハードニング、Kubernetesとコンテナのセキュリティ、およびそれらの特定のシステムに対するCISベンチマークのコンプライアンスなど、ワークロード固有のベストプラクティスが含まれます。ワークロード構成の静的な評価には、エージェントは必要ありません。
- コンフィグレーションのドリフトを検出することで、最初に定義された方法と比較して、実行時に何かが変更されたことを知ることができます。ここでは、時間が非常に重要な場合にエージェントが必要となります。エージェントレスのツールでは、環境をチェックできるだけの頻度でドリフトをレポートすることができますが、エージェントはリアルタイムの可視性を持ち、異常なアクティビティを即座に警告することができます。
ランタイムセキュリティ
ランタイムワークロードの保護が必要なのは、阻止が失敗するからです。たとえ最も強固な防止制御を構築したとしても、完璧ではありません。時には、悪者が侵入したり、チームが単純にミスを犯したりすることがあります。そのような場合には、問題を迅速に発見し、影響を最小限に抑えるための検知的制御が必要です。すべての検知制御がリアルタイムで機能するわけではありませんが、そのような検知制御にはエージェントが必要です。- マルウェア対策、特にファイルレスマルウェアやミュータントマルウェアなどの高度な技術は、エージェントベースの手法で最も効果的に対処することができます。エージェントレスのアプローチでは、不良ファイルを特定して削除することはできますが、スキャンの間に発生するリアルタイムの悪意ある活動を見逃してしまいます。
- リアルタイムな脅威の検知と対応は、アクティブな攻撃をリアルタイムに検知し、うまくいけば食い止めることができる能力です。このような検知にはエージェントが必要であり、行動分析、コマンドシーケンス、特定のTTP、または攻撃の連鎖を中断させることを目的としたプロアクティブなコンテキストアラートのその他の方法に基づいています。
- インシデントの調査には、ログ、ネットワーク・フォレンジック、ファイルシステムの分析など、エージェントを使わないソースが必要になります。しかし、侵害されたシステムにエージェントが存在し、攻撃者の活動に関するリアルタイムのデータを取得できた場合、正確に何が起こったのかについて多くの追加の手がかりを得ることができます。
- APT攻撃の脅威とは、高度なスキルを持った悪意のあるアクターのことで、多くの場合、国家と関連しており、特定の目標を持って組織を標的にしています。このようなアクターは、制御を回避し、痕跡を隠すことに長けています。エージェントベースの監視は、改ざんの証拠が隠滅される前に、悪意のある活動をリアルタイムでキャッチするチャンスを企業に与えます。
まとめ
エージェントレス・アプローチは、チームが使用しているクラウド・サービスのインベントリを作成したり、ソフトウェアの既知の脆弱性を特定したり、ログに基づいて脅威を検出したりするのに有効です。ランタイムの脅威、マルウェア、APT攻撃の検出をリアルタイムで行うには、エージェントが必要です。脅威を検出した後、エージェントが提供する詳細な活動記録とコンテキストは、インシデント対応、封じ込め、およびフォレンジック調査に不可欠です。しかし、セキュリティリスクを効果的に管理するためには、両方のアプローチを利用することになります。
どちらのアプローチも有用であり、異なる利点があります。エージェントレスの導入は簡単で、最小限の管理オーバーヘッドで済み、パフォーマンスのオーバーヘッドもほとんどなく、エージェントを組み込むことができないシステムにも対応できます。エージェントベースのアプローチは、より深い可視性を提供し、より包括的なコンテキスト、リアルタイムの検知を可能にします。また、検知にとどまらず、より迅速なインシデント対応、封じ込め、調査を可能にするために必要です。
私たちはこの映画を見たことがあり、その結末も知っています。当初の脆弱性評価ネットワークスキャンは「エージェントレス」でした。当然のことながら、システムから十分なデータを抽出することができず、チームが修正すべき点の全体像を把握することができませんでした。その後、状況を改善するために脆弱性管理エージェントが発明され、すべての自尊心のあるスキャナーは “ハイブリッド “になりました。
流れが来て、流れが去る。