38
1 安安安安安安安安安安安安

安全性互動式網頁設計簡介

Embed Size (px)

DESCRIPTION

安全性互動式網頁設計簡介. 安全性互動式網頁設計簡介. 你可能看過類似的新聞. 安全性互動式網頁設計簡介. 安全性互動式網頁設計簡介. 你可能看過類似的新聞. 安全性互動式網頁設計簡介. 你可能瀏覽過類似的網站。 你對這些新聞熟悉嗎? 哪些網站是不安全的 哪些網站是會受到攻擊的 是一般的 HTML 網頁嗎? NO 是具有 互動式的網頁 才可能有類似的問題. 安全性互動式網頁設計簡介. 互動式網頁 簡介 互動式網頁就是使用者可以與伺服器互動性的交談,並輸入資料去更新或新增在伺服器的資料,然後在回應到使用者端。 - PowerPoint PPT Presentation

Citation preview

Page 1: 安全性互動式網頁設計簡介

1

安全性互動式網頁設計簡介

Page 2: 安全性互動式網頁設計簡介

2

安全性互動式網頁設計簡介

•你可能看過類似的新聞

Page 3: 安全性互動式網頁設計簡介

3

安全性互動式網頁設計簡介

Page 4: 安全性互動式網頁設計簡介

4

安全性互動式網頁設計簡介

•你可能看過類似的新聞

Page 5: 安全性互動式網頁設計簡介

5

安全性互動式網頁設計簡介

•你可能瀏覽過類似的網站。•你對這些新聞熟悉嗎?•哪些網站是不安全的•哪些網站是會受到攻擊的•是一般的 HTML網頁嗎?• NO•是具有互動式的網頁才可能有類似的問題

Page 6: 安全性互動式網頁設計簡介

6

安全性互動式網頁設計簡介

•互動式網頁簡介–互動式網頁就是使用者可以與伺服器互動性的交談,並輸入資料去更新或新增在伺服器的資料,然後在回應到使用者端。

–常見的互動式網頁有留言版、討論區及需要輸入帳號密碼的網站等。

–這類網頁容易成為有心人士的填字遊戲。

Page 7: 安全性互動式網頁設計簡介

7

安全性互動式網頁設計簡介

•互動式網頁程式引發的問題:–癱瘓系統服務–應用系統的資料遭竊取或竄改–取得應用程式的控制權–取得應用系統所在主機的控制權

Page 8: 安全性互動式網頁設計簡介

8

安全性互動式網頁設計簡介

•互動式網頁程式引發問題所造成的影響:–個人 ­資料喪失或竄改–商家 ­聲譽受損或倒閉–金融系統 ­金融秩序–工程系統 ­工安事件–國防系統 ­國家安全

Page 9: 安全性互動式網頁設計簡介

9

安全性互動式網頁設計簡介

•如何避免互動式網頁程式引發的問題• 從 Client端?從 Server端?•回顧系統分析設計的流程

–系統分析 ( 需求定義 )–系統設計–系統開發 / 測試–系統建置 ( 部署 )–系統維護

Page 10: 安全性互動式網頁設計簡介

10

安全性互動式網頁設計簡介

•安全性互動式網頁的設計時機–從系統設計的流程,可以思考安全性互動式網頁的設計應從何時開始。是要在系統開發 / 測試,或是在系統設計,還是要從系統分析時就要考慮了。

Page 11: 安全性互動式網頁設計簡介

11

安全性互動式網頁設計簡介

•互動式網頁執行流程

瀏覽器

找到網頁

返回 HTML

互動式程式語言

處理互動式程式語言

資料庫

伺服器

網頁服務

Page 12: 安全性互動式網頁設計簡介

12

安全性互動式網頁設計簡介

•互動式網頁安全設計準則–假設所有外來系統輸入都是有問題的–失敗訊息的安全性–簡單化

Page 13: 安全性互動式網頁設計簡介

13

安全性互動式網頁設計簡介

•假設所有外來系統輸入都是有問題的– 太相信使用者輸入的資料,直接進行各種處理,會產生下列的情形

– 不要只依賴前端所寫的 Java Script來檢查,而是前端與伺服器端皆須檢查。

處理方式 產生的問題

輸入資料庫執行 SQL Injection

輸出到前端瀏覽器執行 (Cross-Site Scripting) XSS Attack

進行頁面的轉向重導 釣魚網頁

Page 14: 安全性互動式網頁設計簡介

14

安全性互動式網頁設計簡介

•失敗訊息的安全性– 不要

•在錯誤訊息中洩漏資訊•長時間消耗系統資源

– 要•系統進入一個預設的安全狀態•詳細資訊寫入後端日誌•使用異常管理

Page 15: 安全性互動式網頁設計簡介

15

安全性互動式網頁設計簡介

•簡單化– 因為程式越長越複雜

•架構疊床架屋,用了一堆網路上抓的程式碼或元件•每個人的程式風格與命名規則也不同•程式最好寫的別人都看不太懂,才能顯示自己的程度

Page 16: 安全性互動式網頁設計簡介

16

安全性互動式網頁設計簡介

–結果往往是•不易除錯•半年後自己也看不太懂•隱含一些安全上的問題,還很難修復•花錢重寫

–所以•使用 Design Pattern,標準程式撰寫方式•較佳的程式碼檢查 ->容易發現安全上的缺陷•較佳的程式碼維護 ->容易修正安全上的缺陷

Page 17: 安全性互動式網頁設計簡介

17

安全性互動式網頁設計簡介

•要如何得知互動式網頁的攻擊行為– OWASP(開放 Web軟體安全計畫 - Open Web Application Security Project)致力於推動 Web安全的開放社群、非營利性組織,其主要目標是協助解決造成不安全 Web軟體的主因,並透過開放式計畫的方式,由組織成員研發工具與撰寫技術文件,向全世界分享最新攻擊趨勢、與測試及防禦方法。

Page 18: 安全性互動式網頁設計簡介

18

安全性互動式網頁設計簡介

–目前 OWASP已有超過 30多個正在進行中的計畫,包括最知名的 OWASP Top 10(十大Web弱點 )- Web應用程式安全問題分類、 Web安全練習平台、偵測與保護 PHP/Java/ASP.Net程式碼等。 OWASP每年皆舉行年度會議,參與的會員亦經常更透過不定期研討會討論 Web安全衍伸出的其他問題,包含Rootkit木馬等研究項目,通常為會員本身的專長或是額外的興趣。

Page 19: 安全性互動式網頁設計簡介

19

安全性互動式網頁設計簡介

• OWASP每隔幾年會公告 10大網站安全漏洞• OWASP 2007年 10大網站安全漏洞與 2010

年 10大網站安全漏洞比較:– 2.1 新增第六項為不正確的安全設定 (Security Misconfiguration)。­

– 2.2 新增第十項為未驗證的重新導向與轉發 (Unvalidated Redirects and Forwards)。­

– 2.3 移除第三項惡意程式的執行 (Malicious File Execution)。­

Page 20: 安全性互動式網頁設計簡介

20

安全性互動式網頁設計簡介

– 2.4 移除第六項資訊洩漏與不適當的錯誤處理 (Information Leakage and Improper Error Handling)。­

• 在 2007年與 2010年中位於第 1 、 2 名的分別為 Cross-Site Scripting(XSS) 與 Injection Flaw。

Page 21: 安全性互動式網頁設計簡介

21

安全性互動式網頁設計簡介

•何謂 Cross-Site Scripting(XSS)攻擊– Cross Site Script(XSS),跨站腳本攻擊。它指的是惡意攻擊者往 Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的 html代碼會被執行,從而達到惡意用戶的特殊目的。 Cross Site Script (XSS)屬於被動式的攻擊,因為其被動且不好利用,所以許多人常忽略其危害性。

Page 22: 安全性互動式網頁設計簡介

22

安全性互動式網頁設計簡介

Page 23: 安全性互動式網頁設計簡介

23

安全性互動式網頁設計簡介

Page 24: 安全性互動式網頁設計簡介

24

安全性互動式網頁設計簡介

•常見的攻擊測試:–在留言板輸入“><script>alert(‘XSS%20Testing’)</script><”

–如果會跳出 XSS Testing的視窗,表示該網站並未針對輸入的資料進行 HTML語法篩檢,會讓瀏覽該網站的使用者下載惡意程式。

–轉碼攻擊•將字元轉成 10進位或 16進位表示

Page 25: 安全性互動式網頁設計簡介

25

安全性互動式網頁設計簡介•<img src="javascript:alert('XSS');">•10進制

– <img src=“&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;&#59;&#32;”>

•16進制– <img src=“&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x27;&#x58;&#x53;&#x53;&#x27;&#x29;&#x3b;&#x20;”>

Page 26: 安全性互動式網頁設計簡介

26

安全性互動式網頁設計簡介

•攻擊方式有:–找到可利用的 URL,製造出惡意連結。–透過電子郵件,討論區,大量散布惡意連結。–加入 TAB、空白、註解 (/**/),以規避瀏覽器的檢查

•可能攻擊的目標– PDF文件– Flash–影片

Page 27: 安全性互動式網頁設計簡介

27

安全性互動式網頁設計簡介

•可能攻擊結果:–造成網頁被竄改的感覺。–偷取使用者認證資料。

•竊取登入資料 (cookie)•誘導使用者到架網站進行登錄•攻擊後端管理網站

–讓使用者下載木馬程式,進而存取前端資料。– Cross Site Script (XSS)蠕蟲 ->癱瘓網路。

Page 28: 安全性互動式網頁設計簡介

28

安全性互動式網頁設計簡介

•防護建議:輸入檢查 + 輸出轉換–輸入檢查:

•白名單:列出可以通過的字串組合•黑名單:列出無法通過的字串組合

Page 29: 安全性互動式網頁設計簡介

29

安全性互動式網頁設計簡介

–輸出轉換:•透過編碼,告訴瀏覽器這些是”資料”,採用 HTML-Encoding。

•如果輸出資料到 URL->URL-Encoding。–強制設定回訊的 HTTP response之編碼方式

為 ISO-8856-1(或 UTF-8)。

字元 HTML實體< &lt;> &gt;& &amp;“ &quot;

Page 30: 安全性互動式網頁設計簡介

30

安全性互動式網頁設計簡介

• Injection Flaw是攻擊者透過介面餵入指令讓後端程式執行,常見的為 SQL Injection。

• SQL指令植入式攻擊:–駭客可透過網站所提供的合法輸入介面,在輸入資料中夾帶一段 SQL程式碼,透過網站程式交予後端資料庫執行。

–影響範圍是全面性:•ASP, ASP.NET, PHP, JAVA…•MSSQL, MYSQL, Oracle, Sybase, DB2…

Page 31: 安全性互動式網頁設計簡介

31

安全性互動式網頁設計簡介

•可能造成的破壞:–繞過身分登錄機制即可登錄。–竊取網在資料。–修改網站內容。

•新增、刪除、消改資料表格內容。•清空甚至刪除整個資料表格。

–停止資料庫系統的運作 ->停止網站運作–在網站主機的作業系統中取得系統最高權限 ->植入木馬程式,當作跳板主機

Page 32: 安全性互動式網頁設計簡介

32

安全性互動式網頁設計簡介

•攻擊步驟:–確認後端資料庫種類:資料庫種類在某些功能上與語法上有差異。

–尋找程式中可能的注入點。可能為 SQL語句內容之參數:•網址參數。•表單資料。•根據想達到的目的注入 SQL攻擊指令。

Page 33: 安全性互動式網頁設計簡介

33

安全性互動式網頁設計簡介

• Injection Flaw是當程式在查詢資料庫資料時,利用改變邏輯判斷的情形來取得所需資料。

•常見的攻擊手法:– Bypass Authentication:於登入頁面之帳號密碼欄位,注入 SQL語法以繞過驗證。

–攻擊字串範例:•‘or ‘’=‘•‘or 1=1—•‘or 1=1/*

Page 34: 安全性互動式網頁設計簡介

34

安全性互動式網頁設計簡介

–本來 SQL語法長這樣­:•Select * From Account Where username=‘[帳號 ]’ and password=‘[密碼 ]’

•需要帳號與密碼都對才能查詢–輸入攻擊資料後成為:

•Select * From Account Where username=‘admin’ and password=‘‘ or 1=1--’

•“--” 表示說明,往後的指令皆被忽略•因為判斷式為 TRUE,所以…

Page 35: 安全性互動式網頁設計簡介

35

安全性互動式網頁設計簡介

– Error Based ( ASP + MS-SQL ):使用者在瀏覽器中看的見資料庫所產生的原始錯誤資訊,利用資料庫行別轉換產生之錯誤訊息撈取資訊。

–早期常見之資料庫盜取方式•案例常見於 ASP+MSSQL之組合情況下•後來大家寫程式會隱藏原始錯誤資訊

Page 36: 安全性互動式網頁設計簡介

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—

Page 37: 安全性互動式網頁設計簡介

37

安全性互動式網頁設計簡介

•防護建議:–輸入資料檢驗:

•白名單過濾:僅允許數字,或文數字。•黑名單過濾:不正常的 Query。•轉換特殊字元 / 字串。

–資料庫管理:分離應用程式中各個功能模組存取DB的權限,以免一個注入點就可取得所有資料。•限制資料庫執行城市本身的權限。•將一般用不到但功能強大的延伸程序刪除或限制其操作者身分。

Page 38: 安全性互動式網頁設計簡介

38

安全性互動式網頁設計簡介

–妥善的處理錯誤訊息:客製化錯誤訊息。•回覆簡潔的回應訊息。•設定固定的一般錯誤訊息。•帶有字數字眼的錯誤訊息記錄於後端 Log系統

• 教育機構網站應用程式弱點監測平台-教學影片