CN111428246B - 面向自主芯片硬件安全的逻辑漏洞深度挖掘方法 - Google Patents

面向自主芯片硬件安全的逻辑漏洞深度挖掘方法 Download PDF

Info

Publication number
CN111428246B
CN111428246B CN202010234149.1A CN202010234149A CN111428246B CN 111428246 B CN111428246 B CN 111428246B CN 202010234149 A CN202010234149 A CN 202010234149A CN 111428246 B CN111428246 B CN 111428246B
Authority
CN
China
Prior art keywords
state
fsm
bugs
register
vulnerability
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
Application number
CN202010234149.1A
Other languages
English (en)
Other versions
CN111428246A (zh
Inventor
郭世泽
王坚
李桓
杨鍊
陈哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202010234149.1A priority Critical patent/CN111428246B/zh
Publication of CN111428246A publication Critical patent/CN111428246A/zh
Application granted granted Critical
Publication of CN111428246B publication Critical patent/CN111428246B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种面向自主芯片硬件安全的逻辑漏洞深度挖掘方法,涉及芯片硬件安全技术领域,包括:对芯片HDL源代码进行等效变换;采用ATPG初步提取等效变换后的HDL源代码中的FSM;对初步提取到的FSM进行补全,得到完整的FSM;根据互斥性、完备性、死状态和活状态条件,从完整的FSM中挖掘基本逻辑漏洞,互斥性漏洞、完备性漏洞、死状态漏洞和活状态漏洞均为基本逻辑漏洞;若基本逻辑漏洞包括活状态或死状态漏洞,则继续挖掘传播型漏洞。本发明方法以HDL代码为输入,以FSM为主要研究对象,该方法能够从自主芯片HDL源代码中挖掘出多种类型的硬件逻辑漏洞,使得设计者和使用者能够采取相应的弥补和防范措施。

Description

面向自主芯片硬件安全的逻辑漏洞深度挖掘方法
技术领域
本发明涉及芯片硬件安全技术领域,具体而言,涉及一种面向自主芯片硬件安全的逻辑漏洞深度挖掘方法。
背景技术
当前,硬件在信息技术发展中起到了至关重要的作用,高速发展的硬件设计和硬件制造技术,促进了信息技术的发展和创新。然而,在硬件技术飞速发展的同时,人们也发现了很多硬件安全问题。因此,越来越多的科研人员开始重视硬件安全领域的研究。
近年来,芯片技术取得了飞速发展。然而,芯片功能的日趋复杂也带来了一系列的安全问题。在芯片的设计开发流程中,无论是设计人员还是开发商,都有可能引入各种各样的设计缺陷和制造缺陷。在使用新技术和新材料实现的设计芯片中,经常会观察到现有故障模型无法覆盖到的故障。此外,全球化彻底改变了整个集成电路的供应链,现代计算机系统中的芯片可能是在许多不同地方进行制造、装配的,因此很难追踪它们的来源。
现代自主芯片设计通常会使用HDL代码进行逻辑设计,然后通过综合、映射、布局布线和生成比特流等方式进行后续开发。由于设计流程较长,在设计流程的各个步骤中,都有可能引入逻辑漏洞。因此,提出一种面向自主芯片硬件安全的逻辑漏洞深度挖掘方法具有十分重要的意义。
目前国内外关于自主芯片逻辑漏洞的研究比较少,但是在许多相关领域的研究取得了一定的进展,这些研究对于硬件漏洞挖掘具有重要的借鉴意义。
现有技术提出了一种记作AVF的体系结构脆弱性因子的概念。体系结构脆弱性因子是指故障转化为系统输出端可观察故障的概率大小。虽然AVF可以对系统的行为提供了一个有效的分析角度,但是它无法量化单个系统组件(硬件、用户程序等)的漏洞,限制了分析角度。
现有技术还提出了一种漏洞挖掘模型,该模型基于测试向量生成方法,旨在确定在嵌入式系统中起关键作用的寄存器,提取导致系统异常的寄存器配置信息。该模型有一定的借鉴意义,但是并没有提到实现模型的具体技术和实验数据。另一方面,该模型通过向系统输入测试向量,仿真得到输出数据。这种方法无法准确确定系统中的核心寄存器,无法保证挖掘出的系统漏洞信息完整性。
现有技术还提出了一种HDL代码综合过程中引入的漏洞,即当使用综合工具对HDL代码综合优化时,会在有限状态机(Finite State Machine,FSM)中引入一些原始设计中不存在的状态,称作无关状态。
发明内容
本发明在于提供一种面向自主芯片硬件安全的逻辑漏洞深度挖掘方法,该方法能够从HDL源代码中挖掘出多种类型的硬件逻辑漏洞,使得设计者和使用者能够采取相应的弥补和防范措施。
为了实现上述目的,本发明采取的技术方案如下:
本发明提供了一种面向自主芯片硬件安全的逻辑漏洞深度挖掘方法,包括以下步骤:
S100、对芯片HDL源代码进行等效变换;
S200、采用ATPG初步提取等效变换后的HDL源代码中的FSM;
S300、对初步提取到的FSM进行补全,得到完整的FSM;
S400、根据互斥性、完备性、死状态和活状态条件,从完整的FSM中挖掘基本逻辑漏洞,互斥性漏洞、完备性漏洞、死状态漏洞和活状态漏洞均为基本逻辑漏洞;
S500、若基本逻辑漏洞包括活状态或死状态漏洞,则继续执行步骤S600,否则将当前所有的基本逻辑漏洞作为最终逻辑漏洞输出,结束漏洞挖掘;
S600、从存在基本逻辑漏洞的FSM中挖掘传播型漏洞,将所有的传播型漏洞、基本逻辑漏洞作为最终逻辑漏洞输出,结束漏洞挖掘。
进一步地,所述步骤S100具体包括以下步骤:
S101、设芯片的当前目标寄存器为fs,其前级寄存器集合为F,输入集合为I;设HDL源代码中所有赋值语句集合为
Figure BDA0002430402830000021
其中
Figure BDA0002430402830000022
Figure BDA0002430402830000023
为逻辑函数,Vi
Figure BDA0002430402830000024
中变量的变量集合;
S102、任选f∈F,f未被遍历过,且f≠fs
S103、若
Figure BDA0002430402830000025
使得HDL源代码中语句为
Figure BDA0002430402830000026
则从集合
Figure BDA0002430402830000027
中移除
Figure BDA0002430402830000028
S104、在HDL源代码中,添加输入端口PI,对于
Figure BDA0002430402830000031
若有f∈Vi,则从Vi中移除f,并添加PI到Vi中;
S105、若集合F已被遍历完,则继续执行步骤S106,否则跳转至步骤S102;
S106、若
Figure BDA0002430402830000032
使得HDL源代码中语句为
Figure BDA0002430402830000033
则添加普通线型变量w0,并在HDL源代码中添加语句
Figure BDA0002430402830000034
S107、在HDL源代码中,添加输入端口PIs,对于
Figure BDA0002430402830000035
若有fs∈Vi,则从Vi中移除fs,并添加PIs到Vi
S108、在HDL源代码中,添加二输入异或门XOR、输入端口PIXOR和输出端口POXOR
S109、在HDL源代码中,将输入端口PIXOR和语句
Figure BDA0002430402830000036
分别与二输入异或门XOR的两个输入端连接,将输出端口POXOR与XOR的输出端连接,完成HDL源代码的等效变换。
更进一步地,所述步骤S300具体包括以下步骤:
S301、设初步提取到的FSM的转移条件集合为C1,其元素数量为wnum,连接到组合电路输入端的信号集合为W,在信号集合W中,对于
Figure BDA0002430402830000037
统计该信号的可能取值数量m,得到取值数量集合M,设M的元素数量为mnum,计算初步提取到的FSM转移条件的总数量
Figure BDA0002430402830000038
k∈M;
S302、若wnum>fsmnum,则初步提取到的FSM的转移条件不完整,继续执行步骤S303,否则,将初步提取到的FSM作为完整的FSM输出;
S303、计算初步提取到的FSM所有可能的转移条件,得到转移条件集合C2;设需要补充的转移条件集合为C3,遍历转移条件集合C2,设当前遍历的转移条件为c2;若
Figure BDA0002430402830000039
则将c2加入到C3
S304、根据转移条件集合C2和C3生成testbench仿真文件,进行仿真;
S305、遍历仿真结果,若输出端口POXoR=0,则使用仿真文件对应的输入序列补全FSM,继而得到完整的FSM。
更进一步地,所述步骤S400具体包括以下步骤:
S410、设完整的FSM的状态集合为S,转移条件集合C′,下一状态计数为nextnum,对于状态s∈S,设以该状态为当前状态的状态转移集合为T;
S420、从完整的FSM中挖掘互斥性漏洞,具体包括:
S421、遍历状态集合S,设当前遍历的状态为s∈S,遍历转移条件集合C′,设当前遍历的转移条件为c′∈C′,令nextnum=0;
S422、遍历状态集合S,设当前遍历状态为s′,若存在状态转移,以s为当前状态,c′为转移条件,以s′为下一状态,则nextnum=nextnum+1;
S423、若nextnum>1,则输出该完整的FSM不满足互斥性,否则,若已遍历完转移条件集合C′,则继续执行步骤S424,若没有遍历完转移条件集合C′,则跳转至步骤S421;
S424、若已遍历完状态集合S,则输出该完整的FSM满足互斥性,跳转至步骤S430,否则,跳转至步骤S421;
S430、从完整的FSM中挖掘完备性漏洞,具体包括:
S431、遍历状态集合S,设当前遍历状态为s∈S,遍历转移条件集合C′,设当前遍历的转移条件为c′∈C′;
S432、若以s为当前状态,c′为转移条件时,对于
Figure BDA0002430402830000041
均存在s′不是下一状态,则输出该完整的FSM不满足完备性,否则,继续执行步骤S433;
S433、若遍历完状态集合S,输出该FSM满足完备性,继续执行步骤S440,否则跳转至步骤S431;
S440、从完整的FSM中挖掘死状态或者活状态漏洞,具体包括:
S441、遍历状态集合S,设当前遍历状态为s∈S,遍历状态转移集合为T;
S442、若对于
Figure BDA0002430402830000042
均存在t的下一状态为s,则输出该完整的FSM存在死状态s;
S443、检测状态转移集合T,若
Figure BDA0002430402830000043
则输出该完整的FSM存在活状态s;
S444、若未遍历完状态集合S,则跳转至步骤S441,否则,完成基本逻辑漏洞的挖掘。
更进一步地,所述步骤S600具体包括以下步骤:
S601、对芯片电路的寄存器进行分级,并提取出电路的环路;
S602、设存在漏洞的FSM目标寄存器为r1,若r1为环路寄存器,则继续执行步骤S603,否则,跳转至步骤S609;
S603、设标志位集合为F′,环内寄存器集合为Rc,临时标志位集合变量为F*,其中,对于
Figure BDA0002430402830000044
均存在一个f′∈F′,f*∈F*,使得f′和f*为r的标志位;
S604、对于
Figure BDA0002430402830000045
若f′为与r对应的标志位,则令f′=0,否则,令f′=1,对
Figure BDA0002430402830000046
令f*=0;
S605、遍历集合F′,设当前遍历变量为f′,若f′=1,则继续执行步骤S606,否则,跳转至步骤S607;
S606、以寄存器ri为漏洞传播起点,设以ri为前级寄存器的目标寄存器集合为Ri,对于
Figure BDA0002430402830000051
若经过漏洞传播,寄存器rj出现可传播漏洞t,令fj *=1,并记录漏洞t;
S607、若未遍历完集合F′,跳转至步骤S605,否则,继续执行步骤S608;
S608、若对于
Figure BDA0002430402830000052
均存在f*=0,则输出漏洞环路传播结果,继续执行步骤S609,否则,令F′=*,对于
Figure BDA0002430402830000053
令f*=0,跳转至步骤S605;
S609、设寄存器集合R,由寄存器分级结果,根据寄存器级数大小,将R中的寄存器排序,生成排序后的寄存器集合R*,在R*中,对于
Figure BDA0002430402830000054
设寄存器
Figure BDA0002430402830000055
的级数分别为
Figure BDA0002430402830000056
则有
Figure BDA0002430402830000057
设变量g0=0,标志位变量flag=0;
S610、遍历集合R*,设当前遍历寄存器为
Figure BDA0002430402830000058
S611、若
Figure BDA0002430402830000059
并且寄存器
Figure BDA00024304028300000510
存在可传播漏洞,则继续执行步骤S612,否则,跳转至步骤S613;
S612、设以
Figure BDA00024304028300000511
为前级寄存器的目标寄存器集合为Ri,则对于
Figure BDA00024304028300000512
若经过漏洞传播,rj产生了新的可传播漏洞t,则记录漏洞t,并令变量flag=1;
S613、若已遍历完集合R*,输出漏洞传播结果,否则,当flag=1时,令g0=g0+1,flag=0,跳转至步骤S610,当flag=0时,直接输出漏洞传播结果,完成传播型漏洞的挖掘。
更进一步地,所述目标寄存器指的是FSM结构中存储状态的寄存器。
更进一步地,对于FSM中的目标寄存器R,在R′的输出到R的输入的信号中,不存在其他寄存器信号,则称R′为以R为目标寄存器的FSM中的前级寄存器。
与现有技术相比,本发明有益效果是:提出了一种面向自主芯片硬件安全的逻辑漏洞深度挖掘方法;FSM是自主芯片设计中的重要组成部分,因此,该方法以FSM为主要研究对象,开展漏洞的深度挖掘研究;该方法首先以HDL代码为输入,设计了一种提取FSM的方法,该方法能够提取FSM的完整信息;然后,该方法深入研究了FSM中可能存在的漏洞类型,建立了FSM漏洞模型;最后,基于FSM漏洞模型,该方法提出了一种FSM漏洞挖掘方法,从而实现了对自主芯片设计中逻辑漏洞的深度挖掘。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是面向自主芯片硬件安全的逻辑漏洞深度挖掘方法流程图;
图2是芯片HDL源代码的等效变换流程图;
图3是FSM补全方法流程图;
图4是基本逻辑漏洞挖掘方法流程图;
图5是传播型漏洞挖掘方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
请参照图1~图5,本实施例提供了一种面向自主芯片硬件安全的逻辑漏洞深度挖掘方法,包括以下步骤:
S100、对芯片HDL源代码进行等效变换,具体如下:
S101、设芯片的当前目标寄存器为fs,其前级寄存器集合为F,输入集合为I;设HDL源代码中所有赋值语句集合为
Figure BDA0002430402830000061
其中
Figure BDA0002430402830000062
Figure BDA0002430402830000063
为逻辑函数,Vi
Figure BDA0002430402830000064
中变量的变量集合;
S102、任选f∈F,f未被遍历过,且f≠fs
S103、若
Figure BDA0002430402830000065
使得HDL源代码中语句为
Figure BDA0002430402830000066
则从集合
Figure BDA0002430402830000067
中移除
Figure BDA0002430402830000068
S104、在HDL源代码中,添加输入端口PI,对于
Figure BDA0002430402830000069
若有f∈Vi,则从Vi中移除f,并添加PI到Vi中;
S105、若集合F已被遍历完,则继续执行步骤S106,否则跳转至步骤S102;
S106、若
Figure BDA0002430402830000071
使得HDL源代码中语句为
Figure BDA0002430402830000072
则添加普通线型变量w0,并在HDL源代码中添加语句
Figure BDA0002430402830000073
S107、在HDL源代码中,添加输入端口PIs,对于
Figure BDA0002430402830000074
若有fs∈Vi,则从Vi中移除fs,并添加PIs到Vi
S108、在HDL源代码中,添加二输入异或门XOR、输入端口PIXOR和输出端口POXOR
S109、在HDL源代码中,将输入端口PIXOR和语句
Figure BDA0002430402830000075
分别与二输入异或门XOR的两个输入端连接,将输出端口POXOR与XOR的输出端连接,完成HDL源代码的等效变换。
在本实施例中,认为FSM的主要存储元件为寄存器,在FSM结构中,存储状态的寄存器称为目标寄存器。
在本实施例中,对于FSM中的目标寄存器G,在G′的输出到G的输入的信号中,不存在其他寄存器信号,则称G′为以G为目标寄存器的FSM中的前级寄存器。
在本实施例中,所选的目标芯片为8051处理器芯片,其在自主芯片设计中具有代表性。8051处理器的HDL源代码中共有737个FSM结构,对8051处理器的HDL源代码进行上述等效变换后生成737个变换后结构。
S200、采用ATPG初步提取等效变换后的HDL源代码中的FSM,具体如下:
1)设影响FSM的输入变量集合为I′;
2)对于输入变量i′,若
Figure BDA0002430402830000076
则设置i′=X;
3)设置ATPG模式为Basic-scan,并在POXOR设置“固定为1”型故障;
4)运行ATPG,生成FSM数据。
在本实施例中,通过ATPG,生成737个FSM的数据。
S300、对初步提取到的FSM进行补全,得到完整的FSM,具体如下:
S301、设初步提取到的FSM的转移条件集合为C1,其元素数量为wnum,连接到组合电路输入端的信号集合为W,在信号集合W中,对于
Figure BDA0002430402830000077
统计该信号的可能取值数量m,得到取值数量集合M,设M的元素数量为mnum,计算初步提取到的FSM转移条件的总数量
Figure BDA0002430402830000078
k∈M;
S302、若wnum>fsmnum,则初步提取到的FSM的转移条件不完整,继续执行步骤S303,否则,将初步提取到的FSM作为完整的FSM输出;
S303、计算初步提取到的FSM所有可能的转移条件,得到转移条件集合C2;设需要补充的转移条件集合为C3,遍历转移条件集合C2,设当前遍历的转移条件为c2;若
Figure BDA0002430402830000081
则将c2加入到C3
S304、根据转移条件集合C2和C3生成testbench仿真文件,进行仿真;
S305、遍历仿真结果,若输出端口POXOR=0,则使用仿真文件对应的输入序列补全FSM,继而得到完整的FSM。
在本实施例中,通过检测,737个FSM中有60个FSM提取不完整,使用补全FSM方法,生成60个testbench仿真文件,经过仿真补全FSM后,得到737个完整的FSM。
S400、根据互斥性、完备性、死状态和活状态条件,从完整的FSM中挖掘基本逻辑漏洞,互斥性漏洞、完备性漏洞、死状态漏洞和活状态漏洞均为基本逻辑漏洞,具体如下:
S410、设完整的FSM的状态集合为S,转移条件集合C′,下一状态计数为nextnum,对于状态s∈S,设以该状态为当前状态的状态转移集合为T;
S420、从完整的FSM中挖掘互斥性漏洞,具体包括:
S421、遍历状态集合S,设当前遍历的状态为s∈S,遍历转移条件集合C′,设当前遍历的转移条件为c′∈C′,令nextnum=0;
S422、遍历状态集合S,设当前遍历状态为s,若存在状态转移,以s为当前状态,c′为转移条件,以s′为下一状态,则nextnum=nextnum+1;
S423、若nextnum>1,则输出该完整的FSM不满足互斥性,否则,若已遍历完转移条件集合C′,则继续执行步骤S424,若没有遍历完转移条件集合C′,则跳转至步骤S421;
S424、若已遍历完状态集合S,则输出该完整的FSM满足互斥性,跳转至步骤S430,否则,跳转至步骤S421;
S430、从完整的FSM中挖掘完备性漏洞,具体包括:
S431、遍历状态集合S,设当前遍历状态为s∈S,遍历转移条件集合C′,设当前遍历的转移条件为c′∈C′;
S432、若以s为当前状态,c′为转移条件时,对于
Figure BDA0002430402830000082
均存在s′不是下一状态,则输出该完整的FSM不满足完备性,否则,继续执行步骤S433;
S433、若遍历完状态集合S,输出该FSM满足完备性,继续执行步骤S440,否则跳转至步骤S431;
S440、从完整的FSM中挖掘死状态或者活状态漏洞,具体包括:
S441、遍历状态集合S,设当前遍历状态为s∈S,遍历状态转移集合为T;
S442、若对于
Figure BDA0002430402830000091
均存在t的下一状态为s,则输出该完整的FSM存在死状态s;
S443、检测状态转移集合T,若
Figure BDA0002430402830000092
则输出该完整的FSM存在活状态s;
S444、若未遍历完状态集合S,则跳转至步骤S441,否则,完成基本逻辑漏洞的挖掘。
S500、若基本逻辑漏洞包括活状态或死状态漏洞,则继续执行步骤S600,否则将当前所有的基本逻辑漏洞作为最终逻辑漏洞输出,结束漏洞挖掘。
S600、从存在基本逻辑漏洞的FSM中挖掘传播型漏洞,具体如下:
S601、对芯片电路的寄存器进行分级,并提取出电路的环路;
S602、设存在漏洞的FSM目标寄存器为r1,若r1为环路寄存器,则继续执行步骤S603,否则,跳转至步骤S609;
S603、设标志位集合为F′,环内寄存器集合为Rc,临时标志位集合变量为F*,其中,对于
Figure BDA0002430402830000093
均存在一个f′∈F′,f*∈F*,使得f′和f*为r的标志位;
S604、对于
Figure BDA0002430402830000094
若f′为与r对应的标志位,则令f′=0,否则,令f′=1,对
Figure BDA0002430402830000095
令f*=0;
S605、遍历集合F′,设当前遍历变量为f′,若f′=1,则继续执行步骤S606,否则,跳转至步骤S607;
S606、以寄存器ri为漏洞传播起点,设以ri为前级寄存器的目标寄存器集合为Ri,对于
Figure BDA0002430402830000096
若经过漏洞传播,寄存器rj出现可传播漏洞t,令fj *=1,并记录漏洞t;
S607、若未遍历完集合F′,跳转至步骤S605,否则,继续执行步骤S608;
S608、若对于
Figure BDA0002430402830000097
均存在f*=0,则输出漏洞环路传播结果,继续执行步骤S609,否则,令F′=F*,对于
Figure BDA0002430402830000098
令f*=0,跳转至步骤S605;
S609、设寄存器集合R,由寄存器分级结果,根据寄存器级数大小,将R中的寄存器排序,生成排序后的寄存器集合R*,在R*中,对于
Figure BDA0002430402830000099
设寄存器
Figure BDA00024304028300000910
的级数分别为
Figure BDA00024304028300000911
则有
Figure BDA00024304028300000912
设变量g0=0,标志位变量flag=0;
S610、遍历集合R*,设当前遍历寄存器为
Figure BDA00024304028300000913
S611、若
Figure BDA00024304028300000914
并且寄存器
Figure BDA00024304028300000915
存在可传播漏洞,则继续执行步骤S612,否则,跳转至步骤S613;
S612、设以
Figure BDA00024304028300000916
为前级寄存器的目标寄存器集合为Ri,则对于
Figure BDA00024304028300000917
若经过漏洞传播,rj产生了新的可传播漏洞t,则记录漏洞t,并令变量flag=1;
S613、若已遍历完集合R*,输出漏洞传播结果,否则,当flag=1时,令g0=g0+1,flag=0,跳转至步骤S610,当flag=0时,直接输出漏洞传播结果,完成传播型漏洞的挖掘。
在本实施例中,如表1所示,通过使用本发明的逻辑漏洞挖掘方法,从8051处理器的FSM中,挖掘出1个FSM基本类型漏洞中的活状态漏洞,并通过传播型漏洞的挖掘,检测出1个传播二义性(一个FSM,原本不存在基本类型的漏洞,若经过漏洞传播后,因转移条件发生改变而具有二义性漏洞,则称该漏洞为传播二义性)漏洞。
表1 8051处理器逻辑漏洞深度挖掘结果
Figure BDA0002430402830000101
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种面向自主芯片硬件安全的逻辑漏洞深度挖掘方法,其特征在于,包括以下步骤:
S100、对芯片HDL源代码进行等效变换;
S200、采用ATPG初步提取等效变换后的HDL源代码中的FSM;
S300、对初步提取到的FSM进行补全,得到完整的FSM;
S400、根据互斥性、完备性、死状态和活状态条件,从完整的FSM中挖掘基本逻辑漏洞,互斥性漏洞、完备性漏洞、死状态漏洞和活状态漏洞均为基本逻辑漏洞;
S500、若基本逻辑漏洞包括活状态或死状态漏洞,则继续执行步骤S600,否则将当前所有的基本逻辑漏洞作为最终逻辑漏洞输出,结束漏洞挖掘;
S600、从存在基本逻辑漏洞的FSM中挖掘传播型漏洞,将所有的传播型漏洞、基本逻辑漏洞作为最终逻辑漏洞输出,结束漏洞挖掘;
所述步骤S100具体包括以下步骤:
S101、设芯片的当前目标寄存器为fs,其前级寄存器集合为F,输入集合为I;设HDL源代码中所有赋值语句集合为
Figure FDA0004048105220000011
其中
Figure FDA0004048105220000012
Figure FDA0004048105220000013
为逻辑函数,Vi
Figure FDA0004048105220000014
中变量的变量集合;
S102、任选f∈F,f未被遍历过,且f≠fs
S103、若
Figure FDA0004048105220000015
使得HDL源代码中语句为
Figure FDA0004048105220000016
则从集合
Figure FDA0004048105220000017
中移除
Figure FDA0004048105220000018
S104、在HDL源代码中,添加输入端口PI,对于
Figure FDA0004048105220000019
若有f∈Vi,则从Vi中移除f,并添加PI到Vi中;
S105、若集合F已被遍历完,则继续执行步骤S106,否则跳转至步骤S102;
S106、若
Figure FDA00040481052200000110
使得HDL源代码中语句为
Figure FDA00040481052200000111
则添加普通线型变量w0,并在HDL源代码中添加语句
Figure FDA00040481052200000112
S107、在HDL源代码中,添加输入端口PIs,对于
Figure FDA00040481052200000113
若有fs∈Vi,则从Vi中移除fs,并添加PIs到Vi
S108、在HDL源代码中,添加二输入异或门XOR、输入端口PIXOR和输出端口POXOR
S109、在HDL源代码中,将输入端口PIXOR和语句
Figure FDA00040481052200000114
分别与二输入异或门XOR的两个输入端连接,将输出端口POXOR与XOR的输出端连接,完成HDL源代码的等效变换;
所述步骤S300具体包括以下步骤:
S301、设初步提取到的FSM的转移条件集合为C1,其元素数量为wnum,连接到组合电路输入端的信号集合为W,在信号集合W中,对于
Figure FDA0004048105220000021
统计该信号的可能取值数量m,得到取值数量集合M,设M的元素数量为mnum,计算初步提取到的FSM转移条件的总数量
Figure FDA0004048105220000022
S302、若wnum>fsmnum,则初步提取到的FSM的转移条件不完整,继续执行步骤S303,否则,将初步提取到的FSM作为完整的FSM输出;
S303、计算初步提取到的FSM所有可能的转移条件,得到转移条件集合C2;设需要补充的转移条件集合为C3,遍历转移条件集合C2,设当前遍历的转移条件为c2;若
Figure FDA0004048105220000023
则将c2加入到C3
S304、根据转移条件集合C2和C3生成testbench仿真文件,进行仿真;
S305、遍历仿真结果,若输出端口POXOR=0,则使用仿真文件对应的输入序列补全FSM,继而得到完整的FSM;
所述步骤S400具体包括以下步骤:
S410、设完整的FSM的状态集合为S,转移条件集合C′,下一状态计数为nextnum,对于状态s∈S,设以该状态为当前状态的状态转移集合为T;
S420、从完整的FSM中挖掘互斥性漏洞,具体包括:
S421、遍历状态集合S,设当前遍历的状态为s∈S,遍历转移条件集合C′,设当前遍历的转移条件为c′∈C′,令nextnum=0;
S422、遍历状态集合S,设当前遍历状态为s′,若存在状态转移,以s为当前状态,c′为转移条件,以s′为下一状态,则nextnum=nextnum+1;
S423、若nextnum>1,则输出该完整的FSM不满足互斥性,否则,若已遍历完转移条件集合C′,则继续执行步骤S424,若没有遍历完转移条件集合C′,则跳转至步骤S421;
S424、若已遍历完状态集合S,则输出该完整的FSM满足互斥性,跳转至步骤S430,否则,跳转至步骤S421;
S430、从完整的FSM中挖掘完备性漏洞,具体包括:
S431、遍历状态集合S,设当前遍历状态为s∈S,遍历转移条件集合C′,设当前遍历的转移条件为c′∈C′;
S432、若以s为当前状态,c′为转移条件时,对于
Figure FDA0004048105220000024
均存在s′不是下一状态,则输出该完整的FSM不满足完备性,否则,继续执行步骤S433;
S433、若遍历完状态集合S,输出该FSM满足完备性,继续执行步骤S440,否则跳转至步骤S431;
S440、从完整的FSM中挖掘死状态或者活状态漏洞,具体包括:
S441、遍历状态集合S,设当前遍历状态为s∈S,遍历状态转移集合为T;
S442、若对于
Figure FDA0004048105220000031
均存在t的下一状态为s,则输出该完整的FSM存在死状态s;
S443、检测状态转移集合T,若
Figure FDA0004048105220000032
则输出该完整的FSM存在活状态s;
S444、若未遍历完状态集合S,则跳转至步骤S441,否则,完成基本逻辑漏洞的挖掘;
所述步骤S600具体包括以下步骤:
S601、对芯片电路的寄存器进行分级,并提取出电路的环路;
S602、设存在漏洞的FSM目标寄存器为r1,若r1为环路寄存器,则继续执行步骤S603,否则,跳转至步骤S609;
S603、设标志位集合为F,环内寄存器集合为Rc,临时标志位集合变量为F*,其中,对于
Figure FDA0004048105220000033
均存在一个f∈F,f*∈F*,使得f和f*为r的标志位;
S604、对于
Figure FDA0004048105220000034
若f为与r对应的标志位,则令f=0,否则,令f=1,对
Figure FDA0004048105220000035
令f*=0;
S605、遍历集合F,设当前遍历变量为f,若f=1,则继续执行步骤S606,否则,跳转至步骤S607;
S606、以寄存器ri为漏洞传播起点,设以ri为前级寄存器的目标寄存器集合为Ri,对于
Figure FDA0004048105220000036
若经过漏洞传播,寄存器rj出现可传播漏洞t,令fj *=1,并记录漏洞t;
S607、若未遍历完集合F,跳转至步骤S605,否则,继续执行步骤S608;
S608、若对于
Figure FDA0004048105220000037
均存在f*=0,则输出漏洞环路传播结果,继续执行步骤S609,否则,令F*,对于
Figure FDA0004048105220000038
令f*=0,跳转至步骤S605;
S609、设寄存器集合R,由寄存器分级结果,根据寄存器级数大小,将R中的寄存器排序,生成排序后的寄存器集合R*,在R*中,对于
Figure FDA0004048105220000039
设寄存器ri *、rj *的级数分别为
Figure FDA00040481052200000310
则有
Figure FDA00040481052200000311
设变量g0=0,标志位变量flag=0;
S610、遍历集合R*,设当前遍历寄存器为ri *
S611、若
Figure FDA00040481052200000312
并且寄存器ri *存在可传播漏洞,则继续执行步骤S612,否则,跳转至步骤S613;
S612、设以ri *为前级寄存器的目标寄存器集合为Ri,则对于
Figure FDA00040481052200000313
若经过漏洞传播,rj产生了新的可传播漏洞t,则记录漏洞t,并令变量flag=1;
S613、若已遍历完集合R*,输出漏洞传播结果,否则,当flag=1时,令g00+1,flag=0,跳转至步骤S610,当flag=0时,直接输出漏洞传播结果,完成传播型漏洞的挖掘。
2.根据权利要求1所述面向自主芯片硬件安全的逻辑漏洞深度挖掘方法,其特征在于,所述目标寄存器指的是FSM结构中存储状态的寄存器。
3.根据权利要求2所述面向自主芯片硬件安全的逻辑漏洞深度挖掘方法,其特征在于,对于FSM中的目标寄存器R,在R的输出到R的输入的信号中,不存在其他寄存器信号,则称R为以R为目标寄存器的FSM中的前级寄存器。
CN202010234149.1A 2020-03-30 2020-03-30 面向自主芯片硬件安全的逻辑漏洞深度挖掘方法 Active CN111428246B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010234149.1A CN111428246B (zh) 2020-03-30 2020-03-30 面向自主芯片硬件安全的逻辑漏洞深度挖掘方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010234149.1A CN111428246B (zh) 2020-03-30 2020-03-30 面向自主芯片硬件安全的逻辑漏洞深度挖掘方法

Publications (2)

Publication Number Publication Date
CN111428246A CN111428246A (zh) 2020-07-17
CN111428246B true CN111428246B (zh) 2023-04-18

Family

ID=71556040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010234149.1A Active CN111428246B (zh) 2020-03-30 2020-03-30 面向自主芯片硬件安全的逻辑漏洞深度挖掘方法

Country Status (1)

Country Link
CN (1) CN111428246B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676438B (zh) * 2022-04-15 2023-06-09 电子科技大学 面向硬件系统多维脆弱性的快速探测方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923618A (zh) * 2010-08-19 2010-12-22 中国航天科技集团公司第七一○研究所 一种基于隐马尔可夫模型的汇编指令级漏洞检测方法
CN105793833A (zh) * 2014-09-18 2016-07-20 上海兆芯集成电路有限公司 快取存储器诊断回写
CN107807812A (zh) * 2017-11-10 2018-03-16 电子科技大学 一种基于hdl代码的硬件脆弱性评估方法
CN110198319A (zh) * 2019-06-03 2019-09-03 电子科技大学 基于多反例的安全协议漏洞挖掘方法
KR20190107373A (ko) * 2018-03-12 2019-09-20 주식회사 아이오티큐브 네트워크 프로토콜의 취약점을 탐지하는 퍼징 방법 및 장치
CN112840342A (zh) * 2018-09-17 2021-05-25 智能Ic卡公司 被配置为监视敏感有效载荷的电路

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405915B2 (en) * 2013-03-14 2016-08-02 Whitehat Security, Inc. Techniques for correlating vulnerabilities across an evolving codebase

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923618A (zh) * 2010-08-19 2010-12-22 中国航天科技集团公司第七一○研究所 一种基于隐马尔可夫模型的汇编指令级漏洞检测方法
CN105793833A (zh) * 2014-09-18 2016-07-20 上海兆芯集成电路有限公司 快取存储器诊断回写
CN107807812A (zh) * 2017-11-10 2018-03-16 电子科技大学 一种基于hdl代码的硬件脆弱性评估方法
KR20190107373A (ko) * 2018-03-12 2019-09-20 주식회사 아이오티큐브 네트워크 프로토콜의 취약점을 탐지하는 퍼징 방법 및 장치
CN112840342A (zh) * 2018-09-17 2021-05-25 智能Ic卡公司 被配置为监视敏感有效载荷的电路
CN110198319A (zh) * 2019-06-03 2019-09-03 电子科技大学 基于多反例的安全协议漏洞挖掘方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A framework for identifying and mitigating vulnerabilities in FSMs;Adib Nahiyan等;《2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC)》;20160818;全文 *
Security Vulnerabilities: From Analysis to Detection and Masking Techniques;S. Chen等;《Proceedings of the IEEE》;20060123;全文 *
一种二进制程序漏洞挖掘技术的研究与实现;闫斌;《中国优秀硕士学位论文全文数据库》;20131115;全文 *
层次化的FPGA硬件脆弱性分析方法研究;高振标;《中国优秀硕士学位论文全文数据库》;20180815;全文 *

Also Published As

Publication number Publication date
CN111428246A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
Huang et al. OpenTimer v2: A new parallel incremental timing analysis engine
Li et al. Wordrev: Finding word-level structures in a sea of bit-level gates
US7904867B2 (en) Integrating a boolean SAT solver into a router
US6038392A (en) Implementation of boolean satisfiability with non-chronological backtracking in reconfigurable hardware
US20030208730A1 (en) Method for verifying properties of a circuit model
Iyer et al. Identifying sequential redundancies without search
US6496961B2 (en) Dynamic detection and removal of inactive clauses in SAT with application in image computation
TW201022978A (en) Method and apparatus for memory abstraction and verification using same
JP2003526149A (ja) クリティカルパス及びフォールスパスの検証方法及び検証装置
CN111428246B (zh) 面向自主芯片硬件安全的逻辑漏洞深度挖掘方法
Lu et al. Hierarchy modeling and formal verification of emergency treatment processes
US20010011360A1 (en) System and method for evaluating the location of a failure in a logic circuit, and machine-readable recording medium having a recorded program
US20200410065A1 (en) Deterministic test pattern generation for designs with timing exceptions
Barenghi et al. Exploring cortex-M microarchitectural side channel information leakage
Long et al. FILL and FUNI: Algorithms to identify illegal states and sequentially untestable faults
Amarú et al. SAT-sweeping enhanced for logic synthesis
US10796043B1 (en) Non-adaptive pattern reordering to improve scan chain diagnostic resolution in circuit design and manufacture
US20080195368A1 (en) Method, system and program product for selectively removing instrumentation logic from a simulation model
Carmona et al. Synthesis of asynchronous controllers using integer linear programming
Hierons Controllable testing from nondeterministic finite state machines with multiple ports
CN104133931B (zh) 用于检测组合等效电路设计中的相应路径的方法和系统
Beerel et al. Estimation of energy consumption in speed-independent control circuits
Li Formal methods for reverse engineering gate-level netlists
Raik et al. Constraint-based hierarchical untestability identification for synchronous sequential circuits
Khatri et al. RASP-FIT: A Fast and Automatic Fault Injection Tool for Code-Modification of FPGA Designs

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