网络安全's archive
最近对免费和开源软件的试用总结
除了安装操作系统和杀毒软件外,其它常见应用软件基本上都可以通过免费和开源软件来替代。个人也绝对虽然有可以破解的各种共享软件,但是还是要支持免费和开源软件。刚开始的时候可能感觉不是特别好用,但是习惯后使用起来一般还是不会太多的影响到工作效率。
对于日常办公,首先可以安装WPS2007的个人免费版本,完全可以替代Office软件,而且和Office的输出文档的兼容性较好。同时我使用了OpenOffice套件,感觉功能也基本可以满足需要。对于个人日程事务管理可以使用Sunbird计划和任务安排软件,对于事务提醒可以使用Anotes软件。邮件客户端使用ThundBird客户端,这样基本上日常办公需要就基本可以应对了。
喜欢画思维导图的,可以到http://cn.edrawsoft.com/freemind.php下载免费的思维导图软件,这样基本也不用再使用MindManager了。另外Edraw还可以画些漂亮的流程图和商业图表,可惜是30天的试用版本。
在娱乐和即时通讯方面,对于QQ,MSN,暴风影声,eMule基本都是免费的。对于下载个人不是特别喜欢使用讯雷,而且现在讯雷广告特别多,可以使用Emule。感觉emule上的免费资源比讯雷多些,同时搜索各种英文的文档和电子书也比较方便。
对于浏览器一般情况都使用FireFox,但是新浪博客和一些网站对FIreFox的支持上还有些界面会乱掉的问题。对于输入法原来我喜欢使用拼音加加,现在改用搜狗拼音,感觉很好用。对于PDF文档的查看可以使用免费的FoxitPDF,特别是可以增加批注和编辑,很方便。对于文档压缩和解压缩,采用免费的7-Zip就可以满足需求。由于写博客经常要截些屏幕和图片,我原来采用的是破解的HprSnap,现在采用免费的ScreenHunter软件。
离线的软件我常用的就这些。还有些是要在线使用的软件&互联网应用。用的比较多的如Google和Hotmail的邮箱。对于网络硬盘,强烈推荐免费的蜘蛛网的网络硬盘,我试用了很多网络硬盘感觉这款比较好用。对于在线记帐,可以使用财客在线软件。
收藏、分享这篇文章!
黑客理论基础
我写这篇文章的目的是为了引导现在所谓国内的越来越多的所谓的“黑客”。现在所谓的新兴的年轻黑客们及其缺乏一种正确的道德理论的引导,希望看过我这篇文章的人能往一些更正确的方向发展吧。写纯理论的东西,文笔不好,请见谅。
介绍
传统上,黑客指那些喜欢去修补软件和电子系统的人。黑客们认为探索和学习操作系统是一种享受。他们热爱发现新的电子工作方式。时到今日, 黑客被赋予了一个新的意思:那些为了个人目的故意去破坏系统的忍。技术上我们可以叫那些人cracker,又或者罪恶的黑客,非法黑客等等。Cracker入侵系统为的时一些不轨的企图, 他们时为了个人的利益而采取行动的,例如获得名声或者金钱甚至时为了报复。他们盗取,更改,或者删除重要的信息, 并且经常令人感到痛苦,而不是快乐。我们所说的黑客中的好人,也就是所谓的白帽子黑客不喜欢去做类似所谓的黑客里的坏人-黑帽子黑客的不道德的行为,也不愿和那些人同流。但是无论如何,黑客这个名称已经给相当的人留下的不好的印象,黑客代表着计算机犯罪,虽然事实上这是完全不正确的。很多不怀好意的黑客都声称自己不从事破坏活动而且还经常帮助别人,靠,真是说的好听,其实他们大部分都是一些电子盗贼。简单的来说吧,坏的黑客就是那些总是想去破坏的人,有道德的黑客就是那些保护系统免受非法入侵的人。
什么是有道德的黑客行为
一个有道德的黑客拥有的不仅仅是技术, 还包括了正确的思想方向, 他们是值得信赖的。有道德进行黑客行为是最为一种保护自己系统的测试手段,而不是破坏。有道德的黑客行为指的是渗透测试或者白帽子行为,尽管所用的方法,工具, 技巧等等都和那些恶意黑客一样,但是本质上的区别产生了根本的不同-有道德的黑客行为是合法的,是经过特定的许可的。有道德的黑客行为是为了从黑客的角度去发现系统的弱点从而使得系统更加的安全。安全检测其实就是这一类的行为, 要用潜在的入侵者的思路去发现特定的系统的漏洞和弱点,这也是专业计算机安全专家必须拥有的特质。
用潜在非法入侵者的思路去合法的入侵(或者叫安全检测)特定的系统,这是有道德入侵的根本。 随着黑客知识的不断更新和漏洞的不断增加, 所有的系统都在承受的被攻击的可能性。为了保护特定的电脑或者网络系统不受到坏人的骚扰, 仅仅防范一些很明显的漏洞已经不足够万事无忧。从更深的层次去理解黑客的手段才是更进一步防范非法入侵的有效办法。
黑客行为都是建立在软弱的系统安全和没有泄漏的可被攻击的弱点上的。 防火墙,加密技术, VPNs都可能让人在心里上产生一种误解,它们都是安全的。这些安全系统常常都集中在防范高危险性系统弱点上。合法的入侵特定的系统可以发现一些不明显的系统漏洞从而让已经拥有了这些防范措施的系统更加安全。这是让你想保护的远离被攻击的最好的办法,否则系统被攻破只是时间上的问题而已。当非法入侵者不断利用各种新的技术武装自己的时候,我们是不是也必须像他们一样从而来保护我们需要保护系统呢?当你作为一个有道德黑客,你必须知道应该找寻些什么和如何利用它们去阻止那些不想见到的结果。
理解系统面临的危险
知道你的系统面临着来自世界各地的黑客的窥视是一件事情,另一件事情则是去明白具体的攻击你所要保护的系统的攻击手法。 不少信息安全漏洞不是因为它们自身不安全,而是若干个漏洞共同作用的结果。比如说一个默认的windows的系统设置,一个SQL的弱口令,一个无线网络服务器也许都是不主要的系统安全弱点,但是把这三个不同的东西结合起来,可能就会产生很严重的问题。中国有句古话叫做堤溃蚁孔, 就是这个意思了。
非物理性攻击
任何系统的操作者都可能被利用来进行系统的入侵,比如终端用户甚至是你自己, 在使用这个系统任何一个人都可能是这个系统或者网络最大的弱点。信任是人的天性, 这就可能造成一种特殊的攻击――社会工程学攻击。简单的说社会工程学是一种攻击行为, 攻击者利用人际关系的互动性所发出的攻击:通常攻击者如果没有办法通过物理入侵的办法直接取得所需要的资料时,就会通过电子邮件或者电话对所需要的资料进行骗取,再利用这些资料获取主机的权限以达到其本身的目的。关于社会工程学的介绍可以参考我的另一篇文章《没有电脑的入侵-深入浅出社会工程学》(http://bbs.s8s8.net/forums/index.php?showtopic=19243)。或者小金美女的《没有硝烟的战争——社会工程学 》(http://bbs.s8s8.net/forums/index.php?showtopic=30455)。据他说他写的比我的生动,我说他的不够专业,哈哈。
其他的常见的对于获取信息有效的手段都是物理上的攻击。黑客进入系统所在的大厦,计算机机房或者一些储存有敏感信息的地方。甚至在特定地点的垃圾堆可能找到有用的东西,比如记录密码的纸张,网路结构图或者其他有用的信息。所以碎纸机的作用是不能忽视的。
by gouy2k (gouy2k@gmail.com)
收藏、分享这篇文章!
主机防御系统体系简介
新一代的系统保护神
——主机防御系统体系简介
作者:小金
一. 与流氓木马说再见
现在是深夜时分,网民周颖正在打开某个刚认识不久的QQ网友发来的页面,这个网友自称是周颖喜欢的某明星的粉丝,两人聊得十分投机,最后,网友发来一个地址,说是自己收集的所有资料,周颖便不假思索的点击了。
在看到一个相册图片显示完的同时,周颖的电脑也弹出了一个窗口提示“CreateProcess请求被拦截”,宿主程序为“iexplore.exe”,执行对象为“123.exe”,周颖皱了皱眉,点击了“拒绝”按钮,随手把网页也关闭了。然后她气愤的在QQ上发了一句话:“刚认识就发木马,你也太不厚道了吧,你这人真无聊,不理你了!”,对方发来一个问号,周颖不再理会,直接就把这人拖进了黑名单。
经历了这么一件事情,周颖的好心情也被破坏了个殆尽,她气呼呼的和群里熟悉的朋友们发了一阵牢骚后就关机睡觉了。
在周颖盖上被子的时候,远方某处有个在百度黑客贴吧以“黑客高手”自居并收取高额“教学和工具费用”的小青年在迷糊的梦中被手机铃声吵醒,他刚接通电话,那边就传来了一阵骂声:“你收老子3000元做这个网页木马,说绝对私人流通躲避查杀100%好用的,老子今晚刚测试第一次就被个小丫头发现了!什么破玩意儿!三天内不退钱我就把你举报到网监科去!”,电话挂断了,小青年也被吼得睡意全无,他首先想到的是难道自己最得意的“免杀版”被反病毒厂商收集到了?可是在看到所有用作病毒测试的防毒软件均未提示发现病毒,莫名其妙,遇上不想付钱的无赖了……
网络有毒,这是所有人都必须认同的一点,即使你只是打开了一个网页看些新闻时事,没准你的浏览器就正在进行下载执行来自远方的未知木马的操作——只要你的系统有些相关安全漏洞没补上,这一切就发生了。
有人会说,不怕,我有杀毒软件,再多病毒也躲不过的——实际上,许多人的机器里就出现过木马与杀毒软件共享一片天下的事情,这是因为传统杀毒软件的局限性导致的,它们依赖于病毒特征码检测,针对这个特性,木马和病毒作者或第三方人士只需要做些特殊修改,就能使程序的特征码改变而无法被杀毒软件检测到,这就是大众意义上的“免杀版”;另一种情况则是“地下流传”的私人后门,由于大部分私人后门并非公众化产物,反病毒厂商不可能得知其存在,更不可能拥有其标本,也就没办法加入特征库查杀了。
很明显,周颖遇到的就是所谓的“免杀版”木马,而且入侵者尝试利用的或许更是针对浏览器的0day攻击,保护她的并不是杀毒软件,而是前不久经由朋友介绍使用的“主机入侵防御系统”软件。
二. 主机入侵防御系统的概念
主机入侵防御系统(Host Intrusion Prevent System,HIPS)是近几年出现并迅速发展的新兴产物,与传统意义的防火墙和杀毒软件不同,它并不具备特征码扫描和主动杀毒等功能,所以想用它来替换传统杀毒软件然后安枕无忧睡大觉的用户可以不必尝试了,主机入侵防御系统是不会区别正常程序和木马的,它只有一个动作,那就是让你了解一个进程的加载情况并让你决定这个进程能否运行,换句话说,系统的安全性取决于用户本身,因为主机入侵防御系统只是一种将系统控制权交给用户的防御体系。
操作系统是一个复杂而庞大的平台,程序的执行也不是简单的功能,在Windows环境里,当用户点击某个程序图标时,系统便产生一个消息由外壳程序传递到系统内核,由内核进行诸多初始化工作如分配内存、产生进程标识、协助加载程序运行所需的组件等,这些系统步骤都是可以由特殊程序进行监视并干涉的,只是通常情况下普通用户无法拥有这种待遇,而主机入侵防御系统则为用户提供了对于这个系统加载的监视和拦截功能。这个监视和拦截的过程被称为“防御”(Defend)。
目前主机入侵防御系统可提供三种防御:应用程序防御体系AD(Application Defend)、注册表防御体系RD(Registry Defend)、文件防御体系FD(File Defend),这三种体系合称为“3D”,根据实际情况,并非所有HIPS都提供了完整的3D体系,例如文件防御体系就经常被取消。
应用程序防御体系(AD)在大部分HIPS里属于最重要的功能,这个功能的优劣足以直接影响到系统安全。AD通过拦截系统调用函数来达到监视目的,当一个程序请求执行时,系统会记录该程序的宿主(即该程序的执行请求由哪个程序发出),在Windows里,用户启动的程序,其宿主为Windows外壳程序Explorer.exe,因为用户的交互界面是由该程序负责的,用户双击鼠标执行一个程序时,实际上就是通过Explorer.exe向内核传递的消息,于是它便成为用户程序的宿主;而并非所有程序都是通过Explorer.exe执行的,系统自身也执行着许多基本进程,这些进程几乎都由smss.exe所产生,而这些通过smss.exe产生的进程又能成为其它进程的宿主,如services.exe成为svchost.exe的宿主等,这些层层叠叠的关系被称为“进程树”(Process Tree)。基于这个原理,许多伪造成系统程序的木马其实很容易被发现,因为它们大部分通过系统启动项加载,而这个启动项是属于Explorer.exe负责的,于是木马们的宿主就成了它——csrss.exe居然由Explorer.exe加载运行,这本身就违背了系统设计的初衷。
让我们继续学习用户程序的执行过程,当程序执行的请求被系统捕获后,系统会产生一个创建进程的函数调用,称为CreateProcess,位于kernel32.dll,这个函数的功能是执行一些基本的初始化工作,然后将程序请求封装传递到内核接口ntdll的NtCreateProcess函数中,该函数把有关的参数从用户空间拷贝到内核并做进一步处理,直至最后新的进程被成功创建,而ntdll也只是个内核接口而已,实际的内核体是ntoskrnl.exe。程序员通过编写内核驱动拦截NtCreateProcess、NtCreateSection等函数就实现了对创建进程的控制,在这点上,病毒作者和安全专家做的事情都是相同的,只不过用来实现破坏系统安全作用的被称为Rootkit木马,用来保护系统的被称为“应用程序防御体系”而已。HIPS的“应用程序防御体系”也是通过驱动拦截实现的,只是它把创建进程的决定权交给用户。
在HIPS的监视下,当一个进程被请求创建时,用户层的应用程序接口函数CreateProcess被拦截并被获取调用参数来分析出程序的执行体和宿主等,而后HIPS将这个执行请求挂起(暂停执行CreateProcess及以后的步骤),并于桌面弹出一个对话框报告用户当前拦截的进程创建信息,其中包括执行体、宿主、被拦截的API等,最后等待用户决定是否继续让其执行。用户必须具备相关的进程概念,如桌面快捷方式和幕后调用的可执行程序实际文件名的对应关系,这样才不至于出现一头雾水的后果,用户的决定对于系统安全才是致命的,如果一个用户在双击“千千静听”后对着HIPS拦截的“Explorer.exe试图创建TTPlayer.exe进程”的报告感到不解,那么或许传统意义的杀毒软件更适合这类未入门的初哥。
HIPS的AD体系不仅能拦截到用户或某个程序产生的进程创建请求,它还能拦截到进程产生的所有操作,如DLL加载、组件调用等,这样我们也能用它来拦截一些DLL形态的进程注入,只要用户的基础知识达到一定程度,AD体系足以让你不再害怕大部分木马病毒的来袭,试想一下,如果用户在浏览网页时HIPS突然报告说浏览器进程“试图创建123.exe进程”、或者运行某些安装程序时HIPS拦截到该安装程序“试图创建1.exe进程”,只要用户选取了“拒绝执行”功能,这些潜在的木马就无法入侵用户的系统了——但是要注意一点,那就是木马本体已经被释放或下载回来了,只是它们无法被执行而已,HIPS不是杀毒软件,它不能阻止非法程序的下载和释放,更不提供自动删除文件的功能,它所做的,只是拦截进程操作而已,使用HIPS保护的系统安全取决于用户自身。
HIPS里还有个相当重要的功能是注册表防御体系(RD),众所周知,在Windows系统结构中,注册表一直扮演着一个重要角色,许多非法程序和木马也通过修改注册表达到许多黑暗目的,如主页修改劫持等,而木马等程序的自启动也是由注册表的启动项负责的,因此,要进一步确保系统安全的话,对注册表的监视保护是必须的,从很早以前就开始使用电脑的用户应该会记得当初流行的许多注册表监视工具,然而这些工具并不能帮助用户保护注册表,因为它们仅仅是位于用户层的程序而已,其调用的API函数也是经过层层封装返回的,在当前许多进入了核心层的木马面前,这些程序根本就是被耍猴的对象,要正确监视到真正的注册表操作,就必须进入核心层,抢先拦截到系统相关的底层注册表操作函数,这就是注册表防御体系的工作。
系统提供了一系列的注册表读写访问函数来实现用户层的功能,而这些API和之前提到的创建进程函数一样,也是一种对系统内核导出函数的封装传递,如果相关函数被驱动木马拦截,普通的注册表监视程序,包括系统自带的注册表编辑器也无法发现某些项目或执行相关操作,这就是“删不掉的启动项”的来由。
在内核层中,注册表的名称并非为Registry,而是“HIVE”(蜂巢),它的数据结构称为“Cell”(蜂室),这是最底层最不可被欺骗的注册表形态结构,许多高级的Rootkit分析程序都提供分析注册表的功能,实际上就是通过分别读取用户层返回和HIVE数据结构来判断对比系统中是否存在被恶意隐藏的数据项,分析HIVE文件是漫长的过程,这是对付高级隐藏时才不得以而为之的方法,而平时安全工具只需要拦截到内核层导出的操作函数如NtOpenKey、NtCreateKey、NtQueryKey等就可以了,这正是注册表防御体系要做的事情。
RD默认提供了对几个常见的系统敏感注册表项进行监视,如启动项、服务驱动项、系统策略项、浏览器设置项等,所有木马要自启动都必须经过启动项或服务驱动项的添加修改来实现,而要对浏览器进行劫持和主页修改就得通过修改浏览器设置项等,而这些操作默认都被RD视为敏感行为而拦截挂起,并弹出警告框报告用户该次操作的具体内容和发出操作请求的执行体,操作最终能否通过也同样取决于用户本身,由于它拦截了系统核心层导出的API函数,无论是木马还是用户程序的操作都逃不过法眼,从而实现了真正有效的监视和拦截。
最后是文件防御体系(FD),这个功能的作用是监视系统敏感目录的文件操作,如修改删除系统目录里的任何文件或创建新文件等,也可用来发现被驱动木马隐藏的文件本体,FD体系在许多杀毒软件里已经提供,一部分HIPS为了提高效率,并不具备FD,因为它相对要消耗的资源比较大,而前面的AD+RD+有一定经验的用户操作,就已经足够防止危害的文件操作产生了。
实现文件防御体系的要点同样也是拦截系统底层函数如NtOpenFile等,HIPS默认对系统敏感目录进行监控保护,一旦发现异常读写,则把相关操作挂起,并提示用户是否放行,FD不仅仅只有HIPS提供,其他安全工具如360安全卫士、超级巡警等也具备此功能,该功能运作起来要比前两者消耗的资源大些。
目前主流的HIPS软件有以下几款:
SNS(Safe and Sec Personal)、EQSecure、SSM(System Safety Monitor)、PG(ProcessGuard)、GSS(Ghost Security Suite)、SS(SafeSystem 2006)
国内公认较好用的HIPS是SSM,下面就以SSM为范本,对HIPS的实际操作进行解说。
三. SSM的使用
简介
System Safety Monitor,简称SSM,是一款对系统进行全方位监测的防火墙工具,它不同于传统意义上的防火墙,因此与任何网络和病毒防火墙都不相冲突。
之所以选择SSM,是因为相对于其他HIPS而言,SSM的操作比较简便,适应普遍大众的接受能力,且提供了中文版支持,其他如PG、SNS等操作相对烦琐了些,国产的S3在安全性上不如SSM,所以,对于一般环境的用户而言,SSM是最佳选择,而且由于HIPS不会与当前的传统防火墙产生冲突(不过要小心HIPS遭遇某些防火墙的误杀),用户在HIPS的基础上保留原有的防火墙也不失为一种更加强安全的选择——当然,这样的做法会消耗更多系统资源,如果硬件配置不够,建议根据个人实际能力来决定保留HIPS还是保留传统防火墙吧,开着HIPS照样被木马进驻的用户并非少数,而遭遇入侵的关键在于用户自己的操作过程,因为前面已经说过,HIPS仅仅用作行为拦截和警报而已。
SSM可由以下地址获得:http://www.syssafety.com/files.html
安装
HIPS并不强求用户安装时的系统环境是否染毒(文件型的除外,如熊猫烧香),也就是说,即使当前的环境中存在木马甚至Rootkit,在安装HIPS后照样能不慌不乱的对其进行限制操作,但是为了避免以后出现针对HIPS安装环境的木马,最好还是养成预先准备的习惯为好,经验告诉我们,“亡羊补牢”总是会晚一步的。
SSM的安装过程并不复杂,与一般的安装程序没什么差别,用户可以像安装QQ一样简单的完成它,安装完成后会提示重启以便SSM生效。
基本设置
重启完成后用户大概会习惯性的以为SSM会如传统意义上的防火墙软件一样在开机时出现在系统托盘里,那么SSM就让你失望了,它默认并不会随系统启动,首次运行还得用户手工进入开始菜单的程序组里寻找“System Safety Monitor”项运行它,在一些用户的系统上,SSM首次运行时还会出现svchost.exe与explorer.exe进程通讯被拦截的情况,如果遇到这种情况,用户必须在短时间内选择“允许”操作,否则会导致系统蓝屏。
首次运行SSM,用户会看到一堆英文,不用担心,进入Options,将里面的Language设置为Chinese,点击Apply Options即可,SSM就变成中文了,然后记得选中“自动启动”以确保SSM每次都能随系统启动。
对于高级用户,如果使用IceSword检查SSDT列表,会发现“祖国河山一片大红”的壮观景象,几乎所有的系统函数都被一个“safemon.sys”给“吸收”过去了,这是正常现象,这个文件就是SSM的核心驱动。
学习使用SSM
由于HIPS是一种特殊的系统防护程序,而并非传统的防火墙,这就注定了它不能像一般防火墙那样安装后定期更新一下病毒库就可以放任不管了,刚安装完毕的SSM仅对基本的几个系统进程给与信任关系,其他程序在首次运行时会被SSM拦截,这就需要用户手工运行常用的程序并设置规则为“永久允许”。
SSM会拦截所有进程创建的详细信息,并报告用户当前是什么程序试图执行另一个程序,并显示出所有运行参数,通常情况下用户自己请求运行的程序,其加载者为Explorer.exe,可以放心的通过执行。而一些由用户启动的程序在运行时可能会产生Hook调用和组件调用等,这些操作在通常情况下也是正常的。
如何判断一个程序的运行过程是否正常,关系到HIPS能否保护系统的关键,对于普通无经验用户来说,必须牢记以下几点:
•记住自己刚才运行了什么程序
•仔细观察被拦截的程序名和路径是否合法
•观察加载的DLL是否程序路径下或文件版权完整、且文件名不为胡乱组合字符
•一个浏览器程序在正常使用过程中(浏览网页)突然弹出执行另一个程序请求的,100%属于危险操作
用户只要至少牢记以上几点,就能防范80%的危险操作了,如果不慎允许了一些危险程序的执行,也不必惊慌,开启SSM的进程监控器选项,找到相应进程,点击右键选择“编辑规则”,然后设置为“阻止”即可,即使该危险程序有几个进程辅助运行,在HIPS面前也是小儿科罢了,因为被HIPS阻止运行的进程是永无翻身之日的,只会一个一个减少直到没有一个能够执行。
标准状态下,SSM仅开启了应用程序防御(AD)体系,要增加注册表防御(RD)体系,还得我们选择“模块”项,点中注册表,然后勾选“启用该模块”,从此注册表的敏感操作也就会被记录拦截了,默认情况下SSM已经提供了几个常见的敏感项,用户可酌情添加。
只要有木马程序试图操作敏感项目,SSM就会跳出“模块报警”并默认对其拦截操作,接下来又要用户自行判断是否放行该操作。与上面提及的一样,用户要记住执行该注册表操作的程序是否自己指定的,否则就不要通过,宁可错杀一个,也不要放过任何自己不敢保证的程序。
与注册表操作监视的形式,SSM也提供了服务监视,这对于一些通过设置服务达到隐秘启动的木马和Rootkit来说可谓灭顶之灾,那么这里该如何判断呢?同样的道理,不是自己运行或安装某个值得信任的工具时弹出的提示以外,一律不要允许!
SSM属于HIPS类程序中最简便的一款,通过使用和熟悉它,用户可掌握基本的HIPS知识,以便为日后换用更高级的HIPS做准备。
四. 结语
在木马和病毒横行的今天,已经难以有一款安全产品的出现足以让用户们产生眼前一亮的感觉了,HIPS类产品的问世解决了大部分安全专家和有经验用户头痛的防毒问题,然而美中不足的是,HIPS类产品距离大部分普通家庭用户仍然太远,其相关的一些操作需要用户具备一定的系统知识方可使用,就在一定程度上阻碍了HIPS的普及,这个尴尬的门槛,广大用户什么时候才能跨过去呢?是将HIPS的所谓“操作难度”降低、增加自动操作功能,使其最后沦为传统的杀毒防御产品一类的地步,还是让用户学习一定的计算机知识,以跨过这种在具备一定经验知识的用户眼里不足畏惧的所谓“门槛”?无论选择哪种,这都是个难题……
收藏、分享这篇文章!
文件捆绑技术
一、眼睛,我凭什么相信你?
某天,QQ上有朋友给小白发了个编译成EXE文件的精彩Flash,Flash的确很好看,把小白逗得哈哈大笑。可是才过一会儿,他就笑不出来了:光驱不停弹出、鼠标乱跑、文件被删除……在他手足无措的时候,电脑突然重启,系统彻底瘫痪。
这是出现在许多描写黑客入侵的文章不约而同采用的“经典”题材,有朋友看了觉得奇怪:一个Flash文件都会造成这么大破坏?那我怕怕,我不看Flash了……
有时候我真不得不佩服某些朋友举一反三未雨绸缪的态度,同时也理解他们的害怕,是啊,谁能告诉我,眼前的文件到底是什么?但是也不要太过于紧张了,留意那些文章后面一般都会有的说明:“原来这个Flash被捆绑了木马。”
可是另一个问题又来了:什么是捆绑?
二、步入文件捆绑——从自解压文件说起
提起文件捆绑,许多朋友都会邹眉头,可是提起压缩文件,相信不会有人感到陌生。不知道大家有没有注意过一般压缩工具都会带的一个功能:生成自解压文件。这样压缩出来的文件是一个可执行文件,运行它就释放出整个压缩包了,有这样一个功能的确方便了用户,一些安装程序也是把自身做成自解压文件,可见这个方法的普遍性。
产生一个自解压文件的步骤如下:
1.把所有文件进行压缩编码,合成为一个普通压缩包
2.压缩工具产生一个文件外壳,写入压缩包的文件信息
3.把压缩包封装进这个文件外壳里,最终产生的可执行文件就是我们要的
一个自解压文件就是这么简单,那么,它与文件捆绑技术有什么关系呢?最大的关系就在于文件外壳。自解压文件和捆绑程序都是给原来的文件加了一个文件外壳,而它们的区别在于编码、用途、运行方式。
让我们先理解文件捆绑的概念:有一个可执行文件,它外表看起来并没有什么不妥,图标、把那版权也没问题,但是当你运行它的时候,它秘密分解成多个文件,只让其中一个或多个显示出来(通常是正常的,例如Flash),而其他程序(有害的)都是偷偷运行,让用户在不知不觉中受到侵害。实现这种“母鸡带崽”的技术就是“捆绑”(Bind),其实它不神秘,自解压文件就是一个光明正大带崽招摇过市的文件捆绑人员。
但是我们不能把自解压文件称为“捆绑”,为什么呢?现在,来看看一个捆绑文件是怎么产生的:
1.文件捆绑器产生一个文件外壳,把用户选择的可执行文件数量、体积、运行方式写入这个外壳里
2.在这个文件外壳后部追加可执行文件的数据,每个文件之间可能有特殊区别符号。
3.根据用户设定的文件图标、其他配置信息重写资源段
就这样,一个危害人间的捆绑文件产生了,你能认出来吗?
说白了,文件捆绑就是把几个可执行文件合并在一起,当用户运行这个文件集合体时,管理集合体的分离代码自动把每一个文件分离出来并偷偷执行,我们只要用自解压文件的知识就可以理解它。
三、实战分析捆绑文件
1.文件捆绑
EXE Bundle是一款比较强大的EXE捆绑机(EXE Binder),它支持最多10个文件的捆绑,我把冰河控制端作为用户程序,其他一大堆后门作为后台运行程序,捆绑界面如图1。
最后生成一个程序,看看图标,还认识吗?不过看看体积……(图2)
2.分析内部
用eXeScope载入文件(图3),发现什么问题没有?文件头部冒出两个EXEB字段,资源段里出现多个打不开的字串表,估计这些表就是分别对应每个EXE的分段。不同的捆绑器会产生不同的文件头部,但是追加文件的方法都一样的。
太复杂了?那么现在用二进制编辑工具打开它,搜索ASCII字符“This”,看看你发现了什么:
在第二个“This”的上面,我们看到这个
====================================================
bundle.INI
[Data Files]
ExtPath=1
Attrib2File1=1
[Delete Box]
CheckBox7=0
[执行文件]
File1=1
[Name Files]
File1=bundle.exe
File2=G_CLIENT.EXE
File3=G_SERVER.EXE
File4=GetAdmin.exe
File5=WinS.exe
File6=server.exe
File7=HAll.exe
File8=
File9=
File10=
File11=
======================================================
这是一段配置文件,显然,它作为一个分界线把文件外壳与文件集合体分开了,不同的文件捆绑器产生的信息不同,不必太计较这个,继续往下看:
1.G_CLIENT.EXEMZP
2.G_SERVER.EXEMZP
3.GetAdmin.exeMZ
4.server.exeMZP
如果你研究过一个程序的内部,就会知道我们查找“This”的原因:这是Windows下程序在DOS环境下运行显示的出错字符串,位于程序的头部。而这些“*****MZ”就是每个程序的起始段。
继续找下去,所有捆绑文件的头部都被发现了(图4),但是在最后一个程序后面找不到多余代码了,所以可以证明文件捆绑器是把自己放最前面,其他文件都塞后面的。
3.小结
分析这个捆绑文件可以得知,文件捆绑器仅仅把程序代码追加到文件外壳的尾部,并且改写它的配置信息,对程序代码并没有做任何编码处理,因此文件体积会相对扩大。
所以,可以对文件捆绑技术下个简单的概括:所谓文件捆绑,就是把多个可执行文件合并在一起,运行时偷偷释放出来所有并全部执行。
四、教你几招——与自解压文件的区别、防范捆绑文件的方法
如果你看到这里已经大彻大悟,那么我的苦心算是没有白费,如果还迷糊,那就看这里的概括……
与自解压文件的区别:
首先让我们看看两种文件的结构图(图5)。自解压文件仅仅是在原有的压缩包上加了个解压缩的可执行文件头,捆绑文件则是另一种结构体。但是从运行结果上看,它们是相同的。
但是,如果要具体区分,它们仍有本质上的不同:
1.自解压文件是压缩所有文件,并且大部分仅仅做释放文件功能;捆绑技术是集合可执行文件,释放后全部运行。
2.自解压文件里一般只有一个头部,捆绑技术产生的文件一般有多少个程序就有多少个头部
3.自解压文件体积一般比原来的文件集合要小,捆绑技术产生的文件却要大一点点
4.自解压文件一般难以再处理,捆绑技术产生的文件可以再加壳、压缩。
如何防范捆绑文件?
1.不要随意打开别人给你的文件
2.用字处理软件打开文件,如果查找到多于2个的“This program”字符串,那它一定是捆绑文件(这几乎是万能药)
3.杀毒程序的监控(不如人工准确)
4.对于一些捆绑器产生的伪造Flash文件之类,只要用一款查看文件调用函数的工具打开,如果看到调用了wsock32.dll、winsock.dll之类的,必然是木马无疑
5.消除对捆绑文件的恐惧心理!要明确一点,它们只对可执行文件有效,不是随便一张图片都能捆绑的!
收藏、分享这篇文章!
