CNAPP大解剖 -強固なアプリケーションライフサイクルのためのセキュリティ実装-
3行でわかる本記事のサマリ
- アプリケーションライフサイクルと技術要素: ライフサイクルは開発と運用に分かれ、アジャイル型の開発モデルが普及。パブリッククラウド、コンテナテクノロジー、CI/CD、IaCが中心の技術要素
- パブリッククラウドの普及: アプリケーションの開発と運用でパブリッククラウドが主流。IaaS、PaaS、SaaSの利用が増加し、クラウドネイティブなテクノロジーも進展
- CNAPPによるセキュリティ実装: CNAPPはアプリケーションセキュリティを確保するプラットフォーム。Artifact Analysis、Posture Management、IaC Scanning、CIEM、CWPPの構成要素がセキュリティを強化し、ビジネスユースケースに対応
はじめに
現代の私たちは、日常的に様々な場面でアプリケーションを活用しながら生活を送っています。プライベートと仕事、どちらの場合でもアプリケーションを活用することで個々のタスクを効率的に実行できることから、それによって得られる成功体験に強く依存しているという実態があります。
このようなアプリケーション駆動型の生活スタイルの裏側では、時代がもたらした要求要件の多様化と変化に追従するために、アプリケーション開発モデルの変革があります。
例えば、従来のアプリケーション開発ではウォーターフォール型と呼ばれる、個々の開発タスクを順番に完了させながら次のタスクに進むという、比較的時間をかけつつ確実性を重視した開発モデルが主流でした。近年ではアジャイル型と呼ばれる、機能毎の細かい単位で開発プロセスを実行していくことで、リリース間隔を短縮する効率性重視の開発モデルに変革しています。もちろん、変革の歴史の中でそれ以外にも様々な開発モデルが存在しますが、時代背景に伴ってアジャイル型のユースケースが増加しています。
また、開発モデルの変革と共に、開発に使用する新しいプラットフォームとしてIaaS、PaaS、SaaSといったパブリッククラウドサービスの利用が増加しています。さらに、クラウドネイティブなテクノロジーの活用も進んでおり、コンテナ、IaC、CI/CDといった新たなテクノロジー開発モデルの変革に貢献しています。
本記事では、私たちが日常的に使用しているアプリケーションの開発から、運用までの一連の流れを表すライフサイクルと技術革新による現代的なその構成要素、さらには強固なライフサイクルを実現するためのセキュリティソリューションの集合体であるCNAPPの全体像を解説します。
目次
- アプリケーションのライフサイクル
- アプリケーションライフサイクルへのセキュリティ実装
- まとめ
1. アプリケーションのライフサイクル
アプリケーションのライフサイクルは、「開発プロセス」と「運用プロセス」に分類されます。
開発プロセスには、開発者が記述したコードをビルドすることによって成果物が生成され、それに対するテストを実行するタスクが含まれます。運用プロセスでは、開発プロセスで生成された成果物を実環境にデプロイし、継続運用するタスクが含まれます。
これらを繰り返し実行することでアプリケーションのライフサイクルが成立しています。
ここから、アプリケーションのライフサイクルを構成するための技術要素を見ていきます。冒頭で解説をした技術革新によって生み出されたアプリケーションライフサイクルを構成するための現代的な技術要素として下記の4つが挙げられます。
- パブリッククラウド
- コンテナテクノロジー
- CI/CD
- IaC
- パブリッククラウド
パブリッククラウドの活用は、アプリケーションの開発と運用のどちらに場面に於いても一般化しています。IaaS、PaaS、SaaSとして提供される様々なサービスがアプリケーションライフサイクルの中で効果的に活用されており、多くの事例を確認することができます。
- コンテナテクノロジー
コンテナテクノロジーは、軽量で容易なデプロイメントを実現し、アプリケーションの開発と運用のどちらに場面に於いても活発に活用される技術として認められています。開発環境を容易にデプロイできるDockerコンテナや、アプリケーション運用に有効な機能をプラットフォームとして提供できるKubernetesの活用事例が代表的です。
- CI/CD(Continuous Integration: 継続的インテグレーション/Continuous Delivery: 継続的デリバリー)
CI/CDは、アプリケーションの開発プロセスと実環境へのデプロイメントに含まれる各種タスクを自動化するソリューションで、ライフサイクルの簡素化と頻度向上に大きく貢献する技術として広く活用されています。CI/CDによって人的工数負荷が大幅に低減されたライフサイクル運用が実現されました。
- IaC(Infrastructure as Code)
IaCによるインフラストラクチャのコード化によって、実行環境のアプリケーションのデプロイメントタスクに大きな人的工数がかかる課題が解決されました。また、インフラストラクチャをコードとして定義することで再現性が確保され、デプロイメントの確実性が大きく向上しました。
アプリケーションライフサイクルと技術要素
2.アプリケーションライフサイクルへのセキュリティ実装
アプリケーションライフサイクルを構成する現代的な技術要素は、アプリケーションの開発プロセスと運用プロセスの高度化に貢献したことは事実ですが、一連のライフサイクルをセキュリティの観点で安全に実行するというコンセプトは組み込まれていません。特にビジネスユースケースではプロセスの高度化だけではなく、それらが安全に利活用できる状態を実現することが不可欠です。この課題に対してのセキュリティソリューションの集合体としてCNAPPが存在しています。
CNAPP
CNAPPの正式名称はCloud Native Application Protection Platformであり、前述したアプリケーションライフサイクルを構成するクラウドネイティブな技術要素を保護するためのセキュリティソリューションであることが窺い知れます。CNAPPはその名の通り包括的なPlatformとして提供されますが、ここからはCNAPPの構成要素を理解することを目的として個々のセキュリティソリューションを解説します。現在一般的に認知されているCNAPPの構成要素は下記の5つに分類されます。
1)Artifact Analysis
生成された成果物(アプリケーションパッケージ、コンテナイメージ)のセキュリティスキャン
2)Posture Management
クラウドインフラ・クラウドサービスの設定監査(CSPM・SSPM)、アプリケーション開発プロセスのリスク管理(ASPM)
3)IaC(Infrastructure as Code) Scanning
IaC(インフラを定義するコード)のセキュリティスキャン
4)CIEM(Cloud Infrastructure Entitlement Management)
クラウドインフラ、クラウドサービスの権限管理
5)CWPP(Cloud Workload Protection Platform)
クラウドで稼働するワークロードの保護
1)Artifact Analysis
開発者が記述したコードがビルドされ、生成された成果物に対しての潜在的なセキュリティリスクの代表例として脆弱性が挙げられます。アプリケーションを構成するためのパッケージやバイナリに含まれる既知の脆弱性に対処することなくライフサイクルプロセスを進行させてしまうと、広範囲に脆弱性が拡散することになります。一度拡散してしまった脆弱性に対処することは多大な工数を要する無駄なタスクであり、現実的ではありません。この考え方はセキュリティのシフトレフトとして広く認知されており、脆弱性に対してアプリケーションライフサイクルの初期段階で早期対処することが推奨されています。Artifact Analysisを活用することで生成された成果物に対してセキュリティスキャンが実行され、シフトレフトによる脆弱性の早期発見を実現することができます。
2) Posture Management
アプリケーションライフサイクルの一連のタスクのパブリッククラウドでの実行が一般化する中で、設定ミスや不適切な構成によるセキュリティインシデントの発生事例が多く報告されています。利活用のための専門知識が必要、且つ、技術発展や仕様刷新によるアップデートが頻繁なパブリッククラウドサービスを人的な運用ロジックのみでセキュアに保つ運用は困難を極めます。この運用課題に対してのセキュリティソリューションとして下記の2つを適用することができます。
- CSPM(Cloud Security Posture Management)
- SSPM(SaaS Security Posture Management)
CSPMはIaaS/PaaSの設定監査、SSPMはSaaSの設定監査を担います。これらによりセキュリティスタンダードに定義されている推奨設定と運用中のクラウドサービスの実設定を比較し、インシデントの発生リスクを伴うクラウドサービスの設定を可視化します。
また、アプリケーションライフサイクルでのPosture Managementを考える場合に、アプリケーション開発プロセスに含まれるセキュリティリスクを可視化するソリューションとして下記が挙げられます。
- ASPM(Application Security Posture Management)
ASPMは下記の4つのセキュリティ要素によりアプリケーション開発プロセスの中で包括的なセキュリティソリューションとして作用します。- SCA(Software Composition Analysis)
- SAST(Static Application Security Testing)
- DAST(Dynamic Application Security Testing)
- IAST(Interactive Application Security Testing)
ASPMを活用することで、アプリケーションコードに含まれる脆弱な記述(平文で記述されたアカウント情報等)の可視化や、OSSライセンス使用許諾への準拠状況の確認、SBOM(Software Bill Of Materials)の生成、更には稼働するアプリケーションに対してのセキュリティテストまでを実行することが可能です。
3)IaC(Infrastructure as Code) Scanning
IaCにより、インフラストラクチャのデプロイメントプロセスが容易に実行できるようになった反面、コードに記述ミスが発生していたり、セキュリティの観点で推奨されない設定が明示的に記述されていないものの、デフォルト設定として適用されるリスクが内在します。
IaC Scanningを活用することで、デプロイメントに用いられるコードを機械的にスキャンし、推奨設定に準拠していない設定の可視化、リスクを伴うデプロイメントの実行の防止ができます。
4)CIEM(Cloud Infrastructure Entitlement Management)
クラウドインフラストラクチャは、一般的にプロジェクトやチームの単位で複数人が共有利用する共通プラットフォームとして活用されます。そのようなユースケースで運用されるクラウドインフラストラクチャでは、存在する個々のユーザーアカウントに対して必要な役割に応じた適切なロール(操作権限)が適用されていることが求められます。その一方で、本来必要でない過剰な権限を割り当てられていたユーザーアカウントによるミスオペレーションや、既に離任したメンバーが使用していた消去されるべきユーザーアカウントが悪意のある第三者に搾取されたことによるセキュリティインシデントが数多く報告されています。
CIEMを活用することで、特権を付与されたユーザーアカウントや長期間使用されていない(ログインに使用されていない)ユーザーアカウントの可視化を可能にし、ユーザーアカウント起因でのセキュリティインシデントの発生を防止することが可能です。
5)CWPP(Cloud Workload Protection Platform)
アプリケーション運用プロセスでは、アプリケーションをサービスとして提供するためのクラウドのワークロード(仮想マシン、コンテナ、サーバーレス)は、従来のオンプレミス環境におけるコンピューティングと同様に攻撃者からのアタックやワークロード内部で発生する脅威に晒されるリスクが伴います。
CWPPを活用することでワークロードに対する多種多様な脅威に対する対策を働かせ、稼働中のサービスを堅牢に保護しながらサービス提供を継続することが可能です。
CWPPによる代表的なセキュリティ実装として下記が挙げられます。
- ネットワーク(L3)Allow or Denyリスト
- ネットワーク(L7)WAF
- APIセキュリティ
- 脅威プロセス検知/保護
- ファイルシステムアクセス検知/保護
上記のように、CNAPPの構成要素である5つのセキュリティソリューションは、アプリケーションライフサイクルを構成する技術要素に適用することでライフサイクルに対してのセキュリティ実装を実現します。これにより、ビジネスユースケースで求められるセキュリティレベルに準拠するアプリケーション開発と運用が実行できるようになります。
3.まとめ
本記事では、我々の生活に欠かすことのできないアプリケーションを開発、運用するためのアプリケーションライフサイクルの特性を理解し、そのライフサイクルに含まれるプロセスをビジネスユースケースで利活用できるためのセキュリティ実装であるCNAPPの全体像を解説しました。アプリケーション駆動型の市場が形成される中で、CNAPPの構成要素を実装するためのセキュリティソリューションは、アプリケーションライフサイクルの発展・進化に伴って今後も変革していくことが予想されます。このような市場変革の中で変わることなく重要視するべきは、ライフサイクルの其々のステージの中でどのようなオブジェクトをどのような脅威から保護する必要があるのかを正しく理解し、適切なセキュリティソリューションを選定し、実装できることです。
マクニカでは、CNAPPを実装するためのセキュリティソリューションとしてPrisma Cloudを提供しております。CNAPPを検討する中で不明点や疑問が生じた場合は、マクニカへのご相談をお待ちしております。
▼Prisma Cloudの製品ページはこちら
https://www.macnica.co.jp/business/dx/manufacturers/prisma/