Closed14

初めての CASA Tier2 の動的スキャン(ZAP)で CWE-524 について指摘された件について

ピン留めされたアイテム
snakasnaka

最終結論 (2024-01-18)

該当アプリケーションにおいて検出された CWE-524 (Non-Storable Content) は False Positive であるという主張が認められた。

現時点での結論 (2024-01-08)

よくよく調べた結果、該当アプリケーションに対する CWE-524 については False Positive であると判断して、アプリケーション側での対応はなしとするという対応となった。

snakasnaka

CASA Tier2 について

CASA って

意訳: Web アプリケーションが一般的なセキュリティ要件にちゃんと対応していることを評価するためのプロセス(?)

https://appdefensealliance.dev/casa?hl=en

Tier2 って?

評価方法によって Tier1 〜 3 まであって、数字が大きいほうがそのアプリケーションの信頼度が高くなるようです。

https://appdefensealliance.dev/casa/casa-tiering?hl=en

どの Tier を要求するかは、Google などのプラットフォーマーが決定するようです。

snakasnaka

CWE について

Common Weakness Enumeration の略。

https://cwe.mitre.org/

一般的なソフトウェアやハードウェアの脆弱性が、列挙・分類されているリスト。
CASA が要求するセキュリティ項目はこの CWE をベースとして、それら脆弱性に対応できているかをチェックすることになる。

snakasnaka

ZAP での診断結果

snakasnaka

この Solution を見ても、はっきり言って何を対応したら良いかわからない。
そもそも、 Informational なので対応する必要無いのでは?とすら思われるが、レポートの提出後に 「CWE-524 の問題が未対応である」という旨のメールが返ってきた。

snakasnaka

CWE-524 について

CWE-524 はキャッシュに関する脆弱性。

よくある、ユーザー固有の機微な情報がキャッシュに乗ってしまうことで、必要とする以上の範囲に情報が共有されるケースなどを指している。

https://cwe.mitre.org/data/definitions/524.html

snakasnaka

しかし、それに対して ZAP で上がってきた Alert (Informationalなので厳密にはAlertでも無いが) は逆に、「キャッシュされない」ことに対しての指摘だった。

The response contents are not storable by caching components such as proxy servers. If the response does not contain sensitive, personal or user-specific information, it may benefit from being stored and cached, to improve performance.

snakasnaka

ZAP で報告されているURLは、認証済みかどうかによって応答結果が変わるものであるため、 no-store, private がセットされていてキャッシュされないように考慮されていたものだった。

snakasnaka

セキュリティ的配慮で no-store, private を設定していることに対し、キャッシュが共有されることを起因とした脆弱性 (CWE-524) の可能性を指摘される、という意味のわからない状況となる。

snakasnaka

Plugin ID: 10049 について

ZAP は Plugin という形で脆弱性スキャンの Rule を組み込むようになっているらしい。

https://www.zaproxy.org/docs/alerts/10049/

1 つの Plugin には複数の Alert を含む場合があるらしい。 10049 には 3 種類の Alert が含まれていた。

  • 10049-1 Non-Storable Content
  • 10049-2 Storable but Non-Cacheable Content
  • 10049-3 Storable and Cacheable Content
snakasnaka

Non-Storable Content

今回上がってきたのは Non-Storable Content

https://www.zaproxy.org/docs/alerts/10049-1/

このページから何か対応方法がわかるかも?とおもったがやはり対応方法は不明だった。
セキュリティ観点の診断のはずなのに、パフォーマンス向上の観点での話が出てきて混乱させられる...

また、複数の条件が列挙されてて、And 条件 Or 条件がどれにかかってくるのかが非常に読み取りづらい。

snakasnaka

その結果、 レスポンスの Cache-Controle ヘッダに privateno-store が含まれている場合、この Alert を出していることが判明する。 (アプリケーション側で意図的にそうしているので、脆弱性に該当しないという認識)

snakasnaka

この指摘が False Positive という主張は認められたらしいのでクローズする。

このスクラップは3ヶ月前にクローズされました