摘要
- 什么是软件漏洞?软件漏洞与软件错误或软件缺陷的关系是什么?
- 为什么会出现软件漏洞?
- 软件漏洞为什么要管理?如何管理?
什么是软件漏洞?
对信息安全中“漏洞”的认识
ISO/IEC 15408-1《信息技术—安全技术—IT 安全评估标准》:漏洞是存在于评估对象中的、在一定的环境条件下可能违反安全功能要求的弱点。
美国国家标准与技术研究院 NIST 内部报告《信息安全关键技术语词汇表》:漏洞是存在于信息系统、系统安全过程、内部控制或实现过程中的、可被威胁源攻击或触发的弱点。
ISO/IEC 27000《信息技术—安全技术—信息安全管理系统—概述和词汇》:漏洞是能够被一个或多个威胁利用的资产或控制中的弱点。
小结,对漏洞认识的 3 个共同特点:
- 漏洞是信息系统自身具有的弱点或者缺陷;
- 漏洞存在环境通常是特定的;
- 漏洞具有可利用性,若攻击者利用了这些漏洞将会给信息系统安全带来严重威胁和经济损失。
对“软件漏洞”的认识
基本认识:
- 软件(安全)漏洞是信息系统安全漏洞的一个重要方面。
- 20 世纪 80 年代,早期黑客的出现和第一个计算机病毒的产生,软件漏洞逐渐引起人们的关注。
- 在历经 30 多年的研究过程中,学术界及产业界对漏洞给出了很多定义,漏洞的定义本身也随着信息技术的发展而具有不同的含义与范畴。
- 软件漏洞通常被认为是软件生命周期中与安全相关的设计错误、编码缺陷及运行故障等。
- 本书中并不对软件漏洞/脆弱点、软件缺陷以及软件错误等概念严格区分。
- 软件漏洞一方面会导致有害的输出或行为;另一方面漏洞也会被攻击者所利用来攻击系统。
基于软件生命周期的认识:
软件系统或产品在设计、实现、配置、运行等过程中,由操作实体有意或无意产生的缺陷、瑕疵或错误,它们以不同形式存在于信息系统的各个层次和环节之中,且随着信息系统的变化而改变。
危害:漏洞一旦被恶意主体所利用,就会造成对信息系统的安全损害,从而影响构建于信息系统之上正常服务的运行,危害信息系统及信息的安全属性。
软件漏洞的特点
- 持久性与时效性
- 广泛性与具体性
- 可利用性与隐蔽性
为什么会出现软件漏洞?
- 计算机系统结构决定了漏洞的必然性
- 软件件趋向大型化,第三方扩展增多
- 新技术、新应用产生之初即缺乏安全性考虑
- 软件使用场景更具威胁
- 对软件安全开发重视不够,软件开发者缺乏安全知识
软件漏洞为什么要管理?如何管理?
为什么要对漏洞进行管理?
【案例 2-1】白帽黑客的罪与罚
【案例 2-2】阿里巴巴月饼门
案例分析:
- 漏洞是一种“武器”
- 让白帽的漏洞发现有章有法
- 漏洞管控势在必行
如何管理?
软件漏洞分类
通常可以从漏洞利用的成因、利用的位置、和对系统造成的直接威胁进行分类。
基于漏洞成因的分类
内存破坏类、逻辑错误类、输入验证类、设计错误类和配置错误类。
基于漏洞利用位置的分类
本地漏洞。即需要操作系统级的有效帐号登录到本地才能利用的漏洞,主要构成为权限提升类漏洞,即把自身的执行权限从普通用户级别提升到管理员级别。
远程漏洞。即无需系统级的帐号验证即可通过网络访问目标进行利用的漏洞。
基于威胁类型的分类
- 获取控制。即可以导致劫持程序执行流程,转向执行攻击者指定的任意指令或命令,控制应用系统或操作系统。威胁最大,同时影响系统的机密性、完整性,甚至在需要的时候可以影响可用性。主要来源:内存破坏类。
- 获取信息。即可以导致劫持程序访问预期外的资源并泄露给攻击者,影响系统的机密性。主要来源:输入验证类、配置错误类漏洞。
- 拒绝服务。即可以导致目标应用或系统暂时或永远性地失去响应正常服务的能力,影响系统的可用性。主要来源:内存破坏类、意外处理错误类漏洞。
软件漏洞分级
对漏洞进行分级有助于人们对数目众多的安全漏洞给予不同程度的关注并采取不同级别的措施。
按照漏洞严重等级进行分级
利用通用漏洞评分系统(CVSS)进行分级
- 依据对 3 种度量评价标准来对一个已知的安全漏洞危害程度进行打分。
- 基本度量用于描述漏洞的固有基本特性,这些特性不随时间和用户环境的变化而改变。
- 时间度量用于描述漏洞随时间而改变的特性,这些特性不随用户环境的变化而改变。
- 环境度量用于描述漏洞与特殊用户环境相关的特性。
- CVSS v3.1 Examples (first.org)
软件漏洞管理国际标准
安全漏洞标识、描述及分级规范
安全漏洞管理规范
- Guide to Using Vulnerability Naming Schemes(NIST SP 800—51 Rev. 1)
- The Technical Specification for the security content Automation protocol (SCAP):SCAP Version 1.2 (NIST SP 800—126 Rev. 2)
- Guide to Enterprise Patch Management Technologies(NIST SP 800—40 Rev. 3)
- Source Code Security Analysis Tool Functional Specification (NIST SP 500-268)
- Information technology — Security techniques —Vulnerability disclosure(ISO/IEC 29147)
- Information technology — Security techniques — Vulnerability handling processes(ISO/IEC 30111)
软件漏洞管理国内标准
- 安全漏洞标识与描述规范:《信息安全技术 安全漏洞标识与描述规范》(GB/T 28458—2012)
- 安全漏洞分级规范:《信息安全技术 安全漏洞等级划分指南》(GB/T 30279—2013)
- 安全漏洞分类规范:《信息安全技术 安全漏洞分类》(GB/T 33561—2017)
- 安全漏洞管理规范:《信息安全技术 信息安全漏洞管理规范》(GB/T 30276—2013)、CNNVD 漏洞管理规范