对于发现资产中已知漏洞、配置不当等问题的工具,大家习惯性称之为“漏洞扫描”工具,但随着技术演进,很多工具越来越智能,逐渐具备分析总结能力,因此将它们称为“漏洞评估”工具似乎更准确。
大多数漏洞评估工具都能覆盖常规漏洞,例如OWASP Top10,但一般都各有所长。常见的区分维度包括部署灵活性、扫描速度、扫描准确度以及与流程管理、代码开发等平台的整合性。如果不考虑license的限制和成本,很多团队都会选择同时部署多款工具。本文推荐的开源工具能与主流的流程管理平台集成,输出包含优先级的处置分析报告,而且这些工具仍有团队在积极维护。
另外,针对容器方向的漏洞评估工具,尽管有一些新工具出现,如Anchore,Clair, Dagda,Trivy,但大量用户反映这些工具存在功能不全、整合性差等问题,因此考虑到易用性,本文仅推荐OSV-Scanner、OpenSCAP、ZAP这几款支持或包含一部分容器安全扫描功能的开源工具。
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/