大多数漏洞评估工具都能覆盖常规漏洞,例如OWASP Top10,但一般都各有所长。常见的区分维度包括部署灵活性、扫描速度、扫描准确度以及与流程管理、代码开发等平台的整合性。如果不考虑license的限制和成本,很多团队都会选择同时部署多款工具。本文推荐的开源工具能与主流的流程管理平台集成,输出包含优先级的处置分析报告,而且这些工具仍有团队在积极维护。
另外,针对容器方向的漏洞评估工具,尽管有一些新工具出现,如Anchore,Clair, Dagda,Trivy,但大量用户反映这些工具存在功能不全、整合性差等问题,因此考虑到易用性,本文仅推荐OSV-Scanner、OpenSCAP、ZAP这几款支持或包含一部分容器安全扫描功能的开源工具。
OSV Scanner由谷歌团队开发,发布于2022 年 12 月 13 日。开源市场也不乏能有效扫描静态代码漏洞的SCA(软件成分分析)工具。但作为“新秀”,OSV从OSV.dev 开源漏洞数据库中提取并适用于不同的生态系统,其漏洞来源和支持的语言更加广泛,可以很好地为DevOps 团队降本增效。
依赖项和漏洞定位;
以JSON格式存储受影响版本的信息,便于开发集成;
扫描目录、软件物料清单(SBOM)、锁定文件、基于Debian的docker镜像或在Docker容器中运行的软件。
漏洞提取来源广泛,包括Apine, Android, crates.io, Debian, Go, Linux, Maven, npm, NuGet, OSS-Fuzz, Packagist, PyPl, RubyGems等等;
报告结果精炼,节约处置时间;
可以根据漏洞ID忽略漏洞,提高处置效率;
目前谷歌仍在积极开发中,可以期待更多与时俱进的新功能。
与开发者工作流集成、发现C/C++漏洞等功能不完善;
在某些编程语言的漏洞检测中可能弱于一些早期的开源SCA工具:
Bandit: Python
Brakeman: Ruby on Rails
VisualCodeGrepper: C, C++, C#, VP, PHP, Java, PL/SQL, Cobol
https://github.com/sqlmapproject/sqlmap
一些DevOps团队会在后端数据库与代码hook之前对数据库进行安全扫描。Sqlmap就是其中的代表工具。
自动识别密码哈希值;
用Python开发,可以在任何有Python解释器的系统上运行;
可以通过DBMS凭证、IP地址、端口和数据库名称直接连接到数据库进行测试;
完全支持的数据库管理系统达35个以上,包括MySQL、Oracle、Postgre SQL、Microsoft SQL Server、IBM DB2、Sybase、SAP MaxDB、Microsoft Access、Amazon Redshift、Apache Ignite等等;
具备六类SQL注入技术:布尔盲注、时间盲注、报错盲注、联合查询注入、堆查询注入和带外注入。
支持密码爆破;
能搜索特定的数据库名和表名;
支持执行任意命令并检索数据库服务器底层操作系统上的标准输出。
命令行工具没有图形用户界面;
过于专业,需要数据库方面的专业知识才能有效使用。
Wapiti是一款针对应用的黑盒扫描工具,采用fuzzing技术,在脚本中注入payload来发现常见漏洞。
支持GET和POST的HTTP攻击方法;
针对SQL注入(SQLi)、XPath注入、跨站脚本(XSS)、文件泄露、XXE注入、文件夹和文件枚举等的模块测试;
支持HTTP、HTTPS和SOCKS5;
通过Basic、Digest、NTLM或GET/POST对登录表单进行认证;
可扫描域、文件夹、页面和URL。
覆盖漏洞类型更广;
测试各类潜在漏洞;
不少测试显示Wapiti比其他开源工具(如ZAP)能检测到更多SQL注入和盲注漏洞。
命令行工具无图形界面;
熟练操作需要大量专业知识背景。
OWASP的Zed攻击代理(ZAP)在浏览器和web应用之间,以代理身份拦截请求,并通过模拟用户和黑客行为,如修改内容、转发数据包等进行安全测试。
支持主流操作系统和Docker;
能快速启动Docker包扫描;
支持自动化框架;
支持全量API;
支持手动或自动。
OWASP团队仍在积极维护;
命令行界面有图形界面;
完善的学习曲线和操作文档;
适合各类水平用户;
XSS漏洞检测表现突出;
支持fuzzing测试;
ZAP在渗透测试从业者中非常流行,因此熟悉ZAP有利于从攻击角度发现漏洞。
有些功能需装插件;
需要一些专业知识;
误报比很多商业产品高。
Aqua公司开源了CloudSploit的核心扫描引擎,供广大用户下载、更改和使用。CloudSploit支持按需扫描也可配置为持续运行,并及时告警。
采用RESTful API;
API可以从命令行、脚本或构建系统(Jenkins、CircleCL、AWS CodeBuild等)调用;
读写控制器可以为每个API密钥提供特定权限;
每个API调用都是可以单独追踪的;
对AWS、Azure和Google云进行持续的CIS基准审计;
持续扫描可以在云基础设施发生变化时发出告警,这些变化可能存在安全隐患,如安全组更改、出现新的受信任的SSH密钥、MFA设备停用、删除日志等。
扫描结果实时;
通过HMAC-SHA256签名实现API密钥认证;
秒级扫描95种以上的安全风险类型;
直观的web界面;
支持HIPAA和PCI DSS合规框架;
支持通过Slack、Splunk、OpsGenie、Amazon SNS、邮件等发送告警。
无法通过GitHub获取;
自动推送、一些报告工具和一些整合功能可能只在付费产品中提供。
有些开源团队开发了很多安全工具来扫描网络设备和物联网(IoT)的固件,但漏洞扫描器比较少。Firmwalker可以搜索提取或装好的固件,并报告潜在漏洞。
可搜索SSl相关文件和etc/ssl目录;
可搜索配置、脚本和pin文件;
能识别admin、password和remote等关键词;
可搜索URL、电子邮件地址和IP地址。
对物联网、网络、OT和其他固件进行安全审计;
可找到异常文件、嵌入式密码或隐藏的URL;
支持以bash脚本运行。
需要一些编程知识才能有效使用;
没有图形用户界面;
目前对Shodan API的支持仍在实验阶段。
Nikto2是一个开源的web server扫描器,可发现风险文件、程序、错误配置。用户也可在Kali Linux访问Nikto。
覆盖6700余种风险文件和程序;
覆盖1250余个旧服务器版本和270种版本问题;
支持检测多种索引文件、HTTP server options;
验证已安装的web服务器和软件;
支持凭证破解;
具备降低误报技术;
报告格式支持TST、XML、HTML、NBE或CSV。
小巧轻便但功能强大;
支持文件的输入和输出;
扫描项目和插件经常更新(自动更新);
对web服务器的常见问题进行标记;
SSL支持Unix和Windows操作系统,支持HTTP代理;
可选择部署编码技术,用于入侵检测系统(IDS)的绕过和测试。
没有界面,只有命令行;
过于具体,初学者可能会困惑;
搜索功能比一些商业产品略逊色;
全面扫描需耗时45分钟以上。
OpenSCAP是一个Linux平台的开源框架,对标美国国家标准与技术研究所(NIST)维护的安全内容自动化协议(SCAP),实施合规评估。OpenSCAP支持扫描web应用、网络基础设施、数据库和主机。与绝大部分CVE扫描器不同,OpenSCAP根据SCAP的标准执行安全测试。
漏洞评估;
访问公共漏洞数据库;
OpenSCAP Base提供经NIST认证的命令行扫描工具,以及图形用户界面便于使用;
OpenSCAP Daemon可根据SCAP标准对基础设施进行持续扫描;
其他OpenSCAP工具提供桌面扫描、扫描结果汇总等功能;
支持整合系统管理解决方案,如Red Hat Satellite 6、RH Access Insights等;
Atomic Scan选项可扫描容器的安全漏洞和合规问题。
快速发现安全问题并即时纠正;
获Red Hat和其他开源厂商的大力支持;
结合了安全漏洞和合规性扫描;
可扫描docker镜像。
学习难度高于同类工具;
OpenSCAP包含多款工具,更为复杂;
用户首先需了解与自身相关的政策条款;
很多工具只能在Linux上运行,有些甚至只能在特定的Linux发行版上运行。
Nessus是Tenable发布的一款全球领先的漏洞评估产品。而OpenVAS是Nessus的一个开源分支,功能丰富,漏洞来源广泛,可对传统端点和网络进行大规模的漏洞评估。
发现系统的已知漏洞和缺失补丁;
具备web管理控制台;
可安装在任何本地或云服务器;
具备漏洞分析能力,输出如何修复漏洞或攻击者如何利用该漏洞等信息。
Greenbone积极维护中;
覆盖很多CVE漏洞;
定期更新漏洞数据库;
已形成大型社区,供用户交流;
可随着企业发展从社区版升级到Greenbone企业版或Greenbone云服务。
需要一定专业知识;
大量并发扫描会使程序崩溃;
没有策略管理;
Greenbone社区版只扫描基本的端点资产或家庭应用产品,如Ubuntu Linux,MS Office等(扫描企业设备或获取策略权限需升级到付费的Greenbone企业版)。
Nmap支持绝大多数操作系统,通过IP数据包扫描设备端口并确定被检查的资产有哪些主机、服务和操作系统,是渗透测试人员和IT团队必不可少的工具之一。
快速发现IP地址;
通过TCP/IP协议猜测设备操作系统;
持续更新的500个脚本库,用于提高性能。
快速扫描系统上的开放端口,确定可用的TCP/UDP服务;
通过端口测试确定运行的协议、应用类型和版本号;
用户群庞大,开源社区成熟。
没有正式的客户支持;
需要一些专业知识背景。
https://www.esecurityplanet.com/applications/open-source-vulnerability-scanners/
精彩推荐