Windows的“漏洞”是什么?为什么层出不穷?

Windows年年补,月月补的“漏洞”究竟是什么?“补丁”究竟做了些什么工作?为什么Windows总有修补不完的“漏洞”呢?

推荐  (0) | 17人关注关注
11个答案
30 2

Goofy养兔专业户

2013-12-14 19:53

你盖了间房子,住在里面。
当然了,不论泥瓦匠也好,还是烧砖的工匠也好,都不可能完全不出错,所以你的房子,总有一些砖是不那么结实的,可能是砖本身不结实,也可能是因为泥瓦匠砌砖的时候砌歪了。
这样会造成两种问题。
第一,某些砖头很关键,比如一块砖不结实,造成房梁不安稳,你可能在家里不小心靠了一下柱子,结果房子垮了。这就和windows系统崩溃是一个意思。
第二,某些砖头也很关键,虽然不会让房子垮掉,但是可以让小偷很容易的打碎这块砖头,这样就可以进你家里偷东西,怎么办呢?换掉这块砖头。这就是windows的安全补丁了。
这就是windows的安全补丁的由来,一种是为了保证windows系统的正常运行,一种是为了抵御外界的攻击。
理论上来说,不存在绝对安全的系统,不论是是Windows也好,类Unix系统也好,一定会有漏洞。
不知是Windows有补丁,Linux和Mac OS一样有补丁,但由于1、系统更简约(越简单出错的几率越小,越复杂的系统,不可控的因素越多)2、用户量相对少一些(极端一些的案例,如果你自己搞一套自己的系统,别人就不那么容易破解你的系统),以上的原因,造成大家不怎么关心其他系统的安全漏洞,因为跟自己没什么关系。

10 1

好吧,我试试看尽量回答得"外行看得懂,内行不觉得错"。

什么是漏洞/bug?
下雨天,你打伞就是希望能挡雨。如果漏了个洞,雨就会打湿你。
什么是利用漏洞?一只鸟发现了你伞上的洞,瞄准洞给你来了一泡,结果你感染禽流感了。
你把洞补好,没事了。

漏洞就是计算机系统软件或硬件的缺陷。有企图的人会利用这些缺陷做各种事情。

那为什么会有漏洞,又怎么补都补不完呢?
1. 因为"计算机实在是太复杂了"
计算机是个确定的系统,所谓确定,是指在一系列给定的条件下,结果是可以预知的。(题外话:如果不利用不可预测的物理现象,目前的计算机不能产生真正概率意义上的随机数)。好了,问题就出在这"一系列给定的条件"。要知道,即使是程序员习惯运行的最简单的代码,比如Hello World,虽然表面上看起来你可以用一行代码做到,但背后实际涉及到:
-------------
软件/程序
-------------
操作系统
-------------
硬件
-------------
这至少三层内容。虽然细分起来不止这三层,但用这三层来抽象问题比较好理解。
软件/程序:实现开发者想要的功能(大部分程序员干的事).
操作系统:提供一个供软件/程序可以跑(运行)的环境(操作系统内核,各种函数库,硬件资源管理等等)(少部分程序员干的事)
硬件:就是硬件呗。

几个问题:
Q1: 不要硬件行不行?
A1: 绝逼不行。就算是虚拟机也要硬件,就算是cloud也要硬件,就算你在自己大脑里想,也还是要硬件的。
Q2: 不要操作系统行不行?
A2: 绝逼不行,牛逼可以。如果你还指望你的计算机能通过运行程序/软件实现你要的功能,那就需要一种操作硬件的方法。操作系统起这样的作用。为什么说牛逼可以,是因为会有人按照自己的意愿写操作系统,比如Linus当年就是觉得用着不爽所以开发了Linux.
Q3: 不要软件/程序行不行?
A3: 绝逼不行,二逼可以。客观来说现在各路操作系统都已经包含了若干软件/程序,毕竟,你要计算机干嘛呢?

好了,至此你应该知道,要让看起来一个小小的程序运行起来,背后有很多东西牵涉其中,似乎仍不足以显示计算机有多复杂?OK。操作系统在几年前就已经达到至少千万行代码的级别,CPU/GPU这些核心部件也是至少亿级的晶体管。从这些数量级就应该能体会到什么叫"一系列给定的条件"。理论上说只要确定就能够预知,漏洞就可以避免。但由于实在太过复杂,所以要做到完全避免是很难的事情。

2. 因为"人始终会犯错"
如此复杂的系统,不是一个人能够开发完成的。庞大的软件工程项目开发,涉及到多部门协作,每天又都有人在离职入职,开发需求又在不断更新,项目经理又在不断催截止日期(工程师们都很喜(tao)欢(yan)PM有木有),各种因素增加了系统有漏洞的风险。1个人干10人/月的工作,10个人干一个月能搞定吗?NO。沟通需要花时间,而沟通本身也增加了漏洞发生的风险。

几个问题:
Q1: 不要PM行不行?
A1: 恐怕可(bu)以(xing)
Q2: 增加测试人手行不行?
A2: 事实上任何软件公司都会有测试部门以及严格的测试流程来减少bug的数量。但达到一定规模后会有边际效应递减的,所以测试人手不可能无限增加。

3. 和软件公司的路线图计划(roadmap schedule)有关
任何软件公司,开发和维护都有一定的流程,而且根据软件规模的不同复杂度也有所不同。比如现在开始做一个东西,不是昨天定下来的,而是之前就已经确定了的,包括要做什么、能不能做、做到什么样、什么时候发布、开发进度如何、每个进度节点需要完成什么东西等等。维护也是一样,从收到bug的那一刻起,会有人复现(reproduce)这个bug,提交到系统、分类、评估严重程度、安排工程师分析、解决、验证,最后关闭。内部测试发现的和外部反馈的都基本如此。这个流程上的每个环节都会花费一定的时间。对于有些bug,还会和路线图上未来的产品相比较:这涉及新功能,而且不那么紧急,是不是考虑放到和新功能一起发布?诸如此类。所以并不是所有bug被发现后都能迅速被修补掉的。多迅速来处理取决于对这个bug的评估。

漏洞都是什么人发现的?
公司内部自然有测试人员,尽量在发布前就捕捉到漏洞并反馈到工程部门。
一些安全公司,人家就是干这个的。
一些个体户,目的多种多样了,有义务的,有赚钱的。

Q1: 为什么发现漏洞能赚钱?
A1: 在漏洞被补上前越早发现漏洞,能够利用的窗口期越长。从损失的角度说,有些漏洞"可能"造成的损失是不可弥补的,出售漏洞的人获得的利益在损失面前反而显得那么廉价,而利用漏洞的人在过程中获得了最大不义之财。

*nix就没有漏洞吗?
大错特错。表面上看到好像各种漏洞尽是Windows,觉得*nix和其他平台就没有漏洞,其实不然。且不论安全性的比较,因为这是仁者见仁智者见智的问题,很难给出一个客观的量化指标。但要明白,*nix也是有漏洞的。
但为什么看上去Windows漏洞就是比较多呢?
1. 树大招风。卖漏洞、利用漏洞作为生财之道,自然会有人评估如何才能撒最大的网。显然Windows中枪。
2. 复杂性。拿Windows去和某个Linux发行版比有失公平,要知道出于商业目的或者说所谓用户体验,Windows中包含了相当多的不属于操作系统本身的功能,功能越复杂,有漏洞的风险就越高。
3. 更新周期。和Linux相比,Windows内核改动逐年减少,你以为是微软的人水平低下停滞不前了?一旦有了商业思考,问题往往就不是工程这么简单了。如此庞大的系统,如此众多的用户,隔几天更新一下内核,然后你用一用就崩溃,这种风险微软承担不起,所以只能选择保守做法:几年大更新一次,然后以修补漏洞为主。
4. 商业。当要考虑用户体验、考虑产品市场的时候,往往不能以一个程序员的思路简单化处理。有了妹子,还因为熬夜写代码不陪妹子?还因为和小伙伴奋战游戏不回妹子电话?活该还是单身啊!

修改原因:错别字。

3 0

wonder4life数学专业IT男

2013-12-26 08:31

功能的数量和bug基本成正比。功能越多,bug越多。windows内核庞大,几千人协作开发,出现bug正常,所以补丁也会层出不穷。

第二个原因,windows用户庞大,利益相关者太多,所以黑客们也是不遗余力的找寻各种bug出来,这是一个巨大的驱动力。魔高一尺,道高一丈,双方斗法,循环不断。所以bug被发现、被利用,windows的人就要不断修改,打补丁。

1 0
支持者:

因为windows太大了,总有一次性考虑不到测试不完的地方,这些地方就是所谓漏洞

0 0

补丁还是要打的,不过的确是越打补丁系统越慢。

0 0

楼上有几位说的很对啊 用的人多自然激励人家去找bug,还有就是windows确实是个太庞大的操作系统= =

0 0

最根本的原因是,类似linux这类的操作系统是开放源代码的,知道什么是开放源代码吗?所有的源代码都是公开的,谁都能看见,所以如果有漏洞,很早就被人发现了,而win是商业软件,没有开放源代码,他们的漏洞是被人慢慢的一个一个的找到的,所以好像win持续的一直有漏洞。

第二,使用linux的都是专业人士,而linux也是为专业人士设计的,他的权限系统很严密,没有权限你就真的什么都干不了,有了权限你真的就是想干什么都可以,所以吗,使用它的人都知道要限制自己的权限,怕万一一个命令不小心就毁了整个系统,有这种意识以后,系统本身就很可靠,而win为了大部分人都能用,在权限设置上不得不变通,让普通人有足够的权限,但有不能危害系统,这就让系统的可靠性变低了,这是一种不得不的变通。总的来说win系统的健壮性本来就不如linxu。他们是设计来用在不同的场合的。类似linux的系统严密的权限系统会让系统用起来很繁琐,但这却保证了系统的安全,总的来说,linux是设计给服务器和专业人员用的系统,而win是业余人员用的。

2 3
支持者: we_cry 曾念进

据说linux里面的漏洞其实更多。只是黑linux没啥意思大家懒得弄。

0 6

就好比你做作业,不是做一两页,而是做几千页,几千页都在做一道题,肯定做来错去的啦~

1 21
支持者: 失魂棒

总觉得那东西无所谓 可能是修复BUG什么用
补丁漏洞越修电脑越慢有木有

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区