前言
对于发现资产中已知漏洞、配置不当等问题的工具,大家习惯性称之为“漏洞扫描”工具,但随着技术演进,很多工具越来越智能,逐渐具备分析总结能力,因此将它们称为“漏洞评估”工具似乎更准确。
大多数漏洞评估工具都能覆盖常规漏洞,例如OWASP Top10,但一般都各有所长。常见的区分维度包括部署灵活性、扫描速度、扫描准确度以及与流程管理、代码开发等平台的整合性。如果不考虑license的限制和成本,很多团队都会选择同时部署多款工具。本文推荐的开源工具能与主流的流程管理平台集成,输出包含优先级的处置分析报告,而且这些工具仍有团队在积极维护。
另外,针对容器方向的漏洞评估工具,尽管有一些新工具出现,如Anchore,Clair, Dagda,Trivy,但大量用户反映这些工具存在功能不全、整合性差等问题,因此考虑到易用性,本文仅推荐OSV-Scanner、OpenSCAP、ZAP这几款支持或包含一部分容器安全扫描功能的开源工具。
OSV-Scanner(开源代码扫描)
传送门:OSV-Scanner
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
Sqlmap(数据库扫描)
传送门: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(SQL注入检测)
传送门:Wapiti
Wapiti是一款针对应用的黑盒扫描工具,采用fuzzing技术,在脚本中注入payload来发现常见漏洞。
主要功能
支持GET和POST的HTTP攻击方法
针对SQL注入(SQLi)、XPath注入、跨站脚本(XSS)、文件泄露、XXE注入、文件夹和文件枚举等的模块测试
支持HTTP、HTTPS和SOCKS5
通过Basic、Digest、NTLM或GET/POST对登录表单进行认证
可扫描域、文件夹、页面和URL
优
覆盖漏洞类型更广
测试各类潜在漏洞
不少测试显示Wapiti比其他开源工具(如ZAP)能检测到更多SQL注入和盲注漏洞
劣
命令行工具无图形界面
熟练操作需要大量专业知识背景
ZAP (OWASP Zed Attack Proxy) (XSS检测)
传送门:ZAP
OWASP的Zed攻击代理(ZAP)在浏览器和web应用之间,以代理身份拦截请求,并通过模拟用户和黑客行为,如修改内容、转发数据包等进行安全测试。
主要功能
支持主流操作系统和Docker
能快速启动Docker包扫描
支持自动化框架
支持全量API
支持手动或自动
优
OWASP团队仍在积极维护
命令行界面有图形界面
完善的学习曲线和操作文档
适合各类水平用户
XSS漏洞检测表现突出
支持fuzzing测试
ZAP在渗透测试从业者中非常流行,因此熟悉ZAP有利于从攻击角度发现漏洞
劣
有些功能需装插件
需要一些专业知识
误报比很多商业产品高
CloudSploit(云资源安全扫描)
传送门:CloudSploit
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获取
自动推送、一些报告工具和一些整合功能可能只在付费产品中提供
Firmwalker (物联网)
传送门:Firmwalker
有些开源团队开发了很多安全工具来扫描网络设备和物联网(IoT)的固件,但漏洞扫描器比较少。Firmwalker可以搜索提取或装好的固件,并报告潜在漏洞。
主要功能
可搜索SSl相关文件和etc/ssl目录
可搜索配置、脚本和pin文件
能识别admin、password和remote等关键词
可搜索URL、电子邮件地址和IP地址
优
对物联网、网络、OT和其他固件进行安全审计
可找到异常文件、嵌入式密码或隐藏的URL
支持以bash脚本运行
劣
需要一些编程知识才能有效使用
没有图形用户界面
目前对Shodan API的支持仍在实验阶段
Nikto2(Web Server)
传送门:Nikto2
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(合规类)
传送门:OpenSCAP
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发行版上运行
OpenVAS (终端和网络)
传送门:OpenVAS
Nessus是Tenable发布的一款全球领先的漏洞评估产品。而OpenVAS是Nessus的一个开源分支,功能丰富,漏洞来源广泛,可对传统端点和网络进行大规模的漏洞评估。
主要功能
发现系统的已知漏洞和缺失补丁
具备web管理控制台
可安装在任何本地或云服务器
具备漏洞分析能力,输出如何修复漏洞或攻击者如何利用该漏洞等信息
优
Greenbone积极维护中
覆盖很多CVE漏洞
定期更新漏洞数据库
已形成大型社区,供用户交流
可随着企业发展从社区版升级到Greenbone企业版或Greenbone云服务
劣
需要一定专业知识。
大量并发扫描会使程序崩溃
没有策略管理
Greenbone社区版只扫描基本的端点资产或家庭应用产品,如Ubuntu Linux,MS Office等(扫描企业设备或获取策略权限需升级到付费的Greenbone企业版)
Nmap(网络和端口)
传送门:Nmap
Nmap支持绝大多数操作系统,通过IP数据包扫描设备端口并确定被检查的资产有哪些主机、服务和操作系统,是渗透测试人员和IT团队必不可少的工具之一。
主要功能
快速发现IP地址
通过TCP/IP协议猜测设备操作系统
持续更新的500个脚本库,用于提高性能
优
快速扫描系统上的开放端口,确定可用的TCP/UDP服务
通过端口测试确定运行的协议、应用类型和版本号
用户群庞大,开源社区成熟
劣
没有正式的客户支持
需要一些专业知识背景
参考资料
https://www.esecurityplanet.com/applications/open-source-vulnerability-scanners/