您好, 访客   登录/注册

基于可重构计算的平台动态防御研究

来源:用户上传      作者:蒲江 陈海燕 田楠

  摘要:可重构计算是为解决高性能、高效率计算问题而提出来的,通过利用可编程逻辑器件的灵活性,使设备在运行时根据不同的计算任务实现不同的功能。利用可重构系统支持运行时可重配置的特性可以构建多样化的平台,从而解决系统的安全性问题。因此,基于可重构计算的平台动态化技术的出发点与可重构计算是不同的,其目的不是实现高效能计算问题,而是借鉴可重构系统的设计方法,着眼提高系统的安全性。
  关键词:可重构计算;平台动态化;安全性
  中图分类号:TP309 文献标识码:A
  文章编号:1009-3044(2022)30-0075-02
  开放科学(资源服务)标识码(OSID):
  1 引言
  平台通常指为上层应用软件提供运行环境的基础软硬件资源,一般包含CPU、内存、硬盘、操作系统、数据库等。目前现有应用系统为了简化设计、降低维护成本,大多采用单一架构设计,这就导致攻击者可以长时间嗅探系统漏洞从而发起攻击。尽管安全工作者做出了许多努力,但任何看似足够安全的系统都会有一定的漏洞,因此,随着攻击技术的不断发展,完全杜绝新的安全漏洞是不可能的。一旦系统漏洞被攻击者发现并成功利用,用户将面临身份冒用、数据窃取、服务拒绝等网络威胁,因而给用户造成政治、经济或军事上的重大损失。若能构建动态变化的系统运行平台,使得内外部攻击者观察到的系统运行环境非常不确定,从而无法或很难构建起基于漏洞或后门的攻击链,则将大大提高系统的安全防御能力。
  平台动态化是解决传统系统设计采用单一架构使得攻击者可以长时间嗅探系统漏洞这一缺陷的一种有效方法。它采用在有限时间内构建多种差异化的运行平台,并利用这种差异化使系统呈现出动态性、不确定性和随机性,从而减少具体应用在一种特定平台上运行的时间窗口,使攻击者难以适应平台的动态变化,从而增大嗅探系统漏洞的难度以降低系统被攻击风险。
  平台动态化技术颠覆了采用防火墙、入侵检测、防病毒等传统防护技术手段,它不是靠静态的封、堵、查、杀方法,而是通过构建多种差异化的运行平台,并动态调整用户应用系统的运行环境来增大攻击系统的难度。一方面,平台动态化技术的防护效能不是靠杜绝漏洞的出现,而是通过增强平台的随机变化来实现的;另一方面,它也不排斥传统的防护方法,在传统的防护手段上采用平台动态化技术能够得到叠加防护的效果[1]。
  2 可重构计算系统简述
  可重构计算是近些年出现的一种新型计算模式,该模式能够针对指定应用,通过重新配置逻辑编程器件以满足变化的应用需求。尤其是动态可重构技术,它允许在应用运行过程中对逻辑器件进行重新配置,而不会引起任务的中断。可重构系统本身具有一定程度的防御恶意攻击者对系统进行侦察和窥探的能力,这是因为对于不同的计算任务,系统需要加载不同的配置数据,从而能够呈现出平台动态性。但这种动态性与计算任务和平台状态相关联,缺乏随机性。
  借助可重构技术,尤其动态可重构技术,可以针对不同任务或同一任务,构建随机的、多样的、动态变化的运行平台,并以防御者可控的方式进行时间维度和空间维度的动态变化。时间维度动态变换指可重构系统的逻辑功能能够根据需要动态改变,通过在不同时刻采用不同的配置数据完成系统的数据处理。空间维度变换指每种配置数据调用的可编程逻辑资源不同,具体表现为逻辑电路的不同组织结构。时间和空间的二维动态变换使得攻击者难以对应用系统进行长时间的嗅探,从而将攻击行为消灭在攻击链初始阶段[2]。
  2.1 基本概念
  可重计算最早由美国加利福尼亚大学的Gerald Estri等提出。随着可编程器件的发展,特别是FPGA的出现,可重构计算逐渐成为计算领域的研究热点。
  可重构系统分为静态可重构和动态可重构两种。采用静态可重构时,整个可编程器件针对用户指定的某一应用生成一个配置文件,在应用运行前,将这个配置文件下载到可编程器件中,用户应用不变则系统的可编程器件配置保持不变;而用户应用变化则重新配置可编程器件,再运行新的应用。动态可重构指应用系统运行过程中就能够针对用户特定需求,直接对可编程器件实时进行重新配置来实现新的应用功能,同时不中断应用系统的正常运行[3]。
  动态可重构系统又可分为动态全局可重构系统和动态部分可重构系统两种。动态全局可重构是指当系统应用变换时,可编程器件的整体逻辑需要重新配置。整个重构过程,配置数据量大,配置时间较长。动态部分可重构则是只对可编程器件的部分资源重新配置,其余部分正常运行。动态部分可重构不仅能够时分复用可编程器件的逻辑资源,提高了资源利用率,而且系统的计算和配置能够并发执行,从而提高了系统运行效率。
  由可重构计算的概念可以看出,通过事先生成支撑应用的多个配置文件,在系统运行过程中,随机变换加载在系统中,能够使平台呈现随机变换的逻辑架构,从而使攻击者难以对系统进行侦察和攻击。
  2.2 系统结构
  一般来说,可重构系统的固定计算部件是CPU,可变部件是FPGA。按CPU和FPGA间的耦合关系可将可重构系统分为以下三类。
  (1)FPGA作为独立外设
  FPGA和CPU通过I/O总线通信,这种耦合方式最松散。FPGA是独立运行的设备,其正常运行不受主CPU的控制。由于二者之间的通信速率较低,通常适用于两者通信较少的情况。
  (2)FPGA作为协处理器
  这种耦合方式下,CPU和FPGA通信速度快得多。CPU可以将FPGA配置成相应功能的协处理器,并将待处理数据提供给其处理,FPGA独立完成计算任务,将结果返回CPU。在FPGA执行计算任务时,主CPU能够并发执行其他任务。
  (3)FPGA内嵌CPU

nlc202212091006



  FPGA内部嵌入硬核或软核CPU,构成一个片上系统。目前这种方式得到广泛的应用,这种系统结构将FPGA和CPU硬件架构整合一体,不仅降低了二者的通信延迟和数据存取开销,提高了系统的效率,同时也降低了系统硬件的整体设计复杂度,提高了系统可靠性。
  从上述三种可重构系统结构来看,不管采用何种结构,可重构系统的抽象模型可以简化为由一个通用CPU和FPGA组成的异构系统,如图1所示。其中,可重构系统管理部分运行于CPU上,主要用于对系统资源的管理和任务的调度[4]。
  从图1可以看出,可重构系统的动态化可由运行在CPU中的可重构管理系统来实施,针对特定的任务,可重构管理系统随机选择事先生成的软件可执行文件和硬件配置数据,分别加载到CPU和FPGA中。在运行过程中,对于不同任务或同一任务,可以随机切换具有相同功能的软件和硬件配置数据,从而增加系统的动态性和不确定性。
  3 可重构系统动态化实现方式
  可重构系统基本设计原则为各个功能模块之间要尽量解耦(即让各个模块尽可能地独立)。其核心思想在于设计各个功能模块时应该做到:强内聚,弱耦合。包括:
  (1)每个模块应该只实现单一的功能。
  (2)模块内部的子模块只为整体的单一功能而存在。
  (3)模块之间通过约定好的接口进行关联。
  ①必然存在模块使用接口。
  ②必然存在模块实现对应的接口。
  (4)模块之间的关系是单向依赖的(避免模块间存在循环依赖的情况,循环依赖是最糟糕的设计情形之一)。
  图2描述了一个可重构系统的设计开发流程。先对系统整体设计进行描述,重点是对需实现的用户应用进行描述。接着,对系统执行的任务进行软/硬件划分,目的是将系统执行的任务划分为两类,控制流应用部分可顺序执行,交由通用处理器(CPU)实现;数据流并行或需高速实现的部分交由可编程器件(FPGA)实现。至此整个系统设计开发过程分成两部分,一是面向通用处理器(CPU)的设计实现流程,将软件程序编译链接为可执行文件;二是面向可编程器件(FPGA)设计实现流程,将逻辑功能描述转换成硬件电路结构[5]。
  从图2可以看出,系统平台的动态化可以采用两种方式,一是在软硬件划分上进行设计。对于同一任务或不同任务采用多种软硬件划分方法,在划分时不追求性能最佳,而注重多样性。二是在可编程硬件的实现过程中进行设计,对于特定的需求采用多种逻辑设计、工艺映射和布局布线方法,生成多个配置数据文件,在系统运行过程中随机加载。这两种平台动态化的实现方式虽然对系统性能有一定影响,但都能够使可重构系统具有变化的逻辑资源结构特性,使恶意攻击者难以对系统架构进行有效侦察,从而有利于提高系统的防御能力。
  4 结束语
  基于可重构计算的平台动态化方法,利用可编程逻辑器件可重配置的特性,通过在系统运行过程中,随机变换运行在通用处理器中的可执行文件和运行在可编程逻辑器件中的配置数据文件,缩短系统暴露的时间窗口,将攻击链阻断在侦察阶段。同时,可执行文件的动态变化能够有效防御针对某种软件漏洞和缓冲区溢出的攻击;配置数据文件的动态变化能够有效防御针对可编程硬件的旁路攻击。
  但如果平台中的可执行文件和配置数据文件不多或变换速度不快,攻击者可能找到攻击方法。存储配置数据的存储器如果没有禁止非授权访问的防护措施,攻击者有可能篡改配置数据,进而发起攻击。此外,生成多个配置文件增加了系统管理和调度的复杂度,并影响了系统的性能和资源利用率。
  参考文献:
  [1] Casola V,de Benedictis A,Albanese M.A multi-layer moving target defense approach for protecting resource-constrained distributed devices[M]//Integration of Reusable Systems.Cham:Springer International Publishing,2014:299-324.
  [2] Cardoso J M P,Diniz P C,Weinhardt M.Compiling for reconfigurable computing[J].ACM Computing Surveys,2010,42(4):1-65.
  [3] Wu J O, Fan Y H, Wang S F,et al.Using grey relation to FPGA nulti-objective task scheduling on dynamic reconfigurable system[A].Proc. of the International Conference of Engineers and Computer Scientists[C].2014.
  [4] Huang M Q,Narayana V K,Simmler H,et al.Reconfiguration and communication-aware task scheduling for high-performance reconfigurable computing[J].ACM Transactions on Reconfigurable Technology and Systems,2010,3(4):20.
  [5] Jidin R,Andrews D,Peck W,et al.Evaluation of the hybrid multithreading programming model using image processing transforms[C]//19th IEEE International Parallel and Distributed Processing Symposium.Denver,CO,USA.IEEE,2005.
  【通编辑:代影】

nlc202212091006




转载注明来源:https://www.xzbu.com/8/view-15443059.htm

相关文章