对Windows安全软件的思考

引用注明>> 【作者:张佩】【原文:www.YiiYee.cn/blog

最近以来,我重新翻阅了几本Windows系统下的安全类书籍,同时上网查阅资料,很意外地发现,很多几年前流行的牛叉技术,虽然还在书本和网页上历历在目,但实际上多数已不能在新系统中使用了。我由此也发生了一些个人的思考,虽然多年不接触安全技术,但思考的能力还在。

分析安全问题的来源

总是因为存在安全隐患,才有了攻击动作的发生;而因为有了大量的攻击,才继而产生了安全防护的需求。所以一定要研究安全隐患的来源。总体上分类,安全问题可以划分为本地和分布式两种,所以安全攻击的方法也可以分为本地攻击和分布式网络攻击。

先看存在于本地机器上的安全隐患,也就是在一台安装了Windows系统的PC机内部的安全隐患,把它分成下面两类:

第一类,是OS架构本身存在的结构性的设计缺陷或不周到,从而导致了被后门软件利用,并据此发动的针对本地资源的攻击。这些不周到主要体现在OS为一系列的Hook技术提供了便利。存在于Windows系统上的Hook技术,从1990年代以来就一直很热门。概言之,它包括静态修改二进制文件和执行时动态修改运行逻辑这两种方法。

但我发现,若干年以来微软已通过一些很基础的手段,基本上消除了这些缺陷或不周到。它通过数字签名的方法,令大部分的静态修改的方法失效。现在数字签名只对运行于64位OS或启动了Secure Boot的32位OS的驱动程序强制使用,以及对所有的Metro应用强制使用,但将来不排除它也会服务程序甚至桌面用户程序应用强制使用。通过数字签名的方法来检查二进制文件的完整性,任何静态修改都会破坏文件完整性,从而令文件加载失败。

通过Patch Guard的方法,令OS的内核文件和关键数据得到保护,这令针对OS系统的运行时Hook完全失效。Patch Guard机制动态检查系统的完整性,一旦检测到修改就令系统蓝屏。流行的IDT、SSDT和运行时补丁等Hook手法,从此全都失效了。

另外,微软新OS不断增强对Access Control List(ACL)的管理,强化系统对象的安全性。

这些基本架构的变化,足以令大部分传统的后门技术失效。我想,这正是诺顿软件惊呼“安全软件已死”的原因所在。

第二类,我称之为特例性的软件模块中存在的设计失误或代码Bug。操作系统中还存在大量的软件模块,它们不是系统的基础功能模块,但依然被很多软件所使用。这些模块可能由微软提供,也可能由第三方提供。但因为这些软件模块数量庞杂,应用范围局限,通用性不强,接口不统一等特点,所以一般的安全软件可能无暇顾及它们,或不能完全覆盖它们,后门软件也因此能找到生存空间。

比如前段时间爆发的基于Open SSL的Heart-bleed漏洞和Linux/Unix系统上的Bash Shell漏洞,都源于软件实现中存在的代码Bug。这类问题的本质是因为软件的设计和编写都是由程序员完成的,人类天生做不到百分百面面俱到,只是看问题发生时的严重程度而已。

探索分布式网络应用的安全技巧

如果软件模块是运用在分布式应用中的,则当其安全隐患爆发时,危害程度将非常地大,远远超过单机系统上产生的危害。所以值得对网络安全做专门的思考。

对于一个存在于分布式(网络)协议和实现模块中的设计不周,也可以通过一定的技术创新加以改善。我举分布式拒绝服务攻击(DDoS)的例子来说明可能的情况:

当恶意攻击者组织成千上万的“肉机”对指定的服务器进行无效而巨量的网络请求,以在短时间内急遽消耗其网络资源,从而令其失去正常的响应能力,这是DDoS攻击的实现方式。如果脱离技术细节来思考这个问题的话,会发现攻击者总是使用非法的途径来获取他的“肉机”资源。因为使用合法途径来组织这些机器不仅过于昂贵而且很容易被发现。攻击者将木马程序种入到目标系统令其感染,从而成为其“肉机”。可见肉机本身也是受害者。在DDoS攻击过程中,成千上万的受害者“肉机”,懵懵懂懂地向受害者“服务器”发起攻击,令事件变成了两位受害者之间的战争,而真正的敌人永远躲在幕后。

从我收集到的资料看,当前的服务器一般采用消极防御的策略躲避肉机轰炸,没有办法采取主动措施以制止肉机的攻击。作为同病相怜的两个人,如果能够做到声气相通的话,肉机未必不会幡然悔悟。但基于C/S的架构下,如果没有client的配合,server端没法主动投递消息或指令给客户端。在此例中,客户端是木马程序,也根本不可能响应server端的请求。但不妨让我们想一想一种可能性,就是恰好在肉机端存在一个能解析server指令的client软件。当server检查到此肉机参与到DDoS攻击后,就尝试向此Client投递消息。最低效果是,当Client收到消息后向用户弹出一个风险警示的提示框,建议用户紧急采取查杀木马的措施。用户可能会立刻采取有效的措施,也可能不会,但如果命中率达到一定高度,将能有效并快速减缓DDoS攻击的力度;从长远看,肉机作为攻击者最有价值的资源,通过此方式,将大大削弱攻击者所拥有的有生力量。

我将此种方法称为“云防护”,即不仅仅依靠服务器单机的力量,也同样把受裹挟的肉机拉拢到己方阵营,与服务器协同作战。

客户端的普及是有效实施“云防护”的基础。国内BAT公司的客户端软件有很大的装机量,如果加以利用,应该很有前景。

远见创新

在过去的若干年中,我逐渐领悟到一个知识,通过对基础框架的分析和研究而进行的理论和实践创新,远比单纯的技术复制和实现重要得多。在计算机生态环境发生重要改变,从重单机PC端运用转向轻客户端的云互联运用的当下,安全的内涵与外延也注定会发生重大改变。

当诺顿感概“安全软件已死”时,他们所感慨的是伴随XP及更老OS而远逝的因OS本身漏洞丛生而造就的安全辉煌,但诺顿自己当然非常清楚,安全是永不日落的永恒话题,只是对象发生了悄然改变而已。这不,最新消息显示,诺顿现在已经开始对服装(口袋)进行安全认证了。这是诺顿进行转变和创新的一端。其他的客商如何呢?

时间: 2024-10-07 03:50:55

对Windows安全软件的思考的相关文章

Windows常用软件推荐

前言 很多人都认为我是计算机高手,其实我只会帮你修理下你的电脑啦,曾几何时我也帮助过好多好多的同学和老师,尝试和体验各种各样的软件,但谁又能想到我曾今也对你们的电脑做过很多失败的坑爹操作,把你们最宝贵的数据撸得灰飞烟灭,这里要感谢当时允许我不断尝试失败的大白鼠 @王纪华 tommy(249033945),使我养成了发散思维.逆向思维和创造性思维的解决问题之道.作为一名非职业HelpDesk,我一定不是最最优秀的那一群技术大牛,但我也努力超越了99.99%的从业者,Because I just l

软件版本管理思考

最近维护公司老项目,版本太多,更新一个bug,n个版本都要更新,头大,如何整理? 软件版本管理思考,布布扣,bubuko.com

VC开发Windows客户端软件之旅——前言

从第一次拖着行李入京找活,至今已工作若干年了.这些年一直追逐自己的梦想,跑过三个城市,换了三份工作,认识了很多业内的朋友.和朋友们闲聊时,发现很多人都已经不再做客户端软件了.有的转去做管理,有的转去做IOS,有的转去做安卓,有的转去做投资,"坚守"的人真的不多.曾经朋友开玩笑,说我们都是抱着微软的大腿,如果微软倒了,我们就失业了.我们说这句话时,多半是抱着戏谑的态度.时过境迁,随着移动互联网的兴起,PC的没落是难免的.相应的PC客户端没落,从业人数减少,现在想招一个合格的windows

Windows平台软件推荐:神器小工具(骨灰级)

底层工具 "If you know how to use Process Monitor competently, people of both sexes will immediately find you more attractive." – Scott Hanselman Ultimate Boot CD 和 Ultimate Boot CD for Windows  – 这些光盘是程序员修电脑时的必备工具,毕竟你可没那么多钱给给每个电脑坏掉的亲戚买新机,不是么? Hiren'

关于开源软件的思考

今天看了别人的一篇评论.转过来分享下. 在黑暗森林里一定要扮猪...作者的错误是把产品开源了,开源生态最重要的一点就是不能把一整套离终于用户太近的东西开源.开源是指的对程序猿开源,而不是用户.能够开源一个技术,不能是一个软件. 古时候人类开拓疆域.为了获取很多其它的资源,部族之间互通有无.各自专心做自己的擅长. 开源世界也是.你做你的内存数据库,我做我的高性能转发框架,脱离了彼此,什么优秀的产品都出不来.互通了有无.终于大家都做出了对用户实用的产品,节省了时间. 人类历史上从来没有不打仗就把一整

12306新版刷票软件设计思考

12306网站在今天启用了新的验证码,由简单的数字改成了如图,物品中文名,选择对应的照片. 在微博上知道这个新闻后,到12306逛了逛,然后开始思考这种验证码究竟能对黄牛票贩子和刷票软件起多大作用. 开始的时候认为启用了这种验证码比较难刷票了,刷票其实只是用软件代替了人工的操作.先识别中文,然后再找对应图片,除非有整个12306所有的中文和图片对应的关系数据库,不然就是识别出中文也没法找图片,图片都是照片,用软件可以比较图片的是否相同,但不可能用识别软件看出照片内容,如果能认出来,票贩子直接开发

延缓或阻止Windows 10软件自动更新教程

Windows10强制自动更新机制从"诞生"之际就褒贬不一,强制更新之后从一定程度上提高了系统的安全性,然而它同时也会给用户带来许多不可预料的麻烦,比如说前一段时间的无限重启.那么我们能不能阻止软件自动更新呢?答案当然是肯定的.  如果你使用的是Win10专业版,可以通过设置来推迟升级,具体操作方法如下:  打开开始菜单,然后依次打开"设置"--"更新和安全",然后点击"高级选项",选择"推迟升级"即可. 

[软件人生]思考:软件的目的是什么,程序员实际在做什么

推荐一篇文字李航博士的<浅谈我对机器学习的理解> 机器学习与自然语言处理 http://www.thebigdata.cn/JieJueFangAn/13162.html 李航博士的<浅谈我对机器学习的理解> 机器学习与自然语言处理此文写得不错,属于入门可以理解的.要知道,我们所做的一切其实最终目标都是拟人化,拟人化的结果实际上就是让人可以节约时间减少复杂操作,减少的复杂操作实际上是人本身来解决这类问题必须要做的各种人的行为的序列,所以,软件本身就是要进行这种序列的模拟或者结果化模

禁止Windows安装软件

今天电脑莫名安装上百度杀毒,想永久解决这个问题. 1.卸载百度杀毒 2.运行cmd-->sc delete 'service name' 3.sc delete BDMiniDlUpdate/BDSGRTP C:\Users\Administrator>sc delete BDMiniDlUpdate[SC] DeleteService 成功 方法一.通过组策略禁止安装软件.运行gpeditmsc打开组策略,在管理模板里打开windows组件,有个windows安装服务,将右边的东西你看一下,