镜花水月

11 2

自制攻击欺骗防御系统

部门每周三例行的技术分享投稿文章,首发在小米安全中心的公众号

自制攻击欺骗防御系统

概述

峥嵘栋梁,一旦而摧;水月镜像,无心来去。

本次自制的欺骗防御系统名字叫镜花水月,镜花水月是《死神》中蓝染惣右介的斩魄刀(幻觉系最强斩魄刀)的名字,能力是完全支配对手的五感。

这个名字非常适合攻击欺骗防御类系统:把攻击者的流量从正常的请求中区分、剥离出来,并无缝地转移到伪造了正常业务和服务的沙盒中,让攻击者去沙盒环境中玩耍并会记录其详细的行为。

与传统的蜜罐相比,镜花水月的优点为:

  1. 零误报(只对内部或外部的攻击行为进行报警);
  2. 保护业务系统(第一时间会将攻击者从正常的服务中转移到沙箱环境中,攻击者却浑然不知);
  3. 方便取证及定位攻击者(沙盒中会记录攻击者的来源及详细的攻击行为)。

技术架构

镜花水月由4个模块组成:

  1. Agent,部署于服务器中的Agent,用于实时获取用户的访问日志并传递到检测端Server中,如果是恶意攻击,则会将流量重定向到沙盒中。目前支持的服务有:
    1. WEB
    2. FTP
    3. SSH
    4. Rsync
    5. Mysql
    6. Redis
    7. Mongodb
  2. Server,攻击检测服务器,实时检测Agent传递过来的日志并判断是否为攻击者,并为Agent动态、实时地维护了一份攻击者的来源IP策略;
  3. Manager,策略管理服务器,有为Agent和server提供策略、攻击log统计、查看的功能
  4. 沙盒由以下3部分构成:
    1. 安装了FTP、SSH、Rsync、Mysql、Redis和Mongodb的虚拟机或Docker,可实时将这些服务的访问log发送到远程的Rsyslog中
    2. 克隆的WEB站点
    3. 日志服务器,将沙盒通过Rsyslog发送过来的数据解析出来并入库,供Manager查询、分析

为了方便部署以及高性能的要求,镜花水月的各组件中除了WEB攻击检测模块是用lua开发的外,其余的全是用go语言开发的(WEB攻击检测模块是基于openresty+lua开发的)。