一种基于标签的拟态化改造方法与流程

专利2023-08-07  121



1.本发明属于互联网安全通信技术领域,提供一种基于标签的拟态化改造方法。


背景技术:

2.密信聊天服务是我公司提供的一种安全聊天服务,因为产品的敏感性等各种因素可能会经常遭受攻击,最终影响服务的整体的稳定性和安全性。针对该情况,公司研发人员针对性的提出了一种基于标签的拟态化改造方法,用于对密信执行体的执行申请进行迅速的裁决。


技术实现要素:

3.本发明的目的是为了能够对密信执行体的执行申请进行迅速的裁决,提供一种基于标签的拟态化改造方法。
4.本发明给执行申请嵌入标签,标签一致则说明执行申请一致,然后裁决模块通过判断标签进行快速的裁决比对,裁决通过后对执行申请进行执行和返回。
5.本发明解决其技术问题所采用的技术方案具体如下:
6.步骤1、计算标签
7.执行体对执行申请进行计算,取执行申请的关键部分作为标签,或对执行申请的全部内容进行运算获得标签。
8.进一步的,本发明选择对执行申请的全部内容进行哈希,把哈希运算的结果作为标签。使用哈希的好处在于既能验证全部内容的一致性,保证数据的完整性,也能减少需要比对的长度,降低比对的复杂性,进而提升裁决效率。
9.步骤2、嵌入标签
10.执行体将计算获得的标签嵌在执行内容的前部,将嵌入标签的执行内容递交给裁决模块。
11.进一步的,所述的裁决模块是用来对多个执行申请的标签进行比对,标签一致则认为执行体执行目标一致。
12.进一步,对执行内容采用的数据库协议程序本身进行分析,将标签放在不影响协议处理的位置,该位置具体位于存放原执行内容长度的区域和原执行内容区域之间。
13.进一步的,对使用的postgresql数据库协议进行改造,在该数据库协议的请求包头部嵌入标签,具体方案如下:
14.①
对于简单语句:
15.在协议中的长度字段后,原sql执行内容前加上标签;标签具体的组成为隔断字符(比如e)+标签(原sql内容哈希)+隔断字符(比如空格)。加上标签后重新计算并填写执行内容长度,重新计算的长度为原sql语句长度+标签长度。
16.进一步的,所述的隔断字符可以自己设定。
17.②
对于事务型语句:
18.事务型语句一般都包含有begin、rollback、commit等关键字,此类sql语句表示一个执行整体,因此对这类事务型语句可以采用主体部分相同的标签,但为了区分执行事务的不同阶段,可以采用不同的起始隔断字符。
19.例如用隔断字符b表示一个事务的开始,c表示一个事务的继续,e表示一个事务的结束,除开始隔断字符外标签都采用主体执行部分的哈希。
20.进一步的,事务型语句中嵌入的标签,是不同的隔断字符加上事务的继续部分的执行内容的哈希。
21.步骤3、比对标签
22.裁决模块对多个执行申请的标签进行比对,若标签一致则认为执行体执行目标一致,认为此次执行申请有效,选择任意一个裁决通过的执行体的申请内容去掉标签后进行递交,递交给相应的处理模块进行处理并将处理结果返回给每个裁决通过的执行体。
23.若多个(n个)执行申请的标签不一致,则认为可能出现了运行异常或者受到攻击产生了不一致的数据;此时当n个执行体执行目标一致的个数大于等于(n/2)+1时,则认为此次执行申请有效,选择多个比对一致的执行目标中的任意一个的申请内容去掉标签后进行递交,递交给相应的处理模块进行处理并将处理结果返回给每个裁决通过的执行体,记录未通过裁决的执行体信息,并将该执行体下线。如果n个执行体执行目标一致的个数小于(n/2)+1时,则认为裁决无法继续,执行体可能遭受了不可预知的攻击,这时是一个极端情况,此时记录信息后将全部执行体下线。
24.所述的处理模块用于处理申请内容。
25.本发明有益效果如下:
26.密信内容一般会比较长,逐一匹配密信内容费时费力,造成比较大的性能损耗,且由于内容多,匹配程序可能会设计的十分复杂,设计成本很高且非必要,考虑不周之处又可能会带来一些问题。而对原来冗长的密信内容进行哈希能够得到一个较短的值,且哈希值一致代表原内容一致,因此用哈希的值来比较效率高,且性能损耗小。
27.本发明将多个密信执行体拟态化,通过提供多个异构且不同操作系统的执行体,每个执行体提供相同功能的服务,多个执行体因为硬件和操作系统天然的异构性,很难被攻击者找到同样的漏洞,因此同时出现问题的概率比较小。
28.本发明构造多个密信执行体后对执行体的执行申请进行裁决,只要多个执行体的执行目标一致,就认为此次执行申请有效,选择其中任意一个裁决通过的执行体的申请进行执行并返回执行结果,而裁决不通过的机器通过这种方式也能够及时的被定位并隔离出来,单独进行处理及漏洞修复。
附图说明
29.图1为本发明流程图。
具体实施方式
30.下面结合附图和实施例对本发明作进一步说明。
31.如图1所示,一种基于标签的拟态化改造方法,具体步骤如下:
32.步骤1、计算标签
33.执行体对执行申请进行计算,取执行申请的关键部分作为标签,或对执行申请的全部内容进行运算获得标签。
34.进一步的,本发明选择对执行申请的全部内容进行哈希,把哈希运算的结果作为标签。使用哈希的好处在于既能验证全部内容的一致性,保证数据的完整性,也能减少需要比对的长度,降低比对的复杂性,进而提升裁决效率。
35.步骤2、嵌入标签
36.执行体将计算获得的标签嵌在执行内容的前部,将嵌入标签的执行内容递交给裁决模块。
37.进一步的,所述的裁决模块是用来对多个执行申请的标签进行比对,标签一致则认为执行体执行目标一致。
38.进一步,对执行内容采用的数据库协议程序本身进行分析,将标签放在不影响协议处理的位置,该位置具体位于存放原执行内容长度的区域和原执行内容区域之间。
39.进一步的,对使用的postgresql数据库协议进行改造,在该数据库协议的请求包头部嵌入标签,具体方案如下:
40.①
对于简单语句:
41.在协议中的长度字段后,原sql执行内容前加上标签;标签具体的组成为隔断字符(比如e)+标签(原sql内容哈希)+隔断字符(比如空格)。加上标签后重新计算并填写执行内容长度,重新计算的长度为原sql语句长度+标签长度。
42.长度(原sql+新增)隔断字符(e)标签隔断字符(空格)原sql执行内容
43.进一步的,所述的隔断字符可以自己设定。
44.②
对于事务型语句:
45.事务型语句一般都包含有begin、rollback、commit等关键字,此类sql语句表示一个执行整体,因此对这类事务型语句可以采用主体部分相同的标签,但为了区分执行事务的不同阶段,可以采用不同的起始隔断字符。
46.例如用隔断字符b表示一个事务的开始,c表示一个事务的继续,e表示一个事务的结束,除开始隔断字符外标签都采用主体执行部分的哈希。
47.进一步的,事务型语句中嵌入的标签,是不同的隔断字符加上事务的继续部分的执行内容的哈希;
48.即事务的开始和事务的结束在不同的事务型语句中基本是相同的,不同的是事务的继续,因此只对事务的继续进行哈希,将哈希值作为标签。
49.事务的开始
50.长度(原sql+新增)隔断字符(b)标签隔断字符(空格)原sql执行内容
51.事务的继续
52.长度(原sql+新增)隔断字符(c)标签隔断字符(空格)原sql执行内容
53.事务的结束
54.长度(原sql+新增)隔断字符(e)标签隔断字符(空格)原sql执行内容
55.步骤3、比对标签
56.裁决模块对多个执行申请的标签进行比对,若标签一致则认为执行体执行目标一
致,认为此次执行申请有效,选择任意一个裁决通过的执行体的申请内容去掉标签后进行递交,递交给相应的处理模块进行处理并将处理结果返回给每个裁决通过的执行体。
57.若多个(n个)执行申请的标签不一致,则认为可能出现了运行异常或者受到攻击产生了不一致的数据;此时当n个执行体执行目标一致的个数大于等于(n/2)+1时,则认为此次执行申请有效,选择多个比对一致的执行目标中的任意一个的申请内容去掉标签后进行递交,递交给相应的处理模块进行处理并将处理结果返回给每个裁决通过的执行体,记录未通过裁决的执行体信息,并将该执行体下线。如果n个执行体执行目标一致的个数小于(n/2)+1时,则认为裁决无法继续,执行体可能遭受了不可预知的攻击,这时是一个极端情况,此时记录信息后将全部执行体下线。
58.进一步的,本发明选用三个异构体系架构:intel x86、海光x86、飞腾arm;选用两个不同操作系统:centos、ubuntu,采用他们的组合形成不同的执行体。
59.实施例1:
60.如图1所示,执行体1(intel x86+centos),执行体2(海光x86+centos),执行体3(飞腾arm 64+ubuntu),执行体n(异构体系架构+操作系统)。
61.每个执行体的执行过程包括以下步骤:
62.①
收到执行申请;
63.②
解析执行申请并计算标签;
64.③
嵌入标签到协议支持的合适位置;
65.④
重新计算并填写执行申请长度(长度=标签长度+原执行申请长度);
66.⑤
递交嵌入标签的执行申请。
67.为了让每个执行体能够支持以上步骤,需要重新编译对应功能的jar包,因此选用postgresql-jdbc 42.1-4版本,加入执行步骤
①②③④⑤

68.实施例2:
69.基于实施例1的执行体,具体的源码包为postgresql-jdbc-42.1-4.src,编译采用apache-maven-3.6.3。
70.编译命令
71.cd postgresql-jdbc-42.1-4.src
72.apache-maven-3.6.3/bin/mvn compile
73.apache-maven-3.6.3/bin/mvn package-dmaven.test.skip=true
74.编译后目标文件
75.postgresql-jdbc-42.1-4.src/pgjdbc/target目录下会生成postgresql-42.1.4.jar
76.改名postgres.jar后放到原程序目录下,然后重启原程序,使执行体支持上述步骤。
77.实施例3:
78.如下图1所示,裁决模块收到各执行体发来的执行申请后,执行以下步骤进行标签比对工作
79.①
解析执行申请并获得标签,比对标签是否一致,标签一致则说明执行申请裁决通过,不一致则记录日志并隔离执行体。
80.②
选择裁决通过的任意一个执行申请,将不包含标签的执行部分递交给相应程序进行处理。
81.③
向裁决通过的执行体返回执行结果。

技术特征:
1.一种基于标签的拟态化改造方法,其特征在于给执行申请嵌入标签,标签一致则说明执行申请一致,然后裁决模块通过判断标签进行快速的裁决比对,裁决通过后对执行申请进行执行和返回,具体包括如下步骤:步骤1、计算标签执行体对执行申请进行计算,取执行申请的关键部分作为标签,或对执行申请的全部内容进行运算获得标签;步骤2、嵌入标签执行体将计算获得的标签嵌在执行内容的前部,将嵌入标签的执行内容递交给裁决模块;步骤3、比对标签裁决模块对多个执行申请的标签进行比对,若标签一致则认为执行体执行目标一致,认为此次执行申请有效,选择任意一个裁决通过的执行体的申请内容去掉标签后进行递交,递交给相应的处理模块进行处理并将处理结果返回给每个裁决通过的执行体;若多个执行申请的标签不一致,则认为可能出现了运行异常或者受到攻击产生了不一致的数据;此时当n个执行体执行目标一致的个数大于等于(n/2)+1时,则认为此次执行申请有效,选择多个比对一致的执行目标中的任意一个的申请内容去掉标签后进行递交,递交给相应的处理模块进行处理并将处理结果返回给每个裁决通过的执行体,记录未通过裁决的执行体信息,并将该执行体下线;如果n个执行体执行目标一致的个数小于(n/2)+1时,则认为裁决无法继续,执行体可能遭受了不可预知的攻击,这时是一个极端情况,此时记录信息后将全部执行体下线。2.根据权利要求1所述的一种基于标签的拟态化改造方法,其特征在于选择对执行申请的全部内容进行哈希,把哈希运算的结果作为标签。3.根据权利要求1所述的一种基于标签的拟态化改造方法,其特征在于执行体将计算获得的标签嵌在执行内容的前部,将嵌入标签的执行内容递交给裁决模块。4.根据权利要求1所述的一种基于标签的拟态化改造方法,其特征在于对执行内容采用的数据库协议程序本身进行分析,将标签放在不影响协议处理的位置,该位置具体位于存放原执行内容长度的区域和原执行内容区域之间。5.根据权利要求1或4所述的一种基于标签的拟态化改造方法,其特征在于对使用的postgresql数据库协议进行改造,在该数据库协议的请求包头部嵌入标签,具体方案如下:

对于简单语句:在协议中的长度字段后,原sql执行内容前加上标签;标签具体的组成为隔断字符+标签+隔断字符;加上标签后重新计算并填写执行内容长度,重新计算的长度为原sql语句长度+标签长度;

对于事务型语句:事务型语句包含有事务的开始、事务的继续和事务的结束,此类sql语句表示一个执行整体,因此对这类事务型语句采用主体部分相同的标签,但为了区分执行事务的不同阶段,采用不同的起始隔断字符。6.根据权利要求5所述的一种基于标签的拟态化改造方法,其特征在于对于事务型语句,用隔断字符b表示一个事务的开始,c表示一个事务的继续,e表示一个事务的结束;事务
型语句中嵌入的标签是事务的继续部分的执行内容的哈希。7.根据权利要求5所述的一种基于标签的拟态化改造方法,其特征在于所述执行体为异构且不同操作系统的执行体,每个执行体提供相同功能的服务。

技术总结
本发明公开了一种基于标签的拟态化改造方法。本发明包括如下步骤:1、计算标签,执行体对执行申请进行计算,取执行申请的关键部分作为标签,或对执行申请的全部内容进行运算获得标签;2、嵌入标签,执行体将计算获得的标签嵌在执行内容的前部,将嵌入标签的执行内容递交给裁决模块;3、比对标签,裁决模块对多个执行申请的标签进行比对,若标签一致则认为执行体执行目标一致,认为此次执行申请有效,对执行申请进行执行和返回。本发明将多个密信执行体拟态化,通过提供多个异构且不同操作系统的执行体,每个执行体提供相同功能的服务,多个执行体因为硬件和操作系统天然的异构性,很难被攻击者找到同样的漏洞,因此同时出现问题的概率比较小。率比较小。率比较小。


技术研发人员:郁迪
受保护的技术使用者:杭州安司源科技有限公司
技术研发日:2022.07.22
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-4418.html

最新回复(0)