定義

APIセキュリティ・テストでは、アプリケーション・プログラム・インターフェイス(API)のエンドポイントのセキュリティ、正確性、信頼性をテストして、組織のベストプラクティスに準拠していることを確認します。

APIセキュリティ・テストの起源

2000年にSalesforceがWebベースの営業支援システムのAPIを「サービスとしてのインターネット」モデルで発売したときにAPIの新しい概念が誕生し、以来、APIは急速に普及していきました。

現在もAPIは拡大を続け、業界の最先端ソフトウェア開発の基盤となっています。2020年には、前年よりAPIの使用が増えたと報告した開発チームの割合が61%に上りました。また、今後数年間でさらにAPIの使用が増えると予想する開発チームの割合が71%に達しています。

APIの使用増大の一因は、組織がAPIの採用を促進するためにスタンダードを策定したことにあります。OpenAPIやAsyncAPIなどの仕様によってAPIの記述に必要なファイルを定義できます。定義したファイルは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を用いて、組織がサービス提供に使用する高機能なインターフェイスを利用できます。APIが公開仕様に準拠し、不正な入力や悪意のある入力に対する耐性を確保することは、組織全体のセキュリティにとって重要です。

従来のDASTスキャナはAPIのほんの一部をカバーするのみで、APIを完全に網羅することはできません。組織のフロントエンドがすべてのAPIエンドポイントと通信しない限り、従来のDASTスキャナではAPIの見逃しが生じます。そのため、APIのすべてのエンドポイントで問題箇所を標的にした包括的なAPIテスト戦略を採用することが不可欠です。

APIセキュリティ・テスト | シノプシス

APIセキュリティ・テストの利点

基本的なレベルでは、APIセキュリティ・テストは脆弱性およびそれに関連する潜在的な組織のリスクの特定・防止を支援します。

その具体的な方法として、テスト対象のAPIと組織の全体的な戦略およびベストプラクティスに応じてテスト内容を微調整します。APIスキャナーの動作はより詳細で、単一ページのみで構成されるWebアプリ、IoTデバイス、モバイルアプリに機能を提供するAPIを検査します。APIスキャナーを使用してAPIで想定される入力を認識することで、データをインテリジェントにファジングして隠れたバグを発見できます。

APIセキュリティ・テスト・ツールは、フロントエンドの入力を検証するだけでなくAPIのビジネス・ロジックもスキャンすることにより、APIの正確性を確保します。

APIセキュリティ・テストはAPIの公開仕様を逸脱したAPIの特定にも役立ちます。たとえば、特定のエンドポイントが特定のHTTPステータスで応答するはずなのに、スキャン中に別のエンドポイントが検出された場合、テスト担当者は適切なステークホルダーに警告を発します。これにより、APIを利用する開発者の公開仕様への準拠を確保できます。


APIセキュリティ・テストの課題とシノプシスの支援方法

自動化された高機能のRESTful/GraphQL APIセキュリティ・スキャナであるシノプシスのBlack Duck API Scannerを利用して、APIからの応答の正確性をテストし、一般的なセキュリティ脆弱性をスキャンすることができます。

Black Duck API Scannerはスタンドアロンのオンプレミス・アプライアンスとしても機能し、内部APIをスキャンします。Black Duck API Scannerは言語非依存で、RESTfulまたはGraphQLインターフェイスが使用されているすべての箇所をスキャンできます。Black Duckでは、アプリケーションの実装方法にかかわらずスキャンが可能です。

Black Duckは以下の課題の解決を支援します。

  • 大規模で複雑なAPIは手動でのテストが困難なため、Black Duck API Scannerはプロセス全体の自動化を支援します。
  • 文書化されていないAPIは、PostmanまたはHARファイルのインジェスト機能を使用して生成された初版のOpenAPI 3ドキュメントに表示されます。Black Duck API Scannerは、組み込みのイントロスペクション機能を使用してGraphQL APIの変更を自動的に取り込みます。GraphQL DASTスキャンを実行できる製品は他にはほとんど見当たりません。
  • 組織は内部APIのスキャンという課題に直面しています。シノプシスはスタンドアロンのオンプレミス・ソリューションを提供します。
  • 一部のAPIでは認証を適切にテストする必要があります。Black DuckはすべてのAPI認証要件に準拠可能であるため、すべてのエンドポイントを完全にスキャンできます。また、APIの認可/認証のバイパスの問題を発見することもできます。
  • Synopsysはインテリジェントなファザーなので、APIで取得したパラメータの情報を使用して目立たないバグも特定できます。