以阶段分析为基础之SQLInjection防御系统讲课资料

上传人:yulij****0329 文档编号:137239041 上传时间:2020-07-06 格式:PPT 页数:24 大小:1.32MB
返回 下载 相关 举报
以阶段分析为基础之SQLInjection防御系统讲课资料_第1页
第1页 / 共24页
以阶段分析为基础之SQLInjection防御系统讲课资料_第2页
第2页 / 共24页
以阶段分析为基础之SQLInjection防御系统讲课资料_第3页
第3页 / 共24页
以阶段分析为基础之SQLInjection防御系统讲课资料_第4页
第4页 / 共24页
以阶段分析为基础之SQLInjection防御系统讲课资料_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《以阶段分析为基础之SQLInjection防御系统讲课资料》由会员分享,可在线阅读,更多相关《以阶段分析为基础之SQLInjection防御系统讲课资料(24页珍藏版)》请在金锄头文库上搜索。

1、以階段分析為基礎之SQL Injection防禦系統,指導教授:鄭錦楸 報告人:魏宏吉 版權聲明:本報告僅使用在學校報告與練習之用,並無其他用途,若有侵權問題,煩請告知!,大綱,1.研究目的 2.何謂SQL Injection攻擊 3.研究動機 4.研究方法 5.預計完成的工作項目,1.研究動機,隨著網際網路的蓬勃發展,網頁也越來越多 元化,現今網頁已與資料庫脫離不了關係。 根據OWASP的統計報告表示,2010年十大網 路風險排名,SQL Injection已經成為排行榜 上的第一名,這樣表示,網頁資料庫的安全性 越來越重要了。,資料來源:OWASP,2.1 SQL Injection攻擊原

2、理,一般輸入帳號密碼的網站的SQL語法 select * from 會員 where 身分證 = & request(uid) & And 會員密碼 = & request(pw) & 如果正常使用者帳號 A123456789,密碼 1234 select * from 會員 where 身分證 = A123456789 And 會員密碼 = 1234 輸入的帳號與密碼等資訊會取代ASP( or PHP、JSP)中的變數,並由兩個單引號( )所包住,正常的連線狀態,SQL Injection攻擊,假設攻擊者已知系統中存在一個A123456789的帳號,但攻擊者不知其密碼,不過攻擊者還是可以使用

3、SQL Injection的方式跳過密碼的驗證,而進入到系統。 攻擊者只要在身分證的欄位輸入 A123456789- 即可不須輸入密碼而進入到系統。,SQL Injection攻擊,3.研究目的,大部分的程式設計師都沒有資訊安全的概念, 往往忽略了程式的安全性。 因此我們想開發一套SQL Injection攻擊防禦 系統,讓程式設計師不用擔心自己撰寫的程式 是否易遭受到駭客的SQL Injection攻擊,如此 一來,程式設計師只要專心賺寫程式即可。,4.研究方法,我們提出一個架構來實作SQL Injection的防 禦系統,此架構分成三個階段以及四個模組。,系統架構圖,三個階段 1.資料建置

4、階段 2.權限配置階段 3.SQL語句驗證階段 四個模組 1.權限配對模組 2.語句分離模組 3.輸入內容驗證模組 4.SQL語句驗證模組,4.1 資料建置階段,在資料建置階段,我們會將每一位使用者能使 用的SQL語句定義在比對列表內,且還會將使用 者不可以輸入的語句定義在資料集內。,權限列表,資料表,4.2 權限配置階段,伺服器欲與資料庫做連線時,會發送一個登入 需求封包給資料庫,需求內容封包含有帳號、密 碼及資料庫名稱。 在此階段,需求登入封包會先被權限配對模組 攔截,權限配對模組會分析需求封包的內容,並 與權限列表做比對,找出該帳號能使用的SQL語 句,將其結果傳送給語句分離模組。,4.

5、3 SQL語句驗證階段,這此階段,當網頁伺服器送出SQL語句要存取 資料庫時,會先經過架構驗證模組的驗證,架 構驗證模組會使用Needleman-Wunsch演算法來 將SQL語句內,使用者輸入的字串分離出來。,4.3.1 Needleman-Wunsch Algorithm,(一)產生一個矩陣 1. 定義正常SQL語句: A = a1a2aN,且長度Len(A) = N 2. 定義含有使用者輸入SQL語句: B = b1b2bM,且長度Len(B) = M 3. 定義最長共同子序列(Longest Common Subsequence)的矩陣: LCS(j, k) = LCS(a1a2aj,

6、 b1b2bk) 其中0 j N,0 k M 4. 若矩陣aj= bk,則 LCS(j, k) = LCS(j-1, k-1)+1, 但若是ajbk,則 LCS(j, k)= Max( LCS(j-1, k-1),LCS(j-1,j), LCS(j, k-1),(二)回溯矩陣,找出兩個語句相異的部分 定位在矩陣最右下角那一格,若aj=bk,則回溯到左上角單元格若ajbk,回溯到左上、上、左邊的值為最大的單元格,若有最大值相同的情形,則其優先級按照左上角、上面、左邊的順序,直到回溯至矩陣的左上角為止。 假設有兩個SQL語句: 含使用者輸入的語句 select * from user where

7、id = ken and pw = xyz 防禦系統設定的合法語句 select * from user where lo = and pw = 為了整個表達可以完整的被呈現,所以我們把一些符號做了簡化的動作 S=select , F=from ,W=where,當使用者輸入的字串被分離出來之後,我們 會將使用者輸入的字串傳送至輸入內容驗證模 組去判斷是否合法。 若判斷為合法,則回傳Successful的訊息給 SQL語句驗證模組,否則傳回Failure。,4.3.2 SQL語句驗證模組,使用Snort Inline來實作SQL語句驗證模組。,合法的SQL語句,非法的SQL語句,5.預計完成的工作項目,本計畫將被劃成三個階段來執行,以下將明確 定義階段時間與工作內容: 1.前置作業階段 期間: 2011/10/012011/11/01 工作產品:蒐集所有的SQL Injection語法、其他文件製作 2.系統建置階段 期間: 2011/11/012012/09/01 工作產品:主系統、規則資料庫、SQL語句驗證系統,3.系統測試階段 期間: 2012/09/012012/10/01 工作產品:系統測試、測試報告撰寫,Many thanks for your listening,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号