01 漏洞基础
原则上,漏洞是指系统或网络中的一个脆弱点,其可能会被网络犯罪分子利用,以获得未经
授权的访问,从而造成破坏。漏洞利用之后会发生什么呢,谁也说不准——安装恶意软件、
窃取敏感数据、利用恶意代码造成损害等等。
以下是有关漏洞的几个官方定义:
1、NIST:系统、系统安全程序、内部控制或实施中存在的脆弱点,其可能会被威胁行为者利用或触发。
2、ISO 27005:资产中存在的、可被威胁行为者利用的脆弱点,其中资产是指对组织机构、其业务运营及其连续性有价值的任何东西,包括支持组织使命的信息资源。
3、IETF RFC 4949:系统设计、实施或操作和管理中存在的缺陷或脆弱点,其可能会被利用,违反系统的安全策略
CWE(CommonWeaknessEnumeration):是开发的常见软件和硬件安全弱点列表。基本上可以认为CWE 是所有漏洞的原理基础性总结分析,CVE 中相当数量的漏洞的成因在CWE中都可以找到相应的条目。
CVE(Common Vulnerabilities & Exposures):公开的漏洞都拥有唯一标识,漏洞编号就好比是出版物的 ISBN 号。目前最常见的漏洞编号,是引用 MITRE 组织推出的 CVE 编号系统,编号由(CVE Numbering Authorities)CNAs 分配。漏洞信息通常包括简要描述、告警、缓解措施和报告。
CVSS(Common Vulnerability Scoring System):CVSS 建立于 1990 年,目前由 FIRST 负责运营。它通常是基于对每个漏洞特征进行定量计算一个大致的评分(0-10 分),然后输出一个定性值(低、中或高)
CPE(Common Platform Enumeration):通用平台枚举项,为 IT 产品和平台提供了统一的名称,原来属于 MITRE 运营,2014 年交由 NIST,作为NVD基础资源的一部分。
CAPEC(Common Attack Pattern Enumeration and Classification):是攻击模式枚举分类,是美国国土安全部建立于 2007 年,现在主要是由 MITRE 在运营,提供了公开的可用攻击模式,在信息安全风险评估中应对威胁。
OVAL(Open Vulnerability and Assessment Language):用于表达系统安全状态,是可以用于检测的技术细节指导,包括获取系统配置信息、分析状态、输出报告三个步骤。
CKC(cyber-attacks and the Cyber Kill Chain):是建立在对漏洞生命周期的认识,包括漏洞出现和利用。CKC 还通过分配特定事件的攻击行为来提供威胁情报,并使用模型描述来理解这些行为。
02 漏洞的类型
漏洞有多种类型和形式。常见的漏洞类型包括以下几种。
1、软硬件漏洞
硬件漏洞是指设备或系统中的缺陷或脆弱点,能够让攻击者远程或现场利用系统。常见的硬件漏洞包括设备未加密、未对存储设备加以保护、以及系统或设备版本老旧。
软件漏洞是指软件中的缺陷或瑕疵,攻击者可以基于此远程控制系统。这些缺陷有时与软件编码或设计有关。例如,某些软件漏洞是缺乏输入验证、跨网站脚本、数据未加密造成的等。
2、网络漏洞
网络漏洞会导致软硬件问题暴露给恶意软件或配置欠妥当的防火墙。常见的网络漏洞包括错误配置的防火墙、社工攻击和无保护的网络通信。此外,一个简单的网络系统中存在着许多应用程序和操作系统,从而让攻击者通过利用其中的缺陷或漏洞进入整个网络。
3、程序性/操作性漏洞
如果组织机构的安全程序存在漏洞,也会让组织机构受到攻击。为了提高安全性,组织机构需要遵守标准的密码策略。组织机构需要适当地维护各种操作程序,以避免被利用。组织机构的网络安全系统需要按照最佳实践来以防止攻击者不定期的网络攻击。组织机构进行良好的培训和知识共享有助于避免恶意软件攻击,并减少漏洞利用。
4、操作系统漏洞
操作系统漏洞是指应用软件或操作系统内的缺陷。这些漏洞是操作系统内的操作逻辑或代码中的错误,攻击者会利用这些漏洞来获得访问权限并造成破坏。恶意软件、网络入侵、缓冲区溢出和虚拟化是攻击者利用操作系统漏洞时的常用攻击向量。但尽管如此,也很难开发一个完全没有漏洞的软件
03 漏洞的管理
漏洞管理是用于识别、评估、管理整个组织机构的系统和软件漏洞并针对漏洞采取补救措施的系统性和战略性流程。漏洞管理会监测风险并保持组织机构的当前安全状态。
漏洞是网络犯罪分子可以使用或利用的薄弱环节或关键领域。随着漏洞数量的不断增加,确保网络安全迫在眉睫。漏洞管理是识别和评估 IT 系统风险的过程,旨在清除漏洞或采取措施进行补救。
1、漏洞管理的主要目标是扫描、调查、分析和报告风险或安全漏洞的细节,并提供缓解方法 和策略。漏洞管理是解决和补救安全漏洞以避免网络攻击或漏洞利用的持续过程。
2、漏洞管理有助于识别和消除薄弱环节,确保网络免受潜在攻击、编码错误或缺陷的影响。漏洞管理是确保网络安全的基本方法,有助于提高系统的安全性。
3、漏洞扫描在漏洞管理过程中起着重要作用。漏洞扫描是检测、评估和评价系统和软件漏洞的过程。检测漏洞或脆弱点有助于避免攻击者造成进一步的损害。NIST 建议每季度进行一次漏洞扫描。对于依赖网络满足日常运营需求或拥有大规模敏感数据的组织,也建议每月或更多地进行漏洞扫描。
4、网络安全和计算机安全是漏洞管理的基本组成部分。它控制着与信息有关的安全风险,并 专注于复杂的网络犯罪情况。通过对 IT 环境中所涉及的风险进行漏洞处理,可以确保持续了解漏洞情况。
5、为实现有效的网络安全效果,可以采用各种扫描和检测工具。采用工具进行漏扫比人工安 全系统效果更好。虽然工具采购需要投资,但这在组织机构可负担的起的范围内。而且,与泄露敏感数据损失数十亿元相比,采用工具更划算。
1、漏洞产生阶段(Creation):漏洞尚未被发现或者利用, 因此, 该阶段安全漏洞无风险。
2、漏洞发现阶段(Discovery):当漏洞刚被发现时, 对漏洞的挖掘和利用处于探索阶段, 并且掌握漏洞信息的人员数量少, 因此, 该阶段漏洞风险较低。
3、漏洞公开阶段(Disclosure):由于漏洞处于公开但未提供补丁的状态,越来越多的潜在攻击者开始关注此安全漏洞。攻击方式也会发生改变, 例如攻击由简单的代码供给转变为自动攻击工具, 使低技能攻击者开始尝试漏洞利用, 随时间推移,漏洞风险持续升高。
4、漏洞评估阶段(Assess):随着攻击脚本的传播, 更多的攻击者掌握了漏洞的利用方法, 从整体上看, 漏洞风险不断增长,达到高峰期。
5、漏洞修复阶段(Patched):随着补丁释放, 安装用户增多, 安全风险不断降低。由于不同漏洞的复杂度差别较大,对于未能提供补丁的漏洞,相关组织机构也会采取一些手段切断黑客漏洞利用的攻击链路。
05 漏洞的管理流程
漏洞管理流程一般情况下分为五个步骤:识别、评估、排序、补救、以及报告。
1、识别
漏洞识别是我们通常所说的漏洞扫描,也是漏洞管理的第一步。根据现有资产情况,需要进行漏洞扫描的资产通常包括笔记本、PC、服务器、数据库、防火墙、交换机、路由器、打印机等。漏洞扫描需要对所有这些资产进行扫描,以发现已知漏洞。
漏洞识别一般是通过漏洞扫描器实现的,识别漏洞的形式无外乎有四种:非认证式扫描、认证式扫描、API 扫描、被动流量扫描,前两种是最普遍的方式。非认证方式扫描,也称为网络扫描方式(Network Scanning),基本原理就是发送 Request 包,根据Response 包的 banner 或者回复的报文来判断是否有漏洞,这种分析 Response 包内容的主要逻辑是版本比对或者根据 PoC 验证漏洞的一些详情来判断。
2、评估
漏洞评估是在漏洞识别的基础上进行漏洞严重性的评估,这一步非常重要会影响到后面的补救步骤。比较常见的漏洞评估是使用通用漏洞评分系统(CVSS)评分法。CVSS 是一个标准的漏洞管理解决方案,用于对漏洞进行风险评级和打分。根据 CVSS 的分数,可以将漏洞分为危急、高危、中危和低危。
3、排序
由于漏洞越来越多,组织机构很难,有时甚至不可能解决所有漏洞。根据风险系数或威胁对漏洞进行优先级排序,可以更好地补救漏洞。在漏扫报告中确定优先级指标和评级,以便在后续的补救阶段进行深入分析。
4、补救
这一步是针对发现的漏洞进行补救和处理。在这个过程中,正确的补救方法和具体的处理策
略是至关重要。漏洞补救不是简单的打补丁,而是一个系统化的流程。漏洞补救过程通常包括以下几个步骤:
1、获取厂商的补丁;
2、分析补丁的依赖和系统的兼容性以及补丁的影响;
3、建立回滚计划,防止补丁对业务造成未知影响;
4、在测试环境测试补丁修复情况;
5、在部分生产环境测试补丁修复情况;
6、进行灰度上线补丁计划,乃至全量补丁修复;
7、分析补丁修复后的系统稳定并监控;
8、进行验证补丁是否修复成功,漏洞是否依然存在
5、报告
这一步至关重要,会传达有关资产清点、安全漏洞和整体风险的关键发现。报告中还会介绍最相关的漏洞及其补救方法的详细信息。漏洞报告的重要组成部分包括执行摘要、评估概述和漏洞详情。
在网络安全领域的长期实战中,可以参考以下步骤来改善漏洞管理。
1、定期进行渗透测试
2、制定漏洞补丁时间计划表
3、进行细粒度的 IT 资产盘点
4、随时更新网络威胁情报
5、加强网络安全基础设施的管理
注:本文主要通过学习青藤云的漏洞管理的文档做的梳理总结。