freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

高級軟件工程(2009)高效的靜態(tài)分析-資料下載頁

2024-10-16 06:47本頁面
  

【正文】 破壞了不變量? ? 模式缺陷側(cè)重 共性約束 – 狀態(tài)與共性缺陷模式匹配? 結(jié)合 ! 第十一講 高效的靜態(tài)分析 44 /55 高級軟件工程 安全漏洞 1) SQL注入 2) 腳本注入 3) 跨站點攻擊 4)代碼分析 讓正確的人得到正確的服務! 第十一講 高效的靜態(tài)分析 45 /55 高級軟件工程 1) SQL注入 ? SQL 注入的成因主要是因為向數(shù)據(jù)庫提供的SQL 查詢語句是用字符串拼裝的方式生成的 ? 最經(jīng)常遭受 SQL注入的頁面通常是管理員 /用戶登陸點。不論是 asp 或是 jsp,如果不正確的編碼,都會出現(xiàn)這個漏洞 第十一講 高效的靜態(tài)分析 46 /55 高級軟件工程 假設我們有一個 JSP 頁面 ,它會把用戶名與密碼提交到指定的模塊 Controller調(diào)用 chekAdminLogin(String userName, String passWord) 進行登陸驗證 如果從表中找到匹配的記錄,則表示驗證成功。 否則返回 Null 表示登陸驗證失敗。 checkAdminLogin 將收集到的用戶名和密碼信息拼裝出 SQL 字符串,供 DAO 下層使用,以從數(shù)據(jù)庫中的管理員記錄表中讀取數(shù)據(jù) 第十一講 高效的靜態(tài)分析 47 /55 高級軟件工程 如果有人試圖在這里 進行惡意攻擊: 在登陸名輸入框中輸入 123 (任意值 ) 而在密碼輸入框中輸入 ’ OR ’1’=’1 那么由于我們的 SQL是靠拼出來的,所以最終提交給數(shù)據(jù)庫的將是 : SELECT * FROM TD_ADMIN AS A WHERE =’123’ AND =’’ OR ’1’=’1’ 很顯然,這句 SQL 由于后面被加上了永真條件,登陸是一定成功的。那么不論登陸者是否是管理員,輸入 ‘ OR ‘1’=’1 ,他都將能夠登陸系統(tǒng)。 public Admin checkAdminLogin(String userName, String password){ String strSQL =”SELECT * FROM TD_ADMIN AS A WHERE =’” + userName + ”’ AND =’” + password + ”’”。 對策之一: Java 中對該模式的實現(xiàn)有 PreparedStatment或者 NamingQuery一類的技術,實現(xiàn)了參數(shù)與邏輯的分離,可以從根本上杜絕 SQL注入。 第十一講 高效的靜態(tài)分析 48 /55 高級軟件工程 2) 腳本注入 ? 這里所說的腳本,通常指的是 JavaScript腳本,雖然JavaScript運行于客戶端,并且有安全沙箱的保護,但是放任惡意 JavaScript腳本是十分危險的 ? 一個網(wǎng)站,如果對輸入未做合理的驗證或過濾,在顯示輸出的時候又未做合適的格式化,那么便存在這種漏洞 ? 與 SQL注入不同,腳本注入沒有直接攻擊服務端,實際上是攻擊了客戶端 – 竊取信息! 第十一講 高效的靜態(tài)分析 49 /55 高級軟件工程 假設我們有一個新聞站點,每個新聞允許瀏覽者進行評論 瀏覽者提交的評論將被存儲在數(shù)據(jù)據(jù)庫專門的表中,并顯示在新聞的下邊 如果開發(fā)者除了字符長度外沒有做任何輸入合法驗證,那么這個站點的評論輸入,就存在安全漏洞。 假設我們在評論中輸入如下內(nèi)容 : 那么,這句話將被存儲在數(shù)據(jù)庫評論表中。 以后,每一個瀏覽者打開這個新聞頁面是,都將會彈出這樣一個消息框。 上面的攻擊者很仁慈,沒有做過多的破壞。但是如果輸入 : 那么打開這個新聞頁面,該頁面將被從定向到 baidu的頁面上。 如果目標頁面一個有惡意代碼的頁面,那么每個瀏覽者的機器都可能中毒。 第十一講 高效的靜態(tài)分析 50 /55 高級軟件工程 如果輸入 : 好文 ! 頂 iframe src=”帶病毒的頁面” width=”0” height=”0”/iframe 那么在新聞頁面上看不到任何異狀 但點擊該信息的瀏覽器會悄悄下載病毒 ,同時也使腳本注入的攻擊力提高不少 對策之一: 提供合理的過濾或者轉(zhuǎn)換程序,在輸入存放于數(shù)據(jù)庫前,或者是顯示在頁面前對數(shù)據(jù)進行處理。 盡一切可能,避免用戶的輸入有執(zhí)行的可能。 第十一講 高效的靜態(tài)分析 51 /55 高級軟件工程 3)跨站點攻擊 ? 跨站攻擊和腳本注入非常相似,但必須要誘使受害者點擊鏈接才能得以執(zhí)行 ? 與腳本注入的不同 – 用于腳本注入的惡意腳本提交后,將存儲在服務器數(shù)據(jù)庫中,導致每個訪問問題頁面的瀏覽者都將遭到惡意腳本的攻擊 – 而跨站攻擊多數(shù)情況是將惡意腳本構造于 url參數(shù)中,通過欺騙的方式去誘使受害者點擊鏈接,使得惡意腳本執(zhí)行 ? 雖然 Web 站點上存在安全漏洞,但是 Web 站點從未受到直接傷害 ? 漏洞難于查找,特別容易被忽略 crosssite scripting,簡稱 XSS 第十一講 高效的靜態(tài)分析 52 /55 高級軟件工程 ? 惡意攻擊者(這里使用 表示)通過 Email 或 HTTP 將某銀行的網(wǎng)址鏈接發(fā)給用戶(銀行用 表示),該鏈接中附加了惡意的腳本(上圖步驟 1) ? 用戶訪問發(fā)來的鏈接,進入銀行網(wǎng)站,同時,嵌在鏈接中的腳本被用戶的瀏覽器執(zhí)行(上圖步驟 3) ? 用戶在銀行網(wǎng)站的所有操作,包括用戶的 cookie 和 session 信息,都被腳本收集到,并且在用戶毫不知情的情況下發(fā)送給惡意攻擊者(上圖步驟 4) ? 惡意攻擊者使用偷來的 session 信息,偽裝成該用戶,進入銀行網(wǎng)站,進行非法活動(上圖步驟 5) 第十一講 高效的靜態(tài)分析 53 /55 高級軟件工程 4)代碼分析 找出所有的系統(tǒng)輸入位置,確定可能的攻擊界面 用戶輸入 數(shù)據(jù)庫 配置文件 網(wǎng)絡服務 命令行 注冊表 …….. 目標系統(tǒng) 第十一講 高效的靜態(tài)分析 54 /55 高級軟件工程 對所有的輸入進行驗證 語法檢查:格式是否正確,特殊字符過濾 白名單、黑名單 語義檢查:輸入是否恰當 分析污染傳播 使用數(shù)據(jù)流分析判斷攻擊者能控制的值 污染傳播模式 源: read(), getenv()。 getpass() 等 接收器: (), strcpy()。 傳遞: trim()。 …… 第十一講 高效的靜態(tài)分析 55 /55 高級軟件工程 National Vulnerability Database (國家 漏洞 數(shù)據(jù)庫)
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1