探索中国CIO人才现状 | 第四季调研报告
APT攻击案例分析:看黑客如何绕过分层安全
2015-10-13  来源:techtarget

网络犯罪正想方设法绕过分层的安全防御。企业需要理解防御这些攻击及如何保护自己。然而,总有一些造成严重恶果的安全损害在提醒我们:必须重视攻击发生的细节是如何发生的,以便于防患于未然。

通过调查这些攻击的发生机理,提供应用安全配置和修复安全损害的方法,企业就能够更有效地挫败APT攻击。在本案例中,我们根据真实的攻击事件复原了一个攻击案例,其目标是攻击和破坏大型企业,并且高效地使用了一些可以危害当今许多公司的方法。

在本案中,我们根据已知的公开信息重新构建攻击过程。这些攻击过程的细节是虚构的,但其中的攻击技术却是真实的。

本攻击案例包括了四个步骤,详细描述了攻击的实施过程。该攻击案例演示了被窃的SSL私钥和证书如何使网络罪犯执行有效的钓鱼活动,并且保证不被发现。该攻击导致了大量的服务器和成千上万的客户记录无法访问。

每种攻击情形都是在模拟环境中进行的,但这些环境模拟了真实的企业级的安全控制、服务器、网络连接设备,并代表了典型的企业环境。虽然现实世界中并非所有细节都能公布于众,但安全渗透测试的工程师们根据典型企业配置重新构建了攻击环境和情形。

本文虚构了一个黑客组织Cashacker。通过利用由私钥建立的信任,该攻击案例将演示毫无戒心的客户如何轻松地拱手交出其用户名和口令。

在本案例中,受到攻击的公司名为CrystalBank,其使用支持SSL的域名(crystalonline.com)从事网上银行业务。该公司也与第三方合作,由对方托管应用和系统,或者提供服务。在此过程中,使用证书是一种安全的实践,但是,如果SSL私钥落于贼手,则一切将彻底改变。

攻击案例 关于Cashacker黑客组织

该黑客组织重点攻击金融行业以及与其有关的一切行业。用户凭据、信用卡、比特币等都是该组织的最爱。然而,该组织也开始窃取在地下的黑客市场中价格高昂的密钥和证书。Cashacker使用Deep Web(深网)联系非法产品和服务的购买者和卖家。

Cashacker的许多网上店铺曾为其带来巨额利润。但是,随着企业越来越多地实施分层安全控制,Cashacker发现越来越难以获得非法产品和服务。

而我们的故事就要由该组织的一个成员从黑市购买一家大型金融机构的合法SSL私钥开始,其企图是使用此私钥绕过安全控制,并由此攫取失窃的证书进行销售,以获得巨额的投资回报。

获取私钥

通过证书及其相关的私钥,网络罪犯就可以隐藏在加密的通信中,欺骗网站、部署恶意软件并窃取数据。在本案例中,一家著名银行CrystalBank的私钥被发到了AlphaBay这个深网站点上,进入黑市拍卖活动。Cashacker以前曾经攻入过该银行,但如今已经没有数字证书或其它访问途径,所以它需要新的进入方法。CrystalBank有非常强健的安全措施,所以出现这样的好机会是不常见的。

一个通配符私钥是如何被用于买卖的?一种可能的情况是,企业的雇员复制了密钥并将其粘贴到AlphaBay进行销售。然而,一个更常见的方法是恶意软件,它可以窃取包括密钥和证书在内的凭据。例如,Zeus特洛伊木马家族就有7万多个变种,可以窃取密钥和证书用于将来的网络犯罪活动。

Cashacker为了购买这个私钥花了大价钱,但其相信这个新的密钥连同以前攻击的服务器会带来巨大利益。该黑客组织认为,虽然需要花费些许努力,但凭借其技能和经验,他们认为,钓鱼是利用已有资源快速获得真实凭据的最佳方法。

获取DNS访问

Cashacker团队计划构建一个可以精确地模拟真实网站(donations.CrystalBankonline.com)的钓鱼网站。真实网站被用于从CrystalBank的客户和雇员引进抽奖。黑客知道改变生产或真实网站是有风险的。如果生产或真实的系统被修改,安全软件极有可能检测到这些变化。所以,Cashacker决定模仿网站,希望这个钓鱼网站能够长时间不被看成是非法网站,而其钓鱼攻击也就能够更长时间地保持。

为了高效将SSL证书用于钓鱼攻击,终端用户绝对不能在浏览器中看到任何错误消息。这意味着域名必须匹配证书所指示的域名,从而避免证书的错误消息。通常,这是一个很难克服的困难,因为这要求攻击者既要控制DNS又要控制SSL私钥。

由于Cashacker是一个很大的黑客组织,它可以访问来自全球的许多重要企业的系统,它通过使用僵尸网络查找系统漏洞以实施控制。Cashacker重视金融企业,所以它在这些僵尸网络上定制的脚本都是针对类似CrystalBank之类的企业,其使用的就是在以前的攻击过程中获得的数据。这个僵尸网络返回了许多系统的凭据,而且,使Cashacker颇感欣慰的是,CrystalBank的托管合作伙伴的DNS服务器就是这些系统之一。

在购买私钥之前,Cashacker通过SSH蛮力攻击,利用其一个僵尸网络获得了管理员的用户名和一个账号的口令,“supercharlie”,这个特别的账号并不是超级用户,也没有提供根的访问,但是这个账户的获得使黑客组织Cashacker离访问目标更近了。

Cashacker利用supercharlie这个账户,构建了一个用以捕获真实用户凭据的钓鱼系统。访问CrystalBank的一个很重要的DNS服务器,是该黑客组织的第二步,当然还要利用为实施钓鱼攻击而获得的私钥。但为修改DNS的区域文件仍需要root访问。

通过快速搜索存储在supercharlie主目录树中的文件,黑客发现了一个拥有完整的系统备份的原码档案。系统的备份文件包含SSH私钥用于进行root访问,有可能用于将文件从远程服务器发送到系统。利用这个SSH私钥进行root访问,Cashacker就能够将一个DNS登记项插入到系统区域文件中,并且重新加载DNS配置。

Donation.CrystalBankonline.com是Cashacker打算进行钓鱼攻击实施欺诈的目标网站。黑客们创建了一个极类似的名称,donate.CrystalBankonline.com,从而使普通用户很难注意到合法网站和钓鱼网站之间的区别。

为创建一个可以收集数据的系统,Cashacker使用了一个以前“黑掉”的附近的一所大学的服务器IP地址。Cashacker拥有大量的类似系统,并且可以确保这些系统不被关闭或检测到。这个特别的系统已经有近半年没有遭到攻击了,Cashacker甚至已经给此系统打了补丁,保证其它黑客无法访问。而位于大学的IP地址还意味着它有足够的带宽可以模拟银行客户已经习惯的终端用户体验,并且保证受害者浑然不觉。

插入IP地址仅仅对生产DNS系统进行了更改,留下了极少的痕迹,从而可以避免被检测到。但为发动钓鱼攻击还需要做许多。

构建钓鱼网站

在部署好关键的底层组件后,为冒充真正“可信”的CrystalBank公司,下一步就是要创建一个可信任的网站,使受害者可以提供其凭据。

黑客使用Cashacker以前增加的DNS登记项,将新的冒牌网站与donate.CrystalBankonline.com绑定。使用社交工程工具,Cashacker能够快速地克隆这个网站,而且该网站是真正产生网站的一个直接克隆。

为确保终端用户信任虚假网站,黑客们还使用了盗窃的SSL证书。这就使得冒牌网站在用户的浏览器上显示一个合法证书,从而清除了证书的错误消息。有了合法的证书和域名,还有一个网站上可用的SSL,即使精明的用户也没有理由认为他们访问的网站是一个虚假网站。在盗取了SSL密钥后,黑客们就可以使一切看起来是合法而安全的。

引诱受害者

在搭建好上述系统并进行测试后,黑客们就会向其收集的CrystalBank客户和雇员发送电子邮件,其数量巨大。这些邮件地址来自简单的百度、谷歌搜索。普通大众的电子邮件地址也位列其中,因为许多人是都是CrystalBank的客户,或者了解该企业的品牌和信誉。Kanbcash团队知道自己将会收获大量的银行登录凭据,并将其用于未来的攻击,或者在网上销售。

在终端用户在钓鱼网站上输入了用户名和口令的组合后,钓鱼网站就会记录这些信息。然后该网站会通过中间人的方法将终端用户重新定位到真正的抽奖网站,并且通过复制所捕获的登录凭据进行记录,企图继续欺骗终端用户,使其相信自己正在合法网站上。Cashacker希望逃避遭到怀疑,因为如果受害者给IT打电话求助就会增加其钓鱼网站被发现的风险。将终端用户交给真实的网站可以使抽奖顺利进行,而用户仍蒙在鼓里。

这种攻击对Cashacker来说简直是妙极了。CrystalBank的客户和雇员被钓鱼网站诱惑,并且不知不觉就泄露了其登录凭据。这些凭据会实时地显示给Cashacker黑客,并且被记录在一个文件中。通过中间人的方法,利用重新定向可以使每一个表单字段都可见,而不仅仅是用户名和口令,还包括电子邮件地址、手机号码,以及利用表单收集的任何其它信息。

事实证明,很多人会再次使用其用户名和口令,即使系统管理员也是如此。因而,一个远程工作的CrystalBank员工很快就使用自己的凭据访问了抽奖网站。这些从钓鱼网站捕获的凭据使得Cashacker团队可以远程访问CrystalBank的网络甚至其它系统。Cashacker还能够利用从钓鱼网站收集的信息执行更有针对性的鱼叉式网络钓鱼活动。因为几乎任何人都有可能被这种伎俩欺骗:它使用了真实的用户名、电子邮件及用户在抽奖网站上留下的个人信息。

通过利用凭据、特权提升、持续不断的渗透和攻击,Cashacker几乎可以访问CrystalBank的多达一百台服务器。在此过程中,Cashacker从CrystalBank的服务器上下载了一个包含成千上万行客户记录的数据库。这些记录的内容仅限于姓名、地址、电子邮件地址、电话号码等。但是,这些信息仅仅是Cashacker需要执行鱼叉式网络钓鱼攻击从而捕获更多账号信息的重要依据。

灾后的CrystalBank

CrystalBank最初被告知发生损害是在有人发现秘密黑市将销售其大量的客户记录。这立即导致了公司进行全面调查。在查看了大量的系统日志并在其安全团队访问了钓鱼邮件的副本后,公司安全团队重新追踪相关步骤和措施。安全团队发现了正在使用其证书和密钥的一个网站,并且还发现了DNS的篡改,而且其合作伙伴已经执行了DNS的所谓变更。

在通过全面安装和搭建服务器而修正受危害的系统后,安全团队还补救了有可能被攻击者访问的其它系统,最后CrystalBank重新联网。但是,由于Cashacker的攻击,消费者对CrystalBank的信心受到沉重打击。业务及品牌的破坏如此巨大,损失难以衡量。很明显,公司的领导层需要立即采取措施提升安全水平。

虽然我们的案例描述了一次成功的钓鱼攻击,其中还有一个包含大量客户记录的数据库被窃,其实,几乎任何类型的数据都有可能被窃取。在丢失私钥后,几乎任何系统都有可能发生危害。私钥是加密敏感的客户信息和向终端用户提供信任的基石。因此,SSL密钥和证书不仅需要加以保护以防止失窃,还要对其进行持续的监视,以防止误用或滥用。由此,最安全的环境也会遭受破坏。

为解决证书的滥用问题,企业需要一种权威性的密钥和证书的情报服务,根据证书的信誉来确认欺诈的或异常的密钥和证书使用。

借助企业范围内和互联网中关于密钥和证书的实时情报,企业可以检测与本案例类似的证书被误用的问题。企业可以利用列在黑名单中的欺诈证书和非法证书来快速地修复问题。

总结

从本案例可以看出,传统的安全防御已经远远不够。当今的企业拥有大量的密钥和用于SSL/TLS、无线网络、移动、VPN访问的证书。企业需要一种方法来管理密钥和数字证书,并且对误用情况进行监督和警告。企业需要一种方案来确认什么是可信的,哪些是不可信的和危险的。但从本案例可以看出,用传统的工具很难判定数字证书是否被误用。科学有效的方案应当能够确认哪些证书和密钥是可信的并加以保护,并修复或阻止不可信任的密钥和证书。而且,这种方案还应当能够在运行过程中不断地学习和适应,确定受信任的和需要替换的密钥和证书。

科学有效的方案可以使用云服务不断地扫描企业域名的所有SSL使用,能够防止企业的证书被误用。这种方案最好能够利用一种简单界面就可以配置企业的域名,从而可以扫描企业在线品牌的所有使用。在配置完成后,该方案还应提供一个证书面板,快速地显示企业的证书的健康状态。