掃描結果詳細資料

本頁面說明 Cloud Security Scanner 掃描結果的詳細資訊。

安全漏洞類別

Cloud Security Scanner 會偵測下列類別的安全漏洞:XSS、Flash 植入、混合式內容、純文字密碼,以及不安全的 JavaScript 資料庫使用行為。如果系統偵測到上述任何類別的安全漏洞,就會醒目顯示相關結果,方便您深入研究。

findingType 字串值

下表說明在 Cloud Security Scanner 的 Finding 資源中,findingType 欄位的有效字串值。Finding 資源代表系統在執行 ScanRun 期間找到的安全漏洞執行個體,以及可讓您判斷該安全漏洞類型的 findingType 欄位。

當 Google Cloud Platform 加入新的安全漏洞類型時,便會引進新的 findingType 值,而當這種更新發生時,現有的 API 可能不會隨之更新。不過,只要有新的「findingType」值出現,本頁面就會更新。如果有效值清單有所變更,我們都會在「版本資訊」頁面中註明。

findingType 字串 說明
MIXED_CONTENT 以 HTTPS 提供的網頁同時也會透過 HTTP 載入資源。攔截式攻擊者可能會竄改 HTTP 資源,並取得載入該資源網頁或監控使用者行動的完整權限。
OUTDATED_LIBRARY 內建資料庫的版本確實有安全性問題。掃描工具會根據已知的安全漏洞資料庫清單檢查使用中的資料庫版本。如果版本偵測失敗或已透過手動方式修補資料庫,則可能會發生系統誤判。
ROSETTA_FLASH 舉例來說,在使用 JSONP 發出的要求中,如果回應開頭反映出要求參數值,就會發生這種類型的安全漏洞。在特定情況下,攻擊者可在有安全漏洞的參數中提供名稱僅包含英數字元的 Flash 檔,藉此讓瀏覽器判定該 Flash 檔來自您的伺服器 (但此伺服器有安全問題) 而加以執行。
XSS_CALLBACK 透過 JavaScript 回呼找到跨網站指令碼攻擊 (XSS) 錯誤。如需 XSS 的詳細說明,請參閱 https://www.google.com/about/appsecurity/learning/xss/。
XSS_ERROR 由於 JavaScript 故障而發生潛在的跨網站指令碼攻擊 (XSS) 錯誤。在某些情況下,測試中的應用程式可能會在瀏覽器剖析該應用程式之前,就先修改了測試字串。當瀏覽器嘗試執行修改過的測試字串時,很可能會故障,並傳回 JavaScript 執行錯誤,進而發生植入問題。然而,攻擊者可能無法利用這個漏洞。您必須手動驗證,看看是否能避免測試字串遭到修改,同時確認這其實是 XSS 安全漏洞的問題。如需 XSS 的詳細說明,請參閱 https://www.google.com/about/appsecurity/learning/xss/。
CLEAR_TEXT_PASSWORD 應用程式使用純文字格式傳輸密碼欄位。攻擊者可能會攔截網路流量並竊取密碼欄位。
INVALID_CONTENT_TYPE 應用程式所傳回機密內容的內容類型無效,或是沒有「X-Content-Type-Options: nosniff」標頭。
XSS_ANGULAR_CALLBACK 當 Angular 內插使用者提供的字串時,AngularJS 模組會發生跨網站指令碼攻擊 (XSS) 的安全漏洞。
INVALID_HEADER 格式錯誤或擁有無效值的標頭。
MISSPELLED_SECURITY_HEADER_NAME 安全性標頭名稱拼字有誤。
MISMATCHING_SECURITY_HEADER_VALUES 重複的安全性標頭中的值不相符。
ACCESSIBLE_GIT_REPOSITORY 掃描作業發現可存取的 Git 存放區。
ACCESSIBLE_SVN_REPOSITORY 掃描作業發現可存取的 SVN 存放區。

跨網站指令碼攻擊

Cloud Security Scanner 跨網站指令碼 (XSS) 植入測試會將一段無害的測試字串插入至可供使用者編輯的欄位,並執行各種使用者動作,藉以模擬植入攻擊行為。自訂偵測工具會在測試期間觀察瀏覽器和 DOM,以判斷植入行為成功與否,並評估導致惡意利用的可能性。

如果執行字串內含的 JavaScript 執行無礙,系統即會啟動 Chrome 偵錯工具。

下列是有安全漏洞的參數 q= 的 XSS 警告示例。

由於測試字串可執行,因此我們現在確知可在此頁面中植入及執行 JavaScript。如果攻擊者發現此問題,則攻擊者鎖定的使用者 (即受害者) 按下惡意連結時,就會執行攻擊者選定的 JavaScript。

某些情況下,處於測試狀態的應用程式可能會修改測試字串,然後再由瀏覽器加以剖析。舉例來說,應用程式可能會驗證輸入內容,或限制欄位的大小。瀏覽器嘗試執行此修改後的測試字串時,可能會中斷並擲回 JavaScript 執行錯誤。這表示發生了植入問題,但不一定具有弱點。您必須手動驗證,確認能否規避測試字串修改,並確認此問題是否確實為 XSS 安全漏洞。

有多種不同方式可修正此問題。建議的做法是使用支援上下文自動逸出的範本系統,逸出所有的輸出內容。

Angular 跨網站指令碼攻擊

當 Angular 內插使用者提供的字串時,AngularJS 模組可能會發生 XSS 安全漏洞。將使用者提供的值植入AngularJS 內插類型時,可能會導致下列攻擊行為得以成功:

  • 攻擊者可將任意程式碼植入由瀏覽器轉譯的頁面。
  • 攻擊者可在頁面的來源代表受害者瀏覽器執行動作。

下列的損壞警告示例顯示了 Angular XSS 的植入問題。

如要重現此潛在安全漏洞,請在執行掃描後,按照 Google Cloud Platform 主控台中的重製網址連結的指示操作。此連結會直接開啟警告對話方塊,或是插入「XSSDETECTED」字串,藉以證明攻擊行為可執行程式碼。在此插入案例中,您可開啟瀏覽器的開發人員工具,然後搜尋「XSSDETECTED」來找出插入內容的確切位置。

Flash 植入

Cloud Security Scanner 可尋找反映至回應開頭的參數,也稱為 Rosetta Flash。在特定情況下,攻擊者可能會佯裝為易受安全漏洞攻擊網路應用程式所提供的 Flash 檔案,讓瀏覽器執行回應。

下列是參數 callback= 的 Flash 植入警告示例。

如要修正此問題,請勿在 HTTP 回應開頭加入可供使用者控制的資料。

混合式內容

在 HTTPS 頁面內容中,透過 HTTP 執行 JavaScript 或 CSS 檔案要求時,Cloud Security Scanner 會以被動方式觀察 HTTP 流量並執行偵測。

下列是 HTTPS 頁面中的混合式內容警告示例 attribute_script,內有來自 http://irrelevant.google.com 的 HTTP 資源。

如要修正此問題,請使用相對的 HTTP 連結,例如將 http:// 替換為 //

舊版資料庫

Cloud Security Scanner 可能會發現內建資料庫的版本確實有安全性問題。此種簽署型掃描工具會嘗試識別所用資料庫的版本,並檢查是否符合已知含有安全漏洞資料庫的清單。如版本偵測失敗或已透過手動方式修補資料庫,則可能會發生系統誤判。

下列是因使用 jquery-1.8.1.js 而產生舊版資料庫警告的示例。

請更新為已知安全版本的內建資料庫,以修正此問題。

純文字密碼

Cloud Security Scanner 可能會發現應用程式似乎是以純文字格式傳輸密碼欄位。

如要保護在用戶端與伺服器間傳送的機密資訊,請採取下列預防措施:

  • 使用 TLS/SSL 憑證。
  • 在包含密碼欄位的頁面上一律使用 HTTPS。
  • 確認表單動作屬性一律指向 HTTPS 網址。

Content-Type 標頭無效

Cloud Security Scanner 可能會發現載入的資源與回應的 Content-Type HTTP 標頭不符。

以下是無效 Content-Type 標頭警告的示例。

如要修正此安全漏洞,請務必做到以下事項:

  • 透過 Content-Type 標頭 application/json 提供 JSON 回應
  • 透過適當的 MIME 類型提供其他敏感回應
  • 透過 HTTP 標頭 X-Content-Type-Options: nosniff 提供內容

無效的安全性標頭

Cloud Security Scanner 可能會發現到安全性標頭語法錯誤,瀏覽器會因此忽略標頭。

以下是發現到無效安全性標頭的示例。

Referrer-Policy 標頭

有效的參照網址政策會包含下列其中一個值:空白字串、no-referrerno-referrer-when-downgradesame-originoriginstrict-originorigin-when-cross-originstrict-origin-when-cross-originunsafe-url

X-Frame-Options 標頭

有效的 X-Frame-Options 標頭僅可具有值 DENY (不允許所有框架)、SAMEORIGIN (如頂層網址為相同來源,則允許框架) 或 ALLOW-FROM URL。請注意,Chrome 不支援 ALLOW-FROM URL。亦請注意,不允許使用多重 X-Frame-Options。

X-Content-Type-Options 標頭

有效的 X-Content-Type-Options 標頭僅可具有單一值:nosniff

X-XSS-Protection 標頭

有效的 X-XSS-Protection 標頭必須以 0 (「停用」) 或 1 (「啟用」) 開頭。此外,只有在啟用保護時,可新增最多兩個選項:mode=block 會顯示空白頁面而不會篩選 XSS,且report=URL 會傳送報告至 URL。選項必須以分號區隔,如此處所示:1; mode=block; report=URI。請不要使用尾隨分號。

安全性標頭名稱拼字有誤

Cloud Security Scanner 可能會發現安全性標頭名稱拼字有誤。如安全性標頭拼字有誤,則安全性標頭會無效且必須修正。

以下是發現安全性標頭名稱拼字有誤的示例。

如要重現此安全漏洞,請在瀏覽器的開發人員工具網路分頁中,檢查拼字是否有誤。

安全性標頭值不相符

Cloud Security Scanner 可能會發現重複且與安全性相關的回應標頭 (具有衝突值)。如在回應中使用不相符的值執行兩次宣告,部分與安全性相關的 HTTP 標頭就會出現未定義的行為。

以下是發現安全性標頭值不相符的示例。

如要修正此安全漏洞,請只保留其中一個不相符的標頭。

可存取的存放區

Cloud Security Scanner 可能會在應用程式中發現可存取的 Git 或 SVN 存放區。這可能會導致設定和原始碼外洩。

以下是可存取 Git 存放區發現項目的示例。

如要重現安全漏洞,請按一下發現報告中的重製網址。

驗證問題

如 Cloud Security Scanner 回報問題,您必須驗證問題位置。請使用已關閉 XSS 保護的瀏覽器執行此動作。建議您使用個別的 Chrome 測試執行個體,但您可使用最新的瀏覽器來停用 XSS 保護。

在 Chrome 中停用 XSS 保護:

  • 如果使用的是 Linux,請叫用 Linux Chrome 指令,如下所示:

    chrome --user-data-dir=~/.chrometest --allow-running-insecure-content \ --disable-xss-auditor --disable-sync --bwsi

  • 如果使用的是 Mac OSX,請叫用 Chrome 指令,如下所示:

    open -n /Applications/Google\ Chrome.app/ --args --disable-xss-auditor \ --user-data-dir=/tmp/xssrepro

請注意,強制執行「內容安全性政策」(CSP) 可能仍會使 JavaScript 程式碼無法運作,如此會更加難以重現XSS。如果遇到此問題,請檢查瀏覽器記錄主控台,以取得關於發生 CSP 違規行為的詳細資訊。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Security Scanner 說明文件