【专项测试】京东“安全测试”
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 京東安全測試
? ? ? ? ?信息安全是互聯(lián)網(wǎng)時代人們面臨的嚴重威脅,首先來看看近幾年比較著名的信息安全事件:
1、2011年12月,國內某程序員社區(qū)遭拖庫,600萬個賬戶信息泄露。
2、2014年3月,某旅游網(wǎng)站的系統(tǒng)存在技術漏洞,導致用戶的姓名、身份證號碼、銀行卡類別、銀行卡卡號、銀行卡CVV碼以及銀行卡6位pin泄露。
3、2014年5月,某論壇涉及800萬用戶信息遭泄露,信息包括用戶名、密碼、注冊IP、郵箱等。
4、2014年12月,某系統(tǒng)遭撞庫攻擊,13萬用戶信息泄露,包括用戶賬號、明文密碼、身份證、郵箱等敏感信息。
5、2015年10月,某郵箱遭攻擊,近5億條用戶信息被泄露,包括用戶名、密碼、密碼保護信息、登錄IP以及用戶生日等多個原始信息。
? ? ? ? 這些安全事件,也無疑將信息系統(tǒng)安全推至風口浪尖。京東商城作為一個知名的電子商務網(wǎng)站,面臨著更加嚴重的信息安全的挑戰(zhàn)。目前主要面臨的安全威脅及其防治措施如下圖所示:
?
圖24-7 主要的安全威脅及防治措施一、SQL注入漏洞
? ? ? ?SQL注入攻擊指的是通過構建特殊的輸入作為參數(shù)傳入Web應用程序,而這些輸入大都是SQL語法里的一些組合,通過執(zhí)行SQL語句進而執(zhí)行攻擊者所要的操作,其主要原因是程序沒有細致地過濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)。
SQL注入的原理:
? ? ? ?SQL注入可以分為平臺層注入和代碼層注入。平臺層注入是由于不安全的數(shù)據(jù)庫配置或數(shù)據(jù)庫平臺的漏洞所致;代碼層注入是由于程序員對輸入未進行細致的過濾,從而執(zhí)行了非法的數(shù)據(jù)查詢。所以,SQL注入的產生原因通常表現(xiàn)在以下幾方面:
①不當?shù)念愋吞幚?#xff1b;
②不安全的數(shù)據(jù)庫配置;
③不合理的查詢集處理;
④不當?shù)腻e誤處理;
⑤轉義字符處理不合適;
⑥多個提交處理不當。
SQL注入的防護:
? ? ? ? 為了保證數(shù)據(jù)庫安全,減少SQL注入的影響,SQL注入防護可以從以下幾個方面進行:
- ?不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對特殊字符進行轉換。
- 不使用動態(tài)拼裝SQL語句,可以使用參數(shù)化的SQL語句或者直接使用存儲過程進行數(shù)據(jù)查詢存取。
- 不使用管理員權限的數(shù)據(jù)庫連接(例如MySQL的root,SQL Server的sa),為每個應用使用單獨的權限,只授予有限的數(shù)據(jù)庫連接權限。
- 不把敏感信息直接存放,而是通過加密算法或者hash運算對敏感的信息進行處理。
- 應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝,比如用戶登錄給出“用戶名或密碼錯誤”,而不是給出“用戶名錯誤”、“密碼錯誤”之類的錯誤提示。
? ? ? ?對于平臺層SQL注入,這是運維部門安全運行管理的范疇,不在討論范圍之內。這里只討論代碼層的SQL注入,代碼層SQL注入的防治,主要要求開發(fā)工程師在代碼編寫過程中注意前文提到的防治方法,在開發(fā)工程師提交代碼后,對代碼通過靜態(tài)分析工具進行分析檢測,再由安全工程師對代碼進行安全分析,針對SQL語句進行分析。通過一些第三方工具對系統(tǒng)進行掃描,常見的第三方工具有JSky,Acunetix WVS等,可以發(fā)現(xiàn)一些安全威脅。?
二、防止XSS攻擊
? ? ? ? 跨站腳本漏洞是系統(tǒng)在處理用戶可控數(shù)據(jù)時,沒有對用戶可控數(shù)據(jù)做相關驗證或轉義,導致用戶可以對可控數(shù)據(jù)中插入惡意代碼,并執(zhí)行,導致對客戶端造成攻擊。XSS分為兩大類,存儲XSS和反射XSS,反射XSS主要是通過用戶是URL中的參數(shù)來實現(xiàn)的,存儲XSS是由于站點的一些form中沒有對用戶的輸入進行判斷,在顯示用戶輸入時也沒有進行轉義操作,導致用戶將一些惡意代碼寫入數(shù)據(jù)庫中,每次用戶訪問都會看到。
跨站腳本漏洞風險主要在于,如果跨站腳本漏洞被惡意利用的話,將會產生如下的安全風險:
- 盜取用戶cookie,然后偽造用戶身份登錄,泄漏用戶個人身份及用戶訂單信息。
- 操控用戶瀏覽器,借助其他漏洞可能導致對https加密信息的破解,導致登錄傳輸存在安全風險。
- 結合瀏覽器及其插件漏洞,下載病毒木馬到瀏覽者的計算機上執(zhí)行。
- 修改頁面內容,產生釣魚攻擊效果,例如偽造登錄框獲取用戶明文帳號密碼。
? ? ? ? XSS安全漏洞的掃描可以通過一些第三方工具(如Acunetix WVS等)來進行,自動檢測工具可能會誤報的情況,如果對掃描結果不確定是否存在XSS,可以通過Chrome瀏覽器加載一個XssSniper插件進行檢測。
?
圖24-8 Chrome中XssSniper插件?
? ? ? ?在目標列表中輸入索要測試的站點的列表,列表中支持通配符。編輯Payload列表,目的在于能夠根據(jù)現(xiàn)實的結果來判定出發(fā)的Payload項,如果不編輯也可以。開啟Fuzz,在瀏覽器的URL欄輸入要訪問的地址,等待結果即可。如果被訪問的URL含有XSS,會有一個彈窗顯示。
?
圖24-9 XssSniper的配置選項
三、Struts 2安全防護
? ? ? ? Apache Struts 2是一個用于開發(fā)Java EE網(wǎng)絡應用程序的開放源代碼網(wǎng)頁應用程序架構。它利用并延伸了Java Servlet API,鼓勵開發(fā)者采用MVC架構。Struts1設計的第一目標就是使MVC模式應用于web程序設計。但由于這個架構的一些先天不足,經(jīng)常會爆出一些致命的安全漏洞,并且Struts2開發(fā)組常被指漏洞修復手法不妥,要么修復后仍有可利用,要么無法修復并長期閑置。
? ? ? ?京東有很多系統(tǒng)采用struts2架構,所以時常關注Struts2的安全,京東特別針對struts2 的安全漏洞,開發(fā)了全新的安全補丁。為了避免strut2的后患,京東安全信息部倡導各部門逐漸用Spring架構取代struts2,各個研發(fā)部門已經(jīng)開始實施,隨著時間的推移,struts2將會被徹底預防。
總結
以上是生活随笔為你收集整理的【专项测试】京东“安全测试”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小技巧 - LeetCode 如何查看他
- 下一篇: [Leetcode][第207题][JA