Webサービス / APIテスト🔗
サービス概要🔗
Secureworksは、お客様のウェブアプリケーションプログラミングインターフェース(API)および/またはウェブサービスの状態を分析し、脆弱性を特定するためにWebサービス / APIテストを実施します。テストの実施にあたり、Secureworksはアプリケーションテストの業界標準フレームワークに基づいた独自の手法を用います。これには、Open Web Application Security Project(OWASP)Testing Guide、Open Source Security Testing Methodology Manual(OSSTMM)、ベンダー固有のセキュリティドキュメント、そしてSecureworksチームメンバーの経験が含まれます。
サービス手法🔗
お客様の要件を特定・議論・レビューし、潜在的に公開されている、またはリスクのあるウェブサービスやAPIを見定める支援を行います。例としては、企業間通信コンポーネントやバックエンドのモバイルアプリメッセージングなどが挙げられます。
Secureworksは、発見事項をレビューし、必要に応じて手動テストを実施します。手動テストは「誤検知」の発生を可能な限り減らし、全体的なテスト結果の精度を向上させます。
WebサービスまたはAPIテストは、以下の領域に焦点を当てます。
- Simple Object Access Protocol(SOAP)/ Extensible Markup Language(XML)構造テスト
- Representational State Transfer(REST)/ JavaScript Object Notation(JSON)パラメータ操作
- 入力値検証攻撃
- クロスサイトスクリプティング攻撃
- クッキー窃取
- ウェブサーバーの脆弱性
- 認証方式への攻撃
- 水平および垂直の権限昇格
- サードパーティソフトウェアの脆弱性
- データベースの脆弱性
以下のサブセクションでは、Secureworksが顧客のウェブAPIおよび/またはウェブサービスをテストする際に用いるプロセスの各段階について説明します。
動的アプリケーションセキュリティテスト
Secureworksは、Dynamic Application Security Testing(「DAST」)を使用します。これは、お客様の運用環境におけるアプリケーションのセキュリティ脆弱性を検出するのに役立ちます。DASTは一般的にウェブアプリケーションのテストを指しますが、ソフトウェア全般のセキュリティテストにも適用される概念です。
DASTは、対象アプリケーションの機能を包括的にレビューした後、特定の機能に対して慎重に操作された入力を用いて脆弱性を特定します。アプリケーションのセキュリティロジックは、不正な状態や脆弱性につながる前提条件が組み込まれていないかテストされます。
偵察(Reconnaissance)
偵察フェーズでは、テスターがアプリケーションとその通常の利用方法を理解します。この段階では、対象アプリケーションに明らかに存在する問題を積極的に悪用することはありません。タスクやアクティビティには以下が含まれます。
- スパイダリング
- サイトマッピング
- APIドキュメントのレビュー
- Web Services Description Language(「WSDL」)分析
- Swaggerファイル分析
- REST JavaScript APIレビュー
自動テスト
Secureworksは、自動テストを用いて短時間で複数のテストを実行します。自動ウェブアプリケーションスキャナーは範囲が限定されていますが、最も一般的な問題を特定するのに効果的であり、テスト中の時間を大幅に節約できます。スキャナーは、ターゲットAPIに対して有効な認証情報の有無にかかわらず実行でき、その選択はテストの深さに大きな影響を与えます。自動テスト中には、ウェブサーバーのネットワークレベルの脆弱性スキャンも実施され、サーバーのオペレーティングシステムにおける悪用可能な弱点を発見することを目的としています。タスクやアクティビティには以下が含まれます。
- 非認証スキャン
- 認証済みスキャン
- サーバー脆弱性スキャン
- コンテンツ発見スキャン
結果には以下が含まれる場合があります。
- 一般的な脆弱性
- インジェクションポイント
- 設定ミス
- リンクされていないコンテンツ
手動テスト:
Secureworksは、発見事項をレビューし、必要に応じて手動テストを実施します。手動テストは「誤検知」の発生を減らし、テスト結果の精度を向上させます。下表に記載されているタスクやアクティビティが、該当する場合に実施されます。
-
検証および自動結果の確認: すべての自動スキャン結果は、発見事項の精度を高めるために手動で検証されます。
-
サーバー評価: アプリケーションのセキュリティはサーバー自体に大きく依存します。ウェブサービスやAPIをホストするウェブまたはアプリケーションサーバーに弱点があると、他が安全でもアプリケーションが侵害される可能性があります。このフェーズでは、ウェブまたはアプリケーションサーバーソフトウェアに既知の弱点や設定上の問題がないか、自動および手動で調査します。
-
インジェクション攻撃: インジェクション攻撃は、ウェブアプリケーションが直面する最も重大な問題とされており、非常に一般的です。これには、データベース(「SQL」)インジェクション、クロスサイトスクリプティング(「XSS」)、コマンドインジェクション攻撃などの攻撃グループが含まれます。これらの脆弱性が発見された場合、アプリケーション、データ、ユーザーに与える実際の技術的リスクを評価するプロセスが実施されます。
-
マルチステージプロセスのテスト: アカウント登録や決済処理などのマルチステージプロセスのテストには、自動スキャナーは適していません。このチェックでは、テスターがマルチステージプロセスに注目し、持続的なXSS脆弱性や下流のデータベースインジェクション脆弱性などを特定することを目的とします。
-
認証テスト: ウェブAPIは一般的に、認証プロセスによって認可されたユーザーとその他のユーザーを分離します。このテストプロセスには、ログオンルーチンの弱点、認証トークンの操作、パスワード攻撃が含まれます。
-
権限昇格: ユーザーの分離は、ユーザーがアクセスできる機密データの保護に不可欠です。権限昇格攻撃は、同じレベルの他のユーザーへの突破(水平昇格)や、管理者アカウントなどより高いレベルのアカウントへの昇格(垂直昇格)を試みます。
-
ウェブサービス情報収集: このテストフェーズでは、ウェブサービスのエントリーポイントや通信スキーマを収集するさまざまな方法を用いて、対象範囲内のサービスを特定します。Web Service Discovery(DISCO)やUDDIを使用して、WSDLディスクリプタやその他のXMLドキュメントを発見します。
-
XML構造テスト: Secureworksは、XML構造が正しく形成されていることを検証し、適切に機能することを確認します。構造は、エンティティインジェクション、XML埋め込みタグインジェクション、SQLインジェクション、クロスサイトスクリプティング、XPATHインジェクション攻撃についてテストされます。
-
XMLコンテンツテスト: Secureworksは、ウェブサービス機能の実行、認証済みの場合はより高い権限でのウェブサービスの検証、データベース上でのコマンド実行などにより、XMLコンテンツのテストを実施します。パラメータは、SQL構文やXMLタグなどの無効なコンテンツが含まれていないか確認されます。
-
RESTfulウェブサービスのテスト: Secureworksは、最大・最小文字列長の検証、ペイロードを含む適切なバリデーションの実施、パラメータ名の検証などにより、RESTfulウェブサービスのテストを実施します。
結果には以下が含まれる場合があります。
- マルチステージ脆弱性
- インジェクション可能な入力
- XMLパーサーの設定問題
- 持続的なインジェクション脆弱性
- クロスサイトスクリプティングの欠陥
修正検証(Remediation Validation):
Secureworksは、最終レポートに記載された重大度「高」および「重大」の発見事項に対してのみ、1回の修正検証(RV)を実施します。最終レポートが納品された後、お客様は90日以内に問題を修正し、RVをスケジュールし、SecureworksにRVを実施させる必要があります。RVリクエストは、最終レポート納品から30日以内にWebサービステストのSecureworks担当者宛てにメールで提出する必要があり、期限を過ぎるとRVの権利は失効します。Secureworksは、RVの結果を要約した簡易レポートを発行し、問題が正常に修正されたかどうかの情報を含みます。
注意: Secureworksは、Webサービステストがオンサイトで実施された場合でも、RVはリモートでのみ実施します。
成果物🔗
Secureworksは、テスト完了後にお客様の組織へレポートを発行します。レポートには以下が含まれる場合があります。
- エグゼクティブサマリー
- 手法、詳細な発見事項、説明、および推奨事項(該当する場合)
- 関連する詳細や補足データのための添付資料
お客様は、レポート納品から1週間以内に、最終レポートに含めるコメントを提出することができます。レビュー期間満了までにお客様からコメントがない場合、レポートは最終版とみなされます。
サービス完了時には、お客様が指定した連絡先に対し、Secureworksからセキュア/暗号化されたメールによる確認通知が送信されます。お客様指定の連絡先から書面による異議申し立てがない限り、そのメール確認から5営業日以内にサービスは完了したものとみなされます。
スコーピング情報🔗
| スコープ | 説明 |
|---|---|
| Webサービス/ APIテスト - 小規模 | SOAPの場合、最大15メソッド RESTの場合、最大40メソッド |
| Webサービス/ APIテスト - 中規模 | SOAPの場合、最大25メソッド RESTの場合、最大60メソッド |
| Webサービス/ APIテスト - 大規模 | SOAPの場合、最大40メソッド RESTの場合、最大80メソッド |
作業はSecureworksコンサルタントの営業時間内に実施されます。営業時間外の対応は追加費用で利用可能です。
APIテストは、合計メソッド数が多い場合に複数単位で購入できます。
スコーピングのヒント: 評価対象となる各APIごとに、合計メソッド数を提供する必要があります。合計メソッド数は、まずエンドポイントの総数(例:/accounts/{accountId})を算出し、各エンドポイントで許可されているアクション(すなわちHTTP動詞:例:GET、POST、PUT、DELETE)の数を合計することで計算できます。合計メソッド数を提供する際、GET(すなわち読み取り専用)メソッドの数も併せて提供することで、これらのメソッドはテストに要する工数が少ないため、Secureworksが1回のWeb APIテストでテストできるメソッド数を増やせる場合があります。
本サービスの完全なサービス説明はこちらをご参照ください: Web API Testing