1.引言
社会工程学(Social Engineering)是把对物的研究方法全盘运用到对人本身的研究上,并将其变成技术控制的工具。社会工程学是一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段,取得自身利益的方法。
"社会工程学攻击"就是利用人们的心理特征,骗取用户的信任,获取机密信息、系统设置等不公开资料,为黑客攻击和病毒感染创造有利条件。网络安全技术发展到一定程度后,起决定因素的不再是技术问题,而是人和管理。网络安全往往容易被入侵者从内部攻破,而利用社会工程学进行网络攻击,有点像电影或者小说中的"卧底",在获取足够有用的信息后,成功攻破网络。由于安全产品的技术越来越完善,使用这些技术的人,就成为整个环节上最为脆弱的部分,加之人具有贪婪、自私、好奇、信任等心理弱点,因此通过恰当的方法和方式,入侵者完全可以从相关人员那里获取入侵所需信息。一旦掌握了社会工程学理论,可以获取正常的访问权限,再结合一些网络攻击手段,可以很容易的攻破一个网络,而不管系统的软件和硬件的配置有多高。近年来社会工程学攻击已成迅速上升甚至滥用的趋势,在病毒的扩展和传播过程中发挥了巨大的作用。例如QQ尾巴病毒、爱虫蠕虫病毒、MSN病毒以及钓鱼攻击等。
2.社会工程学网络攻击对象
2.1基于计算机或者网络的攻击
社会工程学中基于计算机或者网络的攻击主要依赖于"诱骗"的技术,诱导被攻击的计算机或者网络的个体提供支持信息或者直接信息,而入侵者利用这些信息来进一步的获取访问该网络或计算机的信息。社会工程学基于计算机或者网络攻击对技术要求较高,往往以技术为主,借助获取的有用信息实施攻击。
在这种模型中,有一种叫反社会工程学的攻击方式尤为实用,它建立在已有场景之中,入侵者利用自己的技术创造某一种真实的环境,例如网络故障,访问不了打印机等等,需要网管人员或者系统管理员或者其它授权人员提供技术支持或者解决方案,在解决过程中会掉入入侵者事先设计好的"陷阱",将用户账号和密码等信息泄露出来。入侵者事先进行了很多精心的准备,这种攻击方式极为隐蔽很难察觉,入侵成功的几率极大,安全风险非常高。
2.2基于人的攻击
最简单也是最流行的攻击就是基于人的攻击,计算机和网络都不能脱离人的操作,在网络安全中,人是最薄弱的环节。社会工程学中基于人的攻击主要利用复杂的人际关系来进行欺骗。利用对人的奉承、威胁、权威等心理因素来获取访问网络等信息。任何面对面,一对一的沟通方式都可能被利用;在这种攻击中,入侵者往往从一个地方获取的信息,通过获取的信息再次去获得新的信息,而且其中一些信息还用来验证,表明我是"真的",从而获得被攻击者的信任,套取更多的信息。
3.网络攻击中的手段与方法
社会工程学采取直接观察、身体接触或侧面了解等手段进行信息收集。较典型的就是渗透到目标内部,通过各种方式获取情报,或者在网络上采取多种手段收集信息。从某种意义上讲,犯罪分子作案之前事先进行踩点也是利用社会工程学的一种形式。攻击者利用社会工程学的手段多种多样,总体上分为生活中的社会工程学和网络中的社会工程学,目前社会工程学已经将最新的一些网络技术应用到其中,尤其是结合未公开的应用程序漏洞(0day)进行攻击,在杀毒软件不能对其进行查杀前,攻击效果是100%,危害巨大。
3.1 生活中的社会工程学攻击
生活中的社会工程学主要有以下几种典型的形式。
(1)环境渗透
为了获得所需要的情报或敏感信息,对特定的环境进行渗透是常规手段之一。攻击者大多采取各种手段进入目标内部,然后利用各种便利条件进行观察或窃听,得到自己所需的信息;或者与相关人员进行侧面沟通,逐步取得信任,从而获取情报。
(2)身份伪造
身份伪造是指攻击者利用各种手段隐藏真实身份,以一种目标信任的身份出现来达到获取情报的目的。攻击者大多以能够自由出入目标内部的身份出现,获取情报和信息;或者采取更高明的手段,例如:伪造身份证、ID卡等,在没有专业人士或系统检测的情况下,要识别其真伪是有一定难度的。
(3)冒名电话
冒名电话是一种简单有效的攻击手段,攻击者也不必担当很大的风险。一般情况下,攻击者冒名亲戚、朋友、同学、同事、上司、下属、高级官员、知名人士等通过电话从目标处获取信息。相对来说,冒名上司或高级官员容易一些,因为迫于一种压力,目标就算有所怀疑也不敢加以追究。利用设备转换或者模拟"正常"上司或者其他人的声音来进行电话欺骗其成功率更高。
(4)信件伪造
随着计算机应用的普及,在很多场合动笔写信被计算机所取代,于是信件伪造变得容易起来。例如伪造"中奖"信件,"被授予某某荣誉"信件,伪造"邀请参加大型活动"信件,但都需要交纳相关费用和填写详细的个人信息;或伪造"敲诈勒索"信件骗取钱财或情报等等。
(5)个体配合
个体配合是对信息安全危害较大的一种社会工程学攻击方法,它要求目标内部人员与攻击者达成某种一致,为攻击提供各种便利条件。个人的说服力是一种使某人配合或顺从攻击者意图的有力手段,特别地,当目标的利益与攻击者的利益没有冲突,甚至与攻击者的利益一致时,这种手段就会非常有效。如果目标内部人员已经心存不满甚至有了报复的念头,那么配和就很容易达成,他(她)甚至会成为攻击者的助手,帮助攻击者获得意想不到的情报或数据。
(6)反向社会工程学
反向社会工程学(Reverse Social Engineering)[4]是指攻击者通过技术或者非技术的手段给网络或者计算机应用制造"问题",使其公司员工深信,诱使工作人员或者网络管理人员透露或者泄漏攻击者需要获取的信息。该方法比较隐蔽,很难发现,危害特别大,不容易防范。
3.2 网络中的社会工程学攻击
现代的网络纷繁复杂,病毒、木马、垃圾邮件接踵而至,给网络安全带来了很大的冲击。同时,利用社会工程学的攻击手段日趋成熟,其技术含量也越来越高。下面就一些典型的形式进行分析。
(1)地址欺骗
地址欺骗是指攻击者伪装或伪造各种URL地址、隐藏真实地址,以达到欺骗目标的目的。主要有以下四种形式。
域名欺骗:https://mybank.icbc.com.cn/icbc/perbank/regtip.jsp@www.google.com,这种类型的网址对于经常上网的用户并不陌生,"@"之前的地址只是起到迷惑作用,其实真正的地址指向"www.google.com"。如果把后面的地址更改为带有攻击性或感染病毒的网页就会对用户的数据安全产生危害。
IP地址欺骗:在网络协议中,IP地址能够转化为十进制数字来使用。例如主机"www.google.com"的IP地址是66.102.7.147,采用66×256¬3+102×2562+7×256+147的方式计算得到1113982867,在命令行下输入"ping 1113982867"会发现有数据包回应。如果用十进制数字代替IP地址出现,就会具有很强的迷惑性。
链接文字欺骗:网页中的链接文字并不要求与实际网址相同,点击链接时,首先指向的网站地址是攻击者提供的伪地址,用户在访问攻击者提供的伪地址后再访问实际的网站网址。攻击者可以在用户访问伪地址时进行用户名和密码的劫持等,危害极大。
Unicode编码欺骗:对于Unicode编码,它本身就有一定的漏洞,同时它也给网址的识别带来了麻烦,例如"%20%30"这样的字符是很难识别其真正内容的。
(2)邮件欺骗
邮件欺骗是指攻击者通过发送垃圾邮件说服目标相信某一事件或引诱目标访问某一链接等,或者在替换邮件中的附件为木马程序,或者直接捆绑木马程序到附件中,诱使目标运行,以达到某种不可告人的目的。利用应用程序漏洞捆绑木马程序进行邮件欺骗攻击,隐蔽性强,成功率高,危害性大,而且目前邮件欺骗攻击已经成为网络攻击的主要方式之一。
(3)消息欺骗
消息欺骗是指攻击者利用网络消息发送工具,向目标发送欺骗信息。最典型的就是利用一些IM(Instance Messaging)聊天工具例如QQ、泡泡、MSN等。用户接受到陌生人的消息可能会不予理睬,但如果接收到好友发来的,其信服度就大幅提升了。特别地,当目标正在使用聊天工具时,如果攻击者在某句话后"加入"或者"补充"与当前内容相关的消息,信息接收者看到信息与自己密切相关,无形中放松了警惕,攻击者会以发送文件、文字推荐等多种方式诱使目标访问网站或者执行木马程序,达到攻击的目的。
(4)软件欺骗
软件欺骗是指攻击者将附有恶意代码或病毒的软件发布到网上,一旦用户下载并安装了该软件,隐藏在其中的恶意软件就会发挥作用,由于用户是主动去执行,因此安全危害极高。
(5)窗口欺骗
窗口欺骗,主要是指网页弹出窗口欺骗。攻击者往往利用用户贪婪的心理,给出一个天上掉下来的"馅饼",诱使用户按照攻击者预先指定的方式访问网页或者进行相关操作,达到入侵者预定的攻击目的。
(6)其它欺骗
这里主要介绍两种其它的欺骗,一种是hosts文件欺骗,如果将hosts文件更改为图1所示,会发现进入下面三个网站中的任何一个都会到Google网站去。如果攻击者将其更改为恶意网站,用户的信息就有泄漏的危险。另一种是域欺骗,也就是现在网络上和Phishing攻击齐名的Pharming攻击。这种方式主要是因为域名服务器(DNS)被劫而引起的,网络服务器将域名翻译成IP地址,黑客使DNS感染病毒,改变一个域的具体记录,使一些访问的站点变成IP指定的其它站点。
4.防范措施
国外对社会工程学攻击防范方面有很多研究,也提出了很多防范措施,在防范技术上有着共性,主要是进行安全审核和教育培训[5][6][7][8],但由于国情不同,真正能够按其方法来进行实现不太现实,本文根据我国具体情况,提出了一些建议和防范措施。
4.1 教育培训
"人"是在整个网络安全体系中最薄弱的一个环节,按照木桶理论,网络安全的水平有最低的木块决定的。我国从事专业安全的技术人员不多,很多小型企业的网管等都是半途出家,对安全方面的知识本身懂的不多,加之安全教育以及安全防范措施都需要成本,对于国内企业来讲,注重技术技能的培训,而轻于网络安全方面的培训,只有在接受严重的损失以后,才会意识网络安全的重要性。网络安全的重要意义就在于积极防御,将风险降到最低,网络安全重在意识,只有安全的意识,才能铸就安全的铜墙铁壁。在安全培训上面可以从以下两个方面着手:
(1)网络安全意识的培训。在进行安全培训时要注重社会工程学攻击以及反社会工程学攻击防范的培训,无论是老员工还是新员工都要进行网络安全意识的培训,培养员工的保密意识,增强其责任感。在进行培训时,结合一些身边的案例进行培训,例如QQ账号的盗取等,让普通员工意识到一些简单社会学攻击不但会给自己造成损失,而且还会影响到公司利益。
(2)网络安全技术的培训。虽然目前的网络入侵者很多,但对于有着安全防范意识的个人或者公司网络来说,入侵成功的几率很小。因此对员工要进行一些简单有效的网络安全技术培训,降低网络安全风险。网络安全技术培训主要从系统漏洞补丁、应用程序漏洞补丁、杀毒软件、防火墙、运行可执行应用程序等方面入手,让员工主动进行网络安全的防御。
只有提高了整体的防范意识和水平,在教育培训方面并不需要投入太多的精力就可以在降低网络安全风险方面取得很大的成效。
4.2 安全审核
安全审核工作是社会工程学攻击防范主要手段之一,对在安全教育培训后的有力保障措施。安全审核重在执行,发现一起问题处理一起问题。安全审核一般有以下几个方面。
(1)身份审核
身份审核是指在需要进出的关口核查身份,判断是否应该放行。身份审核一定要认真仔细,层层把关,只有在真正的核实身份之后并进行相关登记后才能给予放行。在某些重要安全部门,还应根据实际情况需要,采取指纹识别、视网膜识别等方式进行身份核定,以确保网络的安全运行。
(2)操作流程审核
操作流程审核要求在操作流程的各个环节进行认真的审查,杜绝违反操作规程的行为。一般情况下,遵守操作流程规范,进行安全操作,能够确保信息安全;但是如果个别人员违规操作就有可能泄漏敏感信息,危害网络安全。
(3)安全列表审核
针对公司的实际情况,做一个安全列表检查单(checklist),定期对公司个人电脑进行安全检查,这些安全检查主要包括计算机的物理安全检查和计算机操作系统安全检查。计算机物理安全是指计算机所处的周围环境或计算机设备能够确保计算机信息不被窃取或泄漏。计算机操作系统安全是指从操作系统层面着手,维护计算机信息安全,计算机操作系统安全的内容比较多,主要从杀毒软件定期升级、操作系统漏洞补丁及时升级、安装防火墙、U盘杀毒、不运行不明程序和禁止打开来历不明的附件等方面进行考虑。
(4)建立完善的安全响应应对措施
应当建立完善的安全响应措施,当员工受到了社会工程学的攻击或其它攻击,或者怀疑受到了社会工程学和反社会工程学的攻击,应当及时报告,相关人员按照安全响应应对措施进行相应的处理,降低安全风险。
4.3注重个人隐私保护
社会工程学攻击中核心的东西就是信息,尤其是个人信息。在网络普通的今天,很多论坛、博客、电子信箱等都包含了个人大量私人信息,这些信息对社会工程学攻击有用的信息主要有生日、年龄、email邮件地址、手机号码、家庭电话号码等,入侵者根据这些信息再次进行信息挖掘,将提高入侵成功的几率。因此在提供注册的地方尽量不使用真实的信息,如果需要提供真实信息的,需要查看这些网站是否提供了对个人隐私信息的保护,是否采取了一些安全措施。对于提供论坛等需要用户注册服务的公司需要从保护个人隐私的角度出发,从程序上采取一些安全措施保护个人信息资料不被泄露。
5.结论
表面上,社会工程学看似只是简单的欺骗,但是在网络安全中,它的攻击效果往往是最显著的。究其原因是它包含了极其复杂的心理学因素,所以危害性比其它入侵更加难以防范。只要我们时刻提醒自己攻击随时有可能在身边发生,全面了解社会工程学的攻击方法或手段,具备一定的安全防范知识和防范措施,在面对社会工程学攻击的时候就能识别其真面目,处于主动地位,将攻击的风险性降至最低。