漏洞

弱點,允許攻擊者減少系統的信息保障

漏洞[1]脆弱性[2](英語:Vulnerability),是指计算机系统安全方面的缺陷,使得系统或其应用数据的保密性完整性可用性访问控制等面临威胁。

在《GB/T 25069-2010 信息安全技术 术语》,将脆弱性定义为“资产中能被威胁所利用的弱点”[2]

许多安全漏洞是程序错误导致的,此时可叫做安全錯誤(英語:Security bug),但并不是所有的安全隐患都是程序安全錯誤导致的。

原因

  • 複雜:大型的複雜系統會增加缺陷以及未預期文件系统权限的可能性[3][4]
  • 熟悉:使用常見、著名的程式,軟體,作業系統及硬體,若沒有經常更新系統,容易被攻擊者找到缺陷進行攻擊.[5]
  • 互連:越來越多的實體連接、特權、通訊埠、通訊協定以及服務,每一項都會增加系統被攻擊的可能性[6]
  • 密碼管理缺陷:電腦使用者的密码若强度不足,可能會用暴力法破解[7]。電腦使用者將密碼放在電腦軟體可以存取的地方。使用者在不同的程式和網站上使用相同的密碼[3]
  • 基本操作系统設計缺陷:操作系統設計者選擇去強化用戶管理或程式管理上的非最佳政策。例如使用預設允許英语default permit政策的作業系統,給每一個使用者和軟體完整的權限可以存取整台電腦[3]。操作系统的缺陷讓病毒以及惡意軟體可以以管理者的身份執行指令[8]
  • 瀏覽網站;有些網站可能會有有害的间谍软件廣告軟體,在瀏覽後會自動安裝在電腦中。在瀏覽這些網站後,電腦即受到這些軟體的影響,可能會將個人資料傳送給第三方[9]
  • 程序错误:軟體開發者在軟體中留下了可利用的漏洞,攻擊者可以用這個漏洞來濫用應用程式[3]
  • 不適當的輸入驗證:程式假設所有使用者的輸入都是安全的,沒有檢查使用者輸入的程式,可能會因為無意或刻意的輸入而造成問題,例如缓冲区溢出SQL注入等問題[3]
  • 沒有從過去的錯誤中記取教訓[10][11]:例如大部份在IPv4通訊協定軟體上被發現的漏洞,又在IPv6版本中的重複出現[12]

研究已經證實大部份資訊系統中,最脆弱的部份是使用者、操作者、設計者或是其他的人[13];因此在分析時,人可能有不同的角色,例如資產、威脅、資訊資源等。社会工程学是目前越來越受重視的安全議題。

常见漏洞

参考文献

参见