安全測(cè)試概念
安全測(cè)試是一種軟件測(cè)試投放,可發(fā)現(xiàn)軟件應(yīng)用程序中的漏洞,威脅,風(fēng)險(xiǎn)并防止來(lái)自入侵者的惡意攻擊蕊苗。 安全測(cè)試的目的是確定軟件系統(tǒng)的所有可能漏洞和弱點(diǎn),這些漏洞和弱點(diǎn)可能導(dǎo)致信息沿彭,收入損失朽砰,組織雇員或外部人員的聲譽(yù)受損。
安全測(cè)試的目標(biāo)是識(shí)別系統(tǒng)中的威脅并衡量其潛在漏洞喉刘,以使系統(tǒng)不會(huì)停止運(yùn)行或被利用瞧柔。 它還有助于檢測(cè)系統(tǒng)中所有可能的安全風(fēng)險(xiǎn),并幫助開發(fā)人員通過(guò)編碼解決這些問(wèn)題睦裳。
1.1 安全測(cè)試舉措
保密 - 它可以防止向非預(yù)期接收者披露信息造锅。
完整性 - 它允許從發(fā)送者向預(yù)期接收者傳輸準(zhǔn)確和正確的所需信息。
身份驗(yàn)證 - 驗(yàn)證并確認(rèn)用戶的身份廉邑。
授權(quán) - 它指定對(duì)用戶和資源的訪問(wèn)權(quán)限哥蔚。
可用性 - 確保準(zhǔn)備就緒的信息倒谷。
不可否認(rèn)性 - 它確保發(fā)送者或接收者不會(huì)拒絕發(fā)送或接收消息。
1.2 常見的安全漏洞
1.2.1SQL 注入攻擊
名詞解釋:SQL 注入攻擊(SQL Injection)肺素,簡(jiǎn)稱注入攻擊恨锚、SQL 注入宇驾,被廣泛用于非法獲取網(wǎng)站控制權(quán)倍靡,是發(fā)生在應(yīng)用程序的數(shù)據(jù)庫(kù)層上的安全漏洞。由于在設(shè)計(jì)程序時(shí)课舍,忽略了對(duì)輸入字符串中夾帶的 SQL 指令的檢查塌西,被數(shù)據(jù)庫(kù)誤認(rèn)為是正常的 SQL 指令而運(yùn)行,從而使數(shù)據(jù)庫(kù)受到攻擊筝尾,可能導(dǎo)致數(shù)據(jù)被竊取捡需、更改、刪除筹淫,甚至執(zhí)行系統(tǒng)命令等站辉,以及進(jìn)一步導(dǎo)致網(wǎng)站被嵌入惡意代碼、被植入后門程序等危害损姜。
1.2.2 文件上傳
名詞解析:文件上傳漏洞是指由于程序代碼未對(duì)用戶提交的文件進(jìn)行嚴(yán)格的分析和檢查饰剥,導(dǎo)致攻擊者可以上傳可執(zhí)行的代碼文件,從而獲取 Web 應(yīng)用的控制權(quán)限(Getshell)摧阅。
1.2.3 權(quán)限漏洞
名詞解析:訪問(wèn)控制是指用戶對(duì)系統(tǒng)所有訪問(wèn)的權(quán)限控制汰蓉,通常包括水平權(quán)限和垂直權(quán)限。訪問(wèn)控制問(wèn)題是所有業(yè)務(wù)系統(tǒng)都可能產(chǎn)生的邏輯類漏洞棒卷,很難通過(guò)日常的安全工具掃描或防護(hù)顾孽,通常會(huì)造成大量用戶數(shù)據(jù)泄露事件。
水平越權(quán):同一權(quán)限(角色)級(jí)別的用戶之間所產(chǎn)生的問(wèn)題比规,如 A 用戶可以未授權(quán)訪問(wèn) B 用戶的數(shù)據(jù)等若厚。
垂直越權(quán):不同權(quán)限(角色)級(jí)別的用戶之間所產(chǎn)生的問(wèn)題,如普通用戶可未授權(quán)進(jìn)行管理操作蜒什,未登錄用戶可以訪問(wèn)需授權(quán)應(yīng)用等测秸。
1.2.4 暴力破解
名詞解析:暴力破解是指攻擊者通過(guò)遍歷或字典的方式,向目標(biāo)發(fā)起大量請(qǐng)求吃谣,通過(guò)判斷返回?cái)?shù)據(jù)包的特征來(lái)找出正確的驗(yàn)證信息乞封,從而繞過(guò)驗(yàn)證機(jī)制。隨著互聯(lián)網(wǎng)眾多網(wǎng)站的數(shù)據(jù)庫(kù)被泄露岗憋,攻擊者選擇的樣本可以更具針對(duì)性肃晚,暴力破解的成功率也在不斷上升。
1.2.5 拒絕服務(wù)攻擊
名詞解析:拒絕服務(wù)攻擊(DoS仔戈,Denial of Service)是利用合理的請(qǐng)求造成資源過(guò)載关串,從而導(dǎo)致服務(wù)不可用的一種攻擊方式拧廊。分為針對(duì) Web 應(yīng)用層的攻擊、客戶端/APP 的攻擊晋修。
1.2.6 敏感信息泄露
名詞解析:敏感信息泄露是指包括用戶信息吧碾、企業(yè)員工信息、內(nèi)部資料等不應(yīng)當(dāng)被外部訪問(wèn)到的數(shù)據(jù)通過(guò)網(wǎng)站墓卦、接口倦春、外部存儲(chǔ)等途徑被未授權(quán)泄露到外部的漏洞。信息泄露漏洞會(huì)導(dǎo)致大量用戶或企業(yè)信息被惡意利用落剪,進(jìn)行詐騙睁本、賬戶竊取等,給用戶和企業(yè)帶來(lái)嚴(yán)重的不良影響忠怖。并且信息一旦信息被泄露呢堰,影響會(huì)很難消除。
1.2.7 業(yè)務(wù)邏輯漏洞
名詞解析:業(yè)務(wù)邏輯漏洞是指由于業(yè)務(wù)在設(shè)計(jì)時(shí)考慮不全所產(chǎn)生的流程或邏輯上的漏洞凡泣,如用戶找回密碼缺陷枉疼,攻擊者可重置任意用戶密碼;如短信漏洞鞋拟,攻擊者可無(wú)限制利用接口發(fā)送短信骂维,惡意消耗企業(yè)短信資費(fèi),騷擾用戶等严卖。由于業(yè)務(wù)邏輯漏洞跟業(yè)務(wù)問(wèn)題貼合緊密席舍,常規(guī)的安全設(shè)備無(wú)法有效檢測(cè)出,多數(shù)需要人工根據(jù)業(yè)務(wù)場(chǎng)景及特點(diǎn)進(jìn)行分析檢測(cè)哮笆。
1.2.8 跨站腳本攻擊(XSS)
名詞解析:跨站腳本攻擊(XSS, Cross Site Script)通常指黑客通過(guò) “HTML 注入” 篡改了網(wǎng)頁(yè)来颤,插入惡意腳本,從而在用戶瀏覽網(wǎng)頁(yè)時(shí)稠肘,控制用戶瀏覽器的一種攻擊福铅。XSS 漏洞可被用于用戶身份竊取(特別是管理員)项阴、行為劫持滑黔、掛馬、蠕蟲环揽、釣魚等略荡。XSS 是目前客戶端 Web 安全中最重要的漏洞。
XSS 按效果的不同可以分為以下 3 種歉胶。
反射型 XSS 攻擊:頁(yè)面僅把用戶輸入直接回顯在頁(yè)面或源碼中汛兜,需要誘使用戶點(diǎn)擊才能成功。
存儲(chǔ)型 XSS 攻擊:XSS 攻擊代碼會(huì)被存儲(chǔ)在服務(wù)器中通今,由于用戶可能會(huì)主動(dòng)瀏覽被攻擊頁(yè)面粥谬,此種方法危害較大肛根。
DOM 型 XSS 攻擊:通過(guò)修改頁(yè)面的 DOM 節(jié)點(diǎn)形成 XSS,嚴(yán)格來(lái)講也可劃為反射型 XSS漏策。
1.2.9 跨站點(diǎn)請(qǐng)求偽造(CSRF)
名詞解析:跨站點(diǎn)請(qǐng)求偽造(CSRF, Cross Site Request Forgery)派哲。由于重要操作的所有參數(shù)都是可以被攻擊者猜到,攻擊者即可偽造請(qǐng)求掺喻,利用用戶身份完成攻擊操作芭届,如發(fā)布文章、購(gòu)買商品巢寡、轉(zhuǎn)賬喉脖、修改資料甚至密碼等。
2 安全測(cè)試的測(cè)試點(diǎn)
2.1 權(quán)限
網(wǎng)站一般都規(guī)定了什么樣的用戶可以做什么事抑月。比如版主可以修改所有人的帖子,而你普通用戶只能編輯自己的帖子舆蝴,同樣游客只能看大家的帖子谦絮。這就是簡(jiǎn)單的權(quán)限。如果少了安全性保證洁仗,那么就容易有人跳出權(quán)限做他不該做的事情层皱。
2.2 修改提交數(shù)據(jù)信息
比如一個(gè)支付商城,如果通過(guò)抓包抓到的提交價(jià)格赠潦,經(jīng)過(guò)修改再發(fā)包可以通過(guò)叫胖。簡(jiǎn)單來(lái)說(shuō)就是本來(lái) 100 塊錢買的東西,抓包修改為 1 塊就能成功購(gòu)買她奥。這就成為了一個(gè)巨大的隱患瓮增。
2.3 類似跨站腳本的安全隱患
HTML 注入。所有 HTML 注入范例只是注入一個(gè) JavaScript 彈出式的警告框:alert(1)哩俭。
做壞事绷跑。如果您覺(jué)得警告框還不夠刺激,當(dāng)受害者點(diǎn)擊了一個(gè)被注入了 HTML 代碼的頁(yè)面鏈接時(shí)攻擊者能作的各種的惡意事情凡资。
誘捕受害者砸捏,可能會(huì) redirect 到另一個(gè)釣魚的其他網(wǎng)站之類的,使其蒙受損失隙赁。
2.4 敏感詞的校驗(yàn)
比如一個(gè)政府部門的一個(gè)網(wǎng)站或者 app垦藏,里邊可以輸入一些有違目前制度以及一些領(lǐng)導(dǎo)人的詞匯的問(wèn)題,這樣的影響是非常大的伞访,所以我們要避免這些影響的發(fā)生掂骏。
3?
安全測(cè)試是在 IT 軟件產(chǎn)品的生命周期中,特別是產(chǎn)品開發(fā)基本完成到發(fā)布階段咐扭,對(duì)產(chǎn)品進(jìn)行檢驗(yàn)以驗(yàn)證產(chǎn)品符合安全需求定義和產(chǎn)品質(zhì)量標(biāo)準(zhǔn)的過(guò)程芭挽,可以說(shuō)滑废,安全測(cè)試貫穿于軟件的整個(gè)生命周期。下面通過(guò)一張圖描述軟件生命周期各個(gè)階段的安全測(cè)試袜爪,如下圖所示蠕趁。
上圖中的風(fēng)險(xiǎn)分析、靜態(tài)分析辛馆、滲透測(cè)試都屬于安全測(cè)試的范疇俺陋,與普通測(cè)試相比,安全測(cè)試需要轉(zhuǎn)換視角昙篙,改變測(cè)試中模擬的對(duì)象腊状。下面從以下維度比較常規(guī)測(cè)試與安全測(cè)試的不同。
3.1 測(cè)試目標(biāo)不同
普通測(cè)試以發(fā)現(xiàn) Bug 為目標(biāo);安全測(cè)試以發(fā)現(xiàn)安全隱患為目標(biāo)苔可。
3.2 假設(shè)條件不同
普通測(cè)試假設(shè)導(dǎo)致問(wèn)題的數(shù)據(jù)是用戶不小心造成的缴挖,接口一般只考慮用戶界面;安全測(cè)試假設(shè)導(dǎo)致問(wèn)題的數(shù)據(jù)是攻擊者處心積慮構(gòu)造的,需要考慮所有可能的攻擊途徑焚辅。
3.3 思考域不同
普通測(cè)試以系統(tǒng)所具有的功能為思考域;安全測(cè)試的思考域不但包括系統(tǒng)的功能映屋,還有系統(tǒng)的機(jī)制、外部環(huán)境同蜻、應(yīng)用和數(shù)據(jù)自身安全風(fēng)險(xiǎn)與安全屬性等棚点。
3.4 問(wèn)題發(fā)現(xiàn)模式不同
普通測(cè)試以違反功能定義為判斷依據(jù);安全測(cè)試以違反權(quán)限與能力的約束為判斷依據(jù)。
4 工作中的安全測(cè)試
4.1 敏感詞校驗(yàn)
步驟:
對(duì)小程序湾蔓、h5瘫析、官網(wǎng)帶輸入框的進(jìn)行敏感詞輸入、搜索默责。
小程序校驗(yàn):
官網(wǎng)校驗(yàn):
驗(yàn)證是否對(duì)敏感詞有攔截贬循,如有攔截則正常,如不能攔截則存在安全問(wèn)題傻丝。
4.2 明文傳輸
對(duì)系統(tǒng)傳輸過(guò)程中的敏感內(nèi)容是明文&密文進(jìn)行檢查甘有,設(shè)計(jì)到的模塊:登錄、支付葡缰、注冊(cè)的手機(jī)號(hào)亏掀、身份證、郵箱泛释。
步驟:
對(duì)傳輸敏感信息場(chǎng)景進(jìn)行抓包滤愕。
分析其數(shù)據(jù)包中的相關(guān)敏感字段是否為明文。
例如接口中手機(jī)號(hào)怜校、座機(jī)號(hào)间影、姓名都是明文:
4.3 越權(quán)訪問(wèn)
測(cè)試是否可以通過(guò) url 直接獲取管理員和其他用戶信息。
步驟:
查看 url 中是否存在 admin/user/system/pwd 等敏感目錄茄茁。
當(dāng)系統(tǒng)存在多個(gè)不同權(quán)限的管理員時(shí)魂贬,看低權(quán)限的管理員能不能訪問(wèn)到高權(quán)限的管理的資源巩割。
當(dāng)系統(tǒng)存在多個(gè)需要登錄用戶,用 A 用戶進(jìn)行登錄付燥,記錄所瀏覽的個(gè)人資源的 url 和修改刪除的操作宣谈;退出 A 用戶后,登錄 B 用戶键科,使用所記錄的 url 來(lái)直接訪問(wèn)闻丑,看是否可以訪問(wèn)成功或者操作成功。
4.4 非法注入
測(cè)試系統(tǒng)是否對(duì)輸入進(jìn)行過(guò)濾和轉(zhuǎn)移勋颖,設(shè)計(jì)到的模塊:搜索框嗦嗡、輸入框、備注信息饭玲、上傳文件侥祭、URL、輸入框咱枉、備注信息卑硫。
步驟:
在系統(tǒng)的 URL 地址后面,輸入測(cè)試語(yǔ)句: 蚕断;看是否會(huì)有彈框展示。
在搜索框入挣、輸入框亿乳、備注信息中輸入測(cè)試語(yǔ)句: ;看是否會(huì)有彈框展示径筏。
官網(wǎng)校驗(yàn)如圖:
4.4.1 上傳文件
步驟:
在上傳的文件中輸入: 葛假,文件名為 test。
點(diǎn)擊上傳滋恬,查看上傳接口聊训,將上傳的文件名改為 html 文件,然后訪問(wèn)該文件恢氯,如可以訪問(wèn)則存在問(wèn)題带斑,如不能訪問(wèn)則正常。
4.4.2 文件下載
步驟:
點(diǎn)擊文件下載勋拟,查看文件下載接口并進(jìn)行記錄勋磕。
修改文件下載接口,例如 xxxxx 下載接口/../對(duì)路徑進(jìn)行跳轉(zhuǎn)嘗試下載其他目錄下的文件敢靡,看是否可以正常下載挂滓,如可以下載則存在問(wèn)題,如果不能下載則正常啸胧。
4.5 短信赶站、郵箱驗(yàn)證
涉及到的模塊:觸發(fā)短信幔虏、郵箱驗(yàn)證碼的相關(guān)場(chǎng)景。
步驟:
操作密碼找回贝椿、獲取驗(yàn)證碼獲取功能想括,記錄該獲取接口。
頻繁調(diào)用密碼找回团秽、驗(yàn)證驗(yàn)證碼接口主胧,看是否存在攔截,以防短信被刷习勤。
查看驗(yàn)證碼接口踪栋,看是否可以通過(guò)接口截取到驗(yàn)證碼信息。
如下京東快遞 h5图毕,短信防刷如圖所示:
4.6 密碼健壯性
測(cè)試密碼夷都、驗(yàn)證碼驗(yàn)證方式是否可靠,是否可以被暴力猜測(cè)直到命中予颤。
步驟:
登錄是接入公司的統(tǒng)一登錄 passport囤官,可忽略。
驗(yàn)證碼的場(chǎng)景蛤虐,使用抓包工具党饮,修改接口中的密碼、驗(yàn)證碼驳庭,多次嘗試輸入錯(cuò)誤的驗(yàn)證碼刑顺,如果沒(méi)有輸入次數(shù)上限可以暴力猜測(cè)直到命中,則存在漏洞饲常。
4.7 數(shù)據(jù)安全
檢測(cè)系統(tǒng)中敏感數(shù)據(jù)的存儲(chǔ)是否安全蹲堂。
步驟:
檢查敏感數(shù)據(jù)是否加密存儲(chǔ),檢查對(duì)應(yīng)的數(shù)據(jù)庫(kù)表贝淤,防止拖庫(kù)后信息泄露柒竞。
檢查敏感數(shù)據(jù)在操作界面是否進(jìn)行了脫敏操作,例如:密碼的顯示隱藏選項(xiàng)播聪、手機(jī)號(hào)朽基、身份證號(hào)的展示等。
檢查數(shù)據(jù)設(shè)置是否安全犬耻,檢查在輸入設(shè)計(jì)錢財(cái)?shù)倪吔缰挡染В欠窨梢暂斎敕虾褪欠癯^(guò)最大的數(shù)額。
定期檢測(cè)數(shù)據(jù)庫(kù)中敏感數(shù)據(jù)是否做了脫敏處理:
4.8 支付相關(guān)
設(shè)計(jì)到的場(chǎng)景模塊:先攬后付枕磁、達(dá)達(dá)支付渡蜻、協(xié)商再投。
步驟:
例如在線支付、達(dá)達(dá)支付茸苇、協(xié)商再投在調(diào)取收銀臺(tái)排苍、微信支付時(shí),查看支付接口的調(diào)用学密。
查看支付頁(yè)面金額是否正確淘衙,是否存在負(fù)數(shù)的情況。
查看支付接口腻暮,看是否可以通過(guò)接口截取到支付密碼信息彤守。