这篇文章上次修改于 275 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

Tenable_Web_Logo.jpg

PVS简介

官方文档都是英文版,同事之前整理的,通俗易懂的文档。

官方的全称是Tenable Passive Vulnerability Scanner,翻译过来就是被动式漏洞扫描器,确实是开辟了一个漏洞扫描的创新方式,是 Tenable的专利技术。被动式漏洞扫描是指通过监听交换机镜像流量完成漏洞扫描,可以说是一种对网络应用无损的扫描方式,不需要短时内向网络中发出大量的探测数据包试探被测试的应用服务。这在 ICS环境中的优势是很明显的,不再需要担心扫描导致 ICS环境中的服务崩溃,它们太老旧了、功能实现也可能不够健壮。

PVS能做什么

作为漏洞扫描器的功能也不用在这里多说,在它的用户手册中已经有详细的说明,PVS界面也很简洁,很容易使用,扫描发现的主机、应用、服务和漏洞都以美观的图表展示。

pvs.png

Apple_iOS_Vulnerabilities.png

PVS4monitor2.jpg
在我们的实际使用过程中,我们体会到PVS真正强大的功能不是漏洞扫描,而是一个在PASL脚本引擎驱动下的网络流量扫描器,漏洞扫描仅仅是一个小小的应用。关于网络流量扫描的能力,在PVS的用户手册中其实也有很多说明,主要是关于如何编写插件(Plugins),也给出了详细的例子,具体例子就不重复了。通过编写插件,可以让 PVS执行正则表达式检查TCP/UDP会话的数据包,一旦匹配,可以产生漏洞报告可以在界面中查看,也可以产生实时事件。

6202577_1.png

PVS界面目前没有查看功能,实时事件记录在本地实时事件文件中或者以syslog方式传到外部的接收服务器。PVS的规则之间可以定义依赖关系,从而允许步步深入地分析TCP/UDP会话的数据包。

在的配置界面中,有一项插件管理功能,其中可以禁用或启用某些插件(Plugins,还可以禁用或启用PASL Script。关于PASL,在PVS 的用户手册中没有任何说明,谷哥、百度也没有找到相关的说明,最为接近的材料是关于NASL2 的编程说明,这是用在Nessus漏洞扫描器中的一种脚本语言。后来了解到用在PVS中,目前只公开了插件(Plugins)的编写方法,既有插件的内容不向用户公开,用户可以编写自己的插件(Plugins),PASL Script脚本完全没有公开。

rtaImage.png

事实上Tenable 隐藏了PVS可以执行Custom PASL Script的能力。如果用户可以按需要编写自己的PASL Script,那么PVS将成为一个高效、灵活、被动式的流量分析工具,也许可以用来监视网络中特定的安全事件。