Showing posts with label Network. Show all posts
Showing posts with label Network. Show all posts

Mar 9, 2009

【转】你的系统有多脆弱

软件安全性依然是热点话题。每个人,从老祖母到全球 500 强公司都听说过由互联网上的病毒和攻击者所引起的盗窃身份、丢失数据,及一般性的伤害的事。在 2008 年第一季度,所有报告的 1,474 个不同的软件脆弱点只有 64 个被解决。 1 分辨率大约为 4%。伴随所有关于软件和系统安全的议论,计算机世界似乎处于一片混乱中,这会让许多人不禁问道:“我有多脆弱?”

在本文中,我将介绍一些伍斯特工业学院(Worcester Polytechnic Institute,WPI)近期的安全项目的成果,以及额外的研究。我的目的是通过阐明公共术语并且提供一些典型的安全性使用的现实实例来说明什么是软件安全性。

本文不打算提供全面的计算机安全教育,而是介绍一些辽阔且扩展的信息安全领域中的关键主题。如果您想要进一步讨论,那么请通过 rbreznak@wpi.edu 联系我。

背景

我 早期对计算机安全的兴趣实际上激发了我对计算机科学的最初兴趣,并且从那时起就一直是我关注的焦点。所以不用说,我有一点失望的是 WPI 没有提供大学软件或系统安全课程。在没有任何正式的安全课程的情况下,我和其他两个计算机科学的学生决定进行独立研究,了解更多关于软件安全的知识。今年 的早些日子,我们和 WPI 计算机科学的教授 Kathryn Fisler 谈论关于开始一个涉及软件安全的独立研究项目的事。我们计划开设一门首先在 08-09 学年度进行的安全软件工程的课程。众所周知,CS4400x 将成为 WPI 提供的第一门大学计算机科学安全课程。

在开设该课程的过程中,我们发现许多关于没有在标准课 程中提到的软件脆弱性和预防的事实。我们发现大部分脆弱点通常由小的逻辑错误或软件开发人员没发现或解决的情况所引起。一些脆弱点不太复杂,因而很容易被 黑客利用。可以通过一些简单的资源就能找到它们,像 Web 浏览器和文本编辑器。在软件开发团队出错的其他情况下,安全性的破坏可能由最终用户不恰当地配置或使用软件所致。

我们的结论是,最大的安全缺陷源于开发人员错误地假设安全问题将在系统的其他地方处理 —— 举例来说,他们假设可以相信输入的数据。经验教训:我们不得不认识到安全是每个人的职责,不是其他人的。


脆弱性 101

脆 弱性是什么?“利用”、“攻击”、“脆弱点”,和其它术语一般用于描述什么适当的软件安全目的在于纠正:系统中允许黑客特权访问信息或破坏系统的缺陷。 Mitre Corporation 将脆弱性定义为“系统或网络中允许黑客以另一个用户的身份执行命令,访问他们不应该访问的数据,冒充某人,及/或执行拒绝服务的状态”。 2 根据此定义,脆弱就意味着处于一种状态,在这种状态下,黑客(人或恶意程序,像病毒或间谍软件)可以访问到比他们应该可以访问的要多的系统的部分。

脆弱点出现的范围很广,从明显的 —— 像使用不健壮的密码或存储无保护的私有数据 —— 到更有细微差异的 —— 像未检查的输入。

溢出攻击

最 早遭受破坏的,且仍旧普遍的攻击来源于开发人员对最终用户输入的数据可以信任的假设。大部分程序设计人员未预料在用户名框中得到 40,000 行文本,或者从密码框中获得甚至非键盘输入的模糊字符,因此,所输入的数据从不会被验证无误。这种假设增加了溢出攻击。举例来说,使用本文编辑器并了解一 些 Microsoft PowerPoint 文件格式的知识, 3 人们就可以手工编写 PowerPoint 文件。编辑 PowerPoint 文件 4 , 让内部字段中拥有比格式允许的更多的数据会导致 Microsoft PowerPoint XP 崩溃,然后执行任何黑客想要执行的程序。在一个这种脆弱性的熟悉的实例中,内嵌的 Windows 计算器程序被执行,然而,被执行的程序很容易是更恶意的。这只是无数的这类利用中的一个实例。

实质上,溢 出类攻击是由于将太多的数据放入原始程序设计人员认为足够的空间中导致的。额外的数据溢出到预期存储区附近的内存中,并且覆盖与该区域的原始用途无关的数 据。当执行余下的程序时,它使用新被覆盖的数据。如果黑客能够用伪数据(也就是,NOP)填充足够的空间,然后添加一点恶意代码或值,那么程序将执行恶意 代码或使用新值。这可能导致许多不同的后果。黑客可能能够越过登录 5 ,获得程序的管理员特权。如果受攻击的程序是由系统管理员启动的,那么恶意代码将作为原始程序的一部分进行执行,给黑客系统中的管理员特权。溢出脆弱点,尽管不总是出现,但在一些情况下,可能很容易被补救,当开发应用程序时利用“安全”库 6 ,使用堆栈保护 7 (也就是,StackGuard 8 )或对输入数据进行检查,从而确保其是适当的大小或类型。这一类的利用总是以类似的方式进行,但会根据受影响的内存类型和预期效果而不同。

缓冲区溢出攻击

在缓冲区溢出攻击的实例中,程序的内部值溢出,从而改变程序的运行方式。 9 在 程序的正常操作过程中,当调用一个函数时,被调用函数的所有参数以及返回位置的指针都放在栈中。当完成该函数之后,使用返回指针回到原来的位置并继续程 序。利用缓冲区溢出进行攻击可以改变这个过程,并且允许黑客执行任何他们期望的函数。 这是通过输入足够的数据来用伪数据覆盖参数,及输入到不同函数的新返回指针来实现的,现在就执行新的函数了。 10

SQL 注入

除 了溢出的利用以外,SQL 注入是另一类依赖于开发人员没测试输入数据的疏漏的攻击。大多数人拥有字母数字式密码,或者有安全意识的人,拥有附带其他键盘符号的字母数字式密码。由于 这种想法,开发人员可能允许输入任何字符作为密码。这通常是没问题的,除非他们忘记清洁或检查输入数据。这种情况比应该的要发生的频繁得多。使用 SQL 数据库的密码系统(在许多网站上非常普遍的场景)可能运行这样的查询:

SELECT * FROM users WHERE 'username' = '$USER' AND 'password'='$PASS';

$USER 和 $PASS 会用用户提供的用户名和密码来代替。那么如果用户输入‘bob’和‘1234’,那么结果的查询是:

SELECT * FROM users WHERE 'username' = 'bob' AND 'password' = '1234';

,而来自数据库的返回值会是所有用 bob 作为用户名且用 1234 作为密码的数据元组。如果黑客输入 admin 和 <<'hi' 或 1=1>>--,那么查询是:

SELECT * FROM users WHERE 'username' = 'admin' and `password` = 'hi' OR 1=1--'

注 意用户输入的引号如何与原始查询中的第三个引号匹配。数据库现在会返回用户名为 admin 的所有元组,并且会取消对密码的检查,因为 'password' = 'hi' OR 1=1 命令数据库寻找密码是 hi 的元组或 1=1 的元组,而由于 1 总是 1,所以每行都是候选。-- 是 SQL 注释标志,取消查询中原始的其他引号,并且还将取消任何额外的检查,因此如果有额外的凭证(也就是,keyfob 11 或 captcha 12 )也会被忽略。现在黑客可以以管理员的身份进入系统并且不用不得不给出合法的密码。通过利用越来越复杂的查询,黑客可以变更、添加,或查询数据。 13 对于数据库,这令黑客具有同应用程序相同的特权。

这 种类型的脆弱点被证实是对 Web 应用程序最有效的攻击类型之一,并且随着对 Web 应用程序的信任的增加,这种利用的力量甚至将更令人畏缩。幸运的消息是,像溢出类型的攻击一样,可以通过清洁输入数据,并且从不立即相信用户输入(至少对 于输入的数据)来防止大部分这种脆弱点。


散列攻击

任何处理在数据库中存储用户凭证的人都会告诉您,首要的规则之一是从不直接存储没有首先加密的密码或其它私有数据。如果数据库暴露了,那么使用加密方案将防止暴露用户的密码。为了更多的利益,利用单向加密算法或散列,像 MD5 14 或 Blowfish, 15 将使密码的解密成为不可能。这是因为散列可以将输入值转化为新的值,而这些新值不能从数学上逆向生成原始值。传统上,攻击以这种方式存储的密码的方式涉及 用尽可能多的不同的密码进行尝试直到最终有效,这被称之为“蛮干”技术。虽然这种类型的攻击十分简单,但通常是无效的,因为需要绝对的时间来尝试足够的组 合,有时候要上千年,统计上是成功的,一般是理论的。

每天您可能都在使用散列攻击工具,而甚至不知道它。Google 真的非常擅长它所做的:在信息之间找到链接。举例来说,Googling “Bob Breznak”将取出所有关于我的信息:我为 The Rational Edge 写的最近的书评,我的个人站点(及废弃的)等等。现在,如果您从这里借鉴一下,那么您将得到快速返回结果的许多想法。应用该想法来寻找散列。举例来说,利 用“foobar”的 MD5 散列:3858f62230ac3c915f300c664312c63f。现在将其输入 Google,瞧!0.21 秒内,第一个结果是“Google Hash: md5(foobar) = 3858f62230ac3c915f300c664312c63f”。您将找到的大部分结果都是哈希索引站点 —— 有意地连接散列值和其相应关键字的站点。尝试更复杂的字符串(举例来说,“bobby”、“crayon”、“rational”)将生成混合的结果。如 果您尝试复杂的密码(或者最好是传递阶段),您可能没有收获。

这可能不是您需要担心的最大安全漏洞,但令其危险的是,这种利用不太知名,并且没有简单的补救办法。随着越来越复杂的关键字被匹配到散列上,匹配到已知密码上的可能性增加了。变更为更复杂的算法,比方说从 MD5 变更为 SHA-2, 16 对恢复秘密的完整性没什么作用。这是因为尽管从不同的散列中获得同一个字符串的返回值,但是将关键字链接到散列上也只是时间的问题。虽然加密法总是将利用时间来蛮干作为安全网,搜索减少所需的时间,从而成功地从几千年到几年,甚至几个月。

现 在,存在着两种主要的争论,它们将散列查找从年度最大的安全缺陷的竞争列表中去掉了。这种类型的攻击只可能在数据库或密码存储已经暴露的情况下进行。需要 读取数据库、影子文件(UNIX 或 LINUX 系统保存用户密码的地方),或 I/O 流。在某些情况下,这可能和达到正确的 URL 或执行 SQL 注入一样简单,而在其他情况下,它可能需要比黑客多得多的工作。减小这种攻击的潜在严重性的另一个争论实际上源于散列的使用。由于许多字符串可以生成相同 的散列,所以不能必然地确定原始的字符串(用户的真实密码)。然而,找到任何散列到相同值得字符串能够再次生成相同的散列值。这意味着尽管黑客可能没有获 得实际的密码,但是由于系统使用存储的散列,而黑客拥有能生成同等散列的字符串,所以系统会像黑客拥有原始密码那样响应。


最终用户问题

即使有了最彻底地测试过的且安全的软件,一旦打包并交给最终用户,全部的赌都输了。软件如何配置和实现,像其他步骤那样扮演者关键的安全性角色。

默认值的谬论

用 户犯的最大错误之一是当所使用的软件没有默认值时。许多软件为各种选项定义默认值,以便用户可以尽可能快地运行。虽然有时候这可能非常有益,像 Web 服务器默认为标准的 Web 服务器通信端口,这也会导致许多安全问题。举例来说,许多路由器和其它网络设备都有默认的登录用户名和密码。当用户不将这些默认值改为独特的值时就会出现 问题。搜索“默认的路由器密码”将得到许多列出市场上大部分路由器的默认用户名和密码的站点。如果黑客打算进入网络,那么还未接触的用户名、密码、IP 地址,和其它默认值都是现成的钥匙。

不可靠的系统

当 最终用户不确定他们添加的软件如何符合系统的其他部分,并且需要采取什么额外的安全量度时,会产生另一个问题。再次拿 Web 搜索举例。搜索“view/index.shtml axis”将返回未保护的网络摄像机的列表。在一些情况下,最终用户成功地设置了他们想让全世界都可见的网络摄像机。在其他情况下,网络摄像机被添加到某 个网络,并且没有配置为不公开。这种未保护的摄像机可以被互联网上的每个人见到,并且可能快速地成为侵犯隐私罪。一些书籍和网站致力于提供返回所有者没犹 豫过安全性并且现在公开了的数据搜索查询。 17

我 们从这些新的搜索中得到一些经验。第一,默认值到处都是,因此当不修改默认值时,考虑如果黑客知道此信息会有多有害。第二,您应该了解如何访问系统的各个 部分并且考虑这种访问级别是否合适。第三,记住通过模糊的安全没有用。不论多么不重要或未公开的信息公开了,如果有人感兴趣,不管通过自动的搜索或一些人 力,都可以找到该数据。 18


结束语

随 着越来越多的脆弱点日益被发现,这些威胁只是沧海一粟 。如同这些实例一样,大部分脆弱点源于疏忽:忽略了实现安全实践的开发人员,或者忽略改变配置的最 终用户。即使我提供的实例可能肤浅,并且似乎十分容易避免,但随着项目的增长,对于简单的未检查的情况就有机会了。黑客可能只需要小小的机会就对系统进行 攻击并且引起永久性的损害。开发人员应该充分了解他们假设的影响,并且越过正常使用之外进行测试。通过充分地了解系统的工作方式,并且假定为对于产品的黑 客角色,开发人员应该定期审查他们的工作,并且在必要时发布补丁。

个人可能说不出软件有多大缺陷,并且虽然没 有那么完全的安全系统,但是人们可以通过利用多层次的安全性将脆弱性最小化。健壮的密码,让软件保持更新及适当地修补,并且当添加了每个软件困扰时了解它 的影响,是最终用户添加保护层的小方法。最后,与软件相关的每个人都有责任关注安全性,并试图减少脆弱点。


注释

  1. http://www.cert.org/stats/vulnerability_remediation.html
  2. http://cve.mitre.org/about/terminology.html#vulnerability
  3. http://poi.apache.org/hslf/ppt-file-format.html
  4. http://www.astalavista.com/index.php?section=exploits&cmd=details&id=4818
  5. http://nsfsecurity.pr.erau.edu/bom/Spock.html
  6. http://www.openbsd.org/cgi-bin/man.cgi?query=strlcpy&sektion=3
  7. http://nsfsecurity.pr.erau.edu/bom/StackGuard.html
  8. http://www.usenix.org/publications/library/proceedings/sec98/full_papers/cowan/cowan_html/cowan.html
  9. http://nsfsecurity.pr.erau.edu/bom/Smasher.html
  10. http://insecure.org/stf/smashstack.html
  11. http://en.wikipedia.org/wiki/SecurID
  12. http://captcha.net/
  13. http://www.youtube.com/watch?v=MJNJjh4jORY
  14. http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html
  15. http://en.wikipedia.org/wiki/Blowfish_(cipher)
  16. http://en.wikipedia.org/wiki/SHA-1
  17. http://www.oreilly.com/catalog/googlehks
  18. http://www.linux.com/articles/23313
关于作者

author photo

Bob Breznak 在马萨诸塞州,伍斯特的伍斯特工业学院研究计算机科学,专攻软件工程和机器人技术。目前,他作为高级助理,受雇于计算机科学系,并且受雇于 Sun Microsystems。在学校里,他频繁参与 Association for Computer Machinery(ACM)、IEEE、和最近刚把他选为主席的计算机科学的荣誉团体(Upsilon Pi Epsilon,或 UPE)。他通常在计算机科学楼的下层地下室中进行从系统安全到机器人技术的项目。

Mar 7, 2009

【CSDN新闻】Websense 2009六大安全预测 黑客也玩“云安全”

近日,Websense 发布2009年6大安全预测。其中“云安全”技术的被滥用、Web应用和Web2.0应用等被恶意利用的几率将大幅增加。

“云安全”被恶意利用的频率将越来越高

以云计算技术为基础的服务如亚马逊的Web服务(AWS)、微软的Azure 以及GoGrid等为企业和用户提供了简单易用的基础运算、可按需租用的存储空间和大幅度的成本节省。但这些服务也引起了网络犯罪者和黑客们的高度关注, 他们将利用这些技术和服务来达成其恶意目的。Websense预测:2009年,云计算技术被滥用的现象将会越来越多。该技术既可被用于简单的垃圾邮件发 送,也可用来发起针对下载、数据上传统计、恶意代码监测更为高级的恶意程序攻击。

富互联网应用系统(RIAs)如Flash、Google Gears等被恶意利用的几率增大

利用基于浏览器的Web应用如基于Web的CRM系统、Google文档和其他基于Web的办公工具等越来 越多的取代了传统的桌面应用程序。运用基于浏览器的Web应用来丰富互联网使用体验的程序是富互联网应用系统(RIAs)。伴随这些应用需求的爆炸式增 长,使用RIA技术的Google Gears、Air、Flash和Silverlight构建了一个大型的Web2.0网络应用体系,而安全问题却是最后被考虑的,这就如同敞开大门让网 络犯罪分子肆意攻击。由于RIA的迅速流行,我们可以预见在2009年将会有大规模的利用RIA核心组件和用户创建的服务来发起的攻击,这些攻击将使黑客 们能够远程操控用户的电脑。

黑客们将充分利用可编写Web发动攻击

Web2.0应用是一个开放了网络应用程序接口、mashups、小工具的开放世界,允许共享、使用来自其 他网站的功能。搜索引擎Web API服务的发行以破纪录的速度发布而几乎没有什么时间来进行测试,而这种应用需要用户间达到一定的信赖水平方可。因此Websense认为在2009 年,利用Web API服务来获得信任、窃取用户的资格证书或机密信息的恶意攻击将会增加。

Web垃圾和向blog、论坛和社交性网站发送的恶意内容将会大幅度增加

那些允许用户进行内容编辑的网站越来越流行,数量也将出现飞跃增长,而这些网站很有可能导致Web垃圾和和 向blog、论坛和社交性网站发送的恶意内容的大幅度增加,这些内容包括搜索引擎麻痹、恶意引诱传播和网络欺诈等。此外,这些威胁和攻击将被数种新的 Web攻击工具所整合,使黑客们可以发现那些存在漏洞或者允许发布恶意代码的网站。越来越多的基础设施特许承包商会在其提供的功能中增加HTTP发布功 能。

黑客们将转向分布式僵尸网络控制和恶意代码托管模式

2008年Websense发现两家总部位于加利福尼亚州的托管公司McCololo和Intercage/Atrivo就由于发布僵尸网络和恶意代码被上游供应商关闭。Mcolor倒闭的当天垃圾邮件减少了50%,而Intercage/Atrivo倒闭的当天大大减轻了“风暴”僵尸网络的蔓延。Websense预测:由于这些僵尸集团仅拥有少数几家供应商来托管其C&C服务,他们会将其服务器分布到各处,同时转移至国外服务器供应商,使其更难被上游供应商、网络监管部门和执法部门所发现和关闭。

对于具有“良好声誉”网站的攻击将会持续

2009年,我们将看到有80%以上的恶意内容会以那些拥有“良好声誉”的网站为载体。会有更多的著名网站 和Alexa排名前10万的网站遭受恶意攻击。这些攻击既包括对于当地著名网站某些特定频道的攻击,也包括对流行的体育网站、新闻网的攻击以及向这些网站 中持续植入IFRAME、恶意重定向代码。

Nov 3, 2008

【典藏】网络工程师成长经历

网络工程师成长秘籍:掌握企业核心业务

分享一下
前面部分比较通用,后面的就可以不看了

================================


编者按:本篇是一位网络技术培训老师的讲课记录(其后来任Sniffer中国技术服务中心第一任技术总监),它不仅一语道破了网络工程师的发展方向,还解释了如何快速检测网络故障,如何掌握企业核心业务的关键技巧。可谓经典之篇。 你的工资涨了多少?
做IT的谁的收入高?
怎么提高地位?了解关键业务
网络分析关键一步:隔离故障
Sniffer究竟有什么用?
  开始,我来解释一下为什么要学网络分析技术,为何要学Sniffer,其实我的目的是提起大家的学习兴趣,大家愿意学,我才讲的起劲。如果我一边讲,大家却在上网,那我就讲不下去了。
你的工资涨了多少?
  大家做网络都很多年了,想想我们以前的10兆以太网,现在的万兆以太网,想想14.4k的modem,现在的2M宽带,以前的x25,桢中继,现在的SDH,MSTP,裸光纤。大家都经历这些,但我们才工作几年?就这几年,变化这么大,我不知道大家的工资有没有变化这么大,(同学们大笑),从10兆到万兆,1000倍,几年工资张1000倍。有点难(同学们:不是有点难,是很难,不可能)。
  再看看我们工作的变化,以前能配配路由器就很牛了,现在似乎谁都会了,记得几年前,我帮一个小集成商配一台4000系列交换机,收了2000元,15分钟搞定。(同学们:好爽,介绍一些给我们做),没有了说说你们的工作。平常工作中做些什么(同学们:做做网线,杀病毒,帮领导装机器)大家想想,这是我们想做的工作吗,以前这些都不用我们做,现在大家感觉是不是地位在下降,工资也不涨,好歹我们也是蜘蛛级的人物呀,不是有个笑话说蜜蜂是空姐,做网络的是蜘蛛吗。(同学们笑)
做IT的谁的收入高?
  我们该怎么办?
  现在说说我的观点,我们都希望工资能年年涨,不要求1000倍,(同学们:不要求那么高,一年20%就行了),20%?不止吧,从毕业到现在,你们工资不止年均涨不止20%吧。 (同学们:我们不能跟您比)也有可能,你们的起点高,我毕业的时候才有650元。
  大家回顾一下,做IT的谁的收入高?
  1、销售
  2、领导
  3、咨询专家
  4、售前工程师
  5、售后
  我们在座的有3个是网络中心的主任或科长,他们的收入肯定比一般工程师高,我祝愿你们步步高升,收入节节高。在座大多数是网络工程师,我们该怎么走,其实你们现在的单位都很好,但将来怎样很难知道,比如前几年银行的收入令人羡慕,现在他们却担心降工资,现在移动的收入不错吧,我有汽车厂商的学员,他告诉我他们的收入比移动好点,(同学们:哇)这是他们自己说的,好多少就没说了,还有某政府单位的,什么单位不便说,他们没告诉我他们的收入,只说,价格少于4万的笔记本他们不用,哇靠,4万的笔记本,什么配置?(同学们:那是服务器)我们不能比,人比人,气死人。我们没法进入这些公司的,还是脚踏实地一点好,但我们做技术的也要考虑如何提高我们的收入,做技术的要提高收入,地位是关键,前面大家说只做做线,杀杀病毒,我们的地位在下降,工资怎么长得起来呢?
  想想我们做技术的,谁的收入高,做数据库的比做服务器的高,为什么Oracle那么火,做服务器的比写程序的高,写程序的比做网络高,这是普遍现象,不说特殊情况。其实大家发现一个特点没有,凡是掌握企业关键业务的收入都很高,你看作数据库的,数据库坏了,企业完蛋了,领导当然重视,现在不仅讲存储,还讲灾备,你看很多银行,北京一个数据中心,上海一个数据中心。
怎么提高地位?了解关键业务
  我们网络怎样,设计的都是高可靠性的端到端备份,出问题的机会很少,而当应用出什么问题,都说是网络问题。举个例子,有个单位(税务的学员告诉我的),有一天应用突然变慢,大家都说网络慢了,我们用尽troubleshooting的技术也发现不了问题,结果作数据库的工程师偷偷改一下表空间,好了,没问题了,我们不知道怎么好了,做数据库的不说他们有问题,还说网络好了,领导问我网络怎么好的,我不知道呀,领导说:赶快查出原因,避免再出现类似问题,哇塞,怎么查,本来网络就没问题,查什么查。(同学们笑)
  所以现在大家用一个字来形容我们的工作?你们会用什么字(同学们:累、苦)很贴切,苦、累所以我们不能一直停留在网络的troubleshooting,我们必须提高我们的地位,要不我们会累死。
  怎么提高地位,我们必须了解我们的业务,也就是要了解应用,了解应用在我们网络上的行为特征,很重要的一个词行为特征。当我们了解了业务的行为特征,我们能定位某一个问题的真正故障点。
  举个例子:网络应用变慢,可能的原因有什么?网络问题,服务器问题,数据库问题,应用程序问题,客户机问题。如果我们能够判断是哪一部分问题,我们就有发言权了,比如说刚才那种情况,如果我们直接说这是数据库问题,不是网络问题,领导会问,你凭什么说是数据库问题,你可以拿出Sniffer,专家系统上写着,DB Slow Server response诊断,(范老师在演示)再看解码,做一个用户验证操作,花了1.731秒,有根有据,大家想一想,有了Sniffer我们可以了解我们的业务行为特征,可以排除我们的责任,不但工作轻松了,地位也提高了。(同学们笑)
网络分析关键一步:隔离故障
  以前我们应用出现问题的时候我们总是分头查找问题,结果往往是没有结果,因为这种查找方式范围太大了,我们做troubleshooting第一步应该是:隔离故障。
  如果我们有了Sniffer,首先用Sniffer看一下,最有可能是哪一部分问题,再安排检查,这样不但节省人力,速度会更快,效率也更高。
  如果有人问我们Sniffer是什么?大家都会说是协议分析仪,你看sniffer网站(www.networkgeneral.com)上说的是应用和网络分析系统。究竟Sniffer是什么样的一个东西,我们要了解他的发展过程。其实很多类似的产品比如ethereal,netscout,wildpacket等都有类似的发展过程。
  第一阶段是抓包和解码,也就是把网络上的数据包抓下来,然后进行解码,那时候谁能解开的协议多,谁就是老大,Sniffer当时能解开的协议最多,也就理所当然地成了老大,现在Sniffer能解开550种协议,还是业界最多的。
  第二阶段是专家系统,也就是通过抓下来的数据包,根据他的特征和前后时间戳的关系,判断网络的数据流有没有问题,是哪一层的问题,有多严重,专家系统都会给出建议和解决方案,现在Sniffer的专家系统还是业界最强的
  第三阶段:是把网络分析工具发展成网络管理工具,为什么要这样,如果Sniffer知识用作网络分析,那Sniffer的软件就够用了,现在软件的portable基本上都是盗版的,sniffer没钱赚了,所以它必须往网络管理方向转,要作为网络管理工具,就必须能部署在网络中心,能长期监控,能主动管理网络,能排除潜在问题,要做到这些,就要求有更高的性能,所以Sniffer就有了相应的硬件产品,比如说分布式硬件平台,InfiniStream等,我知道在座各位都买了Sniffer的硬件,这时候如果用软件的Sniffer性能就不行了。
Sniffer究竟有什么用?
  我们看一下,Sniffer究竟有什么用?
  第一,Sniffer可以帮助我们评估业务运行状态,如果你能告诉老板说,我们的业务运行正常,性能良好,比起你跟老板报告说网络没有问题,我想老板会更愿意听前面的报告,但我们要做这样的报告,光说是不行的,必须有根据,我们能提供什么样的根据呢。比如各个应用的响应时间,一个操作需要的时间,应用带宽的消耗,应用的行为特征,应用性能的瓶颈等等,到第二门课,我会告诉大家怎么做到有根有据。
  第二,Sniffer能够帮助我们评估网络的性能,比如,各连路的使用率,网络的性能的趋势,网络中哪一些应用消耗最多带宽,网络上哪一些用户消耗最多带宽,各分支机构流量状况,影响我们网络性能的主要因素,我们可否做一些相应的控制,等等。
  第三,Sniffer帮助我们快速定位故障,这个大家比较有经验,我们记住Sniffer的三大功能:monitor,expert,decode这三大功能都可以帮助我们快速定位故障,我后面通过案例演示给大家看,大家再做做实验,很快就上手了(同学问:范老师,是否要学Sniffer必须对协议很熟,)不一定,我们可以通过Sniffer来学习各种协议,比如ospf,以前学网络的时候,讲OSPF的LSA好像很复杂,你用Sniffer看看,其实他的协议结构还是不复杂的,一般情况下,我会要求学Sniffer的学员有CCNP的基础,或者有几年的网络管理经验,我自己也是这样,刚开始只是用Sniffer抓抓包,抓下来也不知道怎么分析,当我学完CCNP后,学了CIT,以为自己不错了,会排除很多网络故障,但实际上很多问题我还是解决不了,比如网络慢,他又不断,断了我很快能解决,网络慢,或者丢包,一般的排错知识还是很难的,那时候开始学Sniffer,才发现很好用。
  第四,Sniffer可以帮助我们排除潜在的威胁,我们网络中有各种各样的应用,有一些是关键应用,有一些是OA,有一些是非业务应用,还有一些就是威胁,他不但对我们的业务没有帮助,还可能带来危害,比如病毒、木马、扫描等,Sniffer可以快速地发现他们,并且发现攻击的来源,这就为我们做控制提供根据,比如我们要做QOS,不是说随便根据应用去分配带宽就解决了,我们要知道哪一些应用要多少带宽,带宽如何分配,要有根有据。我们再回过头看一下Sniffer什么时候开始流行的,再2003年冲击波发作的时候,很多Sniffer的用户通过Sniffer快速定位受感染的机器,后来很多人都知道Sniffer可以用来发现病毒,Sniffer的知名度暴涨,盗版用户也暴涨(同学们大笑),后来震荡波发作的时候,很多人用Sniffer来协助解决问题。我想强调的是Sniffer不是防病毒工具,这也只是他的一个用途,而且只对蠕虫类型对网络影响大的病毒有效,对于文件型的病毒,他很难发现。
Powered By Blogger