-
-
当前的杀毒思路
-
发表于:
2009-10-8 09:19
7663
-
当前的杀毒思路,按小弟愚见,大致分2个方面:特征码与木马行为。
对于特征码,杀毒软件工程师的原路原来是好的,对于字符串(简单的如HACK,TSHANGXING之类),输入表的定位(如键盘钩子的相关API),启发式扫描器(根据反编译后程序代码所调用的win32 API函数情况判断程序的方法。),但是在反杀毒界(又被称为“免杀”界),有着如jmp跳转(指指令运行到某个地址,运行原来运行代码在跳转回去以达到迂回的目的),如NOP(对于非关键代码的去除甚至去掉原有一些功能的方法来达到目的。。。)对于以上方法,花指令或混淆指令,反调试手段(在特征码附近用反调试代码来达到目的,会是杀软脱壳或杀毒失败,放弃查杀),我们暂且称之为“静态迂回”。而如异或加密(指用C32ASM按某规律修改源代码后再再入口点或其他地方加入一小段恢复代码的迂回思路。),或是动态恢复(相似的方法,只是把恢复代码换为直接写入代码来达到迂回母的。。。)类似的方法,我们称之为动态迂回。或是通过加壳改壳的一般组合,凭“运气”或者多次试验来达到目的,我们称之为“加壳迂回”。除此之外,“源码迂回”目前正在兴起,同样是一种方法。实践证明,上述方法对特征码是很有效的,原因是:杀软更新了特征码,木马(病毒)随之更新,有它的滞后针对性。
木马行为方面,对于注册表以及关键目录的监控或很有效果,但是,由于程序释放路径,启动方式以及其他行为可以按需任意修改,同时还有“移动文件夹”,“修改HOST”等编程方法使之不能起到太大的效果。
除此之外,还有“云查杀”,数字证书,版本检查等各种思路,相对来说,“云”的方法较之有效。
下面说说小弟的想法,其实杀毒软件要做的是在病毒木马和正规软件模糊的界限之间划一条分界线,但是他们终归都是程序,理论上说应该没有绝对的界限,能否换一个思路,我们假设,病毒(木马)启动时需要一种方式的(ACTIVEX,服务,启动项,INI文件,我就不一一列举了,但要注意到在这里正规程序也是)。同样病毒(木马)有一种自身拷贝的方式,就是说它一定到释放文件到某个目录(或者说感染文件到某个目录,但这种情况病毒或木马的功能相对单一,相对地特征码方法在这里很有效果)正规软件也是,我们把同时拥有这两种情况的称之为一种“安装现象”。
这样,各种控件,一般软件,病毒都被放到某一个列表中,然后在通过用户或者“云”,知识注释等方法判断该软件的安全等级,反过来说,任意文件,只要是"安装"的,都能卸载,这样是不是能解决用户“我感觉电脑里有木马,就不知道在哪里,全盘扫了杀不出来”的现象呢。也许杀不出来,但至少知道它在哪里,这样用“人”或“智能”来判断是不是更有效果呢?
这里只是思路交流,对以上提到的方法或情况,GOOGLE下就好了。
好了,现在大家扔鸡蛋的扔鸡蛋,扔番茄的扔番茄吧,
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)