自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談OWASP TOP10

安全 應(yīng)用安全
隨著我們的軟件變得愈加重要、復(fù)雜且相互關(guān)聯(lián),實(shí)現(xiàn)應(yīng)用程序安全的難度也呈指數(shù)級增長。而現(xiàn)代軟件開發(fā)過程的飛速發(fā)展,使得快速、準(zhǔn)確地識別軟件安全風(fēng)險變得愈發(fā)的重要。

不安全的軟件正在破壞著我們的金融、醫(yī)療、國防、能源和其他重要的基礎(chǔ)設(shè)施。隨著我們的軟件變得愈加重要、復(fù)雜且相互關(guān)聯(lián),實(shí)現(xiàn)應(yīng)用程序安全的難度也呈指數(shù)級增長。而現(xiàn)代軟件開發(fā)過程的飛速發(fā)展,使得快速、準(zhǔn)確地識別軟件安全風(fēng)險變得愈發(fā)的重要。

[[316754]]

1. 注入

將不受信任的數(shù)據(jù)作為命令或查詢的一部分發(fā)送到解析器時,會產(chǎn)生諸如SQL注入、NoSQL注入、OS注入和LDAP注入的注入缺陷。攻擊者的惡意數(shù)據(jù)可以誘使解析器在沒有適當(dāng)授權(quán)的情況下執(zhí)行非預(yù)期命令或訪問數(shù)據(jù)。

如何防止:

  • 防止注入漏洞需要將數(shù)據(jù)與命令語句、查詢語句分隔開來。
  • 最佳選擇是使用安全的API,完全避免使用解釋器,或提供參數(shù)化界面的接口,或遷移到ORM或?qū)嶓w框架。
  • 使用正確的或“白名單”的具有恰當(dāng)規(guī)范化的輸入驗證方法同樣會有助于防止注入攻擊,但這不是一個完整的防御,因為許多應(yīng)用程序在輸入中需要特殊字符,例如文本區(qū)域或移動應(yīng)用程序的API。
  • 對于任何剩余的動態(tài)查詢,可以使用該解釋器的特定轉(zhuǎn)義語法轉(zhuǎn)義特殊字符。OWASP的JavaEncoder和類似的庫提供了這樣的轉(zhuǎn)義例程。
  • 在查詢中使用LIMIT和其他SQL控件,以防止在SQL注入時大量地泄露記錄。

2. 失效的身份認(rèn)證

通常,通過錯誤使用應(yīng)用程序的身份認(rèn)證和會話管理功能,攻擊者能夠破譯密碼、密鑰或會話令牌,或者利用其它開發(fā)缺陷來暫時性或永久性冒充其他用戶的身份。

如何防止:

  • 在可能的情況下,實(shí)現(xiàn)多因素身份驗證,以防止自動、憑證填充、暴力破解和被盜憑據(jù)再利用攻擊。
  • 不要使用發(fā)送或部署默認(rèn)的憑證,特別是管理員用戶。
  • 執(zhí)行弱密碼檢查,例如測試新或變更的密碼,以糾正“排名前10000個弱密碼”列表。
  • 修改密碼復(fù)雜度策略,密碼由大/小寫字母+特殊字符+數(shù)字組成,長度大于8位,定期90天修改密碼。
  • 確認(rèn)注冊、憑據(jù)恢復(fù)和API路徑,通過對所有輸出結(jié)果使用相同的消息,用以抵御賬戶枚舉攻擊。
  • 限制或逐漸延遲失敗的登錄嘗試。記錄所有失敗信息并在憑據(jù)填充、暴力破解或其他攻擊被檢測時提醒管理員。
  • 使用服務(wù)器端安全的內(nèi)置會話管理器,在登錄后生成高度復(fù)雜的新隨機(jī)會話ID。會話ID不能在URL中,可以安全地存儲和當(dāng)?shù)浅?、閑置、絕對超時后使其失效。

3. 敏感數(shù)據(jù)泄露

許多Web應(yīng)用程序和API都無法正確保護(hù)敏感數(shù)據(jù),例如:財務(wù)數(shù)據(jù)、醫(yī)療數(shù)據(jù)和PII數(shù)據(jù)。攻擊者可以通過竊取或修改未加密的數(shù)據(jù)來實(shí)施信用卡詐騙、身份盜竊或其他犯罪行為。未加密的敏感數(shù)據(jù)容易受到破壞,因此,我們需要對敏感數(shù)據(jù)加密,這些數(shù)據(jù)包括:傳輸過程中的數(shù)據(jù)、存儲的數(shù)據(jù)以及瀏覽器的交互數(shù)據(jù)。

如何防止:

  • 對系統(tǒng)處理、存儲或傳輸?shù)臄?shù)據(jù)分類,并根據(jù)分類進(jìn)行訪問控制。
  • 熟悉與敏感數(shù)據(jù)保護(hù)相關(guān)的法律和條例,并根據(jù)每項法規(guī)要求保護(hù)敏感數(shù)據(jù)。
  • 對于沒必要存放的、重要的敏感數(shù)據(jù),應(yīng)當(dāng)盡快清除,或者通過PCIDSS標(biāo)記或攔截。未存儲的數(shù)據(jù)不能被竊取。
  • 確保存儲的所有敏感數(shù)據(jù)被加密。
  • 確保使用了最新的、強(qiáng)大的標(biāo)準(zhǔn)算法或密碼、參數(shù)、協(xié)議和密匙,并且密鑰管理到位。
  • 確保傳輸過程中的數(shù)據(jù)被加密,如:使用TLS。確保數(shù)據(jù)加密被強(qiáng)制執(zhí)行,如:使用HTTP嚴(yán)格安全傳輸協(xié)議(HSTS)。
  • 禁止緩存對包含敏感數(shù)據(jù)的響應(yīng)。
  • 確保使用密碼專用算法存儲密碼,如:Argon2、scrypt、bcrypt或者PBKDF2。將工作因素(延遲因素)設(shè)置在可接受范圍。
  • 單獨(dú)驗證每個安全配置項的有效性。

4. XML外部實(shí)體(XXE)

當(dāng)開發(fā)人員暴露一個對內(nèi)部實(shí)現(xiàn)對象的引用時,例如,一個文件、目錄或者數(shù)據(jù)庫密匙,就會產(chǎn)生一個不安全的直接對象引用。在沒有訪問控制檢測或其他保護(hù)時,攻擊者會操控這些引用去訪問未授權(quán)數(shù)據(jù)。許多較早的或配置錯誤的XML處理器評估了XML文件中的外部實(shí)體引用。攻擊者可以利用外部實(shí)體竊取使用URI文件處理器的內(nèi)部文件和共享文件、監(jiān)聽內(nèi)部掃描端口、執(zhí)行遠(yuǎn)程代碼和實(shí)施拒絕服務(wù)攻擊。

如何防止:

  • 盡可能使用簡單的數(shù)據(jù)格式(如:JSON),避免對敏感數(shù)據(jù)進(jìn)行序列化。
  • 及時修復(fù)或更新應(yīng)用程序或底層操作系統(tǒng)使用的所有XML處理器和庫。同時,通過依賴項檢測,將SOAP更新到1.2版本或更高版本。
  • 在應(yīng)用程序的所有XML解析器中禁用XML外部實(shí)體和DTD進(jìn)程。
  • 在服務(wù)器端實(shí)施積極的(“白名單”)輸入驗證、過濾和清理,以防止在XML文檔、標(biāo)題或節(jié)點(diǎn)中出現(xiàn)惡意數(shù)據(jù)。
  • 驗證XML或XSL文件上傳功能是否使用XSD驗證或其他類似驗證方法來驗證上傳的XML文件。
  • 盡管在許多集成環(huán)境中,手動代碼審查是大型、復(fù)雜應(yīng)用程序的最佳選擇,但是SAST工具可以檢測源代碼中的XXE漏洞。

5. 失效的訪問控制

未對通過身份驗證的用戶實(shí)施恰當(dāng)?shù)脑L問控制。攻擊者可以利用這些缺陷訪問未經(jīng)授權(quán)的功能或數(shù)據(jù),例如:訪問其他用戶的帳戶、查看敏感文件、修改其他用戶的數(shù)據(jù)、更改訪問權(quán)限等。

如何防止:

  • 除公有資源外,默認(rèn)情況下拒絕訪問。
  • 使用一次性的訪問控制機(jī)制,并在整個應(yīng)用程序中不斷重用它們,包括最小化CORS使用。
  • 建立訪問控制模型以強(qiáng)制執(zhí)行所有權(quán)記錄,而不是接受用戶創(chuàng)建、讀取、更新或刪除的任何記錄。
  • 域訪問控制對每個應(yīng)用程序都是唯一的,但業(yè)務(wù)限制要求應(yīng)由域模型強(qiáng)制執(zhí)行。
  • 禁用Web服務(wù)器目錄列表,并確保文件元數(shù)據(jù)(如:git)不存在于Web的根目錄中。
  • 記錄失敗的訪問控制,并在適當(dāng)時向管理員告警(如:重復(fù)故障)。
  • 對API和控制器的訪問進(jìn)行速率限制,以最大限度地降低自動化攻擊工具的危害。
  • 當(dāng)用戶注銷后,服務(wù)器上的JWT令牌應(yīng)失效。

6. 安全配置錯誤

安全配置錯誤是最常見的安全問題,這通常是由于不安全的默認(rèn)配置、不完整的臨時配置、開源云存儲、錯誤的HTTP標(biāo)頭配置以及包含敏感信息的詳細(xì)錯誤信息所造成的。因此,我們不僅需要對所有的操作系統(tǒng)、框架、庫和應(yīng)用程序進(jìn)行安全配置,而且必須及時修補(bǔ)和升級它們。

如何防止:

  • 一個可以快速且易于部署在另一個鎖定環(huán)境的可重復(fù)的加固過程。開發(fā)、質(zhì)量保證和生產(chǎn)環(huán)境都應(yīng)該進(jìn)行相同配置,并且,在每個環(huán)境中使用不同的密碼。這個過程應(yīng)該是自動化的,以盡量減少安裝一個新安全環(huán)境的耗費(fèi)。
  • 搭建最小化平臺,該平臺不包含任何不必要的功能、組件、文檔和示例。移除或不安裝不適用的功能和框架。
  • 檢查和修復(fù)安全配置項來適應(yīng)最新的安全說明、更新和補(bǔ)丁,并將其作為更新管理過程的一部分。
  • 一個能在組件和用戶間提供有效的分離和安全性的分段應(yīng)用程序架構(gòu),包括:分段、容器化和云安全組。
  • 向客戶端發(fā)送安全指令,如:安全標(biāo)頭。
  • 在所有環(huán)境中能夠進(jìn)行正確安全配置和設(shè)置的自動化過程。

7. 跨站腳本(XSS)

當(dāng)應(yīng)用程序的新網(wǎng)頁中包含不受信任的、未經(jīng)恰當(dāng)驗證或轉(zhuǎn)義的數(shù)據(jù)時,或者使用可以創(chuàng)建HTML或JavaScript的瀏覽器API更新現(xiàn)有的網(wǎng)頁時,就會出現(xiàn)XSS缺陷。XSS讓攻擊者能夠在受害者的瀏覽器中執(zhí)行腳本,并劫持用戶會話、破壞網(wǎng)站或?qū)⒂脩糁囟ㄏ虻綈阂庹军c(diǎn)。

如何防止:

  • 使用設(shè)計上就會自動編碼來解決XSS問題的框架,如:Ruby3.0或ReactJS。了解每個框架的XSS保護(hù)的局限性,并適當(dāng)?shù)靥幚砦锤采w的用例。
  • 為了避免反射式或存儲式的XSS漏洞,最好的辦法是根據(jù)HTML輸出的上下文(包括:主體、屬性、JavaScript、CSS或URL)對所有不可信的HTTP請求數(shù)據(jù)進(jìn)行恰當(dāng)?shù)霓D(zhuǎn)義。
  • 在客戶端修改瀏覽器文檔時,為了避免DOMXSS攻擊,最好的選擇是實(shí)施上下文敏感數(shù)據(jù)編碼。
  • 使用內(nèi)容安全策略(CSP)是對抗XSS的深度防御策略。如果不存在可以通過本地文件放置惡意代碼的其他漏洞(例如:路徑遍歷覆蓋和允許在網(wǎng)絡(luò)中傳輸?shù)囊资芄舻膸?,則該策略是有效的。

8. 不安全的反序列化

不安全的反序列化會導(dǎo)致遠(yuǎn)程代碼執(zhí)行。即使反序列化缺陷不會導(dǎo)致遠(yuǎn)程代碼執(zhí)行,攻擊者也可以利用它們來執(zhí)行攻擊,包括:重播攻擊、注入攻擊和特權(quán)升級攻擊。

如何防止:

  • 執(zhí)行完整性檢查,如:任何序列化對象的數(shù)字簽名,以防止惡意對象創(chuàng)建或數(shù)據(jù)篡改。
  • 在創(chuàng)建對象之前強(qiáng)制執(zhí)行嚴(yán)格的類型約束,因為代碼通常被期望成一組可定義的類。繞過這種技術(shù)的方法已經(jīng)被證明,所以完全依賴于它是不可取的。
  • 如果可能,隔離運(yùn)行那些在低特權(quán)環(huán)境中反序列化的代碼。
  • 記錄反序列化的例外情況和失敗信息,如:傳入的類型不是預(yù)期的類型,或者反序列處理引發(fā)的例外情況。
  • 限制或監(jiān)視來自于容器或服務(wù)器傳入和傳出的反序列化網(wǎng)絡(luò)連接。
  • 監(jiān)控反序列化,當(dāng)用戶持續(xù)進(jìn)行反序列化時,對用戶進(jìn)行警告。

9. 使用含已知漏洞的組件

組件(例如:庫、框架和其他軟件模塊)擁有和應(yīng)用程序相同的權(quán)限。如果應(yīng)用程序中含有已知漏洞的組件被攻擊者利用,可能會造成嚴(yán)重的數(shù)據(jù)丟失或服務(wù)器接管。同時,使用含有已知漏洞的組件的應(yīng)用程序和API可能會破壞應(yīng)用程序防御、造成各種攻擊并產(chǎn)生嚴(yán)重影響。

如何防止:

  • 移除不使用的依賴、不需要的功能、組件、文件和文檔。
  • 利用如versions、DependencyCheck、retire.js等工具來持續(xù)的記錄客戶端和服務(wù)器端以及它們的依賴庫的版本信息。持續(xù)監(jiān)控如CVE和NVD等是否發(fā)布已使用組件的漏洞信息,可以使用軟件分析工具來自動完成此功能。訂閱關(guān)于使用組件安全漏洞的警告郵件。
  • 僅從官方渠道安全的獲取組件,并使用簽名機(jī)制來降低組件被篡改或加入惡意漏洞的風(fēng)險。
  • 監(jiān)控那些不再維護(hù)或者不發(fā)布安全補(bǔ)丁的庫和組件。如果不能打補(bǔ)丁,可以考慮部署虛擬補(bǔ)丁來監(jiān)控、檢測或保護(hù)。

10. 不足的日志記錄和監(jiān)控

不足的日志記錄和監(jiān)控,以及事件響應(yīng)缺失或無效的集成,使攻擊者能夠進(jìn)一步攻擊系統(tǒng)、保持持續(xù)性或轉(zhuǎn)向更多系統(tǒng),以及篡改、提取或銷毀數(shù)據(jù)。大多數(shù)缺陷研究顯示,缺陷被檢測出的時間超過200天,且通常通過外部檢測方檢測,而不是通過內(nèi)部流程或監(jiān)控檢測。

如何防止:

  • 確保所有登錄、訪問控制失敗、輸入驗證失敗能夠被記錄到日志中去,并保留足夠的用戶上下文信息,以識別可疑或惡意帳戶,并為后期取證預(yù)留足夠時間。
  • 確保日志以一種能被集中日志管理解決方案使用的形式生成。
  • 確保高額交易有完整性控制的審計信息,以防止篡改或刪除,例如審計信息保存在只能進(jìn)行記錄增加的數(shù)據(jù)庫表中。
  • 建立有效的監(jiān)控和告警機(jī)制,使可疑活動在可接受的時間內(nèi)被發(fā)現(xiàn)和應(yīng)對。

 

責(zé)任編輯:趙寧寧 來源: 河南鼎信
相關(guān)推薦

2023-06-07 11:19:12

2012-08-09 14:49:49

2019-01-17 17:14:05

2010-10-25 11:40:58

2009-06-16 10:38:56

2024-03-14 13:46:41

深度學(xué)習(xí)人工智能

2018-11-14 10:36:47

Python 開發(fā)編程語言

2024-11-13 16:19:12

2021-04-14 10:58:54

OWASP Top 1web安全身份驗證

2023-03-31 12:05:32

2020-08-04 22:21:54

漏洞掃描工具惡意軟件

2021-10-20 11:56:35

勒索軟件攻擊數(shù)據(jù)泄露

2023-05-17 16:02:00

CSS工具代碼生成器

2009-04-15 08:40:04

2019-11-29 18:03:27

數(shù)學(xué)R語言算法

2013-03-28 10:53:11

2011-04-21 15:39:26

HTML

2012-02-03 09:11:06

2013-04-22 10:30:31

云計算亞馬遜微軟

2022-03-16 12:40:00

云安全書籍云安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號