web-dev-qa-db-ja.com

Owasp Zap Testing rest api

OWASP ZAPを介してrest-apiをテストすることは可能ですか?攻撃するURLは、GETリクエストに対してのみ機能しました。

enter image description here

たとえば、私のAPIコントローラーはトークンのみで動作します。 TokenControllerがあり、このコントローラーにはPOST JSONデータ経由のデータにはパスワードとログインが含まれています。OWASP経由でこのコントローラーをテストできますか?

3
Сергей

OWASPZAPを使用してAPItestintを自動化することは可能ですが、テストを実行するには、2つのオプションがあります。たとえば、OpenAPI forZAPが情報の抽出を検討するなどの使用パターンを提供します。 2番目のオプションは、自動テストを実行してZAPをパッシブスキャン情報としてキャプチャし、その後、セッション情報をテストすることです。

OpenAPIドキュメントを使用することをお勧めします。キュウリのテストは次のようになります。

Feature: Security
  This feature is to test pokemon service security

  Scenario: Validate passive and active scan
    Given I import context from open API specification "/v2/api-docs"
    And I remove alerts
      | url                    |
      | http://.*/v2/api-docs* |
    And I import scan policy "javaclean" from file "javaclean.policy"
    When I run active scan
    And I generate security test HTML report with name "Java-clean-security-report"
    Then the number of risks per category should not be greater than
      | low | medium | high | informational |
      | 0   | 0      | 0    | 0             |

私はZAPの開発ステップです。GitHubで表示します: https://github.com/osvaldjr/easy-cucumber/wiki/Security-steps

OpenAPIドキュメントをインポートする手順の例:

@Given("^I import context from open API specification \"([^\"]*)\"$")
  public void iImportContextFromOpenAPISpecification(String path)
      throws ClientApiException, InterruptedException {
    String url = getTargetUrl() + path;
    log.info("Import Open API from url: " + url);
    zapProxyApi.openapi.importUrl(url, null);

    waitPassiveScanRunning();
    verifyThatTheProxyHasCapturedHostInformation();
  }

他のステップを表示する: https://github.com/osvaldjr/easy-cucumber/blob/master/src/main/Java/io/github/osvaldjr/stepdefinitions/steps/SecuritySteps.Java

0