軟件安全:漏洞和缺陷的區(qū)別
在這篇文章中,我們將探討漏洞和缺陷之間的差異。更重要的是,我們將介紹架構(gòu)風(fēng)險(xiǎn)分析(ARA)程序,經(jīng)證明,該程序能夠很好地發(fā)現(xiàn)和修復(fù)漏洞。
那么,漏洞和缺陷的區(qū)別是什么?也許我們可以從一些例子中得出結(jié)論。
漏洞
漏洞存在于軟件代碼(源代碼或二進(jìn)制)中。一個(gè)最經(jīng)典的漏洞是緩沖區(qū)溢出漏洞,這個(gè)漏洞根本上涉及濫用C中某些字符串處理函數(shù)功能。其中最臭名昭著的函數(shù)功能是gets(),這是一個(gè)系統(tǒng)調(diào)用,它從用戶獲取輸入直到用戶決定點(diǎn)擊回復(fù)。我們把一個(gè)固定大小的緩沖區(qū)想象成一個(gè)空水杯,然后想像一下,你設(shè)置了方法來(lái)從杯中取水以避免滿杯(攻擊者則在不斷“倒水”)。如果倒太多水到杯子里,水溢出來(lái),就回灑在臺(tái)面上。在C中的緩沖區(qū)溢出的情況下,太多輸入會(huì)覆蓋堆,或者甚至覆蓋堆棧,從而破壞程序的堆棧,造成程序崩潰或使程序轉(zhuǎn)而執(zhí)行其它指令以進(jìn)行攻擊。簡(jiǎn)單的漏洞,可怕的后果。面對(duì)gets()的問(wèn)題,我們特別容易在源代碼中找到漏洞。
C中有數(shù)以百計(jì)的系統(tǒng)調(diào)用,如果使用不當(dāng)?shù)脑挘鼈兛赡軙?huì)導(dǎo)致安全漏洞,包括從字符串處理功能到整數(shù)溢出和整數(shù)下溢等問(wèn)題。當(dāng)然,在Java和其他語(yǔ)言中也有一樣多的錯(cuò)誤。另外,在Web應(yīng)用程序(例如跨站腳本或者跨站請(qǐng)求偽造)中也有常見(jiàn)漏洞以及與數(shù)據(jù)庫(kù)相關(guān)的漏洞(例如SQL注入漏洞)。
面對(duì)這么多可能存在的漏洞,我們有必要部署和使用一些工具來(lái)查找它們。現(xiàn)在市面上有很多商業(yè)源代碼審查工具,比如惠普的Fortify、IBM的AppScan Source、Coverity公司的Quality Advisor,以及Klocwork的Clocwork Insight。目前源代碼審查的最新突破是直接整合漏洞查找到每個(gè)開(kāi)發(fā)人員的集成開(kāi)發(fā)環(huán)境(IDE)中,這樣我們就能盡可能在最開(kāi)始發(fā)現(xiàn)漏洞。比如,Cigital的SecureAssist就是這種原理。
缺陷
除了漏洞之外,我們還會(huì)看到缺陷問(wèn)題。缺陷存在于軟件架構(gòu)和設(shè)計(jì)中。這里有一個(gè)非常簡(jiǎn)單的缺陷的例子:忘記驗(yàn)證用戶。這種錯(cuò)誤通常無(wú)法在代碼審查中被發(fā)現(xiàn),但這是一個(gè)極其嚴(yán)重的問(wèn)題。你的進(jìn)程是以root身份運(yùn)行嗎?最好確定誰(shuí)在使用它!
其它關(guān)于缺陷的例子包括“中間攻擊人”問(wèn)題,它使得攻擊者能在組件、網(wǎng)絡(luò)層、機(jī)器或者網(wǎng)絡(luò)之間進(jìn)行篡改或者竊聽(tīng);另外,還有與糟糕協(xié)議有關(guān)的“重放攻擊”問(wèn)題。
為了更好地說(shuō)明缺陷,我們?cè)谶@里列出了一些常見(jiàn)的與Java相關(guān)的缺陷問(wèn)題:錯(cuò)誤使用密碼系統(tǒng)、設(shè)計(jì)中的分區(qū)問(wèn)題、特權(quán)塊保護(hù)故障(DoPrivilege())、災(zāi)難性安全故障(脆弱性)、類別安全混淆錯(cuò)誤、不安全的審計(jì)、損壞或不合邏輯的訪問(wèn)控制(網(wǎng)絡(luò)層上的RBAC)、方法覆蓋問(wèn)題(子類問(wèn)題)、對(duì)不該信任的組件給予太多信任(客戶端)。(關(guān)于這些問(wèn)題的更多信息,請(qǐng)參閱McGraw的《保護(hù)Java》一書(shū))。
缺陷問(wèn)題與漏洞一樣常見(jiàn)。事實(shí)上,大多數(shù)研究表明,漏洞和缺陷各占50%。當(dāng)然,本文中我們討論的是這二者的統(tǒng)一體。還有一些棘手的情況可能被同時(shí)歸類為漏洞和缺陷,這就取決于你如何看待它。但是,在一般情況下,學(xué)習(xí)區(qū)分漏洞和缺陷對(duì)你很有意義。
責(zé)任編輯:和碩涵
-
發(fā)電電力輔助服務(wù)營(yíng)銷決策模型
2019-06-24電力輔助服務(wù)營(yíng)銷 -
電力線路安全工作的組織措施和技術(shù)措施分別是什么?
-
兩會(huì)保電進(jìn)行時(shí)丨陜西電力部署6項(xiàng)重點(diǎn)任務(wù)
-
電力線路安全工作的組織措施和技術(shù)措施分別是什么?
-
兩會(huì)保電進(jìn)行時(shí)丨陜西電力部署6項(xiàng)重點(diǎn)任務(wù)
-
山東特高壓首次完成帶電消缺 確保電力安全穩(wěn)定迎峰度冬
-
發(fā)電電力輔助服務(wù)營(yíng)銷決策模型
2019-06-24電力輔助服務(wù)營(yíng)銷 -
繞過(guò)安卓SSL驗(yàn)證證書(shū)的四種方式
-
網(wǎng)絡(luò)何以可能
2017-02-24網(wǎng)絡(luò)
-
Windows 10首發(fā) 四大安全提升
-
超級(jí)安卓漏洞 “寄生獸”影響數(shù)千萬(wàn)手機(jī)應(yīng)用
-
航空公司首出現(xiàn)操作系統(tǒng)被黑
2015-06-23航空公司
-
“企業(yè)應(yīng)急響應(yīng)和反滲透”之真實(shí)案例分析
-
攜程恢復(fù)正常 安全,我們準(zhǔn)備好了嗎?
2015-05-29攜程 -
一張圖讀懂《2014年消費(fèi)者個(gè)人信息網(wǎng)絡(luò)安全報(bào)告》