新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 解析嵌入式系统中入侵检测的设计

解析嵌入式系统中入侵检测的设计

作者:时间:2012-01-05来源:网络收藏

随着通信技术和电子技术的不断发展,在电力中得到越来越广泛的应用,电力连接Internet将成为一大发展趋势。但是Internet是一个不确定的网络,存在着许多安全隐患,这是一个突出的、急待解决的问题。芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。这些应用中,可以着重于在控制方面的应用。就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品控制协议也需要制订和统一,这需要家电生产厂家来做。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现控制。所以,开发和探讨嵌入式系统有着十分重要的意义。

本文引用地址:http://www.eepw.com.cn/article/149864.htm

目前,比较流行的嵌入式操作系统有QNX、VxWorks、Widow CE、μC/OS-II等。其中,μC/OS-II内核以稳定、简短、源代码公开等特性得到了人们的青睐。但μC/OS-II只是一个微内核,并没有安全方面的。为了更加适合应用在电力系统中,这部分功能必须增强。μC /OS-II是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μC/OS-II绝大部分的代码是用ANSI的C语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。至今,从8位到64位,μC/OS-II已在超过40种不同架构上的微处理器上运行。μC/OS-II已经在世界范围内得到广泛应用,包括很多领域, 如手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制上。实际上,μC/OS-II已经通过了非常严格的测试,并且得到了美国航空管 理局(Federal AviatiON AdminiSTration)的认证,可以用在飞行器上。这说明μC/OS-II是稳定可靠的,可用于与人性命攸关的安全紧要(safety critical)系统。除此以外,μC/OS-II 的鲜明特点就是源码公开,便于移植和维护。

本文将针对电力系统的需求,基于一个改写的μC/OS-II说明该嵌入式操作系统中模块的与实现。

1、针对电力系统的安全威胁分析

嵌入式系统在电力系统中主要应用于数据采集和远程监控,所以它面临的最大威胁是数据的保密性和完整性问题。通过现有的保密技术和网络安全措施可以基本上保证数据的安全,但并不能绝对保证。模块可以认为是整个系统的最后一道防线,在系统遭受威胁或被攻击后,可以分析攻击行为,有效保护系统免受同样的攻击。(Intrusion Detection)是对入侵行为的检测。它通过收集和分析网络行为、安全日志、审计数据、其它网络上可以获得的信息以及计算机系统中若干关键点的信息,检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。

  (1) 内部人员的违规行为。通常,数据保密技术和账户安全管理手段,只能防止外来人员的攻击,而对于内部人员则束手无策。若内部人员滥用权限也会使系统面临很大的威胁。小则造成设备损坏,大则危害公共安全和经济生产。

  (2) 非授权用户登录操作。一个电力监控系统不仅可以远程采集电力终端设备的数据,同时也可以进行设备故障诊断、实时控制等操作。

  (3) 对系统资源的非法访问。这里所谓的系统资源主要包括存储器中的数据、系统的运行参数以及用于控制电力设备的硬件。当攻击者绕过正常的操作顺序获取数据或是硬件的控制权时,系统的所有安全措施形同虚设。

通过上述分析可知,为了进一步加强系统的安全性,必须使系统具有个人行为监控、事件重建、抵御网络攻击和故障分析能力。

2、基于主机的入侵检测模块

2.1 检测技术

检测技术与自动化装置是将自动化、电子、计算机、控制工程、信息处理、机械等多种学科、多种技术融合为一体并综合运用的符合技术,广泛应用于交通、电力、冶金、化工、建材等各领域自动化装备及生产自动化过程。检测技术与自动化装置的研究与应用,不仅具有重要的理论意义,符合当前及今后相当长时期内我国科技发展的战略,而且紧密结合国民经济的实际情况,对促进企业技术进步、传统工业技术改造和铁路技术装备的现代化有着重要的意义。

考虑到嵌入式系统资源的有限性,入侵检测模块将采用滥用检测技术。所谓滥用检测是直接对入侵行为进行特征化描述,建立某种或某类入侵的特征行为模式库。如果发现当前行为与某个入侵模式一致,则表示发生了这种入侵。

2.2 框架设计

入侵检测模块一般分为四部分:

  (1) 事件产生器。从环境中抽取感兴趣的信息,并把信息转化为标准格式供系统其他部件使用。

  (2) 事件数据库。事件数据库保存事件日志。

  (3) 事件分析器。分析输入的格式化后的事件,进行真正意义上的入侵检测,并产生新的警告。

  (4) 响应单元。响应单元按照警告进行相应的保护,反击入侵行为。

根据电力应用的特性和嵌入式系统的特点,对上述入侵检测框架进行修改如下:

  (1)事件发生器产生原始日志数据,为了避免对进程实时性造成太大的影响,先不做格式化处理。

  (2)事件数据库将接收的原始日志数据进行格式化处理,并进行相应的分类保存。

  (3)事件分析器与响应单元合并,以减少对系统进程的占用。

整个入侵检测框架如图1所示。

图1 入侵检测框架图

3 基于主机的入侵检测模块的实现

3.1 入侵检测模块的实现流程

该操作系统是一个实时操作系统,为了不影响系统的实时性,入侵检测并不是实时处理,数据流在整个处理过程中可能并不是很流畅,所以在设计时采用消息队列形式传递原始记录。即每个事件产生器发送的消息都送到一个消息队列中,事件数据库在系统空闲时取出消息做统一的格式化处理,并保存到数据库中。当日志记录累积到一定程度时,由事件数据库触发事件分析器做分析检测,经过检测的日志记录可以适当删除,以保持事件数据库接收新日志的能力。事件分析器作为整个入侵检测模块的核心,其程序流程如图2所示。

'

 图2 事件分析器程序流程图

从图2可以看出,系统目前只检测三种安全威胁,这是针对电力系统的威胁而确定。检测的结果保存到威胁日志中并生成相应错误号,辅助响应单元完成后续操作。可以根据需求,通过修改检测策略库增加检测的攻击类型,但是为了不影响嵌入式系统的实时性,原则上只检测必要的攻击行为。

3.2 主要数据结构和方法

大型入侵检测系统采用标准的日志数据结构,以方便系统之间的数据交流。但作为一个嵌入式的应用,目前并没有做分布式架构的设计。若采用标准数据结构,则会使日志记录的数据量大大增加,占用大量有限的存储器空间。因此系统自定义了一个日志记录的数据结构,而事件数据库以一个结构体数组形式存在,并通过一个结构体控制数组使其成为一个循环区域。日志记录和控制循环区域的结构体数据格式如下:

  struct log {

  unsigned char tp; //说明日志文件类型

  unsigned char action; //说明操作类型

  unsigned long time; //说明操作时间

  unsigned long ip; //说明操作地点

  long backup; //供扩展用

  }

日志记录是整个模块中最占用存储器的部分,为了尽量减少占用存储区域,各个字段都做了优化处理。在时间上并不采用传统标准的年/月/日/时/分/秒表示,而是以一个无符号的长整型表示时间差来计算时间。

  struct logchain {

  struct log* start; //缓存区开始的地址

  struct log* end; //缓存区结束的地址

  unsigned short lpoint//上次入侵检测提取的最后一条记录

  unsigned short ttsize//整个缓存区的大小

  unsigned short entries//目前被占用的记录数目

  unsigned short curpoint//指向当前可以写入的缓存区点

  }

上述数据结构将控制整个事件数据库日志的存储管理。事件数据库以一个循环的结构体数组表示,可以避免数据缓冲区的溢出。

整个入侵检测模块主要有以下几个功能函数。为了保证通用性,所有函数都是以标准C语言编写。

(1)入侵检测模块的启动:unsigned char audit_init(void)。该功能函数将完成事件数据库存储区域的初始化、消息队列的初始化和常驻任务的建立。

(2)常驻任务:void audittrail_thread(void*arg)。当系统启动入侵检测服务后,该任务将作为常驻任务运行在系统中。常驻任务是接收事件产生器发送的消息,经格式化处理保存在事件数据库中,并根据事件数据库的情况触发事件分析器。

(3)检测函数

密码猜测攻击:void check_countguess(void)

异常操作行为:void check_abnormalaction(void)

资源访问情况:void check_resoucestatus(void)

这三个功能函数用来分析用户登录日志记录,检测是否存在恶意攻击。

(4)响应单元主函数:void response_main(unsigned char alarm)。该函数根据分析器得出的警告,调用响应策略库中的相关策略,实施保护或者反击措施。

本文提出的基于改进的μC/OS-II入侵检测模块的设计已基本实现。μC/OS-II 是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。并且,作者修改了本实验室已实现的智能脱扣器项目的软件,并把它加载到修改后的嵌入式操作系统上进行初步测试。测试结果表明:系统的实时性和安全性均能满足要求。在本论文的基础上,作者将对入侵检测的策略进行进一步改进和扩充,增强其稳定性和实时性,以使其能更适应实际的电力应用领域。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭