OpenVAS 漏洞扫描实战:从安装到深度分析

张开发
2026/4/15 4:16:54 15 分钟阅读

分享文章

OpenVAS 漏洞扫描实战:从安装到深度分析
1. OpenVAS入门为什么你需要这个漏洞扫描神器第一次听说OpenVAS是在三年前的一次企业安全审计项目中。当时客户要求对内部网络进行全面安全检查但预算有限无法购买商业扫描工具。在尝试了几款开源工具后OpenVAS的表现让我印象深刻——它不仅检测出了所有已知的高危漏洞还发现了两个从未被记录的配置缺陷。OpenVASOpen Vulnerability Assessment System是目前最成熟的开源漏洞扫描解决方案之一。它就像是网络世界的X光机能透视你的服务器、网络设备甚至IoT设备中隐藏的安全隐患。与Nessus这样的商业工具相比OpenVAS完全免费且更新及时其漏洞数据库NVT每天都会自动同步最新威胁情报。我特别推荐以下三类人群使用中小企业IT管理员没有专业安全团队但需要定期检查系统安全状态渗透测试初学者通过实战理解漏洞原理和利用方式开发运维工程师在CI/CD流程中集成自动化安全扫描2. 从零开始部署OpenVAS2.1 硬件准备与系统选择很多人低估了漏洞扫描对硬件的要求。根据我的踩坑经验扫描中型网络50设备时建议配置至少4核CPU、8GB内存和100GB SSD存储。去年我曾在2GB内存的云服务器上跑OpenVAS结果扫描过程中OOM内存溢出崩溃了三次。操作系统方面Ubuntu Server LTS是最稳定的选择。最近帮客户在Ubuntu 22.04上部署时整个过程只用了不到30分钟。CentOS 7也可以运行但需要额外配置EPEL源且某些依赖包版本较旧可能引发兼容性问题。2.2 Ubuntu安装实操记录# 先更新软件源关键步骤 sudo apt update sudo apt upgrade -y # 安装基础依赖 sudo apt install -y software-properties-common # 添加OpenVAS官方仓库 sudo add-apt-repository ppa:mrazavi/openvas # 执行安装会自动处理所有依赖 sudo apt install -y openvas9 # 初始化设置耗时最长建议放在后台 nohup sudo openvas-setup 这个过程中最容易出问题的是初始化阶段。有次我在AWS上部署时因为境外网络连接不稳定漏洞库下载到90%失败了。解决方法很简单# 重新同步漏洞数据库 sudo greenbone-nvt-sync sudo greenbone-certdata-sync sudo greenbone-scapdata-sync2.3 服务配置的注意事项初始化完成后一定要修改默认管理员密码。我见过太多案例因为使用默认密码导致扫描结果泄露sudo openvasmd --useradmin --new-passwordYourStrongPassword123服务管理也有讲究推荐使用systemd统一管理sudo systemctl enable --now openvas-scanner sudo systemctl enable --now openvas-manager sudo systemctl enable --now greenbone-security-assistant验证服务状态时别只看active状态还要检查日志journalctl -u openvas-scanner -f3. 扫描实战从基础到高级技巧3.1 首次登录的界面优化通过https://服务器IP:9392访问时90%的新手会遇到证书警告。这不是安全问题而是因为使用了自签名证书。对于长期使用的环境我建议申请免费Lets Encrypt证书sudo apt install certbot sudo certbot certonly --standalone -d scan.yourdomain.com然后修改GSA配置sudo vim /etc/openvas/gsad.conf # 修改以下参数 certificate/etc/letsencrypt/live/scan.yourdomain.com/fullchain.pem private-key/etc/letsencrypt/live/scan.yourdomain.com/privkey.pem3.2 创建智能扫描任务新手常犯的错误是直接使用Full and fast配置扫描所有IP。去年有个客户这样操作结果触发了IDS报警。我的建议是先创建Discovery扫描仅检测存活主机对存活主机执行Fast扫描最后对关键服务器执行Full扫描创建任务时的几个黄金参数扫描速度建议设为Normal太快可能被防火墙拦截端口范围生产环境建议用default内网测试可以用1-65535存活检测一定要勾选Consider alive3.3 定时扫描与警报设置对于需要持续监控的环境可以设置定时扫描。上周我给某电商客户配置的方案是每日凌晨2点执行快速扫描每周日凌晨执行全面扫描发现高危漏洞时自动邮件通知配置方法在Task界面设置Schedule在Alerts界面配置SMTP信息设置触发条件如CVSS评分7.04. 深度分析让扫描结果产生价值4.1 解读漏洞的三层维度大多数用户只关注风险等级高中低其实还需要看漏洞时效性CVE-2023-1234比CVE-2010-5678更值得关注利用复杂度需要本地访问的漏洞比远程可利用的风险低修复状态已发布补丁和未修复的漏洞处理方式不同去年处理过一个典型案例扫描显示有50个中危漏洞但分析发现其中30个是同一组件的不同CVE编号实际只需升级一个软件包就能解决。4.2 生成专业报告的方法OpenVAS默认提供的PDF报告太技术化我总结了一套管理层喜欢的报告模板执行摘要1页扫描范围和时间关键风险指标总体安全评分风险矩阵1页风险等级漏洞数量受影响系统高危5Web服务器中危12数据库修复路线图优先级排序立即处理24小时内CVE-2023-1234本周处理CVE-2023-4567本月处理配置优化项4.3 漏洞修复验证流程很多团队修复漏洞后不做验证导致同样的问题反复出现。我的标准流程是修复前保存原始扫描结果执行修复操作如打补丁、改配置针对该漏洞创建定制扫描任务对比前后结果确认修复效果对于复杂漏洞建议使用Metasploit或手工验证。去年发现某系统虽然打了补丁但因为安装顺序错误导致补丁未生效只有实际利用测试才能发现这种问题。5. 企业级应用的最佳实践5.1 分布式扫描架构当需要扫描超过500个IP时单节点部署会遇到性能瓶颈。我的客户中大型企业常用方案是中央管理节点负责任务调度和结果汇总多个扫描节点按地域或网络分区部署数据库分离将PostgreSQL部署在高性能服务器上配置示例# 在扫描节点上 sudo openvasmd --listen0.0.0.0 --port9390 # 在管理节点上创建远程扫描器 sudo openvasmd --create-scanner分公司扫描器 --scanner-host10.1.1.100 --scanner-port9390 --scanner-typeOpenVAS5.2 与SIEM系统集成将OpenVAS结果接入SIEM如Splunk、ELK可以实现长期趋势分析与其他安全事件关联自动化工单生成最简单的集成方式是通过APIimport requests from bs4 import BeautifulSoup url https://openvas_server:9392/api/results response requests.get(url, verifyFalse, auth(admin, password)) soup BeautifulSoup(response.content, xml) for result in soup.find_all(result): print(f发现漏洞: {result.name.text} 风险等级: {result.threat.text})5.3 性能调优经验处理超大规模扫描时这些参数调整很关键# 增加扫描器并发数 sudo openvasmd --optimize --max-ips100 # 调整数据库性能 sudo -u postgres psql -c ALTER SYSTEM SET shared_buffers 2GB; sudo -u postgres psql -c ALTER SYSTEM SET work_mem 32MB; # 优化内存使用 sudo vim /etc/default/openvas-manager OVS_MAX_MEMORY8192记得调整后要重启服务sudo systemctl restart postgresql sudo systemctl restart openvas-manager6. 常见问题解决手册6.1 扫描卡在94%怎么办这是OpenVAS的老问题了通常是因为目标系统有防火墙丢包扫描器内存不足网络延迟过高解决方法# 先查看具体卡住的测试项 sudo openvasmd --get-tasks --details # 如果是特定测试项卡住可以跳过 sudo openvasmd --modify-taskTaskID --preferences停用问题插件 # 增加超时时间 sudo vim /etc/openvas/openvas.conf plugins_timeout 36006.2 漏洞数据库更新失败手动更新命令sudo greenbone-nvt-sync sudo greenbone-certdata-sync sudo greenbone-scapdata-sync sudo openvasmd --rebuild如果还是失败可能是存储空间不足。检查df -h /var/lib/openvas/6.3 Web界面无法访问按这个检查清单排查检查服务是否运行sudo systemctl status greenbone-security-assistant检查防火墙规则sudo ufw allow 9392/tcp查看日志找错误journalctl -u gsad -f7. 真实案例某金融企业安全加固项目去年参与的某银行安全评估项目中OpenVAS发挥了关键作用。初期扫描发现网上银行系统存在Heartbleed漏洞CVE-2014-0160内部管理系统使用弱密码数据库服务器未加密通信修复过程中我们优先处理了网上银行系统的漏洞24小时内完成实施了全行密码策略强化在所有数据库连接上强制启用TLS三个月后的复检扫描显示高危漏洞数量从37降为0中危漏洞减少85%安全基线合规率达到98%

更多文章