2011年3月14日 星期一

上網安全之Cookie/Session (Surfing Secure for Cookie/Session)

Cookie/Session 不注意,無法確保網路身份遭到冒用或濫用。

這個議題很嚴重,但卻沒人注意問題的嚴重性。目前主流的瀏覽器都有所謂「Tab」功能,IE 稱為「索引標籤」、Chrome & FireFox稱為「分頁」、Safari還用到兩個名稱「索引標籤」與「標籤頁」。要特別注意,目前這些新版瀏覽器,只要是同類瀏覽器,不管你開啟幾個視窗或幾個「Tab」,預設來說都會擁有相同的 Cookie/Session 身份,因為對於系統來說,預設它們都處於一個相同的 Process上。這跟早期的瀏覽器運作很不一樣,早期一個瀏覽器視窗會有獨立的 Process,因此,Cookie/Session 身份很容易切割。

這會帶來甚麼問題呢?看看下圖。如果已經在一個「Tab」登入了 MSN,這時另外一個「Tab」登入 FB 之後,如果點擊了「尋友工具」,會有甚麼結果呢?


答案是:FB 會自動到把 MSN 的好友清單,匯出到 FB 的邀請朋友清單中,進行邀請朋友的動作,過程中並不需要輸入 MSN 的帳號密碼。問題就來了,你知道你目前正以哪一個身份瀏覽該網站嗎?這也是網友該了解的一個基本觀念,否則,無法確保身份遭到冒用或濫用。

如果要在同一瀏覽器下切割「視窗」或「Tab」使用不同身份,可以 google 搜尋關鍵字:「多重帳號同時登入」,可以找到一些方法,已經有很多網友提供意見,其中最方便使用的是 FireFox 的 CookiePie 套件,可以用「Tab」來切割,這點很重要,因為其它很多類似的 Cookie 管理工具並沒有「Tab」的概念存在;其他比較簡單的是 IE,只需在啟動捷徑上加入參數"-nomerge",這樣Cookie/Session 身份可以限制在「同一個 IE視窗」。


最簡單的方式,就是不改預設狀況下,使用不同瀏覽器來切割,但我相信這方式應該無法滿足絕大多數的網友。現今來說,瀏覽器一開,登入五、六個帳號以上大概是基本動作了,而這兩年社群網站的興起,更增加許多網站的彼此互動性,如「推」、「讚」、「噗」、「分享」…等,如下圖,這些動作都與 Cookie/Session 身份有莫大的關係。當然,大部分的網站是不會惡意利用,但,遇到釣魚網站或惡意網站,可能結果就不會如網友預期的結果。


之前也有針對臉書的攻擊行動,可參考「Facebook 出現點閱綁架(Clickjacking)之攻擊手法分析」一文,其中攻擊過程就有使用到跨視窗 Cookie/Session 的。國外稱此為「Likejacking」攻擊手法。

最近,很多網站流行要按「讚」才看得到文章的網站。臉書上也有人發起「要按讚才能觀看嗎?拒絕強迫按讚」的活動,這類都是一種身份濫用的狀況,利用你的身份來推銷文章,很多時候這些文章一點意義也沒有...XD。預期未來這類狀況會越來越嚴重。

另外,分享對 FireFox 之 CookiePie 套件使用經驗,此套件在部分網站上會導致驗證不過的問題,或導致一些瀏覽瑕疵。所以我倒過來使用的,也就是說看到 CookiePie 運作下時,該瀏覽過程是沒有 Cookie/Session 身份在瀏覽器的「Tab」中,如下圖,先開啟空白的「Tab」,再開啟CookiePie 運作,使該「Tab」沒有 Cookie/Session 身份在其中,在此進行一般上網瀏覽的行為。


完整文章亦投稿於「資安人雜誌,2011. Jan/Feb. No.73,你的上網行為安全嗎?」

2 則留言:

wonder 提到...

Google Chrome on Windows XP 在開啟時如果只有一分頁是 2 processes,新開分頁變 3 processes,但分頁間應該還是有共用 Cookie/Session

Crane_Ku 提到...

Chrome運作方式比較特別,如果直接由"工作管理員"看似乎自有Process,但實際上,其中一個Process是"Parent",由這Process再生出其他Tab的Process,可以用Process Explorer工具(http://technet.microsoft.com/en-us/sysinternals/bb896653)看,會比較清楚。