REST API セキュリティのベストプラクティス
REST API とは
REST(リプレゼンテーショナル・ステート・トランスファー)のソフトウェア・アーキテクチャ・スタイルの起源は、コンピューター科学者の Roy Fielding 氏が発表した 2000 年の博士論文に遡ります。RESTful API とも呼ばれる REST API は、その後数十年間で Web アプリケーション、モバイルアプリケーション、企業間アプリケーション、組織内システムで使用される API アーキテクチャモデルとして非常に人気が高まりました。
他の API アプローチ(SOAP、GraphQL、gRPC など)も多くの実装で使用されていますが、REST API が最も広く使用されています。その主な理由は実装が容易であるためです。REST API は最新のフロントエンドフレームワークで非常に簡単に使用できる設計であるため、Web アプリケーション、モバイルアプリケーション、多くの社内および企業間 API の実装に広く使用されています。
REST API セキュリティに関する 5 つの基本的なベストプラクティス
REST API は安全性と耐障害性に非常に優れた方法で実装できますが、あらゆる実装において極めて重要な、数多くの基本的な API セキュリティ 標準があります。
REST API の設計にセキュリティを組み込むための基本的な方法は、次の 5 つです。
常に TLS 暗号化を使用する
健全でスケーラブルな認証および認可モデルを実装する
URL に機微な情報を含めない
許可される RESTful API リクエストとレスポンスを限定的に定義する
継続的な API 探索機能を実装する
常に TLS 暗号化を使用する
他のタイプの機微な HTTP トラフィックと同様に、RESTful API に TLS を使用すると、API コンシューマーと API エンドポイントの間のすべての通信を確実に暗号化できます。これは、Web アプリケーションセキュリティにとって重要であるのと同様に REST API セキュリティにとっても重要です。なぜなら、結果として生成される HTTP トラフィックには、パスワード、API キー、トークンなどの機微な認証情報が含まれるためです。
健全でスケーラブルな認証および認可モデルを実装する
REST API へのアクセスを管理するために、さまざまな手法を使用できます。最も一般的に使用される手法は、API キーとセキュリティトークンです。しかし、キーとトークンの管理は非常に複雑な場合があります。
これにより、REST API セキュリティの意図しない脆弱性が生じることがよくあります。このリスクは、 OAuth 2.0(アクセストークンの認証と発行を行う、互換性のあるアイデンティティ管理プロバイダー)と統合することで緩和できます。また、集中型 API ゲートウェイを使用して、REST API セキュリティアプローチを標準化し、保護することもできます。
URL に機微な情報を含めない
REST API の設計上の欠陥としてよくあるのは、ユーザー認証情報、キー、トークンなどの機微な情報を URL に含めることです。TLS が使用されている場合でも、攻撃者はこの情報を簡単に発見できます。また、URL は API リクエストのデータパスに沿ってさまざまなサーバーやネットワークデバイスによって頻繁に記録されるため、URL に機微な情報が含まれている場合はさらなるデータ漏えいが発生します。
許可される RESTful API リクエストとレスポンスを限定的に定義する
攻撃者が悪性の方法または意図しない方法で API を使用しようとすることを想定することが重要です。したがって、RESTful API リクエストを暗黙的に信頼しないことが重要です。最も重要なステップの 1 つは、パラメーターまたはオブジェクトの形式、長さ、タイプなどの属性を検証することです。
また、REST API が提供するレスポンスのタイプも厳密に管理する必要があります。たとえば、レスポンスは、GET、PUT、POST などの明示的に許可されたコンテンツタイプに制限する必要があります。
継続的な API 探索機能を実装する
REST API セキュリティのベストプラクティスに準拠している組織であっても、通常のプロセス以外で実装されたシャドウ API や、まだ廃止されていないレガシーインフラ内の忘れられたゾンビ API に驚かされる可能性があります。したがって、エンタープライズ全体の持続的な API 探索機能を実装することが不可欠です。
確実に すべての API の完全なインベントリ が存在するようにするための最善の方法は、次のような利用可能なすべての API アクティビティ情報ソースからデータを収集することです。
API ゲートウェイ
コンテンツ・デリバリー・ネットワーク
クラウドプロバイダーのログ
ログ管理システム
オーケストレーションツール
このデータを分析して API アクティビティの証拠を得ることで、セキュリティチームはエンタープライズ全体で使用されているすべての API を認識できるようになります。発見された予期しない REST API は廃止するか、適切な REST API ベストプラクティスを適用して正式なインベントリに取り込むことができます。
REST API セキュリティに関する 4 つの 高度な ベストプラクティス
REST API の設計に一連の基本的なセキュリティ標準を実装することは最初のステップとして不可欠ですが、このステップだけではアプリケーションの安全性は確保されません。多くの攻撃者が基本的な RESTful API セキュリティ対策を回避するための高度な手法を生み出しています。結局のところ、すべての REST API セキュリティ攻撃が Web アプリケーションインフラの侵害を目的としているわけではありません。
多くの場合、その目的は単に API 機能を意図しない方法で使用して、機微な情報にアクセスし、競争上の優位性を得ることです。このような活動は、REST API へのアクセスを許可された顧客やパートナーなど、信頼できるソースから発生する場合があります。認証情報、キー、トークンが盗まれたりハイジャックされたりする可能性もあるため、攻撃者は基本的な REST API セキュリティ標準以上に同様の活動を高度化することができます。
高度な API 悪用からの保護を強化するためには、REST API セキュリティに関する次の 4 つの高度なベストプラクティスを使用します。
クラウドを使用して大量の REST API セキュリティデータを収集する
REST API データにふるまい分析を適用する
開発チームと運用チームに REST API の使用に関する知見を提供する
プロアクティブな REST API 脅威ハンティングアクティビティを実行する
クラウドを使用して大量の REST API セキュリティデータを収集する
多くの第 1 世代 API セキュリティ技術はオンプレミスで動作します。そのため、非常に短期間のアクティビティの分析に限定され、その後 API データは破棄されます。これは、多くのタイプの API 不正使用が数週間、あるいは数か月にわたって Low & Slow で(少しずつ時間をかけて)行われるため、効果的ではありません。API アクティビティデータをクラウドに送信することで、1 か月以上にわたる API の詳細を保存するために必要な規模を生み出すことができます。これにより、より高度な分析技術への道が開かれます。
REST API データにふるまい分析を適用する
REST API アクティビティ情報の量が非常に多くなれば、クラウドのコンピューティング規模を活用してふるまい分析を実行することもできます。REST API セキュリティ戦略を強化する最初の方法は、関連するエンティティを特定することです。そうすることで、コンテキストがより明確になります。エンティティには、ユーザーだけでなく、有意義なビジネスプロセスが含まれる場合があります。
このコンテキストがあれば、基本的な API 使用パターンを基準にすることができます。そこから、さらに分析を実行して異常を検知できます。このタイプの異常検知は、不正使用を特定する最適な方法です。特に、認証されたユーザーによる不正使用が原因である場合に役立ちます。
開発チームと運用チームに REST API の使用に関する知見を提供する
REST API セキュリティの脆弱性から組織を保護する最善の方法の 1 つは、完全に回避することです。RESTful API の使用方法や悪用方法に関する情報を開発者や運用担当者と共有することで、開発プロセスや実装プロセスの初期段階で REST API セキュリティプラクティスを改善し、組織の「シフトレフト」を実現することができます。
プロアクティブな REST API 脅威ハンティングアクティビティを実行する
REST API の不正使用が影響度の高いセキュリティインシデントにエスカレーションするまで待たないことが重要です。REST API の使用状況をプロアクティブに調査し、不正使用の試みを探すことは、その試みが失敗した場合でも、REST API セキュリティプラクティスの弱点を見つけるために役立ちます。
API の使用状況を確認することも、 Open Web Application Security Project(OWASP)API Security Top 10で概説されているような REST API セキュリティの脆弱性の存在を明らかにする効果的な方法です。攻撃者に悪用される前にこのような 脆弱性 を見つけて排除することが、REST API セキュリティ体制を強化する最も効果的な方法の 1 つです。
始める準備は整っていますか?
Akamai は、世界で最も認知度の高い組織が、REST API セキュリティに関する基本的なベストプラクティスと高度なベストプラクティスの両方を実装できるよう、支援しています。 API 探索から、ふるまい分析、マネージド型脅威まで、弊社のアプローチは REST API セキュリティの取り組みを加速させるために役立ちます。
詳細を見る
詳細については、Akamai の API Security ソリューションをご確認ください。