高质量解读《互联网企业安全高级指南》三部曲(技术篇)——漏洞扫描
前言:
高效读书,一张逻辑图读懂、读薄书中重点。
注:下面文字只是对逻辑思维图的”翻译“,节省时间,只看图即可。
漏洞扫描逻辑思维图
1. 说明
1.1. 漏洞扫描、入侵感知和应急响应是技术维度日常工作中最重要的3个部分
2. 概述
2.1. 漏洞是指缺少安全措施或采用的安全措施有缺陷,可能会被攻击者利用,对企业的信息资产的安全造成损害。漏洞扫描就是利用扫描器发现漏洞的过程。
3. 漏洞扫描的种类
3.1. 按漏洞类型分类
3.1.1. ACL扫描
说明
ACL扫描是用来按一定的周期监视公司服务器及网络的ACL的端口或IP是否暴露在了公网中
作用
安全部门可以根据扫描报告督促网络管理员和系统管理员关闭暴露在公网中的高危服务,避免重要的服务因放在公网中被入侵的风险
等某些应用或某些版本的应用发现新漏洞时,安全部门可以快速从数据库中查到存在漏洞的服务及版本,直接报到业务部门去修复
ACL扫描的周期至少为一天一次,对于不同规模服务器的企业可以采用以下的方式
对于服务器数量较少的公司,可以直接用nmap扫描,并将扫描出来的IP、端口、 应用服务名、应用版本、时间等信息存放到数据库中
对于服务器数量很多的公司,可以用Masscan扫描出所有的端口信息,然后再用 nmap去识别端口的协议及应用程序版本信息,可以根据实际情况部署扫描服务器的数量、 形成分布式的架构,加快扫描速度
3.1.2. 弱口令扫描
管理员因疏忽大意或安全意识薄弱给网络设备、服务器或应用使用了默认的和简单的口令,这种弱口令的设备挂在公网上后很快就被黑客或蠕虫扫描到并快速渗透
常见的扫描器如Nessus、x-scan、h-scan、Hydra都具备弱口令扫描的功能
3.1.3. 系统及应用服务漏洞扫描
常见的系统及应用服务漏洞扫描器有Nessus及开源的openVAS
3.1.4. web漏洞扫描
业内常用的Web漏洞扫描工具列表如下
Acunetix Web Vulnerability Scanner (AWVS)
IBM Rational AppScan
sqlmap
w3af
arachni
Zed Attack Proxy
以上几款扫描器中,前2款是商业软件,后几款是免费开源的
实践方法
网站较少的公司。安全工程师手工用扫描器进行Web漏洞扫描即可,但至少要使用2款以上扫描器进行交叉确认,避免因某款扫描器漏报导致漏洞没扫到而被外界黑客利用的情况发生。一般建议AWVS必用,再配合zap或arachni进行确认
网站较多的公司。大中型的互联网公司有成千上万个大大小小的网站,安全工程师人肉利用扫描工具进行扫描已经不现实了,需要自研扫描工具,实现自动化、批量化的漏洞扫描。常见的一个自动化Web漏洞扫描器的架构图9-2所示
3.2. 按扫描器行为分类
3.2.1. 主动扫描
常规的扫描器都是主动发包,然后根据返回的包判断目标设备是否存在漏洞。对于 Web扫描器来说,是先将URL爬出来,然后再在该URL中各个可以输入参数的地方测试 注入、XSS等负载。常用的AWVS、Sqlmap、Nessus等都是主动扫描器
3.2.2. 半被动扫描器
其实该类扫描器还是属于主动扫描器,区别是URL的获取途径不是爬虫,而是以下几种方式
通过 Access log 获取 URL
通过流量镜像的方式获取URL
HTTP代理式的扫描器
v*n式的扫描器
3.2.3. 全被动扫描器
部署方式上类似于IDS,不主动爬URL,而是对B/S & C/S双向交互的数据流进行扫描以期发现漏洞
全被动扫描的特点
不需要联网,不会主动爬取URL,不会主动发出任何数据包
更关注漏洞感知,而不是入侵行为
4. 如何应对大规模的资产扫描
4.1. 背景
4.1.1. 近年来云计算和大数据很火,不少厂商的安全部门也纷纷引入了大数据及分布式运算, 比如安全日志分析、通过大数据反爬虫、用流量镜像中的URL进行Web扫描、分布式扫描器等
4.2. 普通的扫描方式在数万或几十万台服务器的环境下会遇到以下问题
4.2.1. 单台或数台扫描器仍不足以覆盖海量IDC,完成全网扫描需要很多资源
4.2.2. 大量的并发扫描占用网络带宽,高峰时影响用户体验,执行深度检测可能会使应用或服务直接宕掉
4.2.3. 大量的误报以及中低风险漏洞会使人工解读和后续整理难上加难
4.3. 海量IDC规模下漏洞扫描需要寻求高效的方式,总体思路是减少工作量,有几个方法
4.3.1. 简化漏洞评估链,减少需要扫描的任务
4.3.2. 减少漏洞扫描的网络开销和被检查者的性能损耗
4.3.3. 减少漏洞扫描的种类
4.3.4. 减少手工确认的工作量
4.4. 在实践中,需要从以下几方面进行优化
4.4.1. 不做全网的漏洞扫描,先做端口扫描,这样做的前提是访问控制和纵深防御做到位,利用ACL大幅减少攻击面,把需要漏洞扫描的端口减少到22、80、443等,开的端口少了,全网全协议漏洞扫描就缩减为全网几个关键应用的扫描
4.4.2. 做好高危端口监控,防止“计划外”应用的滥用,这样漏洞扫描这件事就瘦身为端口监控加关键应用扫描
4.4.3. 在系统和应用扫描上,不完全依赖于网络扫描器,可同时借助于本机agent扫描, 类似心脏滴血的漏洞与其从网络上去获取扫漏洞
5. 小结
5.1. 在攻防愈演愈烈的现代防御措施
5.1.1. 光有基于静态漏洞规则和带fuzz功能的扫描还是会有许多漏洞覆盖不到,安全部门需要采取基于数据的扫描,比如结合社工库等
5.1.2. 需要建立应急响应中心,让广大白帽子也参与到漏洞的挖掘与发现中,尽可能多地把暴露在外面的漏洞 消灭掉
5.2. 我们需要实事求是,根据实际情况逐步地建设所在机构的安全体系