APIセキュリティ・テストでは、アプリケーション・プログラム・インターフェイス(API)のエンドポイントのセキュリティ、正確性、信頼性をテストして、組織のベストプラクティスに準拠していることを確認します。
2000年にSalesforceがWebベースの営業支援システムのAPIを「サービスとしてのインターネット」モデルで発売したときにAPIの新しい概念が誕生し、以来、APIは急速に普及していきました。
現在もAPIは拡大を続け、業界の最先端ソフトウェア開発の基盤となっています。2020年には、前年よりAPIの使用が増えたと報告した開発チームの割合が61%に上りました。また、今後数年間でさらにAPIの使用が増えると予想する開発チームの割合が71%に達しています。
APIの使用増大の一因は、組織がAPIの採用を促進するためにスタンダードを策定したことにあります。OpenAPIやAsyncAPIなどの仕様によってAPIの記述に必要なファイルを定義できます。定義したファイルはAPIを効率的に管理するために必要なドキュメント、統合、テストツールの特定に役立ちます。
セキュリティ・テストを行うことで、ユーザーアクセス、暗号化、認証の問題などの基本的なセキュリティ要件が満たされていることを確認できます。APIスキャンの目的は、ハッカーの行動と攻撃ベクトルを模倣してAPIからバグや未定義の行動を誘導する入力を作り出すことです。
APIセキュリティ・テストでは、まずテストするAPIを定義します。テスト担当者は、OpenAPI v2 / v3、Postman Collection、HARファイルなどのさまざまな仕様形式を用いてAPIの入出力情報を指定します。APIセキュリティ・テストでは、この情報を使用してAPIで想定される入力に合わせたファズを作成します。
APIセキュリティ・テストの結果、APIのファジング中に発見された脆弱性やバグのレポートが出力されます。これには、SQL/OSコマンドのインジェクション、認可/認証バイパス、パストラバーサルの問題、OWASP Top 10のAPI脆弱性(認証の不備、セキュリティの設定ミス、データ露出など)が含まれます。
APIは多くのアプリケーションの中心であり、開発チームはAPIを用いて、組織がサービス提供に使用する高機能なインターフェイスを利用できます。APIが公開仕様に準拠し、不正な入力や悪意のある入力に対する耐性を確保することは、組織全体のセキュリティにとって重要です。
従来のDASTスキャナはAPIのほんの一部をカバーするのみで、APIを完全に網羅することはできません。組織のフロントエンドがすべてのAPIエンドポイントと通信しない限り、従来のDASTスキャナではAPIの見逃しが生じます。そのため、APIのすべてのエンドポイントで問題箇所を標的にした包括的なAPIテスト戦略を採用することが不可欠です。
基本的なレベルでは、APIセキュリティ・テストは脆弱性およびそれに関連する潜在的な組織のリスクの特定・防止を支援します。
その具体的な方法として、テスト対象のAPIと組織の全体的な戦略およびベストプラクティスに応じてテスト内容を微調整します。APIスキャナーの動作はより詳細で、単一ページのみで構成されるWebアプリ、IoTデバイス、モバイルアプリに機能を提供するAPIを検査します。APIスキャナーを使用してAPIで想定される入力を認識することで、データをインテリジェントにファジングして隠れたバグを発見できます。
APIセキュリティ・テスト・ツールは、フロントエンドの入力を検証するだけでなくAPIのビジネス・ロジックもスキャンすることにより、APIの正確性を確保します。
APIセキュリティ・テストはAPIの公開仕様を逸脱したAPIの特定にも役立ちます。たとえば、特定のエンドポイントが特定のHTTPステータスで応答するはずなのに、スキャン中に別のエンドポイントが検出された場合、テスト担当者は適切なステークホルダーに警告を発します。これにより、APIを利用する開発者の公開仕様への準拠を確保できます。
自動化された高機能のRESTful/GraphQL APIセキュリティ・スキャナであるシノプシスのSynopsys API Scannerを利用して、APIからの応答の正確性をテストし、一般的なセキュリティ脆弱性をスキャンすることができます。
Synopsys API Scannerはスタンドアロンのオンプレミス・アプライアンスとしても機能し、内部APIをスキャンします。Synopsys API Scannerは言語非依存で、RESTfulまたはGraphQLインターフェイスが使用されているすべての箇所をスキャンできます。Synopsysでは、アプリケーションの実装方法にかかわらずスキャンが可能です。
Synopsysは以下の課題の解決を支援します。