全国大学生信息安全竞赛作品集(2009)

更新时间:2023-04-09 05:49:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2009年全国大学生信息安全竞赛获奖作品集

指导单位:教育部高教司、工业和信息化部信息安全协调司

主办单位:教育部高等学校信息安全类专业教学指导委员会

承办单位:北京邮电大学

协办单位:成都信息工程学院、北京交通大学

联 系 人: 李 剑

联系地址:北京邮电大学信息安全中心126信箱

电 话: 010-******** 135-81658488

传 真: 010-********

网 站: 5eccae0e763231126edb110d/xxaqjs/

电子邮箱: lijian@5eccae0e763231126edb110d

前 言

2009年4月1日至2009年8月18日,为了宣传信息安全知识,培养大学生的创新意识、团队合作精神,提高大学生的信息安全技术水平和综合设计能力,促进高等学校信息安全专业课程体系、教学内容和方法的改革,在教育部高等教育司、工业和信息化部信息安全协调司的指导下, 由教育部高等学校信息安全类专业教学指导委员会(简称教指委)主办、北京邮电大学承办,成都信息工程学院和北京交通大学协办 “2009年全国大学生信息安全竞赛”。

按照竞赛章程和指南,整个竞赛分为初赛和决赛两个阶段。初赛时间为2009年5月1日至6月30日。初赛由各高校参赛队网上报名,参赛队自行组队、自主命题、自主设计、不限定竞赛场所。参赛队将参赛作品题目及项目简介通过电子邮件提交,最终共有来自85所大学的572支参赛队报名。作品提交后,竞赛秘书处组织竞赛见证专家采用双盲评(即评审专家和参赛队之间相互匿名)的方式对所有参赛作品进行了评审,所有参加网评的专家都具有副教授或高级工程师以上职称。竞赛决赛于2009年8月15日至8月18日在北京邮电大学进行,共有108件作品进入决赛。

竞赛初赛网评专家由秘书处邀请,各高校教务处推荐,组委会确定的方式产生,本次竞赛最终确定了来自于66所高校或研究所的210名专家作为本次竞赛的初赛网评专家。竞赛评委成员由竞赛秘书处邀请,教指委审批确定。评委由25名专家组成,其中组长为沈昌祥院士,副组长为张焕国教授和方勇教授。竞赛过程中,第一次评委会议在北京邮电大学举行,讨论并通过了最终进入决赛的作品名单;第二次评委会议在沈阳举行,讨论了决赛的有关注意事项;第三次评委会议在北京邮电大学举行,讨论并通过了获奖作品名单,确定了下一届全国大学生信息安全竞赛由“哈尔滨工业大学”承办。

经过现场答辩与演示、专家评定、专家组讨论、竞赛组委会最终决定,本届竞赛共评出一等奖12名,二等奖24名,三等奖48名,优胜奖31名。优秀指导老师12名,优秀组织奖5名。

本作品集收集了大部分获奖作品简介,以期对获奖作品进行宣传,并为高校学生参加以后的竞赛提供参考。作品集也可以作为指导老师、信息安全研究和开发人员以及信息安全相关企业的参考。作品集的印刷和出版得到了获奖作品创作人员、指导老师及其所在高校的同意,作品所有权归作品创作人员所有,其他任何单位和个人不得以任何方式在未经过作品所有人同意的情况下侵害其所有权。

本次竞赛得到了各高校教务处、网评和决赛专家的支持;北京邮电大学教务处对本次竞赛提供了人员、环境和经费的支持;北京邮电大学计算机学院为本次竞赛提供了人员和场地支持;北京邮电大学计算机学院信息安全系以及成都信息工程学院和北京交通大学的相关老师承担了竞赛

组织工作;SafeNet公司、北京邮电大学出版社对于本次竞赛给予了经费赞助;北京邮电大学杨义先教授领导的灵创团队为本次竞赛提供了人员和经费等帮助。借本作品印刷之时,谨代表全国信息安全类专业教学指导委员会、2009年全国大学生信息安全竞赛组委会及本次竞赛组委会秘书处对上述单位和个人深表感谢!

2009年全国大学生信息安全竞赛组委会 秘书处

2009年11月于北京

2009年全国大学生信息安全竞赛获奖作品集

目 录

一等奖作品

基于安全交换机的ARP攻击自动防御系 (1)

USB设备加密转接口 (5)

基于语义完整性的隐藏恶意代码检测系统 (9)

进程动态完整性检测系统 (13)

支持多还原点的磁盘隔离系统 (17)

Final (风诺)Web 服务防护系统 (21)

基于硬件平台的移动存储设备信息隐藏系统 (24)

支持多通道多任务的网络舆情监测与分析系统 (27)

基于交换分区的主机行为安全检测系统 (31)

可疑程序威胁分析系统 (35)

二等奖作品

U-Partner (38)

恶意程序行为分析识别系统 (41)

基于Word文档的多文件信息搭载系统 (44)

基于软件特征的盗版自发现系统 (47)

基于手机认证的网上购物支付系统 (51)

基于数据流跟踪的溢出防御与分析系统 (56)

基于校园网的个人防火墙设计 (60)

基于芯片虚拟化技术的主机防御系统 (63)

基于行为分析的隐私安全保护系统 (67)

盲环境下数字图象的可信性度量 (70)

三维动态验证码 (74)

数字水印和匿名指纹结合的版权保护系统 (78)

基于未知木马攻击识别和追踪的蜜罐系统开发 (82)

网络接入行为检测与审计系统 (86)

移动动态安防系统 (88)

应用程序安全加固系统 (91)

用户上网行为监控系统 (94)

三等奖作品

Windows 内核Rootkit检测方法的研究与实现 (97)

Google Android手机安全防护系统 (100)

Linux防火墙一体化安全管理 (104)

Web服务器实时安全防护系统 (107)

单点登录系统 (111)

低成本分布式容灾存储系统 (114)

反钓鱼网站(反钓鱼精灵) (117)

机器学习辅助的入侵检测防火墙联动系统 (120)

基于BMP图像的分散隐写术研究 (122)

基于CPK的安全插件平台 (126)

基于CPK的电子支付认证协议 (129)

基于IDEA算法的十进制加密器 (133)

基于LBS的位置隐私保护 (136)

基于NDIS中间层驱动的Web安全动态防护系统设计与实现 (139)

2009年全国大学生信息安全竞赛获奖作品集

基于格的类Ntru算法的软硬协同设计与实现 (143)

基于痕迹关联分析的计算机取证系统 (147)

基于环境自识别的可信数据保护工具 (150)

基于蓝牙的文件分割存储保密技术 (153)

基于蓝牙通讯和条形码的实时身份认证系统 (157)

基于视觉密码的多秘密分享系统 (160)

基于手持智能终端的虚拟移动专网系统 (164)

基于数字认证的单点登录系统的设计与实现 (168)

基于协议分析和主动测试的抵御DDoS攻击系统 (171)

基于硬件标识的多重防护软件授权系统 (174)

基于中文柔性过滤技术的Word实时过滤系统 (177)

基于主动防护技术的安全优盘 (179)

内网安全管理与监控 (182)

基于静态内存分析的windows取证 (185)

软证件防伪系统 (188)

双重数字水印 (193)

网络安全审计 (196)

网络加密器 (199)

P2P文件安全传输平台的设计与实现 (203)

一种动态软件水印技术 (208)

兆瓦级风电机组远程服务安全控制器 (211)

支持密钥聚合的网络文件加密共享系统 (214)

智能垃圾邮件过滤系统 (217)

优胜奖作品

IE浏览器主页修复工具 (220)

Windows桌面安全管理系统 (222)

恶意代码分析系统 (225)

个人防盗墙 (229)

关于动态口令卡时间同步及中间人攻击的解决方案 (232)

机密文件个性化监控系统 (235)

基于MySQL的恶意篡改修复系统 (238)

基于灰理论的无线局域网入侵行为分析系统 (240)

基于人工神经网络的密钥管理方案 (243)

计算机桌面安全防护系统 (247)

局域网文件安全卫士 (251)

抗攻击的入侵检测系统 (254)

软件版权保护系统 (258)

网络设备非法接入定位 (261)

网上校园一卡通的实现研究 (265)

文件可疑通信行为检测系统 (270)

基于CA的安全敏感实用感知Hash函数图像取证系统 (274)

医院化验单自助打印系统安全性设计 (278)

移动存储设备硬件安全防护盾 (282)

远程物理设备识别系统 (284)

附录

一.2009年全国大学生信息安全竞赛组委会名单 (287)

2009年全国大学生信息安全竞赛获奖作品集

二.2009年全国大学生信息安全竞赛组委会秘书处名单 (288)

三.2009年全国大学生信息安全竞赛参赛学校与队伍统计表 (289)

四.2009年全国大学生信息安全竞赛获奖名单 (292)

2009年全国大学生信息安全竞赛获奖作品集

基于安全交换机的ARP攻击自动防御系统

参赛队伍:殷俊夫,王栋,刘胡笳

指导教师:姚羽

参赛高校:东北大学

获奖类别:一等奖

摘要;目前,由ARP攻击导致的中小型局域网瘫痪的例子不胜枚举。由于ARP攻击往往采用虚

假的地址信息,因此现存的主要防御方式均存在一定的缺陷。SQUARE小组设计并实现了一种

基于交换机端口安全的局域网防御系统:SQUARE,能够弥补现存方法的缺陷,实现对ARP攻击

源的实时检测、定位和自动隔离。

1.相关工作

目前,因为ARP攻击而导致个人主机、企业内网、校园网络瘫痪的例子不胜枚举。当前ARP攻击主要有两种形式:

(1)主动的恶意攻击。

(2)主机被动感染ARP病毒,但它仍将以ARP欺骗的方式对网络进行攻击。

而这两在种形式都将使用以下方式对网络进行攻击:

(1)随机地址冲突攻击

随机地址冲突攻击会导致交换机出现大量flooding现象,并且网络中的主机频繁出现IP地址冲突。

攻击源在局域网中散布大量的随机虚假ARP包,导致网络中的主机频繁出现IP地址冲突。

图1 网关欺骗攻击原理

(2)网关欺骗攻击

它所产生的影响为网络中的主机出现禁止上网访问和网络中传输的数据安全性遭到破坏。其攻击原理如图1所示。

在这种攻击中,攻击主机会向网络中的其他主机发送虚假的ARP包,使网关IP地址对应Attacker主机的MAC 地址,使网络中的其他主机将Attacker主机误认为网关,从而导致Attacker主机能够截获全部通过网关转发至外网的数据。

(3)禁止上网攻击

禁止上网攻击的原理与网关欺骗攻击类似,只不过发起禁止上网攻击的Attacker主机会使用随机MAC地址与网关IP地址对应,使正常主机无法与网关通信,直接导致主机无法访问外网。

第 1 页共 297 页

2009年全国大学生信息安全竞赛获奖作品集

第 2 页 共 297 页 由于攻击者发送的大都是虚假的ARP数据包,因此目前常见的方法很难检测出真正的攻击者。当前针对ARP 攻击的主要防御方式为:

(1)主机防火墙。以奇虎360 ARP防火墙为代表的建立在主机之上的个人防火墙只能检测到单个主机被ARP攻击,却只能得到攻击者使用的虚假MAC地址,无法获得攻击者的真实地址信息,因此不能正确定位攻击主机,无法对攻击源做任何处理,导致网络中依然存在大量虚假的ARP数据包。

(2)配置交换机端口安全策略。配置安全策略主要是指在交换机端口上设置允许通过的源MAC地址的阈值,当端口的安全地址的数目超过阈值时,则会产生安全违例。对安全违例的处理方式包括以下三种:

Protected:端口将丢弃未知名地址的数据包;

RestrictTrap:向管理员发送Trap通知,但对数据包不做任何处理;

Shutdown:关闭端口并向管理员发送Trap通知。

三种安全策略都存在一定的缺陷,如表1所示。

表1 三种基本安全策略的缺陷 安全策略

缺陷 Protected

无法发现网络中出现ARP攻击 RestrictTrap

网络管理员无法及时找到ARP攻击源 Shutdown 可能导致网络中其他正常主机无法连接到网络

而对于网关欺骗型攻击,无论是使用个人主机ARP防火墙,还是配置交换机端口安全策略,都无法阻止攻击源。

为了解决上述问题,本作品将设计并实现一种基于交换机端口安全的ARP攻击自动防御系统:SQUARE,实时检测ARP攻击并自动隔离ARP攻击源。

2.本作品的研究内容

在现有的情况下,如何生成多种交换机。

(1)对于随机MAC 地址攻击

当出现ARP 攻击时产生大量虚假的MAC 地址,交换机产生安全违例发送Trap 给管理系统(可能多个交换机出现安全违例),管理系统监听网络,捕获Trap 通知,并创建单独的线程处理Trap 包。通过算法分析出某个或某几个交换机端口连接的是ARP 攻击源。

(2)对于网关欺骗型攻击

当系统捕获某个虚假的网关Arp 确认包的时候,通过MAC 地址定位算法分析连接ARP 攻击源的交换机端口组,并进行分析定位。

当找到攻击源之后,系统将会进行报警。管理员可以根据自身的需要,确定是否需要封闭相应的攻击源端口。从而消除危机,解决问题。

(3)对于禁止上网型攻击

针对网关IP 地址进行随机MAC 地址攻击检测,当检测到禁止上网攻击后,捕获Trap 通知,并创建单独的线程处理Trap 包。通过算法分析ARP 攻击源连接的交换机端口。

在网络运行过程中,管理员可以通过预定义策略,自动或手动打开任何已经关闭的交换机端口,恢复问题主机的网络连接。

本系统主要由三层构成,分别是:用户层,内

核层,网络接口层。

(1)用户层:主要支持用户的各种操作,是用户

能够简单的操作软件,并及时获取系统信息。

(2)内核层:主要是分析处理网络接口层的数

据,并将处理结果反映到用户层,以便用户做出决

策。

(3)网络接口层:主要是抓取交换机发出的

TRAP 包和向交换机发数据包。

2009年全国大学生信息安全竞赛获奖作品集

第 3 页 共 297 页

系统的核心就是SQUARE 算法。通过SQUARE 算法,我们可以准确定位攻击源的位置,并作出相应的处理。SQUARE 算法的描述如算法1所示:

3.实验及结果

测试主要在功能和性能上展开详细、严密的测试,最后通过使用本系统与奇虎360 ARP防火墙在同样的攻击条件下进行攻击测试来比较测试结果,验证了本系统的性能。我们对系统做了多组试验,其中之一共用了32台PC 机,8台交换机和一台路由器。其中网络中。

系统测试的结果如图2,3,4所示:

图2 随机地址攻击测试结果

图3 网关欺骗攻击测试结果

图4 同时攻击测试结果

由实验可以得出,本软件可以快速准确的判断ARP攻击源,并断开攻击源的网络连接,可以有效的防御ARP 攻击。与三种基本端口安全策略和ARP防火墙相比较,本软件克服了它们的缺陷,并集成了其优点,与其它四种ARP攻击防御的基本安全策略对比如表2所示。

表2 SQUARE与四种基本安全策略的比较

Protected RestrictTrap Shutdown SQUARE ARP防火墙 发现ARP攻击 √ √ √ √ √ ARP攻击报警 √ √ √ √ ARP攻击源追踪 √ 不影响其他主机通讯√ √ √ √ 自动封闭端口 √ √ 自动配置交换机 √ IP 冲突攻击 √ √ 网关欺骗攻击 √ 随机地址攻击

2009年全国大学生信息安全竞赛获奖作品集

禁止上网攻击 √

自动生成拓扑图 √

兼容多种交换机 √

4.创新点总结

(1)能够准确的判断攻击源。、

(2)自动关闭被感染主机所连接的交换机端

(3)直接利用软件对交换机进行配置

(4)拖拉式手动添加部件,灵活控制网络拓扑图

(5)能够兼容不同品牌型号的交换机

(6)具备自动生成拓扑图功能

5.未来工作

进一步完善自动生成拓扑图与兼容多种交换机模块,系统能够更加稳定的生成大型高异构网络,系统随之具有更加广泛的应用价值。

参考文献

[1] 谢希仁. 计算机网络(第四版).大连理工大学出版社,2003.12.

[2] 雷震甲. 网络工程师教程(第二版).清华大学出版社,2006.5.

[3] 李磊. 网络工程师考前辅导.清华大学出版社,2007.4.

[4] 郭红芳. 锐捷三层交换机上防范ARP欺骗攻击的解决方案. 信息安全与通信保密2009年 05期,2009.

[5] 尹军,郑光勇,朱贤友. 如何在校园网络中快速查找ARP欺骗源. 计算机安全2009年 06期,2009.

[6] 马颖. 计算机网络自动拓扑发现的研究. 重庆大学(中国优秀硕士学位论文),2007.

[7] 石玫. 网络拓扑自主发现技术研究. 解放军信息工程大学(中国优秀硕士学位论文),2007.

第 4 页共 297 页

2009年全国大学生信息安全竞赛获奖作品集

USB设备加密转接口

参赛队伍:武兰阳,张伟,黄国,崔临龙

指导教师:王 进

参赛高校:国防科学技术大学

获奖类别:一等奖

摘要;生活中U盘敏感数据丢失而造成的泄密事件频繁发生,因此U盘数据加密存储技术受到广

泛关注。目前市面上已有的U盘数据加密产品主要分为软件加密和硬件加密两类,它们在使用

过程中都存在着一些不足,主要表现在以下方面。软件加密:需要安装专用软件,限制了其使

用范围;由于系统稳定性原因,容易导致软件损坏,从而导致数据丢失;密码需要人工记忆,

一旦忘记密码,数据将永久丢失;密钥数据的保存存在安全隐患。硬件加密:加密过程由硬件

完成,一般是一对一的加密,对普通U盘无法加密;产品的价格较为昂贵,限制了其使用的推

广。本课题设计和实现了一款USB加密转接口,该转接口具有较强的加密功能,继承了上述两

者的优点,弥补了两者的不足,性能稳定可靠,具有极高的应用推广价值。本课题设计和实现

的USB加密转接口具有以下特点:1、通用性强:无需特殊专用U盘,使普通U盘既可作保密U盘

使用,又可作普通U盘使用,实现了加密数据与非加密数据的逻辑隔离;2、安全性高:采用DES

算法加密数据,保证了数据加密强度;密钥保存于SD卡中,独立管理,不易受到攻击,用户无

需记忆密码;密钥位数较长,增强了数据的加密性;3、适用性广:作品支持目前市面上的所

有主流U盘;4、使用便捷:无需安装专用软件或驱动,即插即用;加密过程对用户透明。该作

品目前已通过大量测试,性能稳定可靠,正在试用验证阶段,该作品适用于政府机关、军队、

企业、个人以及其他对文件信息安全要求较高的场合。

1.相关工作

(1) 在制作初期,搜集信息、查阅和整理资料,了解应用需求,了解和分析当前加密产品的工作原理与不足;

(2) 系统设计阶段,提出设计方案,进行方案论证,确定系统结构,明确小组分工,进行实际制作;

(3) 进行软硬件系统调试,完善系统功能,提高系统性能;

(4) 总结工作经验,提出改进方案。

2.本作品的研究内容

(1) 硬件设计与实现

根据系统功能需求,本小组选取STC11F31XE单片机作为主处理器, 选用菲利普公司的PDIUSBD12作为USB DEVICE接口芯片,CH375芯片作为USB HOST接口芯片。其中,PDIUSBD12用来实现加密转接口与计算机的通信,使转接口可以接收和处理SCSI/UFI命令和数据,CH375负责实现转接口对U盘任意扇区的读写。MCU实现对接口的控制与对数据的加密,系统结构如图1所示。

(2) 软件设计

软件设计采用Keil集成开发工具,利用C语言进行程序开发。根据功能需求,软件设计可分为四部分:USB DEVICE接口固件、USB HOST接口固件、数据加解密和密钥管理。

USB DEVICE接口固件设计:MCU通过D12与计算机进行通信,主要研究USB通信底层协议以及USB通信端点的控制,从而实现与计算机通信过程中将转接口配置为假U盘,使加密转接口可以接收和处理计算机发出的SCSI/UFI 命令。

USB HOST接口固件设计:研究MCU对U盘的读写,主要实现加密转接口处理SCSI/UFI命令,通过CH375对U盘的扇区进行读写。

第 5 页共 297 页

2009年全国大学生信息安全竞赛获奖作品集

第 6 页 共 297 页 数据加解密处理:主要研究DES加密算法的实现和MCU对U盘文件系统识别,通过转接口把计算机发给U盘的文件数据加密存储,并隐藏加密数据的文件目录,解密过程是上述过程的逆过程。

密钥管理:将加密算法DES所需的初始密钥保存在SD卡中,并通过SD卡进行用户身份识别。

图1 系统结构

3.实验及结果

(1) 作品外观

完成后的作品如下图所示。

图2 作品外观 (2) 功能测试 (以Kingston 2GB U盘作测试)

第一步:把普通U盘直接连接计算机,可以发现名为“实验”的U盘盘符,打开该U盘会看到三个文件和一个

文件夹,这些均是未加密文件,如图3所示。

图3 未加密文件

第二步:U盘通过USB加密转接口连接计算机,但是不插入SD密钥卡,会发现USB转接口没有工作,计算机端无任何响应,插入其它不带密钥的SD卡,计算机也无任何响应,实现了SD卡密钥管理和用户身份识别。

第三步:U盘通过USB加密转接口连接计算机,并且插入SD密钥卡。在计算机上可以看到名为“国防之盾”的U盘盘符,打开此U盘会发现加密文件,此时USB加密转接口正常工作,如图4所示。

2009年全国大学生信息安全竞赛获奖作品集

第 7 页 共 297 页

图4 U盘中原有加密文件

第四步:向该U盘中复制一份文件,转接口将文件进行加密后存储在U盘中,如图所示;

图5 向U盘中复制文件

第五步:再用该U盘直接连接计算机,只能发现未加密文件,看不见加密文件,说明USB加密转接口能将加密文件进行隐藏。

3、 支持U盘的种类测试:通过大量的测试,目前支持的U盘主要有:Kingston、Sony、SSK(飚王)、清华紫光、朗科、爱国者等市面上主流U盘。

4、加密文件的加密强度测试(测试方法见详细报告)

5、对加密文件的隐藏性测试

该加密转接口不仅对数据进行了加密存储,还对文件目录进行了隐藏。

(1)在测试2中已经看到U盘直接连接计算机时,无法看到已加密的文件,实现了对加密文件的隐藏;

(2)使用专业恢复软件EasyRecovery对该U盘整盘扫描,仍然无法看到加密的文件,如图6所示。

图6 Easyrecovery软件的使用

4.创新点总结

该USB加密转接口具有目前主流软硬件加密的主要功能,在一定程度上弥补了一些软硬件加密的不足,具有较高的安全性和较强的实用性。同时还具有一定的创新性,体现在几下几个方面:

(1)即插即用,无需安装驱动和应用软件;

(2)操作透明,加密存取由硬件来完成;

(3)较强的通用性,该作品无需专用U盘,可完成对普通U盘的加密工作;

(4)具有双重模式,数据逻辑隔离,加密数据和非加密数据在用户使用过程中是分开的,互不影响;

2009年全国大学生信息安全竞赛获奖作品集

(5)密钥独立管理,使用SD卡完成用户的识别与密钥的管理,增强了保密强度,同时方便用户管理。

5.未来工作

目前,该作品工作可靠、性能良好,但由于受限于硬件电路,总体性能需进一步改善和提高,总体工作主要从以下几个方面开展:

(1)升级硬件系统,包括使用速度更快的微处理器和USB接口电路,使之能够支持IDE、SATA、eSATA等,而这是整个系统性能提升的基础;

(2)升级和优化固件程序,使之支持多分区U盘,多用户识别;

(3)升级加密算法,拟采用3DES、AES等加密算法,增加加密强度;

(4)研究密钥管理,采用加密强度更高、使用更加方便的密钥管理方法,例如指纹识别等进行密钥管理。

第 8 页共 297 页

2009年全国大学生信息安全竞赛获奖作品集

基于语义完整性的隐藏恶意代码检测系统

参赛队伍:游伟,刘虹,刘爽,刘阳

指导教师:梁彬

参赛高校:中国人民大学

获奖类别:一等奖

摘要:Rootkit是一类被攻击者用于隐藏自身踪迹和保留超级用户访问权限的工具[1]。它们

普遍具有隐藏特性,一般通过替换二进制命令文件、截获系统调用、截获内核函数指针、

直接修改内核对象等方式隐藏自身和相关恶意实体[2],并与其它攻击工具结合使用,危害巨

大。其中,尤以内核模式的Rootkit为甚,其行为隐蔽、复杂、多变,对其进行检测更为

困难。当前,Rootkit的检测方法和工具,主要从检测其隐藏功能角度出发,一般只涉及到

了Rootkit实现隐藏的某些方式,从程序文件、内核数据、内核控制流等较高层面的语义

完整性角度,对其加以检测。这样的检测机制不尽全面、彻底,可以被攻击者有针对性地

绕开,例如hp[3]这个Rootkit就可以成功地绕开国际领先检测方法SBCFI[4]。另外,虽然当

前有KSTAT[5]等某些检测工具从较低层次的语义完整性角度进行检测,但由于其检测时进行

全内存扫描,因此性能较低。为此,我们提出了一种基于较低层面语义完整性的检测方法,

该方法使用交叉视图(Cross-View)比对技术[6],有针对性地扫描内存空间。并提出“不可

绕开特征”这一创新性的概念,扫描实体内核数据结构,从而获得系统内真实存在的实体

集合,将之与用户通过系统信息查看工具所能查看到的实体集合比较,检测出隐藏实体。

基于该检测方法,我们开发了相应的原型检测系统RKDS(RootKit Detection System),适

用于主流的2.4版和2.6版Linux平台,能够准确、高效地检测隐藏的系统进程、网络连

接和内核模块。与现有的检测方法和工具相比,我们提出的检测方法具有以下优点:从较

低层面的语义完整性出发进行检测,难以旁路,检测精确;极具针对性地获得系统内真实

存在的实体,效率高;不依赖于特征库,能检测未知和变种的Rootkit。

1.相关工作

当前,Rootkit的检测主要有4种方法:

(1)以rkhunter为代表的,基于对已知Rootkit特征签名的检测[7]。此方法维护一个已知Rootkit特征签名的数据库,通过模式匹配来检测Rootkit。

(2)以Tripwire为代表的,基于对程序文件完整性的检测[8]。此方法在可信系统状态下,为关键的二进制程序文件计算并保存Hash校验码,通过将检测时点的校验码与先前的相比对,来检测Rootkit。

(3)以Nick等人提出的方法为代表的,基于对内核数据完整性的检测[9]。此方法,通过检测静态内核数据和动态内核数据的完整性是否被破坏,来判断是否有Rootkit被植入。

(4)以SBCFI为代表的,基于对内核控制流完整性的检测[4]。此方法主要关注内核程序的控制流完整性是否遭到破坏,以此来判断是否有Rootkit被植入。

上述这些检测方法和工具在检测Rootkit方面取得了一定的实效,但它们大多从较高层面的语义完整性角度出发,对Rootkit加以检测。这样的检测机制不尽全面、彻底,可以被攻击者有针对性地绕开。而现有从较低层面对Rootkit进行检测的工具,又由于其检测时进行全内存的扫描而效率低下。为此,我们从较低层面的语义完整性角度出发,提出了一种性能高、难以旁路的检测方法,并在Linux平台上为之开发了相应的原型系统。

2.本作品的研究内容

我们提出了一种基于语义完整性的检测方法,该方法使用交叉视图比对技术。所谓交叉视图比对技术[6],是

第 9 页共 297 页

2009年全国大学生信息安全竞赛获奖作品集

第 10 页 共 297 页 指通过比较不同途径获得的信息,根据其中的差异来发现异常。为此,引入两个相关概念:系统视图实体集和用户视图实体集。系统视图实体集为系统内真实存在的实体集合,记作集合S ;用户视图实体集为用户通过系统信息管理工具所能查看到的实体集合,记作集合U 。在此基础上,引入相应的语义完整性约束为:任何属于系统视图实体集的实体,必然属于用户视图实体集,即对于(?x ) (x ∈S →x ∈U )。凡违背这一约束的实体,均被视为隐藏实体,即设集合H =S -U ,?x ∈H 为隐藏实体。

基于这个检测方法,我们开发了相应的原型检测系统(RKDS),适用于主流的2.4版本和2.6版本Linux平台。RKDS能够检测隐藏的进程、连接和模块,并提供结束隐藏实体的功能。如图1所示,RKDS由内核态模块(rkds.ko )和用户态图形化控制程序(rkdsu )两部分构成。其中内核模块负责扫描系统内真实存在的实体、响应结束实体请求;用户态程序负责获得系统视图实体集S 和用户视图实体集U 、比对查找被恶意隐藏的实体,并输出检测结

果。内核态模块与用户态程序通过proc文件系统进行通信。

图1 RKDS 系统架构示意图

实现RKDS系统有4个关键技术环节:获得系统视图实体集S 、获得用户视图实体集U 、交叉视图比对以获得隐藏实体集H 、结束隐藏实体。以下分别作简单介绍:

(1)获得系统视图实体集S 。由于一个实体在其整个生存周期内,必然存在与之相对应的内核数据结构,此类数据结构存在于系统内核空间中。首先,我们给出以下定义:

定义:不可绕开特征是指可作为扫描依据的实体内核数据结构属性,这些属性与实体或系统的正常运行密切相关,对其进行篡改将导致实体或系统无法进行工作。

我们总结归纳了系统进程、网络连接和内核模块对应的内核数据结构特征,从中提取出其中的显著部分,进一步研究。通过模拟攻击者旁路检测机制的方式,对实体特征进行修改,将修改后会造成实体崩溃(或不稳定)及系统崩溃(或不稳定)的特征作为判断实体内核数据结构的依据,从而保证可靠地获得系统内真实存在的实体。以获得系统内真实存在的进程为例,我们逐一分析了进程内核数据结构task_struct的成员变量,从中提取出不可绕开特征—task_struct的成员变量thread_info中的task指针指向包含它的task_struct。任何修改这一特征的企图,都将导致系统无法正常运行。因此,基于这一特征进行进程内核数据结构的扫描难以被攻击者旁路,从而保证获得的系统视图进程集合真实、可靠。在搜索实体内核数据结构方面,盲目地进行全内存扫描,必然会导致检测系统性能偏低。为此,我们深入分析了Linux内核关键数据结构的内存分配机制,发现Linux使用slab分配器来管理这些内核关键数据结构的分配和释放。因此,我们有针对性地扫描slab,以获得系统视图实体集S ,保证检测系统具有较高的性能。

(2)获得用户视图实体集U 。通过模拟ps、netstat、lsmod等系统信息管理工具,读取proc文件系统中的相关目录和文件,以此获得用户视图实体集U 。

(3)交叉视图比对以获得隐藏实体集H 。通过比较系统视图实体集S与用户视图实体集U之间的差异,获得隐藏实体集H 。

(4)结束隐藏实体。当用户请求结束实体时,用户态程序通过proc文件系统向内核态模块发送命令。由内核态模块负责结束实体:向要结束的进程发送kill信号以结束进程;关闭要结束的连接对应的socket文件描述符以结束连接。

2009年全国大学生信息安全竞赛获奖作品集

第 11 页 共 297 页

3.实验及结果

为了验证检测方法和检测系统的实际功能和性能,我们分别在Linux-2.4(1.73GHz CPU,512M RAM,Red Hat Linux 7.3,2.4.18内核,虚拟机:VMware)和Linux-2.6(1.83Ghz CPU,2G RAM,Red Hat Enterprise Linux 4,2.6.9内核)环境下对RKDS 进行功能测试和性能测试。结果表明,RKDS 在功能和性能方面都有良好的表现。

功能测试方面,我们收集到能成功运行于实验环境的8个Rootkit [3]

,其隐藏方法包括截获系统调用(System Call Hook)、截获内核函数指针(Function Point Hook)、直接修改内核对象(DKOM)。RKDS均能检测出来,且

不存在误报。作为比较,知名检测工具rkhunter [7]和先进检测方法SBCFI [4]

存在一定的漏报,如表1。

Rootkit 名称及版本 Linux 内核版本 Rootkit 隐藏功能 检测情况

进程连接模块 RKDS rkhunter SBCFI adore-0.42 2.4 是 是 是 √

× √ adore-ng-0.56 2.6 是 是 是 √ × √ knark-2.4.3 2.4 是 是 是 √ √ √ wnps-0.26 2.6 是 是 是 √ × N/A enyelkm-1.1.2 2.6 是 否 是 √ × N/A yl3rk-1.0 2.6 是 否 是 √ × N/A hp-1.0.0 2.4 是 否 否 √ × × modhide-1.0

2.4

×

表1 RKDS 功能测试结果

性能方面,我们在Linux-2.4和Linux-2.6环境下,分别测试了RKDS检测进程、检测连接和检测模块的执行时间。并通过对比RKDS安装前后,性能测试软件Unixbench对系统的评分以及三个典型的系统调用执行时间的变化,来评估RKDS对操作系统整体性能的影响。测试结果表明:在Linux-2.6下,RKDS对被隐藏进程、连接和模块的检测平均时间在0.1s左右;在Linux-2.4下,基于操作系统本身的实现机制,我们为获得实体需要扫描的内存数据结构要多一些,因而RKDS的检测时间与在Linux-2.6下相比要长一些。但RKDS在Linux-2.4下检测实体所用时间也不超过1s。RKDS对操作系统的整体性能和局部性能的影响都十分微小,系统的性能下降不超过1%。表2是RKDS性能测试结果。

Linux 内核版本

测试项目

测试结果

性能开销增

加 安装RKDS 前 安装RKDS 后 Linux-2.4 使用Unixbench 测试( 得分 ) 107.2

106.2 0.933% 典型系统调用(s)getpid()

1.011040875 1.014007625 0.29343522%open()

2.740464375 2.745073125 0.16817405%Linux-2.6 使用Unixbench 测试( 得分 ) 266.2

265.3 0.338% 典型系统调用(s)getpid()

1.389093953125 1.39306724 0.286% open()

2.930956034375

2.933304578125

0.0801289%

表2 RKDS 性能测试结果

4.创新点总结

我们提出的检测方法及实现的原型系统,与现行的其它检测方法和检测工具相比,具有以下创新点: (1) 从较低层面的语义完整性出发进行检测,难以旁路,检测精确

我们的检测方法立足于较低层面的语义完整性,关注到Rootkit 隐藏特性难以旁路的两个关键点:所有实体,不论可视与否,在其生存周期内必然在内存中有相对应的内核数据结构;所有Rootkit,不论采用何种隐藏方式,必然会导致系统内真实存在的实体与用户通过系统信息管理工具所能看到的实体不一致。在扫描实体的内核数据结构方面,我们使用不可绕开特征作为依据,这一点保证了我们获得的实体信息真实可靠。我们的

检测方法能够检测出国际领先检测方法SBCFI [4]

所不能检测出的Rootkit。

(2) 极具针对性地获得系统内真实存在的实体,效率高

我们开发的检测系统在获得系统内真实存在的实体方面,采用极具针对性的扫描方式,相比基于全内存搜

2009年全国大学生信息安全竞赛获奖作品集

索的同类型检测工具KSTAT[5],具有更高的性能。

(3) 不依赖于特征库,能检测未知和变种

我们的检测方法不依赖于特征库,不需要已知Rootkit的特征签名,它的检测是基于较低层次语义完整性的,不仅能够检测出已知的Rootkit,还能够检测出未知的和变种的Rootkit,优于基于签名的rkhunter[7]等检测工具。

5.未来工作

我们提出了一种基于较低层面语义完整性的检测方法,通过交叉视图比对技术[2],检测隐藏实体。基于这个检测方法,我们在Linux-2.4和Linux-2.6平台上分别开发了相应的原型系统,验证了该方法的有效性。

我们提出的检测方法是与平台无关的。但由于时间的限制,我们只在Linux平台上开发了相应的原型检测系统。在未来的工作中,我们将在Windows等操作系统平台上实现我们的检测方法,使之在实际应用中更好地发挥作用。

参考文献

[1] Alisa Shevchenko,Rootkit revolution,5eccae0e763231126edb110d,2008.

[2] Ryan Riley, Xuxian Jiang, Dongyan Xu, Multi-Aspect Profiling of Kernel Rootkit Behavior,

Proceedings of the fourth ACM European conference on Computer systems, 2009.

[3] 5eccae0e763231126edb110d/UNIX/penetration/rootkits/indexdate.

[4] Nick L. Petroni, Jr. and Michael Hicks, Automated Detection of Persistent Kernel Control-Flow

Attacks. In Proceedings of the ACM Conference on Computer and Communications Security(CCS), 2007.

[5] 5eccae0e763231126edb110d/tools/200104/104.

[6] Joanna Rutkowska,Thoughts about Cross-View based Rootkit Detection. Unver ffentlichtes

Memorandum,June 2005.

[7] 5eccae0e763231126edb110d/linux/misc/rkhunter-1.3.4.tar.gz/.

[8] John Levine, Brian Culver, Henry Owen, A Methodology for Detecting New Binary Rootkit Exploits,

Proceedings IEEE SouthEastCon,2003.

[9] Nick L.Petroni.Jr, Timothy Fraser, Aaron Walters, William A. Arbaugh,An Architecture for

Specification-Based Detection of Semantic Integrity Violations in Kernel Dynamic Data, 15th USENIX Security Symposium, July 31-Aug 4,2006.

第 12 页共 297 页

2009年全国大学生信息安全竞赛获奖作品集

进程动态完整性检测系统

——PDIMS

参赛队伍:魏成龙,宋少华,华雯,边攀

指导教师:梁朝晖

参赛高校:中国人民大学

获奖类别:一等奖

摘要:恶意软件破坏计算机安全的惯用手段是破坏进程的完整性,因此监视操作系统中进

程的变化,检测进程的完整性,防止进程被恶意篡改对保护计算机系统安全至关重要[1]。

进程的完整性检测可分为静态完整性检测和动态完整性检测。与静态完整性检测相比,动

态完整性检测能够检测出进程在执行过程中是否被恶意篡改,从而可以更好地确定进程的

可信性。我们从实时、动态检测的角度出发,针对进程执行时内存代码被篡改的威胁,提

出了一种以页为粒度的进程动态完整性检测方法,并以Linux操作系统为基础开发了一个

原型系统——进程动态完整性检测系统PDIMS(Process Dynamic Integrity Measurement

System),实现了以页为粒度的进程动态完整性检测与保护。PDIMS根据进程的结构特征,

借助进程的可执行文件,剖析出进程执行时的代码布局,结合操作系统的工作原理及新一

代CPU的代码执行支持机制[2],在代码页执行时,在操作系统内核中捕获并检测进程的完

整性。与现有的完整性检测系统相比,PDIMS能动态跟踪进程代码页的变化,检测进程执行

时是否被恶意篡改,以确保进程的动态完整性,克服了现有检测系统在进程动态完整性检

测方面的不足。PDIMS的主要贡献在于实现了以页为粒度的进程内存代码的动态完整性检

测,并充分利用新一代CPU的硬件支持机制,实现了对进程代码的实时、高效检测,同时,

通过面向现实威胁的实证检验,证明了PDIMS能够正确高效地检测进程的动态完整性。

1.相关工作

从已有的经验和研究成果来看,系统的完整性检测可在多个层面上实施。

(1) 以Tripwire[3]为代表的经典静态完整性检测系统立足于检测攻击者对文件系统实体的恶意篡改,但它们并没有考虑到进程的动态映像(即执行时的进程状态),因而,如果进程在运行过程中被恶意篡改,这种类型的检测系统将无法检测。

(2) CoPilot[4]和NFORCE[5]通过对指定内存区域的检查来判定系统在运行过程中是否被恶意破坏。然而,它们只能对处于预定义区域中的信息的完整性进行检测,但不能将检测的内存区域与目标进程实际使用的内存区域对应起来,因而并不能准确地反映进程完整性的实际情况。

(3) LKIM [6]通过对内核中关键数据结构的检测来刻画内核的动态完整性。尽管它能有效地检测Rootkit注入、动态篡改等攻击行为,但它的主要目的是检测内核完整性,没有真正实现对进程的完整性检测。

(4) Patagonix[7]的工作在进程动态完整性检测方面与我们的工作比较接近,但它主要集中于采用虚拟机技术来对检测机制进行保护,同时仅仅对一些常见的Rootkit进行了检测,没有对进程代码在执行时被篡改的现实攻击手段进行实证检验。因而,无论从着眼点还是实证检验方面来看,与我们的工作还是有一定差别的。

综上所述,系统完整性检测是国际上的一个热点研究课题,并已有许多研究成果。但我们的工作与前人的工作相比仍具有很多突出的特点,并且实现上也有相当的难度。因此,PDIMS的开发具有重要的现实意义和实用价值。

2.本作品的研究内容

第 13 页共 297 页

2009年全国大学生信息安全竞赛获奖作品集

第 14 页 共 297 页 我们从实时、动态检测的角度出发,针对进程执行时内存代码被篡改的威胁,提出了一种以页为粒度的进程动态完整性检测方法,并以Linux 操作系统为基础开发了一个原型系统PDIMS,实现了以页为粒度的进程动态完整性检测与保护,PDIMS 原型架构图如图1

所示。

PDIMS 主要技术环节包括以下五部分:

①建立进程代码页完整性数据库: 此完整性数据库是PDIMS 进行进程态完整性检测的基准。根据进程的结构特征,借助进程的可执行文件,通过解析器剖析出进程执行时的代码页布局。将代码页信息传递给摘要计算器,计算出进程被装载执行时各页的摘要(Hash 值),形成代码页完整性数据库。

②设置进程代码页NX(No eXecute)位:PDIMS 充分利用新一代CPU 引入的NX 位机制[2],在页面执行前设置NX 位不可执行,这样处理器从此页面取指令执行时会产生一个异常,我们在Linux 操作系统内核捕获此异常,并在异常处理函数中进行进程代码页的完整性度量。

③异常处理函数中检测进程动态完整性:通过设置NX 位,我们在代码页执行时使其先陷入内核异常处理函数中,在此函数中我们计算出此页面的摘要,然后检索数据库得到其对应的摘要值,如果二者是一致的,我们认为此代码页未被篡改,否则,认为该代码页被恶意篡改。

④检测后恢复代码页继续执行:当一个页面检测完成后,如果判定其没有被篡改,我们需要恢复NX 位,设置该代码页可执行,使其正常执行下去。为了防止页面在检测之后被恶意篡改,我们在设置不可执行后还要对其设置写保护,这样当页面在检测之后被篡改,我们仍可以捕获写异常,并再次将此页面降级为不可执行,保证了此方法对进程动态完整性检测的正确性。

⑤内核态/用户态数据交换:PDIMS 的完整性数据库、需要保护的进程的信息处于用户空间,而完整性度量在内核空间;另外,检测结果处在内核空间,需要向用户空间提示此信息。所以我们需要将内核态数据与用户态数据以合适的方式进行交换。PDIMS 根据不同情况,采用了两种数据交换的方式——内核符号表,proc 文件系统,完成了内核态/用户态的数据交换。

3.实验及结果

我们在Linux平台上设计并实现了进程动态完整性检测系统——PDIMS,并对其进行了两方面的测试:一方面是功能测试,测试其是否满足我们所希望的功能需求,另一方面是性能测试,测试系统运行后对于测试平台的性能影响。

在功能测试中,主要测试PDIMS能否对进程执行时代码页被篡改进行精准的检测。我们使用了基于ptrace机制的篡改进程执行体的恶意攻击[8],将攻击者的shellcode注入进程的执行体。在测试中,我们使用了一个流行的shellcode,q其目的是添加合法用户,注入进程vi中。结果显示,在未启用PDIMS保护vi时,该恶意攻击成功,在不被察觉的情况下成功添加了用户t00r到系统中; 而在启动PDIMS保护vi后,系统检测到该恶意攻击,并精确

2009年全国大学生信息安全竞赛获奖作品集

第 15 页 共 297 页

的定位到被篡改的页面,阻止其继续执行,结果如图2所示,其中下面红色部分为检测出的出错代码页信息。

图2 PDIMS 检测结果

在性能测试中,我们对典型的系统调用、常用的命令及测试平台的整体性能进行测试,观察其在PDIMS安装前后的系统性能开销,发现安装PDIMS对操作系统性性能开销影响较小。结果如表 1 所示:

表 1 性能测试

测试项目 安装PDIMS前 安装PDIMS后 性能开销 UnixBench

485.0 476.9 1.84% 典型系统调用 getpid(1000万次) 0.152944 0.158938 3.919% open(100万次)

3.9222194 3.9856382 1.617% sethostname(1000万次)9.615482 9.7184334 1.071% 常用命令 tar 0.388540 0.3891378 0.154% gzip

7.610042 7.617188 0.094% cp

6.8692288

6.888438

0.280%

4.创新点总结

我们提出了一种以页为粒度的进程动态完整性检测方法,并以Linux 操作系统为基础开发了一个原型系统——PDIMS,主要创新点如下: ? 实现了对进程完整性的动态、实时检测。以Tripwire为代表的传统静态完整性检测工具主要针对目标文件的

完整性进行检测,然而当进程装载进内存开始执行时,这些静态完整性检测工具将不能动态、实时的跟踪检测。PDIM系统引入动态、实时的检测机制,在进程执行时利用操作系统工作原理及CPU硬件机制,动态地跟踪当前执行的代码页,实时地检测进程的完整性。

? 充分利用新一代CPU的NX位硬件机制,实现了进程执行时完整性的高效检测。在进程装载入内存时,设置代

码页NX位,当进程执行此页时将产生异常,我们在相应的异常处理函数中,计算当前页面摘要值并与完整性数据库中的摘要值进行比对,进而确定该页是否被恶意篡改。利用硬件机制,实现了进程执行时检查,检测性能较高。

? 提出并实现了一种不依赖于攻击行为特征的进程完整性检测方法。许多防御检测工具,往往基于攻击方法的

特征进行检测,它们收集并形成攻击方法特征库,然后将检测的异常特征值与数据库中的特征值比对,确定检测结果。这种类型的检测工具对于未知的攻击无法检测。PDIMS 摆脱对攻击方法特征的依赖,并不关注进程如何被篡改,以及篡改后恶意代码要做什么,而是抓住了进程动态完整性被破坏的本质即代码页被篡改,进行检测。所以,PDIMS 不需要维护攻击方法的特征库,维护开销较小,并可以对未知的攻击方法进行检测,应用面较广。

本文来源:https://www.bwwdw.com/article/bhwl.html

Top