本发明涉及网络安全技术领域,特别是一种在蜜罐场景下获取攻击者信息的系统及方法。
背景技术:
目前在蜜罐场景下采用的方法一是通过透明代理的方式进行攻击者真实ip地址和端口的传输,具体流程是通过蜜罐代理客户端获取到攻击tcp流量后,在应用层封装包且将攻击者真实ip地址和端口传递给透明代理,透明代理通过tproxy技术伪造来源ip地址和端口为攻击者信息连接真实蜜罐,该技术方案存在的缺陷是配置复杂且局限、跨网络或者云环境下丢包,缺陷是由于以下原因导致:(1)因为蜜罐在网络层拿到的真实的ip地址回报的时候必须将蜜罐的网关配置成透明代理;(2)由于透明代理通过tproxy技术伪造来源ip地址和端口连接真实蜜罐,在云环境或者跨网络时候tcp连接包会被丢弃,且无法携带其他信息。
在蜜罐场景下采用的方法二是通过映射的方式进行攻击者真实ip地址和端口以及连接蜜罐的ip地址和端口进行关联,具体流程是通过蜜罐代理客户端获取到攻击tcp流量后,在应用层封装包且将攻击者真实ip地址和端口传递给转发代理,转发代理分配自身的连接ip和端口,并将攻击者来源ip地址和端口进行关联存储,通过代理分配自身的连接ip和端口连接真实蜜罐,真实蜜罐通过关联存储获取攻击者信息,该技术方案存在的缺陷是大流量对应异常且有时延,缺陷是由于以下原因导致:(1)在流量较大的情况可能会导致转发代理自身的连接ip和端口不够使用;(2)蜜罐先拿到的是代理自身的连接ip和端口,然后再通过关联存储获取攻击者信息。
在蜜罐场景下采用的方法三是通过部署蜜罐到诱捕区域,具体流程是蜜罐直接暴露给攻击者发现,该技术方案存在的缺陷是蜜罐本身安全性较弱、蜜罐部署无法复用,缺陷是由于以下原因导致:(1)蜜罐本身是将弱点暴露进行诱捕,在真实业务区域进行部署会导致容易感染真实业务;(2)在真实业务区域部署无法针对其他业务进行复用。
技术实现要素:
为解决现有技术中存在的问题,本发明的目的是提供一种在蜜罐场景下获取攻击者信息的系统及方法,本发明解决了在蜜罐场景下获取真实攻击者ip地址端口等信息需要修改蜜罐应用层代码、环境兼容性差、性能低的问题。
为实现上述目的,本发明采用的技术方案是:一种在蜜罐场景下获取攻击者信息的系统,包括蜜罐分析区以及多个分别与所述蜜罐分析区连接的业务区,所述业务区用于部署对攻击者的攻击行为进行诱捕的蜜罐诱捕节点;所述蜜罐分析区用于部署tcp转发模块和真实攻击信息获取模块,其中:
所述tcp转发模块,在应用层通过提供自定义ip选项将攻击者信息关联到内核套接字,在内核层将攻击者信息添加到tcp选项中,不修改源ip、源端口、目的ip和目的端口,并通过tcp转发模块自身ip端口连接真实攻击信息获取模块;
所述真实攻击信息获取模块,在内核层检测是tcp转发模块的流量,将tcp转发模块的流量中攻击者信息提取到内核套接字进行存储,并hook应用层获取tcp连接信息的内核函数,蜜罐应用层无需任何修改;
作为本发明的进一步改进,所述真实攻击信息获取模块在应用层还提供自定义ip选项获取除攻击者ip和端口额外的信息。
本发明还提供一种在蜜罐场景下获取攻击者信息的方法,包括以下步骤:
(1)攻击者攻击蜜罐诱捕节点:攻击者攻击蜜罐诱捕节点某个端口,并进行tcp连接和攻击数据传输;
(2)蜜罐诱捕节点获取到攻击者tcp负荷、攻击者ip端口、mac地址以及目标蜜罐信息;
(3)诱捕节点检测到攻击后,与tcp转发模块建立第一tcp连接;
(4)诱捕节点将攻击者tcp负荷、攻击者ip端口、mac地址以及目标蜜罐信息通过第一tcp连接发送给tcp转发模块;
(5)tcp转发模块接收到第一tcp连接内的攻击信息,将攻击者tcp负荷、攻击者ip端口、mac地址以及目标蜜罐信息分别进行提取;
(6)tcp转发模块创建第一tcp套接字,用于连接目标蜜罐,并通过自定义ip选项将攻击者ip端口、mac地址信息传递给内核;
(7)内核接收到攻击者ip端口、mac地址信息后,将ip端口、mac地址信息与tcp转发模块的应用层第一tcp套接字关联存储;
(8)tcp转发模块根据目标蜜罐信息,创建与目标蜜罐的第二tcp连接;
(9)tcp转发模块所在服务器内核检测所述第二tcp连接已经配置自定义ip选项,则将攻击者ip端口、mac地址信息取出,新增tcp自定义选项头和tcp自定义选项内容,将攻击者ip端口、mac地址信息存储在tcp自定义选项内容;如果tcp转发模块所在服务器内核未检测到所述第二tcp连接配置自定义ip选项,则不处理;
(10)tcp转发模块所在服务器内核添加完成tcp自定义ip选项后,重新计算以太帧相关校验和,并将tcp握手报文发送给目标蜜罐;
(11)目标蜜罐的真实攻击信息模块检测到tcp握手报文,检查该tcp握手报文是否携带tcp自定义ip选项头;如果检测到携带tcp自定义ip选项头,则将tcp自定义ip选项头和内容解析得到攻击者信息存储到与连接对应的第二tcp套接字;如果未检测到携带tcp自定义ip选项头则不处理;
(12)蜜罐应用层接收连接后创建与连接对应的第二tcp套接字,并在应用层调用getpeername获取攻击者ip和端口信息;
(13)蜜罐内核层检测到第二tcp套接字在获取攻击者ip和端口信息,就将真实攻击者ip和端口信息返回,而不返回tcp转发模块的ip和端口信息;
(14)蜜罐应用层如果需要获取额外的攻击者mac地址等其他信息,调用自定义ip选项进行获取攻击者额外信息;
(15)蜜罐内核层检测到tcp第二tcp套接字在获取攻击者其他信息,就将攻击者其他信息返回;
(16)tcp转发模块与目标蜜罐建立起第二tcp连接,tcp转发模块将攻击者tcp负荷通过所述第二tcp连接发送给目标蜜罐,完成整个攻击者tcp负荷、攻击者ip端口、mac地址信息的传递。
本发明的有益效果是:
本发明通过内的tcp转发模块、真实攻击信息获取模块2个模块,达到在蜜罐应用层不进行额外开发和路由配置的情况下获取攻击者ip地址端口等信息,也可针对性提供ip选项提供额外信息获取,针对原有方案提升较大的分析效率和场景适应。
附图说明
图1为本发明实施例的系统框图;
图2为本发明实施例的流程框图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例
如图1所示,一种在蜜罐场景下获取攻击者信息的系统,包括:
(1)业务区:用于部署诱捕节点,不直接与蜜罐部署在同一区域,便于不同业务的复用;
(2)蜜罐分析区:用于部署tcp转发模块和真实攻击信息获取模块,业务区与蜜罐分析区分开部署,提高业务区的安全性和真实蜜罐的可控性;其中:
tcp转发模块,在应用层通过提供自定义ip选项将攻击者信息关联到内核套接字,在内核层将攻击者信息添加到tcp选项中,不修改源ip、源端口、目的ip和目的端口,并通过tcp转发模块自身ip端口连接真实蜜罐,跨网传输不受影响;
真实攻击信息获取模块,在内核层检测是tcp转发模块的流量,将tcp转发模块的流量中攻击者信息提取到内核套接字进行存储,并hook应用层获取tcp连接信息的内核函数,蜜罐应用层无需任何修改,且在应用层也提供自定义ip选项获取除攻击者ip和端口额外的信息。
如图2所示,本实施例还提供一种在蜜罐场景下获取攻击者信息的方法,包括以下步骤:
(1)攻击者攻击蜜罐诱捕节点:攻击者攻击蜜罐诱捕节点某个端口,并进行tcp连接和攻击数据传输;
(2)蜜罐诱捕节点获取到攻击者tcp负荷、攻击者ip端口mac等、以及目标蜜罐信息;
(3)蜜罐诱捕节点检测到攻击后,与tcp转发模块建立tcp连接1;
(4)蜜罐诱捕节点将攻击者tcp负荷、攻击者ip端口mac等、以及目标蜜罐信息通过tcp连接1发送给tcp转发模块;
(5)tcp转发模块接收到tcp连接1内的攻击信息,将攻击者tcp负荷、攻击者ip端口mac等、以及目标蜜罐信息分别进行提取;
(6)tcp转发模块创建tcp套接字1,用于连接目标蜜罐,并通过自定义ip选项将攻击者ip端口mac等信息传递给内核;
(7)linux内核接收到攻击者ip端口mac等信息后,将该信息与tcp转发模块的应用层tcp套接字1关联存储;
(8)tcp转发模块根据目标蜜罐信息,创建与目标蜜罐的tcp连接2,然后调用connect系统函数对其进行网络连接;
(9)tcp转发模块所在服务器内核检测该tcp连接2已经配置自定义ip选项,则将攻击者ip端口mac取出,新增tcp自定义选项头和tcp自定义选项内容,将攻击者ip端口mac存储在tcp自定义选项内容;如果tcp转发模块所在服务器内核未检测到该tcp连接配置自定义ip选项则不处理;
(10)tcp转发模块所在服务器内核添加完成tcp自定义选项后,重新计算以太帧相关校验和,并将tcp握手报文发送给目标蜜罐;
(11)在目标蜜罐上内核真实攻击信息模块检测到tcp握手报文,检查该握手报文是否携带tcp自定义选项头;如果检测到携带tcp自定义选项头,将tcp自定义选项头和内容解析得到攻击者信息存储到蜜罐该连接对应的tcp套接字2;如果未检测到携带自定义tcp自定义选项头则不处理;
(12)蜜罐应用层接收连接后创建该连接对应的tcp套接字2,并在应用层调用getpeername获取攻击者ip和端口信息,该步骤为蜜罐自身触发不需要额外开发,任何蜜罐可以直接部署使用该方法;
(13)蜜罐机器内核层检测到tcp套接字2在获取攻击者ip和端口,就将真实攻击者ip和端口信息返回,而不返回tcp转发模块的ip和端口信息;
(14)蜜罐应用层如果需要获取额外的攻击者mac地址等其他信息,调用自定义ip选项进行获取攻击者额外信息,该步骤为在蜜罐中二次开发,以便提供更多攻击者信息;
(15)蜜罐机器内核层检测到tcp套接字2在获取攻击者mac地址等其他信息,就将攻击者mac地址等其他信息返回;
(16)上述步骤后tcp转发模块与目标蜜罐建立起tcp连接2,tcp转发模块将攻击者tcp负荷通过该连接发送给目标蜜罐,完成整个攻击者tcp负荷、攻击者ip端口mac等信息的传递。
本实施例通过在tcp转发模块、真实攻击信息获取模块中采用自定义ip选项、tcp选项和内核hook的方法,解决在蜜罐场景下获取真实攻击者ip地址端口等信息需要修改蜜罐应用层代码、环境兼容性差、性能低的问题。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。