【轉載】關於近期曝光的針對銀行SWIFT系統攻擊事件綜合分析

文 360追日團隊,由安全客原創發布

原文地址:bobao.360.cn/learning/d

一、概述

  2016年2月孟加拉國央行被黑客攻擊導致8100萬美元被竊取的事件被曝光後,如越南先鋒銀行、厄瓜多銀行等,針對銀行SWIFT系統的其他網路攻擊事件逐一被公開。在相關事件曝光後,我們立即對相關攻擊事件的展示溯源分析,就越南先鋒銀行相關攻擊樣本,我們形成了技術報告:《SWIFT之殤——針對越南先鋒銀行的黑客攻擊技術初探》。

  在分析孟加拉國央行和越南先鋒銀行攻擊事件期間,我們發現近期曝光的這4起針對銀行的攻擊事件並非孤立的,而很有可能是由一個組織或多個組織協同發動的不同攻擊行動。另外通過對惡意代碼同源性分析,我們可以確定本次針對孟加拉國央行和越南先鋒銀行的相關惡意代碼與Lazarus組織(APT-C-26)有關聯,但我們不確定幕後的攻擊組織是Lazarus組織(APT-C-26)。

  另外攻擊組織對目標銀行作業流程極為熟悉,也就並非短期內所能達到的,我們推測在偵查跟蹤環節,攻擊者應該針對目標進行了長時間且非常專註的持續性分析。

在對相關攻擊事件的分析和剖析過程中,也暴露出諸多銀行等金融行業本身的安全問題。如這一系列攻擊事件要想達到金錢竊取,前提就需要獲得銀行本身SWIFT操作許可權,而要獲得相關許可權則首先需要將銀行自身網路攻陷。

  近年來,針對銀行、證券等金融行業的APT攻擊不斷出現,儘管目前披露的還只是以境外銀行業發生的安全事件為主,但是網路攻擊本就是跨國界的,這對於國內銀行業的安全防護也敲響了警鐘。在過去的安全實踐中,我們不止一次發現了國內金融行業曾遭受到了APT攻擊,安全態勢並不是天下太平;再結合之前安天移動發布的《針對移動銀行和金融支付的持續黑產行動披露——DarkMobileBank跟蹤分析報告》中所披露的地下黑產針對金融行業最終用戶的攻擊現狀,我們確實有必要 重新審視國內金融行業所面臨的安全風險,以及在過去的安全規劃與建設基礎上創新思路,以應對不斷出現的新興威脅。

二、孟加拉央行攻擊事件回顧

1、背景

  2016年2月5日,孟加拉國央行(Bangladesh Central Bank)被黑客攻擊導致8100萬美元被竊取,攻擊者通過網路攻擊或者其他方式獲得了孟加拉國央行SWIFT系統操作許可權,進一步攻擊者向紐約聯邦儲備銀行(Federal Reserve Bank of New York)發送虛假的SWIFT轉賬指令,孟加拉國央行在紐約聯邦儲備銀行上設有代理帳戶。紐約聯邦儲備銀行總共收到35筆,總價值9.51億美元的轉賬要求,其中30筆被拒絕,另外5筆總價值1.01億美元的交易被通過。進一步其中2000萬美元因為拼寫錯誤(Foundation誤寫為fandation)被中間行發覺而被找回,而另外8100萬美元則被成功轉走盜取。

而我們捕獲到的這次網路攻擊中所使用的惡意代碼,其功能是篡改SWIFT報文和刪除相關數據信息以掩飾其非法轉賬的痕迹,其中攻擊者通過修改SWIFT的Alliance Access客戶端軟體的數據有效性驗證指令,繞過相關驗證。

2、攻擊流程

圖 1 evtdiag.exe執行流程

  • 步驟1:惡意代碼檢測是否有進程載入了「liboradb.dll」模塊,進一步修改數據有效性驗證指令,繞過驗證;

  • 步驟2:讀取「gpca.dat」配置文件,其中包括了transord、日期、C&C等攻擊者預設的關鍵信息;

  • 步驟3:「2016年2月5日」是樣本在滿足其他特定條件後,執行報文篡改操作的觸發時間;

  • 步驟4:MT900報文篡改,操作印表機,並選擇性修改資料庫;

  • 步驟5:樣本執行篡改報文操作時,查詢被感染計算機的相關「登錄/註銷」狀態,將相關信息回傳C&C伺服器;

  • 步驟6:監控執行持續到2016年2月6日6:00,之後退出並刪除自身的日誌、數據以及註冊的服務。

表 1 evtdiag.exe相關參數

表 2 gpca.dat配置文件內容

3、篡改MT900報文

  《SWIFT之殤——針對越南先鋒銀行的黑客攻擊技術初探》中「二、 關於SWIFT」,詳細介紹了SWIFT。MT900是SWIFT MT十大類報文中其中第9類的一種,關於MT900報文的格式,下面有詳細介紹,這樣有助於理解後門具體篡改細節。

  1) MT900借記證實

  MT900範圍

  這是由帳戶行發給開戶行,用來通知開戶行某筆款項已借記其所開帳戶的報文格式。該借記將在對帳單中被進一步證實。如果帳戶行經常發送該帳戶的對帳單,那麼就不會定期發送此報文。

  該報文不能用於記帳,它只是向收報行(即開戶行)證實這一筆借記。

  MT900域詳述

  • 域20:發報行的編號 

  • 域21:有關業務編號

    列明引起這筆借記的業務編號。如:MT100中域「20」中的編號。 

  • 域25:帳號 

    列明已被借記的帳戶號碼。 

  • 域32A:起息日、貨幣、金額 

    列明借記的起息日、貨幣和金額。 

  • 域52a:指示行 

    列明指示發報行借記該帳戶的銀行。如果該銀行是收報行以外的銀行,那麼報文使用該域列明指示行。 

  • 域72:附言

    該域只能填寫有關說明,不能出現任何指示。

  2) 具體篡改流程

圖 2相關被篡改文件和配置文件關係圖

  獲取nfzp/nfzf下所有"%d_%d"報文,並且根據MSG_TRN_REF是否已經在配置紀錄當中進行分類,同時獲取"%d_1"中的"60F"和"Sender"。

  註:以下表3和表4是MT900報文中具體需要修改的項,具體修改操作細節暫不公開

表 3被篡改的MT900相關內容1

  此處操作的執行條件為:上張報文中的"Sender"為"FEDERAL RESERVE BANK"。foff下會更新資料庫,fofp時不會跟新資料庫

  打開foff/fofp目錄下的第一個含有"-"的報文。更該賬單中的19A和90B,在賬單中,19A和90B應該只有一項。

表 4被篡改的MT900相關內容2

4、liboradb.dll分析

  本次事件中攻擊者通過修改SWIFT的Alliance Access客戶端軟體中數據有效性驗證指令,繞過相關驗證,而導致相關問題的文件就是liboradb.dll。

  liboradb.dll 基於OCI編程開發,作為SWIFT alliance核心組件,為程序提供Oracle資料庫交互操作介面,其中包含許可權驗證功能。此dll被SWIFT資料庫服務進程調用,作為連接Oracle資料庫的介面。

  OCI 介紹:OCI(Oracle Call Interface,即0racle調用層介面)是Oracle公司提供的由頭文件和庫函數等組成的一個訪問Oracle資料庫的應用程序編程介面(application programming interface API),它允許開發人員在第三代編程語言(包括C, C++, COBOL 與 FORTRAN)中通過SQL(Structure Query Language)來操縱Oracle資料庫,而且OCI在一定程度上支持第三代編程語言(諸如C, C++, COBOL 與 FORTRAN)的數據類型、語法等等。

三、相關攻擊事件綜合分析

1、SWIFT官方預警或申明

  2016年5月9日,環球銀行金融電信協會(SWIFT)發表聲明表示 ,SWIFT拒絕由孟加拉國銀行和孟加拉國警方的刑事調查部門(CID)官員提出的虛假指控,SWIFT對孟加拉銀行劫案不負有任何責任,孟加拉銀行有責任維護其銀行系統環境的安全。

  2016年5月10日,孟加拉國央行的新掌門人、紐約聯邦儲備銀行和SWIFT官員在瑞士巴塞爾會晤討論。在一份簡短的聯合聲明中,雙方表示,他們致力於追回被竊資金,將肇事者繩之以法,並協同工作來「標準化操作」。

  2016年5月13日,SWIFT協會發布的一份報告 中稱,已有第二家銀行報告遭到網路攻擊,這起攻擊與孟加拉國央行在紐約聯邦儲備銀行的賬戶被竊8100萬美元的網路攻擊類似,具體損失情況未知。並強調稱,針對孟加拉國央行的惡意軟體,對SWIFT的網路或核心信息交互系統沒有影響,該惡意軟體只能在黑客已經成功發現並利用當地(銀行)系統網路安全隱患之後才能被植入。就此,SWIFT已經研發出相應設備,幫助客戶提升網路安全、找准當地資料庫記錄有出入之處。

  2016年5月24日,在布魯塞爾歐洲金融服務第十四屆年度會議上,SWIFT首席執行官Gottfried Leibbrandt表示 ,SWIFT將提升其網路系統安全性,採取包括對銀行管理軟體提出更嚴格的安全要求,管控支付方式和第三方機構認證等措施。他重申,攻擊並未對SWIFT的網路或核心信息交互系統造成影響,並透露將會啟動一個新項目,旨在維護全球金融體系安全。

  2016年5月27日,SWIFT協會宣稱啟動新的客戶項目,針對日益猖獗的網路威脅,保護全球金融體系的財產安全。該項目分為5個戰略舉措 ,包括提高國際機構之間信息共享、增強客戶的SWIFT相關工具、加強指導,提供審計的框架、支持增加事務模式檢測、加強支持第三方提供者。

2、戰術:瞄準SWIFT系統

  1) 針對銀行系統的一系列攻擊事件

  2016年-孟加拉國央行(Bangladesh Central Bank)

  在本報告第二部分內容詳細介紹了攻擊流程和篡改MT900報文的細節,在這裡不進一步佔據,具體內容請參看:「二、孟加拉央行攻擊事件回顧」。

  2015年-越南先鋒銀行(Tien Phong Bank)

圖 3整體關係流程

  針對越南先鋒銀行的攻擊中,相關惡意代碼內置了8家銀行的SWIFT CODE,越南銀行均在這些銀行中設有代理帳戶。目前看到的Fake PDF Reader樣本目的不是攻擊列表中的這些銀行,而是用來刪除越南銀行與其他家銀行間的轉帳確認(篡改MT950對帳單)。這樣銀行的監測系統就不會發現這種不當交易了。

  關於針對越南先鋒銀行的攻擊,可以參看我們之前發布的報告:《SWIFT之殤——針對越南先鋒銀行的黑客攻擊技術初探》 。

  2015年-厄瓜多銀行(Banco del Austro)

  據路透社報道,2015年1月12號,在一條來自厄瓜多Banco del Austro(DBA)銀行系統信息的指引下,位於舊金山的Wells Forga向香港的銀行賬戶進行了轉賬。並且在接連10天內,至少有12筆的BDA銀行資金通過SWIFT系統被轉走,總金額高達1200萬美金。BDA已就該事件將Wells Frago向紐約法庭提起了訴訟,理由是Wells Forgo美國銀行本應該將這些交易標記為可疑交易,然而從訴訟資料看,雙方銀行都相信這些資金是被匿名黑客盜走的。

  另外,SWIFT方面的負責人在案件被報道之前卻對此毫不知情。相關人士稱,SWIFT確實會核驗系統發送信息中的密碼來確保信息來自銀行用戶的終端設備。但是一旦網路盜竊者獲取了密碼和證書,SWIFT就無法判斷操作者是不是真正的賬戶持有人了。而黑客正式鑽了這個空子,盜取了一名銀行僱員的SWIFT證書,金額盜走了巨額資金。

  2013年-索納莉銀行(Sonali Bank)

  據路透社報道,2013年孟加拉國的索納莉銀行(Sonali Bank)也發生了類似孟加拉央行的攻擊事件,在索納莉事件中,攻擊者盜取了25萬美金的銀行資金。銀行IT運營部的高級官員稱,在索納莉銀行劫案中,黑客們在一台電腦上安裝keylogger來竊取其他系統的密碼,然後使用SWIFT系統發送偽造的轉賬申請。

  2)、相似的攻擊戰術

圖 4關於針對4家銀行的攻擊流程

  通過分析從2013年的索納莉到2016年的孟加拉國央行這4個攻擊銀行的事件,結合上圖,不難看出相關攻擊事件之間有很多的相似性。

從攻擊戰術或攻擊流程進行分析,其中主要環節是獲得SWIFT、利用SWIFT發送轉賬指令和最終清除證據掩蓋事實這三個部分。

  第一,獲得目標銀行SWIFT許可權:首先需要獲得目標銀行的SWIFT系統操作許可權,索納莉銀行和厄瓜多銀行從相關報道來看,均是通過網路攻擊來獲得了相關許可權。據有關報道稱索納莉銀行SWIFT相關登錄帳號和密碼是被植入的惡意代碼所監控竊取,而厄瓜多也是類似登錄驗證憑證被竊取,由此我們可以得到一個信息,就是攻擊者要獲得SWIFT操作許可權,並不需要進行物理接觸,完全通過網路即可完成。而目前尚未有報道明確指出孟加拉國央行的SWIFT系統許可權是通過網路攻擊獲得,但相關調查孟加拉央行事件的研究人員表示應該是黑客利用網路攻擊獲得了相關登錄憑證。而越南先鋒銀行本身沒有被攻擊,問題出在其第三方服務商(提供SWIFT服務),但目前不清楚是否是通過網路進行攻擊獲得相關SWIFT操作許可權的,先鋒銀行之後表示要改為直接連接SWIFT系統。

  第二,向其他銀行發送轉賬指令(代理帳戶):攻擊者在獲得SWIFT許可權之後,最核心的目的就是要利用SWIFT發送轉賬指令,我們推測應該是SWIFT MT報文中第一類報文,如MT103(單筆客戶匯款)。除索納莉銀行以外,我們發現攻擊者均向存在目標銀行代理帳戶的銀行發送轉賬指令,如美國國富銀行設有厄瓜多銀行的代理帳戶、大華銀行等其他7家銀行設有越南先鋒銀行的代理帳戶和紐約聯邦儲備銀行設有孟加拉國央行的代理帳戶。通俗來講也就是孟加拉國央行等這幾個目標銀行存在其他銀行上的錢被冒名轉走了。

  第三,篡改MT9XX報文清除證據:由於暫未捕獲到針對索納莉和厄瓜多銀行進行攻擊的惡意代碼,所以我們無法知道是否有該環節。我們主要來看越南先鋒銀行和孟加拉國央行,首先攻擊者都是對MT9XX報文進行了劫持,在對越南先鋒銀行是劫持MT950對帳單,在針對孟加拉國央行是劫持了MT900借記證實,進一步都是對相關報文進行了篡改,目的是刪除相關轉帳記錄,進行平帳。有區別是孟加拉國央行是對相關報文篡改後直接發送給印表機,列印出來,而越南先鋒銀行是對MT950的電子版PDF進行篡改後,然後印表機列印篡改後的PDF。攻擊者最終目的就是篡改報告,另外刪除其他一些數據信息,目的是抹去相關證據線索。另外我們發現越南先鋒銀行和孟加拉國央行中攻擊者所使用的惡意代碼,從代碼同源性上,都存在一個特殊的安全刪除函數,這也更進一步證明的這兩次攻擊事件並不是孤立的,兩者之間必然有一定聯繫。

  總體而言,這類攻擊戰術就是針對具備SWIFT系統的銀行進行攻擊,首先需要依託網路攻擊或其他手段獲得SWIFT許可權,進一步向其他銀行上的代理帳戶發送轉帳指令來達到金錢竊取的目的,最終使用惡意代碼進行相關證據清除掩蓋事實的過程。

3、技術:惡意代碼同源性分析

  安全刪除函數

  我們發現孟加拉國央行、越南先鋒銀行攻擊中使用的惡意代碼內的安全刪除函數是復用了相同的代碼,進一步Lazarus組織在2014年針對索尼的攻擊中的惡意代碼和賽門鐵克安全公司在近期發布的安全報告 中提到,針對東南亞金融業的有限目標性攻擊中出現的Backdoor.Fimlis惡意代碼,都復用了同樣的代碼。

  安全刪除函數有2個參數:文件名和迭代次數。首先使用5F覆蓋文件的末尾位元組,然後根據6個控制位元組決定使用什麼數據覆蓋原文件內容。

四、總結

1、攻擊由一個組織或多個組織協同發起

  從對相關攻擊事件的戰術層面和技術層面的深入分析,我們認為近期曝光的這4起針對銀行的攻擊事件並非孤立的,而很有可能是由一個組織或多個組織協同發動的不同攻擊行動。

2、攻擊組織極為熟悉目標銀行的作業流程

  如越南先鋒銀行中,從將惡意程序構造偽裝成Foxit reader(福昕PDF閱讀器)到對MT950對帳單PDF文件的解析和精確的篡改等攻擊手法,都反映出攻擊者對銀行內部交易系統和作業流程非常熟悉。攻擊者的攻擊意圖明確,而且攻擊者要如此了解和展開相關攻擊行動,事前進行了大量偵查情報收集的工作。

3、與Lazarus組織(APT-C-26)存在關聯

  針對SWIFT攻擊事件中與Lazarus組織所使用的相關惡意代碼,我們從樣本代碼層面進行同源性分析,發現其中一個特殊的安全刪除函數基本是進行了代碼復用。從這一點來看,針對越南先鋒銀行和孟加拉國央行的攻擊應該是與Lazarus組織有一定的聯繫。

  安全刪除函數這部分代碼能關聯到Lazarus組織曾今在2013年發動的darkseoul攻擊行動和2014年針對索尼影視娛樂公司的攻擊行動,相關攻擊行動的IOC(MD5C&C等)在當時已經被安全機構公開了,也可以理解為安全刪除函數這個本身特殊的代碼在當時就已經公開了。也就是在此之後,比如2015年、2016年非Lazarus組織的攻擊者,也可以輕鬆的獲得安全刪除函數的代碼並在進行開發其他惡意代碼的時候拿來使用。簡而言之,如果我們依靠這處安全刪除函數,來判定某個惡意代碼是否屬於Lazarus組織,是不具備強關聯性的。

  正如我們之前發布的洋蔥狗報告(APT-C-03) 「第5章 ICEFOG『重生』:誤導?嫁禍?」中提到的觀點,我們不排除這有可能是其他組織刻意加入的干擾項。

4、銀行業本身暴露出諸多安全問題

  近期曝光的4起針對銀行的攻擊事件中,其中2013年的索納莉銀行、2015厄瓜多銀行確定是由網路進行攻擊獲得相關轉賬許可權,另外越南先鋒銀行和孟加拉國央行也是自身環節發生了問題,導致攻擊者具備發送SWIFT轉賬指令的許可權。

  這明顯暴露出銀行自身的安全防護薄弱,另外攻擊者通過網路攻擊就可以獲得SWIFT許可權,並加以操作,以及攻擊者對SWIFT的Alliance Access客戶端軟體的數據有效性驗證指令,繞過相關驗證等等,這些都暴露出SWIFT 本身也存在一定問題,如是否在普通的帳號密碼驗證機制基礎上,可以加一些需要依賴物理設備或環境才能進行驗證的步驟,這樣能大大隔離純粹來自網路的攻擊。

本文由 安全客 原創發布,如需轉載請註明來源及本文地址。

本文地址:bobao.360.cn/learning/d


推薦閱讀:

小額貸款怎樣划算?
如何看待建行推出網貸資金存管產品「龍存管」?
中國的銀行磁條卡為什麼遲遲沒有被晶元卡取代?

TAG:网络安全 | 信息安全 | 银行 |