クラウド時代の開発者はセキュリティから逃げられない
今や、便利なOSSを使用していない企業はほぼ存在しない。マイクロサービスアーキテクチャの普及により、従来のモノリシックなシステムから、APIを介してコンテナ化されたサービスが疎結合する構造に変化しつつある。つまり、言語やフレームワークが違っていても、APIで通信できれば問題ないということだ。そしてクラウドが普及したことで、開発者はハードウェアの制約などから解き放たれ、必要なインフラを自分で調達できるようになった。ロードバランサーやAPIゲートウェイなど、インフラの設定や管理ですら、物理的な作業の必要はなく、APIを介して自動化できる。
しかし、できることが増えれば、その分責任範囲も広がるということだ。例えば、OSSの利用は、同時に脆弱性を取り込むリスクもある。インフラの設定ミスは、セキュリティ事故や攻撃を招いてしまう。「アプリケーションからインフラまでさまざまな要素に関与するようになった結果、セキュリティを担保する責任も開発者に移りつつある」と、伊藤氏は現状を総括する。

ここで伊藤氏が紹介したのが、クラウド環境、特にIaaS・PaaSの総合的なセキュリティを確保するためのアプローチである「CNAPP」と呼ばれる概念だ。これはワークロード保護、権限管理、クラウドインフラやKubernetesの設定ミスの防止といった、さまざまなセキュリティ対策を横断的に網羅したものだ。CNAPPを提唱したGartnerによれば、CNAPPを効果的に実施するためには、DevSecOpsが欠かせない。つまり、開発初期の段階からセキュリティを考慮するシフトレフトを実践する必要があるのだ。ここでもセキュリティにおける開発者の重要性が意識されている。

CNAPPは非常に広範なセキュリティを網羅するが、実際に開発者が触れるべきツールは、アセットのレイヤーや、担当する職務によっても異なる。例えばアプリケーション層では静的解析、OSSでは脆弱性検査、VM・コンテナ層ではCWP(Cloud Workload Protection)、最下層のインフラ層ではCSPM(Cloud Security Posture Management)やCIEM(Cloud Infrastructure Entitlement Management)が重要になる。だが、それぞれのツールをバラバラに導入すれば、サイロ化を招いてしまうし、チームの共通言語を重視するDevOpsの理念にも反する。
「個々の開発者がセキュリティのすべてに精通するのは難しい。しかし、自分の担当領域以外は知らなくても良いというわけではない。チームで共通理解を確立できるように、統合されたプラットフォームでセキュリティ対策を進めるべきだというのがCNAPPのアプローチだ」(伊藤氏)
このCNAPPの考え方に基づく統合セキュリティプラットフォームの一つが、Tenable Cloud Securityだ。IaC、VM・コンテナ層・インフラ層を中心に、CNAPPにおけるさまざまなセキュリティを一つのツールで実施することができる。開発者、運用担当者、セキュリティチーム、さらにCSIRTや事業部門も含めて、ステークホルダーが同じUI・UXの下で情報を共有できることを目指しているという。
