导语:在公有云上针对于内网防护有自己的一套逻辑,VPC虚拟专用网络+ACL+安全组,可以很好的防止黑客的入侵。但是这些规则都是预设规则,没有一个灵活的安全大脑去控制。

0x00、公有云内网威胁现状

1.传统公有云内网防御手段

在公有云上针对于内网防护有自己的一套逻辑,VPC虚拟专用网络+ACL+安全组,可以很好的防止黑客的入侵。但是这些规则都是预设规则,没有一个灵活的安全大脑去控制。针对于高级黑客入侵到云VPC网络后,进一步横向扩展,目前还没有很好的解决方案,当然NGFW厂商正在推自己的微隔离产品。但是也没有从根本上解决问题。

2. 基于攻击混淆与欺骗技术的防御手段

在黑客必经之路上构建陷阱,精准感知黑客攻击行为,并且溯源入侵者,形成公有云内网威胁情报。交给用户做应急响应。

0x01、方案设计

1.技术架构设计

(1)部署形式

首先和大家讨论一下公有云企业级蜜罐系统部署形式,Docker、云主机、云物理机。个人认为,Docker是最佳的选择,因为没有租户愿意为安全基础设施投资太多,云主机和云物理机都太重。

(2)蜜网基础组件

如何确保恶意流量经过真实网络进入到我们构建的蜜网中呢?

·第一种方式:我们也没高级的AI算法直接判断恶意流量,所以必须镜像真实网络流量,在网络入口LB上设置流量导入。

·第二种形式:同时配合在云主机上安装伪装代理,可以更好诱导入侵者进入到蜜网。

·第三种形式就是黑客入侵了真实的云主机,在做网络扫描的时候扫描到例如弱口令的诱饵进入。

既然我们使用Docker做为蜜罐那么Kubernetes就是最好的蜜网管理工具了。同时充分利用现有公有云基础架构快速搭建蜜网环境。

为了更好的侦查攻击路径建议嵌入网络层的入侵检测设备或者WAF等组件。

(3)溯源问题

目前早期的黑客溯源都只是通过IP地址->域名->注册手机->淘宝或者微信确定其真实身份,但是在这个链路中,真正有效的溯源出的黑客身份5%都不到,再加上今年GDPR出现,域名提供商如果向欧洲提供服务就必须隐藏注册人的信息,这个规定一出这条路基本无路可走,但是随着H5技术的诞生和广泛使用,使得收集设备指纹技术更加成熟。收集上来数据可以做机器学习相识度匹配。

2.产品功能

根据上述需求,大致把需要的产品功能抽象一下,分享给大家:

(1)虚拟资产

蜜罐管理

a.Web应用沙箱:weblogic、nginx、IIS、Apache httpd、Apache Tomcat/Coyote JSP engine

      * 漏洞类型:JSP、PHP、ASP

      * 专用漏洞:struts2-045

      * 诱饵设置:弱口令

b.数据库沙箱:mysql、mssql、postgresql、redis、mongodb

      * 诱饵设置:弱口令

      * 专用漏洞:安全基线配置漏洞

c.远程管理沙箱:ssh、RDP

      * 诱饵设置:弱口令

d.运维类沙箱:Zabbix、Jenkins

      * 诱饵设置:弱口令

(2)网站代理

nginx部署设置

(3)主机代理

镜像端口设置

(4)安全设备代理(IDS/WAF)

路由配置

(5)密网管理

Kubernetes组网设置

VPC-link配置

(2)入侵事件

a.威胁概览

    – VPC网络整体安全等级

    – APT攻击分析

      – recon 阶段

      – access 阶段

      – exploit 阶段

      – payload drop 阶段

      – C&C 阶段

      – Data Loss 阶段

    – 告警事件发展趋势

    – 虚拟资产拓扑

    – Top5入侵人员

    – Top5恶意软件

b.入侵事件详情

    * 事件查询和展示

(3)入侵人员

 黑客画像

·设备指纹

·浏览器信息

·ip地址关联威胁情报

0x02、技术实现

1.架构拓扑

蜜网.png

说明:

@1、VPC威胁感知管理系统:负载蜜罐Agent安全事件接收、事件关联分析、事件统计,租户管理系统界面呈现。

@2、DockerAgent部署到Kubernetes网络中的Docker上,负责根据部署不同类型的蜜罐发现入侵事件,并且上报。

@3、ECSAgent部署到真实云主机上的应用程序,负责流量转发。

@4、ProxyAgent部署到负载均衡上的应用,负载流量转发。

2.蜜罐技术实现

(1)MariaDB数据库操作记录

a.需要实现的功能

    * 登陆mysql服务器日志

    * 获取数据库DDL操作日志

b.实现细节

    * 通过patch的方式对MariaDB做劫持改造。获取我们想样的信息。

    * 对登陆函数mysql_socket_getfd做劫持,获取客户端连接的IP地址,登陆的用户名,生成连接事件。

    * 在执行do_command命令的时候,获取执行的SQL语句。生成连接事件命令执行事件。

(2)ssh操作记录

  * 要获取到所有的执行命令,其实使用cowrie就可以,但是问题毕竟不是真实的交互。建议使用修改bash的方式实现。

(3)docker获取到数据后如何与外界交互

  * 其实是使用docker unixsocket对外post数据。

0x03、总结

伴随着,中大型公司的网络逐步迁移到公有云VPC环境中,基于公有云的内网威胁感知系统对这些企业将越来越有价值。对于VPC云主机规模大约100台的企业级用户,本解决方案很好的解决了内部横向攻击渗透的安全问题。

源链接

Hacking more

...