第5回 “あのセキュリティ事故”はどうやったら防げた? 検証委員会

クラウド開発者とセキュリティ担当者のジレンマを解消する「FortiCNAPP」

クラウドのサービス開発で健康データ4万件が漏洩の危機! どうやったら防げた?

文●大塚昭彦/TECH.ASCII.jp

提供: フォーティネット

  • この記事をはてなブックマークに追加
  • 本文印刷

■今回のセキュリティ事故:

 ヘルスケアスタートアップのB社は、創業当初から会員向けWebサービスの提供基盤としてパブリッククラウドを活用してきた。最近では、新たな目玉となる生成AI機能を組み込むために、複数社のクラウドを連携させたマルチクラウド活用も始めている。

 会員個々人の健康データが登録されるサービスであるため、情報セキュリティ対策には特に注意を払ってきた。CISO(最高情報セキュリティ責任者)が社内全体のセキュリティを監督し、クラウドの設定や運用についても細かくルール化している。サービス開発のためにクラウドを利用する開発者たちも、そのルールをきちんと順守してきた。

 しかし、そうした中でセキュリティ事故が発生した。セキュリティ監査を依頼している外部のセキュリティベンダーから、クラウドで利用しているストレージサービスのアクセス制限が不十分であり、会員の健康状態に関するデータ、およそ4万件が外部からアクセスできる状態であることを指摘されたのだ。調査の結果、このデータはおよそ3週間にわたって"公開状態"だったことも判明した。

 原因はマルチクラウドの利用にあった。生成AI機能を担当する開発者が、新たに利用を始めたクラウドに慣れておらず、ストレージサービスの設定を誤っていたのだ。個々のサービスの利用判断が開発者側に任されており、そのサービスを利用していることをCISOが把握できていなかったのも問題だった。

 B社のCISOは、あらためて開発者たちに注意を促し、クラウド利用ルールの見直しも行った。ただし、あまりルールを厳しくしてしまうと、サービス開発のスピード感が損なわれるおそれもある。CISOとして、開発者が自由にクラウドを利用できる体制は維持したいのが本音だ。……このセキュリティ事故はどうやったら防げたのだろうか?

セキュアなはずのクラウドで多発する情報漏洩事故

 Webサービスやアプリケーションの開発にパブリッククラウドを使うのは、もはや当たり前のことになっている。クラウドを使うことで、必要なリソースがすぐ手に入るアジリティ(俊敏さ)、必要に応じてすぐ規模を拡大/縮小できるスケーラビリティ(拡張性)、コストや運用の効率性、最新テクノロジーによるイノベーションなど、数々のメリットが得られる。

 本来であれば「セキュリティ」も、クラウドのメリットのひとつだ。物理的なインフラ(データセンター、ネットワーク、物理サーバーなど)のセキュリティ対策、OSやソフトウェアのアップデートなどは、プロバイダー側の専門家が実施してくれる。さらに、ファイアウォールやWAF(Webアプリケーションファイアウォール)などのセキュリティ機能も、管理コンソールの操作だけで簡単に導入できる。現在では「自社運用(オンプレミス)よりもセキュア」とすら言われるようになった。

 しかし現実には、クラウドでの情報漏洩事故は頻繁に発生している。高度なサイバー攻撃によって機密情報が盗み出されたというケースもあるが、非常に多いのは今回のB社のようなパターン、つまり「機密情報がクラウド上で誰でもアクセスできる状態になっていた」という事故だ。皆さんも一度や二度はニュースで目にしたことがあるのではないだろうか。

 その事故原因の大半は、「クラウドストレージにおけるアクセス権限の設定ミス」という極めて単純なものだ。それでも、運悪く犯罪者に見つかれば情報漏洩や脅迫といった攻撃が発生しうる。また、情報漏洩には至らなくても、個人情報保護委員会や監督官庁への報告、顧客への公表と謝罪が必要になるケースもある。

クラウド開発で設定ミスが多発する背景は?

 クラウドの設定ミスが原因となる、こうしたセキュリティ事故が多発する背景を考えてみよう。

 まずは、多くの企業で「開発者とセキュリティ担当者は別の役職である」ことがある。開発者にとっては、より便利に、より迅速に開発が進むことが最優先事項であり、セキュリティの優先度はそれ以下だ。そのため、セキュリティ担当者から見れば不十分な対策のまま、サービスの開発や公開が進んでしまうおそれがある。

 「マルチクラウド環境の増加」も、クラウドのセキュリティ対策を難しくしている。複数社のクラウドサービスを併用するうえでは、それぞれに異なるセキュリティの機能と設定を理解しなければならない。また、クラウドプロバイダーが提供するセキュリティツールは、基本的に自社のクラウドサービスだけを対象としており、「複数のクラウドに一括で同じセキュリティ設定を適用する」ことができない。

調査では、すでに8割近くの企業がマルチクラウド環境を利用している。大きな課題は「それぞれのクラウド環境の保護」や「可視性/制御機能の欠如」だ(出典:Cybersecurity Insiders/フォーティネット「2025年クラウドセキュリティレポート」)

 しかも、現在は「クラウドネイティブな開発」が普及し始めている。たとえば、アプリケーションの実行プラットフォームが仮想マシンからコンテナに代わり、環境構築もIaC(Infrastructure as Code)の手法で自動化されるなど、インフラがそのつど動的に(ダイナミックに)構成されるようになった。その結果、これまで静的な(スタティックな)インフラを前提としてきたセキュリティ対策も、より複雑なものとなる。

 こうした開発スタイルとITインフラの変化から、セキュリティ担当者側は「セキュリティ全体の状況が見えない」事態になってしまう。本来であれば、自社内のクラウド利用にガバナンスを効かせ、セキュリティポリシーの統一を図り、設定ミスや脆弱性があれば素早く見つけ出して修正したいところだが、全体像すら見えない状況では不可能だ。

 クラウドをめぐるセキュリティ事故の多発は、こうした背景から生まれている。かと言って、開発者によるクラウドサービス利用を厳しく制限するルールを作ると、今度は開発とイノベーションのスピードが遅くなり、DXの推進を妨げるようなマイナスの効果を生んでしまう。バランスの難しい問題なのだ。

開発者にもメリット、「FortiCNAPP」の包括的セキュリティ

 このような、クラウドセキュリティにまつわるさまざまな課題を解消するのが「CNAPP(クラウドネイティブアプリケーション保護プラットフォーム)」である。以下では、フォーティネットが提供する「FortiCNAPP」を取り上げて、提供する機能や特徴を説明しよう。

「FortiCNAPP」のダッシュボード(CSPMの管理コンソール画面)

FortiCNAPPが提供するクラウドセキュリティ機能の全体像(概要)

 CNAPPは、これまで分散していたクラウドアプリケーション向けのセキュリティ機能を、単一のプラットフォームに統一して提供するものだ。FortiCNAPPの場合、主に次のような機能群を備えている。

・CSPM(クラウドセキュリティポスチャ管理):クラウドサービスの設定を監視し、設定ミスを検出したり、自動修正したりする機能
・CWPP(クラウドワークロード保護):クラウド環境で稼働するワークロードを包括的に保護する機能。脆弱性スキャン、マルウェア対策、ファイアウォール、コンテナセキュリティ、アプリケーション制御などが含まれる
・CIEM(クラウドインフラ権限管理):クラウド環境の権限管理を最適化する機能。クラウドサービスやリソースに対する権限の可視化、ライフサイクル管理、最小権限の提案、マルチクラウド環境における権限の統合管理などが含まれる

CNAPPの主な機能3つ(CSPM、CWPP、CIEM)

 なお、FortiCNAPPはマルチクラウド環境に対応しており、AWS、Azure、Googleといった主要パブリッククラウドや、プライベートクラウド環境のセキュリティを一括でカバーする。セキュリティ担当者は単一の管理コンソールから、セキュリティの全体像とリアルタイムな状況を把握可能だ。

 “クラウドならでは”のセキュリティ対策機能として、特に注目したいのがCSPMだ。すでに述べたとおり、クラウド環境では、小さな設定ミスが原因となって大きなセキュリティ事故が発生しうる。しかも、クラウドインフラが動的に構成される(常に変化する)ために、開発者やセキュリティ担当者がミスに気づくことがより難しくなっている。

 FortiCNAPPのCSPMは、各クラウドにおける設定変更を継続的に監視し、「設定ミス」と判断したものについては即座に設定変更の提案を行う。そのため、開発者が新たにサービスを利用開始し、それをセキュリティ担当者が把握していなかった場合でも、設定ミスを見逃すことがない。

CSPMが対象とする具体的なリスク。「不要なポート開放」「過剰な権限付与」などもリスクとして検出できる

 さらに、セキュリティポリシーをコードとして定義することで、マルチクラウド環境のポリシーに一貫性を持たせられる「Policy as Code(PaC)」の機能も備えている。クラウド環境に対するポリシーの自動適用に加えて、実行前のIaC(Terraform、AWS CloudFormationなど)テンプレートを検証して、そこに含まれる問題点を修正し、未然に設定ミスを防ぐことも可能だ。FortiCNAPPをCI/CDツールと連携させることで、高度に自動化された「DevSecOps」の実現にも寄与する。

 FortiCNAPPはそのほかにも、Kubernetesの構成ミスを防ぐ機能、さまざまなコンプライアンス標準(SOC2、ISO 27001、PCI DSS、HIPAA、NISTなど)の順守を支援する機能、ソフトウェアのライブラリやコードの脆弱性を管理する機能など、クラウドインフラからアプリケーションまでをカバーする幅広いセキュリティ機能を提供する。

 こうした包括的な機能群によって、クラウドを柔軟に活用したい開発者側のニーズを満たしながら、セキュリティ担当者はマルチクラウド環境に対するガバナンスを効かせることができる。

FortiCNAPPは、開発段階(コード)、デプロイ段階(クラウドインフラ)、実行段階のすべてをカバーする


■セキュリティ事故、その後日談:

 幸い、B社で“公開状態”になっていた会員の健康データには、外部からのアクセス履歴はなかった。また、犯罪者からの恐喝なども発生していない。それでも、個人情報保護委員会への報告を行う義務があり、事故発覚後にはその対応に追われることになった。

 この事故の教訓から、B社では、自社のサービス開発環境にFortiCNAPPを適用することにした。導入するとすぐに、これまで利用してきたクラウドサービスの設定にもいくつかの不備が検出され、修正することができた。

 FortiCNAPPの導入は開発者に好評だ。これまでは、正しくセキュリティ設定できているかどうかを何度も確認する作業が発生していたが、それをFortiCNAPPに任せることができる。IaCテンプレートのチェックもできるので、今後はDevOpsの取り組みを一気に進める方針だ。

 CISOの側でも、クラウドのセキュリティ状況を一元監視できるため、作業効率が大幅に上がった。開発者を厳しいルールで縛り付ける必要がなくなり、クラウドをより自由に使ってもらえるようになった点も評価している。コンプライアンス対応についても、順守状況が簡単にチェックできるのでありがたい。

 そして、B社にとっては何よりも、あの事故で失われた「セキュリティへの自信」を取り戻せたことが大きな成果だ。事故後は新たなサービス開発も停滞気味だったが、FortiCNAPPという“クラウドセキュリティのガードレール”が出来たことで、開発がふたたび活発化している。今後は、新たなクラウドテクノロジーも積極的に取り入れて、先進的なサービスを提供していくつもりだ。


※この記事で紹介したストーリーはフィクションです。実在する組織や人物とは関係ありません。