(计算机软件与理论专业论文)信息防泄漏保密系统若干问题的研究与实现.pdf_第1页
(计算机软件与理论专业论文)信息防泄漏保密系统若干问题的研究与实现.pdf_第2页
(计算机软件与理论专业论文)信息防泄漏保密系统若干问题的研究与实现.pdf_第3页
(计算机软件与理论专业论文)信息防泄漏保密系统若干问题的研究与实现.pdf_第4页
(计算机软件与理论专业论文)信息防泄漏保密系统若干问题的研究与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

信患鼍程大学硕士学位谂文 摘要 作为一秭广泛使用的资源共享平螽,局域网被广泛使朋。局域网的普及,为会理利用 黉源,提裹办公效攀提供了骞嚣条侉。毽与筵霜露,蜀域弼孛夔数援安全霾题也越来越突 出,尤其是霹络蠹会法用户对敏感数攘的无意泄漏和恶意窃取。 针对当前局域网存在的安全问题并结合用户进一步需黉,在第一版信息防泄漏保密系 统基础上研发了剪贴扳监控技术、保证系统稳定运行技术、防止敏感数据出外网技术以及 内网敏感文件安众抉享技术。以上四个功能的添加使得信息防泄漏系统功能照加完善,第 = 簸售惠茨淹潺强密系绞在整钵絮椽上扩震缝更好,囊能灏完善,运行曼稳悫。 本文分为褡个部分,每个部分分掰获鹜景到技术路线完整窝述土嚣霾个秘缝静实现。 对h o o k 技术、邋程线程注入技术、进程监控技术、内核态文件过滤驱动技术、网络连接 监控技术及网络驱动程序等做了较深入的研究并结合实际麓程需求提出了实现方法,具体 实现细节在论文中有较为详尽的介绍。 本文在结京处绘出了今螽的研究方向帮避步的王佟。 关键词:挂钩,邋稚线程注入,r 请求包,网络驱动矮瞄挂钩,文侔过滤驱渤,传输驱 动接口 筹碱夏 信患工程大学硕士学位论文 a b s t r a c t a so n e 韬n do fg 黝e r a lp l a 主f 研m 如fs h a r i 势gr c s o 掰e s ,m el a n ( 1 0 c a la an e t w o r k ) i s 弼d e l y 璐稿珏o w 硪瞪, 套ep 簿珏l 蕊z 鑫娃蝴o f 己a nh 嚣即瑗d 嬲| l 瑶黟。鑫霸瑚| a 黟静攥呔i n g g o o du s i n go f r e 氍c c sr c a s o n a b l y8 l l d 蠛m a n c i n g 也ee 塌c i e n c yi no 伍c e 。b u ta t 吐撼s 觚 e 斑n e , m e 咖b l 锄o fd a t as e c 埘t yi sa l s op r o m i n e n tm o r ea i l dm o r ci nt h el a n ,e s p e c i a l l yf o r 也e v a l i d a t e du s e r so f l a nw h oh a v en oi n t e n t i o nt od i v u l g em es e n s i t i v ed a t ao rs t e a lo np u r p o s e 1 bs o h ,cl a n s e c u r j t yp r o b l e m sa n ds 越s 每d 锄勰d so fo l 】rc l i 翎毽w ed e v e l o pc l i p b o a r d 糕砥圭o ft 扭珞1 0 9 冀簦穗翔拄融s 笋 把擞s 耄盎b i l i 移缝酝。b g y ,a 秘dp 辩v 鼹s 懿s 矗i v ei 娃触旋强。珏 o f 妇黜e t 把e 融o l o g ya n ds e c 嘲t y 鼎耕eo fs s i 6 v ei n 触搬越i o n 缸l a nb 8 s 撼go nm e6 r s t v e r s i o no fs e c u r i t ys y s t 锄o fp r e v e n t i n gi n f o n n a t i o nl e a :k a l lo ft t l ef o u rn 启wm n c t i o i l sm a k e s e c 嘣t ym es y s t 尊mo f p r e v e i l t i i l gi n f o r m a t i o nl e a kb e t t 既t h es e c o n dv e r s i o no f8 c c u r i t ) rs y s t e r n o f p r e v 铷t h l gi n f b 黼融i o n1 e a kh a sb e t t c r 麟p 勰s 沌i l i t ya n ds 蛐i l 坶l l l a n t h e 五r s to n e ! 囊ea 确c l e 氟鑫s 岛氍翔豳贼穗瓣带e 畦i v e 每如s 翻b e 攮d e 耄碰蠹描b 藏e 靶秘棚l o t e c h o l o g ym e 穗。畦f o ri n l 至n e 酌o k ,f e m o t e 缸e 8 d 两e c t 粥它啦o d ,p r o c c s sm o n i o f 蠡l e 蠡豫:f 出i v e r ,n e t w o r kc o n n e c tm o l l i t o rt e c h n 0 1 0 9 y ,w eh a v eb r o u g h tf o r w a r dh o wt oi m p l e i n e n t 丘d m p r o j e c tp o i n to f v i e w ,w h i c h w i l lb em t r o d u c c di nd e 诅i li nt h ca m c l e h l t h e a l d ,m o r c w o r k i i l t h ef i l t l l r ew i l l b e p o i n t o u t k 拿y 棒。翊s : 融漱羝糕。捃嚣辩蠢翊e c l ,袋冀囝l s 一珏) 深,强l es y 羹锄琢l e f 硎v 鹄程i l 篱磷l 页 髂惠王程大学硕士学彼论文 图目录 謦l 舞赡投濂毽匿 謦2 藏籍板嚣鼗、瀵慧翻圈腔氡瓣关系 图3d 矗浚入逶程逸蟪窝溺, 0 图4 正确的加载顺序和错误的加载顺序1 l 图5s d t r e s i o r e 检测出r o o t k j t 1 2 图6 黎一舨势贴板程序模块之阏袋系图 鹭7 第二舨赘鼯羲程净攘块之漓关系蘑。1 3 蚕sw 濂l o 啭潜2 辫0 嚣终鬻韵臻梅l 彳 图9 客户端和传输层1 8 图1 01 d i 裙户传输器交艇1 8 图1 l 网络谶程发现流摆圈2 l 蚕1 2 淫e a c 酶支舞臻稼流程溪 萤 3 出瘸数攒整裁滚辫 图1 4n d l s 驱动程序粱梅2 9 图1 5n d i s h o o k 安装前后结构变化3 2 图1 6 文件安全共享及加密传输檬块整体架构3 3 图1 7 发送数攥毽滚程鞠 墅1 8 数攥魏黧褥处理流舔+ 图l 譬文 串熬摩处瑾流耧 图2 0 上层应用程序与底朦驱动交互流程 图2 l 驱动稔序的安装流糨 图2 2 义傅安全共享驱动的龆载流程一 3 毒 3 5 3 7 3 8 4 0 4 l 霆黔卡器戆萋疆痔活凌努耩援鬟群 餮赫瀚数藏羧矮旁 图2 5 内联龋数调用原理阁4 5 图2 6 成用獠序调用n a t i v e a p l 酌数前函数堆栈变化4 6 图2 7n a t i v e a p i 被调用聪4 7 銎2 8 蘼楚a p l 蟊鼗被调瘸器蘧数壤棱窝获撒灏数入秘参鼗汇缓钱强片段4 7 鼙2 劈褥裂蠡数返嚣蘧黪汇缡我秘篾爱。 露3 0 嶷制函数参数栈并榆造丽数尾声4 8 第v 茛 信崽麓程大学硕士学位论文 表目录 表l 系统提供懿操纵剪贴板的蘧数6 表2 记录剪熬搽终历史蔫惠二维数缝l 垂 表3 记录剪赔搽俸历史信怠三维数维1 4 第搿夏 原创性说明 本人声明所摄交的学位论文是本人在导师指导下进行的研究工 # 及取得的研究成果。尽我所知,除 了文串耪嗣抽鞋标注秘致 錾匏连方争 ,谂文审不龟含其艟天已经发袭秘撰写过豹骚究箴蒙,瞧不售含鸯 获得信息工程大学蛾其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并标糸谢意。 学位论文题眦! 重查:垄丝盔毛毯壑丝壶翌垒丝塑量耖 学位澈赭魏堕丛竺蹴厮7 嚣瓣 作者指导教师签名:主! 圣丝惫 日期:川年 月舀日 , 学位论文版权使用授权书 本入完全了解倍惑z 箨大学有关保窜、傻耀学位论文的规定。零入授权信息工程大学弼以保鏊并是 豳家有关部门或辊构送交论文雏复印律秽奄乎文档,允许论文镀森阕和借霹;可| 三f 将学彼论文的全部或 部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描铸复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学谴论文题曩: 学位论文作者签 作者指导教师签 信息工程大学硕士学位论文 第一章引言 1 1 研究背景 骜蘸,隧着镕惑技术熬发震稳经济全球讫逶震懿热莰,逡赛经济已获王渡经济嚣健囱 知识经济时代转炎。而知识经济的特锻是以高科技产业为母向产业,以智力资源为首要依 据,知识所创造的价值在整个经济中占主要地位。因此,企业要想在知识经济时代把握主 动,抢占市场先机,就必须具备较强的核心竞争力,即技术、产品、市场、和管理的创新 能力。不断龟g 颏怒燎识经济时代的第= 个重要特征,效藏不仪依赖于知识,更袄赖于创新, 瞧只毒裁囊方藐傻囊谖转纯为更多豹;l 砉鬻。瑟镬囊懿基蒌i l ;楚麓谖,最畜具器较强瓣短谖警 理能力,才可能旃较强的创新能力。 但伴随着业务的扩展,许多公司或企业却不得不面临这样的难题:企业耗费巨资开发 的新产品或技术资料,却因员工的疏忽或跳槽被竞争对手轻松获取。即便是程严格控制下 的机密文档,也笼法防止合法用户下溅后将文档拷贝到其谨地方。有时敏感倍息的泄漏带 来戆螽莱是不畿瘸金钱衡量戆。麴对予举敬壤投郝门秘黧豢安全撬要嫠门,蘩蠹部褒黢夭 员通过内部诗算祝非法下载绝密橇密文俘,然后把情掇逶避闻谍贩卖给敌对嚣家,剐会危 及整个国家的安众。因此,开发一套适合政府、军事机要部门、企事业单位使用,能实现 电子文档有效安黛管理的文档管理系统是十分必要的。 1 2 国内外研究状况 镑鼹主述闳憨,论文( 蜀域弼数耀豫密系统懿骚究与赛嚣) p l 设诗势安鬻了今局 域网数据保密系统,初步研究并部分解决了局域网内受信任人员从事的违规翻攻击活动造 成的信息泄漏问题。在此基础上,课题组一方面依据该论文中提出的技术路线完善功能, 另外一方面继续浔求新技术方案解决新问题。 獗技术不断搬广,使得从主机上获得信息手段越来越多,如透过电子邮件、移动设备、 瓣络努露瓤等,瓣弦簧茨壹主撬敏感壤惑豹淫瀑必矮要全溪考虑各穆德提。囊罄嘉场主教 感信息防泄漏软伟产品并不多,并屐缀过调查研究发现此炎软件产品并不能撼所有敏感信 息泄漏的途径都切断。主要原因有三点,一是新技术的发展使信息传输手段增多,二是操 作系统不断升级使底层驱动开发技术随之变化,三是采用的大多技术依赖于w i n d o w s 操作 系统未公开文档,难度大,周期长,续果是没有任何一个研发单位会把最具裔核心竞争力 羧本文狴公齐。 在搜集大薰藤始资耩的基磴主,发缓如侮防止剪鼯板瀵漏敏感信感不毽怒客户最关心 的问题,而且也怒目前的难点和热点问题。例如若把一个敏感文档中的数据拷贝到非敏感 文档,然后再通过网络把敏感信息传邂出去,在这个过程中,禁止网络端口用户尚可接受, 但是如果禁止剪贴板使用功能绝大多数用户是不能容忍的。因此深入研究并嶷现在不影响 第l 委 倍感工程大学硕士学位论文 用户正常使用的条件下有选择的禁此用户使用剪贴板功能有实际的应用意义。 同类产品中宓现网络传出文件为密文一般采用在本机网络端口处对数据谶行加密,但 是这种方法解决方法不彻底,存在安念隐患。课题组基于文件过滤系统机制解决文件加密 晦题,进一步研究黪实瑷对c a e k 管理豹关毽技术。 当客户安装装惑跨渣潺保密系统之瑟希望襞毒安装该软停魏诗算橇稳戏个霹蔷的 两络,只有安装保护软件的计算机之间可以通过文件共窜相互传递数据,而没有安装保护 软件的计算机与密装保护软件的计算机之间不能通过文件头享传递数据,最终实现局域网 内有条件的文件欺亭。目前的软件产晶实现的功能仅是简单的放开或者禁成文件共享端 嗣,距离客户更_ i l 步的实际需要还裔定的差距。 采弼褒罄驱动援本秀发静软磐产菇鬻霉会造戏较磐之羯瓣洚突,逢或系绫戆不稳定, 有时会使得主鞭- 崩溃。例如,多数蜜念类产品常提示与其饱同类产品不兼容。笼其是卡巴 斯基集杀毒防火墙和反r o o t 础t 于一辫,使得许多基于鞭劝程序开发的软件产品不能正常 工作,课题组研发的驱动产品也遇到了类似问题。研究并实现如何使软件能够与卡巴斯基 共存对今后类似软件的开发有指导意义。 憨戆来说,瓣耱枣餐上熬这些产熬无论麸珐能上还是按零上不戆鬼安垒黉炭程度较离 豹用户荸位提供念藤、严格翡保护。霹予内部合法霞户藏身所造成静售怠澄潺不能有效解 决或者解决不够彻底。 1 3 设计目标和研究内容 本课题的髫椽楚:( 1 ) 研究内联接钩与远程线程注入技术,实现对剪贴扳巾全髑数据的 动态箍控,爨涯教黪数摇不会麦接或阉接通蓬剪蹩叛灌灞;稼) 疆究蠹核驱动鼬l s 氆k 技术,实现在局域嘲内用户之间安全懿事敏感文件;( 3 ) 研究内核驱动挂铸、l 和文件驱 动系统的c a c h e 臀理技术,实现对流出局域网敏感数据监控,保证非授权人员经由网络程 序传送的敏感数据是密文,在目的计算机中不能正常打歼;“) 研究内核软件闻的兼容性 阉题,特别是局域嬲保密系统如何与采粥同样驱动技术的杀毒类安全软件安众必处。 漂瑟完戒嚣将撵供更为稳定夔毽怠跨澄潺爨密系绕。苓毽在霉爱毪巍方爱瞧方嚣雯热 实用,而且其中研究和解狭实际润题所采用的技术路线辩稠关软俘开发其舂攒簿和辐射作 用。 为达到以上圈标,本课题研究主嚣内容包括: 1 ) 研究并嶷现剪贴板中全局数据的动态监控。需要研究w i n d o w s 剪贴投实现的原理, 剪熬叛诵麓夔系统丞数,翔舞辩。呔剪旗扳调瑶豹系统函数以及在剪切貔雩筝发生孵 正确篾鞭势菇板孛的数蕹献鄹燕来,剪麓叛孛弱数据要到哪里去。程逶当弱对程 控制复制粘贴动作,并根据源和目的的属性按照制定的安全策略控制输出内容的 明密文状懑。 2 ) 研究并炎现流出局域网敏感数据监控。需要研究、i n d o w s 中文件管瑷、c a c h e 和 蒡2 委 信意工程大学硕士学德论文 磁盘管理三者之间关系,研究以前各种文件管理中c 础l e 功能以及对实现加解密 系统的影响,实现文件加密时有效控制c a c h e 中明文数据。 3 ) 研究并实现局域网内粥户之间安全共享敏感文件。研究n 烈sh o o k 机捌和底层驱 麓疆謦蒸冀。呔熬瓣载。疆宠爨壤弼巾交箨荚攀爨键。 昏辑究弗簇凌蠹菝欲绺蠲麓蒙黎槛 霞蘧。冬爨簸蘩熬运行器瑾,卡曩鞭鏊与潆题缀 研究软 牛冲突原因,发生冲突时卡巴斯鏊调用的黼数是什么,珂以选择哪些方案, 备平中方寨嶷现优缺点和燕现滩魔的比较。最终达刹卡巴斯基6 。o 与本课题实现的 软件产龋凝同运行,瓶不擞嫩软件冲突。 差,毒谋题难纛彝关毽技本 国内辨兼于过滤驱动的资料文献相对较少,根多技术都处于研究阶段,在定程度士 增加了本课题的难度。在本题变观中肖以下难点; 1 ) 分轿对赘贻板进行蕊掇,当露复制和粘贴搡佟时镁,判断出内容的源鞫目的,并 擞攥麓粼羧裁鸷鼯援巾内容篓翳密文状态。 耸瓣蠹棱态驱旗卖嚣靛游病毒簌侮公舞靛说鹱文籀浚鸯螽赉实现撬割,雾簧垂基避 行鞭踪和判断。 3 ) 利用文件过滤驱动对c a c h e 巾数据进行髅控,如果是敏感数据根据用户规则控制 数据流向。 蓟澍鼷蠹竣辩缮驱动采羧裁局竣爨蠹骜数糖漉凑,爽骧文箨翁安全菸攀。 漂题豹荚键接零骞: 1 ) 幽联挂钩授术、远校线疆注入按术和驱动滋接镑s d t 技米。 2 ) 驱动层1 驺i 过滤技术、网络谶程自发现技术和文件系统c a c h e 管理技术。 3 ) n d i s h o o 憾技术、威用层与驱动层信息交亘技术和驱动安装与加裁技术。 棼硼h 渤g 调试技术、鼹汇缩技零黎嵌入式汇编按拳。 l 。5 论文鹣缀织姥稳 本文懿分六镦。 第一章,引荫。介绍了课题背景、国际国内的研究状况和进展、本论文的研究内容和 实现目标、课题的难点和关键技术以及论文的总体结构安排。 第二章,剪黻羧整控按零。分缨了毡酝d g w s 撩终暴凌鸷魏羲藩莲,巍器夔建舶盛a p l 与远程线稷注入穗绻台懿方法簸援赘懿叛孛教惑数掇。冀中涉及裂爨蠹联嚣e 馥菝拳薅巍 第五章介绥。 第三章,出网数据控制。分析了网络连接监控技术和文件系统过滤驱动及文件系统的 c a c h e 管理机制,实现对出嘲数据控锘4 ,防止通过网络程序及缓存中的文件避成的敏感信 患翡渣灞。 繁3 簧 倍臻王程大学硕士学位论文 第四章,文件安全共享。分析了w i n d o w s 的文件共攀机制及n d i s 网络骠动程序,实 现对局域网的文件安全共享,达到防瓜用户通过文件共搴造成敏感信息泄漏的目的。 第五章,系统运行稳定性保证。提出了使用内联h o o k 与啪b g 调试披术相结合的 方法勰决采用摆议技术内菝软俘不糍滚容运行豹翘题。零灏瓣壬 l 【技术氇痰粥予本课题 实现中静萁毽动熊繇分。 最后,结束语。总结了本人所做z 作和课题的创新点,指出今后的研究方向和需要进 一步完善的工作。 第4 夏 信息置程大学硕士学位论文 第二章剪贴板监控技术 2 。l 研究背景 当蘸终臻系统串存菝戆文箨资瓣懿安全保障技术蔻嚣蘸拗s f 入侵篮涎系统辍眈羲o n d e t e c t i o ns y s t e m ) 领域的热门研究技术之【2 】。许多对保密工作要求很高的单像如保密局对 终端中存放的文件骚求有很高的安全保密系数,任何机密的文件都不能在末缎许可的情况 下通过终端用户的q 隧操作泄漏出去,而信息防泄漏保密系统所要完成的任务就是使终端 保密区内的文 孛达到完全的受控状态,髓控和疆断任何筑及文转安全的操作。柱文 孛内容 豹缳护孛葵戆扳鹣缣护稻是一瑗饕鬻藤器,不霹簌乡熬辎,嚣灸弱户霉黻遴避系统骜魏 板操作将枫密文件内容澄漏出去,丽剪贻板监控就是在不阏的监控级别下对非法的剪贴板 操作进行阻断从晰保证文件内容的寂众。 2 2w i n d o w s 操作系统剪贴板原理和实现分析 w 珏斑瀚s 赘然教是一静斑较楚肇黼潜遣是开镑递较小熬进程阀逶禳机裁。懒艏o w s 剪 楚板是系统预嚣静块全局数据区,溺寨暂时保存系统各令进程之阀交换憝数攥。w 记d o w s 操作系统中只有一个全局剪贴板,由v ,i n d o w s 系统提供。臌用程序能向剪贴擞的全局共享 数据区存放临时数据,也能从剪贴板众局共享数据区获得临时数据。在操作鳃贴板时,最 后一次的复制操作总是覆盖上一次全局剪贴板中内容,因此全局剪贴板只保存最后次复 制揉佟数据。通过灞爆w i n d o w s 提供黥操作剪黠扳一系捌a p i a p p l i c 积o np r o 蓼a 艇n 穗g 轴t e f 蠡e e ) 函数,霹戳在瘟露程亭剖建筠帮骜赡叛,蠲予豫蠢最遂一系到的复翁潆终内骞, 最典型的应用是w o r d 可以保存最近黪于次的复制操作内容。 2 2 1 典型w i i l d o w s 剪贴板操作分析 下面分析典溅的剪贴板操作,该擞作可以通过使用蚴ls t l l d i o 提供的s p v 卜 工具进 学验谨。簸设在w i 涮o w s 搡捧系绫巾菸嚣两令应弱程序,分剐为记事本文辎秘嘲字处 理程序。嚣者胃馈粥全局剪菇投,不阍豹是蓠者没有嚣郝努戆板,螽耆褥套两帮剪雅板。 1 ) 对无局部剪贴板应用程序的复制操作。复制记事本文档中部分文字内容,假设为 n o t e p a d 。系统调用s c t c l i p b o a m 函数覆盖剪贴板中上次数据,将剪贴板中内容设 置为n o t e p a d 。 2 ) 对无局部剪贴檄戏媛程序的牯贴操作。把复铡豹内褰糕懿到记事本文档巾警裁插入点 位霆。系统灞麓g e t c l i 的o a 砖函数,浚鲞当蔻捅套赘懿缀熬避程受 云事零送耧( w 西w o 蠢 进程此时不拥脊剪贴板) ,因此记攀本文件可隧获褥剪贴板中保存的数据。 3 ) 对有局部翦贴板应用程序的复制粘贴操作。复制w i r d 文档中部分文字内容,假设为 w o r d 。系统酋先调用e m p t y c l i p b o a r d 函数清空剪贴板中内容,然后调用s 眦c 1 i p b o a r d 函数重薪设置剪贴板中数据为w o l t d 。由于嘲文撼调耀s e t c l i 如。蕊v i e w 鼹设置了剪 筹5 菱 焦塞王篓奎兰壁主兰壁笙塞 贴板监视器,它知道当前剪贴板内容发生了变化,所以最后w o r d 应用程序把上一次全 局剪贴板的内容保存到自己的局部剪贴板中,故以厝对w o r d 文档发出粘贴命令时可 以选择多个粘贴内容。 图l 笾单的袭涿了葵贴板暴理图,c l i 幽a 越v i e w 靠表示劈赡板整视器,警熬始板孛内 容交往霹剪鼯顿黧褫嚣藏会褥刭通知,并穆结采告潺骜聚投j | 耋褪器戆麴鸯器( 该罄孛是 w i n w o r d e x e ) 。 一蛳 :二二二二竺二三 二i 二二兰:三、p 局部嚣切板队列 表l 系统提供的操纵剪贴板的函数 a p i 函数 函数功能描述 o p e l 】c l i 砖o a 一 打开赘砧板 歉n 痨e l 晕酌蕊涛空剪筵菝 s e 蛞l i d b o 稍 设置剪贴扳数据 g e c l i 口l o a r d 获取剪贴板数据 c l o s e c l 幽硼 关闭剪贴板数据 i s c l i d l x 咖r d f 0 n n a t a v a i l a b l e 检查剪贴板中数据格式是否存在 c o t c l i d b o d f t e s 获取剪贴扳所存在的数据格式数目 应弱程序遁遵系统提供的a p 弱数操终剪贴叛,主要使矮戆a p i 函数见凌l 。滁了土 袭孛所列出a p l 黼数霹以搽缀剪鼯叛之努,在m s 瑚参考等麓孛逐指窭缝髂技术帮氧诬c 中的c w n d 类也掇供了实现同样功能的一组接口函数和炎成员函数。这说明懋少存在三类 方法可用于从应用程序获取剪贴板数据和设置应用程序剪贴板数据,分别是使用w m 3 2 的 a p i 函数,使用组件技术和使用m f c 的c w n d 类。通过焱肴v c + + 提供的m f c 部分相关 的源代码以及翻阕m s d n 参考文档了髂到组件技术和m f c 的c w n d 类都是辫装了w 逾3 2 懿a p l 函数,瓣熬激终这些羹装嚣数郝要逶过调强暴戆a p l 寒实瑗鸯身功魏。放嚣数调震 的角度得到结论麓:在应用层,剪贴板功能的实现最终统予调用晰1 1 3 2 的a p i 函数。 另外一方面w i n d o w s 操作系统谶程之间通信是基于消息传递机制,既然鹪贴板是一种 进程间消息传递机制,那么就必然会引起消息的传递,所以有必要从消息传递的角度研究 操作剪贴板时触发了哪些消息,是谔这些消息序列具肖可以编程实现的规律性。搜用 第6 菱 堡垒三壁奎竺堡圭兰垡篓塞 s p y + + 分别监视对记事本和w j r d 文档中部分文字内容执行复制粘贴操作时发出的 w i n d o w s 消息,发现两组迥然不同的潲息。对记事本执行复制、剪切和粘贴操作时,w i n d o w s 发出的是w mc o p y ,w mc u t 和w mp a s t e 消息,而对w o r d 文档执行同样操作时 磷强d a 粥发出的怒系列w m 泌w e l 口b o a r d 、w md 嚣s t r o 托l 王p b o a r d 麴消息 缍合,著不是豫琢寒猜恕懿筠是霹遥w me 0 p y 、w 嫩c 臻稻w 醚强s 弧这群豹溃惠 组合来实现。进一步研究这些消息组合之后发现,由于应用程序可以使用w i n d o w s 系统提 供的a _ p i 函数设鬣剪贴板监视器监控全局剪贴板的活动j f n 局部剪贴板的活幼,所以造成 w md r a w c l 脚b o a r d 、w md e s t r o y c l p b o a r d 的消息组合出现不具肖可利用的 规律性。由此本漾题得到结论:w i n d o w s 对剪贴板中数摄操季# 时存在两条无法用统一方法 楚理戆滔基建递癌径。 不论是从w 潞2a p l 函数静角度遥楚扶消息传递的角攫研究剪贴板,都怒从应用层来 摸索总结系统使用剪贴板规律性。现代操作系统一般都划分为应用层和内核朦,应用层的 a _ p i 函数调用最终都要转化为内核层中a p i 函数的调用。w i n d o w s 操作系统也是这样设计 的,在m s d n 中称内核层的a p i 函数为原始a p i ( n a t i v e a p i ) 。用户做出复制、剪切和粘 继凌雩# 之嚣,掰i 嬲洲s 操终系统发爨一系燹滔愚,雩 莛瘦瓣瀑一系甍穗关的a p l 嚣数塌薅, 这些应用层的鲥l 遁数继丽自内核疆动程序发出了一系魏羽陵p ( 的r e q u e s l 粼k e t ) 请求惫, 进而引起内核层系列原始a p l 函数的调用。可以肯定的戆内核层被调用原始a p l 是最终 实现复制、剪切和粘贴动作的函数,眶是它们的存在才使得用户对剪贴板的炭制、剪切和 粘贴动作才最终得以完成。本课题分析了复制、剪切和粘贴动作在内核态调用的原始a p i 匾数,确定在在内梭层簦控剪贴板豹弼 亍性。如果可以在内援层实理剪砧板簸控凌毙,程 序撬毒亍效率会魄疲羯罄程序嘉,两曩熬控熏全嚣。透过爱复磺究蕊察耱查阕文激发现上垂 应用程序的复制、剪切和粘贴操作在内核层没有唯一确定的原始a p i 函数与之对应,取而 代之是上述每一个动作对应于一组原始a p i 函数的调用。例如,当用户粘贴个文件时, 底层驱动程序收到主功能代码为口r pm jc r e a t e 、口凹m jm jc i 麓a ) p 和 珏潆氧玎e o s e 黔羽婢包,这说明粘贴猱 睾被分簿为创建一个颧文件和把原来文传的内容 琢棒写久鬟蓑文镑嚣令动箨。霾筵莰双簧馐一令毯建文移豹魂佟苓麓确定当蘩疯罄驱凌程 序到底是创建新文件,还是执行粘贴撩佟。同样另外复制鞠粘贴也不能仅仅通过一种珏蹬 包来确定。由此得到的结论是:内核滕没有确定的i 口包国复制、剪切和粘贴动作一一对 应,所以不能从底层驱动程序清晰明确的判定上述动作。 图2 表明了熬个剪贴扳动作完成时应用层和内核层之间的关系。该图清晰的表明了整 令漉程孛难一毖籁黉逸过弱苇点羲怒w 轻6 2a p l 丞数,姨羔嚣魏分撰本漂题程豫踅3 2a 戳 处监控剪菇板静确露。 雾7 夏 倍患z 程大学硕士学位论文 l 用户做出黼竺粘贴动作i 用户磨 l l 路f 应用藤 砦譬筹黧 臁作淼 渊 f1 分解为一系列i r p 包 内核驱动程岸 谗撬 内核层 f 蘼始a p l l 图2 剪贴檄函数、消息和i r p 包问必系 2 3 用h o o ka p l 狙远程线程注入监控剪贴板 确定本渫瑟麓决弱题豹韬入震次之筵就是选凄逶会黪技零熬决翊嚣。零繁分绍解决蒡 贴板监控中采用的主要技术,并分析w 选方案和难点。 2 3 1h o o k a p i 技术 h 0 0 k a p i 是猩计算机操作系统中横入段自己的代码,当操作系统调用系统合法函数 辩雩l 起被撞入代褥鹣调用。珏。o k 技零爨从塞现之癌裁竣广泛馒蘧,m s d n 露方文档提供 了一些标难豹嚣瓤方法,在操嫠系统率蜜下了灞震接翻,瘸子雳户实褒蠡定义某些行惫。 随着入侵领域和安全防范领域外延逐渐扩展,更多的专业人士开始关注并研究微软的未公 开文档以期待能够发现那些不为人所知但功能强大的函数,因此灵活运用h o o k 基本思想 的技术也不断发臌起来,而当前各个软件安全公司主要也魑依托此技术发展越来的。 剪赔板篮控獠廖是通过修改a p i 黥数在内存中的影像( 也就是穆改函数兹五个字节, 怒覆来函数熬魏5 今字节警换为袭蠢鑫定义丞鼗夔j m p 臻令) 以这蜀挂菝a p l 溺数霹静( 其 体细节将在3 3 带中介绍) ,这种方法也被称为m l i n eh o o k ( 内联挂接) 既鹦外由于在 w i i l 3 2 操作系统中所有的可执行文件与动态链接库文件都采用p e 格式( p o n a b l ee x e c u t a b l e f i l ef o 彻a t ) ,所以从原理上也可以通过修改p e 文件的导入表或者导出表挂按函数实现监 控功能州。 第8 页 债恩工程大学硕士学位论文 本课题采用内联挂接的方法来实现剪贴板监控。第二种方法有一定局限憔。首先它要 求被挂接的函数必须被d l l 文件明确导出或导入。在实现中若要挂接g e t c l 妯b o a r d 函数, 必须保证i i s c r 3 2 d 1 1 动态链接库的函数导出表中已经显式的导出该函数。其次农进程运行 孵,需要保证导出羧挂接函数动态链接蓐( 缘u s e 吩2 d 珏) 跫经技载入进程麴嫩蜓窆闽。进 程鸯瑟载囊态链菝黪霹疆选择孬释方式,毒孛是静态热载,舅岁 静是动态秘载。静态热载 方式生成可执行文件的导入表中已明确包含了支持可执行文件运行所要用到的学入函数。 动态加载是在程序运行过程中使用l o a d l i b r a r y 根据需要动态载入要用到的d l l 文件,所 以编译生成的可执彳亍文件的导入表中并不包含要用到的函数地址。若复制时,记事本进程 最终调用s e t c l 缸m o 积函数更薪剪贴扳全局数据区中款内密。如果记事本应耀程序弱导入 袭孛臻确撵凄寻入? s 弼l i 鼬a 撼爨数戆薤,羲零激透避修浚 基导入表s 融c l i 潮a 砖静丞 数地址来实现穗援;如果记事本应用程序的导入表没有辑如导入s e t c l i 曲o a 嫩溺数地址, 而是在程序运行时使用l o a d l i b r a r y 加载s c t c l i p b o a r d 函数,那么实现起来就比较复杂。首 先要挂接黼l e l 3 2 d l l 导出的l o a d l i b r 鑫r y 函数,动态监控进程运行时载入的渤态链接库, 如果发现当前载入的动态链接库憋u s 髓3 2 d l l 需及时修改p e 格式蘧数导出表中 s e l i 如蕊豹缀数逢缱,骧达到撩羧熬爨懿。本漂题经道测试,记事本应弱凝痔是羼予 第二种方式。这种不统一盼程序鸯羹载方式氇使得编写瘟羽程序斡复杂度搀离,掰戳即使采 用这种方法也会给后期程序调试和维护带来困难。 2 3 2 远程线程滤入 剪贴板监控程序需要监控系统中簿个耨运行的进耩,在薪运行豹进裰巾注入带有 勘馥磁必2 a p l 灏数臻靛熬夔茬戎璐,透程线程注入哥黻嶷臻该要求。燕擎豹浚是铰托远 程线程注入在操体系统范围内安装弗使用全局h o o k 函数。 这里关键的问题是明确地址空间【耕。当一个全局d l l 逡行时,它要求在被控接进程的 上下文中运行。遮也就意味着全局d l l 中的变量是在目标进程( 被h o o k 进程) 中分配地 址空问。由于是个d 王工文件,所以每一个使用该d l l 的目标进程都有一份在目标进程 孛器毒数据区,纛就是说,帮蕊在d 薹- 纛源代羁孛设置了全麓变量,这些全弱交鬟事实土也 哭是在各个基标送程各自的地址空阕范嗣内共享,丽程每个d l l 文俸之阀怒楣踅私有的。 第9 夏 信怠工程大学硕士学位论文 d u , 厂 、 剪切板监控进程 代码 l 数据 i 热辜数据l l| 记事奉进程 l 代码 l 教撂 菇享数据l w j n w o f d 进程 代码 1 数据l 共享数据 图3 d l l 注入进程地址空闽 餮3 表示蘩魏缀薤控遴程分甓囱谗攀零遂程帮w i 妊w o 砖进程注入釜控毛。经过测试 在记事本进程中“恰好”被加载的d l l 程序与剪贴板避獠中的d l l 程序虚拟地址空间傈 持一致,但在o r d 进程中被加裁的d l l 程序与剪贴板进程中的d l l 程序虚拟地址空 间却不一致。这说明用远程线程注入肖法进行全局h o o k 时由于d l l 文件虚拟地址空间的 变化,从两需要用遣当的方法在主监控进程和被监控进獠之间转递数据。常常采薅的方法 鸯在源襞羁孛臻秘捌弦ad 如e g 竣嚣共享数据段,臻女# 壤( 1 鞋蕊l s l o t ) 簧递数撵,矮港患 函数:s e n d m e s s a g e 和:p o s t m e s s a g e 佟递数据。 监控剪贴板的d i 工程序注入到被艇控进程之后,相当于成为了目标进程的予线程存在 并运行,该子线程随着目标进程的退出而终止。 2 ,3 3 监控进程的创建 整控葵戆缀懿d 毯,疆彦注入嚣稼遴程熬酵蘩应该是凌瓣器遂程剐爨氆建之瑶。瑗在绝 大多数远程线程淀入技术都是在应用滕套用j e f & y c h t e r 在w i n d o w s 较心编程中第 2 2 章提供的方法【6 】。这种方法的主臻优点是比较实用,稍鼠j e 髓陀y 黜d l t e r 聪来又在个人 网站中提供了可以获享的标准源代码,应用程序开发人员只需要将开源的源代码包含到自 己的工程文件中裁可以将指定名称的d 文件注入到题栎邂程中。 燕一蔽葵戆蔽蕊按程彦羲是采强这耱方法实瑷懿,爨怒零漂瑟在实嚣测试避程孛鏊控 程序偶尔会失效。发复研究之后发现j e 嫩够硒c h t e r 提供熬代鹤中发现进程创建的方法存在 漏洞。其实现方法是在应用层单独创建个线程,用于每隔固定时间调用p s 鼬i + d l l 导出的 辅助函数e 硼m p r o c e s s 、e n u m p r o c e s s m o “l e s 不断枚举系统中所有进程,然艨将d l l 程 序注入到每个被发现的进程中。假如要监控记事本文档的复制操作,那么裁需要监控 g 醴c l i p b 砖基数滤瀵瘸。由于u s 嚣3 2 莲l l 导出了g e t c l i p 孙8 难函数,蘑致簸控赘菇投鹃 移己l 程序必须褒记攀本文档被翻建之爱,在u s 嚣3 2 d l 缓躐入翔记事本逶程缝簸空闯之蘸 注入,否则采用h l l i n eh o o k 有可能在袋些操作的时候失效。擞然这种情况出现的概率很小, 经过测试在3 0 分钟反复不断的复制粘贴过程中大约会出现2 到3 次,但是对于一款安全 软件只要有一次必效就意味着可能给客户带来巨大的经济损失。图4 表明了厩确的加载顺 第l o 夏 壁垒三堡盔兰堡主堂壁鎏塞 序和错误加载顺序,通过分析知道关键是必须在新进程创建之后马上注入监掇d l l 程序。 时瓣辅 聪嘲椭 嚣4 菱臻豹麴载簇痔帮错误豹热载颥痔 可以在应用鼷挫接c r e a t e p r o c e s s 黼数监视进程创建,僚在内核驱动层监控进程创建时 机和效果更好【7 】。在w _ m d o w s n t 系列操作系统环境下,撼截原始a p i 常用的方法是h o o k s e r v i c e d e s 嘶p t o r t 曲l e ( 简称s d t ) ,如果要分析一些系统调用,可能会用到h 0 0 k 矾t 2 e 中断方法,翔鬃黉拦截或者跟踪其舷内核d d v 嚣的调用可以在起核h kp 嚣。瓣为当前的 要求跑较黎擎,聚滚采嚣琢斌s 转零豹方法裁霉浚。肉核层整控逶翟翻慈爱好是薤揍 n t c r e a t e s e c t i o n 函数f s l ,此时被创建进程正在分配存储窝间,但是还未被加载,如果此时 直接禁止该进程窳问的分配,能够保证进程以及该进程所调用的所有d l l 獠序都彻底终 止。但现在应用骠求并不是检测并繁炽恶意代码的运行,所以也可挂接n t c 聪砒e p r o c e s s 函 数达到网样的髫的。 经遂疆究发凌采雳s 龄方法鸯嚣令挟熹。一是露予瑷在流行戆系麓搡终系统 w i n d o w s 2 0 和w i n d o w s x p ,n t q o a l e p r o c e s s 函数在s d f 中的位置是不一样懿。两且随 着w i n d o w sv i s 味的推出,n t c r c a t e p r o c e s s 函数在s d t 中的位置可能还会变化。考虑到上 述问题的存在,瓶程序中为了实现操作系统版本的兼容性,先由上层应用程序计算出 n t c r 髓t e p c e s 8 融数在k e m e l 3 2 d l l 的p e 导出表中的导出她址,然螽交到内核驱动程序算 逡n t q 髓圈协c 。s s 农s w 孛豹垃蟹。实黢中这秘方法霹以缣涯诗算盘豹圭蠹皴凌不嗣撰终 系统敝本审总是藏确的。另乡 一个缺斑怒由于珏。旅s 酣不毽被众多软俸类安全产品采用, 而且也被黑客用予在成功入侵到系统之后植入恶意代码的种方法1 9 1 ,所以爝来陆续出现 的一些a n t i m o t 姗软件在清除r o o 戚t 的同时,也会使得旗于这种技术的所肖安全类产品 失效。比如s d n t e s l o r e l l 0 1 ,它首先记蒙不同操作系统下s d t 导出函数的真正地址,然后 与当翦系统豹s d t 导出函数她址捆魄较,扶恧可戳检测被修改熬函数缝址,势能蒋s d t 浚复裂裙魏狭态。 繁l l 菱 薷怠工程大学硕士学位论文 d :、h d t 抻t o 抖 1 w h t o 仲u h 抽n i ,帅f - f 伽n c ,t b i 睹 2 耻o k 8 t 州i c e k c r i 矾_ 时“1 口幅d 黼 k c e o w i c e k c r i p t 口r l “h 0 t 帅i t 吐l # b 4 7 憾黼 k 幅。抑h o 】k 一蚺。一抽h s 一量c t l i - “ 2 # & 翻口” t 一踟出d 衄蚺轴p 懈拈蝴柏0 酗钿t t o 轴, 2 3 一【籼酶d y 雠h # 懈l - 瑚7 璐0 妇t t 蝌如静i 轴 0 7 一k o k d 轴牡冉轴。诎l t 拜瑚8 2 i 踟h l 啪h e 静y3 c 一【轴e k d 坶黼轴糖n 辨删砧 h h 龋e h t h l 蚺轴, 3 p 一【h o 口k d 坶螂鲰。蝴n 辩珏班b “o 即n f l k 一n n o h dh ,蛳黼蝴t 埘蚴a 6 8 脚n h , 7 一h 口口h d 柚蝴h o n 肼f 酯 c 哪n p 坤c e 日【k o k d 蛔h o 帅t 功e c s 5 琳 e 躯l e r 帅, 0 一【l o h dh ,h 口咖扯舯砖1 c e 嘲r 神a l l h , 一【h o o k d 轴k n o 帅i t 卯p e 6 阵5 0 “t s 蚪t h 忡坤t 时_毗n _ 口h d 蛔l “k 帅_ ii t 硼p e 6 2 3 b 帕加r f0 e 砷“tt b l # t n t ,i 。 m i d - 1 t 蚕5s 羚瓤t e 敷r 搴检测出r 啾瓢t 圈5 是国内菜著名安全软俸的注掰表监控程序修改s d t 内容,当使舔s d 嘲妯s 幻r e 后 注册表监控程序必敲。从安全产品自身安全角度考虑,溅者不采用拦截系统调用方式,或 者能够提供一种猩h o o ks d t 之后禁批箕再被恢复的方法( 这样的方法即使出现也会被黑 客再次利用,或者可能成为一种不受欢迎的流氓软件) 。解决该遗留问题就怒黉研究如何 全方位戆缳护安念产品自身安全。 2 - 3 4 粕用驱动疆摩注入d l l 第一版剪贴檄监控程序是由四个独立程序配合完成,其中应用层有三个程序,驱动层 有一个程序。应用层的三个程序分别为用于与底层驱动程序交互的剪贴板监掇拳程序,用 予妇载篮控功能的飙l 模块,和用予被注入嚣操作系统务个进程孛实现监控功籀豹d i 工 程彦。驱魂篡疆簿瘸子动态整茬送獠鹣翻建莠逶翔痘蘑麓翡赘菇板蓝控程序。 图6 第一版辫贴板程序模块之间篾系图 由四个交互嘏序组成豹剪贴板黢控功能模块最终嚣嚣与暇来的局域网文件保密系统 整舍蘩一起。实醛熬舍遂程孛发瑗羲令攘块之溺戆交互痿患楚影蘸系统洼髭豹缀毽之一, 凭其是剪赔板鉴控主程序与底层簸拣避程创建驱动程穿之闻信息交互造成岛硒域网文 牛 保密系统无缝熬更大的困难。如果能从驱动程序直接浪入完成监控功能的d l l ,那么不 但能够大大减少稷序之间交互信息,而且能与原本就是狂内核驱动层完成主鼷功能的文件 保密系统无缝的配会使用。在驱动层淀入代码,j e 缶e yr i c h t e f 的代码将不能褥使用,需要 繁1 2 委 倍感麓程大学硕士学位论文 研究进程与线程加裁的本质来寻找其他技术解决。 问题的关键在于进程什么时候加载需要的动态链接艨。根据从微软内部流出的一些未 在公开文档中说明和使用w i n d b g 跟黥调试发现关键的原始a p l 函数是n t c r e a t e m e a d 【”。 奁内核该函数萼l 怒k l 蟠1 呐函数黪调用,用于加载避程用妥的动态链按痒。由

温馨提示

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

评论

0/150

提交评论