CN113783721B - 面向工业控制网络协议的可信性建模与验证方法 - Google Patents
面向工业控制网络协议的可信性建模与验证方法 Download PDFInfo
- Publication number
- CN113783721B CN113783721B CN202110961434.8A CN202110961434A CN113783721B CN 113783721 B CN113783721 B CN 113783721B CN 202110961434 A CN202110961434 A CN 202110961434A CN 113783721 B CN113783721 B CN 113783721B
- Authority
- CN
- China
- Prior art keywords
- state
- protocol
- path
- attribute
- event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了面向工业控制网络协议的可信性建模与验证方法,包括:步骤1:获取工控网络协议的详细描述;步骤2:按照表格状态机的方法构建出协议的表格化模型;步骤3:检查所述表格化模型的基本错误与异常;步骤4:提取所述事件、协议状态与变量属性,生成可验证属性表;步骤5:将所述协议需要满足的可信性属性使用线性时态逻辑LTL描述,得到属性验证公式;步骤6:对属性验证公式进行语法检查,确定所述属性验证公式是否正确;步骤7:用所述属性验证公式对所述表格化模型进行验证,若模型中存在不符合属性验证公式的情况,则将该情况作为反例路径输出,所述反例路径逐步反馈在表格状态机中,通过分析反例路径,全面发现协议设计缺陷。
Description
技术领域
本发明涉及工业控制网络技术领域,具体涉及面向工业控制网络协议的可信性建模与验证方法。
背景技术
近年来,随着工业控制网络互联化的发展,工业控制网络逐渐向着云边端协同工作的方向发展。工业控制网络系统的可信性是关系国民经济和民生的重大战略问题,而工业自动化领域的生态环境相对封闭,协议通信和实现互联化过程中,协议的可信性面临着很大的挑战。不同企业根据自身软件和硬件方面特点定制不同的工控网络类型和协议,且大都未经过可信性验证,工业控制网络不可信性是影响工控网络协议发展的重要问题。
现阶段存在不少其他的可信性验证机制,但是限制于建模工具的逻辑结构,可信性验证机制不能发挥出极佳的验证效果;且目前还不存在完善的可信性建模和验证方法,难以全面的发现网络通讯协议设计中存在的缺陷与漏洞。
发明内容
基于以上发现的问题,以及目前工业控制网络协议设计验证过程中存在的问题,本发明提供一种可信性建模与验证方法,其能够全面地发现工业控制网络协议设计漏洞,并且全面地验证协议的可信性。
为实现上述目的,本申请的技术方案为:面向工业控制网络协议的可信性建模与验证方法,包括:
步骤1:获取工控网络协议的详细描述;
步骤2:从所述工控网络协议中抽象描述出协议状态、事件和迁移逻辑,按照表格状态机的方法构建出协议的表格化模型;
步骤3:检查所述表格化模型的基本错误与异常,将正确的模型导出;
步骤4:验证正确的表格化模型,提取所述事件、协议状态与变量属性,生成可验证属性表;分析协议要求,给所述可验证属性表中的变量设置初值与取值范围;
步骤5:将所述协议需要满足的可信性属性使用线性时态逻辑LTL描述,得到属性验证公式,同时设置所述表格化模型检测边界;
步骤6:对属性验证公式进行语法检查,确定所述属性验证公式是否正确;
步骤7:用所述属性验证公式对所述表格化模型进行验证,若模型中存在不符合属性验证公式的情况,则将该情况作为反例路径输出,所述反例路径逐步反馈在表格状态机中,通过分析反例路径,发现协议设计缺陷。
进一步的,所述步骤2的具体实现方法为:
步骤2.1,表格状态机抽象出协议状态与事件,将其填入表格化模型中;一个所述协议状态对应一个单元列,一个所述事件对应一个单元行;
步骤2.2,所述事件需定义成布尔类型,事件分为外部事件和内部事件,所有的外部事件变量名首字母以x开头,内部事件变量名以非x字母开头;所有状态和事件不能有重复的命名;
步骤2.3,若某单元格存在选择分支,则以N-S图形式划分该单元格。
进一步的,所述单元格划分为执行区间与状态跳转区间;所述执行区间填入简单的赋值与运算语句,其中使用到的变量需定义在ram文件中,或者用“/”表示不执行任何语句,或者用“×”表示该单元格的触发将是一个错误;所述状态跳转区间填入下一跳状态的序号或者名称。
进一步的,所述步骤3中的基本错误包括:状态/事件名冲突、事件类型异常,变量未定义;所述异常包括:状态不可达、空白单元格。
进一步的,所述步骤4中可验证属性表包括变量名、变量类型、初始值与取值范围。
进一步的,所述步骤5中线性时态逻辑LTL的符号包括&&、||、!、=>(蕴含)等,以及:
G表示“总是”或“全局”,说明性质在路径上的每个状态都满足;例如,[G](stm_1==2=>DLL_CS_OPERATIONAL==2),表示在全局状态空间中,该语句性质恒满足;
N表示“下一个时间”,说明从某状态起始路径的第二个状态开始,性质满足;例如,((DLL_CS_OPERATIONAL==3&&[N](DLL_CS_OPERATIONAL==2))=>stm_1==1)),表示在全局状态空间中,DLL_CS_OPERATIONAL==3和下一状态DLL_CS_OPERATIONAL==2的条件下,stm_1==1性质满足;
F表示“最终”或“将来”,刻画从某状态起始路径中的某个状态开始,性质满足;例如,[G](DLL_CE_PREQ=>[F]DLL_ME_PRES),表示在全局状态空间中,DLL_CE_PREQ触发后,DLL_ME_PRES为true性质恒满足;
U表示“直到”,如果在计算路径上某状态处第二个性质满足,而且此状态前的状态序列中每一个状态都能满足第一个性质,那么此运算符措述的性质成立;例如,DLL_CE_PREQ[U]DLL_ME_PRES,表示在DLL_ME_PRES为true的性质成立的状态前,DLL_CE_PREQ为true性质恒满足;
R表示“释放”,是U运算符的逻辑非。它要求从路径上的起始状态开始到某状态结束的状态序列上第二个性质一直保持满足,而此状态上第一个性质满足。需要说明的是第一个性质并不要求永远保持;例如,DLL_CE_PREQ[U]DLL_ME_PRES,表示在从起始状态到DLL_CE_PREQ为true的性质成立的状态中,DLL_ME_PRES为true性质恒满足;
所述性质满足可以理解为属性验证公式中表达的内容是正确的。
更进一步的,所述步骤6中语法检查包括:变量类型与关系符号是否匹配、括号匹配、逻辑关系是否完整;所述步骤6中确定模型正确性包括:模型的逻辑结构是否满足下协议的工作流程;
更进一步的,步骤7的具体实现方法为:
步骤7.1,使用无状态显式探索(SESE)技术探索表格状态机设计的状态空间,并记忆合法执行路径;
步骤7.2,根据启发式策略将路径系统地分为路径簇;每个路径簇被编码成一个命题公式,该命题公式与属性验证公式的编码公式(取非)一起,代表一个独立的有界模型检验(BMC)实例;
步骤7.3,使用无状态显式广度优先搜索(BFS)来记忆表格化模型设计的所有合法执行路径,在BFS过程中,使用有界上下文切换(BCS)技术来减少状态空间的大小;
步骤7.4,使用有界模型检验方法对步骤7.3的合法执行路径进行编码和验证;所述无状态显式广度优先搜索和有界模型检验方法以增量的方式对状态空间进行验证,每次迭代都会加深搜索边界;
步骤7.5,如果发现一个BMC实例可满足,则将该实例的信息作为反例输出,并根据该信息构造出反例路径输出,终止验证;将该反例路径反馈在表格状态机中,显示出从初始状态到达反例的路径;如果不能发现满足条件的BMC实例,通过增加当前边界并分析更深的状态空间;若运算到设定的检测边界时仍未发现反例,则可认为这一条属性成立。
本发明由于采用以上技术方案,能够取得如下的技术效果:本申请通过表格状态机的方式完成工业控制网络协议的建模,可以降低协议建模的难度,明确协议全部状态下事件执行的内容。并且使用表格状态机的方法在建模阶段对协议进行初步分析,检查协议错误。使用该方法建模时,结合工控网络协议特点,验证人员在建模设计过程中充分考虑那些原本没有考虑到的事件状态组合,全面地发现协议设计漏洞。同时通过针对表格状态机的可信性验证方法,结合需要满足的可信性属性,验证并记录潜在设计漏洞的反例和检测执行路径,全面地验证工业控制网络协议的可信性。
附图说明
图1为可信性建模与验证方法流程图;
图2为表格状态机的示意图。
具体实施方式
本发明的实施例是在以本发明技术方案为前提下进行实施的,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实施例。
实施例1
一种面向工业控制网络协议的可信性建模与验证方法,如图1所示,详细实施步骤如下:
S1,由协议的详细描述(如协议规范或协议交换流程)抽象出协议状态、事件与过程变量特征,同时将事件划分为内部事件与外部事件,事件全都解释成布尔变量形式,意为该事件的触发状态,事件变量与过程变量定义语句保存在ram文件中,外部事件变量名称首字母以x开头,其他变量名称均以非x字母开头。
S2,将抽象出的协议特征填入表格,如果某个单元格存在选择分支,则以N-S图形式划分该单元格。单元格划分为执行区间与状态跳转区间两个部分。执行区间可以填入简单的赋值与运算语句,用“/”表示不执行任何语句,用“×”表示该单元格的触发将是一个错误。状态跳转区间填入下一跳状态的序号或者名称。最终构建出如图2所示的表格状态机。而后经过初步建模,保证没有基本的语法错误,得到待验证的表格化模型。
S3,抽取待验证的表格化模型中的事件,属性与变量特征,生成可验证属性表。最后通过分析协议要求,给属性表中的变量设置初值与取值范围。同时设置模型检测边界,即反例路径的最大长度。
S4,输入属性验证公式中的变量全部来自于上步生成的可验证属性表。输入所需要验证的可信性属性后,校验公式的语法格式是否符合规范。将符合语法规范的属性验证公式取反输入到验证模块。
具体的,属性验证公式可以包括静态属性公式、逻辑约束公式、动态属性公式、和死锁公式。
所述静态属性公式可以包括:
1.[G](DLL_CS_OPERATIONAL==0||DLL_CS_OPERATIONAL==1=>stm_1==0||stm_1==1)
2.[G](stm_1==2=>DLL_CS_OPERATIONAL==2)
3.[G](stm_1==3=>DLL_CS_OPERATIONAL==1)
4.[G](stm_1==1=>DLL_CS_OPERATIONAL==1||DLL_CS_OPERATIONAL==2)
所述逻辑约束公式可以包括:
1.[G](DLL_CE_PREQ=>[F]DLL_ME_PRES)
2.[G](SoAAuthorization==1=>[F]DLL_ME_ASND)
3.[G](SoAAuthorization==0=>[F]DLL_CE_ASND)
4.[G](isochr_out==1=>[F]DLL_CE_PRES)
5.DLL_CE_PREQ[U]DLL_ME_PRES
所述动态属性公式可以包括:
1.[G]((DLL_CS_OPERATIONAL==2&&[N](DLL_CS_OPERATIONAL==3))=>stm_1==3)
2.[G]((DLL_CS_OPERATIONAL==3&&[N](DLL_CS_OPERATIONAL==2))=>stm_1==1))
3.[G]((stm_1==2&&[N](stm_1==3))=>DLL_CS_OPERATIONAL==2)
4.[G]((stm_1==3&&[N](stm_1==1))=>DLL_CS_OPERATIONAL==3)
5.[G]((stm_1==1&&[N](stm_1==2))=>DLL_CS_OPERATIONAL==1)
6.DLL_ME_ASND[R]DLL_CE_ASND
所述死锁公式可以为:
[F]([G](xDLL_ME_SOC_TRIG)||[G](!xDLL_ME_SOC_TRIG))
S5,验证部分搜索并记录合法路径,将路径分为路径簇并将每个路径簇被编码成一个命题公式;将属性验证公式取反,与命题公式进行合取运算;每一次运算都是一个实例;
S6,若存在满足条件的实例,该实例就是验证到的反例,将该反例的执行路径作为结果输出出来;若未发现满足条件的实例,则扩展状态空间继续运算,直到检测出反例或者到达设定的检测边界。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (7)
1.面向工业控制网络协议的可信性建模与验证方法,其特征在于,包括:
步骤1:获取工控网络协议的详细描述;
步骤2:从所述工控网络协议中抽象描述出协议状态、事件和迁移逻辑,按照表格状态机的方法构建出协议的表格化模型;
步骤3:检查所述表格化模型的基本错误与异常,将正确的模型导出;
步骤4:验证正确的表格化模型,提取所述事件、协议状态与变量属性,生成可验证属性表;分析协议要求,给所述可验证属性表中的变量设置初值与取值范围;
步骤5:将所述协议需要满足的可信性属性使用线性时态逻辑LTL描述,得到属性验证公式,同时设置所述表格化模型检测边界;
步骤6:对属性验证公式进行语法检查,确定所述属性验证公式是否正确;
步骤7:用所述属性验证公式对所述表格化模型进行验证,若模型中存在不符合属性验证公式的情况,则将该情况作为反例路径输出,所述反例路径逐步反馈在表格状态机中,通过分析反例路径,发现协议设计缺陷;具体实现方法为:
步骤7.1,使用无状态显式探索技术探索表格状态机设计的状态空间,并记忆合法执行路径;
步骤7.2,根据启发式策略将路径系统地分为路径簇;每个路径簇被编码成一个命题公式,该命题公式与属性验证公式的编码公式一起,代表一个独立的有界模型检验BMC实例;
步骤7.3,使用无状态显式广度优先搜索来记忆表格化模型设计的所有合法执行路径,在搜索过程中,使用有界上下文切换技术来减少状态空间的大小;
步骤7.4,使用有界模型检验方法对步骤7.3的合法执行路径进行编码和验证;所述无状态显式广度优先搜索和有界模型检验方法以增量的方式对状态空间进行验证,每次迭代都会加深搜索边界;
步骤7.5,如果发现一个BMC实例可满足,则将该实例的信息作为反例输出,并根据该信息构造出反例路径输出,终止验证;将该反例路径反馈在表格状态机中,显示出从初始状态到达反例的路径;如果不能发现满足条件的BMC实例,通过增加当前边界并分析更深的状态空间;若运算到设定的检测边界时仍未发现反例,则可认为这一条属性成立。
2.根据权利要求1所述面向工业控制网络协议的可信性建模与验证方法,其特征在于,所述步骤2的具体实现方法为:
步骤2.1,表格状态机抽象出协议状态与事件,将其填入表格化模型中;一个所述协议状态对应一个单元列,一个所述事件对应一个单元行;
步骤2.2,所述事件需定义成布尔类型,事件分为外部事件和内部事件,所有的外部事件变量名首字母以x开头,内部事件变量名以非x字母开头;所有状态和事件不能有重复的命名;
步骤2.3,若某单元格存在选择分支,则以N-S图形式划分该单元格。
3.根据权利要求2所述面向工业控制网络协议的可信性建模与验证方法,其特征在于,所述单元格划分为执行区间与状态跳转区间;所述执行区间填入赋值与运算语句,或者用“/”表示不执行任何语句,或者用“×”表示该单元格的触发将是一个错误;所述状态跳转区间填入下一跳状态的序号或者名称。
4.根据权利要求1所述面向工业控制网络协议的可信性建模与验证方法,其特征在于,所述步骤3中的基本错误包括:状态/事件名冲突、事件类型异常,变量未定义;所述异常包括:状态不可达、空白单元格。
5.根据权利要求1所述面向工业控制网络协议的可信性建模与验证方法,其特征在于,所述步骤4中可验证属性表包括变量名、变量类型、初始值与取值范围。
6.根据权利要求1所述面向工业控制网络协议的可信性建模与验证方法,其特征在于,所述步骤5中线性时态逻辑LTL的符号包括&&、||、!、=>,以及:
N表示“下一个时间”,说明从某状态起始路径的第二个状态开始,性质满足;
F表示“最终”或“将来”,刻画从某状态起始路径中的某个状态开始,性质满足;
G表示“总是”或“全局”,说明性质在路径上的每个状态都满足;
U表示“直到”,如果在计算路径上某状态处第二个性质满足,而且此状态前的状态序列中每一个状态都能满足第一个性质,那么此运算符表述的性质成立;
R表示“释放”,是运算符U的逻辑非;它要求从路径上的起始状态开始到某状态结束的状态序列上第二个性质一直保持满足,而此状态上第一个性质满足;
所述性质满足为属性验证公式中表达的内容是正确的。
7.根据权利要求1所述面向工业控制网络协议的可信性建模与验证方法,其特征在于,所述步骤6中语法检查包括:变量类型与关系符号是否匹配、括号匹配、逻辑关系是否完整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110961434.8A CN113783721B (zh) | 2021-08-20 | 2021-08-20 | 面向工业控制网络协议的可信性建模与验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110961434.8A CN113783721B (zh) | 2021-08-20 | 2021-08-20 | 面向工业控制网络协议的可信性建模与验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113783721A CN113783721A (zh) | 2021-12-10 |
CN113783721B true CN113783721B (zh) | 2022-06-21 |
Family
ID=78838338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110961434.8A Active CN113783721B (zh) | 2021-08-20 | 2021-08-20 | 面向工业控制网络协议的可信性建模与验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113783721B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114884827B (zh) * | 2022-04-08 | 2023-09-29 | 大连理工大学 | 面向工业控制网络协议的模型构建及代码生成方法 |
CN115033472B (zh) * | 2022-04-18 | 2024-03-22 | 大连理工大学 | 基于线程循环调度顺序化的中断驱动程序模型检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014016A (zh) * | 2010-08-31 | 2011-04-13 | 北京邮电大学 | 一种网络协议缺陷测试系统及方法 |
CN103036730A (zh) * | 2011-09-29 | 2013-04-10 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN103888460A (zh) * | 2014-03-26 | 2014-06-25 | 南京邮电大学 | 基于状态空间搜索的控制器局域网协议验证方法 |
CN112818569A (zh) * | 2021-04-19 | 2021-05-18 | 军事科学院系统工程研究院网络信息研究所 | 一种属性驱动的安全协议符号化模型检测方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463945B2 (en) * | 2008-06-02 | 2013-06-11 | Tttech Computertechnik Aktiengesellschaft | Method for synchronizing local clocks in a distributed computer network |
-
2021
- 2021-08-20 CN CN202110961434.8A patent/CN113783721B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014016A (zh) * | 2010-08-31 | 2011-04-13 | 北京邮电大学 | 一种网络协议缺陷测试系统及方法 |
CN103036730A (zh) * | 2011-09-29 | 2013-04-10 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN103888460A (zh) * | 2014-03-26 | 2014-06-25 | 南京邮电大学 | 基于状态空间搜索的控制器局域网协议验证方法 |
CN112818569A (zh) * | 2021-04-19 | 2021-05-18 | 军事科学院系统工程研究院网络信息研究所 | 一种属性驱动的安全协议符号化模型检测方法和系统 |
Non-Patent Citations (1)
Title |
---|
Ad Hoc网络中按需路由协议的可信性研究;曲传浩;《中国优秀硕士论文电子期刊网》;20141015;21-25页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113783721A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6385765B1 (en) | Specification and verification for concurrent systems with graphical and textual editors | |
CN113783721B (zh) | 面向工业控制网络协议的可信性建模与验证方法 | |
del Mar Gallardo et al. | Debugging UML designs with model checking | |
Khomenko et al. | Detecting state encoding conflicts in STG unfoldings using SAT | |
CN108763064B (zh) | 一种基于黑盒函数与机器学习的代码测试生成方法和装置 | |
CN111209203A (zh) | 一种基于源代码的模型验证方法 | |
Sunshine | Formal Modeling of Communication Protocols: State of the Art, October 1980 | |
Bertolino et al. | Formal methods in testing software architectures | |
Li et al. | Automated functional scenarios-based formal specification animation | |
Lefticaru et al. | Towards an integrated approach for model simulation, property extraction and verification of P systems | |
Zbrzezny et al. | Sat-based reachability checking for timed automata with discrete data | |
Callahan et al. | Generating test oracles via model checking | |
CN115470152A (zh) | 测试代码生成方法、测试代码生成装置以及存储介质 | |
CN111240972B (zh) | 一种基于源代码的模型验证装置 | |
Bucaioni et al. | Trace-based timing analysis of automotive software systems: an experience report | |
Kausch et al. | An Approach for Logic-based Knowledge Representation and Automated Reasoning over Underspecification and Refinement in Safety-Critical Cyber-Physical Systems. | |
Kember et al. | Extracting counterexamples from transitive-closure-based model checking | |
Li et al. | A framework for off-line conformance testing of timed connectors | |
Gotzhein et al. | Towards a new formal SDL semantics | |
Murray et al. | Specification-based class testing with ClassBench | |
Urdahl et al. | Architectural system modeling for correct-by-construction RTL design | |
Kausch et al. | A Theory for Event-Driven Specifications Using Focus and MontiArc on the Example of a Data Link Uplink Feed System | |
Buchs et al. | Formal test generation from UML models | |
Sengupta et al. | Executable requirements specifications using triggered message sequence charts | |
Morin et al. | ProPy: Prolog-based Fault Localization Tool for Python |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |