用于嵌入式软件应用的基于机器学习的异常检测

文档序号:108386 发布日期:2021-10-15 浏览:24次 >En<

阅读说明:本技术 用于嵌入式软件应用的基于机器学习的异常检测 (Machine learning based anomaly detection for embedded software applications ) 是由 Y·韦勒 G·摩西 于 2019-03-05 设计创作,主要内容包括:系统、方法、逻辑和设备,可以支持用于嵌入式软件应用的基于机器学习的异常检测。在学习阶段,异常模型训练引擎可以构建异常检测模型,并且异常检测模型被配置成基于活动度量输入和应用参数输入来确定嵌入式软件应用是否呈现异常行为。在运行时阶段,异常检测引擎可以对嵌入式软件应用进行采样,以获得在运行时执行期间的活动度量和应用参数,并且提供在运行时执行期间采样的活动度量和采样的应用参数,作为到异常检测模型的输入。异常检测引擎还可以基于针对所提供的输入的来自异常检测模型的输出来确定嵌入式软件应用是否呈现异常行为。(Systems, methods, logic, and devices may support machine learning-based anomaly detection for embedded software applications. In the learning phase, the anomaly model training engine may build an anomaly detection model, and the anomaly detection model is configured to determine whether the embedded software application exhibits anomalous behavior based on the activity metric input and the application parameter input. During the runtime phase, the anomaly detection engine may sample the embedded software application to obtain activity metrics and application parameters during runtime execution and provide the activity metrics and the application parameters sampled during runtime execution as inputs to the anomaly detection model. The anomaly detection engine may also determine whether the embedded software application exhibits anomalous behavior based on output from the anomaly detection model for the provided input.)

用于嵌入式软件应用的基于机器学习的异常检测

技术领域

本申请通常涉及嵌入式软件应用,特别涉及用于嵌入式软件应用的基于机器学习的异常检测。

背景技术

随着技术的不断改进,软件应用变得越来越普遍。嵌入式软件应用可以控制物理系统中的机器或设备,例如汽车、安全系统、家用电器、玩具、数字手表、生物设备等。包括嵌入式软件的嵌入式系统可能成为通过恶意软件、病毒、间谍软件等进行安全攻击的目标。

发明内容

根据本发明的一个方面,提供了一种系统,所述系统包括异常模型训练引擎和异常检测引擎,所述异常模型训练引擎被配置成:在给定采样点处对嵌入式软件应用进行采样,以获得:所述嵌入式软件应用的自先前采样点以来的活动度量;以及在所述给定采样点处的用于所述嵌入式软件应用的应用参数;基于针对所述给定采样点获得的所述活动度量和所述应用参数来生成训练数据;利用所述训练数据来构建异常检测模型,所述异常检测模型被配置成基于活动度量输入和应用参数输入来确定所述嵌入式软件应用是否呈现异常行为;所述异常检测引擎被配置成:在所述嵌入式软件应用的运行时执行期间在所述给定采样点处对所述嵌入式软件应用进行采样,以获得在所述运行时执行期间的活动度量和应用参数;提供在所述运行时执行期间采样的所述活动度量和采样的所述应用参数,作为到所述异常检测模型的输入;以及基于针对所提供输入的来自所述异常检测模型的输出来确定所述嵌入式软件应用是否呈现异常行为。

根据本发明的另一个方面,提供了一种方法,所述方法包括,通过嵌入式系统:在嵌入式软件应用的运行时执行期间在给定采样点处对所述嵌入式软件应用进行采样,以获得在所述运行时执行期间的活动度量和应用参数;在所述运行时执行期间确定所述嵌入式软件应用进入非活动执行时段,并且作为响应:访问异常检测模型,所述异常检测模型被配置成基于活动度量输入和应用参数输入来确定所述嵌入式软件应用是否呈现异常行为;提供在所述运行时执行期间针对所述给定采样点采样的所述活动度量和所述应用参数,作为到所述异常检测模型的输入;以及基于针对所提供的输入的来自所述异常检测模型的输出来确定所述嵌入式软件应用是否呈现异常行为。

根据本发明的又一个方面,提供了一种包括指令的非瞬时性机器可读介质,当所述指令由处理器执行时使得嵌入式系统:在嵌入式软件应用的运行时执行期间在给定采样点处对所述嵌入式软件应用进行采样,以获得在所述运行时执行期间的活动度量和应用参数;在所述运行时执行期间确定所述嵌入式软件应用进入非活动执行时段,并且作为响应:访问异常检测模型,所述异常检测模型被配置成基于活动度量输入和应用参数输入来确定所述嵌入式软件应用是否呈现异常行为;提供在所述运行时执行期间采样的所述活动度量和所述应用参数,作为到所述异常检测模型的输入;以及基于针对所提供的输入的来自所述异常检测模型的输出来确定所述嵌入式软件应用是否呈现异常行为。

附图说明

在下面的详细描述中并参考附图描述了某些示例。

图1示出了系统的示例,该系统支持用于嵌入式软件应用的基于机器学习的异常检测。

图2示出了异常检测模型训练的示例,该异常检测模型训练通过异常模型训练引擎经由机器学习来进行。

图3示出了通过异常模型训练引擎进行的任务特定的异常检测模型的示例性训练。

图4示出了通过异常检测引擎进行的嵌入式应用行为的示例性运行时(run-time)特性。

图5示出了逻辑的示例,其中系统可以实施该逻辑以支持异常检测模型的学习阶段训练。

图6示出了逻辑的示例,其中系统可以实施该逻辑以支持在嵌入式软件的运行时执行期间的异常检测。

图7示出了系统的示例,该系统支持用于嵌入式软件应用的基于机器学习的异常检测。

具体实施方式

下面的讨论涉及嵌入式软件应用(application),该嵌入式软件应用也可以被称为嵌入式软件或嵌入式应用。如本文所使用的,嵌入式软件应用可以指在除了台式计算机或膝上型计算机以外的物理系统上执行的软件。这种物理系统也可以被称为嵌入式系统,并且通常受限于计算和存储器能力。在许多情况下,嵌入式软件应用可以与嵌入式系统的机器或其它物理元件交互,并且嵌入式应用因此可以用于监视或控制车辆、电话、调制解调器、机器人、电器设备、安全系统等中的机器或设备。

本公开可以提供这样的系统、方法、设备和逻辑,其支持经由机器学习来进行的用于嵌入式软件应用的异常检测。如下文更详细地描述的,本文公开的基于机器学习的异常检测特征可以考虑影响嵌入式软件应用的活动(例如,执行时间)的特定应用参数。可以特别地考虑应用参数来对异常检测模型进行训练,并且机器学习模型可以将应用参数与执行活动相关联(例如,如通过指令计数或执行周期测量的那样),以表征正常应用行为和异常应用行为。通过特别地考虑模型训练中的应用参数,本文呈现的基于机器学习的异常检测特征可以提供资源高效机制来跟踪应用行为并识别异常,通过考虑应用上下文影响执行活动的方式来这样做。

本文更详细地描述所公开的基于机器学习的异常检测特征的这些和其它益处。

图1示出了系统100的示例,该系统100支持用于嵌入式软件应用的基于机器学习的异常检测。系统100可以采取各种形式,并且可以包括单个或多个计算设备,例如应用服务器、计算节点、台式计算机或膝上型计算机、智能电话或其它移动设备、平板设备、嵌入式控制器、或包括嵌入式软件的任何硬件部件或物理系统。系统100可以采取具有计算能力的系统的任何形式,其中通过所述计算能力可以训练、使用或以其它方式应用用于嵌入式软件应用的异常检测模型。

如本文更详细描述的,系统100可以支持在学习阶段、运行时阶段或这两者中的基于机器学习的异常检测。在学习阶段,系统100可以根据影响执行活动的不同应用参数使用机器学习来表征嵌入式软件应用的活动。经由机器学习和包含有采样的应用参数和测量的应用活动的训练集,系统100可以构建异常检测模型以检测嵌入式软件应用的异常行为。在运行时阶段,系统100可以访问经训练的异常检测模型,以基于针对采样的运行时应用参数的嵌入式软件应用的经测量的运行时活动来检测异常。因此,系统100可以支持通过经由机器学习构建的异常检测模型来进行的嵌入式软件应用中的异常检测。

可以以各种方式实施系统100以提供本文描述的任何基于机器学习的异常检测特征。作为示例性的实施方式,图1中示出的系统100包括异常模型训练引擎110和异常检测引擎112。系统100可以以各种方式(例如通过硬件和编程方式)来实施引擎110和引擎112(及其部件)。针对引擎110和引擎112的编程可以采用存储在非瞬时性机器可读存储介质上的处理器可执行指令的形式,并且针对引擎110和引擎112的硬件可以包括用于执行这些指令的处理器。处理器可以采用单处理器或多处理器系统的形式,并且在一些示例中,系统100使用相同的计算系统特征或硬件部件(例如,公共处理器或公共存储介质)来实施多个引擎。

在操作中,异常模型训练引擎110可以基于嵌入式软件应用的应用行为利用机器学习来训练异常检测模型。例如,异常模型训练引擎110可以被配置成在给定采样点处对嵌入式软件应用进行采样,以获得(i)嵌入式软件应用的自先前采样点以来的活动度量,和(ii)在给定采样点处的用于嵌入式软件应用的应用参数。异常模型训练引擎110还可以被配置成基于针对给定采样点获得的所述活动度量和应用参数来生成训练数据,并且利用训练数据构建异常检测模型。异常检测模型可以被配置成基于活动度量输入和应用参数输入来确定嵌入式软件应用是否呈现异常行为。

在操作中,异常检测引擎112可以访问异常检测模型,以在嵌入式软件应用的运行时执行期间提供实时的异常检测能力。这种运行时的执行可以指或包括物理系统中的嵌入式软件应用的执行,其中嵌入式软件应用被设计成在该物理系统(例如,医疗设备、飞机控制器、防抱死制动系统等)中操作。在一些实施方式中,异常检测引擎112可以被配置成在嵌入式软件应用的运行时执行期间在采样点处对嵌入式软件应用进行采样,以获得在运行时执行期间的活动度量和应用参数。异常检测引擎112还可以被配置成提供在运行时执行期间采样的活动度量和采样的应用参数,作为到异常检测模型的输入,并且基于针对所提供输入的来自异常检测模型的输出来确定嵌入式软件应用是否呈现异常行为。

下面更详细地描述根据本公开的这些和其它基于机器学习的异常检测特征。特别地,结合图2和图3描述了关于在学习阶段中训练异常检测模型的示例性特征。结合图4描述了关于在运行时阶段中使用异常检测模型来检测异常应用行为的示例性特性。

图2示出了异常检测模型训练的示例,该异常检测模型训练通过异常模型训练引擎110经由机器学习来进行。在学习阶段期间,异常模型训练引擎110可以跟踪嵌入式软件应用的行为并且将跟踪的应用行为处理成训练数据,以训练异常检测模型。

作为例示的示例,图2描绘了嵌入式系统210。嵌入式系统210可以是实施或包括嵌入式软件的任何系统,该嵌入式软件例如包括图2所示的嵌入式软件应用212。在不同的嵌入式系统实施方式中,嵌入式软件应用212的执行可以由不同的计算资源来执行。在一些实例中,嵌入式软件应用212可以通过固件(例如,作为微控制器的部件、片上系统(system-on-a-chip,SoC)或其它硬件的部件)多次实现,其具有有限的存储器或处理器能力。在其它实例中,可以利用仿真或模拟系统来执行嵌入式软件应用212,这在学习阶段期间可能是有利的,因为与实际运行时实施相比,在学习阶段期间嵌入式软件应用212的执行不需要受限于有限的存储器或处理能力。在图2所示的示例中,嵌入式系统210包括仿真器214,该仿真器214可以在用于训练异常检测模型的学习阶段期间实行嵌入式软件应用212的执行。

如本文更详细描述的,异常模型训练引擎110可以经由机器学习来构建异常检测模型。异常检测模型可以将应用行为表征为正常的或异常的。为了训练异常检测模型,异常模型训练引擎110可以在学习阶段在嵌入式软件应用212的执行期间收集应用数据。然后,异常模型训练引擎110可以利用由在嵌入式软件应用212的执行期间采样的应用数据组成的训练数据来训练异常检测模型。

根据本公开,异常模型训练引擎110可以对所选类型的应用数据进行采样以训练异常检测模型。具体地,异常模型训练引擎110可以获得在嵌入式软件应用212的执行期间在各个采样点处的(i)活动度量和(ii)应用参数。

活动度量可以指用于嵌入式软件应用212的活动的可测量量,例如指令计数。为了确定指令计数,异常模型训练引擎110可以通过系统硬件(例如,性能监视器单元)、系统软件(例如,操作系统函数、API等)或这两者的组合来访问所跟踪的指令执行。获得的用于嵌入式软件应用212的指令计数可用作活动指示符,因为指令计数可忽略存储器访问成本和高速缓存(cache)命中率/未命中率,该高速缓存命中率/未命中率将在活动度量中引入随机变化并降低经训练的异常检测模型的准确性。异常模型训练引擎110可以获得的另一示例性活动度量是应用执行时间。为了测量执行时间,异常模型训练引擎110可以访问CPU内核的周期计数器或利用系统驱动器来提取嵌入式软件应用212的不同执行点之间的周期数据。

通过确定不同执行点处的活动度量,异常模型训练引擎110可以获得正常行为(即,不受恶意软件入侵影响的执行)期间的嵌入式软件应用212的应用活动的定量测量。然而,执行时间、指令计数和仅仅是定量活动度量可能展现嵌入式软件执行的不完整图片。执行活动可以根据嵌入式软件应用212的执行上下文而增加或减少,并且相同的软件操作、任务或执行线程可以基于在执行期间可应用的应用参数而具有(明显)不同的执行时间。可能影响采样的活动度量的示例性应用参数包括存储器条件、输入数据大小、输入数据内容(例如,高分辨率数据与低分辨率数据)、应用控制参数(例如,高精度和低精度操作模式)、系统功率约束等。

为了考虑这些变化,异常模型训练引擎110还可以针对可应用于采样的活动度量的应用参数对嵌入式软件应用212进行采样。应用参数可以指影响嵌入式软件应用212的执行的任何系统、应用或全局参数。异常模型训练引擎110可以以各种方式对嵌入式软件应用212的应用参数进行采样。例如,异常模型训练引擎110可以访问分配给应用任务或线程的静态存储器,以获得用于嵌入式软件应用212的特定应用任务或线程的存储参数。附加地或可替代地,异常模型检测可以访问存储在全局存储器中的全局变量,或者获得可应用于嵌入式系统210、嵌入式软件应用212或这两者的组合的长期状态值。

在一些实施方式中,异常模型训练引擎110可以实施参数访问函数,通过该参数访问函数,嵌入式软件应用212本身可以在采样期间提供可应用的应用参数。实施的参数访问函数可以采用API的形式,以非侵入式或非破坏性的方式提取应用参数。为了说明,嵌入式系统可以将输入数据或操作参数(例如,如由嵌入式软件应用212接收的输入通信帧中指定的那样)存储在通信控制器存储器、系统寄存器或先进先出(FIFO)队列中。对这种存储器结构的存储器读取访问将是破坏性操作和/或在没有驱动器级别优先级的情况下不可访问的。因此,由异常模型训练引擎110提供的参数访问函数可以在嵌入式软件应用212的执行期间提供非破坏性机制来对相关应用参数进行采样。

作为另一实施方式特征,异常模型训练引擎110可以对提供给嵌入式软件应用212的输入数据进行预处理,以提取可应用的应用参数。例如,异常模型训练引擎110可以以图像或视频文件的形式对输入进行预处理,以将异常模型训练引擎110可以获得的文件指示符、数据模式或多媒体特性确定为在所选采样点处的用于嵌入式软件应用212的采样的应用参数。

在本文描述的各种方式中,异常模型训练引擎110可以在嵌入式软件应用212的执行期间对活动度量和应用参数进行采样。可以由异常模型训练引擎110预先选择对活动度量和应用参数进行采样的特定执行点。为了帮助解释这些特征,在图2中示出了执行时间线220以例示不同的采样点,其中在所述不同的采样点处异常模型训练引擎110可以在嵌入式软件应用212的仿真执行期间对应用数据进行采样。如执行时间线220中所示,异常模型训练引擎110可选择采样点s1、s2、s3和s4,其中在采样点s1、s2、s3和s4处对嵌入式软件应用212进行采样以获得活动度量和应用参数。

在每个所选择的采样点s1、s2、s3和s4处,异常模型训练引擎110可以获得活动度量(例如,自先前采样点以来的应用活动的指示)以及可应用于该采样点的应用参数。因此,在采样点s2处,异常模型训练引擎110可以确定自先前采样点s1以来的活动度量(例如,嵌入式软件应用212的执行指令计数)以及在采样点s2处的有效应用参数。在图2中,异常模型训练引擎110获得在所描绘的采样点s1、s2、s3和s4处从嵌入式软件应用212采样的活动度量231和应用参数232的集合。

在一些实施方式中,异常模型训练引擎110为嵌入式软件应用212选择采样点,以覆盖嵌入式软件应用212的活动执行时段。图2中的执行时间线220示出了嵌入式软件应用212处于活动状态(active)的不同时间,其被描绘为沿着执行时间线220的利用对角线图案化的部分(其也可以被称为活动执行时段)。当嵌入式系统的一些或全部计算资源被活动地用于执行嵌入式软件应用212时,可以将嵌入式软件应用212称为活动的。当计算嵌入式系统的资源或未被使用或空闲时,可以将嵌入式软件应用212称为非活动(或空闲)的。

在许多嵌入式系统中,嵌入式软件被设计成接收输入、处理该输入并且生成输出。嵌入式软件应用通常用于物理系统中以监视系统部件,并且所监视的输入可能出现在这种物理系统的操作期间(例如,感测特定信号、接收要处理的数据文件等)。嵌入式软件的有效执行时段可以包括接收到输入之后的时间以及处理输入直到生成对应输出的时段。在生成输出之后,嵌入式软件可以变为非活动状态,直到接收到后续输入。

在图2的执行时间线220中例示了嵌入式软件应用212的活动执行时段和非活动执行时段的示例性序列。在采样点s1,嵌入式软件应用212可以响应于接收到输入而变为活动的(或者换句话说,进入活动执行时段)。当生成输出(未示出)时,嵌入式软件应用212可保持活动的直到采样点s2。从采样点s2至采样点s3,嵌入式软件应用212可以处于非活动执行时段,并且从采样点s3至采样点s4恢复成活动执行,以处理在采样点s3处接收的输入。

异常模型训练引擎110可以响应于嵌入式软件应用212变为活动的、非活动的或这两者来确定对嵌入式软件应用212进行采样。换句话说,异常模型训练引擎110可以选择采样点,使得响应于接收的输入、生成的输出或这两者的组合对嵌入式软件应用212进行采样。换句话说,异常模型训练引擎110可以以获得针对给定活动执行周期的活动度量以及获得针对每个给定活动执行周期的可应用的应用参数的方式对嵌入式软件应用212进行采样。(异常模型训练引擎110还可以在任务特定的基础上对嵌入式软件应用212进行采样,如下面关于图3更详细描述的那样)。以这种方式,异常模型训练引擎110可以选择采样点,其中在该采样点处对嵌入式软件应用212进行采样以获得活动度量和应用参数。

根据采样的活动度量和采样的应用参数,异常模型训练引擎110可以构建训练数据,以训练异常检测模型。在图2中,异常模型训练引擎110生成训练数据240,异常模型训练引擎110可构建为包括从嵌入式软件应用212采样的活动度量231和应用参数232中的一些或全部。在一些实例中,异常模型训练引擎110可以过滤经采样的应用参数232,以确定相关应用参数(例如,最影响嵌入式软件的应用活动的应用参数)的选定子集。实际上,异常模型训练引擎110可以执行参数选择处理过程以选择相关的机器学习特征来训练异常检测模型。在执行参数选择处理的过程中,异常模型训练引擎110可以采用统计相关技术、一致性校验或这两者的组合来确定表征应用活动的应用参数的特定子集。

异常模型训练引擎110可以利用准备的训练数据240来构建异常检测模型。在图2中,异常模型训练引擎110提供训练数据240作为训练集以训练异常检测模型250。为了训练异常检测模型250,异常模型训练引擎110可以利用任意数量的机器学习技术。例如,异常检测模型250可以实施任意数量的监督的、半监督的、非监督的或增强的学习模型,以基于采样的活动度量和采样的应用参数来表征嵌入式软件应用的行为。异常检测模型250可以包括支持向量机、马尔可夫链(Markov chain)、上下文树、神经网络、贝叶斯网络(Bayesiannetwork)或各种其它机器学习组件。

具体地,异常模型训练引擎110可以构建异常检测模型250,以基于活动度量输入和应用参数输入来确定嵌入式软件应用是否呈现异常行为。在一些实施方式中,异常检测模型250可以采取支持向量机(SVM)的形式,并且针对活动度量输入和应用参数输入提供异常确定。

由异常检测模型250提供的输出可以是指示异常检测模型250是否已识别嵌入式软件应用212的异常行为的二进制值。在其它示例中,异常检测模型250可以提供所提供的活动度量输入和应用参数输入指示异常应用行为的概率值。作为又一示例,异常模型训练引擎110可以提供用于应用参数输入的预测活动度量,通过该预测活动度量,可以基于与从嵌入式软件采样的运行时活动度量的比较来检测异常应用行为。可以经由异常检测模型250来设想任何这种异常检测技术,并且在下面关于图4进一步讨论。

如上所述,异常模型训练引擎110可以根据从嵌入式软件应用212采样的应用数据来构建异常检测模型250。在图2的示例中,异常模型训练引擎110利用在执行期间采样的活动度量和应用参数来训练异常检测模型250。在一些实施方式中,异常模型训练引擎110可以以比一般应用行为更精细的粒度来对应用数据(具体地,活动度量和应用参数)进行采样并训练异常检测模型。例如,异常模型训练引擎110可以采样并将任务特定的行为表征为正常的或异常的。下面将针对图3讨论这些特征。

图3示出了通过异常模型训练引擎110进行的任务特定的异常检测模型的示例性训练。应用任务(也称为任务、执行线程或应用线程)可以指用于执行任务特定或由嵌入式软件的实例产生的其它任务的嵌入式软件的任何执行序列(例如初始化线程)。应用任务还可以指可由调度器或其它操作系统逻辑管理的编程的指令序列。嵌入式软件的执行可包括多个活动任务执行,其可以涉及上下文切换、抢占(preemption)和不同应用任务的执行序列之间的其它中断。异常模型训练引擎110可在任务特定的基础上训练异常检测模型,这可以支持在任务特定的基础上的正常或异常嵌入式应用行为的表征。

为了说明,图3描绘了图2中描述的嵌入式系统210,该嵌入式系统210包括嵌入式软件应用212和在学习阶段期间用于仿真的应用执行的仿真器214。同样如图3所示,执行时间线320的示例描绘了被执行为嵌入式软件应用212的一部分的多个不同任务。在执行时间线320中,标记为任务A的应用任务被示出为在沿着执行时间线320的利用对角线图案化的部分(也称为针对任务A有效的执行时段)中有效。在执行时间线320中也示出了标记为任务B的另一应用任务,该应用任务被示出为在沿着执行时间线320的利用竖直线图案化的部分中有效。

异常模型训练引擎110可以在足够的采样点处对嵌入式软件应用212进行采样,以针对给定应用任务确定从任务开始到任务完成的活动度量和应用参数,即使当给定应用任务的执行被其它应用任务抢占时也是如此。为此,异常模型训练引擎110可以在给定应用任务开始、暂停(例如,由于抢占或上下文切换)或完成的执行点处对嵌入式软件应用212进行采样。在图3所示的示例中,执行时间线320描绘了采样点s1、s2、s3、s4、s5、s6和s7,其中在这些采样点处,异常模型训练引擎110对嵌入式软件应用212进行采样以获得任务A和任务B的活动度量和应用参数。

在图3所示的示例中,响应于接收到特定于任务A的应用输入(在执行时间线320中标记为输入(A)),开始执行任务A。同样在该示例中,嵌入式软件应用的任务B在优先级上更高,并且抢占任务A的执行。响应于由嵌入式软件应用212接收到特定于任务B的输入(在执行时间线320中标记为输入(B)),开始执行任务B。因此,从采样点s1(当响应于输入(A)开始执行任务A时)到采样点s6(当任务A的执行完成时),任务B的两个执行实例抢占任务A的执行。如图3中所示,异常模型训练引擎110可以在以下特定执行点处对嵌入式软件应用212进行采样:当任务A开始时(采样点s1和s7)、当任务B开始时(采样点s2和s4)、任务A被抢占时(也是采样点s2和s4)、当任务B完成时(采样点s3和s5)、当任务A恢复(也是采样点s3和s5)时、以及当任务A完成(采样点s6)时。

通过在不同的任务开始点、暂停点或停止点对嵌入式软件应用212进行采样,异常模型训练引擎110可以确定用于整个任务A的活动度量,即使任务A在多个执行点处被任务B的执行实例抢占。在图3中,异常模型训练引擎110在执行时间线320期间从嵌入式软件应用212对活动度量331和应用参数332进行采样。采样的活动度量331可以包括针对任务B的至少两个活动度量,一个针对从采样点s2到s3执行的任务B的实例,一个针对从采样点s4到s5执行的任务B的实例。采样的应用参数332可以包括用于任务B的至少两组应用参数,一组应用参数可应用于任务B的每个执行实例。此外,异常模型训练引擎110可以获得针对在采样点s1开始并在s6完成的任务A的执行实例的活动度量,其中异常模型训练引擎110可将该活动度量确定为从s1到s2、从s3到s4和从s5到s6采样的活动度量的总和。以类似的方式,异常模型训练引擎110可以针对活动度量总和确定可应用于任务A的特定应用参数。

因此,异常模型训练引擎110可以在基于任务特定的不同的执行点处对嵌入式软件应用212进行采样。这样做时,异常模型训练引擎110可以识别由嵌入式软件应用212在给定采样点(例如,任务A直到采样点s2之前一直是活动的)处执行的给定应用任务。在采样期间的“活动的”应用任务的识别可能涉及访问指示当前线程、当前任务、当前进程或其它系统指示符的OS系统参数。

异常模型训练引擎110还可以具体地构建训练集,该训练集在针对不同应用任务进行采样的应用数据之间进行区分。在图3中,异常模型训练引擎110根据采样的活动度量331和采样的应用参数332来准备训练数据340。可以生成训练数据340以包括在任务特定的基础上区分的多个不同训练集。在这方面,训练数据340可以包括用于嵌入式软件应用212的任务A和任务B的不同训练集。

异常模型训练引擎110可以构建异常检测模型250以包括多个任务特定的异常检测模型,诸如图3中示出为模型351和352的针对任务A和任务B的任务特定的异常检测模型。在这方面,异常模型训练引擎110可提供给定的任务特定的训练数据集合,以训练给定的任务特定的异常检测模式,并且多个任务特定的异常检测模型的训练可支持基于任务特定的异常应用行为的表征。在一些实施方式中,异常模型训练引擎110可以将异常检测模型250构建为多个任务特定的异常检测模型,例如,用于由嵌入式软件应用212支持的一些或所有应用任务中的每一个的不同模型。

为了进一步说明,任务特定的异常检测模型351和352可以提供应用行为的任务特定的表征。例如,任务A异常检测模型351可以提供特定于嵌入式软件应用212的任务A的异常行为确定,基于特定于任务A的活动度量输入和应用参数输入来这样做。以类似的方式,任务B异常检测模型352可以提供特定于嵌入式软件应用212的任务B的异常行为确定。由于通过异常模型训练引擎110训练的给定的任务特定的异常检测模型可以利用应用于给定任务的应用参数进行具体地训练,因此可以针对在任务特定的基础上影响嵌入式软件应用212的执行活动的任务特定上下文,对经训练的任务特定的异常检测模型进行具体地定制。

在上述任意的方式中,异常模型训练引擎110可以支持异常检测模型在学习阶段的训练。具体地,异常模型训练引擎110可以使用机器学习来训练被配置为表征嵌入式应用行为的异常检测模型,这样做考虑了在嵌入式软件执行期间可应用的特定应用参数。可以在运行时阶段访问并使用经训练的异常检测模型,以检测嵌入式软件应用的异常行为,如下面关于图4所描述的。

图4示出了通过异常检测引擎112进行的嵌入式应用行为的示例性运行时特性。在图4中,嵌入式系统410的示例被实施为物理系统的一部分,例如为罐式车的制动部件。尽管分开例示,但异常检测引擎112和异常检测模型250也可以是嵌入式系统410的一部分,例如共享公共计算资源(例如存储器或一个或多个处理器)。

嵌入式系统410可以包括嵌入到硬件部件412(例如,嵌入式控制器)中的嵌入式软件应用212。在图4中,硬件部件412与罐式车的防抱死制动传感器414通信,然而设想在物理系统中几乎无限制的其它应用。在图4所示的示例中,硬件部件412可以执行嵌入式软件应用212以监视由防抱死制动传感器414感测到的制动状况(到嵌入式软件应用212的输入),并基于感测到的状况生成输出。罐式车中的这种实际操作可以被表征为嵌入式软件应用212(例如,在物理系统内,嵌入式软件应用212被设计成在其中操作)的运行时执行。

同样如图4所示,异常检测引擎112可以在运行时执行期间监视嵌入式软件应用212的行为。为此,异常检测引擎112可以在学习阶段期间(例如,如上所述)访问针对嵌入式软件应用212训练的异常检测模型250。异常检测引擎112可以在选定的采样点处对嵌入式软件应用212进行采样,以获得活动度量和应用参数,包括基于任务特定的活动度量和应用参数。异常检测引擎112可以以与异常模型训练引擎110一致的方式对嵌入式软件应用212进行采样,包括根据本文(例如,在图2和图3中)描述的任何采样点选择特征。可以将采样的活动度量和采样的应用参数作为输入提供给异常检测模型250,通过异常检测模型250可以产生异常行为确定。

为了通过图4进行说明,示出了在嵌入式软件应用212的运行时执行期间的示例性执行时间线420。在执行时间线420中,嵌入式软件应用212的任务A在沿着执行时间线420的利用对角线图案化的部分中被示出为活动的。还在执行时间线420中通过沿着执行时间线420的利用竖直线图案化的部分示出任务B的活动执行时段。异常检测引擎112可以在运行时执行期间在多个采样点处对嵌入式软件应用进行采样,包括在应用任务开始、暂停(例如,被抢占)或完成的任何执行点处。如图4所示,异常检测引擎112在执行时间线420的采样点s1、s2、s3和s4处对嵌入式软件应用212进行采样。

异常检测引擎112可以获得针对嵌入式软件应用212的特定于对嵌入式软件应用212进行采样的执行点的活动度量431和应用参数432。采样的活动度量431和采样的应用参数432可以是任务特定的,例如包括用于任务B的从采样点s2到s3的指令计数或其它活动度量以及任务B特定的从采样点s2到s3的应用参数。以一致的方式,采样的活动度量431可以包括针对任务A的从采样点s1到s2和s3到s4的总活动度量以及在任务A的该活动执行时段期间有效的应用参数。

在一些实施方式中,异常检测引擎112对嵌入式软件应用212进行采样,以获得与用于训练异常检测模型250的特征一致的应用参数。这样做,异常检测引擎112可以对由嵌入式软件应用212或对应的应用任务使用的应用参数的选定子集进行采样。由异常检测引擎112采样的应用参数的选定子集可以与由异常模型训练引擎110从参数选择处理过程确定的应用参数的选定子集相同(其可以在任务特定的基础上执行)。换句话说,异常检测引擎112可以对用于训练异常检测模型250、351或352的应用参数的特定子集(例如,任务特定的)进行采样,而不必对未用于训练这些模型的其它应用参数进行采样。

异常检测引擎112可以提供采样的活动度量431和采样的应用参数432作为到异常检测模型250的输入,以表征嵌入式软件应用212的应用行为。对于任务特定的特性,异常检测引擎112可以在多个任务特定的异常检测模型(例如,351和352)中进行选择以用于在采样点s1至s2和s3至s4处的采样的活动度量431和采样的应用参数432。异常检测引擎112可以基于由嵌入式软件应用212在多个采样点处执行的给定应用任务来这样做,例如,通过提供用于任务A的采样的活动度量和采样的应用参数作为对任务A异常检测模型351的输入,并将用于任务B的采样的活动度量和采样的应用参数提供给任务B异常检测模型352来进行。

异常检测模型250可以提供根据输入活动度量431和应用参数432生成的异常行为确定460。异常行为确定460可以采取由异常检测模型250(包括任务特定的异常检测模型351和352)支持的任意类型的输出的形式。示例性输出包括指示正常或异常应用行为、异常概率等的二进制值输出,其中任何一者可以是任务特定于。因此,异常行为确定460可以包括任务特定的输出,每个任务特定的输出可以表征嵌入式软件应用212的任务特定行为是否异常,并且基于具体采样的应用参数来这样做。在图4的示例中,异常行为确定460可提供关于任务A和任务B的采样应用行为是否被表征为异常的单独指示。

在一些实施方式中,异常检测引擎112可以在嵌入式软件应用212的非活动执行时段期间访问异常检测模型250。嵌入式系统410可以具有有限的计算/存储器资源或者受到精确的时序约束。为了减少用于异常检测的定时干扰或资源开销,异常检测引擎112可以在运行时执行期间确定嵌入式软件应用212(例如,在采样点s4处)进入非活动执行时段。响应于该确定,异常检测引擎112可以向异常检测模型250提供采样的输入(例如,采样的活动度量431和采样的应用参数432),并且确定嵌入式软件应用212在非活动执行时段期间(例如,在采样点s4之后)是否呈现嵌入式软件应用212的异常行为。

异常检测引擎112可以基于异常行为确定260来确定嵌入式软件应用212呈现异常行为,异常行为确定260可以包括识别具有异常活动的一个或多个特定应用任务。一旦检测到异常行为,异常检测引擎112可以例如向物理系统的中央监控系统、系统操作系统或被配置为监视物理系统支持的嵌入式软件应用212的操作的其它逻辑实体提供异常警报。因此,异常检测引擎112可以支持在嵌入式软件的运行时执行期间检测异常应用活动。

如本文所述,可以在学习阶段和运行时间阶段中提供基于机器学习的异常检测特征。通过特别地利用活动度量和应用参数两者对模型进行采样和训练,本文描述的基于机器学习的异常检测特征可以提供有效和准确的机制,通过该机制可以识别嵌入式软件中的异常活动。通过学习基于这些采样的方面的应用行为,异常模型训练引擎110和异常检测引擎112可以识别与恶意软件如何渗透系统无关的异常行为(例如,不需要识别入侵的形式),并且可以进一步支持对未识别的或先前未知的恶意软件的检测。由于活动度量与应用参数相关,因此本文描述的基于机器学习的异常检测特征不需要具有恶意软件的特定攻击模式或特性的先验知识。因此,本文描述的特征可以提供具有提高的有效性和鲁棒性的应用安全性。此外,任务特定的异常经由任务特定的模型来支持,这可以在识别恶意软件入侵时提供更大的粒度和灵活性。

图5示出了逻辑500的示例,其中系统可以实施该逻辑以支持异常检测模型的学习阶段训练。例如,系统100可以将逻辑500实施为硬件、存储在机器可读介质上的可执行指令或这两者的组合。系统100可以经由异常模型训练引擎110来实施逻辑500,系统100可通过异常模型训练引擎110来执行或进行逻辑500,作为使用机器学习来训练用于嵌入式软件应用的异常检测模型的方法。利用异常模型训练引擎110作为实施示例来提供逻辑500的以下描述。然而,系统100的各种其它实施选项也是可行的。

在实施逻辑500时,异常模型训练引擎110可以在选定的采样点处对嵌入式软件应用进行采样,以获得嵌入式软件应用的活动度量和应用参数(502)。异常模型训练引擎110还可以基于针对选定的采样点获得的活动度量和应用参数来生成训练数据(504),并且利用训练数据来构建异常检测模型(506)。异常模型训练引擎110可以以本文描述的各种方式中的任意一者(包括基于任务特定的方式)来执行所描述的步骤502、步骤504和步骤506。以这种方式,异常模型训练引擎110可以训练异常检测模型,其中该异常检测模型被配置成基于活动度量输入和应用参数输入来确定嵌入式软件应用是否呈现异常行为。

图6示出了逻辑600的示例,其中系统可以实施该逻辑以支持在嵌入式软件的运行时执行期间的异常检测。例如,系统100可以将逻辑600实现为硬件、存储在机器可读介质上的可执行指令或这两者的组合。系统100可以经由异常检测引擎112实施逻辑600,系统100可以通过异常检测引擎112来执行或进行逻辑600,作为在嵌入式软件应用的运行时执行期间检测异常行为的方法。利用异常检测引擎112作为实施示例来提供逻辑600的以下描述。然而,系统100的各种其它实施选项也是可行的。

在实施逻辑600时,异常检测引擎112可以在嵌入式软件应用的运行时执行期间在采样点处对嵌入式软件应用进行采样(602)。这样做,异常检测引擎112可以获得在运行时执行期间的活动度量和应用参数。然后,异常检测引擎112可以在运行时执行期间确定嵌入式软件应用进入非活动执行时段(604),例如通过确定嵌入式软件应用完成调度的应用任务的执行或者通过识别嵌入式系统的计算资源已经空闲或非活动来确定嵌入式软件应用进入非活动执行时段。

响应于确定嵌入式软件应用已进入非活动执行时段,异常检测引擎112可以访问针对嵌入式软件训练的异常检测模型(606),并且提供在运行时执行期间采样的活动度量和采样的应用参数,作为到异常检测模型的输入(608)。异常检测引擎112还可以基于针对所提供的输入的来自异常检测模型的输出来确定嵌入式软件应用是否呈现异常行为(610)。

异常检测引擎112可以以本文描述的各种方式中的任意一者(包括基于任务特定的方式)来执行所描述的步骤602、步骤604、步骤606、步骤608和步骤610。以这种方式,异常检测引擎112可以在嵌入式软件应用的运行时执行期间检测异常应用行为。

图5和图6所示的逻辑提供了系统可以通过该逻辑支持用于嵌入式软件应用的基于机器学习的异常检测的示例。本文设想在逻辑500和/或逻辑600中具附加的或可替代的步骤,包括根据本文中描述的用于异常模型训练引擎110、异常检测引擎112或这两者的组合的任何特征。

图7示出了支持用于嵌入式软件应用的基于机器学习的异常检测的系统700的示例。系统700可以包括处理器710,处理器710可以采用单个或多个处理器的形式。一个或多个处理器710可以包括中央处理单元、微处理器或适合于执行存储在机器可读介质上的指令的任何硬件设备。系统700可以包括机器可读介质720。机器可读介质720可以采用存储可执行指令的任何非瞬时性电子、磁性、光学或其它物理存储设备的形式,所述可执行指令诸如图7中所示的异常模型训练指令722和异常检测指令724。因此,机器可读介质720可以是例如随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM))、闪存、自旋转移转矩存储器、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。

系统700可以通过处理器710执行存储在机器可读介质720上的指令。执行指令(例如,异常模型训练指令722和异常检测指令724)可以使系统700执行本文描述的任何基于机器学习的异常检测特征,包括根据关于异常模型训练引擎110、异常检测引擎112或这两者的组合的任何特征。

例如,通过处理器710执行异常模型训练指令722可以使得系统700在给定采样点处对嵌入式软件应用进行采样,以获得嵌入式软件应用的自先前采样点以来的活动度量以及在给定采样点处的用于嵌入式软件应用的应用参数。通过处理器710执行异常模型训练指令722还可使得系统700基于针对给定采样点获得的活动度量和应用参数来生成训练数据,并且利用训练数据来构建异常检测模型。所构建的异常检测模型可以被配置成基于活动度量输入和应用参数输入来确定嵌入式软件应用是否呈现异常行为。

通过处理器710执行异常检测指令724可以使得系统700在嵌入式软件应用的运行时执行期间在给定采样点处对嵌入式软件应用进行采样,以获得在运行时执行期间的活动度量和应用参数,并且在运行时执行期间确定嵌入式软件应用进入非活动执行时段。通过处理器710执行异常检测指令724,作为响应还可以使得系统700:访问异常检测模型,所述异常检测模型被配置成基于活动度量输入和应用参数输入来确定嵌入式软件应用是否呈现异常行为;提供在运行时执行期间采样的活动度量和采样的应用参数,作为到异常检测模型的输入;以及基于针对所提供的输入的来自异常检测模型的输出来确定嵌入式软件应用是否呈现异常行为。

可以经由异常模型训练指令722、异常检测指令724或这两者的组合来实施如本文所述的任何附加的或可替代的特征。

上述的系统、方法、设备和逻辑,包括异常模型训练引擎110和异常检测引擎112,可以以多种不同的方式以多种不同的硬件、逻辑、电路以及存储在机器可读介质上的可执行指令的组合来实施。例如,异常模型训练引擎110、异常检测引擎112或其组合可以包括控制器、微处理器或专用集成电路(ASIC)中的电路,或者可以用分立逻辑或组件来实施,或者可以用组合在单个集成电路上或分布在多个集成电路之间的其它类型的模拟或数字电路的组合来实施。诸如计算机程序产品之类的产品可以包括存储介质和存储在该介质上的机器可读指令,当在端点、计算机系统或其它设备中执行时,该存储介质和机器可读指令使得该设备执行根据以上描述中的任一者(包括根据异常模型训练引擎110、异常检测引擎112或其组合的任何特征)来执行操作。

本文描述的系统、设备和引擎(包括异常模型训练引擎110和异常检测引擎112)的处理能力,可以分布在多个系统部件之间,例如在多个处理器和存储器之间,可选地包括多个分布式处理系统或云端/网络元件。参数、数据库和其它数据结构可以被分开存储和管理,可以被合并到单个存储器或数据库中,可以以许多不同的方式被逻辑地和物理地组织,并且可以以包括有数据结构(例如链表)、哈希表或者隐式存储机制的多种方式来实施。程序可以是单个程序的组成部分(例如子例程)、分开的程序,分布在多个存储器和处理器上,或以多种不同的方式(例如库(例如共享库))来实施。

尽管上面已经描述了各个示例,但是更多的实施方式也是可行的。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:SSD中数据的选择性擦除

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类