漏洞扫描
通过上一章的内容,我们可以发现目标系统、目标端口、开放端口上跑的服务、这些端口上的服务使用的软件版本等信息。
- 基于端口服务扫描结果版本信息(速度慢)
- 搜索已公开的漏洞数据库(数量大)
- 使用弱点扫描器实现漏洞管理
弱点扫描器会把大量已公开的有利用代码的漏洞全都整合到一起,然后由编程人员编写这么一个扫描器,这些扫描器会自动调用这些漏洞利用代码,然后朝向你指定的目标进行各种各样的探测
https://www.exploit-db.com网站可以查看大量已公开的漏洞利用代码,如果你扫描发现了一个目标系统,他开了端口,端口上跑的应用,可以到这个网站上搜索关于该应用的相关漏洞和利用代码,可以拿来试一下。
漏洞扫描工具
searchsploit
如果不想去网站上搜索,可以使用kail上的漏洞扫描工具。
kail里面集成了exploit-db里面所有的漏洞利用代码和漏洞利用相关描述文件,eg:
searchsploit tomcat
可以查看目录去搜索,可查看具体的分类下的脚本,可利用。
/usr/share/exploitdb/platforms/
也可以使用该工具:sand-gui,他除了可以搜索exploit-db外,还可以搜索metasploit的相关在该工具中搜索相关内容。kail2.0之后没有sand-gui了,需要安装apt-get install sandi。
从信息的维度定义漏洞管理
企业里面对漏洞也是需要漏洞扫描器的,我们需要用漏洞扫描器去周期性的扫描系统,发现那些系统时存在漏洞的,从发现的漏洞的危险级别最高级开始处理。
从信息的维度定义漏洞管理,三大步:
- 信息收集:
即用漏洞扫描器扫描系统,把所有的漏洞都收集起来。
扫描发现网络IP、OS、服务、配置、漏洞
能力需求:定义扫描方式内容和目标 - 信息管理:
即把这些信息收集起来,进行格式化的筛选,挑最高威胁的去解决,解决之后会对这些信息进行标注,表示我已经排除掉了。
格式化信息,并进行筛选、分组、定义优先级
能力需求:资产分组、指定所有者、向所有者报告漏洞 - 信息输出:
即对企业里面不同层级的人员输出相应的报告。
向不同层级的人群展示足够的信息量
能力需求:生成报告、导出数据、与SIEM集成
漏洞扫描类型
- 主动扫描
可以是有目标系统的登录权,即我有他的账号密码,我们可以用扫描器登录到目标系统里面进行一些系统方面的查询,但是这种通常在弱点扫描里使用的不是很多,尤其是进行渗透测试的时候,这种情况不可能出现,因为你不可能知道他的账号密码。
有身份验证
无身份验证 - 被动扫描
镜像端口抓包
其他来源输入 - 基于Agent的扫描
这个其实更多的企业里面对漏洞管理才会使用到的场景,你需要在你的所有服务器上、设备上安装扫描器的Agent,Agent工作在你的目标系统里面,然后在目标系统里面进行一些对目标系统的查询、探测、软件补丁版本的判断。这样的扫描结果肯定是准确的,而且效率高,但是他受平台的限制,比如有些网络设备,他可能没有办法去安装一个Agent到他的网络设备里。
支持平台有限
漏洞基本概念
1.CVSS(Common Vulnerability Scoring System)
通用漏洞评分系统——工业标准:其作用就是给各个漏洞去评分。
Basic Metric:基础的恒定不变的弱点权重
Temporal Metric:依赖时间因素的弱点权重
Enviromental Metric:利用弱点的环境要求和实施难度的权重
CSSS是安全内容自动化协议SCAP的一部分。
通常CVSS与CVE一同由内裹国家漏洞库NVD发布并保持数据的更新。
不同机构按CVSS分值定义威胁的中、高、低威胁级别。
CVSS体现弱点的风险,威胁级别表示弱点风险对企业的影响程度。
CVSS分值是工业标准,但威胁级别不是。
他是工业标准,是做漏洞管理必须要遵守的一个东西。
2.CVE(Common Vulnerabilities and Exposures)
我们每发现一个漏洞,CVE这个组织都会给这个漏洞分配一个编号。实现了不同厂商之间信息交换的统一标准。
已公开的信息安全漏洞字典,有统一的漏洞编号标准。维护漏洞编号工作由Mitre公司负责(非盈利机构)。
扫描器的大部分扫描项都会遵守CVE,都会有一个对应的CVE编号。
CVE发布流程:
- 发布漏洞
一个人发现一个漏洞,会把这个事情爆给CAN这个组织 - CAN负责制定CVE ID
- 发布到CVE List
CVE的格式都是CVE-年份-编号,如:CVE-2008-4250.
但是:
除了CVE,很多厂商也会维护自己的Vulnerability Reference,比如MS、MSKB、CERT、BID、IVAM、OVEL。但是CVE使用最广。
3.OVAL(Open Vulnerability and Assessment Language)
开放的漏洞描述语言。他也是一套工业标准。
作用:
用一套通用的描述方法对一个漏洞来进行描述,这是一个技术性的描述,这些技术性的描述文档会被其他的扫描器软件厂家拿到之后导入到自己的扫描器中,这个扫描器就可以检测这个漏洞。
OVAL是以xml文件格式来发布,使用XML语言描述,包含了严密的语法逻辑。
4.CCE
是描述软件配置缺陷的一种标准化格式。
在信息安全风险评估中,配置缺陷的检测是一项重要内容,使用CCE可以让配置缺陷以标准的方式展现出来,便于配置缺陷评估的可量化操作。
5.CPE(Common Product Enumeration)
信息技术产品、系统、软件包的结构化命名规范,分类命名。任何一个产品都有一个CPE的类的编号。
6.CWE(Common Weakness Enumeration)
通用的弱点描述.
常见漏洞类型的字典,描述不同类型漏洞的特征(访问控制、信息泄露、拒绝服务),给漏洞的弱点进行一个大的分类,对不同的类会进行统一的处理。
7.SCAP(Security Content Automation Protocol)
是一个集合了多种安全标准的框架。
目的:
以标准的方法展示和操作安全数据。有NIST负责维护。
SCAP主要解决三个问题:
1.实现高层政策法规等到底层实施的落地(如FISMA、ISO27000系列)。
2.将信息安全所涉及的各个要素标准化(如统一漏洞的命名及严重性度量)。
3.将负责的系统配置核查工作自动化。
SCAP是当前美国比较成熟的一套信息安全评估标准体系,其标准化、自动化的思想对信息安全行业产生了深远的影响。
8.NVD(National Vulnerability Database)
美国政府的漏洞管理标准数据。
完全基于SCAP框架
实现自动化漏洞管理、安全测量、合规要求。
包含以下库:
安全检查列表
软件安全漏洞
配置错误
产品名称
影响度量
https://nvd.nist.gov/
漏洞管理
周期性扫描跟踪漏洞
高危漏洞优先处理
扫描注意事项
漏洞管理三要素:准确性、时间、资源