0day 漏洞防护

伪装 、异构、阻断、拦截、诱捕、排查 6 步法

1、伪装关键应用指纹 伪装常用中间件、更改 http 协议 header 头的 server 字段。可将 linux 改为 IIS6.0。修改中间件配置文件,将移动通讯 app 的 web 服务页面配置成“错误”页面返回信息。修改网关系统配置指纹,将邮件系统指纹改为“Moresec HoneyPot”,转移攻击者注意力。

2、异构边界防护设备 (增加入侵难度和成本) vpn 和防火墙采用异构方式部署,同时在内外层 vpn 系统网络区域间部署大量蜜罐。

3、严控出网访问 (有来无回) 攻击者需要受害主机出网访问的权限,采用配置防火墙双向白名单,阻断协议包括 tcp 、udp、 icmp 、dns 等,达到攻击无法完成的效果。

4、强化主机安全防护 部分 0day 利用成功后需要主机读写文件权限,部署终端防护系统,一是监控非白名单地址的运维操作和敏感操作命令,及时发现异常命令执行行为,包括攻击者常用的 whoami 、id 等。二是监控服务器敏感配置文件的读取,例如 passwd、shadow、*.conf 文件。三是进制 web 目录写入脚本文件,防止 webshell 后门落地执行。

5、布置内网诱捕陷阱 一是边界区域部署办公系统蜜罐。二是在核心计算区域布置核心系统和集权系统蜜罐。三是将真实系统的非业务端口访问流量转发至蜜罐,第一时间发现内网扫描行为。

6、紧盯零日漏洞利用痕迹 一是加强敏感文件和目录监控。主机层面,流量层面、加强敏感目录读取排查,和返回包的监控。二是加强敏感命令执行监控。主机层面通过入侵检测系统替换操作者系统 bash 程序,形成命令执行钩子,监控敏感命令执行操作。流量层面,利用流量监测设备匹配敏感命令执行结果。

总结实战经验发现,不管什么 0day 漏洞,最终都需要在内网主机执行命令,主机是防护零日漏洞攻击最后也是最关键的一道关卡。

制定了以主机异常命令执行为核心,以识别网络及应用层异常行为、收敛攻击面、制定快速攻击定位及处置流程为辅助的 0day 漏洞防护战术。

在全网生产主机部署入侵检测系统 hids,检测反弹 shell 等关键攻击行为。由于运维人员也会执行 bash、nc 等指令,为避免误报,递归分析 shell 日志每条命令的父进程,如果发现是 web 类进程调用 shell 则出发告警(如父进程是 java、httpd 子进程是 sh、python)。告警配置短信实时提醒。

部署高交互、高仿真蜜罐,将 vpn、oa 系统做蜜罐备份,攻防期间替换掉真实业务域名,混淆攻击者,捕获零日漏洞。同时将下载页面中 vpn、oa 客户端替换为 cs 免杀木马,在云服务器部署通过 cna 脚本进行上线微信提醒,一旦上线即可第一时间反制溯源。

出网管控。最小化授权,梳理资产,绘制攻击路径。

0day 攻击应急处置流程

0 信任网络:

默认不信任办公网、生产网所有网络流量,基于身份属性、设备属性、设备状态、权限关系并结合密码技术实现细粒度可信网络访问度量及管控。解决了 it 无边界化趋势下带来的安全问题,相对传统边界模型信任但验证不同,零信任始终保持从不信任,始终验证。零信任关注的主体是数据及应用。零信任网络解决网络边界被突破后对数据及应用的过度访问带来的数据窃取,服务器沦陷等安全问题。

防护对象,改变传统安全架构中以网络为中心的防护,改为以数据为中心的安全防护,关注应用和资源。防护基础,改变传统基于”边界“的防护,改为“无边界”防护,默认不信任,做到最小权限防护。防护理念,改变传统一次认真的静态策略,改为持续评估,动态访问控制。

连环陷阱的 apt 攻击捕获战法
基于主动防御理念,利用 动态伪装和反向水坑,对抗 0day 高级攻击者。该技战法以守为攻,出奇制胜,不仅捕获攻击行为,利用浏览器漏洞成功实施反制,获得了攻击者真实身份信息。

1、投递污染信息 对数据库配置、缓存配置、交互服务器配置以及令牌加密因子,写入污染信息,指向蜜罐或诱捕探针。在 linux 系统中主要针对 history、shadow、config、ssh 等核心配置文件进行伪造。尤其重视 history、结合运维习惯、对其周期性的写入污染信息,能够极大几率迷惑攻击者。

2、配置虚拟进程 完成本机的诱捕陷阱后,需要对虚拟机周围形成联动的诱捕体系,以防止攻击者绕过本机陷阱,直接对网络可达的其他主机进行渗透。可通过配置虚拟进程,模仿真实的高危服务,与真实业务共同对外发布。选定具有为授权访问漏洞的数据库服务作为陷阱模板。为保证拟真性,需详细分析每个应用系统真实业务模式,针对性的部署 redis、zookeeper、es、mongodb 等虚拟进程。

Rinetd 端口转发工具进行端口转发。对于高并发的网站类应用,mysql 数据库中部署 redis 虚拟进程,对于消息类应用,在 kafka 消息队列所在虚拟机中部署 zookeeper 虚拟进程,

3、构造反向水坑 当捕获攻击者上传的 webshell 后,防守方可在其中插入 js 代码(探针),攻击者再次访问后会返回其操作系统和浏览器资产信息。若出现两个不同版本资产信息,则说明攻击者使用虚拟机进行攻击,继续在之前的 js 代码基础上插入 Canvas 代码(探针),获取攻击者计算机硬件信息。如 cpu、显卡、电池、屏幕尺寸等。通过返回数据明确攻击者所使用的的操作系统和浏览器后,充填相关资产的漏洞验证数据,探测是否存在可利用漏洞。再确认漏洞存在后,通过该漏洞投递免杀 cs 木马并进行释放。溯源攻击者身份。

WebShell 跟踪技术较多本次是通过 js 脚本远程获取黑客(攻击者)基本信息,在定位到 WebShell 后,打开 WebShell 源代码加入写好的 js 脚本,为确保脚本是否有效需要是自己先测试一下,看看是否可以获取浏览者信息,确认无误根据之前记录的 WebShell 文件属性,恢复文件修改时间为写入时间!注:具体 js 脚本可根据自己的需求编写,或者根据网上的开源脚本自行扩展,开源工具如 BeeF 、或其他开源工具等!

零信任架构

可实现几个关键目标:1、vpn 始终在线 2、安全防御足够,有效切断攻击方的攻击链条 3、运行过程灵活自动,避免运维人力大量投入。

1. 践行零信任架构体系,建立员工身份安全基准 所有员工安装安全 app,绑定设备指纹和手机号,开启扫码、动态口令等强因素认证功能,系统登录都必须使用该 app 完成认证。

2. 让攻击者看不见 第一层防御 边界防火墙设置策略,使 vpn 地址不对互联网开放,攻击者不能直接探测发现,无法正常攻击。员工需在 app 上提交合法 pc 的 ip 地址,改地址经过 acl 策略管理系统的自动处理,将会加入到边界防火墙的白名单列表,然后可正常发起访问。同时,在网上搭建一套高仿的 vpn 蜜罐,迷惑攻击者。

3. 让攻击者进不去 第二层防御 对 vpn 加固,启用 vpn 客户端的专线功能,使用户电脑在建立 vpn 隧道的同时自动断开与其他互联网地址的通信。

4. 让攻击者摸不到 第三层防御 限制从 vpn 设备到内网方向的网络访问权限,默认只能访问零信任安全网关。在零信任安全网关上设置策略,使所有流量进行持续认证和权限校验,

5. 使用高密度异构蜜罐 蜜网:由一个蜜网管理中心进行统一调度,下设互联网、dmz、内网数据中心、海外网络汇接点和信息系统内部共五道蜜罐防线组成的蜜网。管理中心通过 syslog 统一收集蜜罐告警,基于 ssh 实现控制指令下达,综合实现蜜罐资源调度、访问控制、日志分析、态势展示等功能。

ip 归属地筛选方案

将已知的安全 ip 进行去除,利用开源 ip 地址库对剩余 ip 进行归属地标注,筛选其中各公有云厂商 ip,公有云 ip 由于其易获取,方便假设攻击工具等特点,通常被攻击者使用。

1、ip 归属地过滤筛选 将第一周的来访 ip 进行提取,去重,排除白名单,将剩余 ip 进行归属地识别。提取到带有公网 ip 可以作为攻击机、跳板机以及远程控制服务器的云主机 ip 地址,将这些云主机 ip 进行单独提取。

2、基于时间维度分析 将演练前 3 个月至半年的访问数据进行提取,与演练开始后的数据进行对比,通过对比有效发现新增 ip 情况,新增部分往往包含演习攻击者 ip。

3、基于地域维度分析 由于多地部署方式,不同数据中心所处网络位置不同,如果多个数据中心同时增加了新增访问 ip,则该 ip 为对制定单位的攻击 ip。

4、基于行为维度分析 借助威胁情报检查流量中包含的挖矿、DDOS 脚本排除代理、爬虫、黑产攻击 ip。

基于威胁情报构筑动态防御体系

日常威胁情报收集、处理与建模主要采取以下几方面策略:

1、将安全设备收集到的报警按照攻击行为分为端口扫描类、服务探测类、尝试攻击类、恶意代码类,4 类。绝大部分攻击都是按照这四个步骤开展,再将监测到的攻击行为按攻击阶段进行分类。

2、基于对攻击行为事件序列的深入分析,为预测攻击和溯源提供依据,使用攻击行为的 owasp 分类和 cve 编号以及木马的执行顺序,为检测到的攻击行为进行编码,最终以字符串序列的形式,对每个攻击行为序列进行标识,将该序列在威胁情报库中应用威胁相似度计算模型,计算情报库中相似度高的攻击序列。

3、具体分析攻击行为的过程中,攻击者为了躲避检测,一般会采取低速、随机的扫描方式,结合数理统计等方法,反推出攻击者的攻击间隔分布,从而发现潜在攻击特性。

4、经汇总、筛选、清理,以攻击行为的响应时间、攻击间隔起止时间、顺序化的端口扫描列表、服务探测顺序、漏洞扫描顺序、恶意代码动作列表等维度,构建攻击特征数据库,形成威胁情报库,安全监测处置一体化目标。

专有情报生产

1、利用监测系统发现大量水利网内的攻击行为、漏洞情况、恶意文件、异常外联等告警数据,研判后发送至情报中心

2、情报中心将告警时间、告警原因、告警 ip、资产 ip 等信息进行实时标准化和范式化,自动补充时间、来源等信息后,根据告警级别类型配置权重分数和生产情报的及格分数

3、完成情报制作后,通过 restful api 写入情报中心

4、对各单位提交统一格式的防守报告,情报中心利用基于深度学习的文本识别技术,自动提取出告警时间、告警原因、告警 ip、资产 ip 等数据,之后进行同样处理完成制作。

黑客指纹收集

依托蜜罐系统生成黑客指纹库,指纹库融合了系统、设备、html5 webGL、HTML5 Canvas、第三方网站 ID 指纹等。

当攻击者访问蜜罐系统中的诱饵网页时,该页面会在黑客的机器上种植僵尸 cookie。僵尸 cookie 遍布多处,难以删除,收集并形成独一无二的指纹信息,从而为黑客的捕获提供情报信息和溯源能力。

黑客在发起攻击时,若其已经登陆过百度、新浪、优酷等第三方网站,蜜罐系统能够捕获其登录 id。二是通过分析黑客操作系统语言、时区、ip 归属地等信息,判断是否为境外攻击者。

逐步发布仿真系统,结合最新的 0day。推出一套全英文的业务仿真系统,在此站加载了反制诱饵。

暴力破解过程中使用的用户名、密码,补充至密码字典,用于日常内部弱密码检查,若用户名是企业名,需对该用户发出风险提醒。通过证书、代码标识等识别攻击者攻击工具,进行攻击者同源性分析。攻击成功后的外联地址,用于监测内部主机是否沦陷。下载的木马哈希,通过主机 agent 定时扫描服务器进程和启动项对应的文件哈希,判断是否有其他主机已经被控。