1.2 社会工程概述
什么是社会工程?
我曾就此问题询问一组安全爱好者,得到的答案令我非常惊讶。
>>“社会工程是欺骗别人以获取信息。”
>>“社会工程就是做一个好演员。”
>>“社会工程是知道怎样免费获得东西。”
维基百科的定义是:“操纵他人采取特定行动或者泄漏机密信息的行为。它与骗局或欺骗类似,故该词常用于指代欺诈或诈骗,以达到收集信息、欺诈和访问计算机系统的目的,大部分情况下攻击者与受害者不会有面对面的接触。”
虽然常被冠以恶名,从“免费比萨”、“免费咖啡”及“把妹”等就可见一斑,但社会工程学实际上触及生活中的很多方面。
韦氏字典对社会(Social)的定义是“社区中属于或与生活、福利以及人际关系有关的”,对工程(Engineering)的定义则是“对物理、化学等纯粹科学进行实际应用的艺术或科学,如构建发动机、桥梁、建筑物、矿井、船只和化工厂等,技术或制作精巧的发明;机械控制”。
将这两个定义进行组合,很容易就可以发现社会工程学是一门艺术或者说得更好听是一门科学,它有技巧地操纵人们在生活中的某些方面采取某种行动。
这个定义将社会工程人员的活动范围扩大到生活的各个方面。小孩使用社会工程从父母处得到他们想要的东西,老师采用社会工程与学生互动,医生、律师或心理学家运用社会工程从病人和客户那里得到信息。当然,司法部门也在使用,人们约会时也使用。事实上,从婴儿到政治家,每个人在交往活动中都在运用社会工程。
我对该定义进行了扩展,认为社会工程的真正定义是:一种操纵他人采取特定行动的行为,该行动不一定符合“目标人”的最佳利益,其结果包括获取信息、取得访问权限或让目标采取特定的行动。
举例来说,医生、心理学家及临床医学家通常使用社会工程的一些因素“操纵”病人,使其采取对病人有益的行动。相反,骗子使用社会工程的某些因素说服目标,使其采取给目标自身带来损失的行动。虽然两者的最终结果迥异,但其中的方法却很类似。心理学家使用一系列精心设计的问题,帮助病人得出必须改变的结论。类似地,骗子使用精心构造的问题将目标置于危险的境地。
虽然这两个例子都是社会工程的最真实形式,但是具有不同的目标和结果。社会工程不能仅仅定义为欺骗、撒谎或角色扮演。在我与克里斯·尼克森[Chris Nickerson,电视剧《老虎小组》(Tiger Team)中的知名社会工程人员]的一次交谈中,他说:“真正的社会工程不仅是以为自己在扮演角色,而且在那个时刻,你就是那个人,你就是那个角色,你的生活就是那样的。”
社会工程不是任何一种独立的活动,而是由框架中提到的各种技巧组合形成的活动、技巧和科学。同样,一种美食也不会仅有一种成分,而是精心组合、调配及添加多种配料而成的。社会工程就像烹调,而一个优秀的社会工程人员就像是主厨。使用少量的诱因,稍加操纵和伪装,就能成为一名完美的社会工程人员。
当然,本书会讨论其中的一些方面,但重点是你能从执法人员、政治家、心理学家甚至儿童身上学到什么,以提高你在审计及加强自身安全方面的能力。对儿童轻而易举就能“操纵”父母的行为进行分析,可以就人们的思维方式给社会工程人员以启示;分析心理学家怎样组织问题,可帮助我们理解什么能让人放松;分析执法人员成功审问的方法,可以了解如何从目标身上获取信息;分析政府部门和政治家如何传达消息以取得最大影响力,我们能知道哪些行为可行;分析演员怎样进入角色,会令你进入角色扮演的精彩世界;通过研究和分析微表情和说服方面的前沿知识,可以学习其在社会工程中的应用;通过分析世界上最出色的销售人员和谈判专家的动机,可以了解怎样建立密切的关系,使对方放松警惕,从而达成目标。
通过对反面示例(骗子及小偷等)的研究和分析,你会看到他们怎样综合应用这些技巧影响他人,让人们做出一些自己都想不到的事情。
将这些知识和开锁匠、使用隐秘摄像机的间谍、专业信息收集人员的技巧相结合,你会成为一个才华出众的社会工程人员。
一次行动中不需要使用所有这些技巧,你也不可能掌握所有的技巧。通过理解这些技巧的用法以及使用时间,任何人都可以掌握社会工程学。确实,有些人天生就有这方面的才能,例如凯文·米特尼克,他可以说服任何人做任何事。小弗兰克·阿巴奈尔(Frank Abagnale, Jr.)天生就具有欺骗别人、令别人相信他所扮演的角色的能力。维克多·拉斯体格(Victor Lustig)的所作所为更让人难以置信,他使一些人相信他有权销售埃菲尔铁塔,其最厉害的一次当属欺骗了黑帮老大艾尔·卡彭(Al Capone)。
这些社会工程专家和其他类似人员似乎天生就具有这方面的能力,也拥有无畏的精神,使得他们可以尝试大部分人想都不敢想的事情。不过,今天的恶意黑客在不断提高操纵他人的能力,恶意的社会工程攻击在不断增多。黑暗阅读(DardReading)网站的一篇文章(网址是www.darkreading.com/database_security/security/attacks/showArticle.jhtml?articleID=226200272)中说道,一次数据入侵事件会给相关公司带来100万到5300万美元的损失。网站引用的是波耐蒙(Ponemon)研究所的结果:“波耐蒙发现对网站的攻击、恶意代码和恶意的内部人员是最具破坏性的攻击形式。平均每年每个企业因网络犯罪所遭受的损失中,有90%以上是由这三种攻击造成的。一次网站攻击造成的损失是143209美元,恶意代码造成的损失是124083美元,恶意内部人员造成的损失是100300美元。”恶意内部人员进入前三名意味着商业人士需要更加关注来自恶意社会工程方面的威胁,包括来自员工的威胁。
如果人们掌握相关的知识,则很多此类攻击就可以避免,因为人们可以根据所掌握的知识采取行动。有时了解恶意攻击者的思维和行为方式,就能对很多事情作出判断。
举一个简单的例子。近期一位好友告诉我,她很担心金融账户被入侵,担心自己被诈骗。在谈话的过程中,我们说起“猜测”他人的密码到底有多简单。我告诉她很多人的所有账户都使用相同的密码,当她意识到自己就是这样做的时候,我发现她的面色有点发白。我又说起大多数人采用配偶的名字或生日以及纪念日来组合成简单的密码,她的面色转为苍白。我继续说到人们经常选择最简单的“安全问题”,例如“你(或你母亲)的闺名”,而这些信息通过因特网或者几个虚假电话就可以轻易获得。
很多人会将这些信息写在Blippy、Twitter或Facebook账户中。我这个朋友不常使用社交网站,所以我问她是否曾想到过,别人通过几个电话就可以得到这些信息,她当然说不可能。为了说明人们很容易提供个人信息,我告诉她自己曾经在一个餐馆看到一个餐具垫,上面说可提供当地高尔夫球场的50美元抵用券——真是个诱人的礼物。要拿到这个礼物,需要做的就是提供自己的姓名、生日和住址,同时提供一个密码,该密码将用来为你建立账户,该账号随后会发到你的邮箱。(我之所以很快注意到这个,是因为一些人已经在填写表格,并将表格放在了桌子上。)收集此类敏感信息的网站每天都会冒出不少。
一个问询电话或者简单的网络搜索就能够找到生日和纪念日信息。通过这些信息,可以建立口令攻击列表。而且,很多网站在出售各种个人信息,每人9美元到30美元不等。
了解恶意社会工程人员的思维方式、骗子对信息的反应以及诈骗犯诈骗的方式,人们能够对周边发生的事情更为警觉。
我和一些安全爱好者曾经遍搜互联网,找寻有关社会工程方方面面的故事。这些故事有助于回答一个重要的问题——“随着时间的推移,社会工程在现实中有哪些使用形式?”,从而发现社会工程在社会中的位置以及它的恶意应用方式。
1.2.1 社会工程及其定位
前面说起社会工程可以用于生活的很多方面,但是并非所有的应用都是带有恶意或者会带来伤害性结果的。很多时候,社会工程可以激励一个人采取对自身有益的行动。如何才能做到这一点?
考虑下面的情况。约翰需要减肥,他知道自己身体状况不太好,需要改善。约翰的所有朋友都处于超重状态,甚至觉得超重挺好,并且经常开玩笑说:“不用为体型操心,太棒了!”从另一方面来说,这是一种社会工程,体现为社会认可和共识,你可以通过身边好友的认可获得自我认可。因为约翰的好友都觉得超重没什么,所以他更易于接受这一点。不过,如果这些人中有一个减肥成功,并且没有因此而对其他人品头论足,相反却乐于帮助约翰,那么约翰对体重的看法可能会发生变化,开始认为减肥是可行的,而且还不错。
本质上来说,这就是社会工程。通过上面的例子,你可以清晰地看到社会工程在社会和日常生活中的应用。下面会列出几个社会工程、骗局和操纵的实例,并且分析其成功的原因。
1.419骗局
419骗局又称尼日利亚骗局,已发展成为一种很流行的骗局。可以在www.social-engineer.org/wiki/archives/ConMen/ConMen-Scam-NigerianFee.html找到此骗局的故事和文章。
一般情况下,骗局开始于向目标发送一封邮件(近来是发送一条短信),告诉对方被选中进行一笔很赚钱的交易,但是需要他提供一个小小的帮助。如果目标愿意帮助发信人从一家外国银行提取一大笔钱,那么他也可以分到一部分。一旦目标相信了这件事,并且“愿意帮忙”,就会出现一个问题,而解决这个问题需要目标支付一定的费用。在付出费用之后,另外一个问题又会冒出来,需要支付另一笔费用。每个问题都是“最后一个问题”和“最后一笔费用”,但在几个月之后还会冒出新问题。整个过程中,目标不仅看不到一分钱,而且还会付出1万到5万美元。该骗局的惊人之处在于,过去报道过的骗局,有的采用官方文档、论文、书信抬头甚至面对面的欺骗方式。
最近,此类骗局出现了一种变化,受害者会收到一张真实的支票。诈骗者承诺一大笔钱,谎称自己仅要其中的一小部分。如果目标汇出一小笔钱(例如1万美元),当收到承诺的支票时,他就可以兑现支票,留下其中的差额。有些案件中,受害者汇出了钱,但拿到的支票是假的,当他兑现支票时,会因兑现假支票而被处罚金。
这种骗局相当成功,因为它利用了受害者的贪婪心理。谁不想用1万美元换得100万,哪怕只是10万美元呢?大部分聪明人都会这样做。当这些人收到来自“政府职员”寄来的官方文档、护照、收据时,他们会信心十足地尽最大努力来完成交易。承诺、一致和义务等观念在其中发挥了一定的作用。我会在后续章节中对这些特征进行详细分析,到时你会看到此种骗局如此强大的原因。
2.稀缺的力量
www.social-engineer.org/wiki/archives/Governments/Governments-FoodElectionWeapon.html上的文章讨论的是稀缺的原理。
当人们被告知,其需要或者想要的某样东西的供应量有限,且必须赞同某种观点或行为才能得到的时候,我们称这种情形为稀缺。很多时候根本不明确说明需要人们做什么,而是让他们看到行为“得当”的人得到了奖励。
文章中讲述的是南非利用食品赢得选举的例子。当一些人或某个人不支持“正确”的领导人时,粮食会变得稀缺,工作也会被那些支持者“抢去”。人们发现这个问题时,很快就会转变成支持者。这是一种恶意的、带有伤害性的社会工程,但是其思路值得学习。当人们发现某样物品短缺,并且相信某些行为会导致自己得不到该物品时,他们通常会愿意做任何别的事以得到它。上例里使情况更糟的是,政府拿走一些生活必需品,然后造成“短缺”假象,仅仅提供给支持者——这是一种恶意但很有效的操纵策略。
3.员工窃贼
员工窃取公司信息的现象很普遍,www.social-engineer.org/wiki/archives/DisgruntledEmployees/DisgruntledEmployees-EmployeeTheft.html上发布的统计数据十分惊人,报告指出60%以上的受访员工承认从雇主处带走了各种各样的数据。
很多时候这些数据被卖给竞争对手(例如这个故事中摩根斯坦利员工的所作所为,详见www.social-engineer.org/wiki/archives/DisgruntledEmployees/DisgruntledEmployees-MorganStanley.html);有时员工窃贼会掌握时间点或其他资源信息,在一些案件中,对公司不满的雇员会带来很大破坏。
有一次,我和客户讨论解雇员工的办法,谈到禁用门卡、关闭网络账户以及护送员工离开大楼等等措施。该公司则认为每个人都是“家庭”一员,这些办法并不合适。
不幸的是,在解雇吉姆的时候发生了问题。吉姆是公司的一个高层人员,解雇过程很顺利,吉姆很友好地表示理解。公司做对的一件事是在下班时间解雇他,这样会避免尴尬和干扰他人。在握手之后,吉姆问了一个致命的问题:“我可以再待一小时,清理桌子并从我的计算机中拷走一些个人照片吗?我会在离开的时候将门卡交给保安。”
由于对会谈结果很满意,他们很快就答应了,然后面带微笑地离开了。吉姆回到他的办公室,将所有个人物品放在一个箱子里,从计算机中复制了图片和其他一些数据,然后连接到网络,将11台服务器的重要数据清空(包括会计记录、工资单、发票、订单、历史数据及图片等),也就花了几分钟时间。吉姆按照约定归还了门卡,冷静地离开大楼,没有留下任何可以证明是他发起了这些攻击的证据。
第二天早晨,该客户打电话向我描述吉姆造成的破坏,期待找到解救的方法。他别无他法,只能尽可能取证恢复,并利用两个月之前的备份开始恢复系统。
一个未被检查的不满员工可能比一群虎视眈眈的专业黑客所造成的破坏还要大。据估计,仅仅在美国,由于员工窃贼导致的商业损失就高达150亿美金。
这些故事给我们提出了问题:社会工程人员到底有多少种?他们是否可以分类?
4.黑市和斯普林特大师
2009年,一则故事曝光了一个名为“黑市”的地下组织,“黑市”类似于罪犯的网络拍卖市场。该组织联系紧密,主要用于交易被盗的信用卡号、身份盗用工具及身份伪造工具等物品。
穆拉斯基(J. Keith Mularski)是美国联邦调查局的一名探员,他秘密打入了这个地下组织。一段时间以后,穆拉斯基探员成为了该网站的管理员。尽管该组织有很多人对他心存怀疑,但他还是管理这个网站长达3年之久。
在这段时间里,穆拉斯基必须伪装成恶意黑客,说话、行动与思考的方式必须一致。他伪装成一名恶意垃圾邮件发送者,这方面丰富的知识也是他成功渗透的基础。他的伪装和社会工程技巧之所以大获成功,是因为他使用了不起眼的斯普林特大师(Master Splynter)的身份进入了黑市网站,3年之后整个身份盗用团伙被摧毁了。
3年的社会工程渗透行动让59名罪犯落入法网,阻止了7000多万美元的银行欺诈。这仅是社会工程技巧具有积极作用的一个范例。
1.2.2 社会工程人员的类型
前面说到社会工程有很多不同形式,既可以是恶意的,也可以是善意的,既可以具有激励作用,也可以具有毁灭性。在学习本书的核心内容之前,我们首先简单介绍一下各种形式的社会工程人员。
>>黑客 软件厂商生产的软件的安全性能不断提高,攻击软件因此变得越来越难。由于对于软件和网络的攻击(例如远程入侵)越来越困难,现在黑客开始采用社会工程攻击方式。目前在世界各地,通过利用硬件技术和一些个人技巧,黑客在大大小小的攻击中都会使用社会工程。
>>渗透测试者 因为现实世界的渗透测试者(也称做渗透者)本质上有很强的攻击性,所以此类人员仅次于黑客。真正的渗透测试人员会学习和使用恶意黑客所使用的技巧,帮助确保客户的安全。他们拥有恶意黑客的技巧,但不会利用攻击中所取得的信息获利,也不会伤害目标。
>>间谍 间谍把社会工程当成一种生活方式,他们通常会利用社会工程框架(本章稍后会讨论)的每一方面,可以说是这门学科的专家。世界各地的间谍都会学习“愚弄”人的方法,能够让人相信他就是某人或不是某人。除了学习社会工程技巧之外,间谍还或多或少地了解所渗透的企业或政府,这样才能得到他们的信任。
>>身份窃贼 身份窃贼在当事人不知情的情况下,使用他人的名字、银行账号、地址、生日和社会安全号码等个人信息。这种犯罪的形式多样,包括穿上某种工作服来冒充该行业的人,也包括设置精巧的骗局。身份窃贼也会利用各种社会工程技巧,随着时间的推移,他们会变得更加大胆,对他人的损失更加漠不关心。
>>不满的员工 在员工对公司感到不满之后,他们和雇主的关系常会进入敌对状态。这经常是单方面的情形,因为员工会故意隐藏不满的程度以降低职业风险。但当不满加剧时,他们就可能进行盗窃及破坏等各种犯罪了。
>>高明的骗子 骗子总是利用他人的贪婪等心理,诱发人们“发财致富”的想法。高明的骗子会读心术,通过一些小细节就能确定某人是不是合适的“目标”。他们在造势方面也相当有技巧,让目标认为这是天赐良机。
>>高端猎头 猎头也必须懂得社会工程的技巧,包括诱导和社会工程的心理原则。他们是读懂人们心理和动机的高手。很多时候,猎头不仅需要考虑和迎合求职者的需求,也要全面审视雇主的想法。
>>销售人员 与猎头类似,销售人员也必须掌握很多人际交往的技能。很多经验丰富的销售人员都说,一名出色的销售人员不需要操纵他人,而应该利用自己的技巧发现人们的需求,并且看看自己是否能满足这些需求。销售的艺术包括信息收集、诱导、影响、心理把握以及很多人际交往的技能。
>>政府 虽然政府很少被视为社会工程人员,但是政府会利用社会工程来控制信息的发布并管理人民。很多政府部门利用社会认同、权威性和稀缺资源来确保目标的受控性。这类社会工程并不总是负面的,因为一些政府传递的信息是对人民有利的,而且通过利用一些社会工程因素,这些信息会更有号召力,也更容易被广泛接受。
>>医生、心理医生和律师 从事这些职业的人员似乎与其他社会工程人员不一样,但是他们同样使用上述社会工程人员所采用的方法。他们必须采用诱导、正确的谈话方式和询问策略,以及社会工程的许多(乃至全部)心理原则,来操纵“目标”(客户)采取他们所期望的行动。
不管在哪个领域,你都可以发现社会工程或其某一方面的应用。这也是我坚信社会工程是一门科学的原因。社会工程的各要素相加等于达成的目标。以骗子为例,伪装+操纵+贪婪心理=目标被社会工程套牢。
每一种情况下,困难都在于知道哪些要素会起作用,但是学习每个要素的使用方法就需要技巧了。这是制定社会工程框架的理念基础。正如下一节将讨论的,社会工程框架彻底改变了人们分析社会工程的方式。
1.2.3 社会工程的框架及其使用方法
我根据个人的经验和研究列出了社会工程人员需具备的各个要素。这些要素都很重要,具备所有要素才能成为一名合格的社会工程人员。这些要素并非一成不变。事实上,从建立开始,框架已经有了很大的发展。
这个框架的目的在于为学习这些技巧的人提供足够的信息,它并非每章包含的所有信息的资源参考。例如,第5章中有一部分是关于微表情的,内容源于该领域一些杰出人士的研究和我使用这些信息的经验。这些内容绝不可能替代保罗·艾克曼(Paul Ekman)博士等杰出人士在该领域50年的研究成果。
在通读框架之后,你会发现利用框架中的很多技巧不仅可以提高安全实践水平,而且也可以提高自身安全防护、有效沟通和理解他人的能力。
参考本书目录可大致了解框架,也可以在www.social-engineer.org/framework上查看该框架。框架乍看上去有点难以理解,但本书中对各个课题都进行了分析,你将学会如何应用每个技巧,并不断增强技能。
知识就是力量——诚哉斯言。掌握知识是防御大部分社会工程攻击的最佳手段。即使知识不能提供百分之百的防护,详细了解攻击手法也会让你保持警惕。学习知识不仅可以增强自身技能,而且还可以让你提高警觉。
除了学习,还要动手练习。本书并非仅需阅读一次的手册,而是一本学习指南。你可以根据需要对每节的课题进行学习和练习。框架内容是循序渐进的,因为社会工程攻击也是如此。框架按照社会工程人员在实践中或计划阶段利用技巧的顺序来讨论各个技巧。
框架展现了攻击的要点。在攻击计划完成之后、交付之前,必须要研究、增强和练习相关的技巧。
假设你需要为一家公司策划一次社会工程审计,目的是看你是否能够进入其服务器机房获得其中的数据。
也许攻击计划是伪装成需要进入服务器机房的技术支持人员。那你就需要收集信息,甚至需要进行垃圾搜寻。
由于需要伪装成技术人员,你可以采用隐秘的摄像工具捕捉相关信息,练习技术人员的语言、脸部表情/声音,让你在行动、声音及表情上看起来就是一名技术人员。
如果能找到为客户提供技术支持的公司的名称,也需要收集他们的信息。你的客户通常要谁来提供服务呢?具体联系人的姓名是什么?攻击需要适当地计划。
不过本书并非仅为执行审计工作的人员所写。很多读者想知道攻击是什么,不是为了保护公司,而是为了保护自身。不清楚恶意社会工程人员的思维方式,其结果就是很容易被攻击。
大学中主修安全的学生也在使用这个框架。框架中列出了这些攻击的实现方法,读者可以深入学习。
一般来说,这些信息也可以提高每个人的日常沟通能力。通晓怎样读取面部表情或怎样提问会让他人更加放松并引出正面的回应,可以提高你与家人和朋友沟通的能力。它会帮助你成为一个好的倾听者,让你更加关注他人的感受。
读懂身体语言、面部表情和语调信息也可以增强你的沟通能力。知道怎样保护自己和你爱的人,会提升你的价值,让你对外部世界更加敏感。