パッシブスキャンルール
全般設定
信頼済みドメイン
オプションの「ルール設定」パネルから rules.domains.trusted パラメーターを使用して、カンマ区切りのURL正規表現パターンリストを指定できます。
これらのパターンに一致するリンクURLは信頼済みドメインと見なされ、アラートの対象外となります。
以下のルールが 信頼済みドメイン をサポートしています:
- クロスドメインスクリプト・インクルージョン
- リバース・タブナビング
このアドオンには以下のリリース状態のパッシブスキャンルールが含まれています:
クリックジャッキング対策ヘッダー
このスキャンルールは、X-Frame-Optionsヘッダー、または Content-Security-Policy の 'frame-ancestors' ディレクティブの存在と妥当性をチェックします。
MEDIUM および HIGH しきい値では、エラーやリダイレクト以外のHTMLレスポンスのみを調べます。
LOW しきい値では、エラーやリダイレクトを含むすべてのテキストレスポンスを調べます。
以下の状態でアラートが発生する可能性があります:
- Missing Anti-clickjacking Header: X-Frame-Optionsヘッダーがレスポンスに完全に欠落している場合。
- Multiple X-Frame-Options Header Entries: レスポンスに複数の X-Frame-Options ヘッダーが検出された場合。
- X-Frame-Options Defined via META (Non-compliant with Spec): 仕様でサポートされていない X-Frame-Options を定義しようとする "http-equiv" エントリがレスポンスで見つかった場合。
- X-Frame-Options Setting Malformed: ヘッダーが値なしで存在する場合、または値が期待通りでない場合 (つまり、"DENY" または "SAMEORIGIN" 以外)。
デフォルトでは、レスポンスに Content-Security-Policy の 'frame-ancestors' 要素が含まれている場合、アラートは発生しません。これは X-Frame-Options ヘッダーより優先されるためです。
ただし、LOW しきい値では上記の問題が依然として報告されますが、リスクはLOWになります。
最新のコード: AntiClickjackingScanRule.java
アラートID: 10020
アプリケーションエラー
HTTP 500 - Internal Server Errorタイプのレスポンス、または既知のエラー文字列を含むレスポンスをチェックします。
注: スクリプトブロックやファイル内のマッチは、コメントだけでなくコンテンツ全体が対象となります。
ISO制御文字(バイナリファイルの可能性が高いもの)を含むレスポンスはスキップされます。
HIGH しきい値では、HTTP 500ではアラートを出しません (ただし、他のエラーパターンでは出します)。 また、既知のエラー文字列はJS/CSSなどの静的ページではあまり関連性がないため、これらのファイルはLOW しきい値でのみスキャンされます。
Internal Server Error (HTTP 500) の場合、アラートは低リスクに設定され、その他の場合は中リスクに設定されます。
注: カスタムペイロードアドオンがインストールされている場合、カスタムペイロードオプションパネルで独自の Application Error の文字列 (ペイロード) を追加できます。
これらもパッシブスキャン実行時にレスポンス内で検索されます。 パッシブスキャン時にレスポンス内でこれらも検索されます。ペイロード数が多いほど、パッシブスキャンに必要な時間が長くなることに注意してください。
このルールの カスタムペイロード カテゴリ: Application-Errors.
ZAPのユーザーディレクトリの xml/application_errors.xml ファイルにパターンを追加することも可能です。
最新のコード: ApplicationErrorScanRule.java
アラートID: 90022
サイズの大きなリダイレクトを検出 (機密情報漏洩の可能性)
このチェックは、さまざまなリダイレクトタイプのレスポンスのサイズを予測し、レスポンスが予測サイズより大きい場合にアラートを生成します。
大きなリダイレクトレスポンスは、リダイレクトが行われたにもかかわらず、ページに実際にはコンテンツ (機密情報、PIIなどを含む可能性がある) が含まれていることを示す可能性があります。
また、リダイレクトレスポンスの本文に複数のHREFが含まれている場合もアラートを発生させます。
最新のコード: BigRedirectsScanRule.java
アラートID: 10044
Cache Control
"Cache-Control"レスポンスヘッダーを、機密コンテンツの保護のための一般的な業界ベストプラクティス設定と照らし合わせてチェックします。
MEDIUM および HIGH しきい値では、エラーやリダイレクト以外のテキストレスポンス (JavaScriptとCSSを除く) のみが対象となります。
LOW しきい値では、エラーやリダイレクトを含むすべてのレスポンスが対象となります。
最新のコード: CacheControlScanRule.java
アラートID: 10015
文字セットの不一致
このチェックは、HTTPの Content-Type ヘッダーで宣言されている charset が、HTMLまたはXMLの本文で定義されている charset と異なるレスポンスを識別します。 HTTPヘッダーとコンテンツ本文の間に charset の不一致がある場合、Webブラウザは望ましくないコンテンツスニッフィングモードに強制され、コンテンツの正しい文字セットを判断することになります。
スキャンルールはルールに設定されたしきい値に応じて、さまざまな状態を処理します:
- すべてのしきい値:
- ヘッダーとMETAコンテンツタイプ文字セットの矛盾 - HTTPの Content-Type ヘッダーの宣言が、METAの Content-Type タグで宣言されているものと一致しない。
- ヘッダーとMETAの文字セットの対立 - HTTPの Content-Type ヘッダーの宣言が、METAの Charset タグで宣言されているものと一致しない。
- Low しきい値:
- META文字セットとMETAコンテンツタイプ文字セットの矛盾 - レスポンスにMETAの Content-Type 宣言とMETAの Charset 宣言の両方が含まれており、それらが一致しない。
参考資料:
http://www.w3.org/TR/html401/charset.html#h-5.2.2
http://www.w3.org/TR/html5/document-metadata.html#charset
最新のコード: CharsetMismatchScanRule.java
アラートID: 90011
Content Security Policy (CSP) ヘッダーが設定されていない
このチェックは、HTMLレスポンスヘッダーに Content Security Policy ヘッダーが存在するか、またはレスポンス本文にMETAタグを介して指定されたCSPが存在するかを確認します。
デフォルトでは、このルールは "Content-Security-Policy"、"X-Content-Security-Policy"、"X-WebKit-CSP" ヘッダーの存在をチェックします。 Low しきい値を除き、リダイレクトおよび非HTMLレスポンスは無視されます。
"Content-Security-Policy" ヘッダーが見つからない場合、アラートが発生します。
"X-Content-Security-Policy" または "X-WebKit-CSP" ヘッダーが見つかった場合、INFOアラートが発生します。これは古い実装を表している可能性があります。
レスポンスに "Content-Security-Policy-Report-Only" ヘッダーが見つかった場合、INFOアラートが発生します。 これは、積極的に改良または開発されている、または部分的にのみ実装されている実施の取り組みを表している可能性があります。
注: このルールは、指定されたポリシーの実際の分析を行いません。それについては、CSPスキャンルールが有効になっていることを確認してください。
最新のコード: ContentSecurityPolicyMissingScanRule.java
アラートID: 10038
Content-Type ヘッダーの欠落
レスポンスに Content-Type ヘッダーが欠落している場合、またはヘッダーは存在するが値が空の場合にアラートを発生させます。
最新のコード: ContentTypeMissingScanRule.java
アラートID: 10019
CookieにHttpOnlyフラグがない
Cookieが設定される際にHttpOnlyフラグが付けられていることを確認します。 HttpOnlyフラグは、設定されているCookieがクライアント側スクリプト (JavaScriptなど) によって操作されるべきでないことをブラウザに示します。
最新のコード: CookieHttpOnlyScanRule.java
アラートID: 10010
Cookie - 広いスコープ
Cookieはドメインまたはパスでスコープを設定できます。 このチェックはドメインスコープのみに関係します。Cookieに適用されるドメインスコープは、どのドメインがそれにアクセスできるかを決定します。 例えば、Cookieはサブドメインに厳密にスコープを設定できます (例: www.nottrusted.com)、または親ドメインに緩くスコープを設定できます (例: nottrusted.com)。 後者の場合、nottrusted.comの任意のサブドメインがCookieにアクセスできます。 緩くスコープされたCookieは、google.comやlive.comのようなメガアプリケーションでは一般的です。.
最新のコード: CookieLooselyScopedScanRule.java
アラートID: 90033
Cookieポイズニング
このチェックは、クエリ文字列パラメータとPOSTデータのユーザー入力を調べて、Cookieパラメータが制御される可能性がある場所を特定します。
これはCookie poisoning攻撃と呼ばれ、攻撃者がさまざまな方法でCookieを操作できる場合に悪用可能になります。 場合によっては悪用できないこともありますが、URLパラメータでCookie値を設定できるようにすることは、一般的にバグと見なされます。
最新のコード: UserControlledCookieScanRule.java
アラートID: 10029
Cookie Secureフラグ
HTTPSセッション中に設定されたCookieを調べ、secureフラグが含まれていないものについてアラートを発生させます。
secureフラグが設定されたCookieは、プレーンなHTTPセッション中には送信されません。
最新のコード: CookieSecureFlagScanRule.java
アラートID: 10011.
SameSite属性のないCookie
以下のCookieを報告します:
- SameSite属性を持たないもの
- 属性が "None" に設定されているもの (HIGH しきい値では無視)
- 認識された有効な値を持たないもの
最新のコード: CookieSameSiteScanRule.java
アラートID: 10054.
クロスドメインスクリプト・インクルージョン
HTMLレスポンスの "script" タグの "src" 属性を調べて、コンテンツをホストしているドメイン以外のドメインからスクリプトが含まれているかどうかを検証します。
許可されるクロスドメインスクリプト:
- 空でない "integrity" 属性を持つスクリプトは無視されます - integrity値はブラウザによってチェックされるため、ここではチェックされません
- MEDIUM および HIGH しきい値では、スクリプトURLがベースメッセージのURLも含むコンテキスト内にある場合、アラートは発生しません
- このルールは信頼済みドメインをサポートしています。詳細については「全般設定」を確認してください。
最新のコード: CrossDomainScriptInclusionScanRule.java
アラートID: 10017
クロスドメイン設定ミス
レスポンスをパッシブスキャンして、Webブラウザで同一オリジンポリシーを緩和するクロスドメイン誤設定を検出します。
現在の実装では、過度に寛容なCORSヘッダーを調べます。
最新のコード: CrossDomainMisconfigurationScanRule.java
アラートID: 10098
CSP (Content Security Policy)
Content Security Policy (CSP) パッシブスキャンルールは、CSPヘッダーとMETA定義を解析および分析して、潜在的な誤設定や弱点を検出します。 このルールは、HtmlUnitのhtmlunit-cspライブラリを活用してCSPの解析と評価を行います。
レスポンスに複数のCSPがある場合、それぞれが個別に分析されます。ポリシーを交差/マージする確実な方法がなく、さらにブラウザによってCSPのサポートと実施レベルが異なるためです。
最新のコード: ContentSecurityPolicyScanRule.java
アラートID: 10055.
CSRF対策
このルールは、フォームを持つHTMLページに既知のCSRF対策が欠如している「潜在的な」脆弱性を識別します。
このルールはHTMLページでないメッセージはスキャンしません。
HIGHアラートしきい値では、スコープ内のメッセージのみをスキャンします。
バージョン2.5.0以降、Optionsの「ルール設定」パネルで
rules.csrf.ignorelist パラメーターを使用して、カンマ区切りのURL正規表現パターンリストを指定できます。
これらの識別子のいずれかに一致する name または ID を持つFORMは、Anti-CSRFトークンの欠落をスキャンする際に無視されます。
この機能は、検索フォームなど、安全であることが確認されているFORMを無視する場合にのみ使用してください。
フォーム要素名は、ZAPレポートに出力される際にソートおよび重複排除されます。
注:
- このルールは、Anti-CSRFオプション内の部分一致設定も考慮に入れます
- GET経由で送信されるフォームは、Lowしきい値でのみ評価されます
最新のコード: CsrfCountermeasuresScanRule.java
アラートID: 100202
ディレクトリブラウジング
ディレクトリブラウジングが可能であることを示すシグネチャをレスポンスからパッシブスキャンします。
最新のコード: DirectoryBrowsingScanRule.java
アラートID: 10033.
ハッシュの露見
Webサーバーによって開示されたパスワードハッシュをパッシブスキャンします。
MD4、MD5、SHA*など、パスワードハッシュ以外の目的で使用されることがあるフォーマットを含む、さまざまなフォーマットが含まれています。
注:
- このスキャンルールはテキストレスポンスのみを分析し、JavaScriptレスポンスはLOWしきい値でのみ分析します
-
- 評価されるハッシュパターンの選択は、パターンに対する信頼度とスキャンルールに設定されたしきい値に関連しています。
言い換えると、信頼度の低いパターンはLowしきい値でのみ評価対象に含まれます。
最新のコード: HashDisclosureScanRule.java
アラートID: 10097
Heartbleed OpenSSL の脆弱性 (指標)
サーバーが重大なHeartBleed OpenSSL脆弱性に対して脆弱である可能性を示すHTTPヘッダーレスポンスをパッシブスキャンします。
最新のコード: HeartBleedScanRule.java
アラートID: 10034
HTTPサーバーレスポンスヘッダー
レスポンスヘッダーでバージョン詳細を含むサーバーヘッダーの存在をチェックします。
LOWしきい値では、バージョン文字列が検出されたかどうかに関わらず、ヘッダーフィールドの存在に基づいてアラートを発生させます。
最新のコード: ServerHeaderInfoLeakScanRule.java
アラートID: 10036
フォーム送信におけるHTTPからHTTPSへの安全でない遷移
このチェックは、HTTPSフォームをホストする安全でないHTTPページを探します。 問題は、安全でないHTTPページがMITMを通じて簡単にハイジャックされ、安全なHTTPSフォームが置き換えられたり偽装されたりする可能性があることです。
最新のコード: InsecureFormLoadScanRule.java
アラートID: 10041
フォーム送信におけるHTTPSからHTTPへの安全でない遷移
このチェックは、安全でないHTTPフォームをホストする安全なHTTPSページを識別します。 問題は、フォームを通じてデータがアップロードされる際に、安全なページから安全でないページに移行していることです。 ユーザーは安全なページにデータを送信していると思っているかもしれませんが、実際にはそうではありません。
最新のコード: InsecureFormPostScanRule.java
アラートID: 10042
情報漏洩: デバッグエラー
このパッシブスキャンルールは、既知のデバッグエラーメッセージフラグメントについてWebレスポンスのコンテンツをチェックします。
このような詳細へのアクセスは、悪意のある個人にWebサイトをさらに悪用する手段を与える可能性があります。
また、エンドユーザーの消費を特に意図していないデータが漏洩する可能性があります。
注意: JavaScriptレスポンスはLOWしきい値でのみ評価されます。
最新のコード: InformationDisclosureDebugErrorsScanRule.java
アラートID: 10023
情報漏洩 - URL内の機密情報
訪問したURI自体に機密の詳細が存在するかどうかを識別しようとします (これにはパラメータ、ドキュメント名、ディレクトリ名などが含まれる可能性があります)。
最新のコード: InformationDisclosureInUrlScanRule.java
アラートID: 10024
情報漏洩 - HTTP Referrerヘッダー内の機密情報
HTTPリクエストの Referrer ヘッダーフィールド内に機密の詳細が存在するかどうかを識別します (これにはパラメータ、ドキュメント名、ディレクトリ名などが含まれる可能性があります)。
注意: Referrer値に疑わしいクレジットカード識別子がある場合、潜在的なクレジットカード番号は銀行識別番号リスト (BINList) と照合されます。 一致が見つかった場合、アラートは高信頼度で発生し、アラートの「その他の情報」フィールドに追加の詳細が追加されます。そうでない場合、アラートは中信頼度になります。
詳細についてはbinlist-dataを参照してください。
最新のコード: InformationDisclosureReferrerScanRule.java
アラートID: 10025
情報漏洩 - 疑わしいコメント
Webコンテンツを分析して、潜在的に機密の詳細を含むコメントを識別します。 これにより、さらなる攻撃や意図しないデータの暴露につながる可能性があります。
注意: 検索する文字列は「カスタムペイロード」アドオンを使用して拡張できます。
このルールの「カスタムペイロード」カテゴリ: Suspicious-Comments.
最新のコード: InformationDisclosureSuspiciousCommentsScanRule.java
アラートID: 10027
ページ内バナー情報漏洩
レスポンスボディのコンテンツを分析し、(レスポンスがエラーステータスコードの場合に) Webサーバーまたはアプリケーションサーバーのバナーの存在を検出します。
しきい値が Low の場合、ステータス 200 - OK のレスポンスも分析されます。
このようなバナーの存在は、既知の脆弱性に対するより標的を絞った攻撃を容易にする可能性があります。
最新のコード: InPageBannerInfoLeakScanRule.java
アラートID: 10009
安全でない認証
HTTP基本認証またはダイジェスト認証が、安全でない接続で使用されています。 認証情報はネットワークにアクセスできる誰かによって読み取られ、再利用される可能性があります。
最新のコード: InsecureAuthenticationScanRule.java
アラートID: 10105
安全でないJSF ViewState
レスポンスに、暗号化保護がないJava Server Faces (JSF) ViewState値が含まれています。
最新のコード: InsecureJsfViewStatePassiveScanRule.java
アラートID: 90001
Javaシリアライズオブジェクト
Java Serialization Object (JSO) は、Javaアプリケーション間でオブジェクトを保存および交換する方法です。
JSOにはさまざまな問題が関連しています。 機密データがバイトストリームに漏洩する可能性があります。
攻撃者はデータを変更し、JSOを悪用してサーバー上でリモートコード実行を行うこともできます。
JSOはJavaプログラムで使用すべきではありません。 シリアライズされたデータには強力な制御を行う必要があります。
JSOは「A8:2017-安全でないデシリアライゼーション」に関連する脆弱性の一種です。
最新のコード: JsoScanRule.java
アラートID: 90002
混在コンテンツ
HTTPS経由で提供されるコンテンツに対して、応答内のすべての src 属性を分析し、プレーンHTTP経由で取得されているものを検出します。
最新のコード: MixedContentScanRule.java
アラートID: 10040
Modern Web Application
This raises an informational alert if a site appears to be a modern web application.
It does not indicate any potential vulnerabilities but it could indicate that the modern spider might be more effective at exploring this site compared to the traditional spider.
最新のコード: ModernAppDetectionScanRule.java
アラートID: 10109
外部サイトへのリダイレクト
このチェックは、クエリ文字列パラメータとPOSTデータのユーザー入力を調べて、オープンリダイレクトが可能な場所を特定します。 オープンリダイレクトは、アプリケーションがユーザー入力 (例: http://nottrusted.com) でオフサイトの宛先を制御できるようにする場合に発生します。 これは通常、スパマーやフィッシング攻撃によって301または302リダイレクトが悪用される可能性がある場所を見つけるかなり正確な方法です。
注意: パッシブチェックの目的では、オリジンと宛先のオーソリティ部分が比較されました。この発見の影響を検証するには、手動テストが必要になる場合があります。
最新のコード: UserControlledOpenRedirectScanRule.java
アラートID: 10028
個人識別用情報の漏洩
PIIは、クレジットカード番号、SSNなどの情報です。 このチェックは現在、クレジットカード番号に一致し、Luhnチェックサムに合格する番号のみを報告します。
MEDIUMおよびHIGHしきい値では、潜在的な一致の両側の3文字のコンテキストを使用して、10進数のようなコンテンツやアンダースコアを含むコンテンツ内の一致を除外しようとします。
LOWしきい値では、そのような一致に対してもアラートが発生します。
MEDIUMおよびHIGHしきい値では、以下のコンテンツタイプが評価されます:
- HTML (可視テキストとスクリプトブロック)
- JSON
- XML
画像およびCSSファイルは常に無視されます。
その他のすべてのコンテンツタイプは、LOWしきい値で評価されます。さらに、LOWしきい値ではHTML全体のレスポンスが評価されます。
注: 疑わしいクレジットカード値の場合、潜在的なクレジットカード番号は銀行識別番号リスト (BINList) と照合されます。 一致が見つかった場合、アラートは高信頼度で発生し、アラートの「その他の情報」フィールドに追加の詳細が追加されます。そうでない場合、アラートは中信頼度になります。
詳細についてはbinlist-dataを参照してください。
最新のコード: PiiScanRule.java
アラートID: 10062
プライベートアドレスの漏洩
レスポンスコンテンツに、RFC 1918 IPv4アドレスやAmazon EC2プライベートホスト名 (例: ip-10-0-56-78) が含まれているかどうかをチェックします。 この情報により、攻撃者は内部ネットワークのIPアドレススキームに関する有用な情報を得ることができ、内部システムを標的としたさらなる攻撃に役立つ可能性があります。
このパッシブスキャンルールは、vp09.02.51.10.01.09.16のような大きなドット区切りの数値文字列の場合に誤検出 (偽陽性) を生成する可能性があります。ここでは、後半の4オクテットがRFC 1918 IPv4アドレスのように見えます。
アナリストはレビュー後、ZAPでそのようなアラートを誤検知としてマークすることができます。 繰り返しスキャン中の処理については、「コンテキストアラートフィルター」アドオンを活用できます。
このスキャンルールはテキストレスポンスのみを分析します。
最新のコード: InfoPrivateAddressDisclosureScanRule.java
アラートID: 2
キャッシュから取得
このスキャンルールは、共有キャッシュから提供されたコンテンツを検出します。
最新のコード: RetrievedFromCacheScanRule.java
アラートID: 10050
リバース・タブナビング
"rel" 属性で "opener" キーワードを使用する target 属性を使用するリンクがあるかどうかをチェックします。これにより、ターゲットページがそれらを開いたページを乗っ取ることができる可能性があります。
デフォルトでは、このルールはページと同じコンテキストにあるすべてのリンクを無視します。 LOWしきい値では、同じホスト上のリンクのみを無視します。
HIGHしきい値では、"_blank" ターゲットを使用するリンクのみを報告します。
このルールは信頼できるドメインをサポートしています。詳細については「全般設定」を確認してください。
最新のコード: LinkTargetScanRule.java
アラートID: 10108
悪意のあるドメインから配信されたスクリプト (polyfill)
これは、侵害されたことが知られている 'polyfill' ドメインのいずれかから提供されているスクリプトをチェックします。
悪意のあるドメインのいずれかからスクリプトがロードされている場合は高信頼度でアラートを発生させ、スクリプトの内容に悪意のあるドメインのいずれかへの見かけ上の参照が見つかった場合は低信頼度でアラートを発生させます。
既知の悪意のある 'polyfill' ドメイン:
- polyfill.io
- bootcdn.net
- bootcss.com
- staticfile.net
- staticfile.org
- unionadjs.com
- xhsbpza.com
- union.macoms.la
- newcrbpc.com
最新のコード: PolyfillCdnScriptScanRule.java
アラートID: 10115
サーバーが "X-Powered-By" HTTPレスポンスヘッダーフィールド経由で情報を漏洩
レスポンスヘッダーに X-Powered-By の詳細が存在するかどうかをチェックします。
最新のコード: XPoweredByHeaderInfoLeakScanRule.java
アラートID: 10037
URLリライト内のセッションID
このスキャンルールは、セッショントークンタイプのパラメータがURLに書き換えられて存在するかどうかをチェックします。
誤検出を減らすために、ルールはトークン値の長さをチェックします。パラメータの値が8文字を超えない場合、そのパラメータは無視されます (つまり、survey?sId=5 は脆弱としてフラグ付けされません)。
最新のコード: InfoSessionIdUrlScanRule.java
アラートID: 3
サブリソース完全性属性の欠落
このルールは、外部リソース (例: CDN) から提供される script 要素または link 要素の integrity 属性が欠落しているかどうかをチェックします。
これは、CDNが侵害され、コンテンツが悪意のあるコンテンツに置き換えられた場合の攻撃を軽減するのに役立ちます。
注: サイトツリー内のスクリプトに解決できる場合、推奨されるintegrityハッシュ値が、関連するアラートの「その他の情報」詳細に表示されます。
このルールは信頼されたドメインをサポートしています。詳細については「全般設定」を確認してください。
最新のコード: SubResourceIntegrityAttributeScanRule.java
アラートID: 90003
Strict-Transport-Security ヘッダー
このルールは、HTTPSレスポンスにHTTP Strict Transport Security (HSTS) ヘッダーが存在するかどうかをチェックし、さまざまな実装上の懸念をテストして、見つかった場合にアラートを発生させます。
生成されるアラート:
- Strict-Transport-Security Header Not Set: レスポンスがHTTPSで、ヘッダーが完全に欠落している場合。
- Strict-Transport-Security Disabled: レスポンスがHTTPSで、max-age 値がゼロに設定されており、サイトのブラウザのHSTS情報をリセットしている場合。
- Strict-Transport-Security Multiple Header Entries (Non-compliant with Spec): レスポンスがHTTPSで、レスポンスに複数のHSTSヘッダーがある場合。
- Strict-Transport-Security Missing Max-Age (Non-compliant with Spec): レスポンスがHTTPSで、HSTSヘッダーが指定されているが、max-age 値に数値が含まれていない場合。
- Strict-Transport-Security Defined via META (Non-compliant with Spec): レスポンス本文にHSTSを定義しようとするMETAタグが含まれている場合。
- Strict-Transport-Security Header on Plain HTTP Response: レスポンスがHTTPで、HSTSヘッダーが存在する場合。
- Strict-Transport-Security Max-Age Malformed (Non-compliant with Spec): レスポンスがHTTPSで、HSTSヘッダーが存在するが、max-age ディレクティブの前に引用符がある場合 (引用符は max-age 値の周りでは許可されますが、ディレクティブ自体の周りでは許可されません)。
- Strict-Transport-Security Malformed Content (Non-compliant with Spec): レスポンスがHTTPSで、HSTSヘッダーが存在するが、予期しないコンテンツ (巻き引用符など) がある場合。 印字可能なASCIIであることが期待されます。
同じドメイン上のHTTPS URLへのリダイレクトは、Lowしきい値でのみ報告されます。
最新のコード: StrictTransportSecurityScanRule.java
アラートID: 10035
タイムスタンプの露見
アプリケーション/Webサーバーによってタイムスタンプが開示されました。
HIGHしきい値では、このルールはプラスまたはマイナス1年の範囲内にない潜在的なタイムスタンプではアラートを出しません。
HIGHしきい値では、このルールはJavaScriptファイル内のタイムスタンプを無視します。
MEDIUMしきい値では、このルールは10年を超える潜在的なタイムスタンプではアラートを出しません。
すべてのしきい値で、このルールはY2038エポックエッジを超えるタイムスタンプではアラートを出しません。
最新のコード: TimestampDisclosureScanRule.java
アラートID: 10096
ユーザーが制御可能な文字コード
このチェックは、クエリ文字列パラメータとPOSTデータのユーザー入力を調べて、Content-Type または meta タグの charset 宣言がユーザーによって制御される可能性がある場所を特定します。 このような charset 宣言は、常にアプリケーションによって宣言されるべきです。 攻撃者がレスポンスの charset を制御できる場合、HTMLを操作してXSSやその他の攻撃を実行できる可能性があります。
最新のコード: UserControlledCharsetScanRule.java
アラートID: 10030
ユーザーが制御可能なHTML要素属性 (XSSの可能性)
このチェックは、クエリ文字列パラメータとPOSTデータのユーザー入力を調べて、特定のHTML属性値が制御される可能性がある場所を特定します。 これは、XSS (クロスサイトスクリプティング) のホットスポット検出を提供し、悪用可能性を判断するにはセキュリティアナリストによるさらなるレビューが必要です。
最新のコード: UserControlledHTMLAttributesScanRule.java
アラートID: 10031
ユーザーが制御可能なJavaScriptイベント (XSS)
このチェックは、クエリ文字列パラメータとPOSTデータのユーザー入力を調べて、特定のHTML属性値が制御される可能性がある場所を特定します。 これは、XSS (クロスサイトスクリプティング) のホットスポット検出を提供し、悪用可能性を判断するにはセキュリティアナリストによるさらなるレビューが必要です。
最新のコード: UserControlledJavascriptEventScanRule.java
アラートID: 10043
ユーザー名ハッシュの検出
コンテキストに定義されたユーザーが含まれている場合、このスキャンルールはすべてのレスポンスでそれらのユーザー名を表すハッシュ値の存在をチェックします。
注: カスタムペイロードアドオンがインストールされている場合、カスタムペイロードオプションパネルで独自のUsername 文字列 (ペイロード) を追加できます。
パッシブスキャン時にレスポンス内でこれらもハッシュ化され検索されます。 ペイロード数が多いほど、パッシブスキャンに必要な時間が長くなることに注意してください。 (デフォルトのペイロードは "Admin" と "admin" です。)
このルールのカスタムペイロードカテゴリ: Username-Idor.
このような値の発見は、Insecure Direct Object Reference (IDOR) 脆弱性を表している可能性があります。 アラートは、影響を確認および評価するためにさらなる手動テストが必要なため、情報提供項目としてのみ発生します。
このスキャンルールはテキストレスポンスのみを分析します。
最新のコード: UsernameIdorScanRule.java
アラートID: 10057.
VIEWSTATE
VIEWSTATE パラメータを識別し、以下のようなさまざまなベストプラクティスや保護措置について分析しようとします:
- ASP.NET 1.0および1.1に基づくもの
- 署名が欠如しているVIEWSTATE
- 分割されたVIEWSTATE
- メールまたはIPパターンを含むVIEWSTATE
"MAC署名なしのViewstate (確信度: 低)" アラートは、LOWしきい値でのみ発生します。
最新のコード: ViewstateScanRule.java
アラートID: 10032
X-AspNet-Version レスポンスヘッダー
レスポンスヘッダーに X-AspNet-Version/X-AspNetMvc-Version の詳細が存在するかどうかをチェックします。
最新のコード: XAspNetVersionScanRule.java
アラートID: 10061
X-Backend-Server ヘッダーによる情報漏洩
レスポンスヘッダーに X-Backend-Server の詳細が存在するかどうかをチェックします。
最新のコード: XBackendServerInformationLeak.java
アラートID: 10039
X-ChromeLogger-Data (XCOLD) ヘッダーによる情報漏洩
レスポンスヘッダーに X-ChromeLogger-Data または X-ChromePhp-Data の詳細が存在するかどうかをチェックします。
最新のコード: XChromeLoggerDataInfoLeakScanRule.java
アラートID: 10052
X-Content-Type-Options
このスキャンルールは、Anti-MIME-Sniffing ヘッダーである X-Content-Type-Options をチェックし、'nosniff' に設定されていることを確認します。
MEDIUMおよびHIGHしきい値では、このルールはクライアントまたはサーバーエラーレスポンスやリダイレクトではアラートを出しません。
LOWしきい値では、エラーやリダイレクトを含むすべてのレスポンスでアラートを出します。
最新のコード: XContentTypeOptionsScanRule.java
アラートID: 10021
X-Debug-Token ヘッダーによる情報漏洩
レスポンスヘッダーに X-Debug-Token および X-Debug-Token-Link の詳細が存在するかどうかをチェックします。
これは、SymfonyのProfilerの使用/露出を示しています。 SymfonyのProfilerは悪意のある個人やセキュリティテスターにとって関心のある大量の情報へのアクセスを提供します。
最新のコード: XDebugTokenScanRule.java
アラートID: 10056.
古いZAPバージョン
このチェックは最新バージョンのZAPを使用していることを確認します。
ZAPのインストールが古い場合、各ドメインで1つのアラートが発生し、深刻度はバージョンがどれだけ古いかに基づいて設定されます。
- 1バージョン: 低リスク
- 2バージョン: 中リスク
- 3バージョン以上: 高リスク
- 1年以上: 高リスク (nightly ビルドや weekly リリースなど、日付スタンプされたバージョンの場合のみ)
最新のコード: ZapVersionScanRule.java
アラートID: 10116.