最新の クラウドネイティブアーキテクチャは、 最先端の ソフトウェア技術を 活用し、 クラウドファーストの インフラを 中心に、 企業が アプリケーションを 安全かつ 大規模に デプロイできるようにします。 クラウドネイティブセキュリティは、 この 考え方を アプリケーションの 保護に 適用する ものです。 ゼロトラストや 多層防御 (DiD)などの 概念を 取り入れた、 最新かつ 実践的な アプローチです。 クラウドネイティブアプリケーションセキュリティ にも、 専用に 構築された ツールや サービスを 活用した 同様の アプローチが 求められます。
Play Video: Intro to Cloud Native Application Security
クラウドネイティブとは? クラウドネイティブとは、 クラウドを 主要な ホスティングプラットフォームと して 設計された システムアーキテクチャの 構築に 焦点を 当てた、 設計原則、 ソフトウェア、 サービスの 総称です。 クラウドネイティブアプリケーションの 主な 目的は、 最新の クラウドベースの インフラが 持つ 機能を 活用し、 継続的インテグレーションの 手法を 取り入れて 開発と デプロイを 迅速化する ことで、 高い スケーラビリティ、 回復力、 安全性を 実現する ことです。
クラウドネイティブは 運用の 簡素化も 可能に します。 ソフトウェア駆動型の インフラモデルを 活用して 高度な 自動化を 実現する ことで、 従来の サーバーインフラの 管理や デプロイに 伴う 煩雑な 作業の 多くを なくします。
上記の 定義は クラウドネイティブを 一般的に 理解する ための 確かな 基盤と なりますが、 Cloud Native Computing Foundation ( CNCF )などに よる、 より 具体的な 定義も あります。
多くの 場合、 クラウドネイティブは 「クラウドファースト」と 捉えれば 十分ですが、 CNCFは ベンダー中立の アプローチを 重視し、 最小限の 追加設定で クラウド プロバイダー間を 移行できる プロジェクトや ソフトウェアを 推進しています。 また、 CNCF最大の プロジェクトである Kubernetesが 注力している コンテナも 重視されています。 企業は、 CNCFの 定義の 範囲外に ある ホステッドサービスを 使いながら、 クラウドネイティブの 一般的な 定義に 当ては まる 場合も あります。 どの 定義が 設計に 最適かは、 各チームが 判断する 必要が あります。
クラウドネイティブアプリケーションとは? クラウドネイティブアプリケーションとは、 クラウドネイティブアーキテクチャを 前提に 構築、 設計された ソフトウェア プログラムや サービスです。 クラウドネイティブアプリは、 クラウドネイティブの 利点を 活用して 機能する ために 必要な 設計原則、 デプロイの パラダイム、 運用プロセスを 備えた、 明確に 独立した 単位です。
クラウドネイティブの 一般的な 原則とは 異なり、 個々の アプリケーションでは、 不変の アーティファクトなど、 具体的な 実装上の 決定や ツール、 パターンの 選択が 必要に なります。 これらは、 システム全体に おける クラウドネイティブ機能の 強化に 役立ちます。
クラウドネイティブの 定義に 該当する ソフトウェアの 設計や デプロイ方法には 幅広い 選択肢が ありますが、 すべての クラウドネイティブアプリケーションに 共通する 一般的な 特徴も あります。
多くの クラウドネイティブアプリケーションは、 さまざまな 形で 自動化に 大きく 依存しています。 アプリケーションの 中核と なる コードの 自動テストや ビルドから、 基盤インフラの 自動デプロイや スケーリングまで、 その 範囲は 多岐に わたります。 最も 成功している 企業の 中には、 高度に 自動化された 堅牢な クラウドネイティブ CI/CD システムを 活用し、 1日に 数千回の デプロイを 行う ところも あります。 クラウドネイティブセキュリティの 現状レポート に よると、 クラウドネイティブの 自動化が 進んでいる 企業ほど、 セキュリティテスト手法の 導入率も 高くなっています。 デプロイパイプラインを 完全に 自動化している 組織は、 クラウドネイティブアプリケーションを 保護する ために、 SDLCに SASTと SCAの ツール を 導入する 可能性が 2倍高くなります。
クラウドネイティブアプリでは 通常、 マイクロサービスアーキテクチャ の パターンも 採用されます。 コンポーネントが 疎結合に なっている ため、 サービス需要の 増加に 合わせて 個別に スケールできます。 より 一般的に 言えば、 DevOpsの 原則に 基づいて 構築された アプリケーションは、 成功する ために ほぼ 必ず 暗黙的に クラウドネイティブに 依存します。
クラウドネイティブアプリケーションは、 従来の アプリケーションモデルよりも 迅速に 構築でき、 効率的に スケールできます。 その ため、 テクノロジー主導の 企業は イノベーションを 加速し、 市場投入までの 時間を 短縮できます。 一方で、 クラウドネイティブモデルは 根本的な 変化を もたら すため、 クラウドネイティブアプリケーションの 保護と 運用を 担う 人は、 その 変化を 考慮しなければなりません。 かつては インフラと 見なされていた ものが、 今や アプリケーションの 一部に なっています。 特に セキュリティの 観点では、 クラウドネイティブアプリケーションに 対して セキュリティモデルの 考え方を 変え、 アプリケーションセキュリティ と 運用の 概念を 再定義する 必要が あります。
CTFを 始めよう オンデマンドの バーチャル入門ワークショップで、 CTFチャレンジの 解き方を 学びましょう。
クラウドネイティブセキュリティツールとレガシーツールの比較 従来の レガシーソフトウェアホスティングインフラを 想定して 設計された セキュリティツールや プロセスには、 クラウドネイティブアーキテクチャに おける 動的で、 外部に 広くさらされた 「境界の ない」 環境に 十分対応する ための 機能が ありません。
簡単に 言えば、 従来の セキュリティツールは、 最新の クラウドが 求める 要件に 対応するようには 作られていません。 現代の ソフトウェアスタックでは 当たり前に なっている ツールや 設計パターンの 多くが、 セキュリティツールの 設計当時には 存在していなかった 可能性も あります。
その 典型例が、 Terraformなどの Infrastructure as Code(IaC) ツールの 普及です。 これらは 技術的には 「コード」ですが、 通常は 独自の 機能を 持つ ドメイン固有言語 (DSL)を 表す ため、 静的解析などの 従来の ツールに よる 検証は 困難で、 効果も 限定的です。 IaCツールを 使えば、 比較的 少ない 労力で 大量の インフラを プロビジョニングできる ため、 確実に 保護する ことが 非常に 重要です。 IaCの コードと 設定 を 監査するには、 ソフトウェアおよびインフラエンジニアリングの 歴史の 中でも 比較的 新しい ベストプラクティスと ツールを 導入する 必要が あります。
IaCツールは レガシーセキュリティツールに 重大な ギャップを もたらしますが、 クラウドネイティブアプリケーションを 大規模に 保護する 際の 課題の 一つに すぎません。 根本的に、 クラウドネイティブアプリケーションの 保護には、 従来ITや 運用セキュリティの 責任範囲に あった 概念を アプリケーションセキュリティモデルに 取り込む アプローチが 必要です。 また、 こうした コンポーネントの 保護は、 IT/運用セキュリティチームだけに 任せるのではなく、 アプリケーションを 構築する 開発者から 始める 必要が あります。
クラウドネイティブアプリケーションの保護 クラウドネイティブセキュリティでは、 組織全体の クラウドネイティブ戦略に 沿った セキュリティへの 取り組みが 求められます。 クラウドネイティブアプリケーションは、 アプリケーションの コンテキストで 保護する 必要が あります。 その アプローチでは、 アプリケーションの 構築と 運用を 担う チーム、 プロセス、 インフラモデルの 変化にも 対応しなければなりません。 その ため、 クラウドネイティブセキュリティでは、 クラウドネイティブな アプリケーション セキュリティを 重視し、 開発中に 脆弱性を 特定して 修正する ことが 重要です。 アプローチは 包括的でなければならず、 ソフトウェア開発ライフサイクル全体に セキュリティを 組み込む 必要が あります。
セキュリティプラットフォームで 開発者を 支援し 、 ビジネス目標を 満たし、 クラウドネイティブの 原則を 活用した 設計の 実現に 注力できるようにしましょう。 同時に、 アプリケーション開発中に 定義される インフラが 増える ほど、 コードの 安全性を 確保する 責任を 開発チームが 担うことになると 認識する 必要が あります。 あらゆる 議論や 設計上の 決定に おいて クラウドアーキテクチャが 最優先事項と して 考慮されなければ、 真の クラウドネイティブアプリケーションの 構築は 難しくなるでしょう。
設計の 基盤が 整ったら、 アプリケーションや インフラの コーディングが 始まります。 この 段階では、 コードを テストする ことを、 セキュアな ソフトウェア開発ライフサイクル (SSDLC) の できるだけ 早い 段階から 始める ことが 重要です。 記事の 前半で 触れたように、 静的解析だけに 頼る 従来の 単一アプローチでは、 もはや 十分ではありません。 静的アプリケーションセキュリティテスト (SAST) 、 動的アプリケーションセキュリティテスト (DAST)、 インタラクティブアプリケーションセキュリティテスト ( IAST )、 モバイルアプリケーションセキュリティテスト (MAST)は、 クラウドネイティブアプリケーションの コードに 対して 実施すべきさまざまな テストの 一部です。
クラウドネイティブインフラの保護 アプリケーションの クラウドネイティブインフラを 保護する 際にも、 特有の 課題が あります。 IaCの 設定に よって 実環境の インフラが デプロイされる ため、 開発者は インフラの コードと アプリケーションコードを 並行して 記述する ことが よく あります。 この 課題に 対応できる セキュリティツール が 必要です。 既存の ワークフローに シームレスに 統合し、 開発者に 直接、 インサイトや 修正方法を 提供できる ものでなければなりません。 一般的には、 セキュリティ情報を IDEに 直接 表示し、 CLIツールで ローカルテストを 実行できるようにします。
開発者の ローカル環境に セキュリティインサイトを 提供するだけでなく、 クラウドネイティブセキュリティツールは ソフトウェアライフサイクルの 各段階にも 統合する 必要が あります。 ソースコード管理システムでの 自動スキャンや、 CI/CDシステムを 通じた コンテナイメージなどの 派生アーティファクトの スキャンを 優先すべきです。 こうした 統合スキャンの 結果には、 開発者が 優先順位を 簡単に 判断できるよう、 修正方法も 提示する 必要が あります。
従来の オンプレミスインフラでは、 論理ネットワーク境界に 依存する ことが よく ありました。 境界は、 一般に セキュリティ制御が 緩やかな 特定の 内部リソースへの 不正な 通信を 防ぐ 役割を 果たしていました。 クラウドネイティブでは、 境界と いう 概念は ほとんど 意味を 持ちません。 ほとんどの クラウドプロバイダーでは、 わずかな 設定や UIの 変更で、 ほぼ すべての リソースを 公開できます。 同じ 論理ドメインに あるように 見える データも、 宛先に 届くまでに 複数の ネットワークや 物理的な 場所を 経由する ことがあります。 こうした 状況を 踏まえ、 企業は 「ゼロトラスト」モデルを 採用する 必要が あります。 この モデルでは、 すべての コンポーネントや サービスが 侵害の 標的に なり得ると 想定します。 システム内の すべての ノードや リソース間で、 ネットワーク上の 場所に かかわらず 認証を 行います。
開発プロセスで クラウドネイティブアプリケーションセキュリティの 重要性が 高まる 一方で、 本番環境でも クラウドネイティブセキュリティソリューションが 引き続き必要である ことにも 注意が 必要です。 従来の アーキテクチャで 利用できる コンピューティングリソースは、 一般に ハードウェアサーバーのみでした。 従来の セキュリティツールは、 静的な ネットワーク設定や ファイアウォールを 用いて アクセスや 通信の 流れを 制御し、 これらの リソースを 境界の 内側で 保護していました。 クラウドネイティブインフラは、 アプリケーションの 迅速な デプロイやリソースの 再構成を 可能に する、 高度に 動的な 環境と して 一から 設計されています。
クラウドネイティブセキュリティアーキテクチャとは? クラウドネイティブセキュリティアーキテクチャとは、 クラウド上に デプロイされ稼働する すべての ものを 可視化し、 セキュリティチームが クラウド上の アプリケーション、 インフラ、 プラットフォームを 監視・保護できるように する ための 戦略です。 詳しくは クラウドセキュリティアーキテクチャ を ご覧ください。
クラウドネイティブアプリケーションでは、 仮想マシン、 コンテナ、 サーバーレス関数など、 さまざまな コンピューティングリソースや ランタイムが 使われる 可能性が あります。 クラウドネイティブエコシステムを 構成する コンテナの 監視と ランタイム環境の 保護には、 専用に 構築された セキュリティツール が 必要です。 クラウドネイティブ環境で 強固な セキュリティ態勢を 維持するには、 実行時の アーティファクトと 設定の スキャンが 不可欠です。
CTFを 始めよう オンデマンドの バーチャル入門ワークショップで、 CTFチャレンジの 解き方を 学びましょう。
クラウドネイティブアプリにはクラウドネイティブセキュリティプラットフォームが必要 クラウドは 絶えず 変化していますが、 クラウド全体は 今後も なくなる ことは ありません。 イノベーションの ペースが 加速し続けるなか、 企業が その 変化に 対応できるよう、 新たな テクノロジーや ツールの 開発が 必要に なります。 企業では 既存の オンプレミスの ソフトウェアインフラを そのまま クラウドに 移行する ことが よく あります。 その 結果、 古い 抽象化や セキュリティモデルを 持ち込んでしまい、 クラウドネイティブアプリケーションの メリットを 活かせなくなります。
オンプレミスでの ホスティングを 前提に 構築された セキュリティモデルや ツールは、 特に 大きな リスクと なります。 こうした ツールの 多くは、 クラウドが 主要な ホスティングプラットフォームと して 普及する 前に 設計されており、 十分な セキュリティを 提供するには 不十分です。 非常に 変化が 速く 競争の 激しい 環境では、 アプリケーションを スケールさせる こと、そして 何より 安全に 保つことが 最重要課題です。 現代の クラウド時代に 競争力を 維持したい 企業は、 クラウドネイティブアプリケーションの 構築に 注力し、 保護には クラウドネイティブの セキュリティプラットフォームを 活用する 必要が あります。
「ソフトウェアを デプロイする ときには、 さまざまな 要素が 関わります」 ... 「すべてを 手作業で 行うと、 時間が かかり、 面倒で、 ミスも 起こりやすく、 頻繁に やりたいとは 思えません。 だからこそ、 セキュリティを 含めて すべてを Snykで 自動化する 必要が あると 考えました。」
Coveo、 クラウドプラットフォーム担当プロダクトマネージャー、 Alex Emery
Snyk の 単一プラットフォームで、 クラウドネイティブアプリの あらゆる コンポーネントを 保護しましょう。