2022年12月22日

デプロイメント戦略

Harness APIテストの方法論

このブログでは、他のソフトウェア企業がAPIセキュリティーテストを優先する際に考慮すべき参考資料として、私たちのアプローチを共有します。

harness_api_1.png

サイバーセキュリティー攻撃が増加し続ける中、どの組織にとっても、API保護のためのセキュリティーテスト方法を持つことが、これまで以上に重要になっています。APIを保護するにはさまざまな方法があり、Harnessは独自の方法論を開発しました。このブログでは、他のソフトウェア企業がAPIセキュリティーテストを優先する際に考慮すべき参考資料として、私たちのアプローチを共有します。

APIとは?

アプリケーションプログラミングインターフェイス(API)は、2つのアプリケーションが相互に通信できるようにする、ソフトウェアの仲介役ですガートナーによると

 

アプリケーションプログラミングインターフェイス(API)は、アプリケーションまたはデータベース内のサービス機能と、データへのプログラムによるアクセスを提供するインターフェイスです。人間、他のアプリケーション、またはスマートデバイスとの新しい相互作用を開発するためのビルディングブロックとして使えます。企業はAPIを使って、デジタルトランスフォーメーションやエコシステムのニーズに対応し、プラットフォームビジネスモデルを開始します。

 

Facebookへの投稿、テキストまたはSlackメッセージの送信、スマートフォンでの天気の確認など、私たちはアプリを使用するたびにAPIを使っています。例えば、スマートフォンでアプリケーションを使うと、アプリケーションはインターネットに接続し、指定されたサーバーにデータを送信します。次に、サーバーはそのデータを取得して解釈し、必要なアクションを実行して、スマートフォンに送り返します。次に、アプリケーションはそのデータを解釈し、必要な情報を読みやすい方法で表示します。これらは全てAPIを介して行われます。

 

OpenAPIswaggerなどの仕様は、APIの記述に必要なファイルの定義に役立ちます。これらのファイルは、組織によるAPIの効果的な管理のために必要なドキュメント、統合、およびテストツールを特定するのに役立ちます。

APIセキュリティーテストとは?

APIセキュリティーテストには、攻撃を防止し、組織のリスクを軽減するための脆弱性テストが含まれます。APIが隙のないことは素晴らしいですが、エンジニアが顧客やビジネスに影響を与える前に修正できるよう、このプロセスでセキュリティーギャップを積極的に見つけたいと考えています。さらに、このテストは、APIが定義された仕様に忠実であることの確認に役立ちます。

セキュリティーテストは、ユーザーアクセス、暗号化、認証に関する条件など、基本的なセキュリティー要件が満たされているかどうかの確認に有用です。APIスキャンの背後にある考え方は、APIからバグや未定義の動作を誘導するための入力を作成し、基本的にハッカーになる可能性のあるアクションと攻撃ベクトルを模倣することです。

セキュリティーテストAPIに必要な大まかな手順は次の通りです。

  • テストする必要があるAPIを定義する。
  • テスターは、OpenAPI v2/v3、Postman Collections、HARファイルなど、さまざまな仕様形式を使って、APIの入力と出力に関する情報を提供する。
  • APIセキュリティーテストでは、この情報を使って、APIが予測する入力に合わせて調整されたファジー入力を作る。
  • APIセキュリティーテストの出力は、APIのファジング中に見つかった脆弱性またはバグのレポートです。これには、SQLおよびOSコマンドインジェクション、承認/認証バイパス、パストラバーサルの問題、Open Web Application Security Project(OWASP)APIの上位10の脆弱性(壊れた認証、セキュリティーの構成ミス、データ漏えいなど)が含まれる可能性があります。

多くの組織には、運用後のテストに専念するチームや部門がありますが、APIセキュリティーテストは、DevOpsパイプラインの一部になりつつあります。これは、コードが本番環境に到達する前に脆弱性が確実に検出されるため、理にかなっています。

APIテストが今行われる理由

あらゆる業界で最新のソフトウェア開発の基本的な部分として機能するAPIの数は、増え続けています。このAPIの使用の増加は、組織がAPIの採用を促進するために開発した標準によるものです。APIは多くのアプリケーションの心臓部分であるため、セキュリティーテストをソフトウェア開発ライフサイクル(SDLC)に取り入れることがこれまで以上に重要になっているのです。

APIが公開された仕様に準拠し、潜在的に悪意のある入力に対する回復力の確認は、組織の全体的なセキュリティーにとって重要です。Salt Labsの2022Q1 APIセキュリティーレポート(2022年3月発行)によると、API攻撃は、過去12カ月間にAPIトラフィックの増加を2倍以上にしました。レポートはまた、次のことを示しています。

  • 本番APIを実行している組織の95%が、過去12カ月間にAPIセキュリティーインシデントを経験しています。
  • ほとんどの組織はこれらの課題に対処する準備ができておらず、3分の1以上(34%)はAPIセキュリティー戦略を持っていません。
  • 従来のセキュリティー対策は失敗し続けており、組織に誤った安心感を与えています。

Harness APIテスト戦略

OWASP API脆弱性Top 10は非常に重要ですが、DevOpsを真に次のレベルに引き上げるためには、このリストは出発点にすぎません。Harnessは、APIセキュリティーテストのライフサイクル全体に従い、セキュリティーとDevOpsをDevSecOpsにまとめます。

テストは1回限りのプロジェクトではありません。APIを脆弱性から保護するために、定期的に繰り返される、進行していくプロセスです。Harnessでは、自動化とオーケストレーションのテストにSecurity Testing Orchestration(STO)モジュールを使っています。STOを使って、パイプラインから直接トリガーされた定期的な間隔でスキャンを実行し、スキャン結果に重大または高度な脆弱性が含まれている場合にメールを送信します。その後、スキャンとアラートをトリガーする基準を調整し続けられます。

当社のテスト戦略は、次の5つの主要分野をカバーしています。

  1. APIと仕様のスコープと理解
  2. マッピング攻撃
  3. 自動および手動テスト(OWASP API Top 10)
  4. 成果物(Deliverables)
  5. 自動化とスケーリング

 

harness_api_2.png

1. APIと仕様のスコープと理解

スコープを定義する

最初に、テストの一部としてカバーする全ての領域を定義することが重要です。一般的に、組織は全てのAPIをswaggerまたはOpenAPI仕様を使って文書化し、これらを活用して範囲を理解できます。

 

APIとビジネス用途を理解する

APIとそのビジネス用途の理解は、セキュリティーの抜け穴がビジネスに及ぼす影響の程度を判断するために、最も重要です。さらに、これはAPIに対するオーダーメイドの攻撃を構築するのに役立ちます。

APIは、統合の背後に大量のリソースを投入することなく、ビジネスが提供できる機能と機能を拡張します。APIを最大限に活用するために、企業は通常APIを使って次のことを行っています。

  • サードパーティAPIとの統合
  • 内部使用のためのAPIを構築する
  • APIを構築し、外部使用のためにAPIを公開する

上記の現在のテストが、どのカテゴリーに該当するかの理解が重要です。攻撃者のように考えてみましょう。

 

まず、仕様を確認してください–API as a Contract

APIは基本的に、クライアントとサーバーの間、または2つのアプリケーション間のコントラクトです。実装テストを開始する前に、コントラクトが正しいことを確認することが重要です。最初に仕様(またはSwaggerインターフェイスやOpenAPI参照などのサービスコントラクト自体)を調べて、エンドポイントの名前が正しいか、リソースとその型はオブジェクトモデルを正しく反映しているか、機能の不足や重複はないか、リソース間の関係がAPIに正しく反映されているかを確認する必要があります。

2. 攻撃のマッピング

攻撃のマインドマップ

APIが何のために設計されているか、その基盤となるテクノロジー、および仕様が分かったので、攻撃をマインドマップするのは非常に簡単です。

一般的に、簡単にできることは全て、自動化されたツールでカバーされます。ここで本当に注目したいのは、ビジネスロジックフローをどのようにカバーできるかということです。ビジネス固有のフローに焦点を当てて、自動化されたセキュリティーツールでは見つけるのが非常に難しいシナリオを見つけようとします。

ここで連鎖攻撃に集中することもできます。報告されたツールをベースラインとして使用し、それらを他の調査結果と関連付けて攻撃シナリオを作成することが、ここでの焦点となる可能性があります。

 

3. 自動+手動テスト–OWASP API Top 10

OWASP API Top 10を確認する

OWASP Foundationには、APIに対する上位10のセキュリティー脅威のリストがあります。サイトのリストを確認して、チームを準備します。これは、あらゆる種類のセキュリティーテストの基本です。

 

自動ツールを実行する

効率の向上に役立つ自動化ツールが多数あります。手動テストに頼る代わりに、これらの自動化ツールは時間とリソースを節約します。以下に、私たちのお気に入りのいくつかを掲載しておきました。

BurpSuite ProTraceable AIは、他の多くのサポートツールとともに、セキュリティーの問題を見つけるのに役立ちます

PostmanSoapUIなどのオープンソースツール

Burpにはサポートプラグインの広範なセットがあり、 OpenAPIパーサーなどのさまざまな攻撃に集中するために使用できます。

 

ビジネスロジックフローのテスト

ビジネスロジックの脆弱性は、攻撃者が意図しない動作を引き出すことを可能にする、APIの設計と実装の欠陥です。これにより、攻撃者は正当な機能を操作して、悪意のある目標を達成できる可能性があります。

例えば、特定のアクセス許可がリソースにどのように付与されているか、ライセンスがどのように検証されているか、顧客へのコストがどのように計算されているかを見てみましょう。上記のシナリオに潜在的な操作または欠陥が存在する場合、それは機密性、完全性、および可用性であり、CIA侵害とも呼ばれ、ビジネスの収益の損失につながる可能性があります。

 

4. 成果物

ここまでのテストの過程で発見したことを報告することが、最終的な成果です。利害関係者にリスクを認識してもらうには、JIRAまたはその他のチケットシステムで関連するタスクを作成し、それらを1つのセキュリティーダッシュボードで追跡します。

5. 自動化とスケーリング

年間を通じて行われる急速な開発の量を考慮すると、セキュリティーチームはソフトウェア配信の速度についていく必要があります。自動化によってスケーリングが可能になります。

各リリース中のAPIテストとテスト変更の両方を自動化するさまざまな方法があります。各リリースサイクル中に全APIをテストすることはできないため、完全なAPIテストを実行する頻度を選択する必要があります。残りのリリースでは、差分のみを取得します。

このAPIテストのパイプラインへの統合は、DevOpsを次のレベルに引き上げ、成熟したDevSecOpsプラクティスを実現します。

 

Harness Security Testing Orchestration

最終的に、セキュリティーテストに関しては、「1つで万能」というものはありません。ただし、APIに対する攻撃が増えていることを考えると、適切なツールの配置がプロアクティブな保護の鍵となります。

HarnessがAPIセキュリティーテストの自動化に。どう役立つかについて詳しく知りたいですか?HarnessSTOのデモを今すぐリクエストしてください


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ