新聞中心
隨著數(shù)據(jù)泄露的增加,創(chuàng)建和維護(hù)安全軟件對(duì)于每個(gè)組織都至關(guān)重要。盡管并非所有攻擊都可以預(yù)期或預(yù)防,但可以通過(guò)消除軟件漏洞來(lái)避免許多攻擊。在本文中,您將了解一些最常見(jiàn)的軟件漏洞以及如何避免這些問(wèn)題。您還將學(xué)習(xí)一些通用的優(yōu)秀實(shí)踐,以確保您的軟件和數(shù)據(jù)保持安全。

為東方等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及東方網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、東方網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
解決常見(jiàn)軟件漏洞
以下漏洞只是MITRE的 2019年CWE最危險(xiǎn)的25個(gè)最嚴(yán)重軟件錯(cuò)誤列表中列出的幾個(gè)漏洞。盡管攻擊者已廣為人知并使用了許多此類(lèi)問(wèn)題,但它們?nèi)岳^續(xù)包含在軟件中。
緩沖區(qū)溢出
當(dāng)您的程序試圖讀取或?qū)懭氤龇秶木彌_區(qū)時(shí),就會(huì)發(fā)生緩沖區(qū)溢出。它可能導(dǎo)致覆蓋或在現(xiàn)有代碼中附加數(shù)據(jù)。緩沖區(qū)溢出可使攻擊者執(zhí)行代碼,更改程序流,讀取敏感數(shù)據(jù)或使系統(tǒng)崩潰。
緩沖區(qū)溢出漏洞的示例包括:
- 接受長(zhǎng)度不受限制的輸入
- 允許從無(wú)效索引對(duì)數(shù)組進(jìn)行讀取操作
緩沖區(qū)溢出漏洞的包含通常發(fā)生在體系結(jié)構(gòu)和設(shè)計(jì),實(shí)施或操作階段。這些漏洞最常見(jiàn)于C,C ++和Assembly程序,但可以以任何缺少內(nèi)存管理支持的語(yǔ)言出現(xiàn)。
緩沖區(qū)溢出的漏洞預(yù)防措施
盡可能選擇一種防止或降低此漏洞風(fēng)險(xiǎn)的語(yǔ)言,例如Java或Perl。如果這是一個(gè)選項(xiàng),請(qǐng)不要禁用溢出保護(hù),例如在C#中。此外,請(qǐng)記住,與環(huán)境中的易受攻擊的本機(jī)代碼交互時(shí),即使是“免疫”語(yǔ)言也可能會(huì)產(chǎn)生錯(cuò)誤。
為了防止利用緩沖區(qū)溢出漏洞,可以使用包含功能或擴(kuò)展名以限制輸入的編譯器。例如,Visual Studio或StackGuard。您還可以使用工具在內(nèi)存中隨機(jī)排列程序組件。這使得地址更難以識(shí)別或預(yù)測(cè),從而使攻擊者難以利用特定組件。
創(chuàng)建代碼時(shí),請(qǐng)確保正確分配了緩沖區(qū)空間。另外,請(qǐng)使用允許您限制輸入大小的方法和功能。
輸入驗(yàn)證不正確
當(dāng)用戶(hù)輸入在接受時(shí)未得到驗(yàn)證或驗(yàn)證不足時(shí),就會(huì)發(fā)生輸入驗(yàn)證不當(dāng)。不正確的驗(yàn)證可以使攻擊者執(zhí)行惡意代碼,更改程序流,訪(fǎng)問(wèn)敏感數(shù)據(jù)或?yàn)E用資源分配。
驗(yàn)證不當(dāng)?shù)氖纠ǎ?/p>
- 假設(shè)攻擊者無(wú)法訪(fǎng)問(wèn)隱藏的表單字段
- 僅驗(yàn)證輸入的長(zhǎng)度而不是內(nèi)容
包含不正確的驗(yàn)證通常發(fā)生在架構(gòu),設(shè)計(jì)和實(shí)施階段。它可以在任何接受外部數(shù)據(jù)的語(yǔ)言或系統(tǒng)中發(fā)生。
輸入驗(yàn)證不當(dāng)?shù)穆┒搭A(yù)防措施
您應(yīng)該對(duì)任何用戶(hù)應(yīng)用“零信任”原則,并假設(shè)所有輸入都是有害的,直到證明安全為止。使用白名單以確保輸入內(nèi)容僅包含可接受的格式和內(nèi)容。
在驗(yàn)證輸入時(shí),請(qǐng)?jiān)u估長(zhǎng)度,類(lèi)型,語(yǔ)法和對(duì)邏輯的符合性(即輸入具有語(yǔ)義意義)。您可以使用多種工具來(lái)確保進(jìn)行充分的驗(yàn)證,例如OWASP ESAPI驗(yàn)證API和RegEx。使用這些工具來(lái)驗(yàn)證所有輸入源,包括環(huán)境變量,查詢(xún),文件,數(shù)據(jù)庫(kù)和API調(diào)用。
確保在客戶(hù)端和服務(wù)器端都執(zhí)行檢查??梢岳@過(guò)客戶(hù)端驗(yàn)證,因此您需要仔細(xì)檢查。如果繞過(guò)客戶(hù)端驗(yàn)證,則在服務(wù)器端捕獲輸入可以幫助您識(shí)別攻擊者的操縱。在進(jìn)行任何必要的組合或轉(zhuǎn)換后,請(qǐng)驗(yàn)證輸入。
信息公開(kāi)
當(dāng)有意或無(wú)意將數(shù)據(jù)提供給潛在攻擊者時(shí),就會(huì)發(fā)生信息泄露。數(shù)據(jù)可以包含敏感信息,也可以向攻擊者提供有關(guān)可以在攻擊中利用的軟件或環(huán)境的信息。
信息公開(kāi)的示例包括:
- 顯示文件或程序完整路徑的錯(cuò)誤
- 錯(cuò)誤消息暴露了數(shù)據(jù)庫(kù)中用戶(hù)的存在
包含信息公開(kāi)漏洞通常發(fā)生在開(kāi)發(fā)的體系結(jié)構(gòu)和設(shè)計(jì)或?qū)嵤╇A段。任何語(yǔ)言都可能發(fā)生這些漏洞。
信息暴露的漏洞預(yù)防措施
為防止信息泄露,您應(yīng)設(shè)計(jì)程序體系結(jié)構(gòu)以將敏感信息包含在具有明確信任邊界的區(qū)域中。確保使用訪(fǎng)問(wèn)控制來(lái)保護(hù)和限制“安全”區(qū)域與端點(diǎn)之間的連接。
為了很大程度地利用漏洞,請(qǐng)驗(yàn)證錯(cuò)誤消息和用戶(hù)警告中是否包含不必要的信息。您還應(yīng)該限制來(lái)自URL和通信標(biāo)頭的敏感信息。例如,模糊完整的路徑名或API密鑰。
特權(quán)或認(rèn)證不當(dāng)
如果未正確分配,跟蹤,修改或驗(yàn)證用戶(hù)權(quán)限和憑據(jù),則會(huì)發(fā)生不正確的權(quán)限或身份驗(yàn)證。這些漏洞可使攻擊者濫用特權(quán),執(zhí)行受限任務(wù)或訪(fǎng)問(wèn)受限數(shù)據(jù)。
不當(dāng)特權(quán)或身份驗(yàn)證的示例包括:
- 不可逆轉(zhuǎn)的臨時(shí)特權(quán)升級(jí)。
- 通過(guò)黑名單而不是白名單來(lái)限制特權(quán)。
- 允許較低的特權(quán)級(jí)別影響較高的特權(quán)帳戶(hù),例如重置管理員密碼。
- 無(wú)限制的登錄嘗試或會(huì)話(huà)限制。
特權(quán)或身份驗(yàn)證漏洞通常在開(kāi)發(fā)的體系結(jié)構(gòu)和設(shè)計(jì),實(shí)施或操作階段引入。任何語(yǔ)言都可能發(fā)生這些漏洞。
特權(quán)或身份驗(yàn)證的漏洞預(yù)防措施
您應(yīng)將最小特權(quán)原則應(yīng)用于與您的軟件和系統(tǒng)交互的所有用戶(hù)和服務(wù)。通過(guò)在整個(gè)程序和環(huán)境中應(yīng)用訪(fǎng)問(wèn)控制來(lái)限制用戶(hù)和實(shí)體的功能。您應(yīng)該將權(quán)限限制為僅用戶(hù)或服務(wù)所需的那些資源。
如果可能,將高級(jí)特權(quán)分成多個(gè)角色。分離有助于限制“高級(jí)用戶(hù)”,并降低攻擊者濫用訪(fǎng)問(wèn)權(quán)限的能力。您還可以應(yīng)用多因素身份驗(yàn)證方法來(lái)防止攻擊者繞過(guò)系統(tǒng)或獲得輕松的訪(fǎng)問(wèn)權(quán)限。
減少一般漏洞的優(yōu)秀實(shí)踐
除了采取針對(duì)特定漏洞的措施外,您還應(yīng)該采取一些措施來(lái)總體上減少漏洞。您可以從以下做法開(kāi)始。
向威脅情報(bào)來(lái)源學(xué)習(xí)
監(jiān)視和應(yīng)用來(lái)自漏洞數(shù)據(jù)庫(kù)和獨(dú)立監(jiān)督組(例如OWASP或NIST)的信息。這些資源可以在發(fā)現(xiàn)漏洞后為您提供有關(guān)漏洞的信息。這些資源通常包括有關(guān)如何解決或緩解當(dāng)前存在的問(wèn)題的信息。您可以應(yīng)用此信息來(lái)確保正確修補(bǔ)了系統(tǒng)和組件。
仔細(xì)包括依賴(lài)性
確保僅在需要時(shí)才使用經(jīng)過(guò)審查和信任的庫(kù)和框架。這些工具中的漏洞會(huì)傳輸?shù)侥能浖⑶铱梢詾楣粽咛峁┖箝T(mén)訪(fǎng)問(wèn)。使用庫(kù)和框架時(shí),請(qǐng)確保您了解可用的功能,并且知道任何已知的利用或漏洞。
進(jìn)行漏洞評(píng)估
即使您遵循任何已知的優(yōu)秀做法,也不要假定您的程序是安全的。您需要在運(yùn)行時(shí)靜態(tài)測(cè)試代碼,以確保不會(huì)遺漏漏洞。將自動(dòng)測(cè)試工具集成到您的開(kāi)發(fā)環(huán)境中可以幫助您盡早發(fā)現(xiàn)漏洞。這些工具可以幫助您確保不會(huì)因時(shí)間限制而跳過(guò)測(cè)試,也不會(huì)因人為錯(cuò)誤而忽略測(cè)試。
結(jié)論
軟件漏洞似乎是不可避免的,但大多數(shù)漏洞可以消除或至少減少。通過(guò)了解如何引入漏洞,您可以調(diào)整自己的做法和測(cè)試以在產(chǎn)品發(fā)布之前發(fā)現(xiàn)問(wèn)題。
希望本文能幫助您了解一些最常見(jiàn)的漏洞。通過(guò)應(yīng)用此處介紹的實(shí)踐和方法,可以減少攻擊者利用軟件中這些問(wèn)題的機(jī)會(huì)。
本文標(biāo)題:常見(jiàn)的軟件漏洞以及如何避免這些問(wèn)題
文章位置:http://fisionsoft.com.cn/article/djjohgc.html


咨詢(xún)
建站咨詢(xún)
