1.SQL注入攻擊
名詞解釋:
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)站被嵌入惡意代碼、被植入后門(mén)程序等危害。
常見(jiàn)發(fā)生位置:
1) URL參數(shù)提交,主要為GET請(qǐng)求參數(shù);
2) 表單提交,主要是POST請(qǐng)求,也包括GET請(qǐng)求;
3) Cookie參數(shù)提交;
4) HTTP請(qǐng)求頭部的一些可修改的值,比如Referer、User_Agent等;
5) 一些邊緣的輸入點(diǎn),比如.mp3、圖片文件的一些文件信息等。
防御措施:
1) 使用預(yù)編譯語(yǔ)句。一般來(lái)說(shuō),防御SQL注入的最佳方式,就是使用預(yù)編譯語(yǔ)句,綁定變量,但對(duì)現(xiàn)有代碼的改動(dòng)量較大;
2) 使用存儲(chǔ)過(guò)程。使用安全的存儲(chǔ)過(guò)程可在一定程度上對(duì)抗SQL注入,但要注意此種方法并不是100%安全;
3) 嚴(yán)格檢查用戶數(shù)據(jù)。對(duì)用戶傳入的數(shù)據(jù)類型及內(nèi)容進(jìn)行嚴(yán)格的檢查。對(duì)數(shù)據(jù)類型檢查,如利用ID查詢時(shí)判斷是否為整型,輸入郵箱時(shí)判斷郵箱格式,輸入時(shí)間、日期等必須嚴(yán)格按照時(shí)間、時(shí)期格式等;對(duì)數(shù)據(jù)內(nèi)容進(jìn)行檢查,如嚴(yán)格檢測(cè)用戶提交數(shù)據(jù)中是否包含敏感字符或字符串,是否匹配某種注入規(guī)則,嚴(yán)格轉(zhuǎn)義特殊字符等。注意此種方法雖然便于實(shí)施,但容易產(chǎn)生誤報(bào)和漏報(bào),且容易被繞過(guò);
4) 其他。使用安全的編碼函數(shù)、統(tǒng)一各數(shù)據(jù)層編碼格式(如統(tǒng)一使用UTF-8等)、嚴(yán)格限制數(shù)據(jù)庫(kù)用戶權(quán)限、定期進(jìn)行代碼黑盒白盒掃描、避免將錯(cuò)誤信息顯示到頁(yè)面等。
2.文件上傳
名詞解釋:
文件上傳漏洞是指由于程序代碼未對(duì)用戶提交的文件進(jìn)行嚴(yán)格的分析和檢查,導(dǎo)致攻擊者可以上傳可執(zhí)行的代碼文件,從而獲取Web應(yīng)用的控制權(quán)限(Getshell)。
常見(jiàn)發(fā)生位置:
1) 所有使用到上傳功能的位置;
2) 用戶可自定義的頭像、背景圖片等;
3) 富文本編輯器中的文件上傳功能。
防御措施:
1) 上傳目錄設(shè)置為不可執(zhí)行;
2) 嚴(yán)格判斷文件類型,使用白名單而不是黑名單(注意大小寫(xiě)問(wèn)題)。需要注意的是一些與Web Server相關(guān)的漏洞所造成的問(wèn)題,如Apache、IIS、Nginx等的文件解析漏洞;
3) 使用隨機(jī)數(shù)改寫(xiě)上傳后的文件名和文件路徑;
4) 單獨(dú)設(shè)置文件服務(wù)器及域名。
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)用等。
常見(jiàn)發(fā)生位置:
1) 所有涉及到與用戶相關(guān)數(shù)據(jù)的位置,如用戶資料、地址、訂單等;
2) 所有涉及到登錄及權(quán)限控制的位置,如后臺(tái)登錄、當(dāng)前用戶權(quán)限校驗(yàn)等。
防御措施:
1) 對(duì)于所有涉及到用戶數(shù)據(jù)的操作,嚴(yán)格判斷當(dāng)前用戶的身份;
2) 對(duì)于所有需要權(quán)限控制的位置,嚴(yán)格校驗(yàn)用戶權(quán)限級(jí)別。
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ì)性,暴力破解的成功率也在不斷上升。
常見(jiàn)發(fā)生位置:
1) 用戶登錄處的賬號(hào)密碼暴力破解;
2) 人機(jī)驗(yàn)證機(jī)制容易繞過(guò),如使用較易識(shí)別的驗(yàn)證碼;
3) 找回密碼或二次身份驗(yàn)證等可能用到的手機(jī)短信驗(yàn)證碼;
防御措施:
1) 強(qiáng)制使用強(qiáng)密碼,并定期修改;
2) 限制密碼錯(cuò)誤嘗試次數(shù);
3) 使用強(qiáng)人機(jī)驗(yàn)證機(jī)制;
4) 限制一定時(shí)間內(nèi)的高頻訪問(wèn)次數(shù)。
5.拒絕服務(wù)攻擊
名詞解釋:
拒絕服務(wù)攻擊(DoS,Denial of Service)是利用合理的請(qǐng)求造成資源過(guò)載,從而導(dǎo)致服務(wù)不可用的一種攻擊方式。分為針對(duì)Web應(yīng)用層的攻擊、客戶端/APP的攻擊。
常見(jiàn)發(fā)生位置:
1) Web層常見(jiàn)于會(huì)大量消耗資源的位置,如查找功能等;
2) 客戶端/APP常見(jiàn)于異常輸入數(shù)據(jù)造成的程度崩潰。
防御措施:
針對(duì)Web層DoS:
1) 限制每個(gè)客戶端的請(qǐng)求頻率;
2) 使用驗(yàn)證碼過(guò)濾自動(dòng)攻擊者;
3) 做好應(yīng)用代碼的性能優(yōu)化,網(wǎng)絡(luò)架構(gòu)優(yōu)化等;
針對(duì)客戶端/APP拒絕服務(wù)攻擊:
1) 刪除不必要的組件;
2) 對(duì)用戶輸入數(shù)據(jù)進(jìn)行過(guò)濾和檢查。
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ì)很難消除。
常見(jiàn)發(fā)生位置:
1) 獲取用戶、企業(yè)信息等數(shù)據(jù)的網(wǎng)站或客戶端接口;
2) 企業(yè)可訪問(wèn)到的外部存儲(chǔ),如網(wǎng)盤(pán)、郵箱等;
3) 其他一切可能泄露數(shù)據(jù)的途徑。
防御措施:
1) 對(duì)數(shù)據(jù)接口進(jìn)行嚴(yán)格的權(quán)限檢查和訪問(wèn)限制;
2) 劃分企業(yè)安全邊界,限制內(nèi)部數(shù)據(jù)外流,如禁止訪問(wèn)外部存儲(chǔ)應(yīng)用等;
3) 提高員工數(shù)據(jù)安全意識(shí)。
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è)。
常見(jiàn)發(fā)生位置:
所有涉及到用戶交互的位置。
防御措施:
針對(duì)業(yè)務(wù)場(chǎng)景進(jìn)行全面的檢測(cè)。
8.安全配置缺陷
包括:文件遍歷、源碼泄露、配置文件泄露等。
文件遍歷:可以瀏覽服務(wù)器Web目錄下的文件列表,可能會(huì)泄露重要文件;
源碼泄露:可以查到的Web程序的源代碼;
配置文件泄露:Web服務(wù)器及程度代碼的配置文件泄露等。
防御措施:
1) 檢查所有可能存在安全配置問(wèn)題的點(diǎn),在滿足業(yè)務(wù)需求的情況下,最大化安全配置。