微控制器程序指令执行指纹识别和入侵检测的制作方法

文档序号:26940169发布日期:2021-10-12 15:35阅读:105来源:国知局
微控制器程序指令执行指纹识别和入侵检测的制作方法

1.本公开的方面涉及一种用于经由在程序指令执行期间分析微控制器单元(mcu)的物理属性来对mcu进行指纹识别以及基于指纹识别来执行入侵检测的改进方法。


技术实现要素:

2.根据一个或多个说明性示例,一种用于指令分类和软件入侵检测的方法包括经由侧通道信号分析来监视微控制器单元(mcu)的处理器的程序指令执行,所述监视包括捕获mcu的物理属性的信号轨迹,所述信号轨迹泄漏与mcu的程序指令执行相关的信息,所述信号轨迹指示物理属性随时间的值;从信号轨迹提取时域特征、频域特征和梅尔频率倒谱系数(mfcc)特征;基于时域特征、频域特征和mfcc特征,利用用于指令检测的模型来标识执行签名;将执行签名与一个或多个参考指令签名进行比较;以及响应于执行签名未能与所述一个或多个参考指令签名匹配,执行补救动作。
3.根据一个或多个说明性示例,描述了一种用于指令分类和软件入侵检测的系统。所述系统包括测量设备,所述测量设备被配置为经由侧通道信号分析来监视mcu的处理器的程序指令执行,以捕获mcu的物理属性的信号轨迹,所述信号轨迹泄漏与mcu的程序指令执行相关的信息,所述信号轨迹指示物理属性随时间的值,mcu的物理属性包括电压、功率、声音、电磁辐射、振动、光或热中的一个或多个。所述系统进一步包括与测量设备通信的分析设备。分析设备被编程为从测量设备接收从mcu捕获的信号轨迹;从信号轨迹提取时域特征、频域特征和mfcc特征;基于时域特征、频域特征和mfcc特征,利用用于指令检测的模型来标识执行签名;将执行签名与一个或多个参考指令签名进行比较;以及响应于执行签名未能与所述一个或多个参考指令签名匹配,执行补救动作。
4.根据一个或多个说明性示例,一种非暂时性计算机可读介质,包括用于指令分类和软件入侵检测的指令,所述指令当被分析设备执行时,使得所述分析设备执行操作,所述操作包括从测量设备接收mcu的物理属性的信号轨迹,所述信号轨迹泄漏与mcu的程序指令执行相关的信息,所述信号轨迹指示物理属性随时间的值,mcu的物理属性包括电压、功率、声音、电磁辐射、振动、光或热中的一个或多个;从信号轨迹提取时域特征、频域特征和mfcc特征;基于时域特征、频域特征和mfcc特征,利用用于指令检测的模型来标识执行签名;将执行签名与一个或多个参考指令签名进行比较;以及响应于执行签名未能与所述一个或多个参考指令签名匹配,执行补救动作,其中所述补救动作包括重置mcu的缓冲器、重启mcu、利用从只读存储器检索到的mcu的软件的副本来重新刷新(reflash)所述软件、从网络禁用mcu、禁用mcu的中断或停止mcu的执行中的一个或多个。
附图说明
5.图1示出了用于收集包括信息的侧通道泄漏的信号轨迹的示例系统;图2示出了用于关于单个指令生成轨迹数据的示例程序;图3图示了用于在指令检测中训练模型的示例过程;
图4图示了用于创建参考执行签名的示例过程;图5图示了用于在软件入侵检测中使用所述模型的示例过程;和图6图示了示例计算设备。
具体实施方式
6.本文描述了本公开的实施例。然而,应理解,所公开的实施例仅仅是示例,并且其他实施例可以采取各种形式和替代形式。各图不一定是按比例的;一些特征可以被放大或最小化以示出特定组件的细节。因此,本文公开的具体结构和功能细节不应被解释为限制性的,而仅作为用于教导本领域技术人员以不同方式采用实施例的代表性基础。如本领域普通技术人员将理解的,参考任何一图图示和描述的各种特征可以与一个或多个其他图中图示的特征相组合,以产生没有明确图示或描述的实施例。所图示特征的组合为典型应用提供了代表性实施例。然而,与本公开的教导一致的特征的各种组合和修改对于特定的应用或实现可以是期望的。
7.由于汽车微控制器单元(mcu)与内部和外部网络的连接性增强,它们可能是软件或参数修改进行攻击的目标。在汽车领域中,这样的攻击,即使是短时间段的,也可能是严重的。因此,对这样的攻击的运行时检测对于汽车安全和安保至关重要。
8.基于处理器的系统可能经由侧通道泄漏信息。这些侧通道可以包括功耗、电磁放射或甚至音频。本公开涉及一种新颖且非显而易见的技术,该技术捕获信息的这些侧通道泄漏,以改进试图减轻恶意攻击的技术的质量。导线和/或传感器可以用于测量功耗或所考虑的mcu的其他物理属性。在一些实现中,所描述的方法不需要对要测量的设备进行软件或硬件修改。
9.在剖析阶段期间,执行有效的程序来构建其个体签名的数据库。不同的或修改的程序——没有在数据库中进行剖析——理想情况下应该具有不同的特性,并且从而生成不同的签名。验证mcu上运行的程序的有效性的配置文件的签名或特征需要仔细选择,并且即使在有效程序内改变任何单个操作,也应该显著不同。所公开的方法指示了如何计算和选择这样的特征来增加入侵检测系统的效率。
10.在运行时,从实时测量提取签名,并将签名与从在剖析阶段期间取得的训练测量计算的参考执行签名进行比较。通过连续监视被测试的mcu,可以通过与这些执行签名的比较来执行低级别物理运行时入侵检测。
11.应当注意,本文的许多示例讨论了所公开的方法在使用ecu或嵌入式处理器的车辆(这几乎是当今的每一个机动车辆)中的使用。在其他示例中,该方法还可以应用于工业物联网(iot)设备(具有处理器/微控制器),并且一般而言应用于具有执行程序指令的处理器的任何嵌入式系统,其中程序指令执行与程序执行期间处理器消耗的功率相关。还应当注意,虽然本文中的许多示例涉及功耗,但是该类型的分析可以在包括信息的侧通道泄漏的其他类型的轨迹(或轨迹的组合)上进行,所述其他类型的轨迹诸如例如是电磁轨迹、声音轨迹、振动轨迹或由传感器设备测量的任何其他物理测量轨迹。
12.图1示出了用于收集信号轨迹102的示例系统100,该信号轨迹102包括信息的侧通道泄漏。如所示的,测量设备110用于随时间捕获信息,以从电子控制单元(ecu)106的mcu 104收集信息的侧通道泄漏。分析设备114连接到测量设备110。如本文详细解释的,信号轨
迹102被分析设备114用来训练模型112的分类器(剖析),其中一旦被训练,模型112就被用来检测恶意修改(其可能指示安全风险),或者甚至程序的非意图修改(其可能指示安全风险)。例如,模型112可以用于将由mcu 104执行的指令与已知良好软件的所存储执行签名120进行比较。
13.虽然在示例系统100中仅示出了单个mcu 104,但是应当注意,所描述的方法可以应用于单个mcu 104、执行单个任务的mcu 104的集合或者单独操作的多个mcu 104。还应当注意,分析设备114可以对于mcu 104是本地的,或者在其他示例中可以是远程计算系统,诸如信号轨迹102被发送到的车辆中的网关或者车辆外部的远程服务器。进一步应当注意,用于进行模型112的训练的分析设备114和用于在验证期间比较经训练的模型112与测量轨迹的分析设备114可以是不同的设备。
14.在一个示例中,可以通过使用从供应电压引脚108收集的功率侧通道来执行对在mcu 104上运行的高级别指令进行分类的改进且低成本的方式。如所示的,这样的收集的一个示例是通过探测mcu 104的可访问引脚108来实现的。来自mcu 104的两个引脚108(例如,一个vdd、一个i/o)连接到测量设备110(例如,示波器),用于使用功率侧通道进行入侵检测目的。这样的方法利用探测mcu 104以执行mcu 104的物理测量的新方法,其导致指示由于在mcu 104的cpu中运行的特定程序所致的可测量改变的轨迹。
15.测量设备110的其他示例可以包括连接到被测试mcu 104的功率引脚的附加控制器、具有对被测试mcu 104功率引脚访问权的硬件安全模块/在与被测试mcu 104相同的封装中可用的观察。这是重要的,因为许多汽车ecu 106包含多于一个mcu 104在其中,它们中的一个可能是“安全”mcu 104,有时称为硬件安全模块(hsm)。
16.在许多侧通道基于功率的攻击或入侵检测系统中,为了测量功率,在电源与包含mcu 104的ecu 106的供应电压引脚108(vdd)之间插入几欧姆的小电阻器。在汽车mcu 104的情况下,mcu 104通常只是包含其他组件的板的一部分,所述其他组件诸如是adc(模数转换器)、fft(快速傅立叶变换)块、can(控制器局域网)控制器和/或i/o(输入

输出)控制器。第一电压的电源(例如,在许多示例中为12伏)可以用于板,而mcu 104可以流过第二电压(例如,在许多示例中为1.2伏vdd),mcu 104从板上的功率转换器接收该第二电压,该功率转换器将第一电压转换成第二电压。在另一个示例中,mcu 104自己生成第二电压。因此,如果对来自第一电压线的电流和功率进行测量,则该信号将不仅包含来自mcu 104的功耗,而且也还包含来自板上其他组件的功耗。因此,这样的数据将是有噪声的,并且难以用于对由mcu 104正在执行的程序116进行分类。
17.供应给mcu 104的第二电压功率可能难以通过附接直列式分流电阻器来非侵入性地测量。然而,存在可能探测mcu 104的内部第二电压功率轨的一些位置。如果任何程序116由mcu 104运行,则vdd引脚108上的第二电压的任何波动将包含关于与那些程序116相关的动态和静态功耗的信息。因此,代替于使用电阻器来测量功率,可以代之以探测第二电压引脚108来测量由于在mcu 104的cpu中运行的不同指令所致的电压变化。可选地,mcu 104的一个i/o引脚108可以用作外部触发器(非常常见地,不是微控制器的所有i/o引脚108都被使用)。从功率轨迹来知道期望的程序116在哪里开始和结束执行是不简单的。为了该目的,mcu 104可以在程序116执行的开始和结束时切换一个i/o引脚108的状态。因此,如果程序116正在连续运行,则两个接续i/o切换器之间的轨迹将是程序116开始和结束执行的区。与
先前使用串联电阻器测量功率的技术相比,这两种技术——移动到第二电压引脚108以及使用i/o引脚108作为硬件触发器——有助于改进来自侧通道功率信号轨迹102的分类准确度。应当注意,可以使用其他触发器来控制跟踪。例如,信号轨迹102的捕获可以由被监视的mcu 104的一个或多个硬件或软件中断来触发。一个可能的示例可以是由调度器请求的中断,该调度器发起到另一个过程或程序或线程的上下文切换。在中断服务例程中,可以触发外部端口来通知测量设备110关于上下文切换。例如,这将允许对每个过程、程序或线程进行跟踪。
18.如已经指出的,电源电压是mcu 104的物理属性的设备测量的一个示例,其可以用于生成信号轨迹。应该提到的是,也可以使用其他测量和/或其他物理属性,诸如(例如,如使用麦克风测量的)声音、(例如,如使用mems传感器测量的)振动、来自电磁探针的轨迹等等。
19.例如,外部或内部传感器122可以附加地或替代地用于提供另一物理属性的设备测量(例如,声音、温度)来执行初始基线测量(剖析)。该附加的或替代的测量可以被执行以帮助标识在不同的mcu 104指令或功能(即,指令集)的物理属性(例如,功耗、散热、声音等)之中给出最大分离的特征。然后,模型112的分类器(例如,合适的机器学习算法或神经网络)可以针对这些计算的特征被使用,以快速标识运行的指令,并且从而允许快速入侵检测。
20.关于特征提取,包含数千甚至数百万个采样点的信号轨迹102通常太大并且计算上是昂贵的,以至于不能直接馈送至任何分类模型112中。此外,大多数机器学习算法需要预处理来学习关于频率、采样率或关于硬件的其他相关信息的细节。不是使用主成分分析(pca)来盲目地降低数据的维数,而是提取一些有用的特征,使得这些提取的特征用于训练模型112分类器。一些常用的特征是平均轨迹功率、最大功率、最小功率、轨迹的统计属性(诸如标准差、偏斜度、峰度和均方根(rms)功率)。此外,使用诸如频带能量的频域特征,因为一些频率可能与由程序116执行的特定指令或指令集高度相关。
21.该方法使用模型112的分类学习器中的独特特征,其与先前在这些类型的用于入侵检测的系统中使用的特征相比提供了改进的准确度。具体地,所描述的方法使用梅尔频率倒谱系数(mfcc)作为模型112的附加特征,其与当不使用mfcc特征时的情况相比,将若干个机器学习模型112的测试和训练准确度改进了5%

10%。在m. sahidullah等人的文献(m. sahidullah和g. saha,
ꢀ“
design, analysis and experimental evaluation of block

based transformation in mfcc computation for speaker recognition,
”ꢀ
speech communication, vol. 54, no. 4, pp. 543

565, 2012)中详细讨论了mfcc。
22.mfcc主要用于语音信号处理,其中频带在规则的频域中不是等间隔的。相反,频带在梅尔刻度(修改的频域)中是等间隔的,以取得对人类听觉系统的更好表示。即使在所描述的方法中被分析的信号不是语音信号,但是使用mfcc作为特征示出了在分类准确度方面5%

15%的范围上的改进,尤其是对于单个指令分类。在分析了示例测试中的特征之后,标识出仅使用(测试中的13个中的)第10个mfcc有助于超过10%的分类准确度,在考虑到示例测试总共利用了35个特征的情况下,这是重要的。
23.图2示出了用于关于单个指令生成信号轨迹102数据的示例程序116。如所示的,单个指令是“与”指令。使用这样的程序116,可以为“与”指令收集轨迹。在循环中多次使用每
个指令(例如,如所示的五次)的类似程序116也可以用于为其他指令收集轨迹,诸如“相加”、“相乘”、“左移”、“右移”、“或”和“异或”。在这样做时,可以为指令集中的每个收集代表性信号轨迹102。然后,可以提取信号轨迹102的时域特征和频域特征,如本文所讨论的。附加地,还可以计算mfcc特征。
24.在ecu 106在现场中的运行时期间,可以在特定的时间窗口进行侧通道功率测量(或其他物理属性)。然后,从该测量计算特征或执行签名,并将其与在mcu 104上运行的已知程序116的所存储执行签名120进行比较。从该比较中,可以找到当前程序116中运行的指令或功能,并且因此可以在非常低的级别下检测到由于任何恶意软件修改所致的任何非意图指令。通过并入附加的步骤作为补救措施——诸如重置mcu 104的缓冲器、重启mcu 104的处理器、利用从只读存储器检索的软件副本重新刷新mcu 104软件、从网络禁用ecu(mcu 104)直到进一步通知、禁用中断、停止处理器和/或发布警报,入侵检测系统可以相应地有助于防止这样的恶意程序116运行(入侵防止)。
25.诸如具有不同内核的支持向量机(svm)、(深度)神经网络、集成模型、基于树的分类器等分类技术可以用于指令分类,并且从而对软件入侵进行鲁棒检测。
26.针对所描述方法的变型是可能的。作为一种可能的变型,测量可以传输到任何外部专用设备或入侵检测系统(ids),这潜在地更强大和可信。
27.作为另一种可能性,除了对个体指令进行分类,复杂和关键的程序可以作为一个整体进行指纹识别。可以利用该入侵检测方法使这样的敏感应用通过验证步骤,以主动防止任何恶意修改引起的任何威胁。
28.作为又一另外的可能性,可以添加远程数据收集和验证方法。这将有助于不时更新指纹数据库,以跟上由环境改变、过程变化或老化引起的功耗的任何改变。可以添加远程验证方法,当触发该远程验证方法时,将引起执行指令序列以用于指纹识别,并且然后网络入侵检测系统(ids)可以发送响应来证明所有这些指令的有效性。
29.图3图示了用于在指令检测中训练模型112的示例过程300。在示例中,过程300可以在系统100的上下文中由分析设备114执行。
30.在操作302,执行测试程序116。这样的程序116的示例在图2中示出。测试程序116可以由mcu 104的处理器执行。
31.在操作304,监视测试程序116对mcu 104的执行,以捕获mcu 104的操作的执行细节。例如,连接到mcu 104的一个或多个引脚的测量设备110捕获功率轨迹。在一些示例中,可以使用从传感器122接收的数据来执行附加的或替代的物理测量。这些执行细节由分析设备114接收。
32.在操作306,提取特征。在示例中,分析设备114提取特征,所述特征可以包括平均轨迹功率、最大功率、最小功率、轨迹的统计属性(诸如标准差、偏斜度、峰度、rms功率、带能量和mfcc)中的一个或多个。
33.在操作308,模型112被训练。在示例中,分析设备114基于提取的特征和测试程序116的已知指令来训练模型112。在操作308之后,过程300结束。应当注意,过程300可以针对多个测试程序116来执行,以允许增加可能的指令执行情况的覆盖。
34.图4图示了用于创建参考执行签名120的示例过程400。在示例中,如同过程300一样,过程400可以由分析设备114在系统100的上下文中执行。在操作402,执行参考程序116。
具体地,参考程序116可以由mcu 104的处理器执行。
35.在操作404,捕获参考程序116的执行细节。在示例中,并且类似于如以上关于过程300的操作304所讨论的,可以执行mcu 104的物理测量,以生成正被捕获的程序116的执行的信号轨迹102。
36.在操作406,关于程序116的执行创建参考执行签名120。在示例中,(例如,如根据过程300训练的)模型112可以用于使用在操作404捕获的执行细节作为输入来创建执行签名120。在操作406之后,过程400结束。
37.应当注意,在一些示例中,参考执行签名120可以存储在不可篡改的存储装置中,以保证参考执行签名120在它们被用于验证时尚未被修改。不可篡改的存储装置可以经由硬件安全模块、只读存储器中的存储装置、不同设备中的存储装置(被认为是安全的)来提供,以上所有或任何一个与加密签名或消息认证码(mac)相组合,其中私钥或秘密密钥存储在对攻击者不可访问的安全存储器中。
38.图5图示了用于在软件入侵检测中使用模型112的示例过程500。在示例中,如同过程300和400一样,过程500可以由分析设备114在系统100的上下文中执行。
39.在操作502,监视mcu 104的执行,以捕获mcu 104的操作的执行细节。在示例中,并且类似于如以上关于过程300的操作304和306所讨论的,可以执行mcu 104的物理测量和/或可以捕获程序116的执行的信号轨迹102。
40.在操作504,mcu 104的执行的执行签名120被标识。在示例中,并且类似于如以上关于过程400的操作406所讨论的,(例如,如根据过程300训练的)模型112可以用于使用在操作502捕获的执行细节作为输入来创建执行签名120。
41.在操作506,将执行签名120与参考执行签名120进行比较。在操作508,确定执行签名120是否匹配一个或多个参考执行签名120中的参考执行签名120。例如,比较可以包括例如确定执行签名120和参考执行签名120之间的误差量是否在最大容限内。如果是,则控制返回到操作502。否则,控制转到操作510。
42.在操作510,执行补救动作。作为一些示例,补救动作可以包括重置mcu 104的缓冲器、重启mcu 104的处理器、利用从只读存储器检索的软件副本重新刷新mcu 104软件、从网络禁用ecu(mcu 104)直到进一步通知、禁用中断、停止处理器和/或发布警报中的一个或多个。在操作510之后,如果处理器没有停止,则控制转到操作502。否则,过程500结束。
43.图6图示了示例计算设备600。本文讨论的一个或多个实施例的算法和/或方法技术可以使用这样的计算设备来实现。例如,分析设备114可以是这样的计算设备600。在另一个示例中,测量设备110、mcu 104和/或ecu 106可以包括或者是这样的设备。计算设备600可以包括存储器602、处理器604和非易失性存储装置606。处理器604可以包括从高性能计算(hpc)系统中选择的一个或多个设备,包括高性能核心、微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑设备、状态机、逻辑电路、模拟电路、数字电路或基于驻留在存储器602中的计算机可执行指令操纵信号(模拟或数字)的任何其他设备。存储器602可以包括单个存储器设备或多个存储器设备,包括但不限于随机存取存储器(ram)、易失性存储器、非易失性存储器、静态随机存取存储器(sram)、动态随机存取存储器(dram)、闪速存储器、高速缓冲存储器或能够存储信息的任何其他设备。非易失性存储装置606可以包括一个或多个持久数据存储设备,诸如硬盘驱动器、光学驱动
器、磁带驱动器、非易失性固态设备、云存储装置或能够持久存储信息的任何其他设备。
44.处理器604可以被配置为读入存储器602并执行驻留在非易失性存储装置606的程序指令608中并且体现一个或多个实施例的算法和/或方法技术的计算机可执行指令。程序指令608可以包括操作系统和应用。程序指令608可以从使用各种编程语言和/或技术创建的计算机程序进行编译或解释,所述编程语言和/或技术没有限制并且单独或组合地包括java、c、c++、c#、objective c、fortran、pascal、java script、python、perl和pl/sql。
45.在由处理器604执行时,程序指令608的计算机可执行指令可以使得计算设备600实现本文公开的一个或多个算法和/或方法技术。非易失性存储装置606还可以包括支持本文描述的一个或多个实施例的功能、特征和过程的数据610。作为一些示例,该数据610可以包括信号轨迹102、模型112、执行签名120和来自传感器122的数据。
46.本文公开的过程、方法或算法可以被可递送到处理设备、控制器或计算机/由处理设备、控制器或计算机实现,处理设备、控制器或计算机可以包括任何现有的可编程电子控制单元或专用电子控制单元。类似地,过程、方法或算法可以以多种形式存储为可由控制器或计算机执行的数据和指令,包括但不限于永久存储在诸如rom设备的不可写存储介质上的信息和可变更地存储在诸如软盘、磁带、cd、ram设备以及其他磁性和光学介质之类的可写存储介质上的信息。过程、方法或算法也可以在软件可执行对象中实现。替代地,可以使用合适的硬件组件(诸如,专用集成电路(asic)、现场可编程门阵列(fpga)、状态机、控制器)或其他硬件组件或设备,或者硬件、软件和固件组件的组合,来整体或部分地体现过程、方法或算法。
47.虽然上面描述了示例性实施例,但是不意图这些实施例描述权利要求所涵盖的所有可能的形式。说明书中使用的词语是描述性而不是限制性的词语,并且应理解,在不脱离本公开的精神和范围的情况下,可以进行各种改变。如先前所述,各种实施例的特征可以被组合以形成可能没有被明确描述或图示的本发明的另外实施例。虽然各种实施例可能已经被描述为在一个或多个期望的特性方面提供了优于其他实施例或现有技术实现的优点或比其他实施例或现有技术实现优选,但是本领域的普通技术人员认识到,一个或多个特征或特性可以被折衷以实现期望的总体系统属性,这取决于具体的应用和实现。这些属性可以包括但不限于成本、强度、耐用性、生命周期成本、适销性、外观、包装、尺寸、适用性、重量、可制造性、组装容易性等。照此,在任何实施例被描述为在一个或多个特性方面不如其他实施例或现有技术实现合期望的程度上,这些实施例不在本公开的范围之外,并且对于特定应用可以是合期望的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1