设计(研究)内容和意义:
二十一世纪的今天,网络信息安全不是一个新的话题。借助于即时通讯市场的爆炸式增长,腾讯QQ发展迅猛,超过1亿用户的腾讯QQ在即时通讯市场上占有率达到70%,最高同时在线人数突破700万,成为国内当之无愧的最大即时通讯软件服务提供商。但外表的风光,掩饰不住腾讯的危机四起:安全漏洞、诚信危机,还有在电信运营商的制裁下,腾讯还能走得一马平川吗?对于腾讯QQ来说,安全问题犹如一把悬在半空的利刃,让人头疼。
针对QQ本身安全性能的缺陷,不但使针对QQ的各种黑色软件不断增长,也繁衍出各种类型的QQ木马病毒。
因此,研究如何预防和检测新的未知恶意代码就显的非常重要。由于特洛伊木马特殊的危害性,研究木马的预防和检测意义重大。
研究内容:
基于钩子技术的木马程序的分析和实现这个系统主要分为以下几个模块:QQ木马的传播,QQ木马的隐藏,QQ木马的执行,QQ木马的解除与防范。本人的任务是最后一块,即:QQ木马的解除与防范。本人的主要实现是设计一个木马查杀工具进行木马的查杀。为了能够成功实现这个系统,首先必须对木马、钩子技术有一定的了解,下面是一些介绍:
1.1.1木马介绍
计算机世界的特洛伊木马(Trojan)是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。
一般的木马都由两部分组成:服务端和控制端,即C/S(CONTROL/SERVE)模式。
服务端(以下简称S端):执行在远程主机。一旦执行成功就可以被控制或者造成其他的破坏,这就要看种木马的人怎么想和木马本身的功能了。这里的控制是相对的:可以被你控制,也可能被别人控制;可能完全控制,也可能不完全控制;可能让它做很多事情,也可能只做特定的某一件事。
控制端(以下简称C端):执行在本地主机。用来控制服务端,操作一般都很简便,上手很容易(这也就是有人说黑别人很容易的原因)。
木马的类型如下:
综合型木马:窗口木马、DOS命令行木马、电子邮件木马、远程遥控软件;
特定型木马:针对某方面或仅有单一功能的木马,通常这类木马在收集到数据后会主动发送给黑客(例如:使用EMail),而不需要黑客与它进行连接,例如:
1.偷取实时通讯软件(如:QQ、ICQ)帐户的木马。
2.恶意、间谍程序
除了了解木马以上相关知识之外,还需要了解木马的特征、木马出现后的状况、木马的隐藏、木马是如何启动的、木马的解法、如何防范木马。
1.1.4钩子技术
钩子的本质是一段用以处理系统消息的程序,通过系统调用,将其挂入系统。钩子的种类有很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,钩子程序先行截获该消息、得到对此消息的控制权。此时在钩子函数中就可以对截获的消息进行加工处理,甚至可以强制结束消息的传递。
当你创建一个钩子时,Windows系统会创建一个数据结构,该结构包含了你所创建的钩子的信息,安装钩子则是把该结构体插入到系统钩子列表中去。当指定的钩子事件被触发后,局部钩子只需要调用进程中的钩子函数来预处理事件,全局钩子则需要把处理插入到其他地址空间,要做到这一点,就需要有一个动态连接库,把钩子函数放到库中。
设计(研究)方案和进度安排:
设计方案:
通过对现有一些查杀工具的使用,了解其功能及其界面,作为自己系统的一个借鉴;通过对基于钩子技术的木马的分析,了解其特性,特别是其隐藏技术,然后着手分析其查杀方案。
研究方法(工具介绍):
Delphi是全新的可视化编程环境,为开发人员提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作,Delphi的每一个设计细节,都将带给开发人员一份欣喜。
利用面向对象方法学及其实际工具进行软件的设计和编程实现已经是九十年代以后软件工程开发的一大特征,在考虑了各方面因素后,选择了 Delphi7 作为开发工具实现整个系统。原因如下:
1. Delphi7.0是由Borland公司推出的,是一个具有强大功能的可视化编程环境,它为开发人员提供了一种方便、快捷的Windows应用程序开发工具。
2. Delphi7.0采用弹性的可重用的面向对象 Pascal程序语言,简单易学,只要稍有语言基础就能很快掌握并进而精通。
3.Delphi7.0提供了新颖的可视化设计工具,采用面向对象的方法将Windows编程的复杂性封装起来,实现了将可视化设计与Object Pascal语言的有机集成。并且可通过SQL Links、ODBC访问多种数据库。
4.使用了Microsoft Windows图形用户界面的许多先进特性和设计思想。可视化的用户界面设计功能,把程序设计人员从烦琐复杂的界面设计中解脱出来。可视化编程环境的“所见即所得(WYSIWYG)”功能,使界面设计如积木游戏一般简单轻松。
5.开发出来的应用程序与Windows 95, Windows 98,或 Windows NT 的操作环境无关,可以直接在Windows下运行。
总之,选择Delphi作为该系统的开发工具,速度快,兼容性好,有助于系统开
发更快的完成,系统功能更完善的设计。
阶段性工作:
3月15号,讨论系统要实现的总目标和总框架,划分具体工作,安排工作进度。写开题报告,任务书。
3月16号——3月22号,查找资料,根据自己的不同功能部分找到相关文献。选择、安装和熟悉开发环境,安装好开发软件和数据库软件,编写系统分析报告,熟悉系统基本流程。
3月22号——4月12号,继续查找相关资料,画数据流程图,分析各个功能模块,修改和完善功能模块和数据流程图,进行数据库设计,进行输入输出设计及代码设计。完善数据库和统一数据库及代码格式。
4月13号——5月25号,查找资料编写程序,在制作过程中调试运行,查看各个功能模块,改进不够完备的地方。后期进行两个人的程序联调,分析各模块的连接情况,进一步改善,等待程序验收。
5月27号——6月5号,根据程序撰写论文,确定论文的书写规范,写文献综述和外文翻译。后期进一步完善论文,等待论文答辩。
|