(计算机软件与理论专业论文)基于嵌入式系统的蠕虫病毒检测研究.pdf_第1页
(计算机软件与理论专业论文)基于嵌入式系统的蠕虫病毒检测研究.pdf_第2页
(计算机软件与理论专业论文)基于嵌入式系统的蠕虫病毒检测研究.pdf_第3页
(计算机软件与理论专业论文)基于嵌入式系统的蠕虫病毒检测研究.pdf_第4页
(计算机软件与理论专业论文)基于嵌入式系统的蠕虫病毒检测研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机软件与理论专业论文)基于嵌入式系统的蠕虫病毒检测研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西华大学硕士学位论文 基于嵌入式系统的蠕虫病毒检测研究 计算机软件与理论 研究生周驰岷指导教师潘世永 蠕虫是无须计算机使用者干预即可运行的独立程序,它通过不停的获得网 络中存在漏洞的计算机上的部分或全部控制权来进行传播。与传统病毒不同, 它以计算机为载体,以网络为攻击对象。在扫描漏洞主机的过程中,蠕虫病毒 会产生巨大的网络流量,导致整个网络瘫痪,造成经济损失。 嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,适 于应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。 本文目的在于利用嵌入式系统解决蠕虫病毒的检测问题。 本研究课题使用了北京微芯力公司的w s 3 1 0 实验板进行实验( 它采用三星 公司基于a r m t t m d i 内核的s 3 c a 5 1 0 b 处理器) 文中简要介绍了该开发板交 叉编译环境的建立过程和应用程序的开发过程。然后,文章介绍了数据包捕获 的原理和b p f 模型的原理,以及基于b p f 的l i b p c a p 函数库的编程方法,并给 出了程序实现的详细过程。接下来介绍了协议分析的原理,并对t c p , ,i p 协议 簇进行了详细分析,给出了协议分析程序实现的详细过程。随后,介绍了对己 知蠕虫病毒的特征检测法和对传统未知蠕虫病毒的扫描检测法,并在分析比较 这两种检测方法的基础上,结合嵌入式设各成本低、体积小的特点,提出了一 种适合移植到嵌入式系统上的蠕虫病毒的综合检测方法,文章给出了程序实现 的详细过程和初步的实验结果。最后,简述了对本文研究工作的应用和展望。 关键词:蠕虫病毒嵌入式系统包捕获协议分析综合检测 西华大学硕士学位论文 a b s t r a c t w o r m si sa ni n d e p e n d e n tp r o g r a mw h i c hc a nr u n n i n gw i t h o u ta n yu s e r s i tc a n t a k eo t h e rc o m p u t e r sp a r t l yo rw h o l ec o n t r o la c c e s sb ys c a nt h el e a k so ft h e m w o r m si sd i f f e rf r o mt r a d i t i o nv i r u s ,i ta t t a c k sc o m p u t e rn e t w o r k sa n dc a r r i e db y c o m p u t e r s d u r i n gl e a ks c a n n i n g ,w o r m sw i l lb r i n gh u g ep a y l o a da n d l e a dt o i n a b i l i t yo ft h ew h o l e n e t w o r k e m b e d d e ds y s t e mi so n ek i n do fs p e c i a lc o m p u t e rs y s t e mw h i c hi sl o wc o s t , h i g hr e l i a b i l i t y , s m a l ld i m e n s i o n t h ei s s u ei n t r o d u c e do n ek i n do f m e t h o dt od e t e c t w o r m sw i t he m b e d d e ds y s t e m t h ei s s u ei n t r o d u c e dw s 3 1 0e x p e r i m e n tb o a r d ,w h i c hp r o d u c e db yw i n s i l i c o n b e i j i n gc o r p w i t hs a m s u n g ss 3 c 4 5 1 0 bc p u a n dt h ep r o c e d u r e s o ft h ec r o s s c o m p i l es e a i n ga n da p p l i c a t i o nd e v e l o p m e n t t h ei s s u ea l s oi n t r o d u c e dp a c k e t c a p t u r em o d e la n db p f m o d e la n dl i b p c a pf u n c t i o na n do u rc o d eo fp a c k e tc a p t u r e t h e nt h ei s s u ei n t r o d u c e dp r o t o c o la n a l y s i sa n dt h ed e t a i lo ft c - p b pa n a l y s i sa n dt h e c o d e a f t e rc o m p a r i n gd e t e c t i o nk n o w na n du n k n o w nw o r m s ,t h ei s s u eb r i n g sf o r w a r d a ne m b e d d e ds y s t e mb a s e d ( w h i c hi sl o wc o s ta n ds m a l ld i m e n s i o n ) w o r m sd e t e c t i o n , w h i c hc a l l e ds y n t h e s i sa n a l y s i s a n dt h ei s s u eg i v e st h ed e t a i la n dc o d ea n di t s p r i m a r ye x p e r i m e n tr e s u l t a tl a s t ,w ed i s c u s si t sa p p l i c a t i o n sa n dd e v e l o p m e n t k e yw o r d s :w o r m s e m b e d d e ds y s t e mp a c k e tc a p t u r e p r o t o c o la n a l y s i s s y n t h e s i sa n a l y s i s 2 西华大学硕士学位论文 1 绪论 1 1 研究的背景与意义 1 1 1 蠕虫病毒概述 随着1 9 8 8 年1 1 月2 号由r o b e r tm o r r i sj r 编写的一只基于b s du n i x 的 “i n t e m e tw o r m ”蠕虫出现,到2 0 0 1 年8 月5 号的红色代码“c o d er e d ”蠕虫 发作,直至2 0 0 3 年8 月1 2 号的冲击波“b l a s t e r ”蠕虫的大规模爆发。互联网 的安全威胁正逐渐逼近每一个普通用户。从1 9 8 8 年c e r t ( 计算机紧急响应 小组) 由于m o r r i s 蠕虫事件成立以来,统计到的i n t e m e t 安全威胁事件每年以 指数增长,近年来的增长态势变得尤为迅猛。 蠕虫的定义 i n t e m e t 蠕虫是无须计算机使用者干预即可运行的独立程序,它通过不停的 获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。 蠕虫工作流程 传统蠕虫程序的工作流程可以分为漏洞扫描、攻击、传染、现场处理四个 阶段,如图1 1 所示。本文提到的未知蠕虫病毒均指符合此传播模式的蠕虫病 毒。蠕虫程序扫描到有漏洞的计算机系统后,将蠕虫主体迁移到目标主机。然 后,蠕虫程序进入被感染的系统,对目标主机进行现场处理。现场处理部分的 工作包括: 隐藏、信息 搜集等。同 时,蠕虫程 序生成多个 副本,重复 上述流程。 不同的蠕虫 采取的i p 生 成策略可能 并不相同, 甚至随机生 图1 1 w 口m sa t t a c k f l o w 蠕虫攻击勰 7 西华大学硕士学位论文 成。各个步骤的繁简程度也不同,有的十分复杂,有的则非常简单。即: ( 1 ) 随机产生一个i p 地址; ( 2 ) 判断对应此i p 地址的机器是否可被感染: ( 3 ) 如果可被感染,则感染之: ( 4 ) 重复1 3 共m 次,m 为蠕虫产生的繁殖副本数量; 蠕虫的行为特征 通过对蠕虫的整个工作流程进行分析,可以归纳得到它的行为特征: ( 1 ) 自我繁殖 蠕虫在本质上已经演变为黑客入侵的自动化工具,当蠕虫被释放( r e l e a s e ) 后,从搜索漏洞,到利用搜索结果攻击系统,到复制副本,整个流程全由蠕虫 自身主动完成。就自主性而言,这一点有别于通常的病毒。 ( 2 ) 利用软件漏洞 任何计算机系统都存在漏洞,这使蠕虫利用系统的漏洞获得被攻击的计算 机系统的相应权限,进行复制和传播过程成为可能。这些漏洞是各种各样的。 有操作系统本身的问题,有的是应用服务程序的问题,有的是网络管理人员的 配置问题。正是由于漏洞产生原因的复杂性,导致各种类型的蠕虫泛滥。 ( 3 ) 造成网络拥塞 蠕虫病毒产生了巨大的网络流量,导致整个网络瘫痪,造成经济损失。 ( 4 ) 消耗系统资源 蠕虫入侵到计算机系统之后,会在被感染的计算机上产生自己的多个副本, 每个副本启动搜索程序寻找新的攻击目标。大量的进程会耗费系统的资源,导 致系统的性能下降。这对网络服务器的影响尤其明显。 ( 5 ) 留下安全隐患 大部分蠕虫会搜集、扩散、暴露系统敏感信息( 如用户信息等) ,并在系统 中留下后门,这些都会导致未来的安全隐患。 s i r 传播模型 在传统的对计算机病毒的传播机制研究中,常常借用已有的传染病数学模 型,但由于计算机病毒的攻击对象是文件系统,所以传统计算机病毒研究中把 计算机作为传播个体并不合适。同计算机病毒不同,i n t e m e t 蠕虫具有主动攻 西华大学硕士学位论文 击特征,不需要计算机使用者的参与,并且蠕虫的攻击对象是计算机系统,这 两个条件正好同传染病模型的假设条件相符。在蠕虫的s i r 模型中,假设在一 台主机内蠕虫传播经过了如下的三个步骤: s u s c e p t i b l e - ) i n f e c t i v e - ) r e c o v e r e d 蠕虫的传播经历了开始的缓慢传播,接下来的快速传播和最后的缓慢消失 三个阶段。因此能否在蠕虫的缓慢传播阶段实现对蠕虫的检测和防治成为有效 防治蠕虫的关键。 蠕虫监测和防护现状 尽早的发现蠕虫并对感染蠕虫的主机进行隔离和恢复,是防止蠕虫泛滥、 造成重大损失的关键。 1 1 2 问题的提出 1 9 8 8 年一个由美国康奈尔大学的研究生莫里斯编写的蠕虫病毒在网络上 蔓延造成了数千台计算机无法工作,从此蠕虫病毒现身互联网,其后“红色代 码”、“尼姆达”的疯狂肆虐,更造成几十亿美元的巨额损失。北京时间2 0 0 3 年1 月2 6 日一种名为“2 0 0 3 蠕虫王”的电脑病毒迅速传播并席卷全球,严重 堵塞了互联网,造成域名服务器瘫痪,直接经济损失1 2 亿美元。以我校校园 网为例,各学院的子网都发生过网速极慢导致无法正常使用的情况。据事后分 析表明,这都是由于该学院子网中的某些电脑携带了病毒,并大量在网络中传 播,导致整个子网瘫痪。 随着i n t e r n e t 的广泛应用,网络安全问题越来越成为人们日益关注的焦点, 常用的“防火墙”等都是保护用户的本地网络不受到外来的非法入侵。然而据 统计6 0 以上的安全问题来自内部网络,这就对传统的“防火墙”提出了挑 战。如果恶意攻击源来自局域网内部的某台电脑,那么“防火墙”将不能起到 有效的作用。当前,尤其以蠕虫病毒危害最大。局域网中感染该病毒的客户机 会发送大量恶意数据,阻塞该局域网与外界的通讯,甚至造成整个局域网的瘫 痪。 西华大学硕士学位论文 1 1 3 研究意义 与传统病毒不同,蠕虫病毒以计算机为载体,以网络为攻击对象。在扫描 漏洞主机的过程中,蠕虫需要:判断其它计算机是否存在:判断特定应用服务 是否存在;判断漏洞是否存在等等,这不可避免的会产生附加的网络数据流量。 同时蠕虫副本在不同机器之间传递,或者向随机目标发出的攻击数据都不可避 免的会产生大量的网络数据流量。即使是不包含破坏系统正常工作的恶意代码 的蠕虫,也会因为它产生了巨大的网络流量,导致整个网络瘫痪,造成经济损 失。 目前国内并没有专门的蠕虫检测和防御系统,传统的主机防病毒系统并不 能对未知的蠕虫进行检测,只能被动的对已发现的特征的蠕虫进行检测。亦即 使用病毒防治软件,并根据互联网各安全中心发出的病毒警报升级病毒库或使 用蠕虫病毒专杀工具。如何迅速有效的主动发现局域网内传播的蠕虫病毒,是 入侵检测系统进行进一步联动反应的先决条件。本文希望利用嵌入式系统廉 价、小巧的特点,设计一种基于嵌入式系统的蠕虫病毒检测设备,实现迅速有 效的蠕虫病毒检测,为迸一步的入侵检测、病毒防治提供有效依据。 1 2 国内外发展现状 1 2 1 对已知蠕虫的检测 对己知蠕虫病毒检测的系统使用原始的网络数据包作为其进行检铡的数 据来源,对数据包的包头和负载进行检测分析,来发现蠕虫病毒。 目前市场上的入侵检测产品,对蠕虫的检测也多半是基于特征,利用i d s 提供的异常检测功能,通过发现网络中的异常,来对蠕虫的传染进行控制。 1 2 2 对传统未知蠕虫的检测 对蠕虫在网络中产生的异常,有多种的的方法可以对传统未知的蠕虫进行 检测,比较通用的方法有对流量异常的统计分析,对t c p 连接异常的分析。此 外,在这两种分析的基础上,还可使用对i c m p 数据异常分析的方法,更全面 的检测网络中的未知蠕虫。这种网络蠕虫的测的方法是b o bg r a y ,v i n c e n tb e r k 在2 0 0 3 年1 1 月4 日的1 s t s 技术大会中提出的。 西华大学硕士学位论文 1 3 本文的主要研究工作 1 3 1 网络数据包的捕获与分析 我们主要通过捕获数据包并对其进行分析来达到检测蠕虫病毒的目的。为 了实现程序最终向嵌入式系统的移植,代码全部使用c 语言编写。利用u b p c a p 函数库编程捕获数据包后,根据t c p i p 协议封装原理进行协议分析,还原报 文头的数据。 1 3 2 蠕虫病毒的检测 对已知蠕虫病毒的检测常通过将捕获的数据包报文头与已知蠕虫病毒的数 据包报文头的特征字符串进行比较,如果相同则可断定发送该数据包的源主机 感染了蠕虫病毒。 对未知蠕虫病毒的检测常采用扫描检测的方法,由于蠕虫病毒有大规模的 扫描或攻击行为,被它感染的计算机发送的包远大于接收的包。通过分析网络 上被感染计算机发出的扫描探测包,定位到具体的计算机,分析是否异常。另 外,还可以通过判断是否是i c m p - t 3 数据包,分析这些数据包是否源于同一 i p 地址、是否由多个目的地址、是否有相同的t c p u d p 端口或者相同的i c m p 类型,据此判断该主机是否感染了蠕虫病毒。 1 3 3 嵌入式实验板移植试验 设置u c l i n u x 的交叉编译环境,将p c 机上开发的程序移植到嵌入式实验 板,通过模拟实验测试设备的检测性能。 西华大学硕士学位论文 2 嵌入式系统 2 1 嵌入式系统概述 随着数字信息技术和网络技术的高速发展,计算机己经从以p c 为主的模 式进入到了目前的网络模式。而且不仅要为数以亿计的p c 连网,还要为那些 内置计算机芯片的几乎所有电子设备提供运算和连网功能,导致这场革命的核 心技术就是嵌入式系统( e m b e d d e ds y s t e m ) 。嵌入式系统是指以应用为核心,以 计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体 积和功耗严格要求的专用计算机系统。 2 , 1 1 嵌入式系统的软硬件特征 嵌入式系统要求其c p u 具有功耗低、体积小、集成度高、处理能力强、 价格低的特点,把很多板卡完成的功能集中到c p u 芯片内部,从而使 整个系统能够做到小型化。 嵌入式系统和具体的应用有机的结合,其升级换代也是和具体产品同 步进行的,嵌入式产品一旦进入市场,就有较长的生命周期。 嵌入式系统为了提高系统的可靠性和执行速度,一般都是将嵌入式的 操作系统和应用软件固化在可擦写的r a m 或者f l a s hr a m 中。应 用软件一般都作为操作系统的一个模块加载在操作系统中。 由于嵌入式系统对实时性要求较高,因此嵌入式的操作系统必须具有 较高的实时性。同时对程序的质量和可靠性提出了较高的要求。 由于储存容量核体积的限制,嵌入式操作系统必须要具有体积小、可 定制、功能强并能够管理系统硬件的特点。 2 1 2 嵌入式系统的开发工具、开发运行平台 由于受到存储容量和功能的限制,嵌入式应用的开发和调试需要借助一套 专门的开发工具和环境来完成。硬件环境包括:具有文件传送功能的宿主机、 具有编译调试功能的仿真器。软件包括:操作系统软件、编译调试软件、文件 传输软件等。把操作系统应用于嵌入式系统,由操作系统来管理软硬件资源( 存 储管理、文件管理、进程管理、中断管理等) 。由于操作系统对高级语言( c 语 西华大学硕士学位论文 言) 的支持和其强大的网络功能,我们可以进行高级语言的编程,屏蔽对低层 的直接访问,使得应用程序的编写和实现变得更加容易和方便。为了利用c p u 的强大功能,便于对硬件和软件的管理,引入了嵌入式的操作系统和在操作系 统之下相应的编译环境,可以充分利用操作系统的库函数、a p i 低层调用、网 络通讯功能以及操作系统对资源的管理等功能,进行具有复杂功能的应用程序 设计。 2 1 3 嵌入式系统硬件的岩己展 电路设计阶段 这个阶段,不同的应用问题,往往需通过不同的硬件电路设计来解决,如 6 0 年代后期出现的程控电话系统。 程序设计阶段 这个阶段,硬件提供了一个可简化编程的通用模型,把许多原来的电路设 计问题转化为程序设计问题,如单片机应用系统。 2 1 4 嵌入式系统软件的发展 无操作系统阶段 这些系统多为8 1 6 位系统,硬件能力有限,不足以支持一个操作系统。在 这些系统中,不分系统软件和应用软件,运行的软件就是一个简单的控制环 ( c o n t r o ll o o p ) ,无法实现象t c p i p 这样复杂的网络协议,并由设计者提供所 有必要的低级i o 等方面处理。 有操作系统阶段 这些系统硬件能力强大,如p o w e r p c8 6 0 的寻址空间为4 g ,速度可达8 7 m i p s ( a t6 6m h z ) ,能够支持操作系统来合理地调度多任务,利用系统资源 降低应用设计的复杂性,而且一般还具有网络访问能力。 2 1 5 嵌入式系统的未来 网络访问能力 随着i n t e r n e t 的发展,越来越多的嵌入式系统提出了网络互连要求,这就要 西华大学硕士学位论文 求,一个嵌入式系统必须能够支持某种网络协议栈o 沁t 、v o r kp r o t o c o ls t u c k ) 。 采用3 2 位系统 随着系统功能越来越强,硬件成本不断地下降,基于3 2 位硬件平台的嵌入 式系统将是大势所趋,这些系统的硬件能力非常强大。 开发更加容易 随着应用复杂性的增长。程序变得越来越大。不仅要有完善的开发工具使 应用程序能用高级语言来编写,而且可能需要虚存机制和多任务管理。 基于操作系统 为了支持网络协议、更好地管理资源和便于开发应用程序,越来越显示出 了操作系统的重要性。 2 2 a r m 微处理器 2 2 1a r m a d v a n c c dr i s cm a c h i n e s a r m 既可以认为是一个公司的名字,也可以认为是对一类微处理器的通 称,还可以认为是一种技术的名字。1 9 9 1 年a r m 公司成立于英国剑桥,主要 出售芯片设计技术的授权。 a r m 公司是专门从事基于r i s c 技术芯片设计开发的公司,作为知识产权 供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色 的芯片,世界各大半导体生产商从a r m 公司购买其设计的a r m 微处理器核, 根据各自不同的应用领域,加入适当的外围电路,从而形成自己的a r m 微处 理器芯片进入市场。 2 2 2a r m 微处理器的特点 体积小、低功耗、低成本、高性能 支持t h u m b a r m 双指令集,能很好的兼容8 位1 6 位器件 大量使用寄存器,指令执行速度更快 大多数数据操作都在寄存器中完成 寻址方式灵活简单,执行效率高 指令长度固定 l4 西华大学硕士学位论文 2 2 3 a r m 微处理器系列 a r m 微处理器目前包括下面几个系列,除了具有a r m 体系结构的共同特 点以外,每一个系列的a r m 微处理器都有各自的特点和应用领域: a r m 7 系列 a r m 9 系列 a r m 9 e 系列 a r m l 0 e 系列 s e c u r c o r e 系列 i n t e l 的x s c a l e i n t e l 的s t r o n g a r m 2 3 实验系统简介 我们采用北京微芯力公司的w s 3 1 0 实验板进行板载实验,它使用三星公司 基于a r m t t m d i 内核的$ 3 c 4 5 1 0 b 处理器,图2 1 是该实验板的系统构架。 w s 3 1 0 实验板具有如下特点: 串行接口电路用于$ 3 c 4 5 1 0 b 系统与其他应用系统的短距离双向串行通 讯: 复位电路可完成系统上电复位和在系统工作时用户按键复位; 电源电路为5 v 到3 3 v 的d c d c 转换器,给$ 3 c 4 5 1 0 b 及其他需要3 3 v 电源的外围电路供电; 1 0 m h z 有源晶振为系统提供工作时钟,通过片内p l l 电路倍频为5 0 m h z 作为微处理器的工作时钟: f l a s h 存储器可存放已调试好的用户应用程序、嵌入式操作系统或其他 在系统掉电后需要保存的用户数据等: s d r a m 存储器作为系统运行时的主要区域,系统及用户数据、堆栈均位 于s d r a m 存储器中: 1 0 m 1 0 0 m 以太网接口为系统提供以太网接入的物理通道,通过该接口, 系统可以1 0 m 或1 0 0 m b p s 的速率接入以太网: j t a g 接口可对芯片内部的所有部件进行访问,通过该接口可对系统进 西华大学硕士学位论文 行调试、编程等; i i c 存储器可存储少量需要长期保存的用户数据: 系统总线扩展引出了数据总线、地址总线和必须的控制总线,便于用 户根据自身的特定需求,扩展外围电路。 鬻嬲。 西华大学硕士学位论文 3 嵌入式l i n u x 3 1 l i n u x 简介 简单地说,l i n u x 是类u n i x 操作系统,但又不是简化的u n i x ,因为l i n u x 虽然继承了u n i x 的特征,但在许多方面却超过了u n i x 。l i n u x 允许遵循g p l 的任何使用和修改,因此产生了很多种的l i n u x 版本,比如各种特制版本,适 合于绝大多数的嵌入式l i n u x 系统。它们使用的基本模块都相同,如l i n u x 内 核、s h e l l 命令及许多系统工具和服务。不同的是各种应用程序、面向应用的驱 动程序、对启动进程的处理等。 3 2 嵌入式l i n u x 及应用开发 3 2 1 嵌入式l i n u x 特性 l i n u x 自发布以来,在嵌入式领域取得了飞速发展,目前在开发的嵌入式 系统中,4 9 的项目选择l i n n x 作为嵌入式操作系统,这与它自身的优良特性 有着不可分割的关系: 开放源码,丰富的软件资源 l i n u x 是自由的操作系统,它的开放源代码使用户获得了最大的自由度。 另外它的软件资源十分丰富,在l i n u x 开发程序往往不需要从头做起,而是先 选择一个类似的自由软件,进行二次开发。 功能强大的内核,性能高效、稳定、多任务 l i n u x 的内核非常稳定。它的高效和稳定己经在各个领域,尤其在网络服 务器领域得到了事实的验证。而且l i n u x 内核小巧灵活,易于剪裁,这使l i n u x 能适合嵌入式系统的应用。 支持多种体系结构: l i n u x 能支持x 8 6 ,a r m ,m i p s ,m h a ,s p a r c 等多种体系结构。现在 l i n u x 已经可以在没有m m u 的处理器上运行了,这进一步促进了l i n u x 在嵌 入式系统中的应用。 完善的网络通信、图形和文件管理机制 l i n u x 自产生之日起就与网络密不可分。另外,l i n u x 支持e x t 2 ,f a t l 6 ,f a t 3 2 , r o m f s 等多种文件系统。在图形系统方面,l i n u x 上有成熟的x w i n d o w 。 17 西华大学硕士学位论文 支持大量的周边硬件设备,驱动丰富 l i n u x 上的驱动已非常丰富了,支持各种主流硬件设备和最新硬件技术, 而且随着l i n u x 的广泛应用,许多芯片厂家也开始提供l i n u x 上的驱动。 大小功能都可定制 l i n u x 继承了u n i x 的优秀设计思想,内核与用户界面是完全独立的。它非 常灵活,各部分的可定制性都很强,能适合多种需求,是硬件资源有限的嵌入 式系统的首选。 3 2 2 嵌入式l i n u x 组成 嵌入式l i n u x 一般是按照嵌入式目标系统的要求而设计,由一个体积很小 的内核及一些可以根据需要进行剪裁的系统模块组成。一般来说,整个系统所 占用的空间不会超过几兆大小,由以下几部分组成: b o o tl o a d e r 它负责l i n u x 内核的启动,用于初始化系统资源。这部分代码用于建立 l i n u x 内核运行环境和从f l a s h 中装载初始化r a m d i s k 。 内核初始化 l i n u x 内核的入口点是s t a r tk e r n e l ( ) 函数。它初始化内核的其他部分,包 括捕获、i r q 通道、调度、设备驱动、标定延迟循环,最重要的是能够f o r k “i n i t ” 进程,以启动整个多任务环境。 系统调用函数捕获函数 在执行完“i n i t ”程序后,内核对程序流不再有直接的控制权,此后,它的 作用仅仅是处理异步事件和为系统调用提供进程。 设备驱动 设备驱动占据了l i n u x 内核很大部分。同其他操作系统一样,设备驱动为 它们所控制的硬件设备和操作系统提供接口。 文件系统 l i n u x 透明的支持许多不同的文件系统,将各种安装的文件和文件系统以 一个完整的虚拟文件系统的形式呈现给用户。 西华大学硕士学位论文 3 2 _ 3 嵌入式u c l i n u x 系统 为了降低硬件成本及运行功耗,有一类c p u 在设计中取消了内存管理单元 ( m e m o r ym a n a g e m e n tu n i t ,以下简称m m u ) 功能模块。最初,运行于这类 没有m m u 的c p u 之上的都是一些很简单的单任务操作系统,或者更简单的 控制程序,甚至根本就没有操作系统而直接运行应用程序。在这种情况下,系 统无法运行复杂的应用程序,或者效率很低,而且所有的应用程序需要重写, 并要求程序员十分了解硬件特性。这些都阻碍了应用于这类c p u 之上的嵌入 式产品开发的速度。然而,随着u c l i n u x 的诞生,这一切都改变了。 u c l i n u x 从l i n u x2 0 2 4 内核派生而来,沿袭了主流l i n u x 的绝大部分特性。 它是专门针对没有m m u 的c p u ,并且为嵌入式系统做了许多小型化的工作。 适用于没有虚拟内存或内存管理单元( m m u ) 的处理器,例如a r m 7 t d m i 。 它通常用于具有很少内存或f l a s h 的嵌入式系统。u c l i n u x 是为了支持没有m m u 的处理器而对标准l i n u x 做出的修正。它保留了操作系统的所有特性,为硬件 平台更好的运行各种程序提供了保证。在g n u 通用公共许可证( g n ug p l ) 的保证下,运行u c l i n u x 操作系统的用户可以使用几乎所有的l i n u x a p i 函数, 不会因为没有m m u 而受到影响。由于u c l i n u x 在标准的l i n u x 基础上进行了 适当的裁剪和优化,形成了一个高度优化的、代码紧凑的嵌入式l i n u x ,虽然 它的体积很小,u c l i n u x 仍然保留了l i n u x 的大多数的优点:稳定、良好的移植 性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的a p i 等。 3 3 l i n u x 对t c m p 网络的支持 3 3 1l i n u x 网络概述 网络和l i n u x 是密切相关的。l i n u x 所支持的t c p i p 协议栈是目前w e b 上 最流行和通用的网络协议。t c p i p 协议最初是为支持a r p a n e t ( 一个美国政府 资助的研究性网络) 上计算机通讯而设计的。u n i x 被广泛应用于a r p a n e t ,实 现了对i n t e r n e t 的全而支持,它的第一个网络版本是4 3b s d 。 l i n u x 的网络实现就是以4 3b s d 为模型的,它支持b s ds o c k e t s ( 及一些 扩展) 和所有的t c p i p 网络。l i n u x 选用这个编程接口是因为它很流行,并且 有助于应用程序从l i n u x 平台移植到其它u n i x 平台。 西华大学硕士学位论文 3 3 2 l i n u x 下t c p p 层次结构 l i n t l x 下的t c p f l p 网络协议栈的各层之间是通过一系列互相连接层的软件 来实现i n t e m e t 地址族的, b s ds o c k e t 层由 专门用来处理b s d s o c k e t 的通用套接字 管理软件来处理,它由 i n e ts o c k e t 层来支 持。i n e ts o c k e t 为基 于i p 的协议t c p 和 u d p 管理传输端点。 u d p ( 用户数据报协 议) 是一个无连接协议 而t c p ( 传输控制协议) 是一个可靠的端对端 协议。传输u d p 包的 时候,l i n u x 不知道也 不关心是否它们安全 到达了目的地。t c p 则不同,在t c p 连接 的两端都需要加上一 个编号以保证传输的 数据被正确接收。在 结构层次如图3 1 所示。 网络应用 用户 b s ds o c k e t d 旺盯s o c k e t l i n u x 内j lf l i d p it 凹l i i p s l 口ii e t h e m e t l 一酬 图3 1 t c p i pu n d e r l i n u x l i n u x 下的t c p i p i p 层,实现了i n t e m e t 协议的代码。这些代码要给传输的数据加上一个i p 头, 并且知道如何把传入的i p 包送给t c p 或者u d p 协议。在p 层以下,网络设 备用来支持所有的l i n u x 网络工作,如s l i p 和以太网。不过要注意,这些网 络设备不一定部是物理设备可以使用像l o o p b a c k 这样的虚拟网络设备,纯 粹是用软件来实现的。 西华大学硕士学位论文 3 4 建立交叉编译环境 3 4 1 交叉编译 首先介绍一下交叉编译的概念。简单地讲,交叉编译就是在一个平台上生 成可以在另一个平台上执行的代码。注意这里的平台,实际上包含两个概念: 体系结构( a r c h i t e c t u r e ) 、操作系统( o p e r a t i n gs y s t e m ) 。同一个体系结构可以 运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。 举例来说,我们常说的x 8 6l i n u x 平台实际上是i n t e lx 8 6 体系结构和l i n u xf o r x 8 6 操作系统的统称:而x 8 6 w i n n t 平台实际上是i n t e l x 8 6 体系结构和w i n d o w s n tf o rx 8 6 操作系统的统称。之所以使用交叉编译是因为在该硬件上无法安装 我们所需的编译器,只好借助于宿主机,在宿主机上对即将运行在目标机上的 应用程序进行编译,生成可在目标机上运行的代码格式。 为了实现基于u c l i n u x 的应用系统的开发,建立一个完备的u c l i n u x 开发环 境是十分必要的。基于u c l i n u x 操作系统的应用开发环境一般是由目标系统硬 件开发板和宿主p c 机所构成。目标硬件开发板用于运行操作系统和系统应用 软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要 通过宿主p c 机来完成。双方之间一般通过串口、并口或以太网接口来建立连 接。 3 4 2 为安装l i n u x 的宿主机建立交叉编译环境 首先,要在宿主机上安装标准l i n u x 操作系统,如r e d h a tl i n u x 等,一定 要确保计算机的网卡驱动、网络通讯配置正常,有关如何在p c 机上安装l i n u x 操作系统的问题,请参考有关资料和手册。 然后,运行命令: t a rz x v fu c l i n u x - w i n s i l i c o n t a r g z 该命令将随板附带的可移植到实验板上的u c l i n u x 源代码解压释放到标准 l i n u x 操作系统的用户目录。 再运行程序: a l m e l f - t o o l s 一2 0 0 3 0 3 1 4 s h 安装编译器。至此,针对w s 3 1 0 实验板的交叉编译环境就已经建立好了。 西华大学硕士学位论文 3 5 开发应用程序 3 5 1 利用f t p 添加应用程序 利用板上u c l i n u x 带有的却程序可以很方便的将在p c 机上交叉编译的目 标程序下载到实验板上运行。注意p c 机上启动f i p 服务器后将防火墙关闭, 否则无法使用。 3 5 2 添加应用程序到u c l i n u x 也可将用户的应用程序作为u c l i n u x 自身的应用程序对待,在内核编译时 一起完成。在u c i i n u x s a m s u n g r o m f s u s r 下面编写用户应用程序源代码以及它 对应的m a k e f i l e 文件,在该目录下使用u c l i n u x 编译器交叉编译用户的应用程 序,将生成的可执行文件拷贝到u c l i n u x s a m s u n g r o m f s b i n 下。 进行内核的部分编译工作,此时只需要做编译内核的最后三步工作,即: m a k er o m f s m a k ei a m g e m a k e 最后都把在u c l i n u x s a m s u n g i m a g e s 下生成的i m a g e r o m 文件烧写到系统的 f l a s h 存储器中,u c l i n u x 启动后,用户的应用程序在b i n 目录下,此时可直 接运行用户程序。 西华大学硕士学位论文 4 数据包捕获 4 1 网络层数据的获取 4 1 1 数据监听 网络底层信息监听可以通过两种方法实现,一种是利用以太网络的广播特 性,另一种方式是通过设置三层交换机的监听端口实现,两种方式分别适用于 不同的工作情况,下面进行详细论述。 利用以太网络的广播特性进行监听 在计算机网络系统中,局域网普遍采用的是基于广播机制的i e e e8 0 2 3 协 议,即以太网( e t h e m e t ) 协议,该协议保证传输的数据包能被同一冲突域内的 所有主机接收,基于网络的入侵检测正是利用了以太网的这一特性。我们知道, 以太网中所有的通讯都是广播的,即通常在一个网段的所有网络接口都可访问 在物理媒介上传输的所有数据,而每一个网络接口都有一个唯一的硬件地址, 它也就是网卡的m a c 地址。大多数系统使用4 8 比特的地址,这个地址用来表 示网络中的每一个设备,通常,每块网卡的m a c 地址都不相同。在硬件地址 和i p 地址间使用a r p 和r a r p 协议进行相互转换。一个网络接口应该只响应 以下两种数据帧: ( 1 ) 与自身的硬件地址相匹配的数据帧; ( 2 ) 向所有机器广播的数据帧; 在一个实际系统中,数据的收发是通过网卡进行的,数据传送到网卡,根 据网卡驱动程序设置的接收模式来判断该不该接收,如果与上述两点不一致, 网卡就拒绝接收。因此,要使网卡接收通过它的所有数据,应改变其工作模式, 使其工作在混杂模式下,这样它就能接收一切通过它的数据,而不管该数据是 否传给它。 设置交换机的监听端口实现监听 在实际网络中,存在许多高速网接入的情况,如通过光纤接入等。在这些 情况下,一般采用的是具有三层交换的交换机,这时就不能利用以太网络的广 播特性,因为它们都是基于三层的路由技术,就必须选用特殊的带有 s p a n ( s w i t c hp o r ta n a l y z e r ) 功能的交换机来实现信息的监听。网络路由工作将 不同于正常情况,所有的网络信息数据包除按照正常情况转发外,将同时转发 西华大学硕士学位论文 到监听端口,因此从该端口可以监听到所有的网络流量。 4 1 2 b p f 捕获模型 b s d 的链路层访问设施一b p f 以前大多数的操作系统也都包含有这样的设施,如s u n o s 的n i t ,d e c 的操 作系统u l t r i x 中的u l t r i xp a c k e tf i l t e r ,s g i 的操作系统i r i x 中的s n o o p 等。它们都源于早期在卡内基梅隆和斯坦福大学开展的把x e r o xa l t o 的包过 滤器改编到u n i x 内核的工作,这个工作完成于1 9 8 0 年,产生出了c m 【j s t a n f o r d p a c k e tf i l t e r ,即c s p f ,它提供了很需要并被广泛使用的功能,但却完全是 为当时的p d p 1 1 设计的,使用的是基于内存中的栈的过滤器机,对现代基于 寄存器的c p u 而言,显得效率不高。后来,l a w r e n c eb e r k e l e yl a b o r a t o r y 的 s t e v e nm c c a n n e 和v a nj a c o b s o n 提出了b s dp a c k e tf i l t e r ,即b p f ,它使用 的是一个重新设计过的,基于寄存器的过滤器机,因而在现代基于寄存器的c p u 上实现起来就富有效率。另外,b p f 采用了一个简单的,非共享的b u f f e r 模式, 这也适合于现代的大的地址空间,由此,在相同的硬件和网络流量的条件下, 它的速度比c s p f 提高了1 5 到2 0 倍。 b p f 工作原理 b p f 主要由两个部分组成:网络分接头( n e t w o r kt a p ) 和包过滤器( p a c k e t f i i t e r ) 。网络分接头从网络设备驱动程序把封包收集过来,并把它们提交给 正在监听的应用程序;而包过滤器则决定一个封包是否该被接收,如果接收, 把此封包的多少提交给监听的应用程序。b p f 与系统其他部分关系如图4 1 所 示。 当一个封包到达网络接口( 指物理接口) 时,数据链路层的设备驱动程序一 般是把它向上送给系统的协议栈,但当有b p f 在这个接口上监听的时候,驱动 程序就会先调用b p f 模块,交给它一个此封包的指针( 注意:不是拷贝) ,b p f 把这个指针传给每个参与的用户进程设置的过滤器,由过滤器来决定这个封包 是否被接收以及接收多少个字节,b p f 据此来把封包相应长度的字节拷贝到与 过滤器相联系的缓冲区中,以供用户进程( 如网络监控程序等) 读取。然后,网 络驱动程序重新获得控制权,再判断此封包是否是给本机的,如果不是,则从 中断返回;如果是,则进行正常的协议处理。 西华大学硕士学位论文 图4 1 b f fs t r u c t 付e b p f 结构示意 由于一个进程可能要看网络上的每一个数据包,而两个数据包之间的时差 可能只有几微秒。如果对每个包都执行一个r e a d 的系统调用是不大可行的, 因此b p f 可以收集多个包,当正在监听的应用程序读的时候,把它们作为一个 整体返回,为保持封包之间的界限,b p f 给每个封包再加上b p f 的包头,包头 中包含有时戳,包的被捕捉部分的长度,包原来的长度,b p f 包头的长度的信 息。 需要特别指出的是,网络监控程序一般只需要网络数据包的- , 5 部分数据。 因此,b p f 传给过滤器的是封包的指针,如果过滤器决定接收,才把封包的相 西华大学硕士学位论文 应数量的字节拷贝到与过滤器相联系的缓冲区中。这种方案大大减少了内存的 操作量,在当前内存访问是计算机性能的瓶颈的情况下,很大地提高了系统的 性能。 另外,在上图中我们还可以看到,b p f 使用了一个简单的b u f f e r 模型,即 非共享的b u f f e r ,这在当前计算机一般有较大内存的情况下是合理的,它对于 通常的包的捕捉是很有效率的。 4 2 l i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论