嚴(yán)老師的干貨分享
——成都正厚軟件
安全測(cè)試在做什么?
掃描?在很多人的眼中,做安全的就是整天拿個(gè)工具在哪里做掃描操作,使用各種不同的工具做掃描。是的,掃描是安全測(cè)試的很重要的一部分,掃描可以快速有效的發(fā)現(xiàn)問(wèn)題。掃描工具的易用性、方便性決定了重要地位。但是掃描工具的局限性、程序的不夠靈活等缺點(diǎn)也是顯而易見(jiàn)的。不管是掃描報(bào)告的分析、漏洞的深度挖掘、測(cè)試的組織等等的工作都離不開(kāi)安全測(cè)試人員,所以只能說(shuō)掃描工具減輕了測(cè)試人員的工作量,是安全測(cè)試的一種手段。
安全的本質(zhì)是什么?
信任、人性(網(wǎng)絡(luò)安全的漏洞是人)、止損、攻防
1.概念定義:
敏感數(shù)據(jù):敏感數(shù)據(jù)的具體范圍取決于產(chǎn)品具體的應(yīng)用場(chǎng)景,產(chǎn)品應(yīng)根據(jù)風(fēng)險(xiǎn)進(jìn)行分析和判斷。典型的敏感數(shù)據(jù)包括口令、銀行帳號(hào)、大批量個(gè)人數(shù)據(jù)、用戶通信內(nèi)容和密鑰等。個(gè)人數(shù)據(jù):指直接通過(guò)該數(shù)據(jù)或者結(jié)合該數(shù)據(jù)與其他的信息,可以識(shí)別出自然人的信息。
匿名化:指對(duì)個(gè)人數(shù)據(jù)進(jìn)行的更改(例如單向散列、截短、替換等,如需保留個(gè)人數(shù)據(jù)真實(shí)值與替換值之間的對(duì)應(yīng)關(guān)系,可以使用對(duì)稱加密或映射表方式,但密鑰/映射表必須由數(shù)據(jù)所有者控制),使原來(lái)有關(guān)個(gè)人的信息不再能歸屬到一個(gè)可識(shí)別的自然人,或推理這種歸屬需要耗費(fèi)過(guò)多、不相稱的時(shí)間、費(fèi)用和精力
2.我們應(yīng)該如何去著手
如何著手去做這個(gè)系統(tǒng)安全測(cè)試呢?作為一個(gè)測(cè)試人員要**系統(tǒng)整體的安全,這就需要有一個(gè)整體的結(jié)構(gòu)的框架,就像蓋房子一樣,先造鋼筋混凝土框架,然后磚塊去填充它。這里的鋼筋混凝土框架就是安全特性方向,其實(shí)就是從整體方向上的一個(gè)劃分,可以有如下簡(jiǎn)單的劃分。
2.1.測(cè)試的特性
安全特性:操作系統(tǒng)安全、數(shù)據(jù)庫(kù)安全、WEB安全、軟件的發(fā)布和安裝安全、協(xié)議與接口攻防、敏感數(shù)據(jù)保護(hù)、手機(jī)端安全、靜態(tài)代碼分析。
2.1.1.操作系統(tǒng)安全操作系統(tǒng)安全我們可以把它分為以下幾塊:系統(tǒng)漏洞(操作系統(tǒng)補(bǔ)丁)、系統(tǒng)配置(安全加固),業(yè)界權(quán)威工具Nessus,其他如retina、綠盟、天鏡等。開(kāi)源的工具可以使用OpenVAS。
2.1.2.數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)安全我們可以把它分為以下幾塊:數(shù)據(jù)庫(kù)漏洞(補(bǔ)?。?、數(shù)據(jù)庫(kù)配置特產(chǎn)(安全加固),工具可以使用Ngs。2.1.3.web安全
數(shù)據(jù)庫(kù)安全我們可以把它分為以下幾塊:身份驗(yàn)證、驗(yàn)證碼、會(huì)話管理、權(quán)限管理、敏感信息傳輸、安全審計(jì)、信息泄露、輸入校驗(yàn)、輸出編碼、上傳下載、異常處理、注釋代碼等,容器的安全(tomcat),應(yīng)用軟件安全(nginx、負(fù)載均衡軟件、jquery等),掃描工具:appScan、awvs2.1.4.軟件的發(fā)布與安裝安全發(fā)布件的完整性校驗(yàn)(簽名、哈希)防病毒:需要安裝的軟件需要經(jīng)過(guò)常用的殺毒軟件(如360、卡巴斯基、金山毒霸等)的掃描,**沒(méi)有病毒特種碼,以免被殺軟處理掉。2.1.5.協(xié)議與接口攻防業(yè)務(wù)交互數(shù)據(jù)在網(wǎng)絡(luò)中使用的協(xié)議安全性測(cè)試,協(xié)議測(cè)試工具:codenomical對(duì)外開(kāi)放的端口:系統(tǒng)對(duì)外開(kāi)放的端口必須是必須的,禁止開(kāi)放無(wú)用端口端口掃描工具:Nmap,近端可以直接在服務(wù)器上使用命令查看接口:接口接受的數(shù)據(jù)需要做嚴(yán)格的處理,接口數(shù)據(jù)嚴(yán)格校驗(yàn)測(cè)試2.1.6.敏感數(shù)據(jù)保護(hù)識(shí)別敏感數(shù)據(jù):密碼、秘鑰、會(huì)話標(biāo)識(shí);個(gè)人信息、商業(yè)機(jī)密、客戶信息等保護(hù):加密、存儲(chǔ)位置、傳輸方式;獲取數(shù)據(jù)脫敏、匿名化
2.1.7.手機(jī)端安全1、app的簽名、反逆向2、用戶隱私3、文件權(quán)限4、網(wǎng)絡(luò)通訊5、運(yùn)行時(shí)解釋保護(hù)6、組件權(quán)限保護(hù)7、升級(jí)8、3rd庫(kù)2.1.8.靜態(tài)代碼分析(純白盒)白盒測(cè)試主要是通過(guò)對(duì)代碼的瀏覽來(lái)發(fā)現(xiàn)問(wèn)題,當(dāng)然問(wèn)題的類型可能是跟我們黑灰盒總結(jié)的一致,拿出來(lái)單獨(dú)講是因?yàn)槠洳煌谄渌臏y(cè)試方式。1、危險(xiǎn)函數(shù)、方法2、工具檢測(cè)3、邏輯漏洞
灰盒:結(jié)合白盒和黑盒的一些思路,在實(shí)際的代碼審計(jì)中建議采用灰盒的方式,在需要的地方對(duì)代碼進(jìn)行動(dòng)態(tài)調(diào)試查看。審計(jì)中思路可以考慮如下這些部分:
1、涉及敏感數(shù)據(jù)的時(shí)候,檢查是get、post哪種形式發(fā)送數(shù)據(jù)Get傳輸?shù)臄?shù)據(jù)會(huì)被記錄在代理、瀏覽器、web容器tomcat等的日志中
2、提交銘感數(shù)據(jù)的時(shí)候是否有防止csrf的token、refer、驗(yàn)證碼等
3、sql注入1)Statement和preparestatement2)mybitas框架 #和$
4、XSS我們用的antisamy只能過(guò)濾基于標(biāo)簽的XSS偽造,其他的無(wú)法過(guò)濾,需要做二次過(guò)濾
5、邏輯:此處是指,邏輯思路不合理,不符合安全的一些思想,如權(quán)限最小化等等
6、參數(shù)范圍是否造成dos或者影響系統(tǒng)性能
7、權(quán)限校驗(yàn)、越權(quán):橫、縱、多步驟關(guān)聯(lián)性
8、session會(huì)話管理1)常規(guī)cookie及session形式2)把token作為session的形式,特別注入登錄用戶和token的綁定關(guān)系
9、參數(shù)是否是簡(jiǎn)單形式,是否可以造成遍歷
10、代碼中使用的第三方插件、開(kāi)源軟件是否是嘴新、是否有安全漏洞
11、代碼中所使用的加密算法,是否是安全的
12、跳轉(zhuǎn)中的redirect形式中不要帶敏感信息,會(huì)被發(fā)回客戶端重新請(qǐng)求的,相當(dāng)于把這些參數(shù)放在了get請(qǐng)求
13、SSRF服務(wù)端請(qǐng)求偽造,注意url中含有另外一個(gè)url的請(qǐng)求1)源碼中使用urlconnection 支持的協(xié)議除了http和https以外,還有file、ftp、jar、mailto等2)request、httpurlconnecttion、httpClient、URL等發(fā)起網(wǎng)絡(luò)請(qǐng)求
14、加密算法的使用,是否使用的是不合場(chǎng)景的弱算法
15、數(shù)據(jù)插入自增Id攻擊數(shù)據(jù)傳入過(guò)來(lái)做插入動(dòng)作,并且使用spring自動(dòng)綁定對(duì)象方法獲取數(shù)據(jù),之后使用生成的插入sql,此時(shí)自動(dòng)增長(zhǎng)id不要寫(xiě)到更新語(yǔ)句中,如果寫(xiě)入可能造成惡意注入integer范圍最da值2147483647,使功能不可用dos
16、Spring自動(dòng)綁定參數(shù),參數(shù)擴(kuò)展攻擊后臺(tái)使用的對(duì)象參數(shù)自動(dòng)綁定獲取,相應(yīng)的sql使用了自動(dòng)的if是否為null和為空的判斷條件,前臺(tái)可以根據(jù)猜測(cè)注入隊(duì)形的相應(yīng)的屬性實(shí)現(xiàn)非預(yù)料結(jié)果。