觉得自己没那么容易被黑?非也!黑客眼里,绝大多数人都是毫不设防的小绵羊。想维持安全状态,以下几个秘密不可不看。
被请去做计算机安全实践评估的时候,会看到公司整体实践中哪些有用而哪些根本就是摆设。一名从事信息安全咨询20余年的顾问,每年都会分析20~50家大大小小的公司,他基于这么多年的评估经验能出一个结论:成功的安全策略不在于工具——在于团队。
只要在正确的地方配置对的人,有支持性管理和执行良好的防护过程,无论你使用的是什么工具,你的公司都会非常安全。了解计算机安全的重要性,把安全作为业务关键部分,而不仅仅是罪恶之源来看待的公司,也是最不容易遭受灾难性数据泄露的公司。每家公司都觉得自己拥有这种公司文化;然而,极少有公司真正做到。
下面列出的,是几家在安全方面有着非常高的防护水平公司所采用的通行实践和策略,堪称保证自身企业重要资产安全的秘籍。
一、关注真正的威胁
一大波威胁正向我们涌来,真真正正是前所未有的,历史性的挑战。恶意软件、人类对手、企业黑客、黑客活动分子、政府(国内外政府均是),乃至内部人士,都是我们面临的威胁。铜线、能量波、无线电波,甚至光线,都是黑客能用的手段。
因此,我们被灌输了成千上万条“安全须知”。我们每年都被要求往操作系统、应用、硬件、固件、计算机、平板、移动设备和手机里打上几百个补丁,但我们还是会被黑,会被勒索软件把最重要的数据锁上。
聪明的公司意识到,大多数安全威胁都只是可以忽略的噪音。他们明白,任何时候,自身风险都只来自于一小撮基本威胁。因此,他们的关注力只放在这些基本威胁上。花点时间识别出自家公司的最主要威胁,排个优先级,然后集中精力对付威胁列表上最顶级的那些。就是这么简单。
然而,大多数公司都没这么干。相反,他们在几十到几百个安全项目中来回折腾,最严重的缺口一直放着不管,或者只把最轻微的威胁灭杀掉。
好好想想。你曾被人利用SNMP(简单网络管理协议),或者没打补丁的服务器管理界面卡黑过吗?曾在现实世界中看到过此类报道吗?那么,为什么要让我把这俩当成最高优先级写进我的审计报告里呢(曾经有个客户这么要求过)?同时,你的环境已经被人通过其他更常见的漏洞攻破了……
想要成功缓解风险,弄清哪种风险需要你及时关注,哪种可以稍后再看,是十分必要的。
二、知道你拥有的
有时候,最不起眼的东西才是决胜法宝。在计算机安全上,这意味着建立准确的资产清单,公司的系统、软件、数据和设备都要列出来。大多数公司根本不知道自己环境中都运行着些什么。对根本不知道的东西,你怎么去保护它的安全?
扪心自问,你的团队对公司电脑开机运行的所有程序和进程了解多少?在一个任何额外程序都会为黑客提供另一个攻击界面的世界里,所有这些程序和进程都是员工工作必需的吗?你的环境中各个程序的副本都有多少?都是哪几个版本的?有多少业务关键程序构建了公司的基础?它们有什么依赖关系?
最好的公司对哪个程序运行在哪里有着严格的控制。缺乏一张全面的准确的当前IT资产清单,安全就是空谈。
三、去除,然后保护
不必要的程序就是不需要的风险。最安全的公司审视自己的IT资产清单,去除那些不必要的,然后减少所剩资产的风险。
最近我刚给一家公司做了咨询,那家公司装了超过80000份没打补丁的Java,横跨5个版本。他们的员工从不知道竟然有这么多Java。域控制器、服务器、工作站,简直到处都是。大家都知道,仅仅只有1个业务关键程序需要用到Java,而这个程序仅仅只在几十台应用服务器上跑。
他们询问了全体人员,立即将Java安装范围缩小到几百台计算机,版本也减少到3个,并且大多打上了补丁。剩下几十台打不上补丁的才是重头戏。他们联系了供应商,找到为什么Java版本不能更新的原因,更换了一些供应商,给打不上补丁的Java设置了风险缓解补偿措施。
四、设想风险评估和整体工作量之间的差别
这不仅应用在软件的每一个比特和硬件上,对数据也适用。先清除掉不必要的数据,然后保护剩下数据的安全。有意的删除,是最强大的数据安全策略。确保每个新数据收集者定义好自己的数据需要保存多长时间。给数据打上有效期时限。时候一到,与其主人核对能不能删除。然后,保护剩下的数据。
五、保持最新版本
最安全的公司,其硬件和软件都用的最新版本。是的,每家大公司都有旧硬件和老软件,但其IT资产组成中绝大部分都是最新或次新版的。
不仅仅是硬件和操作系统,应用程序和工具集也是如此。采购成本不仅仅包含购买价格和维护开销,还包括了未来升级版本的资金。这些资产的主人有责任保持更新。
你也许会想,“为嘛要为了更新而更新呢?”但,这是一种过时的,不安全的想法。最新的软件和硬件,内置了最新的安全特性,通常还是默认开启的。上一个版本的最大威胁,在当前版本中很有可能被修复了,也就让旧版在想要利用已知漏洞的黑客面前更加可口了。
六、速度打补丁
这是一条老生常谈的建议:所有关键漏洞要在厂商补丁发布一周之内补上。但是,大多数公司依然留有成千上万个没补上的关键漏洞。而且,他们还会告诉你说“我们的补丁修复是受控的哟”。
如果你的公司要用超过一周的时间才打上补丁,那被攻破的风险就上升了——不仅仅是因为你家门户大开,还因为你那些安全的竞争对手已经把自家门户锁上了。
按理说,你应该在打补丁前先对补丁包做个测试,但测试不仅难,还浪费时间。想要真正安全,还是尽快打上为妙。如果需要的话,等几天看有没有什么小问题被报道。但,短暂的等待之后,打吧,打吧,打吧。
持反对意见者可能会说,补丁打“太快”会带来运营上的问题。但是,安全上最成功的公司告诉我,他们并没有看到太多因为打补丁而出现的问题。很多最安全的公司都说,公司史上就没有出现过因为补丁导致的宕机事件。
七、培训,培训,培训,重要的事情说三遍
培训是极其重要的。但不幸的是,大多数公司都视用户培训为削减开支好去处,或者,即使做培训,内容也是过时的,充斥着不再应用的场景或拘泥于极少见的攻击。
好的用户培训,着眼公司当前面临,或很有可能面临的威胁。培训应由专业人士指导,甚或更好,有公司同事参加。我看过的一段最有效的防社会工程攻击的视频,就是通过凸显出几位公司风云员工是怎么被骗来达到教育目的的。通过分享自身易骗性的真实故事,这些同事可以教授其他员工怎样防止成为受害者。这样的范例,能让其他员工更愿意报告他们自己潜在的过失。
安全团队同样需要最新的安全培训。每个成员,每年必训。无论是请人来公司培训,还是把人派去参加外部培训或会议。这意味着,培训的内容不仅仅围绕你购置的东西,还围绕当前最新的威胁和技术。
八、保持配置的一致性
最安全的公司,在同样功用的计算机上保持几乎相同的配置。绝大多数黑客都是耐心超过聪明的。他们不过是不停地探测探测再探测,直到找到成千上万台服务器中你忘了修复的那一个漏洞。
这种情况下,一致性就称了你的好朋友。每一次,按同样的方式,做同样的事。确保安装的是同样的软件。不要留10种连接服务器的方式。如果装了某个App或程序,确保其他同类服务器上都装的是同一个版本和配置。让对你的计算机进行对比检查的人感到厌烦是个不错的做法。
想要配置一致,缺了配置基准和严格的修改及配置控制可不行。管理员和用户都要清楚,未经许可的情况下,任何的新增或重配置都是不可以的。但是,要注意别让一个月才碰面一次的完全改变委员会把你的同事搞疲了。这样会引起企业中风停顿的。要找到控制和灵活性的正确契合点,但又确保任何改变,一旦被批准,就要在所有同类机器上保持一致。不遵从一致性的应有惩罚。
记住,我们讨论的是基准,是底线,不是泛泛的配置。事实上,或许从一两打建议中你就能得出99%的价值了。找出真正需要的配置,放下其他的,但要保持一致。
九、严格实践最小权限访问控制
“最小权限”就是最大安全。然而,你很难找到全面实现这一点的公司。
最小权限涉及到将仅够用于完成基本任务的最低权限分配给需要的员工。大多数安全域和访问控制列表都充斥着太过开放的权限,且缺乏审计。访问控制列表会长大到毫无意义的程度,而且没人愿意谈论这个,因为都已经成为企业文化的一部分了。
拿活动目录林信任做个例子。大多数公司都有这个玩意儿,可被设置成选择身份验证或完全身份验证信任。过去10年里我审计过的(成千上万)信任几乎都是完全身份验证式的。而当我建议所有信任都用选择身份验证时,我听到的全都是实现起来有多难的抱怨:“要接触每一个对象,还要明确地告诉系统哪一个能访问诶!”没错,说到点子上了。这就是最小权限。
访问控制、防火墙、信任——最安全的公司总是在任何地方都部署最小权限。他们有自动化过程要求资源拥有者定期重验证权限。资源拥有者会收到一封邮件,标明资源名称和谁有着何种访问权限,然后拥有者会被要求确认当前设置。如果拥有者没能回复后续邮件,该资源就会随着之前的权限和访问控制列表被清除而被删除或挪到别的地方。
环境中的每个对象——网络、虚拟局域网(VLAN)、虚拟机(VM)、计算机、文件、文件夹等,都应该比照处理:积极审计下的最小权限。
十、尽量逼近“零管理员”
为做尽坏事,坏人总在寻求控制高权限的管理员账户。一旦被他们掌握了root、域,或者企业管理员账户,就回天乏力了。大多数公司在防止高权限凭证失控上表现不佳。作为反击手段,高安全性公司通过取消这些账户来达到一种“零管理员”的状态。毕竟,如果你自己的管理员团队都不用超级账户或不怎么用这些账户,那么这些账户就不容易被盗,也更容易检测并阻止偶发的泄露状况。
在这里,凭证卫生的艺术是关键。这意味着尽可能少地使用永久超级管理员账户,一个都不用,或者尽量趋近于零管理员。永久超级管理员账户应被紧密跟踪,严格审计,并限制在少量预定义的区域。而且不应启用广泛普及的超级账户,尤其是服务账户。
但是,万一有人需要用到超级凭证呢?尝试使用委托授权吧。这种方式可只赋予请求者访问特定对象所需的必要权限。真实世界中,极少有管理员需要对全部对象的完全访问权。这种事简直不可理喻,但却是大多数公司目前的做法。相反,我们应只对修改单一对象、单一属性,或者最多对修改某个对象子集进行授权。
这种“刚刚够”的做法应与“适时”访问相结合,只在预定时段对执行单一任务进行临时权限提升。还要加上地点限制(例如:域管理员只能出现在域控制器上)。这样你就能有非常强的控制了。
注意:超级管理员账户并不总是需要全部的权限。举个例子,在Windows系统中,用一个单一权限——比如作为操作系统一部分的调试权限(Debug)或备份权限(Backup),有经验的攻击者就足以做一系列危险操作了。要将被提升的权限当做被升级的账户一样严密控制。
委托授权——在正确的区域适时赋予刚刚够的权限,能够帮助你查出坏蛋,因为他们未必知道这一策略。如果你看到有超级账户在网络中游弋,或者在错误的地方使用了超级权限,你的安全团队会去围追堵截的。
十一、制定基于角色的配置
最小权限对人对计算机都适用,环境中所有对象都应该依据其扮演的角色进行配置。在理想世界中,应该只在执行时被赋予对特定任务的访问权。
首先,应调查清楚每个应用必需的各种任务,将通用任务聚集到尽可能少的工作角色中,然后将这些角色分配给需要的用户账户。这样一来,每个用户账户和个人就会分配到仅用于执行任务所需的必要权限了。
基于角色的访问控制(RBAC)应被应用到每一台计算机上,每一台计算机的同一角色都具有相同的安全配置。实践应用绑定的RBAC,如若没有专门的软件是很难的。利用现有操作系统工具,可以很方便地实现操作系统和网络RBAC化,不过用第三方RBAC管理工具会更方便。
将来,所有访问控制都会是RBAC,因为RBAC体现了最小特权和零管理员。最安全的公司已经在可能的地方进行了此项实践。
十二、隔离,隔离,隔离
良好的安全域卫生是另一个重点。安全域,就是一个或多个安全凭证能在其中访问对象的(逻辑上)隔离的域。理论上,在未经事前协定或访问控制修改的情况下,同一个安全凭证不能被用于访问两个安全域。防火墙就是最简单的安全域的例子。同一侧的用户不能轻易过到另一边,除非通过预定义规则规定的协议、端口之类的。大多数网站都是安全域,大多数公司网络也是,虽然它们可能,也应该,包含有多个安全域。
每一个安全域都应有自己的命名空间、访问控制、权限、角色等等,而且全部都应只能在该命名空间中有效。确定到底应该设置多少个安全域是件棘手的事。最小特权法应成为确定安全域的指南,但让每台计算机都单独成为安全域就是管理噩梦了。关键在于,问问你自己能够承受多大的损失——如果访问控制失败,让入侵者获得了某区域完全访问权的话。如果你不想沦为其他人过失的受害者,可以考虑创建自己的安全域。
如果安全域间通信是必需的(就像林信任环境),尽量给域间设最小访问权限。“外来”账户应对除极少量应用以外的对象几乎没有访问权,除了这些应用中必要的基于角色的任务,对其他任务也不应具有访问权。安全域中的所有其他事务,都应该是不可访问的。
十三、重视智能监测实践和及时响应
大部分黑客活动实际上都是通过事件日志捕获的,但确只有在事件发生后才会有人去查看这些日志。最安全的公司则会普遍而积极地监测特定异常,设置警报,并进行响应。
最后一部分很重要。良好监测环境不会产生太多警报。在大多数环境中,事件日志启用的情况下,每天会产生成千上万乃至数十亿条记录。不是每个事件都是警报,但不当定义的环境就会产生成千上万的潜在警报——多到成为类似噪音的存在而最终落到无人理会的境地。过去几年里一些大型黑客事件就涉及到被忽略了的警报。这就是设计很差的监测环境的特征。
最安全的公司会对所有日志源和警报对象创建比较判断矩阵。将此矩阵与威胁列表进行对比,匹配能被当前日志或配置检测到的每一个威胁任务。然后,对事件日志进行调整,尽可能弥补空白。
更重要的是,只要警报产生,他们会立即响应。如果我被告知某个团队监测某个特定威胁(比如口令猜解),我会在之后尝试触发警报以查看警报产生后是否有人进行响应。大多数情况下都没人响应。安全的公司则一有警报触发,就会有人从座位上跳起来,询问别人出了什么事。
十四、从头开始实践所有权和问责制
每个对象和应用都应该有个所有者(或所有者组),控制着使用情况并对其存在负责。
典型的公司里,大多数对象都没有所有者,IT团队也不清楚到底是谁最先请求的某个资源,更不用说知晓该资源是否仍被需要了。事实上,大多数公司里,创建的群组个数是比活跃用户数多的。换句话说,IT团队可以为每个个体分配他/她自己的自定义组,公司也可以创建比当前数量更少的群组以便管理。
然而,没人知道某个群组是否应被移除。他们害怕删除任何一个组。毕竟,万一那个组是某个关键活动需要的,无意删除了会导致某个任务依赖的功能失效呢?
另一个普遍的例子是,被攻破后公司需要重置环境内所有口令的时候。但是你却不能随意这么做,因为其中有些是关联到应用的服务账户,口令要改就得应用内和服务账户本身同时改。
然后问题来了,没人知道给定的应用是否在使用中,是否需要一个服务账户,或者口令是否可修改——因为没有在一开始就指定所有者和相关责任,也没有人可以询问。最终,问题应用还是被留下了,因为导致关键操作中断远比你让某个黑客在公司网络里畅游,更有可能让你被解雇。
十五、快速决策优先
大多数公司都受困于分析无能。一致性、问责制和所有权的缺乏,让每个人都惧怕改变。而当问题涉及到IT安全,快速行动的能力却是关键。
最安全的公司会在控制和快速决策之间建立很强的平衡,使之形成公司文化的一部分。我甚至见过将精挑细选的项目经理投入到长期项目中,仅仅是为了完善项目本身。这些特别的项目经理被赋予了一定的预算控制权,可以在事后记录所做改变,且有一直犯错的空间。
对快速行动而言,留有犯错空间是关键。在安全上,我特别赞同“无论如何,先做决策;如有必要,过后再道歉”的态度。
对比典型公司,大多数问题都不敢触碰,安全顾问建议修复的问题到第二年依然还是问题。
十六、玩得开心
同志情谊不能忽视。认为做正确的事就意味着要牺牲掉自由和乐趣的公司,其数量之巨,可能令人震惊。对他们而言,来自同事的怨恨必须是安全专家正在履职尽责的象征。简直错到离谱!当你拥有了高效安全团队,你就不会被不得不经常性重构计算机和服务器的压力搞得不堪重负,也不会成天忧虑不知道什么时候就又被黑了。因为你清楚局势在自己控制之下,所以一脸淡定。
这并不是说,在最安全的公司上班就轻松惬意。但总的来说,比在其他公司更有趣,同事间也更友爱。
十七、着手去做
高安全性公司的共有特性或许看起来很容易理解,甚至在某些方面是老生常谈,比如说快速打补丁和保护配置安全。但先别忙着为自己的安全实践知识自满。成功护住自家重要资产的公司,和遭受数据泄露的公司,仅仅是在两个主要特征上有差异:专注于正确的元素,以及根植做正确的事的文化,而不是仅仅口头上这么说。秘诀已经列出,要不要卷起袖子开工实践,就是你自己的事了。
本文转自d1net(转载)