2010最容易導(dǎo)致安全問題的編程錯誤
歷史上第一個bug
網(wǎng)絡(luò)無處不在的今天,安全問題日益嚴(yán)峻,攻擊事件層出不窮,應(yīng)該說,軟件系統(tǒng)中代碼存在安全漏洞是主要的禍因之一。而這實際上反映了軟件開發(fā)人員在編程的安全性方面缺乏必要的培訓(xùn)和常識。
由CWS(美國國土安全部下屬的軟件保證項目)與SANS(權(quán)威安全培訓(xùn)組織)聯(lián)合編制的最危險的25個編程錯誤,是軟件開發(fā)人員非常好的快速學(xué)習(xí)資料。日前,兩個機(jī)構(gòu)發(fā)布了2010年的編程錯誤列表。最新的25個最危險的編程錯誤如下。
1. 跨站點腳本攻擊(4)
2. SQL注入(3)
3. 經(jīng)典緩沖區(qū)溢出(1)
4. 跨站點請求偽造(7)
5. 不正確的訪問控制(授權(quán))
6. 在安全決策中依賴不可信的輸入
7. 不正確地將路徑名限制為受限路徑
8. 上傳危險類型的文件不受限
9. 操作系統(tǒng)命令中特殊因素的處理不正確(操作系統(tǒng)命令注入)(5)
10. 敏感信息未加密(6)
11. 使用硬編碼憑據(jù)(21)
12. 以不正確的長度值訪問緩沖區(qū)
13. PHP程序中Include/Require語句文件名控制不正確(PHP文件侵入)
14. 數(shù)組下標(biāo)驗證不正確
15. 異常條件檢查不正確
16. 錯誤消息泄露信息(9)
17. 整數(shù)溢出
18. 緩沖區(qū)大小計算錯誤
19. 關(guān)鍵函數(shù)缺乏身份驗證
20. 下載未經(jīng)完整性檢查的代碼(15)
21. 對關(guān)鍵資源的錯誤權(quán)限分配(22)
22. 資源分配沒有限制
23. URL重導(dǎo)向到不受信的資源
24. 使用被破解或有風(fēng)險的加密算法(20)
25. 存在競爭情況(Race condition)(8)
其中后加括號有數(shù)字的,是該項錯誤去年的排名。顯然,連續(xù)兩年都入選的錯誤,千萬不要再犯了。
另外,我們對比了去年前25名名單,列出今年落榜的錯誤如下,相信這些錯誤仍然具有相當(dāng)?shù)娘L(fēng)險性。
2. 不正確的編碼或轉(zhuǎn)義輸出
10. 限定緩沖區(qū)內(nèi)操作失敗
11. 外部控制重要狀態(tài)數(shù)據(jù)
12. 外部控制文件名或路徑
13. 不可信搜索路徑
14. 控制代碼生成錯誤(代碼注入)
15. 錯誤的資源關(guān)閉或發(fā)布
17. 不正確的初始化
18. 錯誤計算
19. 可滲透防護(hù)
23. 隨機(jī)值的錯誤利用
24. 濫用特權(quán)操作
25. 客戶端執(zhí)行服務(wù)器端安全
推薦大家下載并仔細(xì)研讀完整的報告,有條件的可以組織開發(fā)團(tuán)隊和公司集中學(xué)習(xí)。這個報告相對枯燥了一些,如果你對哪些錯誤有比較直觀的一看就懂的示例或者解釋,歡迎在下面回復(fù),或者與我們聯(lián)系。


2013-01-07 10:34:23
2009-07-07 13:29:33




