資安JAVA(五):避免點擊綁架(clickjacking)

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 5 – CLICKJACKING PREVENTION
作者:John Melton
內文:
Do what we say so.
What is it and why do I care?

點擊綁架屬於 "web framing" 或 "UI redressing" 攻擊。實際上的流程如下:

1. 一個受害者正瀏覽無害的網頁(假設是影片網站)
2. 無害的網頁上層有另一個透明的網頁(通常是很重要的功能,像是社交網站中的加為好友)。
3. 受害者點擊他看到的影片,但實際上是點擊覆蓋在上層透明的網頁(通常是有害的)。

很聰明的攻擊方式,現實中的攻擊有很有意思(更多資訊請點選 這裡 )。

What should I do about it?

目前沒有完美的答案,不過請樂觀一點,因為瀏覽器越來越先進,相當程度的可以降低這類的問題。作者的建議分為兩方面:

1. X-Frame-Option HTTP header
作者未來將為 X-Frame 新增一系列的文章。目前 X-Frame header 算是很粗糙的設計,而且需要比較先進的瀏覽器才有支援。幸好大家漸漸的開始使用先進的瀏覽器,情況開始改善。

2. Frame Busting 加入 Frame Busting 的程式碼。就算別人 iframe 你,你的網站內容還是能爆發到最上層。這個方法雖然已被破解,作者仍建議你採用,因為可以提高攻擊的門檻。Standford 的研究者提出一篇文章 ─ Busting frame busting : a study of clickjacking vulnerabilities at popular sites,不僅分析目前廣為流傳的 Frame Busting 的程式碼,也示範如何破解他們。並在文章最後提出自己的程式碼( 第11頁)。

以下是他們方法的基本概念:
a. 以 css 取消整個網頁的 display 屬性(disable),然後
b. 以Javascript 控制頁面,若網頁被 iframe 則推送至最上層,若不是則啟用頁面的 display 屬性(enable)。

也許未來還是會被破解,但這是已知最好的方法。Clickjacking 是個不太容易界定的問題,但是結合其他方法你可以降低大部分的風險。
註:August Detlefsen 提出 一篇文章 解釋Frame Busting並不完全適用於 IE 。

參考資料
https://www.owasp.org/index.php/Clickjacking
http://seclab.stanford.edu/websec/framebusting/
http://michael-coates.blogspot.com/2010/08/x-frame-option-support-in-firefox.html
https://www.codemagi.com/blog/post/194
———–———–
資安Java: 上一篇 || 下一篇
———–———–

留言

這個網誌中的熱門文章

資安JAVA(八):HTTP強制傳輸安全(HSTS)

以 SharpPcap 實作可收聽封包的 C# 程式

資安JAVA(四):Session Cookie HTTPOnly Flag