CN109711159B - 一种基于信息流的ip核rtl级代码安全漏洞检测方法 - Google Patents
一种基于信息流的ip核rtl级代码安全漏洞检测方法 Download PDFInfo
- Publication number
- CN109711159B CN109711159B CN201811414674.0A CN201811414674A CN109711159B CN 109711159 B CN109711159 B CN 109711159B CN 201811414674 A CN201811414674 A CN 201811414674A CN 109711159 B CN109711159 B CN 109711159B
- Authority
- CN
- China
- Prior art keywords
- information flow
- code
- security
- label
- rtl
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于信息流的IP核RTL级代码安全漏洞检测方法,包括:输入待测RTL代码;对RTL代码进行词法语法解析,生成语法抽象树;根据语法抽象树的数据流,对表达式进行信息流处理,为操作数添加“污迹”标签,并添加标签传播逻辑;组合经过信息流处理后单操作符的表达式,生成赋值语句的总信息流表达式;判断代码是否已经全部处理完;生成带有信息流标签和传播逻辑的代码;根据安全需求编写安全属性,在带有信息流标签和传播逻辑的代码的基础上生成安全属性;将安全属性断言和带有信息流标签和传播逻辑的代码进行仿真验证/形式化验证;得出安全性验证结论。本发明实现了对IP核设计RTL级代码中存在的安全漏洞的检测。
Description
技术领域
本发明涉及集成电路安全检测领域,特别是涉及一种对IP核RTL 级代码的安全漏洞检测方法。
背景技术
在集成电路设计包含的IP核的寄存器传输级(RTL)代码中,会有可能存在一些安全性隐患。这些安全隐患可以分为两类:(1)设计漏洞。因为开发者的失误或设计不当,IP核中存在一些设计漏洞,关键寄存器与外部输出直接存在隐通道,如果被攻击者加以利用可能会用于窃取寄存器关键信息或破坏功能的目的。(2)硬件木马或恶意代码。攻击者可以通过一些开发者不可控的环节在集成电路IP核RTL设计中植入硬件木马或恶意代码,这些代码在满足触发条件后,攻击者可以控制其以一定形式泄露或篡改IP核中关键的寄存器,对集成电路的安全性产生严重影响。
目前,现有的IP核安全漏洞检测方法主要有:
(1)破坏性检测。破坏性检测是将待测芯片去外壳,然后使用扫描电镜等设备对电路逐层进行拍照,然后与原始版图作对比,从而判断芯片中有无硬件木马。
(2)功能测试方法。其基本原理是在IP核的输入端口施加激励,在芯片的输出端口进行检测,观察输出的结果是否与预期输出相符,如果发现异常,则判断电路中存在硬件木马。
(3)旁路分析检测。硬件木马的存在会对集成电路的一些物理参数,如热信号、电磁辐射信号、功耗信号、以及电路延时的信息等产生影响,测试人员通过这些信息的变化可以检测木马是否存在。
现有方法主要存在以下问题:
(1)破坏性检测方法检测十分耗时,投入巨大,会对电路造成不可恢复性的破坏等。随着集成电路工艺的飞速发展,芯片内部日益精细,甚至超过了现有精密设备的观察范围,使得破坏性硬件木马检测方法面临了巨大挑战。
(2)功能测试方法的有效性依赖于对IP核的施加激励的质量,常见的硬件木马或安全隐患往往难以被轻易触发,需要尝试大量的激励,时间开销较大。
(3)旁路分析检测当待测电路的总体规模很大,电路内部被植入硬件木马规模很小时,一些旁路信息,如电流和路径延时,其变化幅度极小,旁路分析检测很难查出硬件木马。
(4)现阶段对IP核安全性检测的方法主要集中在后端,对于缺乏完整的、成熟的对代码级尤其是RTL级的硬件木马和设计漏洞的检测方法。
发明内容
本发明的目的在碍于提供一种基于信息流的IP核RTL级代码安全漏洞检测方法,用于解决上述现有技术的问题。
本发明一种基于信息流的IP核RTL级代码安全漏洞检测方法,其中,包括:步骤1:输入待测RTL代码;步骤2:对RTL代码进行词法语法解析,生成语法抽象树;步骤3:根据语法抽象树的数据流,对表达式进行信息流处理,为操作数添加“污迹”标签,并添加标签传播逻辑;步骤4:组合经过信息流处理后单操作符的表达式,生成赋值语句的总信息流表达式;步骤5:判断代码是否已经全部处理完,如果未处理完则返回执行步骤2,如处理完则进行步骤6;步骤6:生成带有信息流标签和传播逻辑的代码;步骤7:根据安全需求编写安全属性,在带有信息流标签和传播逻辑的代码的基础上生成安全属性;步骤8:将安全属性断言和带有信息流标签和传播逻辑的代码进行仿真验证/形式化验证;步骤9:得出安全性验证结论。
根据本发明的基于信息流的IP核RTL级代码安全漏洞检测方法的一实施例,其中,对RTL代码进行语法词法解析包括:首先对待测设计源代码进行词法解析,使用正则表达式匹配源代码中的字符串,并将其转化为相应的词法标记;在词法解析完成后,根据返回词法标记进行语法解析,语法解析根据制定的语法模式,将词法解析返回的标记转换为语法树,为信息流处理提供数据流。
根据本发明的基于信息流的IP核RTL级代码安全漏洞检测方法的一实施例,其中,步骤3中对基本运算符进行信息流处理,依次添加污迹标签和污迹传播逻辑。
根据本发明的基于信息流的IP核RTL级代码安全漏洞检测方法的一实施例,其中,步骤7中根据安全需求,在带有信息流标签和传播逻辑的代码的基础上,编写仿真和形式化验证可以识别的安全属性代码。
根据本发明的基于信息流的IP核RTL级代码安全漏洞检测方法的一实施例,其中,对关键寄存器key的值不能通过Data_out端口输出的情况,安全属性生成的步骤如下:a)信息流处理方法对源代码进行处理,在结果中设定关键寄存器key和Data_out端口的污迹标签;b) 将污染标签key_t置为1,如果受污染的关键寄存器key对Data_out端口存在影响时,输入所包含的污染标签key_t=1将传播到输出的污迹标签Data_out_t=1,判断污迹标签Data_out_t是否为0,确定关键寄存器 key是否影响Data_out端口。
本发明提供了一种基于信息流的IP核RTL级代码安全漏洞检测方法,实现对IP核设计RTL级代码中存在的安全漏洞的检测。
附图说明
图1所示为本发明一种基于信息流的IP核RTL级代码安全漏洞检测方法的流程图;
图2所示为verilog表达式“assign DO=sig|tmp&2'b10;”的语法树示例图;
图3所示为添加的污迹标记图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1所示为本发明一种基于信息流的IP核RTL级代码安全漏洞检测方法的流程图,如图1所示,一种基于信息流的IP核RTL级代码安全漏洞检测方法,包括以下步骤:
步骤1:输入待测代码.v/.vhd;
步骤2:对代码进行词法语法解析,生成语法抽象树;
步骤3:根据语法抽象树的数据流,对表达式进行信息流处理,为操作数添加“污迹”标签,并添加标签传播逻辑;
步骤4:组合经过信息流处理后单操作符的表达式,生成赋值语句的总信息流表达式;
步骤5:判断代码是否已经全部处理完,如果未处理完则返回执行步骤2,如处理完则进行步骤6;
步骤6:生成带有信息流标签和传播逻辑的代码.v/.vhd;
步骤7:根据安全需求编写安全属性,在带有信息流标签和传播逻辑的代码的基础上生成安全属性;
步骤8:将安全属性断言和带有信息流标签和传播逻辑的代码进行仿真验证/形式化验证;
步骤9:得出安全性验证结论。
如图1所示,对RTL代码进行语法词法解析包括:
基于信息流追踪的IP核安全性检测方法,需要对RTL源代码进行语法词法解析。语法词法解析的主要目的是将源代码中复杂的逻辑表达式转化为语法树,以便于后续信息流的处理和追踪。
输入待测设计的RTL代码。首先对待测设计源代码进行词法解析,使用正则表达式匹配源代码中的字符串,并将其转化为相应的词法标记。表1为verilog表达式“assign DO=sig|tmp&2'b10;”词法解析的返回词法标记的示例。
表1verilog表达式“assign DO=sig|tmp&2'b10;”词法解析标记;
表1
词法标记 | 字符串 |
TOK_ASSIGN | Assign |
SIG_NAME | Sig |
TOK_OR | | |
SIG_NAME | Tmp |
TOK_AND | & |
CON_NUM | 2’b10 |
图2所示为verilog表达式“assign DO=sig|tmp&2'b10;”的语法树示例图,如图2所示,在词法解析完成后,根据返回词法标记进行语法解析。语法解析根据制定的语法模式,将词法解析返回的标记转换为语法树,为信息流处理提供数据流。
步骤3中根据语法树,对解析的结果进行信息流处理,包括:
图3所示为添加的污迹标记图,如图3所示,根据语法抽象树中的数据流,对基本运算符进行信息流处理,依次添加“污迹”标签和污迹传播逻辑。信息流处理的目的是为待测设计添加信息流追踪逻辑,可以通过相应的“污迹”标记位追踪待测设计中的信息流传播情况。
步骤7中安全属性生成与验证,包括:
根据安全需求,在带有信息流标签和传播逻辑的代码的基础上,编写仿真和形式化验证可以识别的安全属性代码。例如:有如下安全需求,关键寄存器key的值不能通过Data_out端口输出。其安全属性如图3所示,属性生成的步骤如下:
a)使用上一步介绍的信息流处理技术对源代码进行处理,在结果中key_t和Data_out_t是key和Data_out的污迹标签;
b)将key_t置为1,如果受污染的key对Data_out存在影响时,该输入所包含的污染标签key_t=1也将传播到输出的污迹标签 Data_out_t=1,因此只需判断Data_out_t是否为0即可确定key是否影响 Data_out,即实现了完全需求的验证。
图3示例中的安全属性
本专利中生成的安全属性和信息流处理的代码都为标准的断言代码和Verilog代码,因此可以在常见的仿真和形式化工具(如 Modelsim,Jasper Gold)中直接执行验证。在生成完安全属性之后,将安全属性和经过信息流处理的代码进行仿真或形式化验证,仿真和形式化工具可以自动证明安全属性是否满足,得出安全性验证结果。
本发明一种基于信息流的IP核RTL级代码安全漏洞检测方法相比于其他的IP核安全性检测技术,有以下优势:
(1)成本较低、耗时较短。相比传统的破坏性检测方法和功能测试方法,此方法不需要昂贵的破坏性检测精密设备,节约了成本,只需对设计的RTL级代码进行仿真或形式化验证。
(2)检测准确度较高。此方法基于信息流追踪技术,根据语法树对RTL级代码中的数据流进行追踪,并根据需求编写安全属性,相比于传统的功能测试和旁路分析的检测方法验证的目标更具针对性,且可以达到较高的准确度。
(3)自动化程度较高。此方法的检测流程自动化程度较高,对 RTL代码的语法词法解析和信息流处理皆为自动处理,用户只需要在处理后代码的基础上手动编写安全属性断言,相比其他方法效率更高。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (5)
1.一种基于信息流的IP核RTL级代码安全漏洞检测方法,其特征在于,包括:
步骤1:输入待测RTL代码;
步骤2:对RTL代码进行词法语法解析,生成语法抽象树;
步骤3:根据语法抽象树的数据流,对表达式进行信息流处理,为操作数添加污迹标签,并添加传播逻辑;
步骤4:组合经过信息流处理后单操作数的表达式,生成赋值语句的总信息流表达式;
步骤5:判断代码是否已经全部处理完,如果未处理完则返回执行步骤2,如处理完则进行步骤6;
步骤6:生成带有污迹标签和传播逻辑的代码;
步骤7:根据安全需求编写安全属性,在带有污迹标签和传播逻辑的代码的基础上生成安全属性;
步骤8:将安全属性和带有污迹标签和传播逻辑的代码进行仿真验证/形式化验证;
步骤9:得出安全性验证结论。
2.如权利要求1所述的基于信息流的IP核RTL级代码安全漏洞检测方法,其特征在于,对RTL代码进行语法词法解析包括:
首先对待测设计源代码进行词法解析,使用正则表达式匹配源代码中的字符串,并将其转化为相应的词法标记;
在词法解析完成后,根据返回词法标记进行语法解析,语法解析根据制定的语法模式,将词法解析返回的标记转换为语法树,为信息流处理提供数据流。
3.如权利要求1所述的基于信息流的IP核RTL级代码安全漏洞检测方法,其特征在于,步骤3中对表达式进行信息流处理,依次添加污迹标签和传播逻辑。
4.如权利要求1所述的基于信息流的IP核RTL级代码安全漏洞检测方法,其特征在于,步骤7中根据安全需求,在带有污迹标签和传播逻辑的代码的基础上,编写仿真和形式化验证可以识别的安全属性。
5.如权利要求1所述的基于信息流的IP核RTL级代码安全漏洞检测方法,其特征在于,对关键寄存器key的值不能通过Data_out端口输出的情况,安全属性生成的步骤如下:
a)信息流处理方法对源代码进行处理,在结果中设定关键寄存器key和Data_out端口的污迹标签;
b)将污染标签key_t置为1,如果受污染的关键寄存器key对Data_out端口存在影响时,输入所包含的污染标签key_t=1将传播到输出的污迹标签Data_out_t=1,判断污迹标签Data_out_t是否为0,确定关键寄存器key是否影响Data_out端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811414674.0A CN109711159B (zh) | 2018-11-26 | 2018-11-26 | 一种基于信息流的ip核rtl级代码安全漏洞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811414674.0A CN109711159B (zh) | 2018-11-26 | 2018-11-26 | 一种基于信息流的ip核rtl级代码安全漏洞检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109711159A CN109711159A (zh) | 2019-05-03 |
CN109711159B true CN109711159B (zh) | 2020-11-10 |
Family
ID=66255146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811414674.0A Active CN109711159B (zh) | 2018-11-26 | 2018-11-26 | 一种基于信息流的ip核rtl级代码安全漏洞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109711159B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113049948B (zh) * | 2019-07-01 | 2022-09-02 | 成都奥卡思微电科技有限公司 | 基于外部引入逻辑电路的形式验证断言空泛性的纠正方法、存储介质和终端 |
CN111427798A (zh) * | 2020-04-14 | 2020-07-17 | 北京计算机技术及应用研究所 | 一种ip核超长路径可组合证明方法 |
CN111880768B (zh) * | 2020-07-23 | 2023-07-14 | 北京计算机技术及应用研究所 | 一种ip核代码级安全需求描述方法 |
CN112199913B (zh) * | 2020-10-15 | 2023-12-12 | 湖南泛联新安信息科技有限公司 | 一种基于Coq的超大规模集成电路RTL漏洞形式化分析方法 |
CN112650638B (zh) * | 2020-10-23 | 2022-01-04 | 华芯安信(北京)科技有限公司 | 一种基于门级污染标签跟踪模型的硬件安全漏洞检测方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8397300B2 (en) * | 2009-09-22 | 2013-03-12 | International Business Machines Corporation | Detecting security vulnerabilities relating to cryptographically-sensitive information carriers when testing computer software |
CN102184360B (zh) * | 2011-05-13 | 2013-06-05 | 华中科技大学 | 一种适用于嵌入式处理器的信息流安全监控方法 |
CN102567200A (zh) * | 2011-12-14 | 2012-07-11 | 北京航空航天大学 | 基于函数调用图的并行化安全漏洞检测方法 |
CN103488570B (zh) * | 2013-09-29 | 2016-09-28 | 西安电子科技大学 | 一种嵌入式软件的可组合信息流验证系统及方法 |
CN103995782B (zh) * | 2014-06-17 | 2016-06-22 | 电子科技大学 | 一种基于污点不变集的污点分析方法 |
CN105808430B (zh) * | 2016-03-03 | 2018-07-03 | 中国科学院软件研究所 | 一种多语义动态污点分析方法 |
CN106407810B (zh) * | 2016-09-27 | 2019-05-10 | 中国电子科技集团公司第五十八研究所 | 一种基于递归下降算法的rtl级硬件木马检测方法 |
-
2018
- 2018-11-26 CN CN201811414674.0A patent/CN109711159B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109711159A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109711159B (zh) | 一种基于信息流的ip核rtl级代码安全漏洞检测方法 | |
CN101661543B (zh) | 软件源代码安全漏洞的检测方法及检测装置 | |
Hutchings et al. | Assisting network intrusion detection with reconfigurable hardware | |
CN112035359B (zh) | 程序测试方法、装置、电子设备及存储介质 | |
Lu et al. | De-obfuscation and detection of malicious PDF files with high accuracy | |
CN102081719B (zh) | 基于动态污染传播的软件安全测试系统及方法 | |
Love et al. | Enhancing security via provably trustworthy hardware intellectual property | |
JP7287480B2 (ja) | 解析機能付与装置、解析機能付与方法及び解析機能付与プログラム | |
CN109190372A (zh) | 一种基于字节码的JavaScript恶意代码检测模型 | |
CN110147235B (zh) | 一种源代码与二进制代码间的语义比对方法和装置 | |
CN110096907B (zh) | 一种基于信息流安全验证的硬件木马检测方法 | |
US6990438B1 (en) | Method and apparatus for observability-based code coverage | |
Fern et al. | Detecting hardware trojans in unspecified functionality through solving satisfiability problems | |
US20120117424A1 (en) | System-level testcase generation | |
US5949993A (en) | Method for the generation of ISA simulators and assemblers from a machine description | |
US20110225559A1 (en) | Logic verifying apparatus, logic verifying method, and medium | |
CN108647533B (zh) | 用于检测硬件木马的安全断言自动生成方法 | |
CN117909984A (zh) | 基于相似性分析的实时操作系统驱动漏洞挖掘系统及方法 | |
CN117556388A (zh) | 面向固件全系统仿真的动态污点分析方法及系统 | |
CN109471637B (zh) | 电路图的审查脚本调试方法 | |
Rematska et al. | A survey on reverse engineering of technical diagrams | |
Kibria et al. | Arc-fsm-g: Automatic security rule checking for finite state machine at the netlist abstraction | |
Jalote et al. | Program partitioning: a framework for combining static and dynamic analysis | |
CN111880768B (zh) | 一种ip核代码级安全需求描述方法 | |
Fu et al. | Graph Neural Network based Hardware Trojan Detection at Intermediate Representative for SoC Platforms |
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 |