軟體漏洞

軟體漏洞

軟體開發者開發軟體時的疏忽,或者是程式語言的局限性,比如c語言家族比java效率高但漏洞也多,電腦系統幾乎就是用c語言編的,所以常常要打補丁。 軟體漏洞有時是作者日後檢查的時候發現的,然後修正;還有一些人專門找別人的漏洞以從中做些非法的事,當作者知道自己的漏洞被他人利用的時候就會想辦法補救。

基本介紹

  • 中文名:軟體漏洞
  • 外文名:bug
  • 起因:程式語言的局限性
  • 修複方法:更新
基本信息,最常見漏洞,編程錯誤,

基本信息

多年以來,在計算機軟體(包括來自第三方的軟體,商業的和免費的軟體)中已經發現了不計其數能夠削弱安全性的缺陷(bug)。黑客利用編程中的細微錯誤或者上下文依賴關係,已經能夠控制Linux,讓它做任何他們想讓它做的事情。

最常見漏洞

緩衝區溢出是一種常見的編程錯誤,也是一種牽扯到複雜因素的錯誤。開發人員經常預先分配一定量的臨時記憶體空間,稱為一個緩衝區,用以保存特殊信息。如果代碼沒有仔細地把要存放的數據大小同應該保存它的空間大小進行對照檢查,那么靠近該分配空間的記憶體就有被覆蓋的風險。熟練的黑客輸入仔細組織過的數據就能導致程式崩潰,更糟糕的話能執行代碼。
幸虧近年來緩衝區溢出攻擊發生的顯著數量提高了編程界對這個問題的認識。雖然緩衝區溢出仍然在出現,但它們經常會被很快發現和糾正,特別在開放原始碼套用中更是如此。像Java.Net這樣的比較新的編程體系都包含自動檢查數據大小,防止發生緩衝區溢出的機制。
軟體漏洞軟體漏洞
緩衝區溢出是稱為輸入有效性漏洞的更大一類軟體安全缺陷下的一個子類。幾乎所有的程式都接受某種類型的用戶輸入(例如,命令行參數或者HTML表格)。如果代碼沒有嚴格檢查輸入的格式和內容是否合適,就開始處理數據,那么就會發生問題。考慮下面這個簡單的例子:
這段代碼的意圖可能是列印/var/www/html下某個HTML檔案的內容,/var/www/html是Red Hat伺服器上Apache的httpd服務程式默認的文檔根目錄。這段代碼接受用戶輸入的一個檔案名稱,把它作為參數傳給open函式。不過,如果一個惡意的用戶把../../../etc/shadow當作參數輸入的話,就會顯示出/etc/shadow的內容,並可能根據這些內容破譯出root密碼!
作為一名系統管理員,您該如何防止這種情況發生呢?幾乎無可奈何,至少在確定出缺陷(bug),並發布解決它的補丁之前是這樣。緊盯補丁和安全性公告的發布,這是大多數系統管理員工作的一個重要部分。大多數Linux發行版本都帶自動打補丁的工具,如Fedora上的yum、DebianUbuntu上的apt-get。利用這些工具能讓您的站點避免出現軟體的安全漏洞問題。

編程錯誤

大多數IT安全事件(如補丁程式網路攻擊等)都與軟體編程錯誤有關,在過去的三年中,非盈利調研機構MITRE和美國系統網路安全協會( SANS Institute)發現了700多處常見的軟體編程錯誤,經過安全專家的篩選,最終公布了以下25大軟體編程錯誤:
1. 錯誤的輸入驗證
2. 不正確的編碼或轉義輸出
3. 維持SQL查詢結構(SQL注入)錯誤
4. 維持網頁結構(跨站點腳本)錯誤
5. 維持作業系統命令結果(作業系統命令注入)錯誤
6. 明文傳送敏感信息
7. 跨站點請求偽造
8. 資源競爭(Race condition)
9. 錯誤信息泄露
10. 限定緩衝區內操作失敗
11. 外部控制重要狀態數據
12. 外部控制檔案名稱或路徑
13. 不可信搜尋路徑
14. 控制代碼生成錯誤(代碼注入)
15. 下載未經完整性檢查的代碼
16. 錯誤的資源關閉或發布
17. 不正確的初始化
18. 錯誤計算
19. 可滲透防護
20. 使用被破解的加密算法
21. 硬編碼密碼
22. 對核心資源的錯誤許可權分配
23. 隨機值的錯誤利用
24. 濫用特權操作
25. 客戶端執行伺服器端安全

相關詞條

熱門詞條

聯絡我們