Prediction of Abnormal Temporal Behavior in Real-Time Systems

betball贝博app 日记 425 次浏览 没有评论

确保实时系统和安全关键系统的稳定越来越成为严峻的挑战,尤其因为这些系统的相互连接性越来越高,例如经受很多新型和严重安全攻击的自动驾驶汽车。实时操作系统的主要特色是他们拥有严格的时间机制,这些机制可以确保系统的正确性。在本文中,我们使用从系统安全所需的时序分析导出的时间特性,以便检测系统的错误行为,并改进其相应的安全特征。为了完成该项目,我们定义了时间界限来判断程序的运行状态是否正常。此外,我们提出了在实时系统中使用指定配置的预测方案。

计算机操作系统是物联元件和计算元件的结合体。这些系统往往被时间约束,现在大多用于嵌入式设备。但是,大部分的这些系统经常会遭受到诸如汽车系统的代码注入的漏洞,无人机的欺骗攻击,甚至攻击飞机。因此为这些系统提出一种专门的保护机制来保障安全变得尤为重要,尤其对于攻击会导致严重问题的场合。

实时应用的最主要的特点之一是他们具有严格的时序性,在本项目中,我们使用限制时间的方法来判断代码是否跑飞和并且增强其安全性。安全关键系统的时间状态可以被视为该系统受到多种攻击的一种预测机制,目的是提供非正常行为的早期预测从而能够为该系统提供预警并且为修复工作的进行提供了可能。对于安全关键系统来说,子系统的跑飞或者未知的停止工作可能会对整个系统产生很严重的后果,所以有效的反馈显得尤为重要。比如对于车辆来说,因为车辆可能会进入不稳定状态所以传统的方式来检测未知任务的方法可能并不奏效。进一步的说,因为需要大量的高额开销,基于通用机制比如系统调用或者控制流图来探测恶意程序对于实时系统并不奏效。

本文中为每一个任务都定义了一个时间阈值,由此,对于异常的行为,可以通过是否违反了预先定义的时间阈值来进行判断。由此可以给系统预测恶意程序的能力。系统可以在时间界限之前获得预警。这也给修复动作提供了足够有效的时间。我们发表了基于我们定义设置的RTOS的预测时间表。

  • 4.实时系统中的红区边界
  • 4.1响应时间设置
  • 4.1.1 定义异常行为和开始检测边界(MP)
  • 2.实时操作系统的特性

    实时操作系统的正确性不仅仅需要看函数计算的正误,还要看计算该结果需要的时间。计算的太慢可能就会变得毫无用处甚至很危险。由此,实时操作系统的表现需要针对时间阈值来设计来确保当计算结果被使用时是有效的。时间分析经常被用来提供任务执行和反馈的安全边界,由此来覆盖所有的最大最小可能的执行结果。

    2.1实时任务


    实时任务的计时属性。虚线矩形代表SSP的影响,τ1(最高优先级)接管之前CPU分配给τ3(最低优先级),从而打断其执行

    如图一所示,实时任务往往被定义了一系列的执行需求,每一个任务τ被定义了一个优先级π,如果一个任务被周期性激活则称之为周期任务,反之则为零星任务。β用来代表连续两次激活的最短时间。τ的每一个实例被称之为一个过程(job),当τ的一个过程(job)被激活并准备执行时,他就会被CPU分配C时间段的资源来执行。通过分析最坏执行时间分析,可以得到执行时间的上限。

    实时任务的执行时间被精确计算从而可以确保系统的稳定,给每个任务完成其运行任务的最长时间被称为最终时间(deadline)Di.通过错过截止时间(deadline)后的后果可以区分软实时系统和硬实时系统。在软实时系统中(车载媒体播放器),错过截止时间可以被接受;反之,比如安全气囊装置为硬实时系统,所有的任务必须在截止时间前完成,错过了可能将引起灾难性问题。

    2.2最差情况执行时间(WCET)

    任务最坏情况执行时间(WCET)的推导是实时系统性能验证的首要问题。任务的WCET取决于任务工作流和执行任务的平台体系结构[30]。可以使用静态分析方法[13,29]独立地为每个任务导出这些指标,以便在考虑到(抽象的)硬件体系结构模型的情况下分析任务中可能的控制流路径集。这些方法计算任务的最佳执行时间(BCET)和WCET,确保执行时间的确定。

    2.3 最差情况响应时间

    实时任务之间共享相同的硬件资源和不同的优先级策略,静态优先级调度策略是众所周知的方法,SSP给最高优先级的任务以资源。由此,低优先级的任务可能会被高优先级的任务抢占,然后响应时间R代表作业从激活到完成的时间。

    响应时间被用来分析最差情况响应时间, 它计算任务响应时间的上界,并根据其最后期限Di对其进行验证。Busywindow分析法是一种健全的计算WCRT的方法。

    Di:the maximum allowable time for a given task to complete its execution

    Bi:the maximum processing time

    他计算了对于进程q很重要的激活任务τ的最大处理时间B+(q),这在静态优先级调度策略中被如下定义:

    其中Ci是任务τ的最差情况执行时间。在周期系统中,[Bi/Tj]是大小为Bi的时间窗口内经由干扰任务τ执行的最大数量的工作。注意,在上面的式子中,Bi在等式两边都有出现,所以,可以通过迭代的方法进行求解,从Bi(q):=qCi开始计算,当Qi∈N[4]时,可以证明Bi(q)是收敛的。

    任务τ的最差情况响应时间由下式计算:

    完成任务τ时的时间到他的最终结束时间的休眠时间差被称为slack,Si,这样的slack可以被用来计算任务完成的时间从而不会错过最终时间。

    在本项目中,我们主要研究基于单处理器和静态优先级调度表的硬实时操作系统。

    3.基于时间的攻击检测方法

    实时操作体统增多,接入了互联网,会遭受注入攻击等问题。

    3.1基于最终时间(Deadline)的探测

    硬实时操作系统中虽然时间管控的很严格,没有按照预期的时间规划运行就会报错,但是对于实际的工程中来说,可能会产生一些问题。首先,如果任务已经超过了最终时间,那么此时的警告已经毫无作用了,对于系统的恢复来说就太晚了。其次,因为高优先级的任务具有抢占性,所以如果高优先级的任务中出现了错误,那么可能最终会反馈是低优先级任务超过了最终时间,这种情况下无法探测问题出现的根本原因。

    比如在开放汽车架构(AUTOSAR)中就认识到了这一点,他们是基于任务的执行时间而非最终时间进行判断,如果有任务的执行时间超过了WECT,那么将直接kill掉这个任务。但是这种极端的解决方案对于硬实时操作系统的话可能会出现一些问题,导致系统进入不稳定的状态。

    因此,需要定义一种其他的时间界限来划分实时任务的工作状态是很有必要的,以防止任务间时间约束违规行为的扩散,并及早发现系统中存在恶意任务。本文以Red-Zone[21]为基础,对这种预测方法进行了验证。

    3.2 Red-Zone理论

    在操作系统中所有的任务都应该按部就班的执行,但是在实际情况中可能因为以下原因会跑飞

  • 任务正在被攻击或者已经被攻击并开始执行攻击者的命令
  • 因为未知的软件bug程序进入了错误状态
  • 该任务正在执行一种虽然合法但是现有的安全政策不允许的动作,这是因为现有的安全政策不完善
  • 在许多系统中安全政策往往通过布尔值来进行定义,系统如果在预期规划的进程中进行那么就可以继续运行,否则将会停止,但是没有任何相关信息的停止运行通常并不是最佳的选择,比如说在汽车系统中。因为一旦遭受了攻击,攻击者可以通过相同的方法再次让系统进入中断。对于程序的错误,我们需要定义到底是哪里导致了错误的产生,从而才能让我们更好的去修改程序。另外,没有遵循定义的行为也有可能并不是错误行为。

    因此,引入红区原则可能会解决这个问题。红区原则允许任务超出设计的操作权限,但是会进入观察模式,这个观察窗口被称为“红区”,如果超出了极限,那么程序将会被终止。观察模式的程序会留下一个审计跟踪,其中包含漏洞和错误的信息。

    4.实时系统中的红区边界

    我们扩展了红区原理的应用,建立了适用于不同实时系统的预测算法。这些算法定义了后面通过预测方案进行检测异常行为的模糊边界。通过离线分析来实现红区原则需要实时系统完成以下的定义:

  • 每个任务的大概的时间
  • A Monitoring Point(MP):表示正常的时间和潜在异常行为时间的边界点,越过边界则代表该行为变得可疑。
  • A Killing Point(KP):确定任务异常的时间点,如果超出就停止任务并且启用恢复策略,并且可以转移到备份系统。
  • 两条关键的因素决定了异常行为检测的有效性:误报率(FPR)和精度值。误报率通过下式进行定义,代表了在KP之前完成了自身任务的可疑任务占所有监视任务的比例。FPR越小越好。(红色部分越小越好)精度是指预测的准确性

    红色区域中,开始监视系统,以便能更安全的检测到恶意行为并采取相应的解决方案。考虑到实时系统的时序,红区可以通过不同的方式来定义,本文中使用实时任务的执行时间和响应时间来定义防御边界(MP和KP)。

    4.1响应时间设置

    4.1.1 定义异常行为和开始检测边界(MP)

    在实时系统中,最差情况响应时间可以被用来描述该系统。一种很直观的方法是把最差情况响应时间作为红区的启动防御边界,也就是说只要系统的反应时间超过最差时间,就启动防御模式。这可以有效的防止网络洪水攻击。然而,一直等到最差情况响应才开始跟踪太晚了,因为这个时候该任务已经不正常了,而且,低优先级的错误可能会被忽略。

    此外,在周期性和非周期性任务并存的实时系统中,WCRT也不能作为任务的通用边界。WCRT考虑的是最大强度的干扰,然而在很多情况下,尤其是在瞬间过载(非周期任务)时,这些任务发生的概率非常低,因此负载最大的最坏情况可能永远不会发生,这会导致最大响应时间变得非常大。因此,典型最坏情况分析(TWCA)被引入来确定零星任务的激活频率,从而可以确定一个更小的响应时间边界,并且根据费周期任务的频率来确定可能超过该边界的概率。典型最坏时间的目的是尽可能的接近在运行时最可能的情况,从而获取典型性能。

    图四表示了一个包含3个周期任务 τ2(1,4,4),τ3(1,7,7),τ4(1,7,7),优先级从高到低排列。每一个任务通过三元组(C,T,D)定义,τ1为一个非周期任务,执行时间为C2=2ms,可见他很少被激活。τ1代表系统的一个瞬时过载任务。计算周期性任务的最差响应时间需要包含任务的瞬时过载τ1(如图所示)。然而,顺势过载大多数情况下并不会存在于同一个绿色虚线框中,图四表示了两种情况下τ3的反应。我们将没有顺势过载的响应时间成为典型最坏情况响应时间(TWCRT)。从图中可以看到,τ3的最坏响应时间一个是4ms,一个是2ms。

    通过分析多次执行的情况,可以统计被观测的进程中任务τ3有多少次和τ1同时运行而导致响应时间超过TWCRT3的次数的上界。实际上,基于上述分析,我们可以定义任务τ3的正常运行时间在[0,TWCRT3]通过对每一个进程进行典型最差运行时间(TWCA法)进行分析我们可以得到

  • 以TWCRT为边界的典型最差情况可以被用来作为任务进入监控的开始点。
  • 对于k∈N+,连续k次执行任务的时间段里,可能会有一个k值会使任务τ执行比典型最坏反应时间TWCRT更长的反应时间,这个次数k代表了我们观测任务τ最大的误报率(FPR)
  • 4.1.2 定义进程结束点KP

    定义了监控开始点,我们需要定义另外一个边界,进程结束点。在硬实时系统中,只要任务的响应时间超过了WCRT或者deadline,那么该任务将被视为恶意程序。因此,这两个时间值都可能当做KP点。但是,将deadline视为KP点并不合适,让任务运行到他的deadline可能会导致低优先级任务错过级联

    发表评论

    邮箱地址不会被公开。

    Go