恶意软件与漏洞检测及防护
1. 软件漏洞概述
软件漏洞并非恶意软件的一种,但它是信息系统、系统安全程序、内部控制或实现过程中的薄弱环节,可能被威胁源利用。例如,美国国家安全系统委员会将漏洞定义为信息系统等方面的弱点,NIST SP 800 - 30 进一步扩展为可能导致安全漏洞或违反系统安全策略的缺陷或弱点。
恶意软件本身就能造成损害,而漏洞需要被利用才会产生危害,它代表着潜在的威胁,需要额外的努力和工具才能在各种攻击中实现。尽管已经提出了许多软件漏洞检测方法,但每年在常见漏洞与披露(CVE)中报告的漏洞数量仍在增加。
漏洞数量增加可能有多种原因:
- 软件产品的数量和规模大幅增加。
- 软件质量和软件工程实践(包括漏洞扫描)的重要性日益凸显。
- 报告的漏洞数量增加可能意味着未被检测和报告的漏洞减少,这可能是软件实践改进的一个迹象。
2. 软件漏洞检测方法
在软件开发过程中,源代码静态分析被广泛用于检测漏洞,主要有两种方法:
- 基于代码相似度的方法 :仅限于检测由代码克隆引起的漏洞。
- 基于模式的方法 :更通用,广泛用于检测各种原因导致的漏洞。基于模式的方法又可分为基于规则的方法、传统机器学习方法和深度学习方法。基于规则的方法通常需要人类专家定义规则和参数;传统机器学习方法依赖专家选择模式特征;而深度学习方法无需人类专家定义特征,能自动学习漏洞模式,成为软件漏洞检测的新趋势。
3. 软件工程师的安全实践
软件工程师依靠软件安全实践来:
- 防止产品中引入
超级会员免费看
订阅专栏 解锁全文
1763

被折叠的 条评论
为什么被折叠?



