REST API を使用したアクセス制御の不備テストの構成

アクセス制御の不備は、認証されたユーザーに許可されている操作に対する制限をアプリケーションが適切に適用していない場合に発生します。攻撃者はこれらの脆弱性を悪用して、機密データや機能に不正にアクセスする可能性があります。

始める前に

アクセス制御の不備テストを構成する前に、以下の要件を満たしていることを確認してください。
  • 「実行中」または「完了」状態ではない既存の DASTConfig ジョブ。
  • テストするロールのベースライントラフィックファイル。サポートされているファイル形式: .har.seqe.exd、および .dast.config (Activity Recorder および Traffic Recorder によって生成された、FIPS および非 FIPS 暗号化ファイルの両方をカバーします)。
  • ベースライントラフィックファイル URL と完全に一致するターゲット URL。
  • ロールごとに 200 MB を超えないファイルサイズ。
注:
標準の .scan ファイルは、この機能ではサポートされていません。

このタスクについて

このテストでは、2つの主なシナリオを特定します。
  • 垂直アクセス制御: 権限の低いユーザーが、より高い権限を持つユーザー用に予約された機能またはデータにアクセスします (例: 標準ユーザーが管理ダッシュボードにアクセスする)。
  • 水平アクセス制御: ユーザーが、同じ権限レベルを持つ別のユーザーに属するデータにアクセスします (例: ユーザー A がユーザー B のプライベートアカウントの詳細を表示する)。

パブリックページ (認証なしでアクセスできるページ) での誤検知を防ぐため、 AppScan Enterprise はデルタメカニズムを使用します。これは、認証されたユーザーのトラフィックを、認証されていないユーザーのベースラインと比較します。ページが認証されていないユーザーにアクセス可能な場合、それは除外リストとして機能し、アクセス制御の不備の脆弱性として フラグ付けされません。

手順

  1. ロールを追加し、ベースライントラフィックをアップロードします。
    POST /jobs/{jobId}/brokenaccesscontrol/add エンドポイントを使用して、 ベースライントラフィックをアクティブなスキャンジョブにアタッチします。リクエストには multipart/form-data を使用する必要があります。
    • Job ID: ターゲットスキャンジョブに必要な JobID を入力します。
    • 認証済みロールの場合: 一意の roleName (例: Admin または StandardUser) を指定し、ファイルパスを指定します。ロール名には、 次の特殊文字を含めることはできません: <>"'%;)(&+
    • 非認証ベースラインの場合: isNonAuthenticated パラメーターを true に設定します。roleName パラメーターは 完全に省略してください。省略しないとリクエストは失敗します。ジョブごとにアップロードできる 非認証ベースラインファイルは 1 つだけです。
  2. スキャンを実行します。
    必要なすべてのロールのトラフィックファイルをアップロードしたら、POST /jobs/{jobId}/actions エンドポイントを使用して DAST スキャンを開始します。AppScan Enterprise はアプリケーションをクロールし、 提供されたロールのベースラインに基づいてアクセス制御の不備の脆弱性をテストします。
  3. オプション: ロールを更新または削除します。
    ロールのトラフィックファイルを更新するか、ロールを完全に削除する必要がある場合は、 DELETE /jobs/{jobId}/brokenaccesscontrol/delete エンドポイントを使用します。 jobIdroleName を指定します。非認証ベースラインを 削除するには、roleName"Non-Authenticated-User" として指定します。 ロールを更新するには、手順 1 を繰り返して、 新しいトラフィックファイルで再度追加します。