ホーム
Topics
APIセキュリティー
公開日:2023年11月20日
寄稿者:Crystal China、Michael Goodwin
APIセキュリティーは、アプリケーション・プログラミング・インターフェース(API)を悪用や悪意のあるボット攻撃、その他のサイバーセキュリティーの脅威から保護するための実践と手順を指します。Webセキュリティーの一部として機能しますが、企業のIT管理における重要が高まっているAPIに特に焦点を当てたものです。1
企業は、デジタル・トランスフォーメーションの構成要素として機能するAPIを、外部の開発者やパートナーにサービスとして提供することができます。アプリケーション間の通信とデータ交換を調整するAPIは、より連携したユーザー体験を促し、ビジネスの範囲を拡大し、技術革新の限界を押し広げます。APIにより、サービスの統合も最適化できるため、市場の変化や顧客の要求に迅速に対応できるようになります。
しかし、APIが急増するにつれて、APIに付随するセキュリティーの問題も増加します。
APIは、組織のIT担当者とサードパーティーのソフトウェア開発者の間、もしくはIT担当者と個人の間に入り、プロセスのエンドポイントでデータと情報を送信します。エンドポイントが外部に公開されることに伴い、APIはあらゆる攻撃の格好の標的となる可能性があります。
APM(アプリケーション・パフォーマンス管理)とARMの両方によって、意思決定とリソース利用が速くなる方法について説明します。
API管理とAPIセキュリティーの進化は、API自体の進化と本質的に結びついています。初期のAPIは主に、単一システム内におけるプロセス間の通信に焦点を当てたものでした。そのため、通信は1台のマシンに限定されていたため、セキュリティー(またはセキュリティーの欠如)はさほど問題ではありませんでした。
しかし、モノのインターネット(IoT)やクラウドネイティブなマイクロサービス・アーキテクチャーの出現により、APIはアプリケーション間やDevOps環境間のシームレスな通信やコール・ルーティングが可能になるように拡張されました。REST(representational state transfer)やSOAP(simple object access protocol)といった高品質な最新のAPIでは、アプリの統合をオーケストレーションしたり、データフォーマットを指定したり、呼び出しタイプや手順、規約を指示したりできます。
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日)