CNAPP(クラウドネイティブ・アプリケーションプロテクションプラットフォーム)の基礎知識

By 清水 孝郎 - APRIL 6, 2022

SHARE:

本文の内容は、2022年4月7日現在における、Sysdig Cloud Native Learning Hub上のCloud Native Application Protection Platform (CNAPP) Fundamentals(https://sysdig.com/learn-cloud-native/cloud-security/cloud-native-application-protection-platform-cnapp-fundamentals/) を元に日本語に翻訳・再構成した内容となっております。 クラウドネイティブアプリケーションの領域が進化すればするほど、より多くの動的な仕組みが導入されるように見えます。ありがたいことに、業界は過去の技術から学び、クラウドネイティブテクノロジーでは非常にモジュール化されたアプローチを採用しています。そのため、既存のCI/CDパイプラインやランタイムプラットフォームは、より優れた方法が発見されるたびに拡張・更新することが可能です。これには、NetApp TridentのようなCSIドライバーによる外部ストレージソリューションから、静的コード分析テスト(SAST)のようなDevSecOps領域の製品によるCIパイプラインの拡張まで、あらゆるものの統合が含まれます。 モジュール化の欠点は、その複雑さです。アプリケーションのライフサイクルに何を導入すれば、妥当なレベルのセキュリティポリシーとセキュリティの実施が可能になるかを把握することさえ、困難な場合があります。そこで登場するのが、Cloud Native Application Protection Platform(CNAPP)です。CNAPPを環境に活用することで、ワークロードのプロアクティブな検証から、実行中のパブリッククラウドプラットフォームのポリシー監査まで、環境のあらゆる側面を深くカバーすることができます。

では、CNAPPとは何でしょうか。

Gartnerは最近、新しい製品カテゴリーとしてCloud Native Application Protection Platforms(CNAPP)を発表しました。このカテゴリーは、統合が必要な一連のポイントソリューションではなく、全体的なカバレッジを実現するために定義された一連の基準を持ち、顧客とベンダーがスイートがもたらす価値を理解できるようにすることを目的としています。 ほぼ10年前、アプリケーションパフォーマンス管理(APM)ソリューションでも同じようなことが起こっていました。 業界での採用が進むにつれ、誰もが何を期待し、どのような最小限の機能しかないのかを知ることができるようになりました。 CNAPP は、開発から本番、そして開発に戻るまで、5つのコンセプトをその傘下にカプセル化します。 これらの機能は以下の通りです:
  • 開発アーティファクトのスキャン
  • クラウドセキュリティポスチャー管理(CSPM)
  • IaC(Infrastructure as Code)スキャン
  • クラウドインフラのエンタイトルメント管理
  • ランタイム・クラウドワークロード保護プラットフォーム
フィードバックループにより、クラウド・ネイティブ・アプリケーションのライフサイクルをエンドツーエンドでカバーします。

CNAPP(クラウドネイティブアプリケーションプロテクションプラットフォーム)は何をするのか?

クラウドネイティブアプリケーションプロテクションプラットフォームが行うことを説明するには、5つのコア機能を説明するのが最も良い方法です。

開発アーティファクトスキャン

アーティファクトスキャンには、アーティファクトがソースコードであるかコンパイルされたバイナリであるかを問わず、大きく2つの分野があります。それは、ソフトウェア構成分析(SCA)とアプリケーションセキュリティテストです。 SCAでは、成果物をレビューして、含まれるオープンソースライブラリを見つけます。そして、使用されているライブラリのバージョンとライセンスにフラグを立てます。この情報により、一般的な脆弱性と暴露(CVE)およびその評価をリストアップし、レポートに添付したり、リポジトリ内の成果物のメタデータとして添付したりすることができます。 アプリケーションセキュリティテストは、静的(SAST)、動的(DAST)、および、対話的(IAST)の3つの主要なグループに分類されます。SAST は、ソースコードまたはビルドされた成果物を調べて、ベストプラクティスと、チェックされていないバッファのようなコードに見られる一般的なミスを調べます。DASTは、実行中のアーティファクトをブラックボックスとして扱います。攻撃者が行うように、入力の検証や安全でないページなどを探します。IAST は、実行中のアプリケーションの内部で動作しますが、実行されたアプリケーションコードのみを分析します。IASTは、QAチームが機能テストを実行している環境で最もよく見られます。

クラウドセキュリティポスチャーマネジメント (CSPM)

ポスチャーとは、何かが活発に動いているときの姿のことです。人が立っているときの姿勢のようなものです。猫背になるな、背筋を伸ばせと言われたことがあると思います。CSPMは、使用されているクラウドプラットフォームに対してこれを行います。CSPMは、実行されているものを検証し、期待される表示方法と一致しないものに対して警告を発します。例えば、ポートが開いていたり、必要以上のアクセス権を持つセキュリティ・ロールがあったりします。

Infrastructure as Code(IaC)スキャン

クラウドネイティブエコシステムの大きな魅力は、アプリケーションの実行に必要なすべてを自動化できることです。IaCはCloudFormationのテンプレート、Kubernetesのマニフェスト、Dockerfiles、Terraformのプランのようなものである可能性があります。IaCスキャンの背後にある考え方は、明らかなセキュリティ上の欠陥が実運用に移行して問題を引き起こす前に、それを見つけることです。

クラウドインフラストラクチャーエンタイトルメント管理 (CIEM)

これは、CNAPPの中で最も積極的に取り組むべき領域でしょう。CIEMの機能は、接続されている既存のクラウドプラットフォームを調べ、お客様の環境に最小特権モデルを実装する方法を提案します。例えば、読み取り権限しか必要ないのに、管理者権限が付与されているようなケースを発見することができます。これらの決定が行われると、CSPMはそれらを実施します。

ランタイム・クラウド・ワークロード・プロテクション・プラットフォーム(CWPP)

運用担当者が最も気になる部分です。CWPPは、CNAPPセキュリティ・スイートのランタイムエンフォースメントの部分です。これは、何も自動的に信頼されないゼロトラストモデルを導入するために機能します。 次のようなアクションを実行します:
  • ランタイム検知:コンテナ内の不審な動作をランタイムに検知・防止する。コンテナの脅威への対応を自動化する。
  • システムのハードニング:Linuxホストやホスト上で動作するVMベースのワークロードの内部で異常検知を行います。
  • 脆弱性管理 :本番環境にデプロイする前のCI/CDパイプラインおよびレジストリのコンテナイメージの脆弱性の検出。
  • ネットワークセキュリティ:セグメンテーションを含むKubernetesネイティブのネットワークポリシーを適用し、コンテナレベルまでネットワークトラフィックを可視化することが可能です。
  • コンプライアンス:コンテナのコンプライアンスを検証し、コンテナ内のFile Integrity Monitoringを確保します。
  • インシデントレスポンス: Kubernetesとそれが管理するコンテナに対するフォレンジック分析とインシデントレスポンスは、コンテナがなくなった後でも可能です。

なぜCNAPPに投資するのか?

CNAPPを導入するメリットは、クラウドネイティブアプリケーションスタック全体の可視性と制御性を向上させることです。現在、組織がこれら 5 つの領域をすべてカバーしていたとしても、多くの場合、別々の個別のツールを使用しています。その結果、データを関連付け、現在のリスクの測定値を提供する簡単な方法がないのです。企業は、時間と労力を費やして、自社のテクノロジー全体にわたって導入しているすべてのポイントソリューションからデータを統合しようとします。これは重要なことですが、すべての領域が同じようにカバーされているわけではありません。不完全なデータを基にレポートを作成しても、誤ったセキュリティ感覚を与えるだけで、リスクプロファイルを増大させるだけです。 CNAPP のセキュリティ・プラットフォームを導入することで、価値ある一貫したポリシーの実施が可能になる例をいくつか紹介します。
  • ビルドチームは、ビルドとテストのパイプラインにセキュリティスキャンを実装しています。そこで、SCA ツールが成果物が保存されているレジストリに対して実行され、CVE データベースから既知の脆弱性のタグ付けを行っているとします。もし、すでに実稼働しているものに、新たなクリティカルアラートのタグが付けられたらどうなるでしょうか?最近発表された Log4Shell の脆弱性のように、十分に深刻な場合は、影響を受けるアプリケーションを直ちにシャットダウンするか、潜在的な攻撃を緩和させる必要があります。ワークロード保護は、この種のイベントへの対応を自動化するために必要な機能です。Gartner 社は、このような理由から、CWPP を CNAPP の中核機能として挙げています。
  • あるクラウドエンジニアが自分のサンドボックスでテストをしていて、サブネットに追加のポートを開いてしまったとします。しかし、そのエンジニアは次のコミットの前にその変更を取り消すことはしませんでした。何がそれを捕らえるのでしょうか?さて、CNAPPには2つの方法があります。1つはIaCスキャンで、CloudFormationやTerraformのプランのようなバッドプラクティスを適用前に特定するものです。もしこの方法で変更が見落とされた場合、クラウドポスチャーのコンプライアンスチェックにより、本番システムでの異常が発見されます。多くの場合、CNAPPは、検出されたときに構成をコンプライアンスに戻すために即時で自動修復を可能にするように構成できます。

成功のための5つのステップ

新しいプラットフォームと同様、導入のステップは外から見ると簡単そうに見えますが、それは詳細に入るまでの話です。従うべき基本的な構造は、CNAPPセキュリティツールに利用可能なものを発見させ、推奨事項を作らせることです。次に、これらの推奨事項を一度にいくつか適用し、セキュリティを提供しているクラウド・ネイティブ・アプリケーションの反応を監視して警告します。そして、さらに推奨事項を追加するために戻ってきます。シャンプーのボトルには「泡立てろ、リンス、繰り返す 」とあります。これは、何か新しいことをするときに得られる最良のアドバイスのひとつです。最初から完璧にできるわけではありません。
  1. CNAPPをインストールしたら、環境を調査し、何が設置されているかのプロファイルを作成するようにします。
  2. CNAPPが見つけたポリシーや推奨事項を確認します。
  3. 推奨されたポリシーのうち、実施するものをいくつか選択します。すぐに影響の大きいものに飛びつかないようにしてください。クラウド・ネイティブ・アプリケーション・プラットフォームが新しいポリシーや更新されたポリシーにどのように反応するかに慣れるまで、少し時間がかかるかもしれません。さらに、開発者は、CNAPP のフィードバックにうまく対応し、それを取り入れるために、自分たちのやり方を適応させる時間も必要でしょう。
  4. 変更後のアラートを監視し、それに対応します。
  5. ステップ 1 に戻ります。

まとめ

組織の大小を問わず、セキュリティについて十分な知識がないように感じるのが普通です。これは、従来のソフトウェア・プラットフォームよりもはるかに速いスピードで変化しているクラウド・ネイティブ・アプリケーションの分野では特にそうです。CNAPP を実装することで、どんな組織でも、アプリケーションスタックの主要な側面すべてにおいて、妥当なレベルのセキュリティを実現することができます。開発者の生産性を妨げないようにしながら、組織全体のセキュリティプロファイルを向上させることができるのです。 最終的には、誰にとっても、より速く、より柔軟な方法で顧客に価値を提供することが目標になります。開発プロセスの初期段階から本番環境に至るまでセキュリティを組み込むことで、顧客が製品に期待するセキュリティと整合性を確実に維持することができるのです。

SysdigのCNAPP関連ブログ: