SWIFT银行结算系统攻击事件分析与防护方案

近期,SWIFT的转账交易系统频繁遭到网络安全威胁引起了全球网络安全界和金融界人士的高度关注。

1

互联网上已经有安全组织获取了相关攻击的样本和系统数据,通过分析,初步判定此类事件与2014年索尼影业娱乐公司好莱坞制片厂被黑事件的参与者Lazarus(黑客组织)有所关联。

2

针对这些攻击事件,SWIFT与2015年5月27日宣布了新的客户方案,以加强针对网络威胁的安全防护。

  • 全球范围内信息共享,实现客户事件的快速反馈,提升网络防护能力。
  • 提升SWIFT相关工具的安全性。
  • 提供审计框架,制定相关的审计标准和认证程序,在客户现场进行安全管理。
  • 增加针对支付模式的安全监控。
  • 加强第三方供应商的安全支持。

什么是SWIFT?

SWIFT即环球银行金融电信协会(Society for Worldwide Interbank Financial Telecommunications),是一个国际银行间非盈利的国际合作组织, 提供与全球 200 多个国家/地区的 10,800 多家银行机构、证券机构和企业客户连接的通信平台、产品和服务。SWIFT 使其用户能够安全可靠地交换自动化、标准化金融信息,从而降低成本及运行风险,并消除操作低效问题。SWIFT 将金融业界带到一起,共同协作来制定市场惯例、定义标准,并讨论彼此共同关注的问题。

1973年5月,来自美国、加拿大和欧洲15个国家的239家银行宣布成立SWIFT,总部位于比利时首都布鲁塞尔。目前中国也是其会员国,国内加入该组织的银行为中国银行、中国工商银行、中国农业银行、中国建设银行、中国交通银行等。

SWIFT官方网址:https://www.swift.com/。

样本信息

本次样本为黑客攻击孟加拉央行窃取了8100玩美元的恶意程序。

3

执行概要

恶意样本将自身注册为服务,在SWIFT的软件套件下运行,对Oracle数据库进行了相关的操作,进行资金窃取。
样本的主要功能包括:

  • 注册服务,样本以服务的形式执行。服务名:evtsys.exe
  • 更改liboradb.dll文件中的2个字节数据,修改该文件代码执行流程;
  • 文件操作,访问银行交易流水的LOG文件,获取交易的关键字段,作为数据库操作的参数;解密gpca.dat配置文件,获取恶意软件执行需要的环境、C&C Server等信息;
  • 网络行为,使用GET向C&C Server发送请求;
  • 数据库操作,获取Login/Logout信息,UPDATA账户金额。
  • 打印机操作。

4

5

样本结构

该样本是一个复合型样本,包含多个文件,目前所获取的文件为执行关键功能的PE文件。

6

行为分析

注册服务项

根据表中参数,其中参数为-svc时,执行此样本的关键功能,其代码如图4所示,其中包含网络行为、修改dll文件行为、数据库处理、文件操作等关键行为,其代码如图所示。

7

8

修改dll文件行为

样本文件在执行过程中,列出所有包含liboradb.dll文件的进程(其中liboradb.dll为oracle数据库提供的dll文件),并对dll文件的偏移位置0x6A8B6的2byte进行更改,从而成功绕过数据库中的验证,其执行流程如图8所示。对应的修改dll文件2byte的代码片段如图9、图10所示。

9

10

11

文件操作

根据表1中参数,其中参数为-t/-i/-u相关参数时,执行解密文件、移动文件等相关操作,其中具体的代码如图9所示。其中样本配置文件为gpca.dat,包含CC服务器及执行环境等关键内容,其解密代码如图12所示。

操作文件列表,图12:

12

当操作余额时,会从上述列表中标黄的文件夹/文件下搜索文件中包含的关键字段,从而辅助后续的数据库相关操作。

搜索的关键字段,图13:

13

图14 文件与数据库相关的参数

14

图15 gpca.dat文件操作

15

网络连接行为

样本执行过程中,若使用参数-t或者执行其他功能(如在后文所说的数据库操作相关行为中,发送监控到的login/logout行为)时会向CC服务器发送GET请求,其中发送的请求格式为:

[C&C_server]/%s?%s
示例:[C&C_server]/al?---O(某用户login成功)

16

其具体的代码如图16所示。

数据库相关操作

恶意软件启动后,其中注册的服务还包含数据库更改相关操作,其中它获取了SWIFT信用证(‘BBHOBDDH’)持续性的监控日志记录,查看其中的登录/登出信息,若获取到登录失败的日志信息,暂停5s并继续查找,若获取登录成功信息,则连接远程CC主机发送请求。图12和图13显示了通过数据库监控login/logout的代码片段。图14显示了执行SQL语句,对转账后的信息进程更新的代码片段。

17

图17 持续监控登陆信息

18

图18 查找数据库中logout信息

19

图19 更新账户金额

其中,图19中的select语句中的%s所表示的字符串为查找IN/OUT文件夹下的非.prc和.fal文件中所包含的关键字段的结果,其中关键字段包括(代码如图所示):

"FIN 900 Confirmation of Debit"
"20: Transaction"
"Sender :"
[其他关键字段包含在gpca.dat文件中]

图20 关键字段

20

样本使用以下关键SQL语句对央行数据库进行转账操作:

SELECT MESG_S_UMID FROM SAAOWNER.MESG_%s WHERE MESG_SENDER_SWIFT_ADDRESS LIKE '%%%s%%' AND MESG_FIN_CCY_AMOUNTLIKE '%%%s%%';
SELECT MESG_FIN_CCY_AMOUNT FROM SAAOWNER.MESG_%s WHERE MESG_S_UMID = '%s';
UPDATE SAAOWNER.MESG_%s SET MESG_FIN_CCY_AMOUNT = '%s' WHERE MESG_S_UMID = '%s';
UPDATE SAAOWNER.TEXT_%s SET TEXT_DATA_BLOCK = UTL_RAW.CAST_TO_VARCHAR2('%s') WHERE TEXT_S_UMID = '%s';

打印机行为

根据表中参数,其中参数为-p相关参数时,执行打印机相关的操作,包括暂停、恢复、连接打印机、断开打印机、枚举打印机任务等行为,具体代码如图20所示。其中queue功能枚举打印任务并打印,部分代码如图21所示。

21

图21 打印机操作

22

图22 queue功能中包含的枚举打印机进程并打印相关代码

防护方案

  • 绿盟科技检测服务

1) 绿盟科技工程师前往客户现场检测。
2) 绿盟科技在线云检测,登陆绿盟科技云,申请极光自助扫描服务试用。 https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?pid=0&sid=0

  • 绿盟科技木马专杀解决方案

1) 短期服务:绿盟科技工程师现场木马后门清理服务(人工服务+IPS+TAC)。确保第一时间消除网络内相关风险点,控制事件影响范围,提供事件分析报告。
2) 中期服务:提供3-6个月的风险监控与巡检服务(IPS+TAC+人工服务)。根除风险,确保事件不复发。
3) 长期服务:基金行业业务风险解决方案(威胁情报+攻击溯源+专业安全服务)

关于绿盟科技

北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。

基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。

如果您需要了解更多内容,可以
加入QQ群:486207500、570982169
直接询问:010-68438880-8669

Spread the word. Share this post!

Meet The Author

Leave Comment