请问:在安全与性能之间 你如何选择?

互联网 | 编辑: 黄蔚 2009-05-11 00:30:00转载

计算机安全和发挥高性能并不总能完美结合,而现在一些主流的防病毒软件已经失去了平衡,走得太远了。这里我来介绍一些方便的技巧和工具。

我发现许多公司的电脑在开机时都遇到了可怕的延时,因为他们的计算机安装了安全防御系统。这并不是在谈论一个小麻烦,因为我有超过8分钟和超过10分钟的启动的纪录,而在没有防火墙或防病毒软件的阻碍时这个数字变成了1.5分钟。这个问题不仅影响Windows,也影响Linux/BSD,不论用户使用哪种系统——主要是在登录时,但通常在用户再次启动浏览器窗口或电子邮件程序时也受到影响。

我想大家都非常期待着电脑的性能和安全防御能力能够平衡运行。但我看到的情况是目前流行的安全产品的延迟时间绝不能让我接受。而更糟的是,许多管理员和用户对这种情况已经习以为常了。

他们不应该就这样放弃。你可以为更高的安全性牺牲掉一部分性能,但安全产品不应该以牺牲性能作为代价。所以你可以做些什么呢?

列出性能清单

首先,在开始排查之前建立一个测量的基准。用秒表或手表计时,以秒为单位,计算电脑从冷启动到桌面完全可用所花费的时间。我说的“可用”是指用户可以开始正常操作,没有重大的延迟,而且CPU的使用率应保持在5%以内。此外,我通常将启动过程分为两个阶段:一是从冷启动到提示用户登录,二是从用户成功登录到桌面可用。如果可能,测量时把电脑配置为自动登录以防止发生登录错误而记错了时间。冷启动至少3次直到你得到差不多相同的启动时间,差距为5或10秒都可以。

如果启动时间长的可怕,试着暂时禁用你的主机防火墙或防毒产品,然后重新启动时间测试。我很多次发现各种流行的防火墙或防毒产品造成了重要的延迟。我见识过主机防火墙将网络数据包的速度降低为六分之一,甚至十分之一。有时候,虽然只是第一个数据包被延迟,但也足以引起本地资源的反应变慢。

有些安全软件可以进行调整来提高性能,在这种情况下你可能需要供应商的帮助。

如果禁用主机防火墙或防病毒软件也不能显著提高性能,重新启用它们,然后试一下其它操作。我经常会逐一禁用各种非关键的服务或者daemon程序,并不断重启,直到找到罪魁祸首。

如果不是服务或自启动的daemon程序出了问题,我接下来会去寻找usermode程序。在usermode中,你可以在登录后使用许多不同的程序来确定哪些是自动加载的。在Linux/BSD系统,自启动程序可以从许多不同的地方启动。如果你不确定该修改哪些文件夹和文本文件,最好在互联网上搜索一下。

在Windows中,我使用调查分析软件Autoruns来查找自动加载的程序,它可以显示你的机器中的几十到几百个自动启动的程序。它很容易操作,也可以用它来禁用各种你认为有问题的程序。

试一试,再试一次

在Autoruns列出了嫌疑目标之后,你仍然需要艰苦的工作来排除故障:每次只禁用一个可疑程序,然后重启,重新测量时间,如果不是它的问题还要重新启用该程序。对Windows用户来说,使用Autoruns是一个确定恶意软件、间谍软件和广告软件的很好方式,ProcessExplorer和ProcessMonitor也是很好的分析工具。

其他常见的让人头痛的问题包括低物理内存,不存在的共享硬盘的永久硬盘映像,不正常暂停的登录脚本,以及损坏的配置文件。就在这个星期,我碰到了一个流行的脚本添加程序,它造成了一分半钟的启动延迟,而在正常情况下这只需几毫秒。

我经常使用网络嗅探器,比如MicrosoftNetworkMonitor或者Wireshark,在混杂模式下捕获所有的出入流量,寻找各种错误,比如过小的MTU(MaximumTransmissionUnits,最大数据包),过高的重复传输率,以及延时超常的数据包。几个星期前使用数据包嗅探,我发现一个客户的电脑随机但经常性的连接到地球另一端的域控制器,而不是身边10英尺的那几台。

在Windows中,WindowsPerformanceToolkit与xperf.exe是个很好的技术故障排除工具。它可以在开关机、休眠或暂停时测量每个正在运行的程序,它会以图形方式显示详细细节,告诉你哪个程序在什么时间占用了计算机的何种资源。它是一个高级故障排除工具,是电脑信息的金矿。

良好的安全性总会以性能的降低为代价。问题是多大的打击是可以接受的呢?虽然各种环境不同,但超过3分钟的启动肯定就是超过正常范围的了。如果你已经习惯于更长的启动时间,那么我鼓励你花上一两天来找到问题出在哪里,因为一个良好的安全管理员应该能够在安全和性能之间找到适当的平衡,根据业务和环境的需要调整战略。

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑