Your SlideShare is downloading. ×
0
Taien內部資安講座 III用戶端攻擊與防禦2013.02.05 @ Hiiir Inc.Taien Wang<taien_wang@hiiir.com>英屬維京群島商時間軸科技股份有限公司新創事業部
大綱• 現有瀏覽器安全設計• 跨網站腳本(XSS)• 跨網站請求偽造(CSRF)• 點擊綁架(ClickJacking)• HTML5安全• OWASP相關檢測項目
現有瀏覽器安全設計• 沙盒– 外掛程式獨立運行• 跨網站腳本篩選器• 惡意網站過濾– SmartScreen– 惡意程式列表• PhishTank - http://www.phishtank.com/• Google SafeBrowsing...
沙盒• http://www.youtube.com/watch?feature=player_embedded&v=29e0CtgXZSI
跨網站腳本篩選器(1/2)攻擊語法 <IMG SRC=“javascript:alert(document.cookie+, ThisXSS Attck);”>
跨網站腳本篩選器(2/2)攻擊語法 index.php?get=<img src=“javascript:alert(xss)”>
惡意網站過濾
私密瀏覽
跨網站腳本(XSS)• 維京百科• 跨網站腳本(Cross-Site Scripting,通常簡稱為XSS或跨站指令碼或跨站指令碼攻擊)是一種網站應用程式的安全漏洞攻擊,是代碼注入的一種。它允許惡意使用者將程式碼注入到網頁上,其他使用者在觀看網...
XSS攻擊測試字串• OWASP Testing Guide v3– 提供測試攻擊字串
攻擊利用方式(1/5)利用圖片
攻擊利用方式(2/5)用JavaScript發送POST,用DOM建立表單
攻擊利用方式(3/5)直接HTML建立表單
攻擊利用方式(4/5)AJAX 透過 XMLHttpRequest 發送 POST
攻擊利用方式(5/5)AJAX透過 jquery 發送 POST
繞過不完美的XSS防禦• 利用字元編碼• 繞過長度– 如有兩個input可利用註解<!-- -->– 利用事件(event)– location.hash• http://evil.com/index.html#alert(1)• eval(l...
實際案例(1/4)
實際案例(2/4)
實際案例(3/4)
實際案例(4/4)• http://forum.eviloctal.com/thread-28299-1-1.html
JavaScript與Http除錯工具• Firebug• IE 8 Developer Tools• Fiddler• HttpWatch• Firefox - Httpfox
XSS伺服器端防禦 - 需要防禦的地方(1/4)• 在正確的地方採取正確的防禦– MVC架構下在View處理資料淨化– 無特別輸出HTML指定Header• header(Content-Type: text/javascript; chars...
XSS伺服器端防禦 - 需要防禦的地方(2/4)• 其他地方– 頁面中所有的inputs框– window.location(href, hash等)– window.name– document.referer– document.cooki...
XSS伺服器端防禦 - 過濾HTML(3/4)• PHP– htmlentities()– htmlspecialchars()– ESAPI http://code.google.com/p/owasp-esapi-php/• HTML輸出:...
XSS伺服器端防禦 – Flash安全設定(4/4)• 靜態– 理論上沒有問題• 動態指令檔– allowNetworking• all 允許所有網路通訊, 預設• internal 不能與瀏覽器通訊如navigteToURL, 但可呼叫其他A...
XSS客戶端防禦• 除了瀏覽器內建防禦• 關閉JavaScript• Firefox - NoScript
跨網站請求偽造(CSRF)• 維京百科• 跨網站請求偽造(Cross-site Request Forgery, CSRF)對於網站應用安全一直是個嚴重的問題,即駭客利用網站對於合法使用者的信任,以合法使用者的身分向網站發出偽造請求,並在使用者...
Cookie類型• Session Cookie– 臨時Cookie• Third-party Cookie– 長期Cookie或本機Cookie– Http Header: Set-Cookie
瀏覽器的原則• 主流瀏覽器預設攔截Third-party Cookie– IE6, IE7, IE8, Safari• 不會攔截的– Firefox 2, Firefox 3, Opera, Chrome, Android• 可能造成預設攔截失...
實際案例
Google使用while(1);防禦CRSF?
CSRF防禦• 根本原因– CSRF之所以可以成功, 最重要的原因是所有參數可以被攻擊者猜測到的• 防禦方法– 驗證碼– Referer Check– Anti CSRF Token• Token不是為了重複傳送, 因此為了使用方便可以允許在一...
ClickJacking• 2008年– Robert Hansen與Jeremiah Grossman發現了點擊綁架攻擊(ClickJacking)• 之後相關攻擊– Html ClickJacking– Flash ClickJacking...
HTML ClickJacking
更多實際案例
Flash ClickJacking• http://guya.net/security/clickjacking/game.html• http://www.youtube.com/watch?v=gxyLbpldmuU
Cross Site Image Overlaying(圖片覆蓋攻擊)• http://www.informit.com/blogs/blog.aspx?uk=XSIO--Cross-site-Image-Overlay-A-discussio...
TapJacking
ClickJacking防禦• JavaScript: frame busting– 可被繞過• Http Header: X-Frame-Options– DENY: 完全拒絕– SAMEORIGIN: 相同來源– ALLOW-FROM: 允...
HTML5安全• HTML新標籤– XSS防禦趕不上進度<vedio>• Iframe沙盒的政策– allow-same-origin: 允許同來源存取– allow-top-navigation: 允許存取頂層視窗– allow-forms:...
弱點揭露• Exploits Database by Offensive Security• Metasploit• WooYun.org
項目編號 項目 說明OWASP-AT-006 記住密碼與密碼重置弱點測試可透過AUTOCOMPLETE=“off”標籤屬性避免紀錄OWASP-SM-001 連線管理模式測試 是否是在安全和非預知的情況下產生cookies和其他連線驗證碼?OWA...
參考資料• 吳翰清, 網路竟然這麼危險(白帽子讲Web安全), 2012• IE 8 XSS Filter Architecture / Implementation• 跨網站指令碼• 跨網站的偽造要求(CSRF)• OWASP, OWASP ...
Upcoming SlideShare
Loading in...5
×

Hiiir 資安講座 III 用戶端攻擊與防禦

582

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
582
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Hiiir 資安講座 III 用戶端攻擊與防禦"

  1. 1. Taien內部資安講座 III用戶端攻擊與防禦2013.02.05 @ Hiiir Inc.Taien Wang<taien_wang@hiiir.com>英屬維京群島商時間軸科技股份有限公司新創事業部
  2. 2. 大綱• 現有瀏覽器安全設計• 跨網站腳本(XSS)• 跨網站請求偽造(CSRF)• 點擊綁架(ClickJacking)• HTML5安全• OWASP相關檢測項目
  3. 3. 現有瀏覽器安全設計• 沙盒– 外掛程式獨立運行• 跨網站腳本篩選器• 惡意網站過濾– SmartScreen– 惡意程式列表• PhishTank - http://www.phishtank.com/• Google SafeBrowsing API -https://developers.google.com/safe-browsing/• 私密瀏覽
  4. 4. 沙盒• http://www.youtube.com/watch?feature=player_embedded&v=29e0CtgXZSI
  5. 5. 跨網站腳本篩選器(1/2)攻擊語法 <IMG SRC=“javascript:alert(document.cookie+, ThisXSS Attck);”>
  6. 6. 跨網站腳本篩選器(2/2)攻擊語法 index.php?get=<img src=“javascript:alert(xss)”>
  7. 7. 惡意網站過濾
  8. 8. 私密瀏覽
  9. 9. 跨網站腳本(XSS)• 維京百科• 跨網站腳本(Cross-Site Scripting,通常簡稱為XSS或跨站指令碼或跨站指令碼攻擊)是一種網站應用程式的安全漏洞攻擊,是代碼注入的一種。它允許惡意使用者將程式碼注入到網頁上,其他使用者在觀看網頁時就會受到影響。這類攻擊通常包含了HTML以及使用者端腳本語言• XSS根據效果不同可以分兩種– 反射型XSS(Reflected XSS),亦稱非持久型XSS(Non-Persistent XSS)– 儲存型XSS(Stored XSS),亦稱持久型XSS(Persistent XSS)– 跨站腳本DOM(DOM XSS)• 本質上與反射型XSS相似,因歷史背景獨立提出• 輸出到JavaScript或控制到HTML DOM元件
  10. 10. XSS攻擊測試字串• OWASP Testing Guide v3– 提供測試攻擊字串
  11. 11. 攻擊利用方式(1/5)利用圖片
  12. 12. 攻擊利用方式(2/5)用JavaScript發送POST,用DOM建立表單
  13. 13. 攻擊利用方式(3/5)直接HTML建立表單
  14. 14. 攻擊利用方式(4/5)AJAX 透過 XMLHttpRequest 發送 POST
  15. 15. 攻擊利用方式(5/5)AJAX透過 jquery 發送 POST
  16. 16. 繞過不完美的XSS防禦• 利用字元編碼• 繞過長度– 如有兩個input可利用註解<!-- -->– 利用事件(event)– location.hash• http://evil.com/index.html#alert(1)• eval(location.hash.substr(1))• 利用<base>綁架• Window.name
  17. 17. 實際案例(1/4)
  18. 18. 實際案例(2/4)
  19. 19. 實際案例(3/4)
  20. 20. 實際案例(4/4)• http://forum.eviloctal.com/thread-28299-1-1.html
  21. 21. JavaScript與Http除錯工具• Firebug• IE 8 Developer Tools• Fiddler• HttpWatch• Firefox - Httpfox
  22. 22. XSS伺服器端防禦 - 需要防禦的地方(1/4)• 在正確的地方採取正確的防禦– MVC架構下在View處理資料淨化– 無特別輸出HTML指定Header• header(Content-Type: text/javascript; charset=utf-8);• 設定HttpOnly– ini_set("session.cookie_httponly", 1);– session_set_cookie_params(0, NULL, NULL, NULL, TRUE);– header("Set-Cookie: hidden=value; httpOnly");• 伺服器輸出透過 JavaScript 輸出到 HTML 頁面必經之路– document.write()– document.writeln()– xxx.innerHTML()– xxx.outerHTML()– innerHTML.replace()– document.attachEvent()– window.attachEvent()– document.location.replace()– document.location.assign()– ...
  23. 23. XSS伺服器端防禦 - 需要防禦的地方(2/4)• 其他地方– 頁面中所有的inputs框– window.location(href, hash等)– window.name– document.referer– document.cookie– localstorage– XMLHttpRequest傳回的資料– ...
  24. 24. XSS伺服器端防禦 - 過濾HTML(3/4)• PHP– htmlentities()– htmlspecialchars()– ESAPI http://code.google.com/p/owasp-esapi-php/• HTML輸出: encodeForHTML, encodeForHTMLAttribute• Script或事件輸入: encodeForJavaScript• CSS輸出: encodeForCSS• 網址輸出: encodeForURL• Python– cgi.escape()• ASP– Server.HTMLEncode()• ASP.NET– Server.HtmlEncode(), Microsoft Anti-Cross Site Scripting Library• Java– xssprotect• Node.js– node-validator
  25. 25. XSS伺服器端防禦 – Flash安全設定(4/4)• 靜態– 理論上沒有問題• 動態指令檔– allowNetworking• all 允許所有網路通訊, 預設• internal 不能與瀏覽器通訊如navigteToURL, 但可呼叫其他API• none 禁止任何網路通訊– allowScriptAccess, 定義flash能否與html溝通• always 不限制• sameDomain 同網域不限制, 預設• never 都不行
  26. 26. XSS客戶端防禦• 除了瀏覽器內建防禦• 關閉JavaScript• Firefox - NoScript
  27. 27. 跨網站請求偽造(CSRF)• 維京百科• 跨網站請求偽造(Cross-site Request Forgery, CSRF)對於網站應用安全一直是個嚴重的問題,即駭客利用網站對於合法使用者的信任,以合法使用者的身分向網站發出偽造請求,並在使用者不知情的情況下執行一些惡意行為,甚至執行駭客所指定的行為
  28. 28. Cookie類型• Session Cookie– 臨時Cookie• Third-party Cookie– 長期Cookie或本機Cookie– Http Header: Set-Cookie
  29. 29. 瀏覽器的原則• 主流瀏覽器預設攔截Third-party Cookie– IE6, IE7, IE8, Safari• 不會攔截的– Firefox 2, Firefox 3, Opera, Chrome, Android• 可能造成預設攔截失效– P3P Header• W3C 制定的一項隱私標準, 全名為 The Platform for PrivacyPerferebces
  30. 30. 實際案例
  31. 31. Google使用while(1);防禦CRSF?
  32. 32. CSRF防禦• 根本原因– CSRF之所以可以成功, 最重要的原因是所有參數可以被攻擊者猜測到的• 防禦方法– 驗證碼– Referer Check– Anti CSRF Token• Token不是為了重複傳送, 因此為了使用方便可以允許在一個使用者的有效生命週期內, 在token消耗掉前都用同一個token• 避免出現在頁面的 URL 中, 以防透過 referer 方式洩漏– 敏感操作盡量避免 GET, 改採 POST• 但如果網站有XSS弱點CSRF Token會變得無效, 此類搭配攻擊稱為XSRF
  33. 33. ClickJacking• 2008年– Robert Hansen與Jeremiah Grossman發現了點擊綁架攻擊(ClickJacking)• 之後相關攻擊– Html ClickJacking– Flash ClickJacking– Cross Site Image Overlaying(圖片覆蓋攻擊)– 拖曳綁架與資料竊取• Next Generation Clickjacking• 瀏覽器拖曳拖曳, 不受相同來源策略限制• Paul Stone, BlackHat 2010– TapJacking(觸摸螢幕綁架)
  34. 34. HTML ClickJacking
  35. 35. 更多實際案例
  36. 36. Flash ClickJacking• http://guya.net/security/clickjacking/game.html• http://www.youtube.com/watch?v=gxyLbpldmuU
  37. 37. Cross Site Image Overlaying(圖片覆蓋攻擊)• http://www.informit.com/blogs/blog.aspx?uk=XSIO--Cross-site-Image-Overlay-A-discussion-and-example
  38. 38. TapJacking
  39. 39. ClickJacking防禦• JavaScript: frame busting– 可被繞過• Http Header: X-Frame-Options– DENY: 完全拒絕– SAMEORIGIN: 相同來源– ALLOW-FROM: 允許自訂可載入頁面– 使用方式1. 程式輸入header(X-FRAME-OPTIONS: DENY);2. Web server設定
  40. 40. HTML5安全• HTML新標籤– XSS防禦趕不上進度<vedio>• Iframe沙盒的政策– allow-same-origin: 允許同來源存取– allow-top-navigation: 允許存取頂層視窗– allow-forms: 允許傳送表單– allow-scripts: 允許執行指令碼• noreferrer– 解決了CSRF referrer洩漏問題• 其他安全問題– Cross-Origin Resource Sharing– 跨視窗傳遞– Web Storage
  41. 41. 弱點揭露• Exploits Database by Offensive Security• Metasploit• WooYun.org
  42. 42. 項目編號 項目 說明OWASP-AT-006 記住密碼與密碼重置弱點測試可透過AUTOCOMPLETE=“off”標籤屬性避免紀錄OWASP-SM-001 連線管理模式測試 是否是在安全和非預知的情況下產生cookies和其他連線驗證碼?OWASP-SM-002 Cookies屬性測試 Cookies是否設定Secure、HttpOnly、Domain與是否可竄改取得更高權限?OWASP-SM-003 連線固定測試 在連線固定狀況下,是否可利用該弱點挾持用戶連線?OWASP-SM-004 連線變數洩漏測試 連線ID(SessionID)是否加密?如無是否利用HTTPS保護?OWASP-SM-005 CSRF測試 攻擊者是否可在用戶登入後暗中進行其他操作?OWASP-AZ-002 繞過授權模式測試 是否可不經過驗證取得隱藏功能?OWASP-AZ-003 權限提升測試 用戶是否可透過權限提升攻擊不經過正常管道提升權限?OWASP-DV-001 跨站腳本反射測試 Reflected XSSOWASP-DV-002 跨站腳本儲存測試 Stored XSSOWASP-DV-003 跨站腳本DOM測試 DOM XSSOWASP-DV-004 Flash跨站測試 Cross Site Flashing
  43. 43. 參考資料• 吳翰清, 網路竟然這麼危險(白帽子讲Web安全), 2012• IE 8 XSS Filter Architecture / Implementation• 跨網站指令碼• 跨網站的偽造要求(CSRF)• OWASP, OWASP Testing Guide v3• OWASP, OWASP Enterprise Security API• OWASP, OWASP Secure Coding Practices• Gustav Rydstedt, Elie Bursztein, Dan Boneh, and Collin Jackson, "Bustingframe busting: a study of clickjacking vulnerabilities at popular sites"• Gustav Rydstedt, Elie Bursztein, and Dan Boneh, "raming Attacks on SmartPhones and Dumb Routers: Tap-jacking and Geo-localization“• HTML5 Security Cheatsheet
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×