掌桥专利:专业的专利平台
掌桥专利
首页

一种源变模式的地址端口跳变方法

文献发布时间:2023-06-19 19:23:34


一种源变模式的地址端口跳变方法

技术领域

本发明属于安全通信领域,涉及一种地址、端口跳变通信的方法,可用于移动目标防御。

背景技术

移动目标防御(Moving Target Defense,MTD)是为打破攻击者的这一优势而提出的一种主动防御模式。该技术通过持续变换系统的攻击面(attack surface),缩短某一配置信息的有效期,使得攻击者没有足够的时间探测目标系统的脆弱性和对代码进行开发,以增加其实施攻击的代价和复杂度,或者使其探测到的脆弱性在攻击期间变得无效从而降低攻击成功的概率。地址和端口是每一个网络系统的最基本属性变量,也是常被攻击者利用以进行信息探测、收集、攻击的属性变量,因而也是最常用的移动目标防御变换对象。现有的地址、端口变化技术不具备广泛应用性,因此需要有针对性的研究新的变化技术。

目前已有的地址端口跳变通信方案有:DAPRA资助的APOD项目研究通过同时改变服务的IP地址和TCP端口号,使得攻击者所拦截报文中显示的是随机地址从而难以识别出服务提供者的真实身份并发起攻击,且该地址的有效时间较短,因而能增加攻击者实施成功攻击的代价和复杂性,有效控制攻击的影响。

BBN公司提出了一种虚假的地址端口跳变方法,其中服务器的IP 地址和端口并不跳变,在外部数据传输中使用伪地址和端口进行地址端口的替换以迷惑外部攻击者。

现有的地址端口跳变通信方案,都是把通信报文中服务器真实的地址和端口替换为虚假的地址和端口号,在服务器端安装插件实现逆向映射。因为使用相同的映射算法和参数,对于不同客户端,计算出的服务器虚假的地址和端口号是相同,因此在有效时间内,服务器的攻击面没有缩小,安全性没有提升。

发明内容

针对上述情况,为克服现有的技术缺陷,本发明的目的在于提供一种源变模式的地址端口跳变通信实现方法和源变模式哈希算法,以源(客户端)属性生成跳变地址、端口。在网络通信过程中,隐藏被保护服务器真实的地址、端口,不同的客户端使用不同的跳变地址、端口访问服务器。缩小服务器的攻击面。

为实现上述目的,本发明公开的一种源变模式的地址端口跳变方法,包括以下步骤:

步骤S1:跳变网关设备部署在被保护服务器的网络出口,在跳变网关设备上配置被保护服务器的跳变策略和参数,同时自动同步跳变策略和参数到代理服务器;

步骤S2:客户端访问服务器资源前,向代理服务器申请跳变策略和参数,代理服务器在认证客户端身份后,将与用户匹配的跳变策略和参数通过加密安全通道发送给客户端,完成跳变策略和参数的下发;

步骤S3:客户端内核驱动模块工作在网络层,驱动模块使用源变模式的哈希算法计算当前客户端访问被保护服务器正确的跳变地址、端口,同时拦截应用层程序的通信报文,对于目的地址为被保护服务地址的报文,将目的地址、端口修改为跳变地址、端口,并放行报文;对于源地址为跳变地址的报文,修改报文的源地址、端口为被保护服务的真实地址、端口,并放行报文;

步骤S4:跳变网关拦截进出服务器的报文,对于收到的跳变报文,根据源地址、目的地址、客户端端口号、用户账号、跳变密钥参数计算跳变地址、端口是否正确,如果正确,则修改目的地址、端口为被保护服务真实的地址端口,并放行报文,如果不正确,过滤掉该报文;对于服务器发出的报文,根据源地址、目的地址、客户端端口号、用户账号、跳变密钥参数计算跳变地址、端口,修改报文的源地址、端口为跳变地址、端口,并放行报文。

可选地,所述跳变网关设备为具有交换功能或者路由功能的硬件设备,所述代理服务器至少包括局域网服务器、云服务平台、公网服务器之一。

可选地,所述跳变策略和参数包含:时间戳、密钥、服务器地址和端口、跳变周期、跳变地址池、跳变端口池。

可选地,所述S2包含以下步骤:

客户端启动软件连接代理服务器,注册或登录用户账号,代理服务器对客户进行分类管理,不同类型客户允许访问的服务不同,对应的跳变策略也不同;

代理服务器收到客户端请求后,验证客户端所在分组,将对应的跳变策略和参数加密发送至客户端。

可选地,所述步骤S4中,跳变网关设备实现地址端口的逆向映射,拦截不符合跳变规则的通信报文,一个跳变网关保护一台或多台服务器。

可选地,所述源变模式的哈希算法,具体包括以下步骤:

S51:将源地址、目的地址转换为网络字节序;

S52:将客户端端口号扩展到与地址相同的二进制位数

S53:对于用户账号二进制位数小于

S54:把处理后的客户端地址、客户端端口号、用户账号按位异或运算得到数值

S55:利用

S56:把

可选地,所述源变模式的哈希算法,所述步骤S52包含以下步骤:

将客户端端口号转化成二进制数,在IPV4环境下,将客户端端口号的二进制数值扩展到32位,左侧补0;在IPV6环境下,将客户端端口号的二进制数值扩展到128位,左侧补0。

可选地,所述源变模式的哈希算法,所述步骤S54包含以下步骤:

将用户账号、跳变密钥转化成二进制数,在IPV4环境下,将用户账号、跳变密钥的二进制数值截取后32位;在IPV6环境下,将用户账号、跳变密钥的二进制数值截取后128位。

可选地,所述步骤S55中,采用

可选地,所述步骤S56包含以下步骤:

本发明的有益效果为:

本发明在网络通信过程中,隐藏被保护服务器真实的地址、端口,不同的客户端使用不同的跳变地址、端口访问服务器,从而缩小服务器的攻击面。

附图说明

图1是一种源变模式的地址、端口跳变方法示例框图;

图2是客户端跳变代理软件工作流程图;

图3是内核驱动存储跳变策略的结构体。

具体实施方式

下面结合附图对本发明作进一步的说明,但不以任何方式对本发明加以限制,基于本发明教导所作的任何变换或替换,均属于本发明的保护范围。

图1包括客户端A、客户端B、攻击者、代理服务器、跳变网关、服务器。跳变网关负责监测、过滤进出服务器的流量,配置管理跳变策略和参数,并将跳变策略和参数同步到代理服务器。客户端希望访问服务器的资源时,向代理服务器申请跳变策略和参数。一旦代理服务器验证客户端权限成功后,就将相应的跳变策略和参数通过加密通道下发到客户端。客户端利用跳变策略和参数计算需要访问服务的跳变地址、端口,使用计算出的跳变地址、端口建立安全通讯链接访问服务资源。

服务器提供SSH服务,真实地址为10.10.1.2,端口为22。跳变网关配置服务器的跳变地址池20.20.2.2~20.20.2.100,跳变端口池为3000~6000。客户端A计算出SSH服务的跳变地址、端口为20.20.2.3:5463,客户端B计算出SSH服务的跳变地址、端口为20.20.2.7:3565。客户端A、B分别使用各自计算出的跳变地址、端口访问SSH服务,通过网关验证,可以成功访问服务器资源。攻击者使用服务器真实地址、端口20.20.1.2:22,以及其他客户端的跳变地址、端口如20.20.2.3:5463均无法成功访问服务器。

跳变网关在配置跳变策略时需要输入地址池和端口池,一个服务最多配置一条跳变策略,一条跳变策略可以有多个地址池和端口池,通信使用跳变地址、端口为池中的某一条记录。跳变网关监测每个通信链接的流量,对客户端发往服务器的报文,检查是否使用与客户端匹配的跳变地址、端口,若匹配则修改报文的目的地址、端口为服务器真实的地址端口,否则过滤掉该报文;对服务器发往客户端的报文,修改报文的源地址、端口为与客户端相对应的跳变地址、端口。

在图1的通信系统中,客户端和跳变网关之间的数据报文使用服务器的跳变地址、端口,跳变网关和服务器之间的数据报文使用服务器真实地址端口,本系统防御的目标是客户端和跳变网关之间的攻击者。跳变地址、端口由客户端IP、服务器IP、跳变密钥和地址池共同决定,对应相同的服务跳变策略而言,不同的客户端(源地址)计算得到不同的跳变地址、端口,也就是说源地址决定了使用池中的哪个地址和端口。

图2为客户端跳变代理软件工作流程图,客户端跳变代理软件包含用户程序和内核驱动两个模块,用户程序负责连接代理服务器获取跳变策略和参数,并将跳变策略和参数通知内核驱动模块。

本发明公开的源变模式的地址端口跳变方法步骤如下:

步骤S1:跳变网关设备部署在被保护服务器的网络出口,在跳变网关设备上配置被保护服务器的跳变策略和参数,同时自动同步跳变策略和参数到代理服务器。

步骤S2:客户端访问服务器资源前,向代理服务器申请跳变策略和参数,代理服务器在认证客户端身份后,将与用户匹配的跳变策略和参数通过加密安全通道发送给客户端。完成跳变策略和参数的下发。

优选地,步骤S2包含以下步骤:客户端启动软件连接代理服务器,注册或登录用户账号,代理服务器对客户进行分类管理,不同类型客户允许访问的服务不同,对应的跳变策略也不同。代理服务器收到客户端请求后,验证客户端所在分组,将对应的跳变策略和参数加密发送至客户端。

优选地,跳变策略和参数包含:时间戳、密钥、服务器地址和端口、跳变周期、跳变地址池、跳变端口池。

优选地,代理服务器为局域网服务器、云服务平台、公网服务器三种形式中的任意一种。

步骤S3:客户端内核驱动模块工作在网络层,模块使用源变模式的哈希算法计算当前客户端访问被保护服务器正确的跳变地址、端口。同时拦截应用层程序的通信报文,对于目的地址为被保护服务地址的报文,将目的地址、端口修改为跳变地址、端口,并放行报文;对于源地址为跳变地址的报文,修改报文的源地址、端口为被保护服务的真实地址、端口,并放行报文。内核驱动模块的工作模式对应用层透明,无需修改应用层程序。

步骤S4:跳变网关拦截进出服务器的报文,对于收到的跳变报文,根据源地址、目的地址、客户端端口号、用户账号、跳变密钥参数计算跳变地址、端口是否正确,如果正确,则修改目的地址、端口为被保护服务真实的地址端口,并放行报文,如果不正确,过滤掉该报文;对于服务器发出的报文,根据源地址、目的地址、客户端端口号、用户账号、跳变密钥参数计算跳变地址、端口,修改报文的源地址、端口为跳变地址、端口,并放行报文。

优选地,跳变网关设备为具有交换功能或者路由功能的硬件设备。

步骤S4中,跳变网关设备实现地址端口的逆向映射,拦截不符合跳变规则的通信报文,一个跳变网关可以保护多台服务器。

本发明提出的源变模式的哈希算法,具体包括以下步骤:

S51:将源地址、目的地址转换为网络字节序;

S52:将客户端端口号扩展到与地址相同的二进制位数

步骤S52包含以下步骤:将客户端端口号转化成二进制数,在IPV4环境下,将客户端端口号的二进制数值扩展到32位,左侧补0;在IPV6环境下,将客户端端口号的二进制数值扩展到128位,左侧补0。

S53:对于用户账号二进制位数小于

S54:把处理后的客户端地址、客户端端口号、用户账号按位异或运算得到数值

步骤S54包含以下步骤:将用户账号、跳变密钥转化成二进制数,在IPV4环境下,将用户账号、跳变密钥的二进制数值截取后32位;在IPV6环境下,将用户账号、跳变密钥的二进制数值截取后128位。

S55:利用

优选地,步骤S55中,采用

S56:把

优选地,步骤S56包含以下步骤,将

计算跳变地址、端口,已知跳变参数客户端属性、服务器地址、跳变密钥、地址、端口池,计算跳变地址、端口号的方法如下:

(1)n = Hash(客户端IP,服务器IP,密钥key_addr)。

(2)m= Hash(客户端IP,服务器IP,密钥key_port)。

(3)将n映射至地址池内,得跳变地址。

(4)将m映射至端口池内,得跳变地址。

从计算结果可以看出,在访问相同服务时,不同的客户端使用不同的跳变地址、端口,即便攻击者获取并使用的其他客户端相应的跳变地址、端口,也无法访问服务。源变模式的地址、端口跳变方法,能够减小通信系统的攻击面,提高通信的安全性。

在图3中,内核驱动以哈希链表形式存储跳变策略,结构体中保存服务器的真实地址、端口,客户端地址,跳变地址、端口,跳变池个数,跳变池起始值,跳变池结束值等。

网关管理系统配置服务器器的跳变策略,跳变密钥随机生成,跳变地址池,跳变端口池以多个连续区间的形式表述。开启策略同步功能时,跳变策略自动同步至代理服务器。

本文所使用的词语“优选的”意指用作实例、示例或例证。本文描述为“优选的”任意方面或设计不必被解释为比其他方面或设计更有利。相反,词语“优选的”的使用旨在以具体方式提出概念。如本申请中所使用的术语“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或从上下文中清楚,“X使用A或B”意指自然包括排列的任意一个。即,如果X使用A;X使用B;或X使用A和B二者,则“X使用A或B”在前述任一示例中得到满足。

而且,尽管已经相对于一个或实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。

本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以多个或多个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的存储方法。

综上所述,上述实施例为本发明的一种实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何背离本发明的精神实质与原理下所做的改变、修饰、代替、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

技术分类

06120115891641