Skip to main content

開発者がクラウドセキュリティの鍵を握る理由

feature cloud security

2022年9月30日

0 分で読めます

オンプレミスのデータセンターが主流で、クラウドの導入が始まったばかりの頃は、アプリケーション開発、インフラ運用、セキュリティの各担当者の役割は、ほぼ完全に分断されていました。クラウドでは、この分業体制がイノベーションの市場投入までの時間を延ばし、生産性を低下させ、不要なリスクを招いています。

データセンターからクラウドへの移行がもたらしたセキュリティの変革

データセンター環境では、開発者がソフトウェアアプリケーションを構築し、ITチームがそれらを実行するインフラを構築し、セキュリティチームがアプリケーションとインフラの安全性を確保します。開発者は基盤となるインフラやオペレーティングシステムの制約の中でソフトウェアを構築しなければならず、セキュリティプロセスによって全員の作業速度が左右されます。本番環境で脆弱性が発見されると、通常はすべての関係者が対応に加わり、多大な手戻りが発生します。

クラウドは、データセンターの物理的な制約からチームを解放し、数十年ぶりともいえる大きな変化をIT業界にもたらしています。しかし、組織がクラウドの真の可能性、つまりサードパーティ製アプリケーションやデータセンターから移行したアプリケーションをホストするだけでなく、アプリケーションを構築・実行するプラットフォームとしての可能性を引き出し始めるまでには、何年もかかりました。クラウドを単なる「リモートデータセンター」として利用していると、従来の分業体制がそのまま持ち込まれ、クラウドの可能性の多くが活用されないままになります。

クラウドをアプリケーションの構築・実行プラットフォームとして利用する動きは、セキュリティに大きな変化をもたらしています。クラウド利用者の視点では、Amazon Web Services(AWS)、Microsoft Azure、Google Cloudなどのプラットフォームは100%ソフトウェアであり、開発者はアプリケーションの一部として、クラウドインフラの作成や管理をプログラムで行うようになっています。つまり、開発者はクラウドアーキテクチャを設計し、セキュリティ上重要な設定を行い、その設定を絶えず変更しているのです。

これは、競争の激しい業界で事業を展開する組織にとって、大きなチャンスとなります。アプリケーションチームとクラウドチームは、データセンターを利用していた頃よりはるかに速くイノベーションを推進できるからです。一方で、ますます複雑化し、変化の激しいクラウド環境の安全性を確保する必要があるチームにとっては、深刻な課題でもあります。

開発者の能力を引き出すことを最優先に

今日、クラウドセキュリティに効果的に取り組む唯一の方法は、クラウド上で開発・運用を行う開発者に、安全に作業を進めるためのツールを提供し、その能力を引き出すことです。そうしなければ、セキュリティがチームのクラウドでの作業速度を制限し、デジタルトランスフォーメーションの成功を妨げる要因になってしまいます。

クラウドセキュリティにおいて開発者の能力を引き出す方法を考えるには、まず「開発者」の意味を明確にする必要があります。この言葉は幅広く、次のようなさまざまな役割を含みます。

  • クラウド上で開発し、クラウドネイティブサービスをアプリケーションの構成要素として活用するアプリケーション開発者。このモデルでは、アプリケーションとインフラの境界は恣意的で曖昧になり、もはや存在しない場合さえあります。

  • Infrastructure as Code(IaC)を使ってクラウドインフラ環境の設定、デプロイ、管理をプログラムで行い、そのインフラをアプリケーション開発者に提供するクラウドエンジニア(DevOpsなど)。

  • Policy as Code(PaC)を使ってセキュリティおよびコンプライアンスのポリシーを記述し、他のアプリケーションによるセキュリティの自動検証を可能にするとともに、組織内の各チームにPaCライブラリを提供するクラウドセキュリティエンジニア。

職務上の肩書きにかかわらず、クラウドは完全にソフトウェアで定義されているため、開発者がクラウドコンピューティングのインフラそのものを管理しています。クラウドでアプリケーションを構築する際、IaCを使ってそのアプリケーションのインフラも構築し、そのプロセスを担うのも開発者です。

そのため、セキュリティチームの役割は、開発者に知識やルールを伝え、安全な開発環境を実現するドメインエキスパートへと変化しています。ルールを人が理解・解釈できる言葉で伝えるのではなく、他のコードや実行環境をチェックして望ましくない状態を検出するPaCを使います。PaCによって、クラウドに関わるすべての人が、ソフトウェア開発ライフサイクル(SDLC)の両端において、ルールやその適用方法に曖昧さや意見の食い違いがない状態で、安全に業務を進められます。

クラウドセキュリティに適切に取り組む組織は、DevSecOpsモデルを推進し、デプロイ後のアプリケーションの安全性を開発者が確保できるようにしています。IDCの予測によると、2025年までに4,300万人を超える開発者の多くが、コードの実行開始後も、その継続的なパフォーマンスとセキュリティに全面的な責任を負うことになります。

クラウドの設定ミスは脆弱性

アプリケーション開発には、作成、テスト、デプロイ、監視の各段階を含むソフトウェア開発ライフサイクルが長年用いられてきました。アプリケーションセキュリティのシフトレフトによって、SDLCの早い段階で問題を修正するほうが容易で、速く、安全であることから、スピード、生産性、セキュリティの面で大きな投資対効果が得られています。IaCの導入により、クラウドインフラにも独自のSDLCが生まれました。つまり、クラウドセキュリティもデプロイ前の段階で対処でき、またそうすべきなのです。

クラウドセキュリティで最も懸念されるのは設定ミスですが、悪意ある攻撃者を効果的に阻止できないクラウド環境のあらゆる状態が、設定ミスに該当し得ることを認識しておくことが重要です。クラウド侵害のニュースでよく取り上げられる、危険なポートを開放したままにする、オブジェクトストレージサービスへのパブリックアクセスを有効にする、といった単一リソースの設定ミスはよく知られています。しかし、設定ミスは環境全体に関わることもあります。攻撃者に探索、横展開、データ窃取を可能にする、アーキテクチャ上の脆弱性もその一例です。

大規模なクラウド侵害にはすべて、クラウド環境のこうした設計上の欠陥の悪用、またはコントロールプレーンの侵害が関わっています。コントロールプレーンとは、クラウドの設定や運用を行うAPIの表層です。たとえば、コントロールプレーンを使ってコンテナを構築したり、ネットワークルートを変更したり、データベースやそのスナップショットへのアクセスを得たりできます(攻撃者は稼働中の本番データベースよりもスナップショットを狙う傾向があります)。つまり、APIコントロールプレーンとは、クラウドの設定と運用に使われるAPIの集合体です。

クラウドコンピューティングを支えているのはAPIです。APIにより、集中管理されたデータセンター内に固定的なITアーキテクチャを構築する必要がなくなります。そのため、攻撃者は企業がオンプレミスのデータセンター内にあるシステムやデータストアを守るために設けた、恣意的な境界を尊重する必要がありません。設定ミスの特定と修正は重要ですが、設定ミスは攻撃者が最終的に目指すコントロールプレーンの侵害に至る手段の一つにすぎないことを理解することが不可欠です。コントロールプレーンの侵害は、これまでに発生した重大なクラウド侵害のすべてで中心的な役割を果たしています。

クラウドで安全な開発を支える5つのステップ

IaCの開発中に開発者がクラウドの設定ミスを見つけて修正できるようにすることは重要です。しかし、今日のコントロールプレーン侵害攻撃に対して本質的に安全なクラウドアーキテクチャを設計するためのツールを提供することも、同じくらい重要です。

どの組織でも、次の5つのステップによって、開発者がクラウド上で安全に業務を進められるよう効果的に支援できます。

1. クラウド環境とSDLCを理解する

セキュリティチームは、アプリケーションチームやDevOpsチームにエンジニアを配置し、何が実行されているのか、どのように設定・開発・デプロイされているのか、変更がいつ発生するのかを把握する必要があります。どのアプリケーションがクラウドリソースに関連しているのか、どのようなデータがあり、どのように使われているのかも把握しましょう。攻撃者の視点で考え、コントロールプレーン侵害のリスクを特定してください。

2. セキュアな設計を優先し、設定ミスを防ぐ

コントロールプレーン侵害攻撃が始まってからでは、阻止するには手遅れとなることがほとんどです。効果的なクラウドセキュリティには、こうした攻撃を可能にする条件を未然に防ぐことが必要です。クラウドSDLC全体にセキュリティを組み込み、デプロイ前に設定ミスを検出するとともに、本質的に安全な環境アーキテクチャの設計に注力しましょう。

3. セキュリティをガイドするツールで開発者を支援する

開発者はスピーディーに作業を進めます。そのスピードを落とさずにツールを定着させるには、セキュリティツールも開発者の作業方法に合っていなければなりません。クラウドセキュリティツールは、セキュリティ上の問題とその迅速な修正方法について、開発者に役立つ実践的なフィードバックを提供する必要があります。

4. クラウドセキュリティにPolicy as Codeを導入する

PaCを活用すれば、セキュリティチームは限られたリソースで取り組みを拡大できます。クラウドに関わるすべての人が、ルールやその適用方法について曖昧さや意見の食い違いなく、安全に業務を進められるからです。すべてのチームがポリシーの信頼できる唯一の情報源に基づいて作業できるようになり、ポリシーの解釈や適用における人的ミスをなくし、SDLCのあらゆる段階で評価や適用などのセキュリティ自動化を実現できます。

5. 測定とプロセス改善に注力する

クラウドセキュリティでは、侵入検知や悪意ある活動を探すネットワーク監視よりも、エクスプロイトの発生を防ぐことが重要です。クラウドチームは、環境のリスクだけでなく、開発者とセキュリティチームの生産性も継続的に評価しています。手作業でミスの起きやすいタスクを自動化すれば、生産性は向上するはずです。

クラウドセキュリティは開発者から始まる

開発者は、デプロイ前にコードを安全にし、本番環境でその完全性を維持し、修正すべき箇所を把握できる最適な立場にあります(多くの場合、その役割を担えるのは開発者だけです)。しかし、開発者も人間であり、絶えず試行錯誤を繰り返す中でミスをすることがあります。PaCを基盤とする自動化によって、デプロイ前にミスを検索・検出するプロセスを自動化し、人的ミスのリスクを取り除けます。

開発者を第一に考えるクラウドセキュリティを取り入れた組織は、競合他社よりも速く、より安全にイノベーションを推進できます。

開発者のために設計されたIaCセキュリティ

Snykは、統合されたポリシー・アズ・コードエンジンにより、SDLCからクラウドでの実行時までInfrastructure as Codeを保護します。すべてのチームが安全に開発、デプロイ、運用できるよう支援します。

続きを読む

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSecのご紹介:AI開発のスピードに対応するセキュリティ

AI駆動型開発のスピードに、従来のセキュリティワークフローは追いついていません。SnykのAgentic AppSecは、セキュリティエージェントが脆弱性を継続的に検出、修正、検証し、人が基準を定められるようにします。

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

Blog

Evo ADSのエージェント動作ガバナンスが一般提供開始:MCPの利用を管理

Evo ADSのエージェント動作ガバナンスが、MCPガバナンスから一般提供を開始しました。主要なAIコーディングエージェント全体で、MCPサーバーの利用を検出、承認、監視、記録、ブロックできます。