公開日:2023年11月20日
寄稿者:Crystal China、Michael Goodwin
APIセキュリティーは、アプリケーション・プログラミング・インターフェース(API)を悪用や悪意のあるボット攻撃、その他のサイバーセキュリティーの脅威から保護するための実践と手順を指します。Webセキュリティーの一部として機能しますが、企業のIT管理における重要が高まっているAPIに特に焦点を当てたものです。1
企業は、APIをデジタル・トランスフォーメーションの構成要素として、外部の開発者やパートナーにサービスを提供することができます。APIは、アプリケーション間の通信とデータ交換を調整することで、コネクテッド・ユーザー・エクスペリエンスを促進し、ビジネスのリーチを拡大し、限界を押し広げる技術革新を推進します。APIにより、サービスの統合も最適化できるため、市場の変化や顧客の要求に迅速に対応できるようになります。
しかし、APIが急増するにつれて、APIに付随するセキュリティーの問題も増加します。
API は、組織の ITリソースとサードパーティー・ソフトウェア開発者の間、もしくはITリソースと個人の間に配置され、プロセスのエンドポイントでデータと情報を配信します。エンドポイントは外部に公開されているため、APIがさまざまな攻撃の標的になる可能性があります。
API管理とAPIセキュリティーの進化は、API自体の進化と本質的に結びついています。初期のAPIは主に、単一システム内におけるプロセス間の通信に焦点を当てたものでした。そのため、通信は1台のマシンに限定されていたため、セキュリティー(またはセキュリティーの欠如)はさほど問題ではありませんでした。
しかし、モノのインターネット(IoT)やクラウドネイティブなマイクロサービス・アーキテクチャーの出現により、APIはアプリケーション間やDevOps環境間のシームレスな通信やコール・ルーティングが可能になるように拡張されました。最新の高品質API(Representational State Transfer(REST)、Simple Object Access Protocol(SOAP)など)は、アプリケーションの統合を調整し、データ形式を指定し、呼び出しの種類、手順、規則を決定します。
Web API(特にGraphQL、REST API、SOAP API)は、無数の複雑なネットワークにわたる広範な統合機能を含むように機能を拡張することでランドスケープを一変させました。
しかし、高度なテクノロジーは機能的にAPIエンドポイントに大きく依存しているため、企業とセキュリティーチームはデータとWebサービスを保護し、最終的にはITリソースを最大限に活用するために、堅牢なセキュリティ対策を実装する必要があります。
APIエンドポイントが適切に保護されていない場合、悪意ある攻撃者が機密データに不正アクセスしたり、サービスの運用を中断したり、あるいはその両方を行うことができ、壊滅的な結果につながる可能性があります。一般的な脅威には、次が含まれます。
ダイナミックなデジタル経済では、APIはビジネスのアジリティー確保に不可欠ですが、そのオープンな性質により、重大なデータ・セキュリティー・リスクが生じる可能性があります。APIセキュリティー侵害は、John Deere、Experian、Pelotonなどの評判の高い大企業であっても、大規模なデータ漏洩につながりました。2
そして、今日のグローバル化したテクノロジー環境では、業界や地理的な場所に関係なく、セキュリティーの脆弱性がすべての主要なサービス・プロバイダーを脅かしています。一例として、2022年にオーストラリアの通信会社、Optus社がAPI攻撃を受けたことで、約1,000万人の顧客の名前、電話番号、パスポート情報と運転免許証情報が流出しました。3
これらの事件は、API保護の重要性を浮き彫りにし、包括的なAPIセキュリティー戦略とツールの開発を加速させました。
厳格なAPIセキュリティー・プロトコルを実装することで、APIエンドポイントが公開するデータ、アプリ、サービスを保護できると同時に、正規ユーザーの可用性を確保できます。APIセキュリティーは、エンドポイントを保護するだけではありません。また、APIライフサイクル全体にわたるデータ送信、ユーザー・リクエスト、アプリ間通信などのネットワーク・インタラクションのセキュリティーも優先されます。
ITインフラストラクチャーを強化するための最も一般的な APIセキュリティー・ソリューションには、次があります。
認証は、ユーザー、システム、またはプロセスの身元を確認するプロセスです。APIの文脈では、要求者が本人であることを確認するために、OAuth 2.0、APIキー、JWT仕様などのユーザー認証プロトコルを使用することを指します。
一方、承認は、認証されたユーザーが何にアクセスできるかを確認するプロセスです。ユーザーが認証されると、ロールベースのアクセス制御により、ユーザーのアクセスが必要または要求するリソースに厳密に制限される必要があります。
暗号化により、プレーン・テキストやその他の種類のデータが、読み取り可能な形式から、復号化キーを持つエンティティーのみが復号できるエンコードされた形式に変換されます。トランスポート層セキュリティー(TLS)、SSL接続、TLS暗号化プロトコルなどの暗号化テクノロジーを使用することで、APIトラフィックが悪意のあるユーザーや権限のないユーザーによって傍受または変更されないようにすることができます。
入力検証プロトコルは、入力が処理される前に特定の基準(長さ、タイプ、形式、範囲など)を満たしていることを確認することで、SQLインジェクション攻撃やクロスサイト・スクリプティングなどの悪意のあるデータからAPIを保護します。Webアプリケーション・ファイアウォール(WAF)とXMLまたはJSONスキーマ検証を利用することで、セキュリティーチームが検証プロセスを自動化し、受信リクエストを先手を取って分析し、悪意のあるトラフィックがサーバーに到達する前にブロックするのに役立ちます。
レート制限は、特定の時間枠内でユーザーまたはIPアドレスが実行できる呼び出しの数を制限することにより、ブルート・フォース攻撃やDoS攻撃からAPIリソースを保護します。レート制限により、すべてのAPIリクエストが迅速に処理され、ユーザーがシステムに有害なリクエストを大量に送り込むことがなくなります。
レート制限と同様に、スロットリングはシステムが受信するAPI呼び出しの数を制限します。ただし、スロットルはユーザー/クライアント・レベルで動作するのではなく、サーバー/ネットワーク・レベルで動作します。スロットル制限とクォータは、APIの呼び出し、メッセージ、またはその両方を1秒あたりの特定の数に制限することで、APIバックエンド・システムの帯域幅を確保します。
セキュリティー・ヘッダーは、クリック・ジャッキング攻撃の防止に特に効果的です。たとえば、「content-security-policy」ヘッダーは、サーバーからどのリソースを要求できるかをブラウザーに伝えます。「x-content-type-option」ヘッダーはブラウザがコンテンツ・タイプをMIMEスニッフィングしようとするのを阻止し、「strict-transport-security」ヘッダーはサーバーへの安全な(HTTP over SSL/TLS)接続を強制します。
APIゲートウェイのインストールは、特にオープンAPIの場合、APIアクセスを制限し、ネットワーク・セキュリティーの層を追加する最も簡単な方法の1つです。APIゲートウェイは、システムが受信するすべてのAPIリクエストの単一のエントリー・ポイントとして機能し、APIインタラクションを標準化し、キャッシュ、分析、APIコンポジション、レート制限、暗号化、ロギング、アクセス制御などのセキュリティ機能を提供します。
包括的な最新の監査ログを保持し、頻繁に確認することで、組織はデータのアクセスと使用状況を追跡し、すべてのAPIリクエストを記録できます。APIエコシステムの複雑さを考慮すると、APIのアクティビティーを常に把握し続けるのは、非常に労力がかかる場合がありますが、データ侵害やコンプライアンスの違反後にチームが手順を再追跡する必要がある場合は、監査とログの手順を実行することで時間を節約できます。
API環境でのプロアクティブなエラー処理により、サイバー犯罪者がAPIプロセスに関する機密情報を漏らすことを防ぐことができます。理想的には、APIエラーは、エラーの性質を大まかに示すHTTPステータス・コードを返し、過剰なデータ漏洩の危険を冒さずにチームが問題を理解し、対処するための十分なコンテキストを提供します。
他のソフトウェア・アプリケーションやシステムと同様に、APIセキュリティーを維持するには、注意深くリアルタイムの監視と保守を行うことが不可欠です。異常なネットワーク・アクティビティーに常に注意し、最新のセキュリティー・パッチ、バグ修正、新機能でAPIを更新してください。
組織は、Open Web Application Security Project(OWASP)のAPIセキュリティー推奨事項のような、タイムリーなセキュリティ標準を採用する必要もあります。たとえば、OWASP API Security Top 10リストは、認証の失敗、一括割り当て、サーバー側のリクエスト・フォージェリなど、最も重要かつ一般的な APIセキュリティーの脅威を理解し、軽減するためのフレームワークを提供します。
APIソフトウェアのすべての新しいバージョンには、以前のバージョンのセキュリティー・ギャップを補うセキュリティー・アップデートとバグ修正が付属しています。しかし、適切なバージョン管理を実践しないと、ユーザーが誤って(または意図的に)APIの古いバージョンをデプロイし、機密データが危険にさらされる可能性があります。注意深いバージョニングとドキュメント化の実践により、企業はサービスを中断することなくAPI開発を加速し、古い APIバージョンを段階的に廃止し、ユーザーをより新しく、セキュアなイテレーションに誘導することができます。
たとえば、チームがAPIのv1でセキュリティー上の欠陥を発見した場合は、v2で修正できます。また、バージョン管理により、セキュリティーチームは、v1に既知のセキュリティー脆弱性があることをバージョンのドキュメントで明確にしながら、ユーザー自身のペースでv1からv2に移行することを奨励できます。
セキュリティー・テストでは、開発者はAPIクライアントを使用して標準リクエストを送信し、システム応答の品質と正確さを評価する必要があります。定期的なセキュリティー・テストを実施してセキュリティー・ギャップを特定・対処することで、チームは攻撃者が悪用する前にAPIの脆弱性を修正できます。
IBM API Connectは、直感的な使い勝手により、APIの作成、管理、セキュリティーの確保、ソーシャル化、収益化までライフサイクル全体を一貫して支援し、オンプレミスおよびクラウド全体におけるデジタル・トランスフォーメーションを強力に後押しするAPI管理ソリューションです。
IBM API Connectは、APIへのアクセスの保護、制御、仲介のためのさまざまな機能を提供します。OAuth、OpenID Connect、およびサード・パーティー・サービスを使用した認証と許可を通じてAPIへのアクセスを制御するだけでなく、DMZからクラウドネイティブ・アプリやマイクロサービスとの併置に至るまで、あらゆる場所にデプロイでき、実行時のアクセスをもれなく保護します。
高度なAIを活用した機能により、企業全体のAPIセキュリティーを強化します。API管理およびアプリケーション・ゲートウェイのリーダーであるIBMは、APIセキュリティーのリーダーであるNoname Securityと提携して、高度なAPIセキュリティー機能を提供しています。この共同ソリューションは、セキュリティーの信頼性を新たなレベルに到達するのに役立ちます。
1 Research Brief: The Urgency of Addressing API Security in an Application Security Program(ibm.com外部へのリンク)、Enterprise Strategy Group(2023年10月16日)
2 On the Radar: Wib secures APIs throughout their full lifecycles (ibm.com外部へのリンク)、Omdia(2023年9月1日)
3 The next big API security breach looms: here’s how to prepare(ibm.com外部へのリンク)、SC Magazine(2023年10月19日)