サイバー脅威
APIゲートウェイが抱える潜在的リスク
API(Application Programming Interfaces)は、異なるソフトウェアコンポーネント同士をつなぐ機能を提供します。APIの使用により、高度かつ複雑なデータ交換や処理が可能となります。
APIは、マイクロサービスが内部実装を公開することなく、標準インターフェースを使用するアプリケーション通信を可能とします。例えば、ソーシャルメディアプラットフォーム(Facebook、X、Instagram等)の利用時には、バックグラウンドでAPIエンドポイントを呼び出しています。このように、APIは私達の日常生活において広く活用されています。
開発者の90%近くがAPIを利用しているという報告があります。また、GartnerはサードパーティAPIの利用数が2025年までに3倍になると予想しています。APIの利用拡大に伴い、APIおよびAPIゲートウェイに対するセキュリティ対策の重要度が高まっています。保護されていないエンドポイントは、ゲートクラッシャーやサイバー犯罪者が機密情報を窃取するための侵入口となる恐れがあります。
APIの使用は、マイクロサービスやクラウドベースアプリケーションの導入数に応じて急増しています。ほぼすべての最新アプリケーションがAPIを用いて各機能を連携しているため、APIゲートウェイ(エントリポイントとして機能)を使用してAPIを保護することが重要になります。なお、APIゲートウェイは、APIの利用状況を可視化するセキュリティ対策ツールとして販売されています。
APIとAPIゲートウェイのセキュリティ確保は大変重要です。本稿では、APIゲートウェイの機能とリスク、ハイブリッドおよびマルチクラウド環境における優位性、そしてセキュリティ上の課題とベストプラクティスに焦点を当てます。
APIゲートウェイの機能とリスク
APIゲートウェイの機能:
- 認証、認可:API ゲートウェイは、ユーザやアプリケーションIDを確認するために、多要素認証を含む強力な認証メカニズムを実装しています。さらに、RBAC(ロールベースアクセス制御)やACL(アクセス制御リスト)などを導入することで、ユーザが特定のリソースで実行できるアクションに制限を設けます。
- ルーティング:APIゲートウェイの基本的な機能は、APIリクエストを「対応するバックエンドシステム」にルーティングすることです。これはリバースプロキシにより実行することができます。また、より複雑なシナリオにおいては、ポリシー(リクエストやリプライの修正、認証機能の追加)を加えることで実行可能となります。
- オフロード:これはSSL(Secure Sockets Layer)の暗号化および復号処理、リクエストのキャッシング、レスポンスの変換などのタスクをアプリケーションが処理するのではなく、APIゲートウェイに委ねるプロセスを指します。オフロードにより個々のサービスの負荷を大幅に軽減し、システム全体のパフォーマンスを向上させることができます。
- TLS(Transport Layer Security)ターミネーション: APIゲートウェイがTLS暗号化のエンドポイントとなり、リクエストをバックエンドサービスに渡す前に復号します。
- アグリゲーション:APIゲートウェイは、複数のバックエンドサービスから返されるレスポンスを集約します。その結果、クライアントは統一されたレスポンスを受け取ることができるため、ロジックの簡素化やリクエスト数を制限することが可能となります。
- アクセスポイントの一元化:APIは、すべてのAPIリクエストに対応するシングルエントリポイントとして機能するため、セキュリティ管理を簡素化することが可能となります。また、同様にAPIエコシステムも簡素化することができます。
その一方で、APIゲートウェイにはリスクも存在します。本稿では、オンプレミスおよびハイブリッドAPIゲートウェイに焦点を当てます。なお、これらのゲートウェイは、引き続きクラウド向けのサポートを実施していますが、CSP(Cloud Service Provider)向けサービスとしての販売は行われていません。また、これらのゲートウェイは、通常より多くの設定オプションとユースケースを提供しています。
APIゲートウェイの機能拡大に伴い、ヒューマンエラーや設定ミスの確率も高まります。また、主に認証とTLSターミネーションを発端とするセキュリティ上の懸念も存在します。
エンドポイントへのアクセスには、シークレット(APIキー等)が必要となります。しかし、認可を要しないリクエストがバックエンドサービスに送られた場合、対応するバックエンドはデフォルトでリクエストを認可してしまいます。
内部ネットワークを経由してバックエンドサービスにアクセスできる者は、認証が不要となります。攻撃者は、この設定を悪用することでSSRF(Server Side Request Forgery)攻撃を実施します。内部ネットワークにおけるサービスの侵害は、攻撃者に自由なアクセス権を付与することを意味します。
TLSターミネーションは、暗号化されたリクエストの送信やリクエストを復号するために必要なパフォーマンスオーバーヘッドを削減することを可能とします。なお、TLSターミネーションのシークレットは、プレーンテキストとして送信されます。これは、特にオンプレミスのワークロードにおいて、攻撃者により傍受される恐れがあります。
これらの理由から、アクセスコントロール、TLS、そしてシークレットの適切な管理がAPIゲートウェイのセキュリティ上大変重要となります。
ハイブリッドおよびマルチクラウド環境におけるAPIゲートウェイの優位性
APIゲートウェイにはセキュリティ上の課題が存在しますが、ハイブリッドおよびマルチクラウド環境において極めて重要な役割も担っています。
これらの環境では、アプリケーションやサービスがさまざまなクラウドプラットフォームやオンプレミスインフラに分散しています。その結果、複雑なウェブが構築されるため、管理やセキュリティ対策が困難となります。
APIゲートウェイは、すべてのAPIインタラクションに対応するシングルアクセスポイントとして機能することで、この複雑化を解消することができます。この一元化により、認証、認可、セキュリティポリシー(暗号化を含む)を実装するための「統一されたプラットフォーム」が提供され、強固なセキュリティが確保されます。
さらに、APIゲートウェイはすべてのAPIインタラクションに対し、一貫したインタフェースを提供することで、ハイブリッドおよびマルチクラウド環境全体におけるAPI利用状況の管理と監視を容易にします。また、この一貫性により、サービスの変更や異なるプラットフォーム間におけるサービスの移行プロセスを簡素化することができます。
他のテクノロジーと同様に、APIの利点を活かすためには、リスクを最小限に抑えることが重要です。適切な設定、強化された監視、そしてベストプラクティスの遵守により、リスク軽減が可能となります。APIゲートウェイは、複数の環境にアクセスするための設定(シークレットを含む)を集約するため、一つのAPIゲートウェイが侵害されると複数のCSPやアカウント(オンプレミス)の侵害につながる恐れがあります。
セキュリティ上の課題とベストプラクティス
APIゲートウェイのセキュリティ確保と同様に、API自体のセキュリティ確保も重要です。OWASP(Open Web Application Security Project)は、APIセキュリティリスクのトップ10をリストアップしています。このリストには、オブジェクトレベル認可の不備、認証の不備、制限のないリソース消費、機能レベル認可の不備、サーバーサイドリクエストフォージェリ、セキュリティの設定ミスなどが含まれます。
APIセキュリティ上の課題とソリューションについて:
- 不十分なレート制限:適切なレート制限を設定しない場合には、APIがブルートフォース攻撃(可能性のある組み合わせをすべて検証していく総当たり攻撃)の対象となる可能性があります。このリスクを軽減するために、一定の時間内にユーザがAPIを呼び出せる回数を制限する「レート制限ルール」を設定することが重要です。
- 不十分なデータバリデーション:APIは、さまざまなデータソースと連携します。そのため、データが適切に検証されない場合には、脆弱性が生じる恐れがあります。常にクライアントサイドとサーバサイドのデータを検証(基準の適合性や不正コードの確認等)することが大切です。
- IDOR(Insecure Direct Object References):これはAPIがオブジェクトの内部実装に関するリファレンスを公開した場合に発生します。攻撃者は、これらのリファレンスを不正に用いることで、機密データにアクセスする可能性があります。IDORを防ぐには、間接的なオブジェクトリファレンスを使用し、適切な認可制御を設けることが有効です。
- ロギングとモニタリングの欠如:適切なロギングとモニタリングが実施されなければ、API 関連のセキュリティインシデントの検出は困難となります。組織や企業は、潜在的なセキュリティ脅威が被害をもたらす前に、それらを特定する必要があります。そのため、包括的なロギングとリアルタイムのモニタリングを実施することが重要です。
- 安全性を欠くAPIの依存関係:APIは、他のAPIやソフトウェアモジュールに依存することがあります。このような依存関係が安全でない場合、脆弱性が生じる可能性があります。担当チームには、APIの依存関係を定期的にアップデートすること、また脆弱性を排除するために必要に応じて修正を行うことが求められます。
- 暗号化の欠如:APIを介して送信されるデータは、傍受を防ぐために常に暗号化する必要があります。プロトコル(HTTPS等)を使用した適切な暗号化を実施することで、リスクを回避し、転送中および保管中のデータを適切に保護することが可能となります。
- 不十分な認証と認可: APIは常に、ユーザが本人であるか否か(認証)、またユーザがアクションを実行するために必要な権限を有するか否か(認可)を確認する必要があります。強固な認証メカニズム(OAuth等)を実装し、すべてのAPIエンドポイントにおいて適切な認可チェックを実施することが重要です。
- CORS(Cross-Origin Resource Sharing)の設定ミス:CORSは、Webページ上の多くのリソース(フォントやJavaScript等)に対し、「リソースの発信元ドメイン以外の別のドメイン」からリクエストを行うことができる仕組みです。CORSの設定を誤ると、未承認のドメインからのアクセスが許可される恐れがあります。CORSを常に正しく設定し、信頼できるドメインにのみAPIとの相互作用を許可することが重要です。
- 機密データの漏洩:APIは機密データを扱うことが多いため、適切に保護されない場合には、情報が漏洩する可能性があります。機密データの暗号化やアクセス制御の実施により、データ流出のリスクが大幅に軽減されます。
- APIバージョン管理の欠如:適切なバージョン管理がなければ、APIの変更は一貫性を保つことが難しくなり、脆弱性が生じる恐れがあります。変更の追跡や内容を照合するため、また異なるAPIバージョン間の安全なトランジションを確保するためにバージョン管理を適切に実施することが大切です。
まとめ
複雑化が進むAPIは、現在さまざまな分野において活用されています。APIの利用拡大に伴い、強固なセキュリティ対策の必要性が高まっています。課題とソリューションを把握し、過去の事件から学ぶことがAPIセキュリティの確保につながります。また、これによりイノベーションや成長の可能性を最大限に高めることもできるでしょう。
APIゲートウェイは、特にハイブリッドおよびマルチクラウド環境において大きなメリットをもたらします。適切な設定、モニタリング、ベストプラクティスの遵守によって、組織や企業はセキュリティリスクを回避しながら、APIゲートウェイの利点を最大限に活用することが可能となります。
さらに、APIゲートウェイは、ハイブリッドおよびマルチクラウド戦略において重要な役割を果たします。これらの環境では、アプリケーションやサービスはさまざまなクラウドプラットフォームやオンプレミスインフラに分散しているため、複雑に絡み合った通信網のセキュリティを確保することは困難となります。APIゲートウェイは、すべてのAPIインタラクションに対するシングルアクセスポイントとして機能することで、この複雑化を解消します。そして、セキュリティポリシーを実装するための「統一されたプラットフォーム」を提供することで、セキュリティが強化されます。
API セキュリティにおいては、技術だけでなく人やプロセスも同等に重要です。そのため、包括的なアプローチ(教育、定期的な監査、セキュリティ意識の向上を含む)が必要不可欠となります。APIと機密データを保護するために、これらのステップを踏むことが、デジタル時代における成功の鍵となるでしょう。
参考記事
Threat Modeling API Gateways: A New Target for Threat Actors?
By: David Fiser and Alfredo Oliveira
翻訳:新井 智士(Core Technology Marketing, Trend Micro™ Research)