試してみませんか?
サイバーセキュリティに不可欠なクラウドセキュリティ
クラウドセキュリティとは
クラウドコンピューティングは、その拡張性、柔軟性、導入スピードにより、あらゆる規模の組織に広く採用されています。パブリッククラウドやプライベートクラウドを使用することで、組織はオンプレミスの IT インフラに伴うコストや煩雑さに手こずることなく、クラウドネイティブのアプリケーションを含むソフトウェアを導入できます。
公開クラウドプロバイダーは、そのビジネスモデルからして社会的信用を維持する必要があるため、セキュリティが優先されますが、従来のオンサイト型の IT インフラを縛っていた境界線は、クラウドには存在しません。クラウド環境は相互に接続されているため、ハッカーにとってネットワークの不正アクセスや移動に使用できる多数の潜在的なエントリーポイントが存在します。さらに、クラウド環境は急速に進化し、分散しているため、クラウドネイティブアプリケーションやデータに対する可視性と制御を維持することは困難になっています。
CI/CD、サーバーレスアプリケーション、コンテナなどの最新型アプローチで構築されたクラウドネイティブアプリケーションのセキュリティを確保するため、開発者は新しい手法を必要としています。本番稼働した後に、アプリケーションのセキュリティを確保することはもはや現実的ではありません。
この記事では、クラウドコンピューティングのセキュリティと、それが現代の開発者に与えている影響について説明しています。
クラウドセキュリティとは
クラウドセキュリティとは、クラウドのインフラ、アプリケーション、データを安全に保護するための技術やツールのことをいいます。従来のセキュリティアプローチは、外部の脅威から内部ネットワークを保護することに重点を置いていましたが、クラウドの境界は緩やかに定義されており、クラウドのインフラは多くの点でデータセンターのインフラとは異なる運用がなされています。クラウドセキュリティを導入することで、企業はデータのプライバシーを確保し、ネットワークとリソースへのアクセスを制御してコンプライアンスを維持できるようになるため、IT チームは他の業務に集中することが可能になります。
Kubernetes によると、クラウドネイティブセキュリティには 4 つの C があります:
クラウド (Cloud)
クラスター (Clusters)
コンテナ (Containers)
コード (Code)
クラウドセキュリティの 5 つのメリット
顧客の信頼を保つ
管理を簡素化する
セキュリティを統合する
プライバシーおよびコンプライアンス
回復力
クラウドモデルでは、オンプレミスのシステム導入やメンテナンスにかかるコストと長い時間をかけることなく、アプリケーションの実行やデータの保存を効率的に行えます。また、重要なプロセスの可視性と制御を制限できます。堅牢なクラウドセキュリティプログラムを構築することで、企業には以下のような効果が得られます。
顧客の信頼を維持: ユーザーは、どこからでも、どのデバイスを使ってもデータやアプリケーションにアクセスできる一方、サイバーセキュリティの脅威や不用意な削除からデータが保護されます。
管理を簡素化:従来の IT セキュリティでは、手動による設定と頻繁なセキュリティアップデートが必要でした。クラウドセキュリティでは、事前に対応するアプローチで 24 時間態勢で保護され、導入後は手動による作業はほとんど必要ありません。
セキュリティの統合: クラウドコンピューティングでは、ユーザーがあらゆるデバイスやエンドポイントからワークフローにアクセスできるため、従来のアプローチでは管理が困難でした。クラウドセキュリティでは、ネットワークモニタリングが一元化され、ソフトウェアやポリシーの更新プロセスが簡素化されます。すべてのセキュリティ管理は 1 か所で行われます。
プライバシーとコンプライアンス: クラウドセキュリティにより、開発者はポリシーを記述し、自動的に適用して、データプライバシーと法規制のコンプライアンスを確保できます。
回復力: クラウドセキュリティでは一元的に管理できるため、災害復旧計画を簡単に導入できます。
クラウドセキュリティの種類
クラウドセキュリティにはいくつかの側面があります。
データセキュリティは、保管中および転送中のデータの保護に重点を置いています。
ID およびアクセス管理 (IAM) は、クラウドアーキテクチャの各ゾーン間のトラフィックを、ID とアクセス制御によってコントロールします。
ガバナンスとコンプライアンスは、クラウドアーキテクチャが企業または政府の規制に準拠していることを確認することに重点を置いています。
データおよび事業の継続性は、ネットワーク障害やデータ損失が発生した場合にシステムを回復できるよう冗長性を構築しています。
これを踏まえた上で、クラウドコンピューティングのセキュリティについて種類別に詳しく考察してみましょう。
データセキュリティ
機密データは、不正アクセスや漏洩を防ぐために、公開クラウドリソースでの保存時と転送中の両方で保護される必要があります。ユーザーはインターネットを使って、場所やデバイスを問わずクラウドデータにアクセスできるため、IT チームはデータを保護するための新しいアプローチを必要としています。
クラウドデータを保護するために、さまざまなツールと手法を利用できます。
暗号化:これはアルゴリズムを使用して、保存中と転送中の両方の情報をエンコード (符号化) する方法です。ハッカーがバリアを突破してデータにアクセスできたとしても、元の形式で表示するにはデータの復号を行う必要があります。これには、ほとんどのハッカーにとって経済的に実行不可能なレベルのコンピューティングパワーが必要になるため、暗号化はデータセキュリティの重要なツールとなっています。
VPN: 仮想プライベートネットワーク (VPN) では、データが暗号化され、VPN ホストが実行するリモートサーバーを経由してルーティングされるため、安全性が疑われる接続を経由する場合でもデータを安全に送信できます。これによりデータを保護し、発信元や場所を隠すことができます。
クラウドセキュリティアーキテクチャ:クラウドネイティブの不正アクセスでは、クラウド導入のエラーや脆弱性を攻撃して、設定不十分なインタフェースや安全でないインタフェースを経由してデータにアクセスし、そのデータをハッカーのネットワークに流出させるケースが多く見られます。このため、アプリケーション、コンテナ、仮想マシン、データなどのクラウドアーキテクチャのコンポーネントを分離することがベストプラクティスとなっています。仮想プライベートクラウドや Azure VNet などのツールでは、ワークロードをサブネットに分割することでこれを実現しています。次に、詳細なセキュリティポリシー、IAM 設定、ファイアウォール、ルーティング設定を適用して、アクセスを制御できます。
クラウドサービスモニタリング:クラウドサービスは社内ネットワークやデバイスの外部に存在するため、IT チームはデータをモニタリングするためにクラウドサービス自体を可視化する手段を必要としています。これは、社内ネットワークのトラフィックをモニタリングする従来の方法でも対応できますが、マルチクラウド管理になると、さまざまなクラウドプロバイダーを統合し、クラウド導入に伴う複雑化に対処する必要があります。また、利用するクラウドプロバイダーが 1 社でも、セキュリティを確保するためにネットワークトラフィックの可視性を確立して、維持する必要があります。
上記のツールや手法により、悪意のあるハッカーやヒューマンエラーによるデータの流出や破損から保護できる点に注目できます。これらの対策を実行することが、不正アクセスの影響を軽減するための第一歩となります。
ID およびアクセス管理 (IAM)
クラウドコンピューティングモデルには、データベースやオブジェクトストレージサービス、オペレーティングシステムや仮想マシンなどのソフトウェア、個人所有のハードウェア、BYOD (Bring Your Own Device) などの一連のテクノロジーが含まれます。これらのゾーン間のトラフィックを制御することは、クラウドセキュリティの重要な側面です。IAM により、これらすべてのユーザーとエンドポイントを可視化して制御できます。
IAM には以下が含まれます。
認証と承認:アクセス制御は、正当なユーザーと悪意のあるユーザーの両方に対して情報やシステムに対するアクセスを制限し、危険にさらす可能性を限定するための重要な方法です。強力なパスワード管理と多要素認証は、優れた認証および承認ツールの 2 つの例です。
役割ベースのアクセス制御:個別のアクセス制御ではなく、役割ベースのアクセス制御を行います。こうすることで、ユーザーの役割が変更されるときに簡単に変更できます。権限は常に「最小権限」の原則に基づいて付与するべきで、権限が強くなるにつれて強力な認証が必要になります。「最小権限」のアクセスを付与することで、ハッカーがアカウントにアクセスできるようになった場合でも、システムにそれ以上侵入したり、API キーなどの重要なデータにアクセスしたりできないようにすることができます。
クロスゾーンセキュリティ:これには、ポートブロック、権限の要求、詳細なセキュリティの適用などが含まれます。
セキュリティチームが識別と承認のすべてのインスタンスをモニタリングするのが理想的ですが、リソースが限られているため、ユーザー一人ひとりが資格情報の使用により不正アクセスのリスクを軽減する方法について基本的に理解しておく必要があります。これには、強力なパスワードや多要素認証に関するトレーニングも含まれます。IAM の原則は、安全なクラウドアーキテクチャの重要性を強調するものであり、クラウドセキュリティアーキテクトといった専門の役職を用意することで、適切な構成や管理を確認できます。
ガバナンスおよびコンプライアンス
クラウド環境は、SOC2、PCI、HIPAA などのユーザープライバシーに関する規制要件、および社内要件のコンプライアンスに対して新たな局面をもたらしています。コンプライアンスプロセスは、インフラそのものだけでなく、社内システム、クラウドインフラ、インターネット間のインタフェースにも対応している必要があります。
クラウド環境でコンプライアンスを確保するには、ポリシーとコントロールを自動化することが一つのアプローチとなります。これらには、重要システムに対する脅威を追跡し、優先順位を付けて軽減するポリシー、データを保護するポリシー、役割ベースのアクセス制御、暗号化とログの使用、およびパスワードに関する安全なユーザー行動についてのポリシーを含める必要があります。
データ回復力と事業継続性
クラウドセキュリティでは、災害や不測の事態でデータが消失しても、データを保全して事業を継続できるよう、冗長性を確保するための対策を講じています。データとシステムの両方をバックアップすることで、安定した運用が実現されます。これには、バックアップのテストやデータを復元するための手順も含まれます。クラウドに正常にデータをバックアップすることにより、ランサムウェア攻撃からも保護されます。ハッカーがライブファイルをすべて暗号化してしまっても、身代金を支払うことなく、バックアップから簡単に取り戻すことができるのです!
クラウドセキュリティが重要となる理由
クラウドセキュリティは重要なのは、クラウドアーキテクチャが相互に接続されているためです。クラウドプロバイダーのビジネスモデルとして、もともと包括的なセキュリティプログラムが用意されています。ただし、ハッカーは多くの場合、ID に不正にアクセスしてセキュリティチェックを回避しています (そのことは、Microsoft のクラウドサービスを利用する米国企業や連邦政府機関に対する攻撃が発生したことからもわかります)。
堅牢なクラウドセキュリティが存在しない場合、ハッカーは 1 台の脆弱性のあるデバイスまたは不適切に設定されたクラウドリソースにアクセスするだけで攻撃を開始できます。次に、ハッカーは他のクラウドシステムのインタフェースを経由してデータを発見し、自分のクラウドアカウントまたは自分のサーバーに複製します。
そのため、クラウドプロバイダーとユーザーは、エンドユーザーデバイス、アプリケーション、クラウドリソース、およびネットワーク間の各インタフェースからのアクセスでセキュリティを確保する必要があります。
クラウドセキュリティには、サイバー脅威から保護する役割に加え、データセンターのネットワークの停止や停電の際にも継続性を確保するという、重要な役割があります。このような事業の中断は、必要なときにデータにアクセスできないといった短期的な影響もあれば、永久的にデータを喪失するといった長期的に影響が及ぶ被害もあります。クラウドセキュリティプログラムには、アプリケーションやデータのバックアップ、ネットワーク障害に対する計画も含める必要があります。
クラウドセキュリティ vs アプリケーションセキュリティ vs クラウドネイティブアプリケーションセキュリティ
特にサーバーレスやコンテナなどのクラウドネイティブアーキテクチャを使用する場合、アプリケーションセキュリティとクラウドセキュリティの境界線はますます曖昧になっています。PaC (Policy as Code) や IaC (Infrastructure as Code) といったアプローチは、手動で行われていた手順を、標準の反復可能な手法としてコードに記述して置き換えており、開発者はクラウドに多くの情報を入力することが可能になっています。
このことは、開発者が作成するアプリケーションとアプリケーションが実行されるインフラの両方において、セキュリティを確保する責任が大きくなることも意味しています。開発者はセキュリティの懸念に対してますます敏感になっており、開発者の 61% は、クラウドネイティブテクノロジーに切り替えたことでセキュリティの懸念が高まったと回答しています。
クラウドでのセキュリティ確保については、顧客企業内のセキュリティチーム、業務チーム、開発チーム、そしてクラウドプロバイダーと、多くのチームが関わっているため、誰が責任を持つのかという疑問が生じます。
クラウドのセキュリティを確保する責任があるのは誰ですか?
公開クラウドプロバイダーは通常、クラウドの各側面を所有する当事者にクラウドセキュリティの責任を割り当てる、責任共有モデルを採用しています。
一般的にプロバイダーには、ネットワーク、クラウドインフラ、およびデータとワークロードの物理的なホスティングに使用されるサーバーを保護する責任があります。顧客は安全なプロバイダーを選択し、ユーザーアクセスを統制し、企業や政府の規制に対するコンプライアンスを確保すること、またシステムの安全な設定とメンテナンスに責任を負っています。
クラウドサービスの種類によって異なるセキュリティの責任
セキュリティ要件は、使用するクラウドサービスの種類によって異なります。クラウドサービスの種類は以下のとおりです。
Software as a Service (SaaS)
SaaS の顧客側の主な責任は、安全なアクセスプロトコルを確実に使用することです。プロバイダーにはバックエンドのセキュリティを確保する責任があります。多くの攻撃では、SaaS アプリケーションと他のプラットフォームとの統合が利用されるため、ユーザーのワークフローとデータを可視化することが重要です。
Platform as a Service (PaaS)
PaaS 企業の顧客は「サンドボックス」をレンタルして、プロバイダーのインフラを使ってアプリケーションを開発できます。プロバイダーは OS やミドルウェア、ランタイム環境のセキュリティに責任を持ち、クライアントはエンドユーザーのデバイスやネットワーク、アプリケーション、データ、ユーザーアクセスに責任を持ちます。PaaS 環境でアプリケーションを構築すると、可視性が失われ、クラウド環境でのハッカーによる攻撃や不正利用を検出することが難しくなります。不審な行動を検知して防止するには、組織的にセキュリティ制御および可視化ツールを導入する必要があります。
Infrastructure as a Service (IaaS)
IaaS プロバイダーは、顧客が高価なオンプレミスインフラを構築する代わりに、必要に応じてハードウェアやコンピューティングインフラをレンタルできるようにしています。プロバイダーには物理的なサーバー、ネットワーク、データを保護する責任があり、顧客はプロバイダーのインフラ上で動作するすべてのもの (OS、アプリケーション、ミドルウェア、ユーザーアクセス、リソース設定、エンドユーザーのデバイスとネットワークなど) に責任があります。
クラウドセキュリティ環境
「クラウド」は場所として考えられることが多いものの、分散型の環境でデータを保存してワークロードを実行するモデルという考え方のほうが役立ちます。クラウド環境には、次のようなタイプがあります。
公開クラウド
これは、顧客がプロバイダーのリソースを他の顧客と共有するサードパーティサービスです。顧客は通常、Web ブラウザーを使用して公開クラウドにアクセスします。公開クラウドはセキュリティに多額の投資を行っており、公開クラウドで発生する不正アクセスの大部分は、顧客の設定ミスやその他のエラーが原因となっています。ガートナーによると、2025 年までクラウドセキュリティで発生する障害の 99% は顧客の責任とされています。
非公開クラウド
非公開クラウドは、サードパーティプロバイダーが外部で管理するか、従来のデータセンターに対する最新のアプローチとして社内で管理する専用の環境を顧客に提供するものです。ユーザーのファイアウォールによって分離されているため、公開クラウドよりも安全であると考えられていますが、ID を使用した不正アクセスなどのセキュリティ上の課題を抱えていることに変わりはありません。
政府機関クラウド
政府機関クラウドは、機密や極秘データを扱う可能性があり、厳格なセキュリティ規制に準拠する必要がある政府機関の顧客向けに、分離されたクラウド環境を提供するために特別に構築されています。
マルチクラウド
これは、同じ種類の別々のプロバイダーによる複数のクラウドサービス (たとえば、公開クラウドや非公開クラウド) を組み合わせたものです。マルチクラウドの構成は、多くの場合、分散したチームが独自のスケジュールと技術要件で異なるプロジェクトに取り組んでいる企業で導入されます。それぞれのチームが、プロジェクトのニーズに基づいて異なるクラウドプロバイダーを選択した結果、このようになります。また、合併や買収の際に、それぞれ企業が異なるクラウドプロバイダーを利用している場合もあります。マルチクラウドの場合、利用するクラウドごとにセキュリティの専門知識を身に付けたり、ツールを用意したりする必要があるため、セキュリティが複雑化しがちです。
ハイブリッドクラウド
ハイブリッドクラウドは、サードパーティまたはオンサイトの非公開クラウドデータセンターと公開クラウドを融合させたものです。ガートナーが「バイモーダル」と呼ぶ、クラウドとデータセンターの両方でワークロードを利用する企業もあり、特に移行期やデジタル変革の取り組みが盛んな時期には、このような利用が行われています。
オンサイトクラウド vs オフサイトクラウド
顧客は外部プロバイダーがオフサイトで管理するクラウド環境と、すべてのリソースをカスタマイズして設定できる自社所有のオンサイトクラウドを選択できます。オフサイト型クラウドは遠隔地からサービスを提供するため、顧客はハードウェアやメンテナンス、セキュリティに関わるコストを軽減できます。一方、オンサイト型クラウドでは、顧客がクラウド環境のネットワーク、ストレージ、サーバー、セキュリティなどを管理する必要があります。
Snyk でクラウド環境のセキュリティを確保する方法
ソフトウェア開発プロセスが変化しているため、セキュリティはアプリケーションが本番稼働した後に考慮するのではなく、ソフトウェア開発ライフサイクルのすべての段階に組み込む必要があります。従来のインフラは、インフラ、サービス、およびアプリケーションコンテナを定義するコードに置き換わっています。アプリケーション自体も、かなりの割合でオープンソースコードによって構成されています。コンテナ、仮想マシン、およびサーバーレスアーキテクチャで実行するように作られており、Kubernetes や Terraform などのツールを使用して、実行するインフラを実装して設定する手順が含まれています。
クラウドセキュリティは、CI/CD パイプライン全体でクラウドネイティブアプリケーションを設計し、コーディングする開発者を支援できるようにする必要があります。Snyk では、開発者がアプリケーションやワークフローにクラウドセキュリティを組み込むためのいくつかのツールを提供しています。
デベロッパーファーストのセキュリティ
Snyk の開発者用セキュリティツールを使用すると、開発者はコードの最初の行からセキュリティを組み込むことができます。Snyk には、プラットフォームの一部として、オープンソースの依存関係スキャナー、コンテナセキュリティ、およびインフラセキュリティが含まれています。
Infrastructure as Code (IaC) のセキュリティ
IaC テンプレートにより、クラウドインフラを実行するときの状態が定義されます。これは、複雑な手動による導入手順を反復可能なステップとして抽出し、実行前にテストできるように文書化する、自動化された手順書のようなものです。IaC を使用すると、ソフトウェア開発のベストプラクティスをインフラ定義に導入できます。Snyk IaC で提供されるツールにより、コードに変更が加えられるたびに、セキュリティとアーキテクチャのポリシーと標準へのコンプライアンスをテストできます。これは AWS、Azure、GCP インフラ、および Kubernetes および Terraform IaC ツールで動作します。
コンテナセキュリティ (Sysdig のランタイムを含む)
Snyk コンテナは、開発者がアプリケーションとコンテナのセキュリティを同時に確保できるようにしています。ベースイメージツールを使用すると、ベースイメージをアップグレードでき、セキュリティを強化し、脆弱性の問題をすばやく解決できます。スキャン機能を使用すると、IDE 環境と実行環境の両方でコンテナの脆弱性を自動的に検出して修正できます。Snyk の Sysdig との提携により、Snyk コンテナが拡張され、ランタイムの Kubernetes 環境が保護され、開発者にフィードバックと可視性が提供されます。
シフトレフトと DevSecOps の原則
従来のアプリケーションセキュリティは、本番環境での脆弱性のスキャンと修正に重点を置いていました。現代のクラウド環境は複雑で、アプリケーションのリリースも早いため、この従来のアプローチはもはや通用しません。セキュリティに対する最新の DevSecOps アプローチでは、開発プロセスの最初の段階からセキュリティを組み込んでいます。このシフトレフトセキュリティアプローチは、クラウドネイティブアプリケーション開発とそのツールにおいて基本部分を構成しています。
Fugue との統合を近日公開予定
Snyk は Fugue の買収により、Snyk プラットフォームを拡張し、クラウド態勢を設定コードに接続する Fugue の機能を活用しています。この提携により、開発者フレンドリーの初のクラウドセキュリティ態勢管理 (CSPM) ツールが提供され、アプリケーションを本番環境に導入した後も継続的にセキュリティに責任を負う開発者が支援されています。
無料でアプリのセキュリティを確保
Snyk を使用してコード、依存関係、コンテナ、IaCのセキュリティを確保しましょう。
シリーズの次の記事
The shared responsibility model for cloud security
Cloud security is a shared responsibility between cloud providers and customers.
続きを読む