RSS订阅信息安全技术跟踪与研究:技术、平台、会议、论文、产业
你现在的位置:首页 / 技术积累 / 正文

白名单系统实现:U盘隐藏病毒攻击与防范

0 技术积累 | 2015年1月30日
转载申明:本站原创,欢迎转载。但转载时请保留原文地址。
原文地址:http://www.vonwei.com/post/windowsdefenseandattack.html

Windows白名单系统

Windows下面做了白名单系统,原理很简单,简述如下:

         Windows里面的所有可执行程序(包括exedllsys文件等)都要通过内核函数NtCreateSection生成一个内存区对象(SectionObject)映射进内存后才能执行。通过挂钩(hook)该函数,可以截获所有将要加载的可执行模块,截获后可以通过SM3对内存区对象进行杂凑计算。Hook技术有很多种,如SSDT HookInline HookIDT Hook等。实验采用了SSDT Hook技术对NtCreateSection函数进行了挂钩,并以此作为度量点计算出每个可执行程序的SM3哈希值。

         假设Windows初始环境是干净的,配置好Windows后,在没有联网或者执行其他操作(如插入U盘等可能威胁安全的操作)之前对全盘进行扫描,收集所有可执行程序及其SM3哈希值,并将收集的信息作为白名单。

         白名单收集好后,将内核置于白名单模式,即每次通过NtCreateSection发现一个可执行程序时,先计算其SM3哈希值,然后与白名单进行匹配,只有通过匹配的程序才能正常执行Windows内核的NtCreateSection函数,其它情况则禁止程序执行。

攻击病毒

         白名单系统确实能起到很好的效果,一切不在白名单中的程序都会被禁止执行,特别适合ATMPOS机等系统程序比较固定的场景。为了很好的演示白名单的效果,决定自己写一些更加高级的病毒来测试白名单系统,基本思路如下:

       将病毒隐藏在一个正常的可执行程序(host.exe)中,该正常程序执行时会自动释放一个隐藏的病毒文件bingdu.exe,并隐藏的执行该病毒,病毒在后台执行,没有任何界面,而且任务管理器是看不到病毒进程的。隐藏文件主要通过Hook NtQueryDirectoryFile实现,而隐藏一个进程通过Hook NtQuerySystemInformation函数实现。

         host.exe拷贝到U盘中,并配置一个autorun.inf让其自动运行,运行后会感染病毒程序bingdu.exe

         找一个病毒并不容易,于是决定自己写一个键盘钩子病毒(这样自己能够控制),就是病毒运行后,用户所有的键盘输入都会被捕获。上网找了个开源的key logger程序(http://myhook.sourceforge.net/),下载源码后,自己稍加修改,主要是让其自动后台运行,并将监控的键盘消息写到一个特定的文件中(攻击者要是获得这个文件就威胁了)。于是bingdu.exe就是我们的键盘监控程序了。

         host.exe可以从 < http://pan.baidu.com/s/1i3AD5E9 > 下载,执行程序后,会监控你系统的键盘消息,并写在当前目录的log.txt日志文件中。(免责申明:该程序本身不存在任何危害,主要供测试,如果下载者非法使用该程序一律与笔者无关)。

防御效果与查杀

         开启白名单系统的白名单模式,发现host.exebingdu.exe确实都被阻止执行了。而关闭白名单模式后,两者都执行了,而且所有键盘的输入都捕获在log.txt中。

         如果攻击者再开启一个后门发送和接受U盘下的log.txt文件,很可能导致个人隐私的泄露。

         由于在非白名单模式下,bingdu.exe执行了,而且资源管理器中的进程列表看不到该进程,无法关闭该进程。只好自己在内核中写一个小模块来查收,基于PspCidTable枚举所有活动进程,找到病毒bingdu.exe并杀毒该进程。杀掉后,log.txt也停止了键盘的监控和记录。

总结

         通过整个系统的实现,以及自己构造病毒的过程,对Windows下的攻击与防范有了进一步的认识。上传了一个没有实质危害的小病毒供测试,而白名单系统和内核hook工具就不提供了。实际上,我们的白名单系统与可信计算技术进行了整合,基于TCM安全芯片提供的反篡改能力和密钥身份,可以很好的管理Windows平台。

参考

[1] 张帆等. Windows驱动开发技术详解. 北京, 电子工业出版社, 2008.

[2] 潘爱民. Windows内核原理与实现. 北京, 电子工业出版社, 2010.

[3] 谭文,邵坚磊. 天书夜读-从汇编语言到Windows内核编程. 北京, 电子工业出版社, 2008.


  • ------------------分隔线----------------

  • 如果感兴趣,欢迎关注本站微信号,跟踪最新博文信息,手机微信扫一扫下面的二维码,即可关注!
  • 微月信公众号
  • 推荐您阅读更多有关于“ 安全软件  白名单  Hook  U盘病毒   ”的文章

    请填写你的在线分享代码
    上一篇:云存储安全:五种加密云文件的方法下一篇:GnuPG高级加密软件:介绍和源码编译

    猜你喜欢

    评论列表:

    发表评论

    必填

    选填

    选填

    必填,不填不让过哦,嘻嘻。

    记住我,下次回复时不用重新输入个人信息

    本站介绍
    最近发表
    本年最热文章
    本月最热文章
    网站分类
    文章归档