2025年10月13日 星期一

[研究]ASP.NET WebForm 網站用 AppScan 掃描發現【加密的階段作業 (SSL) Cookie 中遺漏安全屬性】

[研究]ASP.NET WebForm 網站用 AppScan 掃描發現【加密的階段作業 (SSL) Cookie 中遺漏安全屬性】

2025-10-13

********************************************************************************

同樣是 _fbp (Cookie) 問題,可參考這篇

[研究]ASP.NET WebForm網站用AppScan掃描發現【SameSite 屬性不安全、不適當或遺漏的 Cookie】
https://shaurong.blogspot.com/2025/10/aspnet-webformappscansamesite-cookie.html

********************************************************************************

ASP.NET WebForm 網站用 AppScan 掃描發現【加密的階段作業 (SSL) Cookie 中遺漏安全屬性】,誤判?

加密的階段作業 (SSL) Cookie 中遺漏安全屬性

嚴重性: 中

CVSS 評分: 6.5

實體: _fbp (Cookie)

風險: 有可能竊取在加密階段作業期間傳送的使用者和階段作業資訊 (Cookie)

原因: Web 應用程式會透過 SSL 傳送未受保護的 Cookie

修正: 新增 'Secure' 屬性至所有機密 Cookie

推論: AppScan 發現加密階段作業 (SSL) 使用不含 "secure" 屬性的 Cookie。

原始回應

HTTP/1.1 200 OK

Cache-Control: no-cache, no-store

Pragma: no-cache

Content-Type: text/html; charset=utf-8

Expires: -1

X-Frame-Options: SAMEORIGIN

X-XSS-Protection: 1; mode=block

X-Content-Type-Options: nosniff

Referrer-Policy: no-referrer

Strict-Transport-Security: max-age=31536000

Content-Length: 15123

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-Hant">

<head><title>

********************************************************************************

你提供的訊息主要說明 AppScan 或類似工具檢測到「SameSite 屬性不安全、不適當或遺漏的機密 Cookie」,並提示可能造成 CSRF 風險。根據你貼出的原始 HTTP 回應,我注意到幾點:

1.HTTP Header 沒有 Set-Cookie 範例

  • 你貼的回應裡只有一般安全相關 Header(X-Frame-Options、X-XSS-Protection、Strict-Transport-Security 等),沒有任何 Set-Cookie 項。
  • → 如果 AppScan 偵測到 _fbp 或其他 cookie,但在你整個專案 source code 搜尋不到這個字串,很可能是 第三方 JavaScript(例如 Facebook Pixel 或 Google Analytics)在瀏覽器端設置的 cookie,而不是你的 ASP.NET WebForm 自己生成的。

2.SameSite 屬性缺失與 CSRF

  • SameSite 屬性主要用於控制瀏覽器在跨站請求中是否傳送 cookie:
  • SameSite=Lax:大部分安全跨站行為允許,例如 GET 表單提交。
  • SameSite=Strict:完全阻止跨站 cookie。
  • 如果沒有設置 SameSite,部分瀏覽器可能仍會傳送 cookie,這可能被 CSRF 利用。
  • → 這並不表示你的網站直接有漏洞,但第三方 cookie 的缺失會被掃描工具列為「潛在風險」。

3.誤判可能性

  • 若你專案中完全沒有設置 _fbp 或其他第三方 cookie 的程式碼,且 HTTP Response 也沒有 Set-Cookie,那麼 AppScan 很可能 把第三方 cookie 的警告當成你的程式問題。
  • 這在實務上屬於 誤判,前提是你確定自己沒有生成該 cookie,也沒有敏感資料存放在它上面。

建議處理方式:

  • 在 AppScan 報告中註明「檢測到的 cookie 來自第三方服務,非本網站程式生成,屬誤判」。
  • 如果想進一步降低 CSRF 風險:
    • 確保你自己生成的敏感 cookie(登入憑證、SessionID)有 HttpOnly; Secure; SameSite=Lax/Strict。
    • 對重要表單使用 Anti-CSRF Token。

💡 總結:

  • 沒有在你的程式碼或 HTTP Header 找到問題 cookie → 可視為 AppScan 誤判。
  • 若要安全,可檢查第三方服務的 cookie 設定,但通常不直接影響你的網站核心安全。

********************************************************************************

Web.Config 有設定 SameSite ,以整個專案 Source Code 搜尋不到 _fbp 字串,當作 AppScan 誤判證據可以嗎 ? 

ChatGPT

可以,而且你的情況其實更明確支持「誤判」的結論。分析如下:

1️⃣ 判斷依據

1.Web.Config 已設定 SameSite

  • 代表你自己網站生成的 cookie(例如 Session、驗證票證)已正確設置 SameSite 屬性。
  • 這符合 CSRF 防護最佳實務。

2.整個專案 Source Code 搜尋不到 _fbp

  • _fbp cookie 是第三方服務(例如 Facebook Pixel)生成的,不屬於你的程式。
  • AppScan 可能誤將第三方 cookie 列為「機密 cookie SameSite 遺漏」,這是常見的 偵測誤判。

3.HTTP Response Header 沒有 Set-Cookie: _fbp

  • 進一步證明 _fbp 不是由伺服器端設置的敏感 cookie。

2️⃣ 安全性評估

  • 對你自己的 cookie:已設置 SameSite → 沒有 CSRF 風險。
  • 第三方 cookie:缺少 SameSite 不影響你的核心網站安全,但掃描工具可能仍報警。

3️⃣ 建議回應 AppScan

可以這樣說:

「掃描報告提到 _fbp Cookie SameSite 屬性遺漏,但本專案 Source Code 及 Web.Config 均未生成此 Cookie。經查 _fbp 為第三方服務生成,非本專案程式產生,且自有 cookie 已正確設定 SameSite 屬性,故此項為掃描誤判。」

✅ 結論

你完全可以以 Source Code 無 _fbp + Web.Config 已設 SameSite 作為證據,證明 AppScan 報告為誤判。

********************************************************************************

(完)

沒有留言:

張貼留言