20199117 2019-2020-2 《网络攻防实践》综合作业

1.硬件木马

​ 硬件木马是指在集成电路设计和制造过程中,故意植入的特殊模块或者设计者无意留下的缺陷模块,对原始电路进行恶意修改,以达到在无条件或在特定的触发条件下实现改变系统功能,泄露机密情报或摧毁系统的目的。在特殊条件触法下,该模块能够被攻击者利用而实现具有破坏性的功能。插入的硬件木马可能会导致泄露信息,改变电路功能,甚至破坏电路。简单说,硬件木马就是在原始电路中插入的微小的恶意电路。

1.1 研究背景

  • 集成电路芯片的应用已经渗透到现代科技的各个领域,对社会发展有越来越大的推动作用。同时,基于硬件木马的攻击行为也逐渐增多,成为电子设备和信息系统最大的安全威胁之一,因此硬件木马的重要性受到人们的广泛关注。
  • 硬件木马是对硬件设计进行恶意的修改,以达到无条件或在一定触发条件下实现改变系统功能的目的。随着半导体设计制造行业的全球化趋势不断深入,在芯片设计和生产的多个环节都可能被第三方恶意植入硬件木马,给芯片安全带来严重威胁。因此,应该针对硬件木马进行分析研究,从而提出相应的策略来对抗硬件木马。

1.2硬件木马结构

​ 硬件木马工作机制的多样性和设计方法的灵活性使得他的实现方式复杂多样。但大多数硬件木马在单个芯片内部的实现结构主要如下图所示,由两个功能部件构成,分别是触发逻辑单元及功能逻辑单元

  • 触发逻辑单元:通过监听输入,总线,寄存器数据,检测电路工作状态或经过设定的工作时间等方式激活功能逻辑单元。根据是否需要触发逻辑,硬件木马可分为有条件触发和无条件触发两类。
    • 有条件触发:木马电路同时包含出发逻辑和功能逻辑单元,需要在特定的状态下激活硬件木马,此类硬件木马较为隐蔽,可以通过设置较为苛刻的触发条件,避免被传统的功能测试检测。
    • 无条件触发:硬件木马电路仅包含功能逻辑单元,木马电路时刻处于激活状态,此类木马活性很强,功耗相对较大,易被功能测试等发现,一般只在实验验证中使用
  • 功能逻辑单元:硬件木马攻击的执行单元,负责实施硬件木马攻击行为。当逻辑功能单元被激活后,其通过改变系统输出或按预先设定的攻击方式,达到破坏电路正常运行的目的。功能逻辑单元根据其行为特征和工作方式不同,分为显性功能单元和隐性功能单元
    • 显性功能单元:通过改变电路节点的逻辑状态来实施攻击,硬件木马被激以后,通过改变电路内部控制信号和数据信号,使得芯片出现错误的行为或直接传输秘密信息。
    • 隐性功能单元同显性功能单元相比,不改变电路内部逻辑,仅将其作为触发信号,通过其他方式来实施攻击,如发射电磁、功耗等旁路信号泄露密钥、加速芯片失效或者直接物理摧毁芯片,使芯片失效。

1.3 硬件木马种类

​ 根据木马的功能与结构将木马分为触发和有效载荷两个主要部分,如下图所示。触发部分主要指的是木马的激活手段,二有效载荷部分主要指的是木马触发后发挥功能作用的部分。当木马被触发后就会发送激活信号给木马的有效载荷部分,木马的有效载荷部分开始工作,对芯片进行攻击,比如泄露敏感信息或破坏芯片功能等。

2.硬件木马设计

2.1 GAN*模型设计

  • 由于GAN在硬件木马样本规模化、自动化生成方面的可行性,同时又由于GAN模型存在的一些不足之处,所以对GAN模型进行修改和优化,提出了能够更好地满足硬件木马生成的改进的GAN(GAN*)模型。

  • 下图为GAN*模型结构设计图,核心部分由生成器(G)和Critic(C)构成,除此之外还包括一个f函数及一个cost函数。其中Critic(C)训练的样本越好,生成器(G)的性能越好,生成的硬件木马样本与训练样本越贴近。

  • ​用Critic(C)代替GAN中的判别器(D)后,公式表示为:
    $$\theta_C \leftarrow \nabla_c[\frac{1}{m} \sum_{i=1}{m}f_c(x)-\frac{1}{m} \sum_{i=1}^{m} f_c(\theta_c(Z^{(i)})) $$

    $$\theta_G \longleftarrow \nabla_c \frac{1}{m} \sum_{i=1}{m}f_G(\theta_G(Z))] $$

2.2 HT-GAN模型设计

  • HT-GAN模型包括训练模块及生成模块,通过优化GAN* 模型,减少模型输出和训练数据之间的不匹配,调节参数,调整结构形成。其能实现硬件木马样本的规模化、自动化生成

  • 下图为HT-GAN模型中的训练模块,其核心部分为GAN*模型。

  • 下图为HT-GAN模型中的生成模块,其核心部分同样为GAN*模型。

3.实验环境

3.1 GAN生成对抗网络

  • 生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。

  • 如下图所示为GAN模型的结构,包括生成器及判别器。其中生成器(G)由INPUT NOISE、Linear、Residual Block、Conv ID、Softmax等几部分模块构成。判别器(D)由Residual Block、Conv ID、Linear等几部分模块构成。

3.2环境配置

  • VS2015下载安装,地址为http://download.microsoft.com/download/7/c/f/7cf151c3-b735-4e35-a1bb-9a48224f4a95/vs2015.3.ent_chs.iso

  • Anaconda3.5下载安装,地址为
    https://repo.anaconda.com/archive/Anaconda3-5.0.0-Windows-x86_64.exe

  • tensorflow1.13.1的GPU版本及temsorboard1.13.1安装:打开Anaconda prompt输入pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package如下图所示,将some-package换成tensorflow及tensorboard进行安装。

  • pycharm下载安装,地址为

    https://download.jetbrains.com/python/pycharm-community-2017.2.7.exe

  • 显卡驱动安装:在NVIDIA官网找到匹配自己电脑显卡的驱动进行下载安装。

  • cuda下载安装,地址为https://pan.baidu.com/s/14Oisbo9cZpP7INQ6T-3vwAmso-asc 提取码为z4pl,打开cuda_10.0.130_411.31_win10.exe安装。安装完成后打开cmd,输入nvcc -V,如图所示,出现CUDA版本信息,则证明CUDA配置成功。

  • 安装cudnn,解压下载好的cudnn-10.0-windows10-x64-v7.4.2.24.zip,如图1-14所示。并将所有文件复制粘贴到CUDA安装位置,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0下。

4.硬件木马设计过程及结构

4.1 设计过程

  • 如图为HT-GAN模型生成硬件木马的流程图

  • 首先搭建训练平台本次实验中配置GAN环境,然后进行模型优化,将白高斯噪声和处理好的训练样本放到HT-GAN训练模型中,通过小样本开展测试。然后训练HT-GAN模型,如图所示十种训练样本集送入Critic(C),Critic(C)根据训练样本集进行无监督学习。

  • 将训练成功的网络模型参数输入生成模型中,用已设置好的白高斯噪声触发生成器(G)。按照硬件木马类型结构的不同设置不同的截断控制器。然后,将生成的样本送到截断控制器中,通过控制器对每个生成文件进行截断处理,并进一步分类。最后,对截断分类后的样本文件分别进行RTL级验证,筛选出所有符合硬件木马特征的样本,组成样本集。

4.2 生成的硬件木马样本

  • 如图所示为迭代1500次的运行结果及生成的硬件木马样本文件

  • 下图为迭代1500次后生成的硬件木马样本,由于迭代次数过低,生成的硬件木马没什么意义,但由于在家无法连接学校的服务器,运行结果只能上学再进行优化。

  • 如图所示为迭代20万次生成的硬件木马样本,该样本是使用十种不同类型的硬件木马样本集,分别对HT-GAN模型进行训练得出的。每种类型生成100000个硬件木马样本并保存为文本文件。

5.实践总结

由于自己的研究方向就为硬件木马方向,所以想借着完成综合作业的机会更好的掌握硬件木马的相关知识,锻炼一下自己的动手能力吧。虽然之前对硬件木马有一定的了解,但是都处于理论阶段,通过这次实践,基本掌握了硬件木马设计的流程,通过生成硬件木马样本及训练样本的对比,发现还有很多不足,好多生成的样本与训练样本相比相差太多,还需要更进一步的改进。掌握了硬件木马设计部分,更全面的了解了硬件木马的结构,为设计硬件木马检测系统打下基础。此次实验不足的地方就是用电脑运行程序无法实现迭代次数过大,生成相对较好的硬件木马样本。

6.学习总结和建议意见

上学以来最特殊的一学期就这样度过了,虽然网络攻防这门课与其他课相比作业相对较多,但正是因为大量的作业让我们在家也没有放松,依旧处于学习的状态。因为第一次接触网络攻防的相关知识,所以这学期的课程在刚开始的时候还是有些吃力,但是这一学期跟着老师的进度坚持下来,感觉学到了很多知识。每周写作业写到这都感觉终于松了一口气,当然我们熬夜做一份作业的同时,老师也在熬夜帮我们每个人批改作业,所以还是要谢谢老师的呢。熬夜一定会胖!要不然怎么做了这么多作业的我还是没瘦!我还要感谢在我完成每周各种疑难作业时帮助我的每一个人呢!我也不知道为什么我的实验总是有各种怪怪的独特问题。解决了这些问题,完成作业也还是很有成就感的呢。

建议的话,当然没什么大的建议了,有个小小的建议就是希望老师上课的时候能稍微讲一点理论知识,毕竟我这种学渣真的在入门的时候什么都不太懂。

7.参考文献

[1]. Electronics - Electronic Testing; Study Results from Iran University of Science and Technology Broaden Understanding of Electronic Testing (An Efficient Technique to Detect Stealthy Hardware Trojans Independent of the Trigger Size)[J]. Information Technology Newsweekly,2020.

[2]马正飞. 不同触发特征的硬件木马设计及检测技术研究[D].电子科技大学,2019.

[3]解啸天. 硬件木马设计与特征分析技术研究[D].天津大学,2018.

[4]刘海亮. 基于特征提取的硬件木马检测技术研究[D].电子科技大学,2017.

[5]赵剑锋,史岗.硬件木马研究动态综述[J].信息安全学报,2017,2(01):74-90.

[6]倪林,李少青,马瑞聪,魏佩.硬件木马检测与防护[J].数字通信,2014,41(01):59-63+68.

[7]牛小鹏,李清宝,王炜,张丹.硬件木马技术研究综述[J].信息工程大学学报,2012,13(06):740-748.

[8]刘华锋,罗宏伟,王力纬.硬件木马综述[J].微电子学,2011,41(05):709-713.

posted @ 2020-07-01 12:07  曲耘涵20199117  阅读(424)  评论(0编辑  收藏  举报