380 likes | 440 Views
安全性互動式網頁設計簡介. 安全性互動式網頁設計簡介. 你可能看過類似的新聞. 安全性互動式網頁設計簡介. 安全性互動式網頁設計簡介. 你可能看過類似的新聞. 安全性互動式網頁設計簡介. 你可能瀏覽過類似的網站。 你對這些新聞熟悉嗎? 哪些網站是不安全的 哪些網站是會受到攻擊的 是一般的 HTML 網頁嗎? NO 是具有 互動式的網頁 才可能有類似的問題. 安全性互動式網頁設計簡介. 互動式網頁 簡介 互動式網頁就是使用者可以與伺服器互動性的交談,並輸入資料去更新或新增在伺服器的資料,然後在回應到使用者端。
E N D
安全性互動式網頁設計簡介 • 你可能看過類似的新聞
安全性互動式網頁設計簡介 • 你可能看過類似的新聞
安全性互動式網頁設計簡介 • 你可能瀏覽過類似的網站。 • 你對這些新聞熟悉嗎? • 哪些網站是不安全的 • 哪些網站是會受到攻擊的 • 是一般的HTML網頁嗎? • NO • 是具有互動式的網頁才可能有類似的問題
安全性互動式網頁設計簡介 • 互動式網頁簡介 • 互動式網頁就是使用者可以與伺服器互動性的交談,並輸入資料去更新或新增在伺服器的資料,然後在回應到使用者端。 • 常見的互動式網頁有留言版、討論區及需要輸入帳號密碼的網站等。 • 這類網頁容易成為有心人士的填字遊戲。
安全性互動式網頁設計簡介 • 互動式網頁程式引發的問題: • 癱瘓系統服務 • 應用系統的資料遭竊取或竄改 • 取得應用程式的控制權 • 取得應用系統所在主機的控制權
安全性互動式網頁設計簡介 • 互動式網頁程式引發問題所造成的影響: • 個人資料喪失或竄改 • 商家聲譽受損或倒閉 • 金融系統金融秩序 • 工程系統工安事件 • 國防系統國家安全
安全性互動式網頁設計簡介 • 如何避免互動式網頁程式引發的問題 • 從Client端?從Server端? • 回顧系統分析設計的流程 • 系統分析(需求定義) • 系統設計 • 系統開發/測試 • 系統建置(部署) • 系統維護
安全性互動式網頁設計簡介 • 安全性互動式網頁的設計時機 • 從系統設計的流程,可以思考安全性互動式網頁的設計應從何時開始。是要在系統開發/測試,或是在系統設計,還是要從系統分析時就要考慮了。
安全性互動式網頁設計簡介 • 互動式網頁執行流程 網頁服務 找到網頁 互動式程式語言 瀏覽器 資料庫 返回HTML 處理互動式程式語言 伺服器
安全性互動式網頁設計簡介 • 互動式網頁安全設計準則 • 假設所有外來系統輸入都是有問題的 • 失敗訊息的安全性 • 簡單化
安全性互動式網頁設計簡介 • 假設所有外來系統輸入都是有問題的 • 太相信使用者輸入的資料,直接進行各種處理,會產生下列的情形 • 不要只依賴前端所寫的Java Script來檢查,而是前端與伺服器端皆須檢查。
安全性互動式網頁設計簡介 • 失敗訊息的安全性 • 不要 • 在錯誤訊息中洩漏資訊 • 長時間消耗系統資源 • 要 • 系統進入一個預設的安全狀態 • 詳細資訊寫入後端日誌 • 使用異常管理
安全性互動式網頁設計簡介 • 簡單化 • 因為程式越長越複雜 • 架構疊床架屋,用了一堆網路上抓的程式碼或元件 • 每個人的程式風格與命名規則也不同 • 程式最好寫的別人都看不太懂,才能顯示自己的程度
安全性互動式網頁設計簡介 • 結果往往是 • 不易除錯 • 半年後自己也看不太懂 • 隱含一些安全上的問題,還很難修復 • 花錢重寫 • 所以 • 使用Design Pattern,標準程式撰寫方式 • 較佳的程式碼檢查->容易發現安全上的缺陷 • 較佳的程式碼維護->容易修正安全上的缺陷
安全性互動式網頁設計簡介 • 要如何得知互動式網頁的攻擊行為 • OWASP(開放Web軟體安全計畫 - Open Web Application Security Project)致力於推動Web安全的開放社群、非營利性組織,其主要目標是協助解決造成不安全 Web軟體的主因,並透過開放式計畫的方式,由組織成員研發工具與撰寫技術文件,向全世界分享最新攻擊趨勢、與測試及防禦方法。
安全性互動式網頁設計簡介 • 目前OWASP已有超過 30多個正在進行中的計畫,包括最知名的OWASP Top 10(十大Web弱點)- Web應用程式安全問題分類、Web安全練習平台、偵測與保護PHP/Java/ASP.Net程式碼等。OWASP每年皆舉行年度會議,參與的會員亦經常更透過不定期研討會討論Web安全衍伸出的其他問題,包含Rootkit木馬等研究項目,通常為會員本身的專長或是額外的興趣。
安全性互動式網頁設計簡介 • OWASP每隔幾年會公告10大網站安全漏洞 • OWASP 2007年10大網站安全漏洞與2010年10大網站安全漏洞比較: • 2.1 新增第六項為不正確的安全設定 (Security Misconfiguration)。 • 2.2 新增第十項為未驗證的重新導向與轉發 (Unvalidated Redirects and Forwards)。 • 2.3 移除第三項惡意程式的執行 (Malicious File Execution)。
安全性互動式網頁設計簡介 • 2.4 移除第六項資訊洩漏與不適當的錯誤處理 (Information Leakage and Improper Error Handling)。 • 在2007年與2010年中位於第1、2名的分別為Cross-Site Scripting(XSS)與Injection Flaw。
安全性互動式網頁設計簡介 • 何謂Cross-Site Scripting(XSS)攻擊 • Cross Site Script(XSS),跨站腳本攻擊。它指的是惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意用戶的特殊目的。Cross Site Script (XSS)屬於被動式的攻擊,因為其被動且不好利用,所以許多人常忽略其危害性。
安全性互動式網頁設計簡介 • 常見的攻擊測試: • 在留言板輸入 “><script>alert(‘XSS%20Testing’)</script><” • 如果會跳出XSSTesting的視窗,表示該網站並未針對輸入的資料進行HTML語法篩檢,會讓瀏覽該網站的使用者下載惡意程式。 • 轉碼攻擊 • 將字元轉成10進位或16進位表示
安全性互動式網頁設計簡介 • <img src="javascript:alert('XSS');"> • 10進制 • <imgsrc=“javascript:alert('XSS'); ”> • 16進制 • <img src=“javascript:alert('XSS'); ”>
安全性互動式網頁設計簡介 • 攻擊方式有: • 找到可利用的URL,製造出惡意連結。 • 透過電子郵件,討論區,大量散布惡意連結。 • 加入TAB、空白、註解(/**/),以規避瀏覽器的檢查 • 可能攻擊的目標 • PDF文件 • Flash • 影片
安全性互動式網頁設計簡介 • 可能攻擊結果: • 造成網頁被竄改的感覺。 • 偷取使用者認證資料。 • 竊取登入資料(cookie) • 誘導使用者到架網站進行登錄 • 攻擊後端管理網站 • 讓使用者下載木馬程式,進而存取前端資料。 • Cross Site Script (XSS)蠕蟲->癱瘓網路。
安全性互動式網頁設計簡介 • 防護建議:輸入檢查+輸出轉換 • 輸入檢查: • 白名單:列出可以通過的字串組合 • 黑名單:列出無法通過的字串組合
安全性互動式網頁設計簡介 • 輸出轉換: • 透過編碼,告訴瀏覽器這些是”資料”,採用HTML-Encoding。 • 如果輸出資料到URL->URL-Encoding。 • 強制設定回訊的HTTP response之編碼方式為ISO-8856-1(或UTF-8)。
安全性互動式網頁設計簡介 • Injection Flaw是攻擊者透過介面餵入指令讓後端程式執行,常見的為SQL Injection。 • SQL指令植入式攻擊: • 駭客可透過網站所提供的合法輸入介面,在輸入資料中夾帶一段SQL程式碼,透過網站程式交予後端資料庫執行。 • 影響範圍是全面性: • ASP,ASP.NET,PHP,JAVA… • MSSQL,MYSQL,Oracle,Sybase,DB2…
安全性互動式網頁設計簡介 • 可能造成的破壞: • 繞過身分登錄機制即可登錄。 • 竊取網在資料。 • 修改網站內容。 • 新增、刪除、消改資料表格內容。 • 清空甚至刪除整個資料表格。 • 停止資料庫系統的運作->停止網站運作 • 在網站主機的作業系統中取得系統最高權限->植入木馬程式,當作跳板主機
安全性互動式網頁設計簡介 • 攻擊步驟: • 確認後端資料庫種類:資料庫種類在某些功能上與語法上有差異。 • 尋找程式中可能的注入點。可能為SQL語句內容之參數: • 網址參數。 • 表單資料。 • 根據想達到的目的注入SQL攻擊指令。
安全性互動式網頁設計簡介 • Injection Flaw是當程式在查詢資料庫資料時,利用改變邏輯判斷的情形來取得所需資料。 • 常見的攻擊手法: • Bypass Authentication:於登入頁面之帳號密碼欄位,注入SQL語法以繞過驗證。 • 攻擊字串範例: • ‘or ‘’=‘ • ‘or 1=1— • ‘or 1=1/*
安全性互動式網頁設計簡介 • 本來SQL語法長這樣: • Select * From Account Where username=‘[帳號]’ andpassword=‘[密碼 ]’ • 需要帳號與密碼都對才能查詢 • 輸入攻擊資料後成為: • Select * From Account Where username=‘admin’ andpassword=‘‘ or 1=1--’ • “--” 表示說明,往後的指令皆被忽略 • 因為判斷式為TRUE,所以…
安全性互動式網頁設計簡介 • Error Based ( ASP + MS-SQL ):使用者在瀏覽器中看的見資料庫所產生的原始錯誤資訊,利用資料庫行別轉換產生之錯誤訊息撈取資訊。 • 早期常見之資料庫盜取方式 • 案例常見於ASP+MSSQL之組合情況下 • 後來大家寫程式會隱藏原始錯誤資訊
安全性互動式網頁設計簡介 • Union Based:利用在判斷式後結合前後兩段SQL語句以撈取資料庫內容。 • 攻擊字串範例: • id=1 order by 10-- ( 首先利用 order by 判斷欄位數量 ) • id=1 union select 1,2,3,4,5-- • id=1 union select 1,2,3,database(),5— • id=1 union select 1,2,3,load_file(‘/etc/passwd’),5—
安全性互動式網頁設計簡介 • 防護建議: • 輸入資料檢驗: • 白名單過濾:僅允許數字,或文數字。 • 黑名單過濾:不正常的Query。 • 轉換特殊字元/字串。 • 資料庫管理:分離應用程式中各個功能模組存取DB的權限,以免一個注入點就可取得所有資料。 • 限制資料庫執行城市本身的權限。 • 將一般用不到但功能強大的延伸程序刪除或限制其操作者身分。
安全性互動式網頁設計簡介 • 妥善的處理錯誤訊息:客製化錯誤訊息。 • 回覆簡潔的回應訊息。 • 設定固定的一般錯誤訊息。 • 帶有字數字眼的錯誤訊息記錄於後端Log系統 • 教育機構網站應用程式弱點監測平台-教學影片