iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0
Security

企業端點完美防禦系列 第 23

《企業端點完美防禦》23-Cookie 是什麼?它們危險嗎?

  • 分享至 

  • xImage
  •  

Cookie 並不是我們通常所認知的惡意軟體感染「威脅」。Cookie 本質上是文字檔,本身無害,也無法被執行以造成任何損害。Cookie 不會產生彈出式視窗、不會安裝惡意軟體,也無法刪除或讀取電腦中的資訊。有時在翻譯不好的軟體會直接翻成「餅乾」,所以有時我會和同事說:清理小餅乾解決問題 XD。


清理餅乾 + 快取可以治好鼎新系統異常9成9問題

Cookie 是由網頁伺服器傳送給網頁瀏覽器的文字字串訊息。每當你造訪網站,或使用瀏覽器瀏覽不同頁面時,網站都會產生一組唯一的工作階段識別碼(Session ID)。瀏覽器會將這組識別碼儲存在文字格式的 Cookie 檔案中;之後每當瀏覽器向該伺服器要求頁面時,便會將 Cookie 傳回伺服器。

Cookie 基本上是在使用者造訪網站時,寫入硬碟的一小段資訊。網站會利用 Cookie 追蹤並記錄使用者瀏覽網站時的偏好。之後,網站及網頁伺服器可以再次取得 Cookie,用於驗證使用者身分、加快交易流程、監控使用者行為、簡化使用體驗、追蹤個人資訊、自動填入網頁表單中的個人資料等用途。

Cookie 是否構成安全風險?

Cookie 是網頁伺服器用來協助識別網路使用者的短小資料片段。大眾對 Cookie 能做什麼的觀念與傳言,已被渲染到近乎神祕的程度,因而讓使用者感到恐懼,也令管理者擔憂。

延伸閱讀

Cookie 的主要用途,是識別使用者,並為其準備客製化網頁,主要分為兩種類型:

1. 持久性 Cookie(Persistent Cookies)

持久性 Cookie 用於在多次造訪網站之間保存資訊,並蒐集能識別使用者的資料,例如瀏覽行為或對特定網站的偏好。

簡單來說,這類 Cookie 可協助網站在你再次造訪時記住你及你的設定。網頁伺服器傳送 Cookie 時,會設定到期日;Cookie 會儲存在使用者的硬碟中,直到到期或遭到刪除為止,例如有些網站的「保持登入」選項,勾選後就不會將你登出。

2. 工作階段 Cookie(Session Cookies)

工作階段 Cookie 又稱暫時性 Cookie(Transient Cookies)或非持久性 Cookie(Non-persistent Cookies),用於在瀏覽網頁期間,暫時以工作階段識別碼的形式將資訊保存在記憶體中。

這類 Cookie 只會在使用者造訪發出該 Cookie 的網頁伺服器期間暫存;當使用者關閉工作階段後,Cookie 就會從快取中刪除。工作階段 Cookie 不會儲存到硬碟,因為它們只存在於單次工作階段中、不蒐集任何資訊,也沒有固定的到期日。

Cookie 的分類

  • 可信任 Cookie(Trusted Cookies):來自你信任且經常使用的網站;你願意讓這些網站識別你,並為你提供個人化內容。
  • 干擾性 Cookie(Nuisance Cookies):來自你不認識或不常使用的網站,但這些網站仍以某種方式將 Cookie 放到你的電腦上。
  • 不良 Cookie(Bad Cookies):例如持久性 Cookie、長期 Cookie 及第三方追蹤 Cookie。這些 Cookie 可能與廣告公司或其他追蹤你網路活動的服務有關。

追蹤型 Cookie 與隱私風險

較令人擔憂的一類持久性 Cookie 是「追蹤型 Cookie(Tracking Cookies)」,因為它們可能造成隱私風險。

這類 Cookie 用於追蹤你的網頁瀏覽習慣,以及你在不同網站之間的移動情形。廣告公司會利用它們記錄你在所有刊登其廣告之網站上的活動,包括:

  • 計算你造訪某個網頁的次數。
  • 儲存使用者名稱及密碼,讓你不必重複登入。
  • 保留自訂設定。
  • 記錄你曾造訪哪些網站。
  • 記錄你曾點擊哪些廣告。

當你造訪個網站時,網頁跳出提醒說明會利用 Cookie 追蹤使用習慣等等,就屬於這種。這類 Cookie 會被放置到你的電腦中,每當你造訪另一個刊登相同廣告商廣告的網站時,該 Cookie 就會再次被讀取。久而久之,廣告商便能建立一份清單,掌握你造訪過哪些網站,以及點擊過哪些廣告。

由於 Cookie 一定會被傳回最初建立它的網站,因此,只要你造訪的網站也使用同一個廣告商,該廣告商的 Cookie 就會被傳回給廣告商。這使廣告商能夠追蹤你造訪的網站,並根據你所造訪的網站類型投放定向廣告。

網站在線上追蹤你的多種方式

廣告聯播網通常利用追蹤技術建立詳細的使用者輪廓,以進行精準廣告投放。

廣告商使用 Cookie 追蹤你造訪的網站

Cookie 在整個網際網路上被廣泛使用。當瀏覽器載入廣告公司的橫幅廣告時,廣告公司經常會將 Cookie 儲存(下載)到你的電腦中。

此外,網頁從多個不同來源載入內容是很常見的。因此,即使你沒有直接造訪其他網站,單一網頁仍可能從許多不同網站取得內容及 Cookie。

特殊類型的 Cookie 與追蹤技術

Flash Cookie(本機共用物件)

Flash Cookie,又稱本機共用物件(Local Shared Objects),是一種儲存在電腦中的類 Cookie 資料,供各版本的 Adobe Flash Player 及類似應用程式使用。

Flash Cookie 可以儲存比傳統瀏覽器 Cookie 更多的資訊,通常會以 .SOL 副檔名儲存在各使用者的「Application Data」目錄中。

與傳統 Cookie 不同,Flash Cookie 無法透過瀏覽器控制項管理,因此更難被找到及移除。不過,使用者可以透過 Adobe 支援網站的「網站儲存設定」面板查看、管理及刪除 Flash Cookie。透過該面板,可以:

  • 變更特定網站的儲存設定。
  • 刪除特定網站的資料。
  • 刪除所有網站資料,清除可能已儲存在電腦中的資訊。

若要防止電腦儲存 Flash Cookie,可前往「全域儲存設定」面板,取消勾選「允許第三方 Flash 內容在你的電腦上儲存資料」。隨著 Flash 滅亡,這類型的 Cookie 也不復存在。

Adobe改善Flash隱私功能

延伸閱讀

超級 Cookie(Supercookies)

超級 Cookie 並不是真正的 Cookie,但與追蹤型 Cookie 類似,都是用來追蹤線上行為的技術,而且不依賴 HTTP Cookie。

超級 Cookie 更難被偵測及移除,因為瀏覽器原本並不是設計來儲存這類資料。換句話說,超級 Cookie 不會儲存在一般瀏覽器的 Cookie 儲存位置中,而可能隱藏在瀏覽器快取內。快取是儲存在本機電腦上的暫存資料,讓使用者再次造訪相同網站時,不必重新下載所有資料。

殭屍 Cookie(Zombie Cookies)

殭屍 Cookie 是超級 Cookie 的一種類型,指 HTTP Cookie 在被刪除後,又從儲存在瀏覽器專用 Cookie 儲存區以外的備份中重新建立。

由於殭屍 Cookie 隱藏在瀏覽器正常 Cookie 儲存區之外,而且會持續被重新建立,因此非常難以刪除。

Evercookie

Evercookie 由研究員 Samy Kamkar 開發,是一個可用的 JavaScript API,可在瀏覽器中產生持久性極高、極難移除的 Cookie。它的目標是,即使用戶端已刪除標準 Cookie、Flash Cookie(Local Shared Objects,LSO,本機共用物件)及其他 Cookie,仍然能夠識別該用戶端。

evercookie 透過將 Cookie 資料儲存在本機瀏覽器可用的多種儲存機制中來達成此目的。此外,如果 evercookie 發現使用者已刪除任何相關類型的 Cookie,它會利用所有可用的機制將這些 Cookie 重新建立。

具體而言,建立新的 Cookie 時,若下列儲存機制可用,它會使用:

  • 標準 HTTP Cookie
  • HTTP 嚴格傳輸安全性(HSTS)固定(Pinning)
  • 本機共用物件(Flash Cookie)
  • Silverlight 隔離儲存體
  • 將 Cookie 儲存在自動產生且強制快取的 PNG 之 RGB 值中,並使用 HTML5 Canvas 標籤讀回像素(Cookie)
  • 將 Cookie 儲存在瀏覽歷史記錄中
  • 將 Cookie 儲存在 HTTP ETag 中-將 Cookie 儲存在 Web 快取中
  • window.name 快取
  • Internet Explorer userData 儲存
  • HTML5 Session Storage(工作階段儲存)
  • HTML5 Local Storage(本機儲存)
  • HTML5 Global Storage(全域儲存)
  • 透過 SQLite 的 HTML5 Database Storage(資料庫儲存)
  • HTML5 IndexedDB
  • Java JNLP PersistenceService
  • Java CVE-2013-0422 漏洞利用(逃逸 Applet 沙箱)

延伸閱讀

Cookie 被攻擊者濫用時的安全風險

資安相關研究顯示,Cookie 可能被利用,使遠端攻擊者繞過安全通訊協定 HTTPS,並揭露私人工作階段資訊。問題並不是 Cookie 本身有害,而是攻擊者如何濫用 Cookie。

Cookie Poisoning(Cookie 毒化)

Cookie Poisoning 是各種操控有效 HTTP Cookie 或工作階段 Cookie 攻擊的統稱,包括偽造、修改、復原或劫持 Cookie。

攻擊者可能持續操控 Cookie。當網站的安全基礎架構不完善時,這種手法可能導致受害者及網站的敏感資料遭到入侵。Cookie Poisoning 可能讓攻擊者未經授權存取受害者帳戶,並竊取或濫用其資訊。

Cookie Injection Attack(Cookie 注入攻擊)

Cookie 注入攻擊可能由中間人攻擊者(Man-in-the-Middle, MITM)發動。攻擊者會在入侵工作階段的過程中設定 Cookie,以利揭露該工作階段中所傳輸的私人資料。

與中間人攻擊相關的 Cookie 毒化方式包括:

  • SSL Stripping(SSL 降級):攻擊者誘使網頁應用程式捨棄 HTTPS 連線,改用不安全的 HTTP 通訊協定,使封包側錄成為可能。
  • SSL Hijacking(SSL 劫持):攻擊者為網頁應用程式產生偽造的 SSL 憑證,使受害者在沒有收到任何憑證警告的情況下,連線到由攻擊者控制的複製版或代理應用程式。
  • DNS Cache Poisoning(DNS 快取毒化):攻擊者誘使受害者的 DNS 快取儲存遭竄改的網域資訊,使受害者的瀏覽器被導向由攻擊者控制的複製版或代理應用程式。

跨網站指令碼攻擊(Cross-Site Scripting, XSS)

XSS 是存取及操控 Cookie 資料的一種方式。

攻擊者找到存在 XSS 注入弱點的可信任網站後,會將惡意 JavaScript 插入該網站。惡意指令碼可以存取瀏覽器為該網站保存的 Cookie、工作階段權杖或其他敏感資訊,使攻擊者取得所有瀏覽該頁面者的工作階段 Cookie。

XSS 攻擊類型包括:

  • 反射型 XSS(Reflected XSS):惡意指令碼來自目前的 HTTP 請求。應用程式接收 HTTP 請求中的資料,並以不安全的方式將資料直接包含在即時回應中。
  • 儲存型 XSS(Stored XSS):惡意指令碼來自網站資料庫。應用程式從不可信任的來源接收資料,並以不安全的方式將資料包含在之後的 HTTP 回應中。
  • DOM 型 XSS(DOM-based XSS):弱點存在於用戶端程式碼,而不是伺服器端程式碼。應用程式中的用戶端 JavaScript 以不安全的方式處理來自不可信任來源的資料。

工作階段劫持與 Cookie 劫持

近年來,工作階段劫持(Session Hijacking)或 Cookie 劫持(Cookie Hijacking)日益受到關注,原因是人們每天登入的網站數量愈來愈多。

當你登入網站時,伺服器會設定一個暫時性的工作階段 Cookie,使瀏覽器能識別你已登入,並讓你在網站上維持已驗證狀態。

常見攻擊方式

  • 工作階段劫持(Session Hijacking):駭客竊取受害者唯一的工作階段識別碼,並在受害者仍登入系統時,於相同網路中模仿該使用者的 Cookie。
  • 工作階段冒用(Session Spoofing):與工作階段劫持類似,但發生於受害者未登入時;攻擊者使用竊取的帳號憑證登入受害者帳戶。
  • 工作階段固定攻擊(Session Fixation):攻擊者提供預先設定的工作階段識別碼,通常透過網路釣魚郵件,誘騙受害者點擊惡意連結,並使用該識別碼登入存在弱點的網站。若網站允許登入,攻擊者便可利用已知的識別碼劫持使用者工作階段。當受害者登入金融機構、商店或其他安全網站時,攻擊者取得工作階段後,便能執行受害者登入後可進行的任何操作。
  • 工作階段預測(Session Prediction):利用特定網站產生工作階段識別碼方式中的弱點。若產生程序不夠隨機,且攻擊者掌握其演算法,就能產生有效的工作階段識別碼。若識別碼過短,攻擊者甚至可能透過暴力破解猜出可用於驗證的有效識別碼。

惡意擴充元件可以竊取 Cookie 繞過多因素驗證:研究人員揭露以惡意瀏覽器擴充程式,繞過雲端平臺MFA驗證的Cookie-Bite手法

Sophos 威脅研究的說明

Sophos 報告指稱主動攻擊者越來越常利用竊來的工作階段 Cookie 繞過多因素驗證以存取公司資源

降低工作階段及 Cookie 劫持風險

若要降低工作階段或 Cookie 劫持風險:

  • 避免登入免費公共 Wi-Fi,尤其是沒有密碼保護的網路。
  • 當工作階段未使用時,啟用自動登出功能。

若要降低 Cookie 注入攻擊風險,可採取以下措施:

  • 完整部署 HSTS 保護。
  • 使用頂級網域及共用網域的 Public Suffix List
  • 採用防禦性 Cookie 實務,例如頻繁使 Cookie 失效。
  • 使用異常偵測,確認狀態管理設定仍然有效。

延伸閱讀

Cookie 管理建議

只要你使用網際網路,就一定會收到 Cookie;部分資安程式也會將它們標示為需要移除的項目。

反惡意軟體掃描工具還有更重要的威脅需要檢查,因此建議停用搜尋 Cookie 的選項,這也能縮短掃描所需時間。

若要減少電腦中儲存的 Cookie 數量,可以:

  • 使用第三方磁碟清理工具,但不要使用所謂的系統最佳化工具。
  • 使用 Cookie 管理工具,我推薦 Privacy Badger
  • 設定關閉瀏覽器就清除 Cookie。

更多資源


上一篇
《企業端點完美防禦》22-暴力破解勒索軟體加密金鑰所需的數學運算、時間與所需資源
系列文
企業端點完美防禦23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言