クラウドベースの API を安全に保つ: 複数のクラウド間で API を保護するためのヒント

クラウドベースの API を安全に保つ: 複数のクラウド間で API を保護するためのヒント

REST (REpresentational State Transfer) API は、組織がデータと機能を開発者、パートナー、一般の人々に安全に公開できるようにするために広く普及しています。マイクロサービスの台頭とクラウドネイティブ開発への移行により、REST API の使用が爆発的に増加しました。

ただし、API の使用量が増加すると、新たなセキュリティ リスクも発生します。 API は、組織の重要なシステムやデータ資産へのゲートウェイとして機能します。 API の脆弱性を悪用すると、バックエンド サービスや機密情報にアクセスできる可能性があります。攻撃者は、ネットワークへのエントリ ポイントとしてインターネットに接続された API をターゲットにすることが増えています。

REST API のセキュリティを確保すると、特にクラウド環境では特有の課題が生じます。閉じた境界の保護に重点を置いた従来のネットワーク セキュリティ モデルは、API が設計により外部アクセスを許可している場合には機能しません。また、クラウドの動的な性質により、多様な環境やインフラストラクチャにわたって一貫したセキュリティ ポリシーと制御を維持することが困難になります。

この記事では、最新のマルチクラウド環境で REST API を保護するためのベスト プラクティスとガイダンスを提供します。 ID とアクセス管理、データ暗号化、脆弱性管理、ランタイム保護など、API セキュリティの重要な側面を検討します。適切なセキュリティ戦略があれば、データとサービスへの安全なアクセスを通じてイノベーションを可能にする API を自信を持って構築できます。

ID とアクセスの管理

ID とアクセス管理 (IAM) は、クラウド内の REST API を保護するために重要です。 IAM は、デジタル ID を管理し、リソースへのアクセスを制御するためのプロセスとテクノロジーを指します。 REST API の場合、IAM は API コンシューマーを適切に認証し、アクセスを承認することに重点を置いています。

OAuth は API の認証と認可の標準となっています。 OAuth を使用すると、ユーザーの資格情報を公開することなく、安全なトークンベースの認証が可能になります。 API コンシューマーは、API キーとトークンを受け取るためにアプリを登録します。トークンは、API 呼び出しを行うための制限されたアクセス スコープを付与します。トークンは侵害された場合、いつでも取り消すことができます。

API キーとシークレットの管理は、IAM のもう 1 つの重要な側面です。 API キーには有効期限ポリシーがあり、頻繁にローテーションされる必要があります。 OAuth クライアント シークレットなどのシークレットは、安全に保存して送信する必要があります。シークレット マネージャーを使用すると、この機密データを一元管理して暗号化することができます。ロールベースのアクセス制御 (RBAC) は、個々のユーザーではなくロールにアクセス許可を割り当てる承認戦略です。 RBAC を使用すると、API アクセスをより詳細に制御できます。たとえば、データにアクセスするための読み取り専用ロールと、リソースの変更を許可する管理者ロールを作成できます。 RBAC ロールは、最小特権の原則を念頭に置いて設計する必要があります。

ソーシャル ログインによるフェデレーション ID は、API セキュリティにも利用できます。 API コンシューマーが既存のソーシャル メディア アカウントで認証できるようにすると、オンボーディング プロセスが簡素化されます。ソーシャル ログインはシングル サインオン ソリューションと統合して、クラウド環境全体で一元的な認証と管理を可能にすることができます。

適切な ID とアクセス管理により、クラウドで REST API を保護するための基盤が確立されます。 OAuth、シークレット管理、RBAC、フェデレーション ID を実装すると、不正な API アクセスや悪用を防ぐことができます。

転送中および保存中のデータの暗号化

データの送信中と保存中の両方でデータを保護することは、API を保護する上で重要な部分です。転送中のすべての API トラフィックを暗号化するには、Transport Layer Security (TLS) 暗号化を使用する必要があります。 TLS は、送信中にデータが読み取られたり変更されたりできないようにすることで、2 つの通信システム間にプライバシーと整合性を提供します。すべての API リクエストとレスポンスでは、少なくとも TLS 1.2 または 1.3 暗号化を適用する必要があります。

保存データの場合は、AES-256bit や RSA などの暗号化スキームを使用できます。データの暗号化に使用されるキーも、通常はハードウェア セキュリティ モジュールまたはキー管理サービスに保存することによって保護する必要があります。キーのローテーションを可能にし、不正アクセスを防止するには、適切なキー管理が重要です。

クラウドベースの API では、暗号化キーはクラウド プロバイダーによって管理されることも、顧客によって直接処理されることもあります。 AWS Key Management Service や Azure Key Vault などのクラウド暗号化サービスを使用すると、企業はクラウド インフラストラクチャの拡張性のメリットを享受しながら、キーを完全に管理できます。

クラウド管理キーと顧客管理キーのどちらを選択するかは、組織のセキュリティ体制と規制要件によって異なります。クラウド管理キーはシンプルさと統合を提供し、顧客キーにより暗号化ライフサイクルを完全に制御できます。マルチクラウド環境では、さまざまなプロバイダーがさまざまなキー管理機能を提供するため、さらに複雑になります。全体として、転送中と保存中のデータの両方を暗号化することで API に多層防御が提供され、堅牢な標準、スキーム、プラットフォームを使用して実装する必要があります。クラウド内の暗号化キーを適切に管理するには、特に注意する必要があります。

脆弱性スキャンと侵入テスト

クラウド環境のセキュリティを確保するには、API の脆弱性を定期的にスキャンすることが重要です。従来の Web アプリ スキャナーでは API に対応できない可能性があるため、専用の API スキャナーをお勧めします。 nmap、OWASP ZAP などのツールを使用して API を調査し、弱点を探すことができます。

侵入テストは、API やインフラストラクチャに対する実際の攻撃をシミュレートするためにも重要です。従来のネットワーク侵入テストのアプローチは API に対してはうまく機能しない可能性があるため、API のセキュリティに焦点を当てた方法論を使用する必要があります。確認すべき事項には、認証の問題、インジェクションの欠陥、不適切なアクセス制御、その他の API 固有のリスクが含まれます。

API はインターネット経由でアクセスできる場合があるため、脆弱性は特に危険となる可能性があります。攻撃者が発見する前に問題を発見するには、API を継続的にスキャンし、集中的に侵入テストを実行することが重要です。クラウド サービスは、スキャンのスケジュール設定と自動化のオプションを提供します。 API の脆弱性に優先順位を付けると、修復に重点を置くことができます。全体として、プロアクティブなスキャンと侵入テストは、API のセキュリティ体制を強化する最良の方法の 1 つです。

Web アプリケーション ファイアウォール

Web アプリケーション ファイアウォール (WAF) は、クラウド内の API を保護する重要な層です。 WAF は Web トラフィックを分析し、SQL インジェクション、クロスサイト スクリプティング、DDoS 攻撃などの脅威をブロックします。

API に関しては、API 固有のルールセットを使用して WAF を慎重に構成する必要があります。 Web アプリケーション用のすぐに使用できるルールセットは、必ずしも API にうまく変換できるわけではありません。 JSON ペイロード構造、RESTful 原則、API 認証スキーマなどについては、特別な考慮が必要です。

WAF は、次のような要素を考慮して、通常の API トラフィックがどのようなものかを理解できるように調整する必要があります。

  • レート制限ポリシー
  • 一般的なリクエストのサイズ
  • 予期される HTTP メソッド (GET、POST、PUT など)
  • リクエスト/レスポンス内の有効な文字セット
  • 共通のユーザーエージェントとクライアント

適切に調整された WAF を使用すると、API に対する攻撃を検出してブロックできます。たとえば、WAF は、JSON ペイロード内の SQL インジェクション試行や、DDoS 攻撃を示す過度に繰り返されるリクエストを識別できます。WAF は、ボリューム DDoS 攻撃に対する重要な保護も提供します。 WAF は、ソースに近い大量の悪意のあるトラフィックを吸収してフィルタリングすることで、API サーバーに過負荷をかけることを目的とした攻撃を軽減できます。クラウド型WAFサービスは、大規模な攻撃にも対応できる拡張性を備えています。

全体として、API に合わせて調整された Web アプリケーション ファイアウォールは、マルチクラウド環境に不可欠な保護層を提供します。 WAF は、従来のネットワーク ファイアウォールが見逃す多くの一般的な攻撃を識別してブロックできます。 API 開発者は、最大限の保護を確保するために、CI/CD パイプラインの一部として WAF のスキャンとチューニングを組み込む必要があります。

セキュリティの監視と分析

API が複数のクラウド環境に分散されている場合、API のトラフィックと動作を包括的に可視化することが重要です。効果的なセキュリティの監視と分析により、API の使用パターンを追跡し、異常や脅威を検出し、ネイティブのクラウド監視ツールと統合する機能が提供されます。

API トラフィック パターンのモニタリング

API トラフィック パターンを継続的に監視することで、通常の動作のベースラインが確立されます。重大な逸脱は、DoS 攻撃、API を介したデータ漏洩、または悪意のある者による API の悪用などの問題を示している可能性があります。クラウド プラットフォームは、トラフィック量、応答時間、エラーなどに関する API 分析とメトリクスを提供します。さらなるトラフィック分析では、次のような要素に焦点を当てる必要があります。

  • 異常な時間帯にトラフィックが急増する
  • API にアクセスする認識されないクライアント アプリケーション/デバイス
  • API リクエストの不規則な地理的分布
  • 予想外に大きなペイロード応答を返す API

異常と脅威の検出

機械学習を使用した高度な分析により、特定されたトラフィック パターンとメトリクスに基づいて異常と脅威を自動的に検出できます。たとえば、ユーザー行動分析では API アクセス パターンを分析し、資格情報の悪用、内部関係者の脅威、または攻撃者によって侵害されたアカウントを検出できます。 Web アプリケーション ファイアウォールには、SQL インジェクション、クロスサイト スクリプティング攻撃、その他の API の脅威を検出するための分析エンジンも含まれていることがよくあります。

クラウド監視ツールの統合

ほとんどの主要なクラウド プロバイダーは、堅牢なネイティブのモニタリング機能とロギング機能を提供しています。 AWS CloudTrail または Azure Monitor は、SIEM や分析ツールにフィードできる詳細な API ログを提供します。 Google Stackdriver は、Google Cloud 全体の指標、ログ、イベントを集約します。クラウドネイティブの監視データを外部のセキュリティ分析と統合して関連付けることにより、マルチクラウド環境全体の完全な可視性が提供されます。## マルチクラウドのセキュリティ管理

複数のパブリック クラウド プラットフォームにわたるセキュリティを管理するのは困難な場合があります。各クラウドプロバイダーは独自のサービス、API、管理システムを持っています。これにより、セキュリティの一元的な可視性と制御が困難になる可能性があります。

複数のクラウドを使用する場合は、プロバイダー間の違いを考慮する必要があります。たとえば、AWS、Azure、Google Cloud はすべて、IAM、ネットワーク セキュリティ、暗号化などに対して若干異なるアプローチを採用しています。ツールとベスト プラクティスは、クラウド間で完全に移植できるわけではありません。

一元的な可視性と制御を可能にするために、多くの組織はマルチクラウド管理プラットフォームに注目しています。これらのツールは統一されたビューを作成し、さまざまなクラウド環境全体でセキュリティ ポリシーを管理できるようにします。例としては次のようなものがあります。

  • CloudHealth - 可視性を統合し、AWS、Azure、Google Cloud 全体にセキュリティ ポリシーを適用するのに役立ちます。コンプライアンスのレポートと最適化に関する推奨事項を提供します。

  • IBM Cloud Security Advisor - クラウド全体でリソースをスキャンし、セキュリティ体制を改善するための推奨事項を提供します。アクセス管理、データセキュリティ、脅威保護のために他の IBM ツールと統合します。

  • Cisco CloudCenter - プライベート データセンターとパブリック クラウド (AWS、Azure、Google Cloud など) 全体で一貫した導入、セキュリティ ポリシー、ガバナンス、コンプライアンスを実現します。

  • CloudCheckr - パブリック クラウド全体のセキュリティ、コスト管理、コンプライアンスに関する可視性とレポートを提供します。カスタマイズ可能なダッシュボードと自動ポリシー適用。

  • Dome9 Arc - マルチクラウドのセキュリティの可視化、コンプライアンスの自動化、および施行。 AWS、Azure、Google Cloudをサポートします。

独立したツールを活用することで、クラウド プロバイダー全体のセキュリティを一元管理できるようになります。これにより、セキュリティ体制が向上すると同時に、複数のパブリック クラウドを利用できるようになります。抽象化レイヤーによってネイティブの統合や機能が一部失われる可能性もあることに注意してください。

CI/CD パイプラインのセキュリティ

継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインは、クラウドでアプリケーションを迅速に開発およびデプロイするために不可欠です。ただし、これらのパイプラインは、適切に保護されていない場合、セキュリティ リスクを引き起こす可能性もあります。マルチクラウド環境で CI/CD パイプラインを保護するためのベスト プラクティスをいくつか示します。

コードの脆弱性をスキャンする- 静的および動的アプリケーション セキュリティ テスト (SAST/DAST) ツールを使用して、展開前にソース コードの脆弱性をスキャンします。 Veracode、Checkmarx、SonarQube などのツールを CI/CD パイプラインに統合できます。

  • これらのスキャンは、コードがコミットされるたびに、またはマスター ブランチにマージされるたびに自動的に実行されるように構成します。重大度の高い問題が検出された場合、ビルドは失敗します。

  • コードとしてのインフラストラクチャ テンプレート (CloudFormation、Terraform、Ansible) の構成ミスをスキャンします。 CloudSploit や TfSec などのツールが役に立ちます。

ステージング環境でのセキュリティ テスト

  • 運用環境に展開する前に、ステージング環境に対して侵入テストと模擬攻撃を実行します。 Metasploit、OWASP ZAP、Burp Suite などのツールを使用すると、セキュリティ テストを自動化できます。

  • SQL インジェクション、クロスサイト スクリプティング (XSS)、認証の失敗、機密データの漏洩などの OWASP トップ 10 の脆弱性をテストします。

  • 運用環境のようなセキュリティ制御がステージングで意図したとおりに機能していることを検証します。例えばWAF ルール、アイデンティティ フェデレーション、DDoS 保護。

デプロイメントパイプラインの保護

  • 権限制御を使用して、CI/CD コンソールへのアクセスを制限し、不正な変更を防ぎます。

  • コンテナやインフラストラクチャ テンプレートなどのアーティファクトにデジタル署名して、環境全体の整合性を確保します。

  • 承認なしで本番環境にデプロイするなど、予期しない変更がないかパイプラインを監視します。

セキュリティレフトへのシフト

  • 運用環境だけでなく、最初から CI/CD パイプラインにセキュリティを組み込みます。

  • リスクを軽減するために、パイプラインの早い段階でポリシーの適用とセキュリティ チェックを自動化します。

  • 脆弱性のあるビルドを失敗させることで、リスクの高いリリースを顧客に届ける前に停止します。

  • パイプラインのセキュリティを開発、セキュリティ、運用チーム間の共有責任として捉えます。

セキュリティ ツールを CI/CD パイプラインに統合し、ステージングで徹底的にテストし、「シフトレフト」アプローチを採用することで、組織は速度を維持しながらより安全なアプリケーションを開発できます。

サーバーレスおよびマイクロサービスのセキュリティ

サーバーレス コンピューティングとマイクロサービスは、分散型の性質と一時的なインフラストラクチャにより、独特のセキュリティ上の課題を引き起こします。

サーバーレス関数のステートレスな性質

サーバーレス関数はステートレスであることを目的としているため、ユーザー セッションなどの重要なコンテキストは呼び出しの間に失われます。これには、API キーや JWT トークンなどの状態を維持および送信するための代替メソッドが必要です。秘密やキーがログに漏洩したり、アクセスの範囲が不適切に設定されたりしないように注意する必要があります。

爆発範囲の制限マイクロサービスとサーバーレスでは、システム全体を侵害することなく、個々のコンポーネントが侵害される可能性があります。この爆発範囲の制限は利点ですが、自動化された水平的な権限昇格の試行により攻撃が拡大する可能性があります。アクセス許可の範囲を慎重に設定し、不審な内部トラフィックを監視することで、これを軽減できます。

コンテナベースのマイクロサービスの保護

マイクロサービスは、Kubernetes などのコンテナ プラットフォームを頻繁に利用します。コンテナーは定期的に脆弱性をスキャンし、最小限の権限で実行する必要があります。ネットワーク ポリシーでは、サービス間のトラフィックを制限する必要があります。 Kubernetes アドミッション コントロールは、デプロイメントにポリシーを適用できます。

可観測性のための分散トレーシング

マイクロサービスとサーバーレス機能は、分散トレースを利用してサービス全体のリクエストを監視します。これにより、システム全体に重要な可観測性が提供されます。攻撃を示す異常がないかトレースを監視する必要があります。カーディナリティの高いトレース データは、サンプリングまたは集計が必要な場合があります。

これは、クラウドネイティブ環境におけるコンテナベースのマイクロサービスとサーバーレス機能を保護するための重要な側面をカバーします。一時的で分散した性質は課題をもたらしますが、爆発範囲を制限し、攻撃を迅速に検出する機会ももたらします。

結論

API は多くの最新アプリケーションのバックボーンであり、さまざまなシステムが相互に通信できるようにします。しかし、マルチクラウド環境を導入する企業が増えるにつれ、API の保護はますます複雑になる可能性があります。この記事では、クラウドで API を保護するための主要な課題と主要な実践方法のいくつかを検討しました。

API を保護するには、単一の制御に依存するのではなく、複数の防御層を採用する必要があります。堅牢な ID とアクセス管理により、許可されたユーザーとアプリケーションのみが API にアクセスできるようになります。転送中と保存中のデータを暗号化することで、機密情報を保護します。継続的な脆弱性スキャンにより、攻撃者が悪用する前に弱点が発見され、Web アプリケーション ファイアウォールは既知の脆弱性を標的とした攻撃を積極的にブロックします。分析を使用して API トラフィック、ユーザーの行動、ログを監視すると、異常を検出し、不審なアクティビティに対してアラートをトリガーできます。マルチクラウド管理プラットフォームは、異種環境全体にわたる一元的な可視性と制御を提供します。 CI/CD パイプラインを強化することで、本番リリースに脆弱性が持ち込まれるのを防ぎます。サーバーレス アーキテクチャとマイクロサービス アーキテクチャには、全体的な API 保護戦略の一部として対処する必要がある独自のセキュリティ要件が存在します。

企業がデジタル変革の取り組みを継続し、クラウドネイティブ アーキテクチャを採用するにつれて、API のセキュリティの重要性は高まるばかりです。将来的には、リアルタイムで攻撃を検出するために、API やユーザーの行動を分析するための人工知能と機械学習の使用が増加すると考えられます。組織は API セキュリティ プログラムへの投資を継続し、刻々と変化する脅威の状況に合わせてプログラムを進化させる必要があります。 API セキュリティに対して積極的かつ多層的なアプローチを採用することで、企業は最も重要な資産を安全に保ちながら、自信を持って新しいテクノロジーを革新できます。

このエキサイティングな分野に関するさらなる洞察と最新情報については、引き続き APIRobots をご覧ください。API があなたのビジネスにもたらす可能性のある機会をお見逃しなく。今すぐ API Robots または API 開発庁) までお問い合わせください。一緒に API の可能性を最大限に引き出しましょう。