1 社会工程学的定义

       社会工程学是通过操纵合法用户获取机密信息的一种方法。一个社会工程学工程师通常使用电话、互联网来欺骗,让人们暴露敏感的信息或让他们做一些违反某些规定的事情。社会工程学工程师利用人们的自然倾向,信任他或她的话,通过这种方法,胜于利用计算机的安全漏洞。人们普遍同意,“用户是脆弱的一环”的说法,用户的脆弱使得社会工程学成为可能。

 

一个现代社会工程学攻击的例子是利用包含恶意程序(比如,利用被害者的计算机发送大量垃圾邮件)的电子邮件。恶意邮件的泛滥,使软件提供商关闭了自动执行邮件附件的功能。现在,用户必须明确,才能激活附件。然而许多用户,依然无视他们收到的是什么附件,而直接打开,因此攻击奏效了。

 

或许最简单,但依然有效的攻击是欺骗用户,让用户以为是管理员,并且询问用户的密码来达到不同的目的。互联网用户经常收到一些信息,询问密码或信用卡信息,谎称是为了“设立他们的账户”或者“恢复操作”或者一些其他的良性操作。这叫做钓鱼攻击。应该尽早的、经常的提醒用户不要泄露敏感信息,密码等给声称是管理员的人。实际上,计算机系统的管理员很少需要知道用户的密码来完成管理任务。尽管如此,根据一个信息安全调查,仍有90%的办公人员用密码和一支笔作交换。

 

       社会工程也同样适用于面对面的实际接触,来获取接近计算机系统的机会。

 

培训用户学习安全策略规定并确保他们遵守之,是防范社会工程学攻击的主要办法。

 

Kevin Mitnick是当今最有名的社会工程学工程师之一。


2 社会工程学基础

第一部分:黑客的战术

一个真实的故事

几年前的一天早晨,一群陌生人步入一个大型船舶公司,然后拿着可以访问整个公司网络的密码走了出来。他们是如何做到的呢?他们只与少量的人有接触,从公司里不同员工那里一点一滴的获取信息。首先,他们在打算踏进公司大门之前,研究了这个公司两天。比如,他们打电话给人事部门,了解到了关键职员的名字。然后,他们装作丢失了钥匙来到正门,招待让他们进入。接着,他们进入第三层安全管制区,又“丢失”了身份牌,一个友善的员工为他们开了门。

 

这些陌生人知道,首席财政官出差了,他们因此能够进入他的办公室并从未上锁的计算机上获得财务数据。他们叫看门人搬了个垃圾桶过来,把所有文档放了进去,带着满满一垃圾桶数据离开了办公大楼。陌生人曾研究过了首席财政官的声音,所以他们能够打电话,假装首席财政官,说自己急需他接通网络的密码。至此,陌生人就可以使用通常的技术和黑客工具来获得访问系统的超级用户权限。

 

在这个例子中,陌生人是网络顾问公司的,他们进行的是其他员工不知道的,针对首席财政官的安全审计。在这之前,首席财政官没有给他们任何特别的信息,但他们却能通过社会工程学获得所有他们想要的访问权限。(这个故事是真实工作中的一个经历,是由Kapil Raina讲述的。他现在是Verisign的安全专家、《商业安全:初学者指南》的作者之一,)

定义

我所阅读的大多数讲社会工程学的书大多以对社会工程学的定义开始,比如“是一种让别人顺从你意愿的艺术和方法” (Bernz 2),“一个外部的黑客,为了得到他需要的信息来访问系统,而对计算机系统的合法用户使用心理骗局的方法” (Palumbo),或者是“从人那里获取需要信息(比如密码)胜过破解系统” (Berg)。实际上,根据你的观点,社会工程学可以是这些定义中的任何一个或者包含所有这些定义。有一件事大家似乎都同意,社会工程学是,黑客用智慧,操纵人们相信他人的这一天性。黑客的目的是获取信息,利用这些信息来获得对有价值系统和系统中的信息的未经授权的访问。

 

安全在于信任。信赖在于保护和真实性。一般大家对用户是安全链上最薄弱环节的看法一致,人天性相信别人的话,让我们易收到攻击。许多有经验的安全专家强调这个事实。不管有多少关于网络漏洞、补丁和防火墙的论文发布,我们只能减少一点点威胁。然后,在清算帐目时却由Maggie或者她的朋友作主。and then it’s up to Maggie in accounting or her friend, Will, dialing in from a remote site, to keep the corporate network secured.

目标和攻击

总的来说,社会工程学基本的目标和黑客技术是一样的:获得未经授权的到系统或者信息的访问,来欺诈,网络入侵、工业间谍、盗取客户身份资料或者只是破坏系统和网络。典型的目标包括电话公司、待客接电话服务、大型知名企业、金融机构、军事和政府部门,以及医院。互联网的爆炸发展The Internet boom had its share of industrial engineering attacks in start-ups as well, but attacks generally focus on larger entities.

 

找到合适的,现实的社会工程学攻击的例子很困难。目标机构,不是拒绝承认他们是牺牲品(毕竟,承认违背了基本的安全原则不仅仅是令人为难,还可能损害机构的名声)就是没有文件记录攻击,所以没有人能够真的确定是否曾遭到过社会工程学攻击。

 

至于为什么通过这种方式攻击目标机构,因为用社会工程学方法来获得违法访问往往比通过各种形式的技术破解更简单。既然是技术人员,事情就变得更简单了,常常只是拿起电话然后直接问某个人的密码。大多数情况下,这就是黑客们将做的。

 

社会工程学攻击发生在两个层面上:物理上的和精神上的。第一,我们要注意那些物理环境易受攻击:工作场所,电话,你的垃圾箱还有网络。在工作场所,黑客可以径直走进门,就像电影里的一样,并装作一个进入机构的维修工人或者顾问。然后,这个入侵者大摇大摆的穿过办公室直到他或她找到一些放在桌面上的密码,随后带着充足的信息离开这个办公大楼。晚上在家,黑客就可以开始探索这个公司的网络了。另一个方法更简单,只要站在那里,看一个健忘的职员如何输入他的密码就行了。

通过电话进行社会工程学攻击

最流行的社会工程学攻击方式是通过电话实施的。黑客会模仿某位领导或相关人员打电话,慢慢的将信息从用户口中套出来。咨询台特别易于受到这种攻击。黑客们可以假装是从公司内部电话交换网络上打来的玩笑电话或者是公司的电话接线员,所以来电者身份不并不一定是最好的防御措施。这里有一个由计算机安全研究院提供的经典电话交换网络欺诈:“嘿,我是美国电报电话公司业务推销,我在做一个调查。我需要你按一些键。”

 

这有一个更好的例子:“他们在午夜给你打电话,说:‘你在过去六小时之内打过电话到埃及吗?’‘没有啊。’然后他们会说:‘这个电话现在还在打,是从你的电话卡里打往埃及的,有人用你的卡消费了大约2000美元。你要对这2000美元负责,你必须付款……’他们继续说,‘我的工作就是在电话上为您取消这2000美元的费用。但是你需要读出你美国电报电话公司的卡号和个人身份号码,然后我会帮你取消这些收费。’接着,这个人中计。”。

 

因为咨询台的本职工作就是提供帮助,这一点可能被那些设法获得违法信息的人发现、利用,所以咨询台特别容易受到攻击。咨询台工作人员被训练成友善的,并且是毫无保留的告诉自己知道的,这简直就是社会工程学的金矿。大多数咨询台工作人员受过的安全方面教育极少,所以他们往往只是不断地回答问题,然后接听下一个电话。这会造成巨大的安全漏洞。

 

计算机安全研究院的主持人作了一个现场示范,演示咨询台是如何的易受攻击,他打电话到电话公司,经过转接,到达咨询台。“谁是今晚当班的?”“哦,是贝蒂。”“请贝蒂听电话。”[他的电话被转接给贝蒂]“你好贝蒂。倒霉的一天对不对?”“没有啊,为什么?”“你的系统崩溃了。”她说:“我的系统没有崩溃,我们一切正常。”他说:“你最好注销看看。”贝蒂注销了系统。他说,“现在登陆。”贝蒂再一次登陆了系统。他说,“我们这里一点显示都没有,我没看到你的状态有任何变化。再注销。”贝蒂又再一次的注销。“贝蒂,我必须用你的账号登陆,看看你的账号出了什么问题。把账号和密码告诉我。”接着,这个咨询台高级主管把账号和密码都告诉了他。

 

这个电话题材的变型是公用电话和自动取款机。黑客们确实是越过肩膀偷看,最后获得信用卡号和密码。(我的一个朋友在美国的一个大型机场就遇上了。)人们总是在机场里围着电话亭站成一圈,所以这个地方一定要倍加小心。

垃圾搜寻

垃圾搜寻也叫捡废品,是另一种流行的社会工程学攻击方式。从公司的垃圾袋里可以搜集到大量的信息。LAN Times列出了下面的这些东西,在我们的垃圾中他们是潜在的安全隐患:“公司电话簿,组织图,备忘录,公司保险手册,会议日历,时间和节假日,系统手册,打印出的敏感数据或者登陆名和密码,打印出的源代码,磁盘,磁带,公司信签,备忘录表,还有淘汰的硬件。”

 

对黑客来说,这些资源是提供丰富信息的宝藏。黑客可以从电话簿上了解到人的名字和电话号码,来确定目标或模仿对象。组织图包含在组织内谁是当权者的信息。备忘录里有增加可信度的小信息。规定手册向黑客展示该公司真正的有多安全(或者不安全)。日历就更好了,他们或许可以给黑客提供某一雇员在那个特殊的时间出差的信息。系统手册,敏感数据或者其他技术信息资源也许能够给黑客提供打开公司网络的准确秘匙。最后,淘汰的硬件,特别是硬盘,能够通过技术恢复数据并提供各种各样的有用信息。(我们将会在第二部分讨论如何处理所有这些东西;从碎纸机开始讲是最好的)

网上社会工程学

互联网对社会工程学工程师来说是一片收获密码的沃土。主要的弱点是许多用户常常是在某一个账户上重复使用相同的简单密码:雅虎,Travelocity Gap.com什么的。所以一旦黑客获得一个密码,他或她或许可以进入多个账号。其中黑客获取密码的一种方式是通过在线表格:他们可以发送一些有关你独得赌金的信息,并要求用户输入名字(包含电子邮件地址,她或许还能同时获得那个人的公司账户密码)和密码。这些表格可以通过电子邮件或者美国邮政发送。美国邮政从表面上看感觉更好,让你觉得发送邮件的像是大型企业。

 

在网上,黑客用来获取信息的另一个办法是假装成网络管理员,通过网络给用户发送邮件询问密码。这种社会工程学攻击一般不能成功,因为用户上网的时候更小心黑客,但是用户依然要注意。此外,黑客可以给用户安装程序,来弹出窗口。这些弹出窗口貌似网络的一部分,要求用户重新输入他的用户名或密码来修复某一问题。在这个时候,大多数用户应该知道不要以明文发送密码,但是系统管理员偶尔发出一些简单的安全措施,提醒用户还是应该的。要做得更好点,系统管理员可以警告他们的用户不管任何时候都不要泄露密码,除非是当面,与经授权的,可信赖的员工交谈。

 

电子邮件可以被用来以更直接的手段进入系统。举个例子,发送包含有病毒,蠕虫或者密码的邮件。一个很好的例子是VIGILANTe记录的攻破美国在线的案子:“在那个案子里,黑客打电话到美国在线,寻求技术支持,他和支持工程师攀谈了一个多小时。在谈话中,黑客提到他的汽车要低价出售。这位技术支持对此非常感兴趣,于是黑客发送了一个带有‘汽车图片’附件的邮件。‘图片’附件执行,打开一个后门,并绕过美国在线的防火墙建立了一个连接。”

说服技巧

黑客们从心理学的观点学习社会工程学,强调如何创造利于攻击的完美心理环境。获得说服力包括下面的一些方法:模仿,迎合,从众,分散责任,还有老用户。不管使用哪种方法,主要目的是使用户相信这个社会工程学工程师是他们可以信赖的,并将敏感信息泄露给他。另一个诀窍是,永远不要一次询问过多的信息,同时为了保持表面上良好的关系,应从不同的人身上获得一点点信息。

 

模仿通常意味创造某个人并扮演这个角色。角色越简单越好。有时候,可能仅仅是打个电话,说:“嗨,我是管理信息系统的乔,我需要你的密码。”但并不是每次都能成功。有些时候,黑客会研究一个机构里真实存在的一个人,等待他出差,然后在电话上假扮他。据Bernz的书上说,一个黑客曾经曾仅写了很多关于黑客的事情,他们用一些小盒子来伪装自己的声音并学习被害人的语音模式和组织结构图。我认为,这种模仿攻击极少出现,因为需要大量的准备工作,但它确实发生。

 

在模仿攻击中使用的常见角色有:维修工,IT技术人员,经理,受信赖的第三方(比如,总裁执行秘书,他说总裁授权他来取某个文件),或是同事。在一个大公司里,这并不难做到。因为你没有办法认识所有人,而身份标志可以是假的。黑客扮演的这些角色大多属于那些我们想去讨好的那类人,比如领导。大多数雇员希望给老板留下深刻的印象,所以他们会拼命提供领导需要的信息。

 

       从众是基于群体的行为,但有时可以用在对个人用户,告诉他其它每个人都已将现在讯问他的这些信息提供给了黑客来让用户信服,例如如果黑客假扮IT经理。当黑客用这种方式攻击,降低员工的压力,分散给出密码时员工的责任感。

 

当对方产生怀疑的时候,在社会工程学攻击中最好的方法就是友善。这个观点基于一般用户都会信任电话里的这位同事并希望提供帮助,所以黑客真的只需要做得让人觉得基本可信就行了。另外,大多数职员都会礼貌的回应,特别是对女性。稍微奉承一下,或者一句玩笑话对软化目标雇员使之合作可能会有帮助,然而,聪明的黑客知道在雇员产生怀疑之前的什么时候,停止追问信息。如果面对面时,一个微笑或简单的一句“谢谢你”都能奏效。如果还不够,新用户常做的也经常奏效:“我好烦啊,(眨巴眼睛)你能帮我吗?”

逆向社会工程

最后,更高级的获取非法信息的方法叫做“反向社会工程”。这种方法是黑客创造一个在某方面是权威的角色,雇员会主动来问他问题,而不是相反。如果研究,安排并执行得很好,反向社会工程学攻击可能提供给黑客更好的机会从雇员那里获得有价值的信息;可是,这需要大量的准备,研究和攻击之前的踩点。

 

根据Rick Nelson写的《黑客方法:社会工程学》这本书:反向社会工程学攻击的三部分是破坏,宣告,协助。黑客破坏一个网络,引起一些故障。然后那个黑客宣称他是联系来修复问题的,然后,当他过来修复网络故障时,从雇员那里要走一些信息并达到他此行的真正目的。雇员们永远不会认为他是一个黑客,因为他们的网络故障排除了,每个人都很高兴。

结论

当然,如果一本讲社会工程学的书不提到凯文·米特尼克,那肯定不完整。所以,我会引用《安全焦点》这本书中的他的一篇文章来总结:“你可以花费大量的金钱来购置技术和服务……你的网络体系在过时的手段面前依然脆弱。”第二部分讲:防范策略,要讨论如何通过使用确认攻击,预防技术,培训和策略来防范。