每年微软安全响应中心(Microsoft Security Response Center)调查的安全报告数以千计。在部分案例中,一旦发现其中一份报告指出某个安全性的弱点肇因于某项产品的缺陷,微软就会尽快开发修补程序以修正错误 (请参阅浏览Microsoft Security Response Center)。在其它的案例中,报告的问题不过是在使用产品时人为错误所致。还有很多的案例是介于两者之间,探讨的是真正的安全性问题,但往往并非由产品缺陷所引起。几年以来,微软开发出类似这些问题的清单,称为“十个不变的安全性法则”。
别费神等待防止以下所讨论之问题发生的修补程序上市。Microsoft 或其它软件厂商不可能完全修补这些问题,因为这些问题是因计算机的运作方式而产生。但也别完全绝望,明智的判断力是防止这些问题在您身上发生的关键。如果 您牢记这些法则,便可以显著的改善您系统的安全性。
法则1:如果动机不良的人能够说服您在自己计算机上执行他的程序,那么该计算机便不再属于您。
这是计算机科学不幸的事实:当计算机程序执行时,不管该程序是否有害,它会遵照程序指示作业。当您选择执行一个程序时,这个决定便把计算机的控制权 托付给该程序。一旦程序开始执行,可能会做任何事情,但不会超越您在计算机上所能做的事。程序可以监视您的按键输入并传送到网站、打开计算机上的每一个文 件,并将所有文件中的「会」这个字变更为「不会」、传送粗鲁无礼的电子邮件给您所有的朋友、安装病毒、建立「后门」让他人远程控制您的计算机、拨接到尼泊 尔加德满都的 ISP,或者把您的硬盘重新格式化。
所以这点非常重要:永远不要从不能信任的资源执行甚至下载程序,而「资源」所指的是写程序而不是给您程序的人。执行程序与吃三明治是很好的模拟:如 果有个陌生人走到您面前,给您一块三明治,您会吃吗?恐怕不会吧;如果是您最好的朋友给您三明治呢?您可能会吃,也可能不会吃,得看她是自己做的还是在路 上捡到的。将三明治情境中使用的判断思考应用到程序上,您多半会很安全。
法则2:如果动机不良的人能够在您的计算机上变更操作系统,那么该计算机便不再属于您。
操作系统最终不过是一系列的 0 与 1,被处理器解译时,会引发计算机做特定的事件,而 0 与 1 改变时,会完成不同的事件。0 与 1 储存在哪里呢?就是与其它东西共同存在计算机上!它们只是文件,但如果其它使用计算机的人可以变更这些文件,那就不妙了。
要了解原因,就要把操作系统文件,想象成计算机中最能够信任的文件,且通常是以系统层次的特殊权限执行,也就是说它们可以做任何的事情。此外,可以 信任它们管理使用者账户、处理密码变更,以及执行谁可以做什么的支配规则。如果一个动机不良的人变更这些文件,这些文件就变得无法信任,并且会做此人叫它 们做的事,因此没有什么他办不到的事。他可以窃取密码,让他自己成为计算机的系统管理员,或是新增全新的功能到操作系统。为预防这类型的攻击,请确定系统 文件 (与登录文件) 的保护周全 (在 Microsoft Security 网站上的安全检查清单,会帮助您做到这点)。
法则3:如果动机不良的人能够无限制地实体存取您的计算机,那么该计算机便不再属于您。
如果一个动机不良的人能够使用您的计算机,他可以做的事情不少。这里列出从石器时代到太空时代的取样:
他可以发动技术性极低的拒绝服务攻击,并用大锤砸烂您的计算机。
·他可以把计算机的插座拔掉,把它运到大楼外面,然后以它要挟赎金。
·他可以用磁盘开机,重新格式化您的硬盘。但是等一等,您说:「计算机开机时,计算机上的 BIOS 有设定提示输入密码。」这没什么难的,他大可打开计算机机壳,变更系统硬件,更换 BIOS 的芯片 (其实,还有很多更容易的方式)。
·他可以把您的硬盘从您的计算机移除,然后把它安装到他的计算机并阅读里面的东西。
·他可以复制您的硬盘然后带回他的窝。在那里,他有足够的时间进行暴力攻击,例如尝试所有可能的登入密码。有可用的程序自动化这个工作,假如时间足够,毫无疑问的他会成功。成功后,前述的法则 1 与法则 2 就派上用场了。
·他可以将您的键盘替换成装有无线发报机的键盘,监视您输入的所有讯息,包括您的密码。
要永远确定计算机实体的保护与其价值成正比,并记住计算机的价值不是只有硬件的部分,还包括其中的数据以及动机不良之人得以存取您网络的价值。商业关键性 的机器,至少要放在上锁的机房,只让系统管理员或维修人员存取。但是您可能也要考虑保护其它的计算机,并可能使用额外的保护措施。
如果您带着笔记型计算机旅行,对它的保护绝对很重要。体积小、重量轻等让笔记型计算机成为旅行良伴的特性,也是让它们非常容易遭窃的原因。目前有笔 记型计算机可用的锁与警铃,有的计算机还能让您取下硬盘并随身携带。您也可以使用像是 Windows 2000 加密文件系统的功能,有人成功窃取计算机时可以减轻损害。但是可以让您完全确定文件数据安全与硬件未被变动的唯一方式,就是在旅行时永远将笔记型计算机随身携带。
法则4:如果您允许动机不良的人上载程序到您的网站,那么该网站便不再属于您。
这个法则基本上与法则 1 相反。在法则 1 的状况中,动机不良的人耍花招,让受害者下载有害的程序到他的计算机并执行该程序。在法则 4 的状况中,动机不良的人则上载有害的程序到别人的计算机里,并自行执行该程序。虽然当您随时让陌生人联机到您的计算机时,就会有这样的危险,但是网站涉及 的案例绝大多数都是这一种。许多营运网站的人为了自己的好处而过于好客,让访客上载与执行程序。如同前面所述,如果动机不良的人能够在您计算机上执行程 序,令人不悦的事就会发生。
如果您手上有网站在营运,必须限制访客所能做的事情。在您的网站上,应该只允许自己或可信任之开发者所写的程序。但这些措施可能还不够,如果您的网 站是与其它网站装载于共享的服务器上,您需要特别小心。如果动机不良的人有办法拖累其它网站之一,那他很有可能会扩充他的控制到服务器本身,因而可以控制 所有在上面的网站,包括您的在内。如果您是在共享服务器上,了解该服务器系统管理员的政策是什么就很重要 (顺道一提,在使您的网站公开化前,要确定您已经遵循 IIS 4.0 与 IIS 5.0 的安全检查清单的指示)。
法则5:强大的安全性敌不过脆弱的密码。
登入程序的目的在于建立您的身份。一旦操作系统知道您的身份,就可以适当的授与或拒绝对系统资源的要求。如果动机不良的人取得您的密码,他便可用您 的身份登入。事实上对操作系统而言,这个动机不良的人就是您。您在系统上能做什么他都可以做,因为他就是就是您。或许他要读取您储存在计算机上的敏感信 息,例如您的电子邮件;或许您在网络上比他的权限大,所以借用您的身份便可以做平时不能做的事;或许他只想做坏事然后怪罪到您身上;不管如何,保护您的信 誉是值得的。
永远使用密码。令人惊讶的是,有许多账户竟然使用空白密码。请选择一个复杂的密码,不要使用狗的名字、周年纪念日期或地方球队名称,还有,别用 ”password” 这个字当密码!选一个混合英文字母大小写、数字、标点符号等等的密码,让它愈长愈好,并且常常变更。一旦选取了稳当的密码,要适当加以处理,不要写下来。 如果您一定要把它写下来,至少把它放到安全或可以上锁的抽屉中。一个动机不良的人在找密码时,第一个会找的地方就是在您屏幕旁边的黄色小标签纸。不要告诉 别人您的密码,记得富兰克林曾说:「若要两个人保守秘密,只有其中一人死掉才有可能成立。」
最后,要考虑在系统中使用比密码更强力的东西识别自己。举例来说,Windows 2000 支持智能卡的使用,可以显著加强系统所能执行的识别码检查。您也可以考虑生物测量 (biometric) 的产品,像是指纹与视网模扫描仪。
法则6:计算机的安全性只等同于可靠的系统管理员。
每台计算机须有位系统管理员:这个人能够安装软件、设定操作系统、新增与管理使用者账户、建立安全性政策,与处理所有其它有关保持计算机开机与运作 的管理工作。根据定义,这些工作必须在系统管理员能够控制计算机的情况下运作,如此系统管理员的地位有着无与伦比的力量。一位不可信任的系统管理员能反转 所有您采取的安全措施。他可以变更计算机上的使用权限、变更系统安全性政策、安装有害的软件、新增不存在的使用者,或是做其它各式各样的事情。事实上,他 可以破坏任何操作系统的保护措施,因为他就是控制操作系统的人,最糟的是他还可以掩饰他的行为。如果您有位不可信任的系统管理员,就很明显的没有安全性。
雇用系统管理员时,要认知系统管理员所具有之信任的地位,而且只能雇用能担保那份信任的人。打电话给该系统管理员的推荐人,询问有关他过去的工作纪 录,特别是在过去雇主公司有关安全性的事件。如果您的公司能够接受银行与其它安全意识高的公司所采取的步骤,您可以照样操作,并要求系统管理员通过雇用时 以及雇用后定期的完全背景检查。不管您选用什么标准,都要贯彻实施。在您的网络上,不要给任何人管理上的特殊权限,除非这些人已经过调查,对象包括临时雇 员与承包商。
下一步,采取行动帮助诚实的人保持诚实。使用登入/注销工作表以追踪谁曾出入服务器机房 (您一定有间上锁的服务器机房,对吧?如果没有,请重读法则 3)。在安装或为软件升级时,采用「两人」制度。尽可能把管理工作多元化,如此可以把每个系统管理员所拥有的权力降到最低。还有,不要使用系统管理员账 户,取而代之,给每个系统管理员拥有系统管理员特殊权限的个别的账户,如此您可以知道谁在做什么。最后,考虑进一步让系统管理员更难掩饰他的所作所为。例 如,将稽核数据储存在唯写媒体,或是将系统甲的稽核数据放置于系统乙,并确定两个系统的系统管理员是不同的人。当您的系统管理员愈可靠,您的问题就越少。
法则7:加密数据的安全性只等同于解密金钥。
假设您安装全世界最大、最强固、最安全的锁在您家的前门,但是钥匙就放在门前的垫子底下,那么不管您的锁有多坚固也没有用,不是吗?关键因素在于钥匙没有 好好的保存,因为如果小偷找到它,要开锁可说易如反掌。加密数据的运作方式是一样的-不管加密的算法有多强,数据的安全性只等同于能够解密的金钥。
许多操作系统与加密的软件产品,让您选择把加密金钥储存在计算机里。这个作法的优点是方便-您就不必处理金钥,但是所牺牲的是安全性。这些金钥通常 是隐藏的,有的隐藏方式非常好,但最后不管金钥隐藏的多好,如果它就在计算机里,总是可以找得出来。最后一定会有软件能够找到金钥,因此动机不良之士也可 以找得到。只要有机会,请使用离线的存放区放置金钥。如果机码是一个字或词,请予以牢记;如果不是,就将它汇出到磁盘上、制作备份复本,并把复本储存到不 同且安全的地点。(所有 Syskey 以「本机存放区」模式使用 Syskey 的系统管理员们:您会马上重新设定您的服务器,对吧?)
法则8:过期的扫毒程序比起没有扫毒程序好不了多少。
病毒扫描仪的运作方式,是把计算机上的数据与一组的病毒「签名」互相比较。每一个签名是一种病毒的特征,扫描仪在文件、电子邮件或其它地方发现数据 与签名符合时,它就认定找到病毒。但是病毒扫描仪只能扫描它所知道的病毒。保持最新的病毒扫描仪签名档案是很重要的,因为每天都有新的病毒产生。
但问题其实比这个概念还要深一点。一般而言,新的病毒在其早期的生命阶段会造成最大的损坏,正是因为很少人能够侦测到它。消息一旦传开,指出有新的 病毒在散布,然后人们更新手上的病毒签名文件,之后病毒的散布程度就大幅下降。重点是要赶在散布曲线的前端,意即病毒大肆散布前,在计算机上更新病毒签名 文件。
事实上每一家防毒软件的供货商都提供由网站取得免费签名文件的方式。其实,许多厂商已经「推进」他们的服务,每当新的签名文件发行时,他们会传送通 知。请您善加利用这些服务,同时,也要持续使用这些服务,让扫描仪本身 (也就是扫描软件) 更新。病毒的建立者会定期发展新的技术,使得扫描仪本身运作的方式也有变更的需要。
法则9:完全的匿名不管在现实或网络上都不实际。
所有人类的互动都涉及某种的数据交换。如果有人组合足够的数据,他们就可以识别您。仔细想想一个人在与您简短的对谈中能够收集的所有信息。只要看一 眼,他们就可以判断您的身高、体重与大概的年纪。您的口音可能会告诉他们您来自哪个国家,或是来自国内的哪一区域。如果您谈话的内容不是只有天气,您可能 会告诉他们一些与您的家庭、兴趣、住处与以何维生有关的事情。他人要了解您是谁,并不需要花很长的时间收集信息。如果您渴望绝对的隐姓埋名,最好的方式是 住在山洞里,不与任何人接触。
在因特网上的情形也是一样。如果您浏览一个网站,网站拥有者如果有心,他就有办法查出您的身份。毕竟由 0 与 1 所组成的网站工作阶段,一定能够找到通往目的地的路,而那个目的地就是您的计算机。有很多的方式可以掩饰位,例如,您可以使用网络地址转译,为您实际的 IP 地址加上屏障;订阅匿名服务将位,由以太网络的一端转送到另一端,以掩饰您的位;为其它目的使用别家的 ISP 账户;只从公共信息站浏览特定的网站等等。这些方式让人更难判定您的身份,但并非全无可能。您确定知道是谁在操作这些匿名的服务吗?可能就是您刚浏览之网 站的拥有者!您昨天浏览提供您 10 元折价券的无害网站呢?或许该网站的拥有者愿意与其它网站拥有者共享您的数据。如果是这样,第二个网站所有者或许可以把两个网站的信息相互关联,进而判定 您的身份。
难道这代表网络上的隐私权是不可能的吗?一点也不。那意味着在因特网上保护您隐私的最好方式,与保护您日常生活的隐私没有不同-都是经由您的行为。 阅读您浏览网站的隐私权声明,并且只与您能接受其做法的网站交易。如果您担心 cookie,就停用该功能。最重要的是,请避免毫无选择地浏览网站-如同绝大多数的城市都有治安不好的区域,因特网也是一样。但是如果您要的是彻底与全 面的匿名,还是着手找一个山洞比较好。
法则10:技术不是万能药。
技术能够做到令人惊奇的事情。近年来,前所未有的廉价、更具威力的硬件与利用硬件的软件日渐开发,因而为计算机使用者、加密技术的发展与其它科学打开了新的领域。如果我们努力研究的程度足够,很难不相信技术可以带来一个没有风险的世界。但是这完全是不实际的。
完美的安全性需要一层不存在的极至境界,而事实上也不太可能存在。这对软件与人类有兴趣的所有领域而言都是事实。软件开发是一个不完美的科学,所有 的软件都有问题,其中有些可被利用而造成安全性漏洞,那不过是严酷的生活现实面。即使软件能够做到十全十美,还是无法解决所有的问题。就某个程度而言,大 部分的攻击牵涉到人性的操纵-这通常称为社交工程学 (social engineering)。增加成本与攻击安全性技术的困难度,动机不良之士会将焦点由技术转向在控制台的人,作为响应。了解您在维护坚固安全性的角色很 重要,否则您可能会成为自己系统保护的裂缝。
解决方法在于认知两个重要的部分。第一,安全性是由技术与政策两者所组成,也就是说,组合技术与使用它的方法,最终会决定您系统安全的程度。第二, 安全性是一个过程而不是目的,它不是一个可以一次永远解决的问题,而是好人与坏人之间一连串的行动与对抗。关键是要确定您有良好的安全性意识与稳健的 判断力。有许多资源可以帮助您做到这个目标,举例来说,Microsoft Security网站有几百页的白皮书、最佳实例指南、检查清单与工具,而且不断在开发更多的资源。结合卓越的技术与稳健的判断力,您将拥有固若盘石的安全性。