2. なぜ CNAPP はクラウドセキュリティにとって重要なのですか?
CNAPP はクラウドセキュリティにとって非常に重要です。 動的で、高度に分散化したクラウド環境全体を包括的に可視化できるからです。
リアルタイムの脆弱性管理機能が、急速に変化する、ペースの速いクラウド環境に遅れをとらずに対応します。 担当者は毎日、時には 1 日に何度も、ワークロードやアプリケーションを変更したり、既存のツールを更新したりすることがあります。
CNAPP はセキュリティとコンプライアンスのギャップを継続的にスキャンできるため、攻撃者に発見される前にその隙間を埋めることができます。
オンプレミスのサーバーやネットワークとは異なり、クラウド環境は流動的です。 そのため、効果的なクラウドセキュリティの実現は困難なものになっています。 また、多くの組織が複数のクラウドサービスプロバイダー (CSP) を利用して、パブリッククラウド環境、プライベートクラウド環境、ハイブリッドクラウド環境で業務を行っています。
残念なことに、一部の組織ではいまだにクラウドで従来のセキュリティ手法が使用されていますが、これでは効果的ではなく、リスク管理のギャップを生み出す原因になっています。
CNAPP は、動的なクラウド環境を一元的に可視化することで、効果的なリスクガバナンスを促進します。 また、さまざまな種類のクラウド環境間で、一貫性のある、コンプライアンスに準拠したクラウドセキュリティポリシーの実装と適用を確実に実施することもできます。
CNAPP を使えば本来時間のかかるクラウドセキュリティタスクの多くを自動化できるため、効率が向上します。 さらに、ワークフローを最適化し、クラウドの開発とセキュリティにかかるコストを削減します。
クラウドセキュリティにとって CNAPP が重要であるもう 1 つの理由は、アイデンティティとアクセス権限の自動化によって、手作業を排除できるからです。 これは、多くの API やマイクロサービスが存在するクラウド環境では重要なことで、 API などのサービスによって柔軟性と拡張性が促進される反面、生み出されるリスクも増加します。
IaM の機能は、適切な人が、業務を遂行するために適切な量の権限を持つようにするものです。 これによって重要な資産を保護し、ネットワーク全体での不正なラテラルムーブメントを防止します。
最小権限アクセスとアクティビティの監視を利用すれば、異常を発見し、アイデンティティエクスポージャーに迅速に対処でき、
権限昇格を利用したクラウド攻撃のリスクも軽減されます。
最後に、CNAPP はセキュリティを DevOps パイプラインに統合します。 従来、クラウドネイティブアプリケーションの開発において、セキュリティは後回しにされてきたため、 開発サイクルが遅れることがよくありました。
CNAPP ソフトウェアを利用すれば、アプリ開発の最初の段階に制御を組み込む「シフトレフト」セキュリティが実現できます。 CNAPP は、アプリケーションのデプロイメント前に脆弱性を明らかにして解決するための基礎となるものです。 従って、攻撃者がデプロイメント後に悪用する可能性のある攻撃経路を減らすことができます。
セキュリティを開発に組み込むことで、CNAPP は、セキュリティを損なわない、迅速なクラウド導入とイノベーションを支援します。
クラウドネイティブアプリケーション保護における課題トップ 6
クラウドネイティブアプリ環境は絶えず進化しているため、脅威状況もそれに伴って急速に変化します。 そのため、クラウドセキュリティ戦略の一部に位置付けられていない対策では、クラウドアプリのようなリソース全体で新規または既存の問題の検出するのがなおさら困難になります。
クラウドネイティブ環境保護に関する一般的な課題
1. 動的なクラウドワークロード全体の可視性の欠如
一部のセキュリティチームは、いまだにクラウドに対して従来のオンプレミスの脆弱性管理プロセスを使用しています。 残念ながら、かつてオンサイトのサーバーやネットワークで効果的だったプロセスも、クラウドでは効果がありません。
動的なクラウドの導入は、ニーズの変化に応じてビジネスを拡張し、柔軟に対応させることを可能にします。 しかし、クラウドの使用によって新たなクラウドエクスポージャーがもたらされます。 従来のオンプレミス向けセキュリティツールのほとんどは、ネットワークの境界でしか保護機能を発揮しません。
セキュリティの専門家がそのような制御をクラウドに押し込もうとしても、うまくいくはずがありません。オンサイトの資産とは異なり、クラウドには明確な境界線がないのです。クラウドは常に変化し続け、新しい資産やサービスが次々と起動したり停止したりしています。 静的なアクセス制御では効果がありません。
2. マルチクラウド環境におけるセキュリティ管理
多くの組織は、パブリッククラウド環境、プライベートクラウド環境、ハイブリッドクラウド環境などを組み合わせた複雑な環境を包括的に可視化することなく、セキュリティツールを使用しています。
また、CSP には、それぞれ独自のクラウドセキュリティ責任共有モデルがあります。 このモデルは CSP ごとに異なり、顧客によっても異なります。 顧客の保護責任範囲が、特にコンプライアンスについて、あるクラウド環境と別のクラウド環境とでは異なる場合があるのです。
マルチクラウド環境で生じるもう 1 つの課題は、静的なポリシーを使用し、それをすべての環境に適用することができないことです。 クラウド環境におけるすべての種類のリスクに対して有効な、万能のポリシーは存在しません。
3. API とマイクロサービスのセキュリティ確保
クラウドにおける API とマイクロサービスのセキュリティ確保は難題です。 サービス間に、膨大な量の接続と通信ポイントがあるとします。 この場合、包括的で複雑な認証管理が必要となります。
API とマイクロサービスの保護を困難にしているのは接続の数だけではありません。 AP ゲートウェイとマイクロサービスが通信すると、さらに多くの課題が生じます。 通信が始まるたびに、攻撃者はセキュリティの弱点を悪用する新たな機会を得るのです。
もう一つの重要な問題は、アプリ開発とデプロイメントのサイクルがとても短いことです。 要求に応じてクラウドリソースをプロビジョニングする際に、脆弱性や設定ミスを見落としてしまうリスクが高まります。 SDLC にセキュリティファーストを組み込んでいないと、クラウドセキュリティの確保はさらに困難になります。
4. 急速に変化するデプロイメントにおける脆弱性管理
変化の激しいクラウドデプロイメントでは、とりわけコンテナベースのシステムが絶えず変動しているような場合、脆弱性管理は難しい課題です。 このような環境では、クラウド上に突然現れてはすぐ消える資産を追跡することが困難なのです。
自組織がどの資産を所有し、それを誰がどのように使っているのかを知ることが、脆弱性管理では極めて重要になります。 資産やサービスについて、あるいはそれがユーザーによってどのように利用されているかがわかっていなければ、保護することはできません。
同様に、DevOps チームによるリリースサイクルが速くなると、新しいクラウドアプリやサービスによって新たな脆弱性が偶発する可能性があります。 DevOps チームがセキュリティを CI/CD パイプラインに統合しない場合、脆弱性の特定と修正の自動化は、さらに困難になります。
このような複雑な環境における急速に変化するデプロイメントでは、最初に対処すべき脆弱性を把握するために、リスクの優先順位付けと脅威インテリジェンスも必要です。
5. 最小権限アクセスとアイデンティティセキュリティの徹底
クラウドではきめ細かな権限が必要となるため、クラウドで最小権限アクセスとアイデンティティセキュリティを徹底することは困難です。 過剰にプロビジョニングされたアイデンティティが見落とされやすくなっているのです。
この問題は、クラウドの責任共有モデルによってさらに深刻化しています。 責任共有モデルではユーザー側のセキュリティチームがアイデンティティフェデレーションとサードパーティアクセスを管理し、CSP はその他の制御の責任を負うのですが、このような状況では、過剰なアクセス権限を明らかにすることが困難です。 しかし、過剰な権限を放置しておくと、クラウドのアタックサーフェス全体にセキュリティエクスポージャーが生じます。
6. 進化するクラウドセキュリティ規制へのコンプライアンスの維持
絶えず進化するクラウドセキュリティのコンプライアンス要件への準拠を維持することは、規制の複雑さゆえに困難になっています。 規制はクラウドの脅威状況に合わせてどんどん変化します。
組織がクラウドリソースを追加、削除、変更する中で、セキュリティ制御の一貫性を保つのは難しいことです。 クラウドのセキュリティ制御は、規制要件を満たさなければならないし、変化が速ければ速いほど、エクスポージャーの特定や修正の文書化も難しくなります。 これらは両方とも、コンプライアンスには欠かせないものです。
また、こうした義務を継続的に追跡し続けていなければ、あっと言う間に遅れをとってしまいます。
規制機関は頻繁にフレームワークを更新します。 今日の適合が、明日の適合にはならないかもしれません。 この変化についていくためには、常に制御を適応させていく必要があります。
クラウドの責任共有モデルによって、ここにさらなる課題が生じます。 CSP とセキュリティを分担する場合、使用しているサードパーティが適合していることを確認する必要がありますが、 外部のセキュリティポリシーや手順を直接管理していない場合には難しい仕事です。
また、セキュリティ契約を誤解して、実際には顧客側にも責任があるのに CSP がセキュリティを管理していると捉える可能性もあります。
従来のセキュリティソリューション vs CNAPP
従来のセキュリティソリューションは、サイバーセキュリティに断片的な視点からアプローチするばらばらのツールに依存しているため、可視性の課題とセキュリティギャップが生じます。
これらのツールがサイロ化した状態で稼働していると、重要なデータがサイロ内に捕らわれてしまいます。 これでは、必要とされる包括的な可視性を確保することはほぼ不可能です。 そのため脆弱性が見逃されたり修正にかかる時間が長引いたりして、侵害が発生する可能性が高まります。
一方、CNAPP はクラウドの保護と防御に必要なすべての主要なセキュリティ機能を統合し、自動化します。 また、脆弱性管理、設定管理、ワークロード保護、コンプライアンス監視を単一のプラットフォーム内で一元化するので、 従来のセキュリティ手法が生み出す盲点をなくすことができます。
また、クラウド環境全体でエンドツーエンドの可視性が得られます。どんなに複雑な環境であろうと、コストのかかる断片的なセキュリティツールは必要ありません。 その代わりに、セキュリティプロセスを自動化して、安全なクラウドシステムとサービスを迅速に、かつ確信を持って導入することができます。
CNAPP を使うと、新しいクラウド資産が現れたときに即座に発見できます。 さらに、ワークロードやデータの継続的な監視によって、一貫したセキュリティポリシーの適用を実現できます。 開発パイプラインの早い段階にクラウドセキュリティを追加すれば、よりリスクの少ない、迅速かつアジャイルな開発をサポートすることもできます。
マルチクラウド環境における CNAPP の役割
マルチクラウド環境で CNAPP を導入するための 13 のベストプラクティス
- マルチクラウド環境を一元的に可視化する。
- 使用しているすべてのクラウドプラットフォーム (AWS、Azure、Google Cloud Platform (GCP)) と通信するように CNAPP を設定する。
- 資産の特定と管理、脆弱性評価、脆弱性管理、ワークロードと設定の監視が単一のダッシュボードに統合されたソリューションを使用する。
- 定期的な監査を実施し、プロセスの中でクラウドリソースが見逃されないようにすることで、クラウド全体の全体像を把握する。
- 自動化機能を使用して、すべての新規デプロイメントにセキュリティ設定を自動的に適用するルールやテンプレートなどを含む、セキュリティとコンプライアンスのポリシーを管理して適用する。
- 自組織に関係する特定の規制基準 (GDPR、PCI DSS、HIPAA) に対する継続的なコンプライアンスチェックを設定し、ドリフトや設定ミスを減らす。
- CNAPP を DevOps ワークフローに統合して、開発ライフサイクル全体にセキュリティを組み込む。
- デプロイメント前に、コードとコンテナの脆弱性をスキャンするよう設定する。 シフトレフトによってセキュリティを開発ライフサイクルに組み込む。
- CNAPP を使用してリスク評価を実施する。
- 組織固有のクラウド環境の文脈 (資産の重要性、エクスポージャーレベル、悪用の可能性) に基づいて、脆弱性とセキュリティ問題を優先順位付けする。
- リスクが高い、一般に公開されている資産や機密データを持つ資産の脆弱性に優先順位を付け、最も影響の大きい脆弱性を最初に修正するよう、データに基づいた実行可能な意思決定を行う。
- 脆弱性や設定ミス (過度に寛容なアクセス制御や安全でない設定) を特定するために継続的にスキャンする。
- 可能な限り、支援付きの自動修正を使用する。
- 定期的にログを確認し、ペネトレーションテストを実施し、監査結果を確認することにより、セキュリティギャップを特定して解消する。
ソフトウェア開発ライフサイクル (SDLC) 全体のセキュリティの対処方法
CNAPP を使用して SDLC 全体のセキュリティを統合する 8 つの方法は以下の通りです。
- シフトレフトする。 クラウドソフトウェア開発のできるだけ早い段階でセキュリティを統合する。
- セキュリティを設計とコーディングの段階に組み込む。
- 開発段階でエクスポージャーを発見する自動化されたコードスキャンなどの、安全なコーディング手法を確実に使用する。
- 継続的デリバリ (CI/CD) パイプラインのセキュリティを自動化する。
- 本番稼働前に脆弱性や設定ミスを発見できるよう、あらゆる段階でセキュリティの制御状況をテストする。
- コードベース、サードパーティライブラリ、クラウドサービス、クラウドインフラを継続的に監視し、SDLC 全体を通して新たな脆弱性の有無を確認する。
- 脆弱性をリアルタイムで検出するソリューションを使用して、セキュリティ問題が発生した時点で先行的に対処する。
- 開発環境、テスト環境、本番環境のすべてにセキュリティポリシーを一貫して適用する。
- IaC テンプレートと自動化ツールを使用して、セキュリティ設定を標準化する。
- 定期的な監査を実施して、クラウド環境がセキュリティおよびコンプライアンスの要件を満たしていることを確認する。 これによって、SDLC 内のギャップや設定ミスを防ぐ。
- 開発チーム、セキュリティチーム、運用チーム (DevSecOps) の間にコラボレーションの文化を構築する。
- 定期的にセキュリティ対策を見直し、DevSecOps のすべてのフェーズにセキュリティが含まれているか検証する。 プロセスを監査し、デプロイメントの前、最中、後において、各担当者が連携して脆弱性に対処しているか確認する。