随着企业对网络安全风险意识的增强、合规性要求的提高和网络安全事件的频发,漏洞管理越来越被更多的企业所重视,成为了信息安全项目的必备基石。
一、什么是安全漏洞?
我们有一些耳熟能详的安全漏洞名字,比如SQL注入、跨站脚本、缓冲区溢出等,企业的资产
需要保护的、有价值的资源
也面临层出不穷的网络攻击的威胁。那什么是安全漏洞呢?简而言之就是信息系统中的弱点,这个弱点或者脆弱性可能是缺乏防控措施或者防控措施不足造成的,比如组织没有应用某一个组件的补丁而造成的脆弱性暴露。
二、为什么要做漏洞管理?
漏洞的暴露和利用可能会给企业带来的不仅仅是巨大的经济损失,还有可能损害客户利益、企业名誉,甚至违反相关的法律法规。
有效的漏洞管理可以及早地发现漏洞并遏制漏洞利用事件的发生,相对于企业的盈利部门,虽然漏洞管理是一项支出,而忽略漏洞管理可能意味着更高的经济成本。
安全运维管理中新增了配置管理、漏洞和风险管理控制点,要求企业重视漏洞和补丁管理安全,做好配置管理工作,及时更新基本配置信息库,定期开展安全测评工作,提升企业积极主动防护的能力。很多企业也有要求对关键等级高的资产在上线前和重要变更时进行渗透测试,并每季度进行漏洞扫描,以发现新暴露的漏洞。
许多行业的法律法规都规定了对漏洞管理的要求,相关要求也逐渐扩展到各行各业。支付卡行业数据安全标准涉及所有处理支付卡业务的实体,并要求涉及的实体采用行业公认的测试方法,至少每年进行一次渗透测试,并且在环境做出重大变更后必须再次测试。
漏洞管理也可以从技术角度了解系统的信息收集与使用的情况,规定了网络运营者不能未经用户同意收集使用个人信息
在实际的场景中,App安装后可能未经用户同意收集MAC地址、IP地址、用户地址位置等个人信息,或者在用户明确表示不允许收集的情况下,仍然收集这些信息。
或者APP后台自动收集用户设配IMEI号、IMSI号地址位置等过于频繁,超过了业务实际需要。更多的场景和实例不再赘述,对敏感信息相关漏洞的测试和管理可以有效防止信息泄露并了解敏感数据收集、使用的情况,从而帮助APP开发者和管理者了解APP的合规性风险。
三、怎么做漏洞管理?
一个漏洞管理框架应该包括治理、发现、评估、处理、监控和报告五个部分。有效的漏洞管理可以帮助组织定期评估漏洞,根据成本效益原则修复风险严重、高、低等的漏洞,并接受修复成本比较高的风险较小的漏洞。
1. 治理/准备
良好的治理过程是是有效的漏洞管理的基础,如果不能明确数据和处理数据的信息系统的的分类或者对业务的影响程度,也就无法确定他们需要保护的程度、漏洞的等级和修复的优先级。治理的内容包括确认组织的信息系统表,需要保护的信息系统,对数据的分类,和一些诸如服务水平协议,角色和职责,项目范围等文档的撰写。
2. 漏洞发现
漏洞发现的方式主要包括漏洞扫描、渗透测试等,使用Nessus等常见的漏洞扫描器可以快速识别系统、网络和应用程序中的漏洞,例如版本漏洞和不安全的配置等,然而常规的漏洞扫描器可能存在一定的误报率和难以发现如逻辑绕过之类的漏洞。渗透测试技术则可以弥补这一缺陷。
渗透测试是通过模拟攻击的过程,发现资产存在的漏洞。漏洞扫描只是探测漏洞是否存在,通常不会对系统发起主动的攻击性行为,而渗透测试会通过突破安全控制措施,入侵目标系统来验证漏洞,达到评估系统安全性的目的。
渗透测试根据向攻击者/测试者提供信息的程度可以划分为白盒渗透测试、灰盒渗透测试、黑盒渗透测试,其中白盒渗透向攻击者提供目标系统的详细信息,因此可以减少信息勘测的步骤,缩短测试和攻击时间,并增加了发现更多漏洞的可能性。黑盒测试在攻击前不向测试人员提供任何消息,也更接近真实的攻击场景。而灰盒测试测试也被称为部分知识测试,是前两种测试的折中,平衡了两者的优缺点,也是常用的渗透测试方法。
3. 优先等级处理
根据漏洞在当前环境下的威胁程度、可复现性、影响用户程度等评估漏洞和风险,并依此对漏洞评级、排序并确定修复的优先级。
对漏洞的定性评估可以将漏洞分为:超高危、高危、中危、低危,具体的评判标准可以参考CVE和CVSS。
从处理风险的角度来看,风险的响应通常包括:风险缓解、风险转移、风险接受、风险威慑、风险规避、风险拒绝。而一般处理漏洞的方式主要有风险缓解和风险接受。企业可以选择修复漏洞以缓解此漏洞敞露的风险,例如SQL注入漏洞,常见的修复措施有参数化、对用户输入进行验证、使用存储过程等;对于跨站脚本攻击XSS而言,验证用户输入的有效性是一个很好的措施。
漏洞管理是一个持续的过程,成功的漏洞管理过程也需要与组织的业务风险管理紧密联系,定期审核漏洞管理过程是否与组织的业务和风险管理目标相一致,并确保企业网络安全相关的人员及时了解新的安全威胁和趋势也是漏洞管理过程中不可忽略的部分。