SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
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 API -
          https://developers.google.com/safe-browsing/
•   私密瀏覽
沙盒

•   http://www.youtube.com/watch?feature=player_embedded&v=2
    9e0CtgXZSI
跨網站腳本篩選器(1/2)

攻擊語法   <IMG SRC=“javascript:alert(document.cookie+', This
       XSS Attck');”>
跨網站腳本篩選器(2/2)

攻擊語法   index.php?get=<img src=“javascript:alert('xss')”>
惡意網站過濾
私密瀏覽
跨網站腳本(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元件
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(location.hash.substr(1))
•   利用<base>綁架
•   Window.name
實際案例(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; 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()
     –   ...
XSS伺服器端防禦 - 需要防禦的地方(2/4)

•   其他地方

    – 頁面中所有的inputs框

    – window.location(href, hash等)

    – window.name

    – document.referer

    – document.cookie

    – localstorage

    – XMLHttpRequest傳回的資料

    – ...
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
XSS伺服器端防禦 – Flash安全設定(4/4)
•   靜態
    – 理論上沒有問題
•   動態指令檔
    – allowNetworking
         • all 允許所有網路通訊, 預設
         • internal 不能與瀏覽器通訊如navigteToURL, 但可呼叫其他API
         • none 禁止任何網路通訊
    – allowScriptAccess, 定義flash能否與html溝通
         • always 不限制
         • sameDomain 同網域不限制, 預設
         • never 都不行
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



•   可能造成預設攔截失效

    – P3P Header

        • W3C 制定的一項隱私標準, 全名為 The Platform for Privacy
          Perferebces
實際案例
Google使用while(1);防禦CRSF?
CSRF防禦
•   根本原因
    – CSRF之所以可以成功, 最重要的原因是所有參數可以被攻擊者猜測到的
•   防禦方法
    – 驗證碼
    – Referer Check
    – Anti CSRF Token
        • Token不是為了重複傳送, 因此為了使用方便可以允許在一個使用者的有效生命
           週期內, 在token消耗掉前都用同一個token
        • 避免出現在頁面的 URL 中, 以防透過 referer 方式洩漏
            – 敏感操作盡量避免 GET, 改採 POST
        • 但如果網站有XSS弱點CSRF Token會變得無效, 此類搭配攻擊稱為XSRF
ClickJacking
•   2008年
    – Robert Hansen與Jeremiah Grossman發現了點擊綁架攻擊(ClickJacking)
•   之後相關攻擊
    – Html ClickJacking
    – Flash ClickJacking
    – Cross Site Image Overlaying(圖片覆蓋攻擊)
    – 拖曳綁架與資料竊取
        • Next Generation Clickjacking
        • 瀏覽器拖曳拖曳, 不受相同來源策略限制
        • Paul Stone, BlackHat 2010
    – TapJacking(觸摸螢幕綁架)
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-discussion-and-example
TapJacking
ClickJacking防禦
•   JavaScript: frame busting




     – 可被繞過
•   Http Header: X-Frame-Options
     – DENY: 完全拒絕
     – SAMEORIGIN: 相同來源
     – ALLOW-FROM: 允許自訂可載入頁面
     – 使用方式
         1. 程式輸入header('X-FRAME-OPTIONS: DENY');
         2. Web server設定
HTML5安全
•   HTML新標籤
     – XSS防禦趕不上進度<vedio>
•   Iframe沙盒的政策
     – allow-same-origin: 允許同來源存取
     – allow-top-navigation: 允許存取頂層視窗
     – allow-forms: 允許傳送表單
     – allow-scripts: 允許執行指令碼
•   noreferrer
     – 解決了CSRF referrer洩漏問題
•   其他安全問題
     – Cross-Origin Resource Sharing
     – 跨視窗傳遞
     – Web Storage
弱點揭露

•   Exploits Database by Offensive Security

•   Metasploit

•   WooYun.org
項目編號           項目          說明
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 XSS
OWASP-DV-002 跨站腳本儲存測試      Stored XSS
OWASP-DV-003 跨站腳本DOM測試     DOM XSS
OWASP-DV-004 Flash跨站測試     Cross Site Flashing
參考資料
•   吳翰清, 網路竟然這麼危險(白帽子讲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

Contenu connexe

Tendances

議題二:Web應用程式安全防護
議題二:Web應用程式安全防護議題二:Web應用程式安全防護
議題二:Web應用程式安全防護
Nicolas su
 
OWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit DocumentationOWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit Documentation
Orange Tsai
 
資訊安全入門
資訊安全入門資訊安全入門
資訊安全入門
Tyler Chen
 
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
ChinaNetCloud
 
6.web 安全架构浅谈
6.web 安全架构浅谈6.web 安全架构浅谈
6.web 安全架构浅谈
Hsiao Tim
 

Tendances (19)

議題二:Web應用程式安全防護
議題二:Web應用程式安全防護議題二:Web應用程式安全防護
議題二:Web應用程式安全防護
 
OWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit DocumentationOWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit Documentation
 
2017.11.22 OWASP Taiwan Week (Lucas Ko)
2017.11.22  OWASP Taiwan Week (Lucas Ko)2017.11.22  OWASP Taiwan Week (Lucas Ko)
2017.11.22 OWASP Taiwan Week (Lucas Ko)
 
OWASP Top 10 (2013) 正體中文版
OWASP Top 10 (2013) 正體中文版OWASP Top 10 (2013) 正體中文版
OWASP Top 10 (2013) 正體中文版
 
滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」
 
滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)
 
網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知
 
基礎網頁程式攻擊檢驗
基礎網頁程式攻擊檢驗基礎網頁程式攻擊檢驗
基礎網頁程式攻擊檢驗
 
網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教
 
資訊安全入門
資訊安全入門資訊安全入門
資訊安全入門
 
SITCON2021 Web Security 領航之路
SITCON2021  Web Security 領航之路SITCON2021  Web Security 領航之路
SITCON2021 Web Security 領航之路
 
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
 
.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part II.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part II
 
6.web 安全架构浅谈
6.web 安全架构浅谈6.web 安全架构浅谈
6.web 安全架构浅谈
 
HITCON GIRLS_惡意程式分析介紹_in 成功大學_by Turkey_2016.04.28
HITCON GIRLS_惡意程式分析介紹_in 成功大學_by Turkey_2016.04.28HITCON GIRLS_惡意程式分析介紹_in 成功大學_by Turkey_2016.04.28
HITCON GIRLS_惡意程式分析介紹_in 成功大學_by Turkey_2016.04.28
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
 
.NET Security Application/Web Development - Part III
.NET Security Application/Web Development - Part III.NET Security Application/Web Development - Part III
.NET Security Application/Web Development - Part III
 

Similaire à 用戶端攻擊與防禦

Hiiir 資安講座 III 用戶端攻擊與防禦
Hiiir 資安講座 III 用戶端攻擊與防禦Hiiir 資安講座 III 用戶端攻擊與防禦
Hiiir 資安講座 III 用戶端攻擊與防禦
Hiiir Lab
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送
yongboy
 
浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)
tbmallf2e
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
pan weizeng
 
Btrace intro(撒迦)
Btrace intro(撒迦)Btrace intro(撒迦)
Btrace intro(撒迦)
ykdsg
 
浏览器的跨域安全问题
浏览器的跨域安全问题浏览器的跨域安全问题
浏览器的跨域安全问题
raystyle
 

Similaire à 用戶端攻擊與防禦 (20)

Hiiir 資安講座 III 用戶端攻擊與防禦
Hiiir 資安講座 III 用戶端攻擊與防禦Hiiir 資安講座 III 用戶端攻擊與防禦
Hiiir 資安講座 III 用戶端攻擊與防禦
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送
 
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
 
Web2.0 attack and defence
Web2.0 attack and defenceWeb2.0 attack and defence
Web2.0 attack and defence
 
Web security
Web securityWeb security
Web security
 
【反讲 银翘】Web安全
【反讲 银翘】Web安全【反讲 银翘】Web安全
【反讲 银翘】Web安全
 
网站离线数据安全分析漫谈 2012cert
网站离线数据安全分析漫谈 2012cert网站离线数据安全分析漫谈 2012cert
网站离线数据安全分析漫谈 2012cert
 
網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-Area網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-Area
 
Share xss
Share xssShare xss
Share xss
 
浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)
 
軟體弱點掃描
軟體弱點掃描軟體弱點掃描
軟體弱點掃描
 
前端MVVM框架安全
前端MVVM框架安全前端MVVM框架安全
前端MVVM框架安全
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
Btrace intro(撒迦)
Btrace intro(撒迦)Btrace intro(撒迦)
Btrace intro(撒迦)
 
浏览器的跨域安全问题
浏览器的跨域安全问题浏览器的跨域安全问题
浏览器的跨域安全问题
 
Berserk js
Berserk jsBerserk js
Berserk js
 
雲端分散架構的駭客事件與安全問題
雲端分散架構的駭客事件與安全問題雲端分散架構的駭客事件與安全問題
雲端分散架構的駭客事件與安全問題
 
黑站騎士
黑站騎士黑站騎士
黑站騎士
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫
 
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
 

Plus de Taien Wang

Plus de Taien Wang (13)

[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊
 
[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術
 
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
 
百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐
 
淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹
 
成長駭客 Growth Hacker
成長駭客 Growth Hacker成長駭客 Growth Hacker
成長駭客 Growth Hacker
 
20160105 wnmp & phalcon micro app - part II
20160105   wnmp & phalcon micro app - part II20160105   wnmp & phalcon micro app - part II
20160105 wnmp & phalcon micro app - part II
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I
 
我編程.我快樂
我編程.我快樂我編程.我快樂
我編程.我快樂
 
Scrum深入淺出
Scrum深入淺出Scrum深入淺出
Scrum深入淺出
 
淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)
 
淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術
 
PHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebugPHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebug
 

用戶端攻擊與防禦

  • 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')”>
  • 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 – 提供測試攻擊字串
  • 16. 繞過不完美的XSS防禦 • 利用字元編碼 • 繞過長度 – 如有兩個input可利用註解<!-- --> – 利用事件(event) – location.hash • http://evil.com/index.html#alert(1) • eval(location.hash.substr(1)) • 利用<base>綁架 • Window.name
  • 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
  • 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(觸摸螢幕綁架)
  • 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
  • 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 XSS OWASP-DV-002 跨站腳本儲存測試 Stored XSS OWASP-DV-003 跨站腳本DOM測試 DOM XSS OWASP-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