|
欺骗的艺术 作者: 凯文·米特尼克 翻译:王小瑞、龙之冰点 一个社会工程师已经关注你的新产品发布计划两个月了。 有什么能阻止他? 你的防火墙?不行。 强大的验证设施?不行。入侵检测系统?不行。加密?不行。 限制调制解调器的访问?不行。 编码服务器名称,使入侵者无法确定产品计划所在的服务器?不行。 事实上,没有任何技术能防范社会工程学攻击。 安全技术、培训和程序 许多公司在他们的安全渗透测试报告中说,他们对客户公司计算机系统实施的社会工程学攻击几乎可以百分之百成功。使用安全技术的确可以让这些攻击更难实施,但唯一真正有效的办法是,将安全技术和安全策略结合起来,规范员工行为并适当地进行培训。 只有一种方法能让你的产品计划安全,那就是接受过安全培训的负责任的员工。这不仅涉及到安全策略和安全程序的培训,还包括了安全知识的培训。一些权威人士建议把公司40%的安全预算用在安全知识的培训上。 第一步是让企业的每一个人都认识到那些能操纵他们心理的人的存在,员工们必须了解信息需要哪些保护与如何保护。当人们了解了操纵的细节时,他们便能在攻击初期更好地处理。 安全培训也意味着让企业的所有员工了解公司的安全策略与程序,就像在第17章所讨论的那样,策略是指导员工行为保护企业信息系统与敏感信息所必须的规则。 本章和下一章提供了一张把你从可怕的攻击中解救出来的安全蓝图。如果你没有培训并警告员工遵循谨慎考虑过的程序,这也许没什么大不了的,在你被社会工程师窃取贵重信息之前。不要等到攻击发生才制定这些策略:这对你的事业和你的员工福利将是毁灭性的。 了解攻击者是怎样利用人的天性的 为了制定一套成功的培训程序,首先你必须了解为什么人们容易遭受攻击,在你的培训中识别这些倾向——比如,通过角色扮演讨论引起他们的注意——你能帮助你的员工了解为什么我们都能被社会工程师轻易地操纵。 社会科学家对心理操纵的研究至少已经有50年了,罗伯特•B•西奥迪尼(Robert B Cialdini)在科学美国人(2001年2月)杂志中总结了这些研究,介绍了6种“人类天性基本倾向”。 这6种倾向正是社会工程师在他们的攻击尝试中所依赖的(有意识的或者无意识的)。 权威 当请求来自权威人士时,人们有一种顺从的倾向。就像本书其它地方所讨论的那样,如果人们相信请求者是权威人士或有权进行这样的请求的人,他(或她)便会毫不怀疑地执行请求。 在西奥迪尼博士写的一篇论文中,一个声称是医院医师的人打电话给三家中西部医院的22个独立护士站要求她们为病房的一个病人送去处方药,收到这些命令的护士们根本不认识呼叫者,她们甚至不知道他是否真的是医师(他不是),她们是从电话里收到处方药的命令的,这显然违背了医院的策略。她们被要求送给病人的药物是未授权,并且剂量是每日最大剂量的两倍,这足够危及病人的生命了。然而在95%的案例中,西奥迪尼写道,“护士从病房医药箱中取出了足够的剂量并把它给了病人。”之后观察者阻止了护士并解释这是一次实验。
爱好 当作出请求的人很可爱或者与被请求者有相同的爱好、信仰和意见是,人们总是倾向于顺从。 攻击举例:通过交谈,攻击者设法了解了目标的兴趣或爱好,并声称他也有相同的兴趣或爱好,或者来自于同一个州或学校,或者有相似的目标。社会工程师还会尝试模仿目标的行为创造相似性。 报答 当我们被给予(或者许诺)了一些有价值的东西时,我们可能会自动地同意请求。礼物可以是资料、建议、或帮助,当有人为你做了一些事情时,你会倾向于报答他。这种强烈的报答倾向甚至在你收到了并不需要的礼物时依然存在。让人们“帮忙”(同意请求)的最有效的方法之一就是给予一些礼物形成潜在的债务。 哈瑞奎师那教徒善于此道,他们会送书籍或者鲜花作为礼物,然后等待回报。如果收到礼物的人想要归还礼物,给予者便会拒绝并说明,“这是我们给你的礼物。”这一回报行为法则被奎师那教徒们用在了增加捐款上。 攻击举例:一个员工接到了自称是IT部门的人的电话,呼叫者解释说公司的一些电脑感染了还没有被杀毒软件识别的破坏电脑文件的新病毒,并建议他进行一些步骤来防御病毒。在这之后,呼叫者让他测试了一个允许用户更改密码的加强版软件程序,这名员工很难拒绝,因为呼叫者是在帮助他防御病毒,他的回报就是响应呼叫者的请求。 守信 当人们公开承诺了或者认可了一些事情时,会倾向于顺从。一旦我们承诺了一些事情,为了避免自己成为不可信赖或者不受欢迎的人,我们会倾向于坚持我们的立场或承诺。 攻击举例:攻击者联系上了一个新员工并提醒她遵守某些安全策略与程序,比如允许使用公司信息系统的情况。在讨论了一些安全规定之后,呼叫者向用户请求她的密码进行“灵活度检查”以选择高强度的密码。一旦用户说出了她的密码,呼叫者便会提出一些创建密码的建议使攻击者无法猜测密码。受害人顺从了,因为她之前已经答应遵守公司的策略,并且她认为呼叫者只不过是在帮她检查密码是否合适。 社会认可 当要做的事情看上去和别人所做的事情一样的时候,人们会倾向于顺应请求。当其他人也这样做时,人们就会认为这些(值得怀疑的)行为是正确的。 攻击举例:呼叫者说他正在进行一次调查并说出了部门中的其他人的名字,他声称这些人已经和他合作过了。受害人相信其他人已经确认了这一请求的合法性,于是呼叫者问了一系列的问题,其中一项引导受害人说出他的计算机用户名和密码。 短缺 当人们相信物品供应不足并且有其他竞争者(或者只在短时间内有效)时,便会倾向于顺应请求。 攻击举例:攻击者发送了一封email声称在公司的新网站上注册的前500个人将赢得一部热门电影的电影票。当一名毫不怀疑的员工在该网站上注册时,他会要求提供他的公司email地址并选择一个密码。有很多人为了方便,总是倾向于在他们使用的每一个计算机系统上使用相同或相似的密码,利用这一点,攻击者便能使用此用户名和密码(在网站注册过程中填写的)攻击目标的工作或家庭计算机系统。 创建培训程序 发行一本安全策略手册或者让员工关注企业内网上的安全策略资料,这些都不会单独减少你面对的威胁。每一家商业公司都必须写下这些策略详细地制定规则,而且必须对涉及企业信息或计算机系统的每一个人进行额外的引导,让他们学习并遵循这些规则。此外,你还必须确保他们理解了每一条策略的制定原因,这样他们才不会为了方便而绕过这些规则。另外,员工的借口永远都是“不了解”,而这正是社会工程师所利用的弱点。 任何安全识别程序的首要目标都是影响人们改变他们的行为和态度,鼓励员工参与到企业信息资产的保护中来。在这种情况下的一种很好的激励方式是向员工解释他们的行为不仅能让公司受益,对他们个人也很有好处。如果公司对每一位员工都保留了一些隐私信息,那么当员工们尽职保护信息或信息系统时,他们事实上也保护了他们自己的信息。 安全培训程序需要覆盖允许访问敏感信息或企业计算机系统的每一个人,必须正在实施,还必须不断地修订与更新以应对新的威胁和攻击,员工们必须看到高级管理人员完全遵守了程序规定,承诺必须是真实的,而不是橡皮盖章的“我们承诺”备忘录,并且程序还必须有足够的资源支持其发展、通信与测试。 目标 发展信息安全知识与培训程序的基本原则是让所有员工意识到他们的公司在任何时候都有可能遭受攻击。他们必须认识到每一个员工都扮演着保护计算机系统或敏感数据的重要角色。 因为信息安全在很多方面都涉及到了技术,所以员工会轻易地认为问题已经被防火墙或其它安全工具处理了。培训的一个主要目标就是让每一个员工认识到他们处在保护企业整体安全的最前沿。 安全培训必须要有一个深入的、较大的目标,而不是简单地制定规则。培训程序设计者必须认识员工所面对的巨大的诱惑,为了完成工作而忽略他们的安全职责。了解社会工程学策略和怎样防范攻击非常重要,但这只在培训程序激发了员工使用这些知识的情况下才有效。 建立知识与培训程序 负责设计信息安全程序的人必须认识到这不是一个一刀切的项目,培训程序需要适应企业内不同组的特殊需要。在16章描述的许多安全策略都是全体适用的,而很多其它的策略是针对指定员工组的。大部分公司的培训程序都需要适应以下这些组:管理人员、IT职员、计算机用户、非技术人员、行政助理、接待员和安全警卫。(请看第16章,根据工作分配分解策略) 因为公司的商业安全警卫通常并不精通电脑,并且,他们接触公司电脑的几率很小,所以在设计培训程序时通常不会考虑他们。但是,社会工程师可以欺骗安全警卫或其他人放他们进大楼或办公室,或者让他们协助实施计算机入侵。警卫当然不需要像操作电脑的人那样参加全部的培训,但是他们必须了解安全知识程序。 在企业内部或许会有哪些是所有员工都需要培训的重要、固有的安全缺陷,设计优秀的信息安全培训程序必须获知并捕捉学习者的积极性和注意力。 信息安全知识与培训的目标应当包括一次迷人的交互式体验,可以通过角色扮演演示社会工程学攻击,评价最近媒体对那些不幸的公司的攻击报导,讨论这些公司怎样才能避免损失,或者播放既生动又有教育性的安全视频,有几家安全公司销售这些视频和相关的资料。 注释 对于那些没有资源开发内部程序的公司,有几家培训公司提供安全知识培训服务,可以在Secure World Expo (www.secureworldexpo.com)上找到这些公司的信息。 本书中的故事提供了许多材料说明社会工程学方法和策略来加强威胁意识,展示人类行为的弱点,可以考虑使用他们的方案进行角色扮演活动,这些故事同时也提供了有趣的讨论机会,比如受害者可以怎样回应来抵御攻击。 熟练的课程设计者和熟练的讲师会发现很多挑战,但也有很多机会让课堂活跃起来,还可以在此过程中促使人们成为解决方案的一部分。 培训结构 所有员工都必须参加基本的安全知识培训程序,新员工必须参加培训作为他们的初始教育,我建议规定新员工不能接触公司的计算机系统,直到他们完成了基础安全知识课程。 对于初始的安全知识培训,我建议简短一些,但能引起足够的注意力,让员工们记住重要的讯息。当因资料过多而需要长时间培训时,必须提供合理的基本讯息数量,我认为超过半天或全天的培训会让人们因信息过多而变得麻木。 这些课程的重点应当是让员工认识到自己和公司都有可能遭受攻击,除非所有员工都有很好的安全习惯。比学习指定的安全策略更重要的是激发员工对公司安全的责任心。 在员工不愿意参加教室课程的情况下,公司应当考虑进行其它形式的教学,比如录像、基于计算机的培训、在线课程或者编写材料。 在短期的初始培训课程之后,还应当设计长期课程让不同职位的员工了解特殊的漏洞与攻击技术,第二次培训至少要持续一年以上。威胁的种类与攻击的方法都在不停地变换,所以课程的内容应当不断更新,此外,人们的知识和戒心会随着时间的推移而减少,所以培训必须每隔一段时间重复一次,才能不断地加强员工的安全意识。再重申一次,培训不仅要曝光安全威胁和社会工程学策略,还要让员工了解到安全策略的重要性并使他们拥护这些策略。 管理人员必须给他们的下属一段合理的时间熟悉安全策略和程序并参加安全知识培训。员工们不应当指望在非工作时间学习安全策略或参加安全培训,新员工应当有足够的时间熟悉安全策略,在开始他们的工作之前养成良好的安全习惯。 在企业内部更换了工作岗位,涉及到访问敏感信息或计算机系统的员工同样需要完成他们新工作的安全培训程序。比如,当一个电脑操作员成了系统管理员(或者一个接待员成了行政助理)时,就需要新的培训。 培训课程内容 在归纳基本原理的时候,所有的社会工程学攻击都有一个共同元素:欺骗。受害者相信攻击者是同一家公司的员工或者有权访问敏感信息的其他人,或者有权指挥受害者操作一台计算机或计算机相关的设备。只要员工简单地进行以下两个步骤,就可以防范几乎所有的这些攻击: 核实请求者是否已授权:这个人需要知道这些吗?他有没有被授权进行这种请求? 注释: 因为安全知识与培训是不完美的,所以最好在创建防御体系时深入地使用安全技术。技术性的安全措施要比针对员工个体的安全措施有效,比如,可以通过配置操作系统禁止员工从互联网上下载软件或使用简短的弱口令。 如果知识培训课程改变了员工的行为,那么可以用这些标准对员工进行测试请求,相应的社会工程学攻击威胁将大大减少。 一个实用的信息安全知识与培训程序应当包含以下内容: 描述攻击者怎样使用社会工程学技能行骗。 通过解说社会工程学介绍几种交互类型。攻击者为了达到他(或她)的目标,会非常频繁地使用不同的技术和通信方式,因此,一个成熟的培训程序应当包括以下内容的一部分或全部: 涉及到计算机和语音信箱密码的安全策略。 同样,如果公司计划使用渗透测试来确定针对社会工程学攻击的安全措施是否有效,应当警告员工注意这次练习,让员工们知道有时候他们会接到使用了攻击技术的电话或其它通讯,作为测试的一部分。测试的结果不会有任何惩罚,但是可能会需要一定范围内的额外培训。 测试 你的公司可能需要在员工使用计算机系统之前测试他们是否已经掌握了这些安全知识。如果你想设计一个测试程序,有许多评价设计软件程序能让你轻松地分析测试的结果,锁定需要强化培训的范围。 你的公司可能会考虑提供一张证书作为奖励证明员工完成了安全培训。 持续的培训 如果不周期性的复习,大部分人会把学到的知识(甚至重要的事件)忘掉。为了不让员工忘记如何防范社会工程学攻击,持续的培训程序非常重要。
持续的培训程序需要创造性地使用所有可能的频道传输安全讯息,因为记忆的可存储性,员工们会不时地想起好的安全习惯。除了使用所有传统的频道之外,还要加上许多能够想到的非传统方式,就像传统的广告一样,幽默、灵活地提供帮助。灵活多变的讯息可以让员工更加熟悉安全策略而无法忽视。 持续的培训程序可能包括以下内容: 提供本书的复印件给所有员工。 “我能得到什么?” 除了安全知识与培训程序之外,我强烈推荐宣传并推行奖励程序。你必须答谢成功阻止了社会工程学攻击、或者在其它方面对信息安全程序作出了杰出贡献的员工。应当在所有培训课程上告知员工奖励程序的存在,并在企业范围内公布违反安全规定的人的名单。 从另一方面讲,人们必须认识到遵守信息安全策略的重要性是无法忽视或反抗的。虽然我们都会犯错误,但是重复的违反安全规定是不能容忍的。
|