客戶案例
小溪暢流6年的時(shí)間服務(wù)了大中小企業(yè)數(shù)百家,為企業(yè)開發(fā)了個(gè)性化的信息化管理平臺(tái)和基于微信生態(tài)的…
首頁 > 行業(yè)資訊 > 軟件開發(fā)

小溪暢流淺談幾種常見的軟件漏洞,以及避免方法

所屬類型:軟件開發(fā) 時(shí)間: 2020-02-20 13:02:07 訪問量:77

今天小溪暢流簡(jiǎn)單為大家說下一些最為常見的軟件漏洞,以及如何避免它們的方法

一、緩沖區(qū)溢出

當(dāng)您的程序試圖讀取或?qū)懭氤龇秶木彌_區(qū)時(shí),就會(huì)發(fā)生緩沖區(qū)溢出的錯(cuò)誤。其直接的危害是:可能導(dǎo)致數(shù)據(jù)覆蓋,或是在現(xiàn)有的代碼中附加不該出現(xiàn)的數(shù)據(jù)。因此,緩沖區(qū)溢出可以使得攻擊者通過執(zhí)行代碼,來更改程序流,進(jìn)而讀取某種敏感數(shù)據(jù),或造成系統(tǒng)的崩潰。

緩沖區(qū)溢出漏洞的典型示例包括:接受各種長(zhǎng)度不受限制的輸入;允許從無效的索引處對(duì)數(shù)組進(jìn)行讀取操作緩沖區(qū)溢出漏洞通常潛藏在軟、硬件體系架構(gòu)的設(shè)計(jì)、實(shí)施、以及操作階段。這些漏洞最常見于C、C++Assembly程序中。當(dāng)然,它也可能出現(xiàn)在缺乏對(duì)內(nèi)存管理提供支持的任何一種編程語言里。

預(yù)防措施應(yīng)當(dāng)盡量選擇諸如:JavaPerl等具有防范,或降低此類漏洞風(fēng)險(xiǎn)機(jī)制的語言。而在C#之類的編程語言中,我們千萬不要禁用溢出保護(hù)的選項(xiàng)。即便如此,那些具有“免疫”功能的編程語言,也可能會(huì)在運(yùn)行環(huán)境中的易受攻擊的、原生代碼交互時(shí),產(chǎn)生不可預(yù)期的錯(cuò)誤。

另外,請(qǐng)創(chuàng)建代碼時(shí)確保正確地分配緩沖區(qū)空間,并使用各種方法和功能來限制輸入的大小。

二、不當(dāng)?shù)妮斎腧?yàn)證

如果我們不能夠在接收端對(duì)用戶的輸入采取驗(yàn)證,或驗(yàn)證不足,那么就會(huì)產(chǎn)生所謂的“輸入驗(yàn)證不當(dāng)”。而不當(dāng)?shù)尿?yàn)證則會(huì)使得攻擊者通過執(zhí)行惡意代碼,來更改程序流,訪問敏感數(shù)據(jù),以及濫用現(xiàn)有的資源分配。

預(yù)防措施我們應(yīng)該對(duì)任何用戶采取“零信任”的原則,并假設(shè)所有的輸入都是可疑的,直到它們被證明是安全的為止。同時(shí),我們可以使用白名單機(jī)制,來確保輸入的內(nèi)容僅包含了可接受的格式與信息。

此外,我們應(yīng)當(dāng)確保在客戶端和服務(wù)器端都執(zhí)行相應(yīng)的檢查。為了避免出現(xiàn)客戶端驗(yàn)證被繞過的情況,我們需要重點(diǎn)在服務(wù)器端捕獲各項(xiàng)輸入,以識(shí)別攻擊者的潛在操縱。同時(shí),在程序代碼進(jìn)行任何必要的組合或轉(zhuǎn)換后,也請(qǐng)您再次驗(yàn)證其輸入。

三、信息泄露

數(shù)據(jù)被有意或無意地提供給潛在攻擊者,被稱為信息泄露。除了泄露敏感的數(shù)據(jù)信息,向攻擊者提供可能被利用的軟、硬件環(huán)境信息也是一種泄露。

預(yù)防措施為防止信息的泄露,您應(yīng)當(dāng)在設(shè)計(jì)程序架構(gòu)時(shí),針對(duì)明確的信任邊界區(qū)域,來保護(hù)敏感的信息;通過使用訪問控制,來保護(hù)和限制“安全”區(qū)域與各個(gè)端點(diǎn)之間的連接。

為了最大程度地避免該漏洞,請(qǐng)?jiān)诔绦蛑序?yàn)證各類錯(cuò)誤的提示消息,以及用戶警告信息中是否包含有不必要暴露的內(nèi)容。同時(shí),您還應(yīng)該限制在URL和通信包的頭部(header)出現(xiàn)的敏感信息。例如:您可以隱藏完整的路徑名稱,以及API密鑰。

四、特權(quán)或認(rèn)證不當(dāng)

如果未能正確地分配,跟蹤,修改或驗(yàn)證用戶的相關(guān)權(quán)限和憑據(jù),那么就可能發(fā)生特權(quán)或身份驗(yàn)證不當(dāng)?shù)那闆r。此類漏洞可以讓攻擊者濫用特權(quán),執(zhí)行受限的任務(wù),以及訪問受限的數(shù)據(jù)。

預(yù)防措施您應(yīng)當(dāng)將“最小特權(quán)原則”,應(yīng)用于與目標(biāo)軟件和系統(tǒng)交互的所有用戶和服務(wù)之中。只給真正需要某些資源和操作的用戶或服務(wù),完成所需任務(wù)的最少權(quán)限。我們需要通過在整個(gè)程序和環(huán)境中使用訪問控制,來限制用戶和實(shí)體的權(quán)限。

如有可能,我們也可以將高級(jí)特權(quán)分給多個(gè)角色。通過分離,我們可以有效地削弱“高級(jí)用戶”,并降低攻擊者濫用其訪問權(quán)限的能力。此外,您還可以運(yùn)用多因素身份驗(yàn)證的方法,來防止攻擊者繞過系統(tǒng)的檢查機(jī)制,輕松地獲得訪問權(quán)限。

軟件漏洞可謂層出不窮,我們能做的只有通過了解漏洞的原理和防范的措施,來及時(shí)地調(diào)整自己的實(shí)現(xiàn)方式,并開展全面的測(cè)試,在產(chǎn)品發(fā)布之前,盡可能多地發(fā)現(xiàn)并解決潛在的漏洞與問題。


上一篇 : 小程序的出現(xiàn)為何能給用戶帶來不一樣的體驗(yàn)?

下一篇: 學(xué)會(huì)利用軟件才能快速提升銷售業(yè)績(jī)

推薦案例
0531-82963489
周一至周五 8:30-17:30
?2019 小溪暢流網(wǎng)絡(luò)科技 版權(quán)所有 | 備案號(hào):魯ICP備14035376號(hào)