怎么测试服务器端口是否对外开放_从零开始内建你的安全测试流程
一、 安全測(cè)試的意義
安全問題,沒發(fā)生的時(shí)候我們可以僥幸,一旦發(fā)生生產(chǎn)安全問題,對(duì)很多公司來說可能就是黑天鵝事件了。平臺(tái)的安全,是我們測(cè)試中不可舍棄的一環(huán),而且需要長(zhǎng)期持續(xù)的關(guān)注。
二、 從哪里入手
很多公司沒有專職的安全測(cè)試人員,一個(gè)是安全涉及的技術(shù)棧比較廣,要做好還需要對(duì)每一個(gè)技術(shù)棧有深入的研究,市面上的安全人才是很稀缺的;另外一般小公司去養(yǎng)一個(gè)專職的安全人員,往往會(huì)去對(duì)比第三方安全外包平臺(tái),發(fā)現(xiàn)提交外包平臺(tái)會(huì)更劃算。
團(tuán)隊(duì)中沒有安全人員,特別是在敏捷的當(dāng)下,也不可能每一次迭代都提交第三方外包,那作為測(cè)試人員,我們就需要去思考,如何在測(cè)試流程中插入安全測(cè)試這一環(huán),畢竟生產(chǎn)出損,你是無法置身事外的,引入安全測(cè)試也能為公司帶來價(jià)值
那么我們?cè)撊绾伍_展安全測(cè)試呢,很多同學(xué)目前可能直接用APPscan或zap進(jìn)行掃描,這也是一個(gè)方式,但有些業(yè)務(wù)相關(guān)的安全問題這種工具是無法識(shí)別到的,有些還是需要手工環(huán)節(jié)的接入,安全測(cè)試也是測(cè)試的一種類型,在整個(gè)軟件研發(fā)的生命周期中,我們是如何去保障產(chǎn)品質(zhì)量的?同樣,我們也按照這個(gè)思路,去建設(shè)我們的安全測(cè)試執(zhí)行路徑
三、 萬丈高樓從地起,打造我們的安全測(cè)試流程
3.1 需求階段
在需求評(píng)審階段,我們除了關(guān)注需求的合理性和價(jià)值,還要加入破壞者思維去審視這個(gè)需求–這個(gè)需求哪里有漏洞,可以讓我去破壞他的規(guī)則。
比如商家做活動(dòng),評(píng)論下點(diǎn)贊越多的發(fā)送禮品,那么我是不是可以通過接口去不斷的刷點(diǎn)贊,讓你接口tps過載,導(dǎo)致別人無法點(diǎn)贊,這樣我就有更大的機(jī)會(huì)拿取禮品。所以這樣就引申出來一個(gè)安全性需求–我們需要對(duì)活動(dòng)的點(diǎn)贊和評(píng)論做限流處理。
3.2 代碼層面
靜態(tài)代碼掃描
我們可以引入靜態(tài)代碼掃描工具,比如靜態(tài)代碼掃描,目前也有很多開源的靜態(tài)代碼掃描工具,比如大家常用的sonar
三方組件的掃描
除了靜態(tài)代碼的掃描,開發(fā)人員在引用第三方依賴包的時(shí)候,獲取來源比較隨意,很可能下載的這個(gè)依賴包就包含病毒,程序中集成的第三方的組件也是需要做安全掃描的,比如node的依賴包安全掃描就可以選擇nsp這個(gè)開源軟件
3.3 數(shù)據(jù)脫敏
關(guān)于數(shù)據(jù)脫敏我們主要關(guān)注兩部分,一個(gè)是敏感數(shù)據(jù)的存儲(chǔ)是否做了加密處理,比如用戶的賬戶密碼、商家的卡密,這些都需要在數(shù)據(jù)落地的地方做加密存儲(chǔ)。我們需要通過查詢數(shù)據(jù)庫或者文件,確認(rèn)數(shù)據(jù)是否做了加密存儲(chǔ)
另外一塊就是在傳輸?shù)倪^程中,敏感數(shù)據(jù)是否做了加密處理,比如我們的登錄注冊(cè)功能,在前后端接口交互過程中,密碼是否做了加密處理;獲取短信相關(guān)的業(yè)務(wù),接口是否直接將短信做了返回等。我們可以通過瀏覽器自帶的開發(fā)者工具F12或者第三方工具fiddler、Charles抓包測(cè)試。
3.4 跨目錄權(quán)限
在商戶管理側(cè),涉及到了商戶和子賬號(hào)的業(yè)務(wù)需求,子賬戶是可以定義訪問哪些頁面的角色。當(dāng)我們沒有給子賬戶賦權(quán)的頁面,他是否可以直接通過瀏覽器中輸入url進(jìn)行訪問,這個(gè)我們是需要進(jìn)行測(cè)試的。
3.5 跨站腳本
跨站腳本,大家比較熟知的有xss,跨站腳本會(huì)導(dǎo)致會(huì)話被劫持、敏感信息泄露甚至賬戶被盜的風(fēng)險(xiǎn),最簡(jiǎn)單的方式是在有文本框的地方通過構(gòu)造js或者h(yuǎn)tml保存,看是否做了轉(zhuǎn)義處理;另外也可以通過帶參數(shù)的url后面進(jìn)行js傳值進(jìn)行請(qǐng)求,查看是否執(zhí)行了js
3.6 SQL注入
sql注入大家都比較熟悉,在界面上做數(shù)據(jù)庫相關(guān)的操作,我們可以構(gòu)造一些傳入?yún)?shù)去改變sql的最終執(zhí)行邏輯,比如針對(duì)查詢類的,http://xxx.com/salay/userid=9898,我們可以再后面修改9898為9898 “or 1=1“,這樣在最終sql查詢中就變成一個(gè)始終為真的數(shù)據(jù),如果存在注入問題會(huì)將所有人的薪資數(shù)據(jù)暴露出來。sql注入相關(guān)的測(cè)試我們可以借用sqlmap這個(gè)工具
3.7 越權(quán)
越權(quán),簡(jiǎn)單的理解就是A用戶操作了B用戶的數(shù)據(jù),比如我們?cè)谙聠芜^程中,商品A是給會(huì)員的購買的,非會(huì)員在獲取商品ID后,通過下單結(jié)構(gòu)模擬下單商品A,如果能夠成功,就證明存在越權(quán)的問題,我們可以通過fiddler進(jìn)行請(qǐng)求截取,然后修改傳參進(jìn)行測(cè)試
3.8 上傳下載
文件的上傳下載主要有三點(diǎn)
一個(gè)是對(duì)用戶磁盤空間的大小限制,比如提供了一個(gè)上傳功能,用戶無限制的上傳大容量文件,導(dǎo)致磁盤成本巨大。
文件類型校驗(yàn)
比如要上傳excel的,用戶上傳了html文件,這個(gè)是存在一定的風(fēng)險(xiǎn)的,特別是上傳后可以直接訪問資源文件,這樣用戶可以通過上傳的html做一些xss的攻擊
資源下載的安全控制,比如用戶下載自己的工資條,是這樣一個(gè)鏈接,http://xxx.con/8888.xls,這樣就可以聯(lián)想修改8888這個(gè)值為其他值,查看他人的敏感數(shù)據(jù)
3.9 服務(wù)器端口
服務(wù)器端口的測(cè)試,對(duì)有些自建機(jī)房,直接通過物理機(jī)進(jìn)行部署的會(huì)很有用處,比如有些不需要使用的端口對(duì)外開放了,惡意用戶可能利用該端口從事一些非法操作,我們可以通過nmap進(jìn)行服務(wù)器的端口掃描,非必須的端口要關(guān)閉
3.10 業(yè)務(wù)需求維度
上面的測(cè)試項(xiàng)是通用性的規(guī)則,結(jié)合具體的業(yè)務(wù)需求,我們也可以產(chǎn)出一些安全測(cè)試點(diǎn),比如針對(duì)登錄注冊(cè)的需求,我們從密碼強(qiáng)度、驗(yàn)證碼可以產(chǎn)出安全測(cè)試用例
針對(duì)有些用戶類的API接口,我們可以做限流的策略,比如獲取短信驗(yàn)證碼,我們就要做一些風(fēng)控策略,否則遇到惡意用戶,會(huì)造成公司短信成本損失
四、 結(jié)束語
安全是質(zhì)量保障不可或缺的一環(huán),作為測(cè)試人員,我們可以從最基礎(chǔ)開始去打造我們的安全測(cè)試流程,與其他測(cè)試類型一樣將安全的思想貫穿在整個(gè)軟件研發(fā)生命周期,做好安全質(zhì)量?jī)?nèi)建。也希望大家一起交流你們是如何做安全測(cè)試的
總結(jié)
以上是生活随笔為你收集整理的怎么测试服务器端口是否对外开放_从零开始内建你的安全测试流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 声明变量_Python的变
- 下一篇: python人脸识别框很小_人脸识别:从