REST API セキュリティとは何ですか?

REST APIは現在広く使用されていますが、その人気により、サイバー攻撃の主要な標的となっています。REST APIのセキュリティを確保することは、機微な情報を保護し、Webアプリケーションの信頼性を確保するために不可欠です。このガイドでは、暗号化、アクセス制御、レート制限、API監視など、REST APIのセキュリティを確保し、脆弱性を緩和するためのさまざまなセキュリティ対策について説明します。

さまざまな理由から、REST APIのセキュリティを確保することは、企業のサイバーセキュリティ担当者にとって重要な仕事です。APIはアプリケーションや機微な情報を外部アクセスに公開するため、データ漏えいを引き起こす攻撃者の格好の標的となっています。当然ながら、組織はREST APIを保護するためにAPIセキュリティツールに投資する必要があります。APIセキュリティは、暗号化、レート制限、アクセストークンなど、さまざまな対策で構成されています。これらのセキュリティ制御と、それによってREST APIセキュリティをどのように強化できるかについて説明します。

REST API とは

RESTのアーキテクチャスタイルは、2000年に発表されたRoy Fielding博士の論文で定義されました。この論文の目的は、Web上のマシン間通信のための統一的で一貫したアーキテクチャアプローチを定義することでした。REST APIは、REST(REpresentational State Transfer)アーキテクチャスタイルを使用してデータとプロシージャコールを送受信するAPIです。REST APIを機能させるには、トランスポートプロトコルとプログラミング言語も必要です。REST APIはHypertext Transfer Protocol(HTTP)で通信します。送信されるメッセージのデータフォーマットとしては、JavaScript Object Notation(JSON)が推奨されます。したがって、「API」という用語は、ほとんどの場合、HTTPでJSONを使用するREST APIを指します。

REST APIは、いくつかの理由でAPIの主要な様式になりました。その理由の1つは、無料で標準ベースであるため、導入の障壁がほとんどないことです。RESTfulプログラミングも「ステートレス」であるため、管理が容易です。RESTfulインターフェースは統一されています。クエリーパラメーターは標準化されています。そのため、APIを作成するエンティティは、APIを呼び出すときに開発者が使用する指示(APIからデータを取得する方法など)を簡単に公開できます。これはJSONで返されます。Extensible Markup Language(XML)、ドキュメント、画像など、その他のタイプの応答も可能です。

REST API のセキュリティを確保するためのベストプラクティス

適切な保護対策がなければ、REST APIは広範で脆弱なアタックサーフェスとなります。組織はこれまで、ハッカーがAPIを使用してネットワーク内のデータを見つけるために懸命に取り組む必要がある「曖昧さによるセキュリティ」に依存していましたが、現在は文字通り、データを見つけて盗む方法に関する指示を公開しています。

REST APIのセキュリティプラクティスは成熟しました。最も効果的な対策は次のとおりです。

API 探索

多くの企業が自社の API を完全には把握していません。ほとんどの組織では、API トラフィックの大部分が可視化されていません。多くの場合、API はすべて API ゲートウェイ経由でルーティングされると想定されているからです。しかし、必ずしもそうではありません。インベントリが完全かつ正確なものでなければ、エンタープライズはさまざまなリスクにさらされてしまいます。必要なコア機能:

  • 設定やタイプに関係なく、すべての API を検索してインベントリを作成する
  • 休眠 API、レガシー API、ゾンビ API を検知する
  • 忘れられているドメイン、見落とされているドメイン、またはその他の不明なシャドードメインを特定する
  • 盲点を解消し、潜在的な攻撃経路を明らかにする

API 対策管理

完全な API インベントリを導入した場合、API を通過するデータフローのタイプを把握し、規制要件への準拠に与える影響を理解することが重要になります。API 体制管理では、トラフィック、コード、設定が包括的に示され、組織の API セキュリティ体制を評価することができます。必要なコア機能:

  • インフラを自動的にスキャンして、設定ミスや隠れたリスクを把握する
  • カスタムワークフローを作成して、主要関係者に脆弱性を通知する
  • 機微な情報にアクセスできる API と内部ユーザーを特定する
  • 検知した問題に重大度のランクを付けて、修復の優先順位を設定する

API ランタイムセキュリティ

「データ侵害を想定する」という概念については周知のことでしょう。API 固有の侵入や攻撃は、必然の域に達していると言えます。本番環境で稼働しているすべての API において、攻撃をリアルタイムで検知してブロックできる必要があります。必要なコア機能:

  • データの改ざんや漏えい、ポリシー違反、不審なふるまい、API 攻撃を監視する
  • ネットワークの変更や面倒なエージェントのインストールを行うことなく、API トラフィックを分析する
  • 既存のワークフロー(チケット発行、SIEM など)と統合して、セキュリティ/運用チームに警告する
  • 攻撃や悪用をリアルタイムで阻止し、修復の一部または全部を自動化する

API セキュリティテスト

API 開発チームでは、1 秒でも早く作業する必要に迫られています。あらゆるアプリケーションの開発において、スピードは非常に重要です。しかし、急ぐあまり脆弱性や設計上の欠陥が発生しやすくなったり、検知されないまま進行してしまったりするものです。開発中の API は、本番環境にリリースする前にテストを実施しておくことで、リスクだけでなく、脆弱な API を修正するコストも大幅に軽減することができます。必要なコア機能:

  • さまざまな自動テストを実行して、悪性トラフィックをシミュレーションする
  • API を本番環境に展開する前に脆弱性を発見し、攻撃が成功するリスクを緩和する
  • 定められたガバナンスポリシーやルールに照らして、API の仕様を確認する
  • API に特化したセキュリティテストをオンデマンドで、または CI/CD パイプラインの一環として実行する

こうした包括的なアプローチは、以下のような企業の既存の API 保護機能を補完するものとして機能します。

安全なチャネル

  • APIコールとAPI応答の通信チャネルは安全である必要があります。ベストプラクティスは、以前はSecure Socket Layer(SSL)と呼ばれていたTransport Layer Security(TLS)を使用することです。TLS証明書は、エンドツーエンドの暗号化を使用し、転送中のAPIデータとアクセス認証情報を保護します。TLSは、APIを介して送信されるすべてのメッセージを暗号化することで、APIを介して送信される情報を保護します。
  • URLがhttpではなくhttpsで始まる場合、WebサイトがTLSをサポートしていることがわかります。TLSがないと、攻撃者はトランジットサーバーから情報を傍受し、許可なくアクセスできます。すべての認証方法がそれによって弱体化します。TLSでは、APIが合法的で保護されていることをユーザーに通知する認証局からの証明書が必要です。

API キー

APIキーは、APIアクセス認証情報として機能する一意の文字列です。APIを呼び出すクライアントの認証に使用されます。

トークン

  • APIトークンは、APIユーザーを認証する一意のデジタル識別子です。トークンを使用すると、2段階認証やシングルサインオン(SSO)などの煩雑な認証プロセスを回避できます。API管理者は、APIユーザーにAPIトークンを与えたり取り消したりして、APIアクセスを制御できます。
  • トークンは通常、クライアント側のアプリで使用するためにAPIをホストしているサーバーから発行されます。トークンメカニズムは、通常ステートレスであるという点で、Cookieベースのセッション管理とは異なります。サーバーがセッションの詳細を保存する必要がないため、APIを使用するインフラを簡単にスケールアウトできます。

OAuth 2

これは、トークンに基づく安全な標準ベースの認証メカニズムです。APIユーザーの認証と認可に使用できます。

JSON Web Token(JWT)

API認証は、攻撃者や脅威を阻止するための重要な障壁です。JWTは、JSON形式のAPIユーザーに関するデータを含むデジタル署名された認証トークンです。JWTの利点は、APIキーよりも多くのデータを保持できることです。

レートスロットリング

  • APIは分散型サービス妨害(DDoS)攻撃の標的です。攻撃者は、APIにリクエストを大量に送り込み、シャットダウンさせる可能性があります。これを防止するために、APIセキュリティツールはレートスロットリングを実行できます。たとえば、一定期間にクライアントがAPIを過度に頻繁に呼び出そうとした場合にアクセスをシャットオフします。

IAMとの統合

  • API管理をアイデンティティおよびアクセス管理(IAM)システムと統合することで、APIクライアントのユーザーアイデンティティを確立できます。このようにして、管理者はAPIの使用が許可されるユーザーを制御し、不正アクセスを防止できます。

パラメーターベースのクエリー入力の検証

  • ハッカーはJSONリクエストデータとURLパラメーターを変更してAPIを欺こうとする可能性があります。これらのパラメーターベースの入力を検証することで、このタイプの攻撃を開始前に阻止できます。

許可されているHTTPメソッドの許可リスト

この対策は、POST、GET、PUTなど、APIに対して許可されているHTTPメソッドのリストを確立します。デフォルトでは、このコントロールは、パブリックAPIユーザーが許可してはならないメソッド(DELETE など)をブロックします。

API 監視

  • 理想的にはリアルタイムで、APIの使用状況とパフォーマンスを追跡することが重要です。APIを監視することで、管理者は攻撃が進行中であることを示す可能性のある異常なふるまいにフラグを付けることができます。これには、失敗したリクエストのロギングや疑わしいパターンの検索が含まれる場合があります。

エンドポイントの保護とセキュリティ

REST APIアーキテクチャにおけるAPIエンドポイントの重要な役割を考えると、エンドポイント保護は最優先事項です。エンドポイントセキュリティソリューションを実装することで、不正アクセスや悪性のアクティビティから各エンドポイントを保護できます。これには、APIゲートウェイを使用してAPIトラフィックを管理および保護し、ポリシーを適用し、一元的なアクセス制御ポイントを提供することが含まれます。

Web アプリケーションの保護

REST APIのセキュリティ確保は、Webアプリケーションの保護に不可欠です。REST APIは多くの場合、Webアプリケーションのバックボーンとして機能し、クライアントとバックエンドサーバー間の通信を可能にします。アプリケーション制御やアクセス制御などのセキュリティ対策を実装することで、APIとそれがサポートするWebアプリケーションの両方を保護できます。

FAQ

APIゲートウェイは、APIリクエストの単一エントリーポイントとして機能することで、REST APIセキュリティにおいて重要な役割を果たします。セキュリティポリシーを適用し、トラフィックを管理し、許可されたユーザーのみがAPIエンドポイントにアクセスできるようにします。APIゲートウェイは、レート制限、認証、データ暗号化などの機能を提供することで、セキュリティリスクの緩和にも役立ちます。

SQLインジェクションやその他のインジェクション攻撃などのセキュリティ脆弱性を防止するためには、クエリー入力の検証が不可欠です。すべての入力が適切に検証されるようにすることで、組織は未検証のデータを悪用する悪性のアクティビティからAPIを保護できます。

OAuth 2は、ユーザーを認証し、APIリソースへのアクセスを承認するための安全で標準化された方法を提供します。トークンベースの認証が可能になるため、ユーザーのプロセスがシンプル化されると同時に、許可された個人のみが機微な情報にアクセスできるようになります。OAuth 2は、サードパーティ認証プロバイダーとの統合もサポートしており、全体的なセキュリティを強化します。

API監視により、組織はAPIの使用状況を追跡し、異常なふるまいをリアルタイムで検知できます。APIリクエスト、応答、トラフィックパターンを分析することで、管理者は不正アクセスの試みやAPIの悪用など、潜在的なセキュリティ脅威を特定できます。このプロアクティブなアプローチは、本格的な攻撃に発展する前にリスクを緩和するのに役立ちます。

Akamai が選ばれる理由

Akamai は、オンラインビジネスの力となり、守るサイバーセキュリティおよびクラウドコンピューティング企業です。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散化されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。

Akamai の全セキュリティソリューションをご紹介