知道創宇2018年網路空間安全報告
⼀、2018 年網路空間安全總體形勢
⽹絡安全的發展,離不開攻防之間的對抗。如果說⼤型漏洞爆發後的安全應急是和時間賽跑,那麼 2018 年這種賽跑已經進⼊了⽩熱化的階段。
在過去的⼀年內,《推進互聯⽹協議第六版(IPV6)規模部署⾏動計劃》有⼒地推動了我國⽹絡基礎設施的發展、歐盟《⼀般資料保護條例》 GDPR 正式⽣效有效地保護了個⼈隱私、Chrome 等主流瀏覽器開始將 HTTP ⻚⾯標記為不安全,企業也在⽹絡安全建設⽅⾯履⾏著應盡的責任。2017 年永恆之藍藉助勒索病毒/挖礦在內⽹傳播、產業互聯⽹的崛起和⽹絡規模的增加,讓 2018 年⽹絡空間挑戰與機遇並存。
知道創宇 404 實驗室(以下簡稱 404 實驗室)在 2018 年⼀共應急了 135 次,Seebug漏洞平臺收錄了 664 個漏洞,相⽐於 2017 年,應急的漏洞數量更多、涉及的裝置範圍更⼴。
值得⼀提的是,2018 年出現了眾多區塊鏈相關的漏洞,從智慧合約的安全到⼤型區塊鏈的安全均有涉及。這是安全⼚商的機遇,也是⼀場全新的挑戰。由於區塊鏈相關的攻擊隱蔽⽽致命,攻擊者可以在獲取鉅額利益之後消失匿跡,如何及時監測、防禦、⽌損,安全⼚商道阻且艱。
由虛擬貨幣⾼漲帶來的是攻擊⽬標的轉變,2018 年發⽣的攻擊更多地針對了⾼效能的伺服器主機。部分 Web 漏洞,例如 ThinkPHP5 的遠端命令執⾏漏洞、Struts2 系列漏洞等,從漏洞公開到被⼴泛利⽤、甚⾄被作為僵⼫⽹絡蠕⾍感染的 exp,間隔不超過⼀個星期。利益直接驅動攻擊升級,同時也給防禦帶來了更⼤的壓⼒。
從 2016 年 Mirai 僵⼫⽹絡原始碼公開⾄今已有兩年,IOT 僵⼫⽹絡也在不斷進步。僵⼫⽹絡也因為不同需求⽽產⽣了⼀定的分化,感染⼿段不再是蠕⾍,部分僵⼫⽹絡對 ZoomEye、shodan 之類搜尋引擎的需求增加,部分僵⼫⽹絡可能會選擇⾃⾏掃描。僵⼫⽹絡的⽬的也不再單純的是為了感染更多的主機從⽽實現 DDOS,還有挖礦和組建匿名代理⽹絡等等,甚⾄出現了利⽤區塊鏈 DNS 的僵⼫⽹絡。如何從僵⼫⽹絡的⽬的⼊⼿去了解、分析甚⾄抑制其傳播,可能會是未來所⾯臨的困難之⼀。
2018 年 08 ⽉ 25 ⽇,404 實驗室釋出《2018 上半年暗⽹研究報告 》,同時推出 針對暗⽹空間進⾏全⽅位監測的應⽤系統: 暗⽹雷達。隨著暗⽹⽤⼾的增多,⿊市及加密數字貨幣的發展,暗⽹威脅必定會持續增⻓,知道創宇 404 安全研究團隊會持續通過技術⼿段來測繪暗⽹,提供威脅情報,追蹤和對抗來⾃暗⽹的威脅。
⽹絡空間攻擊形態正隨著國家訴求、經濟發展和安全防禦的升級⽽不斷改變。可以預⻅的是,⽹絡空間深層次的對抗將會增加,⽹絡空間威脅依舊嚴峻,⽹絡空間防禦正在逐步完善。如何在多⻆度多層⾯與威脅有效的對抗,依舊是安全⼚商甚⾄整個社會將持續⾯臨的問題。
⼆、2018 年安全漏洞/事件概述
404 實驗室彙總了 2018 年⼗⼤年度⼤型安全漏洞/事件(排名不分先後),部分漏洞/事件也將會在本報告的後續章節中詳細說明。
2.1 2018 年安全漏洞/事件彙總
2.1.1 Meltdown/Spectre CPU 特性漏洞
2018 年 1 ⽉ 4 ⽉,Jann Horn 等安全研究者披露了 Meltdown (CVE-2017-5754) 和Spectre (CVE-2017-5753 & CVE-2017-5715) 兩組 CPU 特性漏洞。這兩組漏洞都利⽤了現代計算機 CPU 推測執⾏(1995 年開始使⽤)和間接分⽀預測的特性來訪問任意系統記憶體。
近 20 年的 intel,AMD,Qualcomm ⼚家和其他 ARM 的處理器幾乎都受到影響。到目前為止,各大廠商都沒有給出完美的修補⽅案,⽽ Windows/Linux/MacOS 等作業系統則通過犧牲部分 CPU 效能實現對該類漏洞進⾏了修補。
2.1.2 MikroTik RouterOS 遠端命令執⾏漏洞
今年 1 ⽉份,MikroTik RouterOS 遠端命令執⾏漏洞(維基解密 Vault7 ⾏動中爆料)相關的 EXP 被公佈在 Github 上。MikroTik RouterOS 是⼀套低成本,⾼效能的路由器系統,通過 ZoomEye ⽹絡空間搜尋引擎探測,233 萬運⾏著 MikroTik RouterOS 系統的裝置暴露在公網上。由於該裝置影響⾯⼴,EXP 利⽤難度低,讓公⽹上的 MikroTik RouterOS 成為了⼀個孕育僵⼫網路的”溫床”。
2.1.3 Cisco 裝置漏洞
今年 Cisco 被曝出了兩個重⼤安全漏洞:
a. 1 ⽉ 28 ⽇,Cisco 官⽅釋出了⼀個有關 Cisco ASA 防⽕牆 webvpn 遠端程式碼執⾏漏洞(CVE-2018-0101)的公告。 b. 03 ⽉ 28 ⽇,Cisco 官⽅釋出安全漏洞公告修復編號為 CVE-2018-0171 的 CiscoSmart Install 遠端命令執⾏漏洞 。
值得⼀提的是,這兩個都是未授權的遠端命令執⾏漏洞,攻擊者⽆需登入憑證等資訊即可成功實施攻擊,通過 ZoomEye ⽹絡空間搜尋引擎探測,243,744 臺 Cisco ASA 裝置,172,324 臺 Cisco Smart Install 裝置可能會受到漏洞影響。2018 年 4 ⽉ 6 ⽇,⼀個名為”JHT”的⿊客組織攻擊了包括俄羅斯和伊朗在內的多個國家⽹絡基礎設施,遭受攻擊的 Cisco裝置的配置⽂件會顯⽰為美國國旗,所以該事件⼜被稱為”美國國旗”事件。
2.1.4 Linux 提權漏洞
⼏乎每年都會有 Linux 的提權漏洞被公佈出來,2018 年也不例外,⼀個 libc 的提權漏洞(CVE-2018-1000001)和兩個 Ubuntu 核心的提權漏洞(CVE-2017-16995、CVE-2018-17182)被公佈出來。需要注意的是:提權漏洞的作⽤除了把普通⽤⼾許可權提升到 root 許可權以外,還有可能引起雲平臺的相關逃逸,安卓⼿機的提權,docker 提權等。
2.1.5 GPON 路由器遠端命令執⾏漏洞
近年來,僵⼫⽹絡逐漸盯上了攻擊簡單但危害巨⼤的物聯⽹裝置,2018 年 4 ⽉ 30 ⽇,vpnMentor 公佈了 GPON 路由器的兩個⾼危漏洞:驗證繞過漏洞(CVE-2018-10561)和命令注⼊漏洞(CVE-2018-10562)。只需要傳送⼀個請求,就能在 GPON 路由器上執⾏任意命令,通過 ZoomEye ⽹絡空間搜尋引擎探測,公⽹上⼤約有 214 萬裝置可能受到影響。在該漏洞被公開的⼗天內,該漏洞就已經被多個僵⼫⽹絡家族整合/利⽤/在公⽹上傳播,404 實驗室也給出相關預警。
2.1.6 Java 反序列化漏洞
2018 年的 Java 反序列化漏洞還在持續爆發,在 404 實驗室 2018 年應急的漏洞中,受此影響最嚴重的是 WebLogic,該軟體是美國 Oracle 公司出品的⼀個 Application Server。2018 年知道創宇 404 實驗室應急了 5 個 WebLogic 的反序列化漏洞。由於 Java 反序列化漏洞可以實現執⾏任意命令的攻擊效果,是⿊客⽤來傳播病毒,挖礦程式等惡意軟體的攻擊⽅法之⼀。
2.1.7 區塊鏈安全
2018 年是區塊鏈產業最活躍的⼀年,知道創宇 404 實驗室也隨之關注到了區塊鏈安全上。從區塊鏈到智慧合約,再到以太坊 JSON-RPC 接⼝,都與安全息息相關,詳情請參⻅:第四章 2018 年區塊鏈相關事件概述。
2.1.8 Xiongmai IP 攝像頭漏洞
隨著物聯⽹的發展,攝像頭等 IoT 裝置已經成為了傳播僵⼫⽹絡的主⼒軍,2018 年多個⼚商/型號的攝像頭被披露出多個漏洞。在 404 實驗室應急的漏洞中,影響裝置數量最多的要屬 Xiongmai IP 攝像頭。Xiongmai 裝置預設啟⽤ XMEYE P2P Cloud 功能,每個裝置會分配⼀個 Cloud ID,通過該 ID,就可以從外⽹訪問只開在內⽹的 Xiongmai 裝置。通過 ZoomEye搜尋引擎能得到 200 萬的 Xiongmai 裝置暴露在公⽹上,但是通過列舉 Cloud ID,能訪問到約 900 萬 Xiongmai 裝置。並且該裝置還存在著硬編碼憑證和遠端程式碼執⾏漏洞,如果這些裝置被⽤來傳播僵⼫⽹絡,將會給⽹絡空間造成巨⼤的危害。
2.1.9 Drupal 遠端命令執⾏漏洞
PHP 常被⽤來開發 Web 應⽤,是受 WEB 開發者喜歡的程式設計語⾔之⼀。當 PHP 框架出現漏洞,將會造成巨⼤的危害。Drupal 是使⽤ PHP 編寫的開源內容管理框架,Drupal 社群是全球最⼤的開源社群之⼀,全球有 100 萬個⽹站正在使⽤ Drupal,今年 3 ⽉份,Drupal安全團隊披露了⼀個⾮常關鍵的(21/25 NIST 等級)漏洞,被稱為 Drupalgeddon 2(CVE-2018-7600),此漏洞允許未經⾝份驗證的攻擊者進⾏遠端命令執⾏操作。
2.1.10 勒索病毒
每年都會有⾮常多的勒索病毒在⽹絡空間肆虐,但是在今年 11 ⽉份,出現⼀種名為Lucky 的勒索病毒,該病毒會將⽤⼾重要的⽂件進⾏加密並修改成字尾名為 .lucky 的⽂件。只要⽤⼾向指定的⽐特幣賬⼾匯款,才能獲得解密的金鑰。知道創宇 404 實驗室的煉妖壺蜜罐系統捕獲到該勒索病毒的樣本之後,對該勒索病毒進⾏了分析,發現該病毒的加密模組存在安全漏洞,任何⼈能通過⽂件的加密時間還原出⽂件加密的金鑰,從⽽還原出⽂件。隨後,知道創宇 404 安全研究團隊通過該漏洞編寫出了勒索軟體的解密⼯具。
2.2 2018 年安全漏洞/事件總結
Web 類漏洞在 2018 年佔據了 404 實驗室應急漏洞數量的百分之 56,相關漏洞和往年相⽐多且嚴重,涉及的型別有:前後臺⽤⼾密碼修改、需要認證/未認證的遠端程式碼執⾏、任意⽂件讀取刪除或上傳、路徑穿越、⽂件包含、XXE 、SSRF 、DoS 攻擊等。這些漏洞攻擊途徑也⽐較多樣,例如通過富⽂本編輯器上傳⽊⻢,通過後臺數據庫備份功能進⾏命令執⾏等,卻可以造成:服務不可⽤、敏感資訊洩露、伺服器控制權被奪取、⽂件被篡改或刪除等危害。404 實驗室總結漏洞成因,包括但不限於以下⼏點:
a. 對引數檢查過濾不嚴格,命令直接拼接執⾏。 b. 許可權限制不⾜,使低許可權或⽆許可權⽤⼾獲得⾼許可權,或可以直接調⽤不該使⽤的 API。 c. 為了貪圖便利使⽤預設憑證、弱⼝令且肆⽆忌憚地暴露在外⽹的情況。 d. 開發⼈員對開發框架不夠了解,導致後續開發中忽視必要的引數檢查。 e. 不良的線上部署習慣,以及配置的失誤。會導致⽐如路徑穿越和任意⽂件讀取。 f. 本該出現在內⽹的裝置,或為了⽅便,或因配置是失誤,暴露在公⽹中。
三.2018 年⽹絡空間情況概述
3.1 2018 年 ZoomEye ⽹絡空間搜尋引擎收錄概述
本章基於 2018 年 ZoomEye ⽹絡空間搜尋引擎收錄的資料進⾏分析,關注⽹絡空間中裝置分佈及其安全問題。
3.1.1 網路空間裝置分佈情況
2018 年 ZoomEye ⽹絡空間搜尋引擎⼀共收錄了 621127633 臺裝置的 banner 資訊。位於美國的裝置佔據收錄數量的 28.29%,中國、英國、德國等緊隨其後。
美國 2018 年活躍裝置的數量遠⼤於其他國家,可能與互聯⽹發展程度、巨⼤的 IPV4 地址分配範圍等原因有密切的關係。
眾多國際互聯⽹企業(例如:Google、Facebook、EBay、Twitter、Oracle、Mozilla 等等)集中在加利福尼亞州。這也造就了 ZoomEye 探測到的美國活躍裝置 26.84% 都位於加尼福利亞州。
中國沿海地區仍然是互聯⽹發達區域。
3.1.2 ⽹絡空間端⼝分佈情況
2018 年 ZoomEye ⽹絡空間搜尋引擎探測到的開放端⼝分佈情況和識別的服務型別如下圖所⽰:
3.2 常⻅裝置公⽹暴露情況
隨著物聯⽹⾏業的蓬勃發展,物聯⽹裝置數量也在⻜速增⻓。由於早年安全標準的相對滯後,導致部分裝置存在較多的安全缺陷,如程式碼邏輯缺陷導致憑證洩漏、未正確處理⽤⼾輸⼊導致遠端命令執⾏等。
事實證明,軟體安全漏洞是⽆法避免的,新的漏洞不斷被披露。由於多數早期物聯⽹裝置存在使⽤週期較⻓、缺乏有效的升級機制的特點,⼀旦這些裝置的漏洞被曝光,將⽆法得到有效的修復。這也導致當前⽹絡空間存在⼤量存在漏洞的裝置,特別是部分官⽅終⽌⽀持的裝置,可謂是千瘡百孔。
相⽐於現實世界,⽹絡空間更容易隱匿資訊。攻擊者通過漏洞實現對裝置的遠端攻擊、組建僵⼫⽹絡,便可以通過挖礦、DDoS 攻擊、販賣⽤⼾隱私等⾏為獲取利益。這也導致⽹絡空間中存在漏洞的裝置,是部分攻擊者的⾸要⽬標。
雖然⽆法預知漏洞的發⽣情況,但是瞭解互聯⽹上各型別裝置的分佈可以讓防禦⽅有針對的進⾏防禦。該⼩節將會詳細說明 2018 年 ZoomEye ⽹絡空間搜尋引擎收錄的⽹關類裝置,安防監控類裝置、印表機、⽹絡附加儲存(NAS)等裝置的資訊。如智慧穿戴類裝置、智慧⾳響、智慧⻔鎖等裝置,多存在於內⽹中,故不歸類⾄本次統計資訊中。
3.2.1 ⽹關類裝置
ZoomEye dork: device:”router”
⽹關裝置作為⽹絡連線樞紐,是⽹絡空間上數量最多的第⼀⼤裝置,直接暴露的數量為24516049 臺。
主要分佈在美國、墨西哥、中國、澳⼤利亞、俄羅斯等國家。
開放最多的服務依然為 http 服務,主要分佈在 80、443、8081、8080 等端⼝,443 為https 的預設端⼝,所有開放了 http 服務的裝置中約有 13% 啟⽤了 https,這意味著其他約87 % 的裝置存在 http 傳輸資訊洩漏⻛險。其次,很多品牌路由器的 http 服務都或多或少的存在預設憑證、硬編碼憑證、憑證洩漏、登入繞過等問題,利⽤這些漏洞可以成功登陸 Web管理系統,登陸後利⽤命令注⼊、緩衝區溢位、上傳⾃定義韌體等漏洞可獲取裝置的最⾼許可權,甚⾄監控⽹絡流量竊取⽹絡賬號、信⽤卡等私密資訊。
運⾏ TR-064 和 TR-069 服務的⽹關裝置也不在少數。TR-064 全稱 LAN 側 DSL 被管理裝置設定協議,是 LAN 端基於 XML 的 CPE 管理協議,預設端⼝為 7547。TR-069 全稱為“CPE ⼴域⽹管理協議”,它提供了對下⼀代⽹絡中家庭⽹絡裝置進⾏管理配置的通⽤框架和協議,⽤於從⽹絡側對家庭⽹絡中的⽹關、路由器、機頂盒等裝置進⾏遠端集中管理,預設使⽤ 4567 端⼝。2016 年攻擊者通過攻擊 7547 端⼝的 TR-064 服務,致使德國⼤量路由器下線,約 90 萬⽤⼾⽆法訪問互聯⽹。
1900 端⼝是 SSDP 服務(簡單服務發現協議)的指定端⼝,⽤以發現局域⽹的 UPnP裝置,如路由器。將該端⼝直接開放在公⽹上會洩漏 UPnP 服務的描述資訊,進⼀步可傳送SOAP /XML 控制訊息進⾏ NAT 注⼊暴露內⽹脆弱服務。Akimai ⽩⽪書 :UPnProxy:Blackhat Proxies via NAT Injections 對該漏洞進⾏了詳細闡述。
21 端⼝(FTP 服務)、22 端⼝(SSH 服務)、23 端⼝(Telnet 服務),因為預設憑證、弱密碼可被爆破等問題,讓⽆數攻擊者趨之若鶩。
3.2.2 安防監控類裝置
ZoomEye dork:device:”webcam”
近年來,企業及個⼈對資產的保護越來越重視。智慧⽹絡監控攝像頭可以 7×24 ⼩時持續監控,⽅便安裝,⽆論⾝處何地都可隨時通過⽹絡檢視視訊流,⼀些⾼級攝像頭還結合其他技術賦予了攝像頭更多的功能,如移動軌跡檢測、⼈臉識別、紅外夜視、溫溼度感應等。⽹絡攝像頭的等種種優點,使其逐漸取代了傳統攝像頭,⾛進了千家萬⼾。
⽬前市⾯上的攝像頭主要通過以下三種⽅式提供視訊服務:
1. 直接開放端⼝及服務,如 http、rtsp 等,⽤⼾通過瀏覽器登陸檢視視訊流; 2. 裝置不開放任何端⼝及服務,直接和⼚商的雲伺服器通訊,⽤⼾註冊登陸⼚商提供的app 並繫結攝像頭,之後通過 app 檢視視訊流。 3. 以上兩種⽅式的混合。
相⽐於⽅法 2,⽅法 1、3 更加容易出現安全問題。預設憑證登入、憑證洩漏、登入繞過等問題都將直接影響到⽅法 1、3 的攝像頭。如果將裝置直接開放到公⽹上,攻擊者可以很容易的的登入裝置,導致隱私洩漏。⽅法 2 也不是絕對安全,在下⼀章中會說到。
通過 ZoomEye ⽹絡空間搜尋引擎統計,2018 年⽹絡空間暴露的攝像頭類裝置數量為1252 5943 臺。
主要分佈在中國、美國等國家。
開放最多的依然是 http 服務,約有 1237 萬臺裝置,主要分佈在 80、81、8080、443、82、85、88、8081、83 等端⼝、約 71 萬的裝置在 554/8554 端⼝開放了 rtsp 服務,通過 VLC可直接檢視視訊流(需要認證)、有約 3 萬臺裝置的 ftp 服務(21 端⼝)及 2 萬臺裝置的telnet 服務(23 端⼝)直接暴露在公⽹上。這些都可能會使攝像頭捕捉到的畫⾯被他⼈竊取。
3.2.3 印表機
ZoomEye dork:device:”printer”
2018 年網路空間威脅與展望北京知道創宇資訊科技有限公司 第16頁680704 臺印表機裝置暴露在⽹絡空間上,主要⼚商有 Brother、HP、Epson、Samsung等。
該類裝置主要分佈在美國、韓國。
開放最多的依然是 http 服務,主要分佈在 80、8080、443 等端⼝。631 是 IPP(互聯⽹列印協議)的服務端⼝,它容許⽤⼾可以透過互聯⽹作遙距列印及管理列印⼯作等⼯作。9100 端⼝也被稱為“原始(RAW)列印”。客⼾通過 9100/TCP 端⼝連線到⽹絡印表機,所有傳送的資料都由列印裝置直接處理。此外還有部分裝置開放了 21 端⼝(FTP 服務)、23 端⼝(telnet 服務)。
還有⼀個⽐較重要的是 161/UDP 端⼝,是 SNMP(是簡單⽹絡管理協議)的服務端⼝,旨在管理⽹絡組建。今年 Samsung 印表機被曝光出⼀個敏感資訊洩露漏洞(CVE-2018-17969 )就和該端⼝有關。
3.2.4 ⽹絡儲存裝置(NAS)
ZoomEye dork: app:”nas”
3192751 臺 NAS 裝置直接暴露在⽹絡空間上。數量最多的品牌為威聯通(QNAP),約為 170 萬,其次為群暉 NAS,約為 120 萬。其他品牌還有希捷(Seagate)及西部資料(WD)、ASUSTOR 等。
主要分佈在德國、中國、美國等國家。
基本上都只開放了 http 服務,主要分佈在 5000,8080,443,80,8082,7000,8000,8083 等端⼝。5000 是 Synology NAS 的預設 http 端⼝,8080 是 QNAP NAS 的預設 http 端⼝,443 是 QNAP NAS 的預設 https 端⼝。由此可⻅ NAS 的⼤部分市場份額基本由 QNAP 和 Synology 佔領。
相⽐於路由器和攝像頭,NAS 的安全性要⾼很多,且通常能⾃動升級系統,但也不可避免的會存在漏洞。今年 ASUSTOR 的 NAS 作業系統 ADM 被多次曝出漏洞;還有西部資料的 NAS 被曝出登入繞過 0day,結合歷史命令注⼊漏洞可⽆限制 RCE;Axentra HipservNAS 作業系統被曝出存在 XXE 和⽆需認證的本地服務遠端命令執⾏漏洞,利⽤ XXE 可實現SSRF,最終⽆限制遠端命令執⾏,該漏洞影響 Netgear Stora,Seagate GoFlex Home,Medion LifeCloud 等三款 NAS 產品。
3.3 思考與展望
3.3.1 漏洞頻發來⾃於數年前的伏筆
2018 年物聯⽹裝置頻繁被曝出漏洞,動輒影響⼏⼗萬⼏百萬的裝置。
例如,2018 ⽉ 04 ⽉ 30 ⽇ vpnMentor 公佈了 GPON 路由器的⾼危漏洞:驗證繞過漏洞(CVE-2018-10561)和命令注⼊漏洞(CVE-2018-10562)。將這兩個漏洞結合,只需要傳送⼀個請求,就可以在 GPON 路由器 上執⾏任意命令。根據 ZoomEye ⽹絡空間搜尋引擎的結果,2141183 臺路由器可能受該漏洞影響(2018 年 05 ⽉ 04 ⽇資料)。
2018 年 09 ⽉ 18 ⽇,Securify 披露了⼀個 WD My Cloud 的登入繞過 0day 漏洞,由於WDMyCloud 存在⼏⼗個歷史漏洞,登陸後,也存在 30 餘個命令注⼊點,這意味著攻擊者通過這個漏洞,可以⽆限制遠端命令執⾏。
縱觀 2018 年 404 實驗室應急的 IoT 相關漏洞,⼤多數 IoT 漏洞都有以下共性:
- 漏洞原理簡單,利⽤難度普遍較低。如邏輯錯誤,鑑權不當導致各種形式的登陸繞過,過濾不⾜導致命令注⼊或者溢位,結合這些漏洞可獲取裝置最⾼許可權。值得⼀提的是預設密碼問題,這個嚴格來說不算“漏洞”的問題如今也是 IoT 重災區。 - 程式碼、元件復⽤,導致⼀個三⽅元件曝洞會影響所有使⽤了該元件的裝置。 - “好⽤的洞” 被曝出後,會迅速被各⼤僵⼫⽹絡爭奪並利⽤。憑證洩露等漏洞⼀直遺留,後續⼜為其他 RCE 漏洞鋪平道路。
整體來說,是過去安全的投⼊⼤幅落後於開發的速度,導致裝置存在⼀堆 “低階” 漏洞。可喜的是,近⼏年來,安全逐漸受到⼈們的重視,各 IoT ⼚商的安全標準也在不斷完善。
由於很多 IoT 裝置缺少⾃動升級機制,甚⾄有的已經超出了官⽅的⽀持週期⽽得不到更新補丁,也只能等待裝置升級換代被淘汰。
3.3.2 開放埠很不安全,不開放埠也不⼀定安全
不開放端⼝可以抵禦⼤多數的 IoT 安全問題,因為攻擊者⽆法直接通過⽹絡訪問裝置。即使裝置存在漏洞,也不會遭到惡意利⽤。但是不開放端⼝是不是意味著就⼀定安全呢?
2018 年 10 ⽉ 09 ⽇,Xiongmai IPCamera、NVR、DVR 等裝置被曝出存在預設憑證、硬編碼憑證、遠端程式碼執⾏等多個嚴重漏洞。XM 裝置預設啟⽤了 XMEYE P2P Cloud功能,每個裝置會分配⼀個 Cloud ID,⽤⼾可根據這個 Cloud ID 代替 IP 地址訪問裝置,這樣就可以從外⽹訪問只開放在內⽹的 XM 裝置。問題是,這個 Cloud ID 是從裝置的 Mac 地址通過⼀些簡單計算得到的,由於 Mac 地址可列舉,配合上⾯的兩個預設憑證漏洞,可通過XMEye Cloud ⽆限制訪問所有線上的 XM 裝置。原漏洞作者進⾏了⼀次⼤致探測,得出⼤約有 900 萬可訪問的裝置。
由此可⻅,在新的技術實現上也會⾯臨新的挑戰,但是不直接開放端⼝是⼀個極⼤的進步。
四.2018 年區塊鏈相關事件概述
2018 年是區塊鏈⼤熱的⼀年,同樣也是區塊鏈安全最經受挑戰的⼀年,虛擬貨幣⻜漲的價值引來了狼群的覬覦,⽽交易所薄弱的安全建設、部分割槽塊鏈存在的安全問題等都是急需解決的問題。以時間為軸,就不難理解為何區塊鏈安全會受到如此多的關注、2018 年安全事件多爆發在何處。
4.1 ⼀切的伊始
2016 年經常被⼈們稱作區塊鏈元年,因為在這⼀年區塊鏈技術的價值真正被世界所認可。多國政府開始研究發⾏⾃⼰的數字貨幣,超過 50 家世界級銀⾏組成聯盟研發區塊鏈銀⾏間服務,上千家區塊鏈⾏業的創業公司如⾬後春筍般興起。
2016 年⽐特幣的成功,讓區塊鏈的成為了當前這個時代最受期待的新興產業之⼀,⽽以太坊以其特有的智慧合約功能,很⼤程度上解決了區塊鏈快速發展和⽐特幣出塊速度受到極⼤限制的⽭盾。智慧合約開發者通過編寫程式碼、編譯部署到區塊鏈上的⽅式,實現了交易的⾼速化、⾃動化和規則化,可以說智慧合約是區塊鏈不可篡改特性的⼀次最佳實踐。
區塊鏈⾏業發展與⽐特幣等幣價的變化有強關聯,從⼀開始貨幣屬性就是區塊鏈產業抹不去的特性。2016 年 1 ⽉以太坊這個名不⻅經傳的區塊鏈品種總市值只有 7000 萬美元,短短 2 個⽉以太坊的市值最⾼就上漲到了 11.5 億元。隨著區塊鏈市場價值的⻜速提升,⽽區塊鏈市場的安全性卻沒能跟上區塊鏈的發展。產業價值遠遠⼤於安全代價,安全事件的發⽣也就成了必然。
2017 年以來,⽐特幣較慢的出塊速度和持續⾛⾼的價格,使⽐特幣的意義更多轉變為貨幣標準。隨著以太坊的不斷成熟,區塊鏈 2.0-智慧合約的時代也正式拉開了序幕。作為區塊鏈⼀部分的區塊鏈安全問題也如⾬後春筍⼀般紛紛誕⽣了。
4.2 2018 年區塊鏈相關安全事件
2017 年 11 ⽉,⼀款名為 CryptoKitties(以太貓)的區塊鏈遊戲突然爆⽕,這是⼀款基於以太坊智慧合約的養貓遊戲,從此開始,智慧合約的兩種主要表現形式區塊鏈遊戲以及合約代幣正式出現在⼈們的眼簾中受到了⼤家的關注,隨著智慧合約⽕爆發展的同時,也成為了攻擊者們的⽬標之⼀。
4.2.1 BEC/SMT 溢位事件
BEC(美幣)是 Beauty Chain 發⾏的⼀種合約代幣,2018 年 2 ⽉正式提交到交易所公開售賣,募集超過 60 億⼈⺠幣。
SMT 全稱為 SmartMesh,也同樣是⼀款基於以太坊智慧合約代幣。
2018 年 4 ⽉ 22 ⽇,攻擊者利⽤ BEC 智慧合約程式碼中轉賬函式中的⼀處乘法溢位漏洞,通過乘法溢位導致了,轉出了57,896,044,618,658,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000.792003956564819968 個 BEC,清空了 BEC 的合約代幣,其交易地址為0xad89ff16fd1ebe3a0a7cf4ed282302c06626c1af33221ebe0d3a470aba4a660f。最終 BEC被迫軟分叉收回了這部分損失。
2018 年 4 ⽉ 24 ⽇,攻擊者利⽤ transferProxy 函式加法溢位漏洞轉出了超⼤額的 SMT幣。transferProxy 是⼀個⽤於交易代理的函式,當交易者沒有⾜夠的以太幣⽀付 gas 時,通過代理函式讓第三⽅節點代為⽀付 gas,並向其⽀付相應的 SMT 幣作為酬勞。但函式中在校驗 SMT 餘額是發⽣加法溢位,導致可以任意轉出超⼤額的 SMT 幣。
這兩個事件⼏乎直接摧毀了 BEC/SMT 兩個合約代幣,也直接影響了智慧合約的市場,智慧合約的安全問題迫在眉睫。
4.2.2 以太坊智慧合約蜜罐
隨著以太坊智慧合約的安全問題越來越受到關注,⼀種針對有⼀定智慧合約基礎的從業者的攻擊⼿段也逐漸被曝光。
2018 年 3 ⽉ 20 ⽇外國的安全研究員 Gerhard Wagner 詳細分析了⼏種智慧合約蜜罐。2018 年 6 ⽉ 404 實驗室跟進研究,將已知的蜜罐智慧合約欺騙⼿段分為四個⽅⾯:
- 古⽼的欺騙⼿段 - 神奇的邏輯漏洞 - 新穎的賭博遊戲 - ⿊客的漏洞利⽤
從簡單的視覺欺騙,到利⽤ Solidity 的 feature 來欺騙、從利⽤傳統的賭博思維,到利⽤漏洞來欺騙,智慧合約蜜罐的欺騙⽅式千奇百怪,但卻離不開最本質的⽬的:利⽤相關從業者⾃以為了解智慧合約的投機⼼理,來賺取相應的“智商稅”。
截⾄ 2018 年 6 ⽉,我們發現的 118 個蜜罐智慧合約地址就騙取了超過 34 個以太幣,⽽這種⾏為仍然繼續。
4.2.3 以太坊偷渡漏洞
2018 年 3 ⽉ 20 ⽇,慢霧社群揭露了⼀起嚴重的⾃動化盜幣事件,外界稱之為以太坊偷渡漏洞(⼜稱為以太坊⿊⾊情⼈節事件),攻擊者利⽤以太坊節點 Geth/Parity RPC API 鑑權缺陷,惡意調⽤ eth_sendTransaction 盜取代幣,持續時間⻓達兩年,單被盜的且還未轉出的以太幣價值就⾼達現價 2 千萬美⾦,還有代幣種類 164 種,總價值難以估計(很多代幣還未上交易所正式發⾏)。
通過⽹絡和區塊鏈進⾏互動,遠端 RPC 接⼝通訊是通⽤的解決⽅案之⼀。但當以太坊的 RPC 接⼝對外開放(HTTP JSON RPC 端⼝ 8545,WebSocket JSON RPC 端⼝ 8546)並且節點⽤⼾對⾃⼰的賬⼾執⾏ unlockAccount 時,預設會有 300s(5 分鐘)時間⽤於簽名、轉賬等操作,由於缺乏相應的鑑權邏輯,攻擊者在這 300s(5 分鐘)期間也可以通過執⾏ eth_sendTransaction 對受害者賬⼾進⾏轉賬,從⽽實現盜幣。
2018 年 5 ⽉ 16 ⽇,知道創宇 404 區塊鏈安全研究團隊對以太坊偷渡漏洞事件進⾏預警並指出該端⼝已存在密集的掃描⾏為。
2018 年 6 ⽉ 29 ⽇, 慢霧社群預警了以太坊⿊⾊情⼈節事件(即偷渡漏洞)新型攻擊⼿法,該攻擊⼿法在本⽂中亦稱之為:離線攻擊。在結合蜜罐資料復現該攻擊⼿法的過程中,知道創宇 404 區塊鏈安全研究團隊發現:在真實場景中,還存在另外兩種新型的攻擊⽅式:重放攻擊和爆破攻擊,由於此類攻擊⽅式出現在偷渡漏洞曝光後,我們將這些攻擊⼿法統⼀稱為後偷渡時代的盜幣⽅式。
在偷渡漏洞被曝光出之後,主要的防範、修復⽅式有⼏種,關閉對公⽹暴露的 RPC 介面 、使⽤ personal.sendTransaction()進⾏轉賬 或節點上不存放賬⼾資訊(keystore),但問題在於,即便上述⽅式你都做了,依然有可能會被盜幣。Geth 交易快取池的重放攻擊成⽴的條件建⽴在該 RPC 曾存在過偷渡漏洞的前提下,通過關閉對公⽹暴露的 RPC 接⼝來修復該問題,就可能被交易快取池重放攻擊再次攻擊。以太坊在同步交易快取池的過程中可能因為⽹絡波動、分散式的特點等原因,導致部分交易多次進⼊交易快取池。這也導致 部分應該被移出交易快取池的交易 多次重複進⼊交易快取池。在這種情況下,轉賬交易可以因為賬⼾餘額不⾜等原因停留在交易快取池中,⼀旦賬⼾餘額充⾜時,交易就將繼續進⾏。
unlockAccount 接⼝的爆破攻擊是偷渡漏洞的拓展,假設 RPC 接⼝節點直接暴露在公⽹下,但沒有遇到賬號解鎖時,就可能受到 unlockAccount 接⼝的爆破攻擊攻擊者探測到對外開放的 RPC 之後,可以通過 personal_listWallets 查詢已經 unlocked的賬⼾。然後直接爆破⽤⼾賬⼾的密碼,如果⽤⼾使⽤了弱⼝令,攻擊者就能解鎖相應的賬⼾。
為了修復偷渡漏洞,Geth 官⽅在 2018 年 1 ⽉新增了⼀個 RPC 介面personal_sendTransaction,使⽤這個接⼝發起交易,解密的私鑰會存放在記憶體中,所以不會引起偷渡漏洞等相關問題。⽽ personal_sendTransaction 的原理就是使⽤解密的私鑰對交易進⾏簽名。在這種基礎上,如果曾經被盜幣,就有可能被⾃動簽名交易的離線攻擊當攻擊者使⽤某種⽅式偷渡盜幣成功,它不但可以直接轉賬餘額,還可以通過eth_getTransactionCount 獲取交易次數,計算 nonce,之後直接將多筆轉賬交易簽名。之後只要監控⽤⼾賬⼾的餘額,⼀旦餘額夠就可以通過⼴播已經簽名的交易來發起交易。我們把這種攻擊⽅式稱之為離線攻擊。
在後偷渡時代之後,種種攻擊⽅式層出不窮,除了攻擊節點的攻擊⽅式以外,攻擊者或求助於礦⼯,或本⾝擁有⼀定的算⼒,發起了新的攻擊⽅式,我們稱之為拾荒攻擊。
在偷渡漏洞中,攻擊者可以通過在被攻擊節點構造 gasprice 為 0 的交易,然後同時設定⼀個惡意的節點,將相應的交易打包,就可以通過犧牲⼀定的礦⼯利益來換取 0 ⼿續費的轉賬,通過這種⽅式,攻擊者可以獲取到包括餘額不⾜以⽀付轉賬⼿續費的部分在內的所有以太幣。我們稱這種攻擊⽅式為拾荒攻擊。
對 RPC 的攻擊模式從⼀開始的暴⼒競爭搶佔到後期的離線攻擊、重放攻擊,再到對賬號弱⼝令的暴⼒破解,再到精細到細枝末節的拾荒攻擊,攻擊者展現了驚⼈的攻擊思維,最開始的偷渡漏洞被曝光時涉及的以太幣就已經價值超過⼏千萬美⾦,最終⽤於撿漏的拾荒攻擊涉及到的以太幣都超過⼏⼗。這件事件的發⽣直接推動了 RPC 安全的快速進步,也讓我們不禁思考,當貨幣擁有巨⼤的經濟價值時,攻擊者到底願意付出多⼤的攻擊代價,⽽我們⼜需要付出多麼⼤的安全代價才能換來安全呢?
4.2.4 區塊鏈代幣薅⽺⽑
2018 年 7 ⽉ 23 ⽇,啟明星⾠ ADLab 發現了⼀起針對 SIM(全稱 Simoleon)合約代幣的⾃動化薅⽺⽑事件。攻擊者使⽤了巧妙地攻擊思路在短時間內獲得了超過 700 萬的token。
Airdrop (空投)是合約代幣中⼀種⽤於增加⼈⽓的宣傳⼿段,任何沒有接受過空投的賬⼾在第⼀次交易時,都可以獲取免費的⼀⼩部分空投代幣。⽽在以太坊中,每次交易都必須⽀付相應的⼿續費,⽽新建的賬⼾是沒有餘額存在的,這也就導致如果想通過不斷新建賬號的⽅式來獲取⼤量代幣的⽅式不太現實。
然⽽在這起攻擊案例中,攻擊者以其對以太坊深刻的理解,採⽤合約建立合約的⽅式,在合約間實現了以太幣和代幣轉賬,減少了⼈⼒的投⼊、以太幣的損耗,⽤更⼩的攻擊代價換來了更⾼的收益。
2018 年 7 ⽉ 24 ⽇,外國的⼀位安全研究者 Péter Szilágyi 在部落格公開的 Fomo3d 兩個 潛在問題導致 Fomo3d 的空投機制存在問題可以被薅⽺⽑。Fomo3d 是⼀款基於智慧合約的以太坊遊戲,也存在⼀定的空投機制:付出 0.1~1ETH 的同時,將有 25%的⼏率贏得⼀定的空投獎勵。Fomo3d 通過校驗 excodesize 的⽅式來禁⽌合約發起的交易,但⼀個新的合約在初始化的過程中,會執⾏建構函式的程式碼,⽽未初始化完成的合約的 excodesize 變數依舊為0,攻擊者通過在建構函式中完成計算隨機數+轉賬的程式碼,巧妙地繞過了原本的限制,成功的薅了⽺⽑。
這個事件在當時引發了⼤家對空投機制安全性的全新認知,攻擊者在 Fomo3d 雖然隻影響到了空投池中的代幣,但 Fomo3d 本⾝體量巨⼤,其空投池即便只佔百分之⼀也影響了價值百萬的以太坊,且當時類 Fomo3d 的合約遊戲是區塊鏈遊戲的⼀種主流,⼀時間市⾯上多種類似遊戲都受到了不同程度的影響。這種⼀般只有在業務安全中會出現的攻擊思路第⼀次被⼈們認知到,在區塊鏈安全程度不斷提升的同時,新的攻擊維度也在不斷出現。
4.2.5 智慧合約遊戲之殤-Fomo3d 之死
如果說以太坊開啟區塊鏈 2.0 時代,是天時地利⼈和的結果,那麼智慧合約的⽕爆,就永遠離不開 Dapp。如果說⽐特幣證明了區塊鏈作為貨幣的潛⼒,那麼智慧合約遊戲就證明了智慧合約改變時代的潛⼒。智慧合約遊戲和貨幣合約成為了現在這個時代智慧合約的最主要兩種表現形式。
2017 年 11 ⽉,⼀款叫做 CryptoKitties(以太貓)忽然爆⽕,也標誌著 Dapp 的正式興起。
2018 年 7 ⽉ 20 ⽇,⼀款名為 Fomo3d 的區塊鏈遊戲悄然誕⽣。
其中主要規則有這麼⼏條:
1、 遊戲開始有 24 ⼩時倒計時 2、每位玩家購買,時間就會延⻓ 30s 3、越早購買的玩家,能獲得更多的分紅 4、最後⼀個購買的玩家獲得獎池中 48%的 eth
可以說,這是⼀個給予區塊鏈可信原則的賭博遊戲,也是⼀場巨⼤的社會實驗,如果有⼈任何⼀個⼈貪婪的想要得到剩下的所有 eth,那麼這個遊戲就永遠不會結束。
2018 年 8 ⽉ 22 ⽇,Fomo3d 第⼀輪⽐賽結束,⼊場的資⾦超過 40000 以太幣,最終⼤獎⾼達價值超過 2200 萬的 10469 以太幣。如果事情就這麼簡單的結束,那麼也不會受到⼴泛的關注了。在第⼀輪遊戲⼜⼀次⾯臨即將結束的時候,所有⼈都摩拳擦掌打算成為最後⼀個⼤贏家,卻發現在⽤⼾ a169 買下最後⼀次 key 之後,整整 3 分鐘都沒有任何⼀次交易誕⽣,整個 3 分鐘內,總共有 12 個區塊被打包,但卻沒有任何⼀個 Fomo3d 的交易被打包,⽤⼾ a169 在沒有任何⼲擾的情況下順利的拿到了 10469 個以太幣。
⽤⼾ a169 僅僅靠好運就拿到了最終⼤獎嗎?在 a169 的交易被打包到遊戲結束的這段時間內,正常誕⽣的 12 個區塊中,交易數⼤量的異常,且⼤多數交易都發⽣了交易錯誤。
⽽且我們可以發現這些交易錯誤,是由⽤⼾ a169 發起的。攻擊者 a169 使⽤了巧妙地攻擊⼿法,阻塞了其他⽤⼾的購買請求,拿到了 10469 的⼤獎。
那麼這是為什麼呢?
在以太坊上,⽆論任何交易,都建⽴在挖礦上,只有挖到區塊才能打包交易,只有打包成功的交易才有效。所以保證⾜夠的出塊速度對以太坊很重要。所以就有了礦⼯利益最⼤化原則,礦⼯可以⾃⼰選擇打包的交易,⽽礦⼯為了⾃⼰利益的最⼤化,當然會選擇⼿續費⾼的交易先打包。反過來,如果⼀個交易的⼿續費更⾼,那麼他就可能後發先制,先被打包成功。但如果交易失敗,⼀般來說,智慧合約如果遇到執⾏失敗那麼交易就會回滾,這⾥就需要⼀個函式 assert,assert 在 EVM 底層對應的是未知的 opcode 操作指令,⼀旦執⾏失敗,那麼 assert 就會耗光所有的 gas 然後返回失敗。
也就是說,如果有⼀個⼈通過新建合約並⽀付⾼額的⼿續費,那麼他就可以阻塞鏈上所有的交易,在這次攻擊中,攻擊者⽤了⼤概 40 以太幣阻塞以太坊鏈上所有的交易整整 3 分鐘,並控制⾃⼰成為鏈上最後的勝利者,獲得 10469 個以太幣。
Fomo3d 的事件直接揭漏了以太坊底層的致命問題,所有在鏈上對事務順序有依賴的智
能合約被瞬間推翻,當最終的結果⼀定被決定時,那所謂的賭博也就沒有意義了。所有的類Fom3d 遊戲從這天之後開始⾛向沒落…
2018 年 9 ⽉ 24 ⽇,Fomo3D 第⼆輪結束,⼤獎同樣被攻擊者使⽤阻塞攻擊獲得,⼤獎驟降到了 3264 個以太幣。2018 年 8 ⽉ 17 ⽇,類 Fomo3D 遊戲 Last Winner 被⿊客團隊BAPT-LW20 從⾸輪遊戲中獲利 12948 個以太幣,⽽且在接下來的 9 輪開獎中,該賬⼾共奪得 4 次⼤獎。
隨著該問題被曝光的同時,Fomo3D 類智慧合約遊戲和類 Fomo3D 智慧合約逐漸⾛向沒落,事務依賴遊戲遭到致命打擊的同時,Dapp 越來越多的問題也被曝光了出來。
- 2018 年 8 ⽉ 21 ⽇ Godgame 分紅機制存在巨⼤漏洞,賬⼾餘額被攻擊者瞬間洗劫⼀空。 - 2018 年 10 ⽉ 18 ⽇ Dice2win 被公佈存在選擇開獎攻擊、選擇中⽌攻擊、任意開獎攻擊等。
再加上以太坊的出塊速度越來越不能滿⾜⼈們的需求,越來越多的 Dapp 尤其是智慧合約遊戲正在逐漸⾛出舞臺…
截⾄完成本報告時,整體以太坊 Dapp 都處於低迷的情況下…
4.2.6 blockwell.ai ⼩⼴告事件
2018 年 9 ⽉ 7 ⽇早上 1 點左右,許多以太坊賬⼾都收到了⼀種名為 blockwell.ai KYCCasper Token 的轉賬訊息,其中有的是收到了這種代幣,有的是⽀出了這種代幣。
得到的⽤⼾以為受到了新幣種的空投,滿⼼歡喜的開啟之後發現並沒有獲得任何代幣。轉出的⽤⼾著急開啟錢包,以為是錢包被盜轉⾛了代幣,實際上卻毫⽆損失。回過神來看看代幣的名字,忍不開啟 blockwell.ai 檢視原因,⼀次成功的⼴告誕⽣了。
這是為什麼呢?
交易平臺/各類錢包為了⽀持智慧合約合約代幣, ⼤部分以太坊錢包對滿⾜ ERC20 標準的合約代幣提供⽆縫接⼊,也就是說,如果你發⾏的智慧合約符合 ERC20 標準,那麼該合約代幣就可以被交易平臺/各類錢包承認。
⽽在 ERC20 標準中規定,如果發起交易就⼀定需要觸發 Transfer 事件,⽽交易平臺和各類錢包就是通過事件⽇志來獲取交易資訊的。
所以攻擊者新建了⼀個名為 blockwell.ai KYC Casper Token 的新合約代幣,然後在合約內⾃由的發起交易。僅僅花費約 2.28 美元的⼿續費,就可以有針對的向 1000 個⽤⼾傳送⼴告。整個事件的核⼼在於攻擊者利⽤了交易平臺/各類錢包對符合 ERC20 標準的合約盲⽬信任,利⽤本⾝的 featrue 來實現最初的需求。這件事件也標誌著智慧合約的安全維度從最開始本⾝的合約安全,逐漸開始向業務安全威脅發展中。、
4.2.7 EOS Dapp 安全事件頻發
隨著 2018 年以太坊智慧合約的爆⽕,以太坊的智慧合約從各個⽅⾯都經受到了挑戰,除了安全問題本⾝,以太坊不可篡改以及去中⼼化也直接導致了智慧合約安全週期⻓,安全維護難度⼤等問題,在⼀定程度上也擴⼤了安全事件的危害等。
EOS 作為試圖開啟區塊鏈 3.0 時代的貨幣,⼀直在試圖突破⼀些以太坊中嚴重的桎梏。
EOS 除了⼤⼤增加了出塊速度,還有⼀個最⼤的特點就是,它通過推舉 21 個超級節點來代替去中⼼化,這⾥且不說這種⽅式是否合理,只是說,對於試圖增加對合約控制程度的開發者來說,EOS 可能更加適合,也正是因為這個原因,EOS 成了最被寄予厚望的企業級區塊鏈作業系統。
但⾃從 2018 年下半年以來,EOS 的 Dapp 的安全事件頻發,整個 2018 年下半年,就有超過 18 個 EOS 遊戲被爆出通過假充值漏洞、重放攻擊、假幣攻擊、回滾攻擊等各種⽅式被攻擊,損失超過 39 萬個 EOS,折算成⼈⺠幣接近 700 萬。
截⾄本⽂完成時,針對 EOS Dapp 的各類攻擊⽅式仍然在不斷髮⽣中,EOS 的安全仍然值得開發者更多的考量以及深思。
4.3 知道創宇以太坊合約審計 CheckList & HaoTian
在⻅證了 2018 年區塊鏈安全軌跡的過程中,以太坊智慧合約安全可以說是最主要的旋律,不同於傳統安全例如交易所安全、錢包安全,智慧合約安全的安全問題建⽴在區塊鏈新的基礎平臺,使⽤了⼤家不熟悉的 solidity,⽽且由於區塊鏈不可篡改、去中⼼化的特性,智慧合約的安全問題本⾝是安全問題的較少,⽽諸多在傳統漏洞中我們⼀般稱之為缺陷的問題,在智慧合約中同樣會轉變為安全問題。
在不斷審計智慧合約的過程中,我們逐漸把智慧合約各種審計過程中遇到的問題總結成漏洞模型,並彙總為《知道創宇以太坊合約審計 CheckList》。在 CheckList 中,我們把以太坊審計中遇到過的問題分為 5 ⼤類,
- 編碼規範問題 - 設計缺陷問題 - 編碼安全問題 - 編碼設計問題 - 編碼問題隱患
其中涵蓋了超過 29 種會在以太坊審計過程中會遇到的問題,其中為實際的程式碼安全問題只有 4 種,溢位問題、重⼊漏洞、call 注⼊、重放漏洞,其餘 25 種都是業務邏輯相關以及形式化驗證相關的問題。建⽴在 CheckList 的基礎上,我們開始嘗試對全⽹智慧合約做掃描分析。
“昊天塔(HaoTian)”是知道創宇 404 區塊鏈安全研究團隊獨⽴開發的⽤於監控、掃描、分析、審計區塊鏈智慧合約安全⾃動化平臺。我們利⽤該平臺針對上述提到的《知道創宇以太坊合約審計 CheckList》中各類問題在全⽹公開的智慧合約程式碼做了掃描分析。
截⾄ 2018 年 12 ⽉ 19 ⽇為⽌,以太坊主鏈上的公開合約數量為 53447,⽽以太坊主鏈上的智慧合約已經超過 300 萬。

其中,各類問題涉及到的合約數量為:

建⽴在 HaoTian 的基礎上,通過對 opcode 的初步反編譯以及對 opcode 的分析。404實驗室共得出如下資料/結論:
截⾄ 2018.12.28 為⽌,其中開源合約總數為 53041 份,經過去重,⾮重複合約共49256 份。
以太坊主鏈上部署了共 3079607 份智慧合約,其中⾮重複合約只有 123851 份。
其中⼀部分智慧合約可能是合約的部署者測試多次部署,但還是能說明,由於 solidity的剛興起,⼤部分智慧合約的開發者仍然停留在復⽤其他⼈的程式碼,這種情況下,⼀個漏洞就可能同時危害多個合約。
建⽴在所有開源合約的基礎上,我們重新對所有合約做進⼀步分析。
在所有的 53041 份智慧合約中,其中共使⽤了 113635 個不同的函式命名。其中前⼗的函式為
再進⼀步分析,通過獲取開源合約所對應的位元組碼,對位元組碼的預處理,將其分割為函式,對函式的位元組碼進⾏對⽐,結合其對應的原始碼,對函式進⾏去重。(當然,也可以直接掃描原始碼進⾏統計,不過需要進⾏⼀些語法、語義分析,⽽實驗室內部有智慧合約的逆向⼯具,通過位元組碼進⾏對⽐可以避免進⾏語法、語義分析)。
開源合約中,共有 84606 不同的函式體,然後通過⼀定的資料聚合,對不同函式體使⽤頻次進⾏排序:
通過上⾯的資料,我們不難發現,以太坊智慧合約中,代幣合約仍然佔智慧合約的⼤⽐重,這也證明了 Dapp 的貨幣屬性是智慧合約最主要的部分之⼀。
4.4 ⼩結
2018 年是⻅證了區塊鏈興衰浮沉的⼀年,區塊鏈 2.0 時代的到來再加上 dapp 的興起,⼀時間⻛頭⽆兩。但從針對交易錢包的攻擊,到以太坊興起直接對智慧合約的攻擊、從對交易平臺的攻擊,到直接對 RPC 節點攻擊、從普通的攻擊滲透轉為深⼊智慧合約的業務邏輯,⽆論是傳統安全領域還是新興的智慧合約/區塊鏈實現等領域,區塊鏈這項技術及其周邊產業都在經歷著安全的考量。
雖說⽬前絕⼤多數智慧合約遊戲⽬前仍然未能逃出賭博、龐⽒騙局的圈⼦,但區塊鏈仍然有⼀定的應⽤前景。經歷過⼀次次的安全危機,區塊鏈⾏業正在形成合理的健康的安全防禦策略,智慧合約也在積累安全有效的開發實踐。這些都將會是未來區塊鏈應⽤時不可多得的財富。
雖說 2018 年虛擬貨幣的整體價值⼀路下跌,但區塊鏈技術的價值並不等同於虛擬貨幣的價值。區塊鏈技術本⾝⽆法⽤價值衡量,但將技術應⽤到⽣活實踐當中,才能脫離虛擬的貨幣價值,實現真正的技術價值!
五.2018 年蜜罐捕獲的資料與趨勢
2017 年末,知道創宇 404 實驗室蜜罐團隊開發並部署了“煉妖壺”蜜罐系統,並在2018 年被動收集觀測⽹絡空間發⽣的⼀些安全事件。在對 2018 年資料進⾏統計分析思考後,我們認為可以通過單獨的⼀個⼤章來詳細說明⽬前⽹絡空間時時刻刻都在受到威脅。
但是蜜罐資料都來⾃於被動接收,所以在部分事件中蜜罐可能只捕獲到部分資料,因此得出的結論也可能是⽚⾯的。特別是 5.1.3 節?2018 年反射 DDOS 攻擊發起情況,運營商防護/攻擊者的選擇/蜜罐實現⽅法等等都會對最終的資料造成影響。在此也請讀者注意:該部分的資料和結論,可能存在部分偏差。
5.1 2018 年蜜罐捕獲資料
5.1.1 2018 年⽹絡空間端⼝被掃描情況
2018 年蜜罐被掃描埠統計如下,全年 23,22,445,1433,5903,80,3389 埠都被⼤量掃描。23、22 埠是⼤部分僵⼫⽹絡的⾸選。由於 MS17-010 漏洞的存在,445 埠掃描量也⼀直⾼居不下。由於 MyKings 僵⼫⽹絡的存在,1433 埠、5903 埠等也躋⾝⼗⼤被掃描埠的⾏列。相⽐之下,2016 年造成德國斷⽹的漏洞影響正在逐漸褪去,7547埠被掃描情況正在降低。
值得⼀提的是 8291 端⼝,由於今年三⽉份多個僵⼫⽹絡開始利⽤ MikroTik 路由器的漏洞在互聯⽹上傳播,所以從三⽉開始,8291 端⼝被掃描次數逐漸升⾼,在六⽉份達到頂峰。
從端⼝被掃描情況瞭解⼀個通過蠕⾍感染的僵⼫⽹絡/⼀個漏洞的⽣命週期,這也是體現蜜罐的價值所在。
5.1.2 2018 年主動攻擊
經過過濾去重篩選後,2018 年蜜罐共捕獲到惡意攻擊流量(相同漏洞,不同攻擊流量不視為同⼀條記錄)?15294 條,提取出 560 條⾮重複遠端命令執⾏漏洞所執⾏的命令。
其中利⽤到的漏洞、典型 payload 如下:
(注:相關漏洞詳情可以訪問 https://www.seebug.org 搜尋 CVE 編號,沒有 CVE 編號的漏洞詳情可以從本報告參考連結 7中尋找)
5.1.3 2018 年反射 DDOS 攻擊發起情況
2018 年對外放置了主流反射?DDOS?的蜜罐,由於運營商等多⽅⾯因素影響,最終我們能⽇常穩定獲取到五種反射 DDOS 攻擊被利⽤的資料。
1. dns 2. ssdp 3. tftp 4. ntp 5. snmp
其中DNS反射放⼤攻擊和 SSDP 反射放⼤攻擊蜜罐監測到被利⽤的主⼒,剩下三種反射放⼤攻擊被利⽤次數較少。
根據已有的資料,假定 DNS、TFTP、SSDP、NTP、SNMP 的反射放⼤倍數分別為:13,46.5,22,422,18,單個請求使⽤的流量⼤⼩是:43bytes,13bytes,82bytes,8bytes,40bytes,則反射放⼤攻擊產⽣的流量堆疊圖如下所⽰:
隨著虛擬貨幣價格的升⾼、多國管控、運營商防禦等因素影響,2018 年上半年⽹絡空間反射放⼤攻擊利⽤次數呈現下降趨勢,反射放⼤攻擊⽅式也由 DNS 反射放⼤為主轉變為SSDP 反射放⼤攻擊為主。
2018 年下半年,虛擬貨幣的不斷崩盤導致部分⿊產從業者將重⼼重新移回 DDOS ⾏業,9 ⽉開始 DDOS 反射放⼤攻擊被利⽤次數逐漸提⾼。
5.2 2018 年互聯⽹漏洞利⽤趨勢
從 2016 年 Mirai 僵⼫⽹絡原始碼公開以來,⽹絡空間安全形勢愈加嚴峻。相較於傳統僵⼫⽹絡,部分 2018 年新興的僵⼫⽹絡繼承了傳統僵⼫⽹絡蠕⾍式傳播等特點,並且實現了更快的 1day 利⽤。相⽐ 2017 年 4 ⽉份,Goahead 漏洞從出現到被利⽤⼤約使⽤了⼀個⽉的時間,⽽ 2018 年 4 ⽉份出現的 GPON 路由器漏洞在⼗天時間內就已經被多個僵⼫⽹絡利⽤。根據蜜罐的資料,在 404 實驗室今年應急的 127 個漏洞中,被僵⼫⽹絡利⽤的物聯⽹裝置漏洞有兩個:
由於 2018 年上半年區塊鏈⾏業的⽕爆,⾼效能伺服器成為了⽹絡⿊產的主要⽬標之⼀。各種能夠遠端命令/程式碼執⾏的漏洞也成為了攻擊者的⽬標之⼀。部分僵⼫⽹絡家族也集成了這種能⼒。根據我們捕獲到的部分資料,以下今年曝光的 WEB 漏洞也受到了挖礦⼈員的⻘睞。
(注:相關漏洞詳情可以訪問 https://www.seebug.org 搜尋 CVE 編號,沒有 CVE 編號的漏洞詳情可以從本報告參考連結 7中尋找)
值得⼀提的是Thinkphp5遠端命令執⾏漏洞,在官⽅釋出更新前,知道創宇雲安全的⽇志中共檢測到 62 次漏洞利⽤請求。時間跨度從官⽅釋出更新的三個⽉前(2018 年 9 ⽉ 3⽇)到 2018 年 12 ⽉ 9 ⽇。多個虛擬幣類⽹站和多個投資⾦融類⽹站成為了該漏洞 0day 階段的攻擊⽬標。攻防對抗的升級提⾼了漏洞的修復效率,也讓攻擊者更傾向於實現 0day 漏洞的價值最⼤化。
另⼀個類似的案例是 Ecshop 遠端命令執⾏漏洞,在 0day 曝光前(2018 年 8 ⽉ 31 ⽇前),該 0day 多被⽤於⼩範圍的定點攻擊,⽽在 0day 曝光後,迅速被攻擊者利⽤。具體細節讀者可以參考《ECShop?0day?的墮落之路》。下圖是該漏洞被利⽤情況統計(資料來源:知道創宇雲安全):
由上述兩個實際案例可以看出:攻防對抗的升級讓更多優質漏洞在 0day 階段就被使⽤者創造價值,這也讓暗⽹和區塊鏈相關的主要虛擬貨幣在未來仍有⼀定的⽣存空間。
在官⽅釋出安全更新的 8 天時間內(2018 年 12 ⽉ 10 ⽇-2018 年 12 ⽉ 17 ⽇),該漏洞被⼴泛利⽤,共有 5570 個 IP 對 486962 個⽹站發起 2566078 次攻擊。
除了以上漏洞以外,蜜罐還觀察到部分漏洞被攻擊者糅合在⼀個請求中,以達到⼀次攻擊可以感染多個型別裝置的⽬的:
相較於往年,漏洞利⽤的多樣化、⻜速化是 2018 年⽹絡空間漏洞利⽤的新趨勢。毫⽆疑問,攻防對抗已經進⼊了⽩熱化的階段了。
六.結語
在當今的時代,⽹絡空間戰爭是多級別、多⻆度的對抗,被攻擊⽅式的不可預知性往往讓防禦⽅處於⼀個滯後的位置。 2018 年更多漏洞的爆發、新興安全領域區塊鏈的到來、⽹絡空間裝置⻜速增⻓帶來的隱患、⽹絡空間漏洞被更快更多地利⽤讓滯後帶來了更⼤的威脅。
感謝 2018 年 404 實驗室每⼀個⼩夥伴的努⼒與付出,持續⼀年的努⼒充實了這份報告的內容。
希望這份報告中的資料可以為讀者帶來⼀份新意,也希望我們在 2019 年能夠做得更好。謝謝。
七.參考連結
[1] ZoomEye ⽹絡空間搜尋引擎
[2] Seebug 漏洞平臺
[3] GPON Home Gateway 遠端命令執⾏漏洞被利⽤情況
[4] 2018 上半年暗⽹研究報告
[5] Thinkphp5 遠端程式碼執⾏漏洞事件分析報告
[6] ZoomEye Dork
https://www.zoomeye.org/searchResult/report?q=after%3A%222018-01-01%22&t=host
[7] Seebug 收錄的相關漏洞詳情
https://www.seebug.org/vuldb/ssvid-90227
https://www.seebug.org/vuldb/ssvid-90754
https://www.seebug.org/vuldb/ssvid-97024
https://www.seebug.org/vuldb/ssvid-97595
https://www.seebug.org/vuldb/ssvid-92493
https://www.seebug.org/vuldb/ssvid-97343
https://www.seebug.org/vuldb/ssvid-97715
[8] ECShop 0day 的墮落之路
[9] 慢霧社群關於利⽤ JSON-RPC ⾃動化盜幣事件的報告
https://mp.weixin.qq.com/s/Kk2lsoQ1679Gda56Ec-zJg
[10] 啟明星⾠ ADLab 關於薅⽺⽑事件的報告
https://mp.weixin.qq.com/s/R6L1BpEoUvcjsl-uQqM0Tg
[11] 安⽐實驗室關於 Form3D 遊戲事件的報告
https://zhuanlan.zhihu.com/p/45330743
[12] BTC/ETH/EOS 對⽐圖資料取樣來源
[13] 活躍 dapp 列表截圖來源
https://www.dappradar.com/rankings/protocol/ethereum/category/gambling
*本文作者:Knownsec知道創宇;轉載請註明來自FreeBuf.COM