微信技术总监谈架构:微信之道——大道至简(演讲全文)

微信技术总监谈架构:微信之道——大道至简(演讲全文),第1张

微信——腾讯战略级产品,创造移动互联网增速记录,10个月5000万手机用户,433天之内完成用户数从零到一亿的增长过程,千万级用户同时在线,摇一摇每天次数过亿在技术架构上,微信是如何做到的?日前,在腾讯大讲堂在中山大学校园宣讲活动上,腾讯广研助理总经理、微信技术总监周颢在两小时的演讲中揭开了微信背后的秘密。

周颢把微信的成功归结于腾讯式的“三位一体”策略:即产品精准、项目敏捷、技术支撑。微信的成功是在三个方面的结合比较好,能够超出绝大多数同行或对手,使得微信走到比较前的位置。所谓产品精准,通俗的讲就是在恰当的时机做了恰当的事,推出了重量级功能,在合适的时间以最符合大家需求的方式推出去。他认为在整个微信的成功中,产品精准占了很大一部分权重。

相关链接

周颢

2001 年毕业于华南理工大学,计算机专业硕士。

2005 年加入腾讯广州研发部,历任 QQ 邮箱架构师,

广研技术总监,T4 技术专家,微信中心助理总经理。

微信研发团队里鼓励一种试错的信仰:他们坚信,在互联网开发里,如果能够有一个团队在更短的时间内尝试了更多机会(并能改进过来),就能有(更多的)机会胜出。敏捷是一种态度,在软件开发过程中,项目管理者都会非常忌讳“变更”这个词,但是在微信的项目运作中是不可以的。因为微信必须要容忍说哪怕在发布前的十分钟,也要允许他变更。这是非常大的挑战,因为打破了所有传统项目开发的常识。所有人都说不可能做到的,但微信做到了。研发团队所做的一切都是要给产品决策者有最大的自由度,而这个决策正是微信能够胜出的关键。

敏捷有很多困境,如果做一个单机版程序,是可以做到很敏捷的,但是腾讯正在运作的是一个海量系统,有千万级用户同时在线,在一个单独的功能上每天有百亿级的访问,同时还要保证9995%的可用性。在海量系统上应对项目开发会有很严谨的规范,都说要尽可能少的变化,因为90%-95%的错误都是在变更中产生的,如果系统一直不变更会获得非常高的稳定度,但是微信就是要在悬崖边跳舞。微信的研发团队要做一些事情,让敏捷开发变得更简单。

如何做到这一切?周颢认为,首先,必须建立起一种狂热的技术信念,就是一定是可以做到的。然后,需要用一些稳固的技术(理念)来支撑,例如大系统小做、让一切可扩展、必须有基础组件、轻松上线(灰度、灰度、再灰度;精细监控;迅速响应)等等来支撑。

当设计庞大系统的时候,应该尽量分割成更小的颗粒,使得项目之间的影响是最小的。仅仅把模块变得更为清晰,这在海量系统设计开发中是不够的,还需要在物理环境上进行分离部署,出现问题的时候可以快速发现,并且在最快的情况下解决掉。

大系统小做,混搭模式:

将不同的应用逻辑物理分割独立出来,用户注册登录、LBS逻辑、摇一摇逻辑、漂流瓶逻辑、消息逻辑独立开来。把关键的逻辑混搭在一起,当所有的逻辑部署在同一个服务器上,确实也会带来很大敏捷上的好处,因为不需要额外的考虑部署和监控的问题。在整个微信的逻辑中,可能现在已经有上百种不同的逻辑,因为会在逻辑的分割上拆分成8-10种做分离部署。

在高稳定度、高性能的系统中间,为了稳定性能把它设计成不变化的系统,但为了支持敏捷需要让一切的东西都要变得可以扩展。

扩展的关键点有两块。一个是网络协议需要扩展,当要升级一个新功能的时候,会有一些比较大的困难,所以所有协议设计都比较向前兼容,但是向前兼容还是不够的,因为网络协议设计本身有非常多的功能也会有比较大的字段,相关的代码可能会有数千行,这一块不能通过手写方式完成。可以通过XML描述,再通过工具自动生成所有的代码,这是微信获得快速开发的一个重要的点。

另外一块就是在数据存储方面是必须可扩展的。在2005年绝大多数海量系统的设计都是采用固定字段的存储,但是在现代系统中会意识到这个问题,会采用KV或者TLV的方式,微信也做了不同的设计。

把复杂逻辑都固化下来,成为基础软件。在微信后台会有几种不同的基础组件。大致包括:

在变更后的部署方式上,微信在一些规则会限定不能一次把所有的逻辑变更上去,每一次变更一小点观察到每一个环节没有问题的时候,才能布局到全网上去。微信后台每一天可以支撑超过20个后台变更,在业界来说,通常做到5个已经是比较快了,但是微信可以做到快4倍。

腾讯内部的上线系统:

而所谓灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。(在腾讯,灰度发布是最常采用的发布方式之一)

常识上,解决一个复杂问题的时候,会用高明的技巧解决复杂的问题,这个不是微信团队的目标,他们追求的要做到让所有问题很自然和简单的方式解决掉。在周颢看来,微信架构的技术复杂点在四个要点:协议、容灾、轻重、监控。

微信架构:

在协议设计上,移动互联网和常规互联网有很大的区别。首先有CMWAP和CMNET的不同,在中国现在有相当多的手机用户使用WMWAP连接,还有就是在线和离线的概念,当QQ下线的时候叫离线,当你登录的时候叫在线。但是在移动互联网这两个概念比较模糊。从微信的设计中,不管在线还是离线系统表现都应该是一致的。还有一个是连接不稳定的问题,由于手机信号强弱的变化,当时信号很好,5秒钟走到信号不好的地区,连接就必须断掉。这个中间带来不稳定的因素为协议设计带来较大困难。此外就是资费敏感的问题,因为移动互联网是按照流量计费的,这个计费会使得在协议设计中如何最小化传输的问题。最后就是高延迟的问题。

对此,业界标准的解决方案:Messaging And Presence Protocol:1)XMPP;2)SIP/SIMPLE。它的优点是简单,大量开源实现。而缺点同样明显:1)流量大:状态初始化;2)消息不可靠。

微信在系统中做了特殊设计,叫SYNC协议,是参考Activesyec来实现的。特点首先是基于状态同步的协议,假定说收发消息本身是状态同步的过程,假定终端和服务器状态已经被迟了,在服务器端收到最新的消息,当客户端、终端向服务器对接的时候,收取消息的过程实际上可以简单的归纳为状态同步的过程,收消息以及收取你好友状态更新都是相同的。在这样的模式之下,我们会也许会把交互的模式统一化,只需要推送一个消息到达的通知就可以了,终端收到这个通知就来做消息的同步。在这样的简化模式之下,安卓和塞班都可以得到统一。这样的系统本身的实现是更为复杂的,但是获得很多额外的好处。

让剩下系统实现的部分更加简单,简化了交互模式,状态同步可以通过状态同步的差值获得最小的数据变更,通过增量的传输得到最小的数据传输量。通过这样的协议设计,微信可以确保消息是稳定到达的,而且是按序到达。引用一句俗话:比它炫的没它简单,比它简单的没它快,没谁比他更快,哪怕在GPRS下,微信也能把进度条轻易推到底。

周颢介绍了在微信上具体容灾设计的做法。在所有的容灾中存储层的容灾是最难的,一个系统的设计分为三层:接入层、逻辑层、存储层。接入层和逻辑层的容灾都有比较成熟的方案。逻辑层的容灾相对来说比较简单,尽量不要有状态的设计,比如说当你做上一个请求的时候,会保持一些状态,要使得下一个请求发到下一个服务器。如果任何一个请求之间互相不关联的话,这个就是无状态的设计,只要做到这一点逻辑层的容灾可以随意的切换。在回到存储层本身的容灾设计上,相对来说困难一些,但是微信研发团队采用了一些技巧,叫分而治之,分离业务场景,寻求简单的设计,并不会寻求大而同一的解决方案,因为这样会使得系统的复杂度大幅度上升,而微信会尽可能把产品拆细,寻求简化的设计。

首先是主备容灾,这是最常见的方案。在有一些业务场景中是可以容忍最终一致性的,比如账号系统的设计,每天写入账号系统的请求是非常少的,但是访问的请求非常多,这个差异可能会达到数万倍的规模,在这样的场景下,微信会在账号系统中采用简化的方案,也可以获得比较大的稳定度。

SET模型+双写:

第二种容灾的模式叫双写,两台Master的机器,当一台机故障的时候,另外一台机还是可以接收到写请求,当两台机交错启动的时候,会得到数据的丢失。但是有一些场景是可以容忍轻度数据丢失的,比如说会有一个存储专门记录用户终端的类型,比如说安卓还是塞班以及他们使用终端的微信版本是什么,这样的数据是可以容忍轻度数据丢失的,因为偶尔有一些丢失的话,下一次访问会把这些数据带上来,会尽快的修复所有的数据。双写也是非常简单的模式。

微信的研发团队做了一个叫Simple Quorum的机制,在微信的后台中,同步协议有一个很重要的基石叫序列发生器,这样的一个序列发生器需要有极高的稳定度。首先可以看到序列号有一个特点永远是递增的,用递增方式往前推进的时候,最大的序列号就是最新的系列号。有一个毕业才加入广研的毕业生想到一个绝佳的方案,按SET分布,从2G减到200K。

周颢还谈到了轻重的概念。这个概念的提出主要是从终端本身的一些困境所带来的。首先在终端上需要表现最多的一个产品的逻辑,逻辑非常复杂,变更的成本也非常高,当需要修复的时候必须发布一个新版本,这个新版必须由自己下载才能完成,下载的成本非常高。在这样的前提下,如果手机终端产生了任何变化的时候,如果这个变化有非常大的问题就会有极大的困境,所以需要在每一个发布之前做一些充分的数据,确保不会发生致命问题。如果一旦出现致命问题难以修复,需要把关键的点从终端移到后台实现,把功能点后移,来充分发挥后台快速变更的能力。

接入优化:从GSLB到IP重定向

在接入层的优化,速度很重要的因素,是不是能够就近接入一个最优的节点,比如说移动用户最好接入移动的节点,海外的用户可能需要寻找更佳的路由,有的时候可能无法自动做到这一点,一点是在终端上做测速,微信会通过在后台IP逆向的能力,通过后台指挥微信终端联网的能力,寻找最优的接入点。上图就是每分钟收到同一项指令曲线的报表。

如何解决“偷流量”的问题 ——当国内类微信类产品发布的时候出现一个大的问题就是“偷流量”,当用户在某一些逻辑下进行一个死循环,不断访问某一些数据,这样的死循环是非常可怕的,如果在用户不知觉的情况之下,可能会在一个小时之内偷到数10兆甚至数百兆的流量。有非常多业内的同行都需要花大量的精力解决这个问题,微信研发团队用了非常强大的方式解决它。通过在后台建立起严厉的监控系统,对每一个用户的行为做一个监控,当发现异常的时候,后台会给终端发出指令,使得微信终端在一段时间无法联网,但是可以保证用户流量不会白白的使用掉。

功能适配的例子 ——第一期微信版本发布的时候,当时没有群聊的功能,第二版发布的时候做了这个功能。当时有两个选择,对于早期版本的用户,因为不支持群聊,就无法享用到这个功能,但是微信希望提供更好的选择,想让早期不支持群聊的版本,也可以被拉到一个群里面收消息、发消息,通过后台功能的适配也能做到这个事情。

对于一个海量系统来说,一个精密的仪表盘非常重要。监控是非常痛苦的,对于这样一个系统来说,每小时会产生数百G的监控日志。微信希望在1分钟之内监控的数据就能够显示在报表上,因为只有这样的精准和实时度才能够赢得处理故障的时间。微信会做关联统计,通过摇一摇加了好友,他们活跃度如何,过了一段时间他们的活跃度变化情况又是如何。这种需求是需要通过大量日志的关联统计来获得的。研发团队也花了一段时间来理解这个问题,发现了中间一个重要的经验叫做“鱼和熊掌不能兼得”。

为了让监控数值更敏感,需要把监控细化再细化,上面数据表示每一栏子系统的数据,下面这个是按微信版本号来划分的,这里的数据项是非常多。

微信还需要采集一些异常的点,如果有异常的话会发布紧急的版本,尽可能快的替换它。对收发消息延时做的监控,比如说0—1秒端到端的速度,会对不同的区段做一些统计,当某一个环节出现异常的时候,通常会在中间的延时上体现出来。有一个很重要的点叫自动报警,现在有数千项的数据,不可能每一项都靠人工去看的,必须要跟自动报警相关联,微信有一些智能的算法,是不是在正常的范围内,跟 历史 的数值进行对比,如果有异常的话,会通过短信、邮件还有微信本身来发出报警信息。

微信会把监控嵌入到基础框架里面去,因为并不是每一个人都会意识到在需要的地方嵌入一个监控点,所以在基础框架本身内置很重要的监控点,比如说这个表上的栏目,非常多的栏目大概会有数百项的栏目,都不需要程序员自己去写,当用基础组件搭建一个系统的时候,就可以直接观测系统数据。

在谈到微信未来的技术挑战时,周颢首先希望能够让微信成为可用性9999%的系统;设计出面向现在10倍容量的系统以及完全的IDC容灾。

网上盛传的凌晨两点,腾讯大厦那多层大片大片的灯光和楼下那长长的出租车队伍说明了一切。引用一句话做结尾:“可怕的不是微信,真正可怕的是,比你领先比你更有天赋的团队比你更努力”。

问题一:马化腾为什么成功 游戏方面:先了解市场需求,了解大部分玩家所选择的游戏,然后模仿或者代理这方面的游戏赚取固定客户。再开发这方面的新游戏(虽然大部分抄袭),固定游戏人群多了游戏自然赚钱多。

问题二:腾讯马化腾的成功有哪些因素? 第一,绝对不意气用事,只要可以赚钱就意气用事
定二,绝对不漏抓任何一件可以赚钱的事
第三,绝对赚钱的公证漂亮

问题三:为什么马化腾呢么成功,为什么在社会上很少有他的消息,而且谈起成功人士很少有人说他 10月09日讯
今年刚好是腾讯成立10年周年。短短10年时间,腾讯从当初五个年轻人花几百万元人民币注册的小公司,成长为市值超过100亿美元的企业集团。之所以能够取得如此惊人的成就,得益于马化腾和他的团队创造了一种互联网企业的商业模式和扩张模式
《福布斯》杂志9月9日公布了全球互联网富豪排行榜,全球33名富豪上榜,腾讯董事局主席马化腾以14亿美元净资产排名第22位。
第二天,腾讯公关部的一名工作人员在公司办公楼的电梯里遇到了马化腾,将这个消息告诉他。对此,马化腾只是淡淡地一笑。
将刘炽平任命为腾讯公司总裁,并于2007年3月,再次将其提升为腾讯公司的执行董事之后,有一段时间马化腾很少在公司里露面。今年这种情况发生了变化,腾讯公司的员工得以更多地看到他们的“小马哥”了。
“他到公司来主要是参加一些公司战略层面上的会议。他将自己定位为腾讯产品的‘首席体验官’,经常也会谈一些使用产品后的感受。”腾讯公司公关部员工宋介绍,“至于他本人,看不出来有什么太大的变化吧,对人依旧是像邻家大哥一样亲切。”
腾讯公司成立于1998年,今年刚好是腾讯成立10年周年。短短10年时间,腾讯已经从当初五个年轻人花几百万元人民币注册的小公司,成长为市值超过100亿美元的企业集团。之所以能够取得如此惊人的成就,得益于马化腾和他的团队创造了一种互联网企业的商业模式和扩张模式。
差点卖掉QQ
在目前广泛使用的因特网普及之前,一些网迷已经在慧多网上体会到了上网冲浪的乐趣。马化腾大学时代就开始迷恋慧多网,是中国大陆最早的网民之一。
通过早期的互联网,马化腾结识了很多“网虫”朋友,其中的一些人后来成为了叱咤互联网江湖的风云人物,例如网易的丁磊、金山的求伯君。马化腾有一次提到丁磊时说:“当年和丁磊一起喝啤酒的时候,我们还是打工仔,都不知道未来会怎样。丁磊后来的成功给了我很大启发,只要去做,就有可能成功。”
1998年11月,马化腾与大学同学张志东等五人,在深圳注册了深圳腾讯计算机系统有限公司。基于上网聊天的兴趣,马化腾和他的同事们开发出了中文界面的即时通讯工具――QQ
不过这个后来风靡全国,并为腾讯公司创造出巨大财富的聊天工具,当时并没有给腾讯带来多大喜悦,因为当时国内也有好几家公司开发出了同类的软件,如PICQ、CICQ等中文即时通信软件,但都没有打开市场,用户也不多,更没有人看好马化腾的QQ
也许是不愿意看到自己开发的产品没有市场的无奈之举,也许是研究了市场之后高明的营销举措,在1999年上半年的某一天,马化腾忽然决定,将QQ软件挂在了网上,供网民们免费下载使用。
凭借其简洁、实用的风格,青春化的设计,免费下载的QQ首先得到了大学生的青睐,在大学校园里风靡一时。然后QQ又以校园为中心,在白领人群中快速传播。面对小企鹅的强大功势,PICQ、CICQ等竞争对手变得不堪一击,纷纷败下阵来。
然而,QQ用户数呈几何基数增长,注册人数大量增加,就要不断扩充服务器,当时每月每台服务器几千元钱的托管费,就让弱小的腾讯公司直不起腰来,更不要说购买新的服务器了。
当时的腾讯苦不堪言,需要花钱的地方很多,但却挣不到钱,国内的投资商也不认可用腾讯试图用“注册用户数”来融资的想法。
据一位腾讯的老员工回忆,最困难的时候,腾讯的几个创始人每天晚上都会聚在一起吃晚餐,吃得很简单,主要目的是利用这段时间来讨论公司的发展。席间经常发生激烈的争吵。马化腾从不参与争吵,但有时候说话也非常尖酸刻薄。争执的最后结果是把QQ卖掉。
“当年卖QQ的时候>>

问题四:谁详细的帮我总结一下马化腾的成功原因? 模仿,免费变收费!那个说从未被超越错了,他一直在模仿别人不是别人模仿他!还有就是人人都在用这个!

问题五:马化腾取得今天这么大的成功,最关键的因素是什么呢 有效营销
你可以百度相关视频、新闻、文章自己阅读体会^-^

问题六:马化腾:腾讯取得成功的秘诀是什么 中国脑残太多,人傻钱多。

问题七:马化腾的成功之路 励志一点的文章 每天一篇励志文章:最努力的时候运气最好
文|吴淡如
就算没有天分,只要你愿意每天花一点时间,做同样一件事情,不知不觉间,你就会走得很远。
在许多的犹豫中,你做对了一件事情,那就是勇敢地上路,不要徘徊在许多假设性的框框里。那是一个人生的大关卡,你做了一个正确的选择,那就是:尝试,再尝试,不害怕所有的新鲜事。
习惯于求生,慢慢的,就会拥有阳光性格。这是饱经磨难后最好的礼物,虽然,不是每个饱经世事的人都能获得。如果只是消极地等待转机,没有尝试为自己坚持一些什么,受到再大的折腾,终究只会越来越虚无。
镇静一些,有耐性一点,且看看命运怎么盘旋。活得久,才能站在小山头上,欣赏自己走过的崎岖路线。一个人,可以没有未来目标,不描绘生涯规划蓝图,只要记得当阴暗降临时,一有机会,就要往阳光多处走,还是可以走出一条灿烂温暖的人生道路!
每天一篇励志文章:行动的力量,化理想为真实
知识很重要,这是毋庸置疑的,但比起知识来说,行动更重要,因为只有行动才能将脑中的知识化为真实,如果没有行动,一切都不会发生。
一个人再聪明、再有智慧,若他不透过行动将所学所知散播出去,便一点价值都没有,行动正是创造价值的来源,一个不断行动的人便是一个不断创造价值的人。
一个不断行动的人,比起一个脑中充满理想的人来说更有价值,因为真正能够创造价值的只有行动,知识无法、智能也无法。
无论是一个好计画也好、一个想法也好、一件事情也好,都只能算是一种思维,透过行动才能赋予这些思维价值。
即使是最后不成功,但是在行动的过程中肯定能够得到什么。
什么是成功成功就是当你失败后可以从中学习到教训。
失败也能算一种成功是的,前提是你要能从失败中学习到教训,那就算是一种成功,毕竟失败只是通往成功的一个必经过程。
想象如果你是一个不断行动的人,你会变得怎么样首先,你会变得很积极,你不再将时间浪费在那些无意义、对生命没有价值的事情上,你的人生会变得越来越有价值,并且会让你觉得此生越来越没有白活。
想象一下你完成了一件事、你看了一本书、你去了一个景点、你去了一趟旅行、看了一场,你从中得到了什么
那些你得到的东西便是你因为行动所获得的价值,所以不断的行动,你便能不断的得到东西,同时也替自己再不断的创造价值,创造价值就是此时此刻不断的行动。
如果你每天阅读一本书,你阅读这本书所获得的观念、知识、想法,就是你所创造的价值,价值因为行动而存在,创造价值的同时,你也正在收获。
所以,如果想让自己过一个美好的人生,就必须让自己不断的有收获,而让自己不断有收获的来源就是不断地替自己创造价值,创造价值的方法就是不断的行动。
有想法更要有做法,如果只知空想而没有任何行动,那想法永远也只是个想法,是不可能成为事实的,梦想成真的关键就在:不断的行动、不断的创造价值。
人生的奋斗重点在于行动,如果你很想要某样东西,就应该选择让自己使命必达的完成它。有钱人跟穷人最大的差别就在于「行动」。
做梦人人都会,没什么了不起,真正能将想法落实到实际行动上的人,才是值得令人敬佩的。
如果你还年轻,就没有所谓的失败,获取成功只是需要勇气、智慧和行动。因为,在这样一个时代,没有什么不可能。
当你选择替自己创造一个有价值的人生,你需要的是不断的行动,即使是每天多付出十分钟也好、五分钟也好,当你选择开始这么做,你的人生便已经悄悄的开始改变。
记得,你的每一个行动都在创造一个微小的价值,当你替自己创造的价值累积到某一个程度,才能改变自己的人>>

问题八:马化腾的成功给我们在创业选项目的启示 选对项目,就不要犹豫,坚持走下去,终有一天会成功。用一句俗话,谁笑在最后,谁笑得最甜

问题九:为什么马化腾那么低调 是因为根本红不起来吧。

问题十:为什么马化腾那么成功,而且社会上关于他的新闻没有,谈起成功人士很少有人说起他。因为他整天不出门,为 你真相了。。
虽然不是说马化腾赚的是什么不好的钱,不过这世界赚钱的法子还真不止一种。
有些人赚正财,有些人赚偏财。
我认识的一个人(男的)就是,他没有固定收入,但是他已经有了两套房子。他的收入纯靠帮人忙,他有那个圈子,认识好多大老板。老板们手底下有什么活,例如要盖个三星宾馆,就 叫他过去帮忙看看场子管管事儿。或者哪个老板的司机请假了,叫他过去开开车。

解决方法:
第一种方法:
1、查看桌面快捷方式属性,目标栏尾部是否被添加其他链接地址,如果有,删除被添加的地址。
2、清理并修改注册表相关信息。但是这一次明显耍流氓的手段高明了很多。查快捷方式,注册表,都未发现相关流氓链接。
第二种方法:首先,打开360安全卫士,在360安全卫士主界面找到功能大全,然后点击打开系统急救箱。然后,直接点击“开始急救”按钮,不要勾选强力模式和全盘扫描。
最后等待登录器劫持驱动服务处理成功,选择立即重启,重启之后直接打开登录器直接进入游戏即可。

首先建议你使用360主机卫士、安全狗对服务器进行扫描排查。
1应当采用的处理方式
(1)、建立被入侵系统当前完整系统快照,或只保存被修改部分的快照,以便事后分析和留作证据。
(2)、立即通过备份恢复被修改的网页。
(3)、在Windows系统下,通过网络监控软件或"netstat -an"命令来查看系统目前的网络连接情况,如果发现不正常的网络连接,应当立即断开与它的连接。然后通过查看系统进程、服务和分析系统和服务的日志文件,来检查系统攻击者在系统中还做了什么样的 *** 作,以便做相应的恢复。
(4)、通过分析系统日志文件,或者通过弱点检测工具来了解攻击者入侵系统所利用的漏洞。如果攻击者是利用系统或网络应用程序的漏洞来入侵系统的,那么,就应当寻找相应的系统或应用程序漏洞补丁来修补它,如果目前还没有这些漏洞的相关补丁,我们就应当使用其它的手段来暂时防范再次利用这些漏洞的入侵活动。如果攻击者是利用其它方式,例如社会工程方式入侵系统的,而检查系统中不存在新的漏洞,那么就可以不必做这一个步骤,而必需对社会工程攻击实施的对象进行了解和培训。
(5)、修复系统或应用程序漏洞后,还应当添加相应的防火墙规则来防止此类事件的再次发生,如果安装有IDS/IPS和杀毒软件,还应当升级它们的特征库。
(6)、最后,使用系统或相应的应用程序检测软件对系统或服务进行一次彻底的弱点检测,在检测之前要确保其检测特征库是最新的。所有工作完成后,还应当在后续的一段时间内,安排专人对此系统进行实时监控,以确信系统已经不会再次被此类入侵事件攻击。
如果攻击者攻击系统是为了控制系统成为肉鸡,那么,他们为了能够长期控制系统,就会在系统中安装相应的后门程序。同时,为了防止被系统用户或管理员发现,攻击者就会千方百计地隐藏他在系统中的 *** 作痕迹,以及隐藏他所安装的后门。
因而,我们只能通过查看系统进程、网络连接状况和端口使用情况来了解系统是否已经被攻击者控制,如果确定系统已经成为了攻击者的肉鸡,那么就应当按下列方式来进行入侵恢复:
(1)、立即分析系统被入侵的具体时间,目前造成的影响范围和严重程度,然后将被入侵系统建立一个快照,保存当前受损状况,以更事后分析和留作证据。
(2)、使用网络连接监控软件或端口监视软件检测系统当前已经建立的网络连接和端口使用情况,如果发现存在非法的网络连接,就立即将它们全部断开,并在防火墙中添加对此IP或端口的禁用规则。
(3)、通过Windows任务管理器,来检查是否有非法的进程或服务在运行,并且立即结束找到的所有非法进程。但是,一些通过特殊处理的后门进程是不会出现在 Windows任务管理器中,此时,我们就可以通过使用Icesword这样的工具软件来找到这些隐藏的进程、服务和加载的内核模块,然后将它们全部结束任务。
可是,有时我们并不能通过这些方式终止某些后门程序的进程,那么,我们就只能暂停业务,转到安全模式下进行 *** 作。如果在安全模式下还不能结束掉这些后门进程的运行,就只能对业务数据做备份后,恢复系统到某个安全的时间段,再恢复业务数据。
这样,就会造成业务中断事件,因此,在处理时速度应当尽量快,以减少由于业务中断造成的影响和损失。有时,我们还应当检测系统服务中是否存在非法注册的后门服务,这可以通过打开"控制面板"-"管理工具"中的"服务"来检查,将找到的非法服务全部禁用。
(4)、在寻找后门进程和服务时,应当将找到的进程和服务名称全部记录下来,然后在系统注册表和系统分区中搜索这些文件,将找到的与此后门相关的所有数据全部删除。还应将"开始菜单"-"所有程序"-"启动"菜单项中的内容全部删除。
(5)、分析系统日志,了解攻击者是通过什么途径入侵系统的,以及他在系统中做了什么样的 *** 作。然后将攻击者在系统中所做的所有修改全部更正过来,如果他是利用系统或应用程序漏洞入侵系统的,就应当找到相应的漏洞补丁来修复这个漏洞。
如果目前没有这个漏洞的相关补丁,就应当使用其它安全手段,例如通过防火墙来阻止某些IP地址的网络连接的方式,来暂时防范通过这些漏洞的入侵攻击,并且要不断关注这个漏洞的最新状态,出现相关修复补丁后就应当立即修改。给系统和应用程序打补丁,我们可以通过相应的软件来自动化进行。
(6)、在完成系统修复工作后,还应当使用弱点检测工具来对系统和应用程序进行一次全面的弱点检测,以确保没有已经的系统或应用程序弱点出现。我们还应用使用手动的方式检查系统中是否添加了新的用户帐户,以及被攻击做修改了相应的安装设置,例如修改了防火墙过滤规则,IDS/IPS的检测灵敏度,启用被攻击者禁用了的服务和安全软件。
2进一步保证入侵恢复的成果
(1)、修改系统管理员或其它用户帐户的名称和登录密码;
(2)、修改数据库或其它应用程序的管理员和用户账户名称和登录密码;
(3)、检查防火墙规则;
(4)、如果系统中安装有杀毒软件和IDS/IPS,分别更新它们的病毒库和攻击特征库;
(5)、重新设置用户权限;
(6)、重新设置文件的访问控制规则;
(7)、重新设置数据库的访问控制规则;
(8)、修改系统中与网络 *** 作相关的所有帐户的名称和登录密码等。
当我们完成上述所示的所有系统恢复和修补任务后,我们就可以对系统和服务进行一次完全备份,并且将新的完全备份与旧的完全备份分开保存。
在这里要注意的是:对于以控制系统为目的的入侵活动,攻击者会想方设法来隐藏自己不被用户发现。他们除了通过修改或删除系统和防火墙等产生的与他 *** 作相关的日志文件外,高明的黑客还会通过一些软件来修改其所创建、修改文件的基本属性信息,这些基本属性包括文件的最后访问时间,修改时间等,以防止用户通过查看文件属性来了解系统已经被入侵。因此,在检测系统文件是否被修改时,应当使用RootKit Revealer等软件来进行文件完整性检测。二、 以得到或损坏系统中机密数据为目的的系统入侵恢复
现在,企业IT资源中什么最值钱,当然是存在于这些设备当中的各种机密数据了。目前,大部分攻击者都是以获取企业中机密数据为目的而进行的相应系统入侵活动,以便能够通过出售这些的机密数据来获取非法利益。
如果企业的机密数据是以文件的方式直接保存在系统中某个分区的文件夹当中,而且这些文件夹又没有通过加密或其它安全手段进行保护,那么,攻击者入侵系统后,就可以轻松地得到这些机密数据。但是,目前中小企业中有相当一部分的企业还在使用这种没有安全防范的文件保存方式,这样就给攻击者提供大在的方便。
不过,目前还是有绝大部分的中小企业都是将数据保存到了专门的存储设备上,而且,这些用来专门保存机密数据的存储设备,一般还使用硬件防火墙来进行进一步的安全防范。因此,当攻击者入侵系统后,如果想得到这些存储设备中的机密数据,就必需对这些设备做进一步的入侵攻击,或者利用网络嗅探器来得到在内部局域网中传输的机密数据。
机密数据对于一些中小企业来说,可以说是一种生命,例如客户档案,生产计划,新产品研究档案,新产品图库,这些数据要是泄漏给了竞争对象,那么,就有可能造成被入侵企业的破产。对于抢救以得到、破坏系统中机密数据为目的的系统入侵活动,要想最大限度地降低入侵带来的数据损失,最好的方法就是在数据库还没有被攻破之前就阻止入侵事件的进一步发展。
试想像一下,如果当我们发现系统已经被入侵之时,所有的机密数据已经完全泄漏或删除,那么,就算我们通过备份恢复了这些被删除的数据,但是,由于机密数据泄漏造成的损失依然没有减少。因此,我们必需及时发现这种方式的系统入侵事件,只有在攻击者还没有得到或删除机密数据之前,我们的恢复工作才显得有意义。
当然,无论有没能损失机密数据,系统被入侵后,恢复工作还是要做的。对于以得到或破坏机密数据为目的的系统入侵活动,我们仍然可以按此种入侵活动进行到了哪个阶段,再将此种类型的入侵活动细分为还没有得到或破坏机密数据的入侵活动和已经得到或破坏了机密数据的入侵活动主两种类型。
1、恢复还没有得到或破坏机密数据的被入侵系统
假设我们发现系统已经被入侵,并且通过分析系统日志,或者通过直接观察攻击者对数据库进行的后续入侵活动,已经了解到机密数据还没有被攻击者窃取,只是进入了系统而已,那么,我们就可以按下列方式来应对这样的入侵活动:如果企业规定在处理这样的系统入侵事件时,不允许系统停机,那么就应当按这种方式来处理:
(1)、立即找到与攻击源的网络连接并断开,然后通过添加防火墙规则来阻止。通常,当我们一开始就立即断开与攻击源的网络连接,攻击者就会立即察觉到,并由此迅速消失,以防止自己被反向追踪。因而,如果我们想抓到攻击者,让他受到法律的惩罚,在知道目前攻击者进行的入侵攻击不会对数据库中的机密数据造成影响的前提下,我们就可以先对系统当前状态做一个快照,用来做事后分析和证据,然后使用IP追捕软件来反向追踪攻击者,找到后再断开与他的网络连接。
不过,我们要注意的是,进行反向追踪会对正常的系统业务造成一定的影响,同时,如果被黑客发现,他们有时会做最后一搏,会破坏系统后逃避,因而在追捕的同时要注意安全防范。只是,大部分的企业都是以尽快恢复系统正常运行,减少入侵损失为主要目的,因此,立即断开与攻击源的网络连接是最好的处理方式。
(2)、对被入侵系统的当前状态建立快照,以便事后分析和留作证据。
(3)、通过分析日志文件和弱点检测工具找到攻击者入侵系统的漏洞,然后了解这些系统漏洞是如何得到的。如果漏洞是攻击者自己分析得到的,那么就可能还没有相应的漏洞修复补丁,因而必需通过其它手段来暂时防范再次利用此漏洞入侵系统事件的发生;如果漏洞是攻击者通过互联网得到的,而且漏洞已经出现了相当一段时间,那么就可能存在相应的漏洞修复补丁,此时,就可以到系统供应商建立的服务网站下载这些漏洞补丁修复系统;如果攻击者是通过社会工程方式得到的漏洞,我们就应当对当事人和所有员工进行培训,以减少被再次利用的机率。
(4)、修改数据库管理员帐号名称和登录密码,重新为 *** 作数据的用户建立新的帐户和密码,并且修改数据库的访问规则。至于剩下的系统恢复工作,可以按恢复以控制系统为目的的系统入侵恢复方式来进行。
2、恢复已经得到或删除了机密数据的被入侵系统
如果当我们发现系统已经被入侵时,攻击者已经得到或删除了系统中全部或部分的机密数据,那么,现在要做的不是试图抢救已经损失了的数据,而是保护没有影响到的数据。由于此类系统入侵事件已经属于特别严重的入侵事件,我们的第一个动作,就是尽快断开与攻击源的网络连接。
如果允许系统停机处理这类严重系统入侵事件,那么就可以直接拔掉网线的方式断开被入侵系统与网络的直接连接。当系统仍然不允许停机处理时,就应当通过网络连接监控软件来找到系统与攻击源的网络连接,然后断开,并在防火墙中添加相应的规则来拦截与攻击源的网络连接。这样做的目的,就是防止此次系统入侵事件进一步的恶化,保护其它没有影响到的数据。
断开与攻击源的连接后,我们就应当立即分析数据损失的范围和严重程度,了解哪些数据还没有被影响到,然后立即将这些没有影响到的数据进行备份或隔离保护。对于丢失了数据的系统入侵事件,我们还可以将它归纳成以下的三个类别:
(1)、数据被窃取。
当我们检测数据库时发现数据并没有被删除或修改,但是通过分析系统日志和防火墙日志,了解攻击者已经进入了数据库,打开了某些数据库表,或者已经复制了这些数据库表,那么就可以确定攻击者只是窃取了数据而没有进行其它活动。此时,应当按前面介绍过的方法先恢复系统到正常状态,然修补系统和数据库应用程序的漏洞,并对它们进行弱点检测,发现没有问题后分别做一次完全备份。还应当修改系统管事员和数据库管理员帐户的名称和登录密码,所有的 *** 作与前面提到过的方式相同。只是多出了数据库的恢复工作。
(2)、数据被修改
如果我们在分析数据库受损情况时发现攻击者并没有打开数据库表,而是通过数据库命令增加、修改了数据库某个表中的相关内容。那么,我们不得不一一找出这些非授权的数据表相关行,然后将它们全部修正或删除。如果修改的内容有关某个行业,例如办理驾驶证的政府机关,办理毕业证的教育机构,或者办理其它各种执照相关单位等,那么,还要将攻击者修改的内容向外界公布,说明这些被攻击者修改或添加的内容是无效的,以免造成不必要的社会影响。其它的系统和数据库恢复处理方式与数据被窃取方式相同。
(3)、数据被删除
如果我们在分析数据库受损情况时,发现攻击者不仅得到了机密数据,而且将系统中的相应数据库表完全删除了,那么,我们在断开与其网络连接时,要立即着手恢复这些被删除了的数据。
当我们通过备份的方式来恢复被删除的数据时,在恢复之前,一定要确定系统被入侵的具体时间,这样才知道什么时候的备份是可以使用的。这是因为,如果我们对数据库设置了每日的增量备份,当攻击者删除其中的内容时,非法修改后的数据库同样被备份了,因此,在入侵后的增量备份都不可用。同样,如果在系统被入侵期间,还对数据库进行了完全备份,那么,这些完全备份也不可用。
如果允许我们停机进行处理,我们可以拆下系统上的硬盘,接入其它系统,然后通过文件恢复软件来恢复这些被删除的文件,但是,对于数据库表中内容的删除,我们只能通过留下的纸质文档,来自己慢慢修正。
在这里我们就可以知道,备份并不能解决所有的系统入侵问题,但仍然是最快、最有效恢复系统正常的方式之一。通过这我们还可以知道,及时发现系统已经被入侵对于抢救系统中的机密数据是多么的重要。三、 以破坏系统或业务正常运行为目的的系统入侵恢复
当攻击者入侵系统的目的,就是为了让系统或系统中的正常业务不能正常运行,如果我们发现不及时,当这类系统入侵事件攻击成功后,就会造成系统意外停机事件和业务意外中断事件。
处理这类系统入侵事件时,已经没有必需再考虑系统需不需要停机处理的问题了,既然系统都已经不能正常运行了,考虑这些都是多余的,最紧要的就是尽快恢复系统正常运行。对于这类事件,也有下列这几种类别,每种类别的处理方式也是有一点区别的:
1、系统运行正常,但业务已经中断
对于此类系统入侵事件,我们可以不停机进行处理,直接以系统在线方式通过备份来恢复业务的正常运行,但在恢复前要确定系统被入侵的具体时间,以及什么时候的备份可以使用,然后按本文前面介绍的相关系统入侵恢复方式来恢复系统和业务到正常状态。
对于没有冗余系统的企业,如果当时非常迫切需要系统业务能够正常运行,那么,也只有在通过备份恢复业务正常运行后直接使用它。但在没有修复系统或应用程序漏洞之前,必需安排专人实时监控系统的运行状况,包括网络连接状况,系统进程状况,通过提高IDS/IPS的检测力度,添加相应的防火墙检测规则来暂时保护系统安全。
2、系统不能正常运行,但系统中与业务相关的内容没有受到破坏
此时,我们首要的任务就是尽快让系统恢复正常运行,但是要保证系统中与业务相关的数据不能受到损害。如果与业务相关的重要数据不在系统分区,那么,将系统从网络中断开后,我们就可以通过另外保存的系统完全备份来迅速恢复系统到正常状态,这是最快速的解决方法。
但是,如果与业务相关的数据全部或部分存放在系统分区,那么,为了防止当前业务数据的完整性,我们应当先通过像WinPE光盘系统的方式启动Winpe系统,然后将与业务相关的重要数据全部备份到其它独立的存储设备中,再对系统分区进行备份恢复 *** 作。
如果我们发现系统的完全备份不可用,我们就只能在保证与业务相关的重要数据不损失的情况下,进行全新的 *** 作系统安装方式来恢复系统正常运行,然后再安装业务应用程序,来恢复整个系统业务的正常运行。但是,由于这种方式是重新全新安装的 *** 作系统,因此,如没有特殊的要求,应当对系统和应用程序做好相应的安全防范措施并完全备份后,才将系统连入网络当中。
至于剩下的系统恢复工作,可以按恢复以控制系统为目的的系统入侵恢复方式来进行。
3、系统不能正常运行,系统中的业务也已经被破坏
此时,首先按第二种方式恢复系统正常运行,然后再在系统中重新安装与业务相关应用程序,并且尽量通过备份恢复与业务相关的数据。至于剩下的系统恢复工作,可以按恢复以控制系统为目的的系统入侵恢复方式来进行。
当系统或业务被破坏不能运行后,造成的影响和损失是肯定的,我们按上述方式这样做的目的,就是为了尽量加快系统和业务恢复正常运行的速度,减少它们停止运行的时间,尽量降低由于系统停机或业务中断造成的影响和损失。
在对入侵系统进行恢复处理的过程中,对于一些与企业经营生死相依的特殊业务,例如电子邮件服务器,由于邮件服务器是为员工和客户提供邮件服务器的,如果邮件服务器停用,势必会影响的业务的正常往来。因此,对邮件服务器进行入侵恢复前,在使用本文前面所描述的方法进行进,还应当完成下列的工作:
(1)、启用临时邮箱,如果受影响的邮件服务器是企业自身的,可以通过申请邮件服务器提供商如Sina、163等的邮箱作为代替。
(2)、然后将临时邮箱信息尽快通知供货商和合作伙伴。
(3)、完成这些的工作后,就可以对被入侵的邮件服务器系统作相应的入侵恢复处理,恢复的方式与本文前面描述的方式相同。
四、 事后分析
当成功完成任何一种系统入侵类型的处理工作后,我们还必需完成与此相关的另外一件重要的事情,那就是对系统入侵事件及事件处理过程进行事后分析。
事后分析都是建立在大量的文档资料的基础上的,因而,我们在对被入侵系统进行处理的过程中,应当将事件处理过程中的所有 *** 作内容和方式全部细致地记录下来。另外,我在描述如何恢复被入侵系统的处理过程中,在每次进行入侵恢复前都要求将受损系统的当前状态建立快照,其目的之一也是为了事后可以通过它来进行入侵分析。
我们通过对被入侵系统进行入侵分析,就能了解到此次入侵事件影响的范围和损失的严重程度,以及处理它所花费的时间、人力和物力成本。另一方面,通过分析此次入侵事件,可以了解攻击者是通过什么方式入侵系统的。
通过了解攻击者入侵系统的各种方式,就可以从中学习到相应的防范对策,为我们的安全防范工作带来相应的宝贵经验,让我们以后知道如何去应对与此相似的系统入侵活动。并由此来修改安全策略中不规范的内容,或添加相应的安全策略,使安全策略适应各个时期的安全防范需求。
同样,对每次系统入侵事件的处理过程进行分析,可以让我们了解自己或事件处理团队在应对系统入侵事件时的 *** 作是否正确,是否产生了不必要的 *** 作,是否产生了人为的失误,这些失误是如何产生的,以及哪些 *** 作提高了处理的效率等等有用的信息。通过对系统入侵恢复处理过程的事后分析,能让我们增加相应的事件入侵响应能力,而且,还可以找出事件响应计划中不规范的内容,并由此做相应的修正。
对系统入侵事件和其恢复处理过程进行事后分析得出的结论,都应当全部以书面形式记录下来,并上报给上级领导。同时,还应当将处理结果发到每个事件响应小组成员手中,或企业中各个部门领导手中,由各部门分别组织学习,以防止此类系统入侵事件再次发生。如果有必要,还可以将事件发生和处理情况通告给合作伙伴和客户,以帮助它们防范此类系统入侵事件的发生,或告知系统或应用软件提供商,让他们尽快产生相应的漏洞补丁。

分类: 电脑/网络 >> 软件 >> 其他软件
解析:

hacker和cracker

很多人认为Hacker及Cracker之间没有明显的界线 但实际上, 这是错误的观点 Hacker及Cracker不但可以很容易的分开, 而且可以分出第三群 - "海盗"Inter Pirate出来, 一般大众认定的"破坏份子", 事实上是这第三种 Hacker及Cracker都有明确的定义, 要发表有关Hacker及Cracker之间的评议之前, 最好要详细调查一番, 否则招惹这两群技术高明的族群都不是好受的事 比较容易判断的方式, "Hacker从来不自称Hacker; Cracker会自称Cracker; 自称Hacker的不是Hacker; 自称Cracker的不见得是Cracker; 被确认为Hacker称为Hacker的, 是Hacker; 而Richard M Stallman是Hacker圣者;" 相信大家应该可以看出来, 为何大众对Hacker及Cracker会有错误观点的由来, Pirate利用这样的漏洞来污染整个玩家文化在大众的观点

一些过去的黑客写的文章里提到黑客的定义,据说黑客必须是技术上的行家或热衷于解决问题、克服限制的人。他们说"hacker"的产生源于一种共享的网络精神。数十年前,当美国国防部刚刚开始ARPA实验的时候,由一些程序设计专家和网络名人组成了具有共享性质的文化群体,这种文化的成员为自己创造了hacker"这个名词。

hacker不愿把自己局限在计算机这方天地里,他们认为"hacker"特性可以发挥在其他领域,在任何一种科学或艺术的最高境界里,甚至独立于任何媒介之上。最重要的是不管在哪种状况下,以下几点总是共同的: 1.每一个领域都有许多迷人的问题等待解决,而且永远有新的问题出现。
为了解决问题人们要不断学习进步,要专心致志地一以贯之,即使在你不知道学习什么才能够解决问题的时候也要坚持。你曾经想成为一个技术高超的厨师,也拥有些许这方面的天赋,但是干了几天后你看到别人做木工很赚钱,于是转行做木工去了,有这样的态度永远不能达到最高境界。

2.不要把时间浪费到已经解决了的问题上。

3.无聊、单调重复的工作是有害的。

4.自由的工作。

任何一个给你命令的人就能给你一个独裁式的工作,并且可以给你一些笨得可以的理由,以至停止你解决任何吸引着你的问题。专制在监察和保密上是很有效的方法,这些行使专制的人并不相信自愿性质的合作和资讯共享,他们只相信在他们控制之下的合作关系。

hacker将以上几点做为hacker的文化态度,并且据此将自己与专门闯入计算机系统搞破坏的人区分开来。前者称后者为"cracker",并且不愿和cracker一起做任何事,hacker认为这些人懒惰、不负责任,并且不够光明正大。懒惰是只知道将别人的资讯、成果据为己有,自己没有丝毫贡献;不负责任是对网络服务器的恶意攻击。

以上几点作为一种去解决问题完成科学成就的态度是完全没错的,但是共享这种文化精神生存艰难。传统商业社会拒绝共享的阻力非常之大。出于获得更多利益的缘故,保密是传统商业必要的手段,而所谓的完全共享在商业社会中实际上意味着倒闭与贫穷。

共享的hacker没有大行其道,反倒是cracker们表现得越来越凶狠,他们毫无禁忌,将自由发挥到极致,主动出击,大胆到可以攻击美国军方总部的服务器,最终,在公众的眼中,cracker就意味着黑客。

黑客的机会是互联网的兴盛。越来越多的 机构、企业、平民百姓上了网,互联网以自己的轨迹发展着,并不是当年的技术精英们想象的那样。但是网络上的服务器系统没有变得更强壮,虽然在黑客的攻击下,网站学会了填补一些愚蠢的漏洞。特别是宽带接入技术的发展,使许多用户都与互联网始终处于联结状态,因而拥有固定的IP地址,这给心存不轨者可乘之机;另一方面,用户对自己的安全状况的忽视也给了黑客极大的诱惑。

与自由发挥的黑客相比,维护网站的人们大多数没有那份穷究到底的精神。我们完全能够想象,一个每天例行公事的网管到底有没有 去发掘网站的漏洞,很多时候,网管的工作是做一些亡羊补牢的事,仅仅考虑到饭碗问题,绝对不可能铸造出强壮的系统。死抱传统的黑客逐渐减少,越来越多的黑客开始学会与商业社会融合,他们的技术展示更像是作秀,攻击服务器的行为是为了获得一种"技术认证",将来自己开办网络安全公司的时候才多几分招揽客户的筹码。有的干脆就直接与一些公司合作,2000年1月10日,美国波士顿著名的黑客团体LOpht被Stake公司招安。Stake公司新近成立,投资1000万美元,主要从事计算机安全防护业务,它把LOpht八位留着长发的年轻人招致麾下。

不讲道理的cracker会越来越多,拥有技术的他们是搞恶作剧的不羁少年,还是搅乱市场以图谋利益的淘金者?谁知道呢。

OK,我来给你分析下。出现这种情况有几种可能的原因:
第一,你的CS版本问题。这个你可以重新下个,建议去太平洋网下
地址:>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13449708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-08
下一篇 2023-08-08

发表评论

登录后才能评论

评论列表(0条)

保存