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