天天看点

互联网企业安全高级指南读书笔记之漏洞扫描

漏洞扫描的种类

按漏洞类型分类

ACL 扫描

ACL 扫描用来按一定的周期监视公司服务器及网络的 ACL 的,其作用如下:

  • 安全部分可以根据扫描报告整改暴露在公网中的高危服务
  • 某些应用发现新漏洞时,可以快速从数据库中查询对应服务与版本,报到业务部门修复

ACL 扫描周期至少一天一次:

  • 服务器数量较少,直接用 nmap 扫描,扫描结果直接存放到数据库中
  • 服务器数量很多,用 masscan 扫描出所有端口信息,然后再用 nmap 去识别端口的协议及应用程序版本信息

弱口令扫描

常见支持弱口令扫描功能的扫描器

  • Nessus
  • x-scan
  • h-scan
  • Hydra

系统及应用服务漏洞扫描

常见的系统及应用服务漏洞扫描器有 Nessus 以及开源的 OpenVAS,服务器数量巨大时,需要部署多台 Nessus 服务器以集群模式进行扫描

  • 用程序调用 Nessus 的接口,将 Nessus 的漏洞扫描做成周期性任务,每天对全部服务器进行一次安全扫描
  • 程序自动建立工单并提交到业务部门进行修复,修复好转到安全部门确认,形成良性闭环,如果没有工单系统,至少需要建立一个漏洞管理系统代替

Nessus 官方提供的 REST API 接口的 GitHub 地址为:https://github.com/tenable/nessrest

Web 漏洞扫描

常见的 Web 漏洞扫描工具:

  • AWVS
  • IBM Rational AppScan
  • sqlmap
  • w3af
  • arachni
  • Zed Attack Proxy
互联网企业安全高级指南读书笔记之漏洞扫描

按扫描器行为分类

主动扫描

对于 Web 扫描器来说,先将 URL 爬出来,再在该 URL 中各个可以输入参数的地方测试负载

半被动扫描

和主动扫描的区别是 URL 的获取途径不是爬虫,而是:

  • 通过 Access Log 的方式
  • 通过流量镜像的方式,对于比较大规模的 Web 资源扫描,可以通过 Storm 流式计算平台将来自分光的全流量 URL 库 rewrite 替换,去重归一,验证真实性后作为扫描器的输入源,由消息队列推送至分布式扫描器中
  • 通过 HTTP 代理方式
  • 通过设置了透明代理的 VPN 的方式
互联网企业安全高级指南读书笔记之漏洞扫描

被动扫描

全被动扫描的特点如下:

  • 不需要联网、不会主动爬取 URL、不会主动发出任何数据包
  • 更关注漏洞感知,而不是入侵行为

大规模资产扫描

海量 IDC 规模下的漏洞扫描的总体思路是减少工作量:

  • 简化漏洞评估链,减少需要扫描的任务
  • 减少漏洞扫描的网络开销和被检查者的性能损耗
  • 减少漏洞扫描的种类
  • 减少手工确认的工作量

实践中,可以从以下几个方面进行优化:

  • 不做全网的漏洞扫描,先做端口扫描,这样做的前提是访问控制和纵深防御做到位,利用 ACL 大幅减少攻击面,把需要漏洞扫描的端口减少到22.80.443等,开的端口少了全网全协议漏洞扫描就缩减为全网几个关键应用的扫描
  • 做好高危端口监控,防止计划外应用的滥用,这样漏洞扫描这件事就瘦身为端口监控加关键应用扫描
  • 在系统和应用扫描上,不完全依赖于网络扫描器,可同时借助于本机 agent 扫描,类似心脏滴血的漏洞与其从网络上去获取扫漏洞,不如在本地获取 OpenSSL 的版本更简单。服务器 OS 本地的 agent 除了可以扫系统型漏洞,还可以扫本地配置型漏洞,相对来说本地获取的信息比网络获取更准确,但代价是会消耗服务器资源,所以这块需要尽可能地

    减少性能损耗