用戶端攻擊與防禦

  • 3,855 views
Uploaded on

用戶端攻擊與防禦 …

用戶端攻擊與防禦
Hiiir - Taien 內部資安講座
1020205
Taien Wang

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,855
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
30
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Taien內部資安講座 III 用戶端攻擊與防禦 2013.02.05 @ Hiiir Inc. Taien Wang<taien_wang@hiiir.com>英屬維京群島商時間軸科技股份有限公司新創事業部
  • 2. 大綱• 現有瀏覽器安全設計• 跨網站腳本(XSS)• 跨網站請求偽造(CSRF)• 點擊綁架(ClickJacking)• HTML5安全• OWASP相關檢測項目
  • 3. 現有瀏覽器安全設計• 沙盒 – 外掛程式獨立運行• 跨網站腳本篩選器• 惡意網站過濾 – SmartScreen – 惡意程式列表 • PhishTank - http://www.phishtank.com/ • Google SafeBrowsing API - https://developers.google.com/safe-browsing/• 私密瀏覽
  • 4. 沙盒• http://www.youtube.com/watch?feature=player_embedded&v=2 9e0CtgXZSI
  • 5. 跨網站腳本篩選器(1/2)攻擊語法 <IMG SRC=“javascript:alert(document.cookie+, This XSS Attck);”>
  • 6. 跨網站腳本篩選器(2/2)攻擊語法 index.php?get=<img src=“javascript:alert(xss)”>
  • 7. 惡意網站過濾
  • 8. 私密瀏覽
  • 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. XSS攻擊測試字串• OWASP Testing Guide v3 – 提供測試攻擊字串
  • 11. 攻擊利用方式(1/5)利用圖片
  • 12. 攻擊利用方式(2/5)用JavaScript發送POST,用DOM建立表單
  • 13. 攻擊利用方式(3/5)直接HTML建立表單
  • 14. 攻擊利用方式(4/5)AJAX 透過 XMLHttpRequest 發送 POST
  • 15. 攻擊利用方式(5/5)AJAX透過 jquery 發送 POST
  • 16. 繞過不完美的XSS防禦• 利用字元編碼• 繞過長度 – 如有兩個input可利用註解<!-- --> – 利用事件(event) – location.hash • http://evil.com/index.html#alert(1) • eval(location.hash.substr(1))• 利用<base>綁架• Window.name
  • 17. 實際案例(1/4)
  • 18. 實際案例(2/4)
  • 19. 實際案例(3/4)
  • 20. 實際案例(4/4)• http://forum.eviloctal.com/thread-28299-1-1.html
  • 21. JavaScript與Http除錯工具• Firebug• IE 8 Developer Tools• Fiddler• HttpWatch• Firefox - Httpfox
  • 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. XSS伺服器端防禦 - 需要防禦的地方(2/4)• 其他地方 – 頁面中所有的inputs框 – window.location(href, hash等) – window.name – document.referer – document.cookie – localstorage – XMLHttpRequest傳回的資料 – ...
  • 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. XSS伺服器端防禦 – Flash安全設定(4/4)• 靜態 – 理論上沒有問題• 動態指令檔 – allowNetworking • all 允許所有網路通訊, 預設 • internal 不能與瀏覽器通訊如navigteToURL, 但可呼叫其他API • none 禁止任何網路通訊 – allowScriptAccess, 定義flash能否與html溝通 • always 不限制 • sameDomain 同網域不限制, 預設 • never 都不行
  • 26. XSS客戶端防禦• 除了瀏覽器內建防禦• 關閉JavaScript• Firefox - NoScript
  • 27. 跨網站請求偽造(CSRF)• 維京百科• 跨網站請求偽造(Cross-site Request Forgery, CSRF)對於網站應用安全 一直是個嚴重的問題,即駭客利用網站對於合法使用者的信任,以合法使用 者的身分向網站發出偽造請求,並在使用者不知情的情況下執行一些惡意行 為,甚至執行駭客所指定的行為
  • 28. Cookie類型• Session Cookie – 臨時Cookie• Third-party Cookie – 長期Cookie或本機Cookie – Http Header: Set-Cookie
  • 29. 瀏覽器的原則• 主流瀏覽器預設攔截Third-party Cookie – IE6, IE7, IE8, Safari• 不會攔截的 – Firefox 2, Firefox 3, Opera, Chrome, Android• 可能造成預設攔截失效 – P3P Header • W3C 制定的一項隱私標準, 全名為 The Platform for Privacy Perferebces
  • 30. 實際案例
  • 31. Google使用while(1);防禦CRSF?
  • 32. CSRF防禦• 根本原因 – CSRF之所以可以成功, 最重要的原因是所有參數可以被攻擊者猜測到的• 防禦方法 – 驗證碼 – Referer Check – Anti CSRF Token • Token不是為了重複傳送, 因此為了使用方便可以允許在一個使用者的有效生命 週期內, 在token消耗掉前都用同一個token • 避免出現在頁面的 URL 中, 以防透過 referer 方式洩漏 – 敏感操作盡量避免 GET, 改採 POST • 但如果網站有XSS弱點CSRF Token會變得無效, 此類搭配攻擊稱為XSRF
  • 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. HTML ClickJacking
  • 35. 更多實際案例
  • 36. Flash ClickJacking• http://guya.net/security/clickjacking/game.html• http://www.youtube.com/watch?v=gxyLbpldmuU
  • 37. Cross Site Image Overlaying(圖片覆蓋攻擊)• http://www.informit.com/blogs/blog.aspx?uk=XSIO--Cross-site- Image-Overlay-A-discussion-and-example
  • 38. TapJacking
  • 39. ClickJacking防禦• JavaScript: frame busting – 可被繞過• Http Header: X-Frame-Options – DENY: 完全拒絕 – SAMEORIGIN: 相同來源 – ALLOW-FROM: 允許自訂可載入頁面 – 使用方式 1. 程式輸入header(X-FRAME-OPTIONS: DENY); 2. Web server設定
  • 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. 弱點揭露• Exploits Database by Offensive Security• Metasploit• WooYun.org
  • 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. 參考資料• 吳翰清, 網路竟然這麼危險(白帽子讲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, "Busting frame busting: a study of clickjacking vulnerabilities at popular sites"• Gustav Rydstedt, Elie Bursztein, and Dan Boneh, "raming Attacks on Smart Phones and Dumb Routers: Tap-jacking and Geo-localization“• HTML5 Security Cheatsheet