買比特幣 買比特幣
Ctrl+D 買比特幣
ads

RON:首發|加密錢包安全不可小覷 謹防黑客遠程控制設備_ECT

Author:

Time:1900/1/1 0:00:00

CertiK安全團隊在Symbol桌面錢包中發現了一個遠程執行代碼漏洞,并將該漏洞提交到了Symbol漏洞賞金計劃。Symbol對CertiK提交的報告非常重視,即刻采取了安全解決措施,并及時更新了代碼。目前該問題已在v0.9.11版本中得到修復。

HackerOne報告目前尚未公開,但在征得了Symbol的允許后,本文將公開于此分享此次事件。在此,CertiK對Symbol提供的賞金獎勵,以及對公開分享漏洞發現的許可表示感謝。

Symbol wallet是一個基于Electron的桌面應用程序,此次發現的漏洞與Electron配置有關。Electron是不是聽起來很耳熟?但它可不是你在物理化學課上學到的那個電子。在展開漏洞分析之前,不妨先來看看本文中的Electron是什么,在安全層面有什么值得注意的事項。

Electron是由GitHub開發和維護的開源軟件框架,它允許開發人員使用HTML,CSS和Javascript等網絡技術來構建跨平臺的桌面應用程序。

Electron通過將Chromium引擎和Node.js組合到一起來實現這一目標。一些知名的Electron應用程序包括Atom編輯器,VisualStudio Code和Slack等。

使用Electron的優點:

Web開發人員可以使用主要的Javascript框架庫(包括Angular,React和Vue)構建能在不同操作系統上運行的跨平臺桌面應用程序。此過程無需再花費時間學習新的編程語言。

調試基于Electron的應用程序比調試傳統的桌面應用程序容易。Chromium中的DevTools擴展允許開發人員使用和Web應用程序相同的方式調試其基于Electron的應用程序。

清華版《山海經》系列數字藏品將于琥珀數字藝術平臺首發:金色財經報道,近日,國內領先的數字藏品發行平臺琥珀數字藝術宣布已與清華大學出版社達成戰略合作,雙方將聯合發布清華版《山海經》系列數字藏品。此外,雙方將以此次合作為契機,共建山海經元宇宙,持續發掘傳統文化IP背后的數字價值內核。

據了解,此次合作雙方以中華古代奇書《山海經》為藍本,依托山海經故事中的知名傳統文化IP,通過琥珀數字藝術數字平臺首次對外發行清華版《山海經》系列珍稀畫冊數字藏品,生動再現傳統文化IP的元宇宙時代價值,實現中華傳統文化的“IP元宇宙化”。(新浪)[2022/4/19 14:33:45]

Electron的安全性以及Node.js的危險性

基于Electron的應用程序本質上是一個Web應用程序,因此它包含常見的Web漏洞,例如跨站點腳本(XSS)、Sql注入、身份驗證和授權漏洞。

Electron提供許多輔助桌面應用程序開發的API,此外,它還可以使用Node.js模塊。

Node.js允許基于Electron的應用支持比在Web瀏覽器中運行的Web應用更多的功能。但是,啟用Node.js會帶來一定的安全風險。如果攻擊者可以找到在應用程序中注入JavaScript,就可以在目標的計算機上執行系統命令。

如果想要檢查Electron應用程序是否在啟用了Node.js,用戶可以在開發控制臺中發送模塊導入功能“require”。在macOS中,控制臺可以通過同時按“option + command + i”打開。

如果Node.js未被啟動,控制臺將返回錯誤消息 “require is not defined”:

如果Node.js被啟用,控制臺將返回"require"的相關信息:

Gate.io 將于3月5日 20:00首發上線YIELD交易:據官方公告,Gate.io將于2021年3月5日(今日) 20:00首發上線Yield Protocol (YIELD) 交易,YIELD充值服務已開放。[2021/3/5 18:17:20]

在開發控制臺中發送以下命令,就能在macOS中彈出計算器:

require('child_process').exec('/System/Applications/Calculator.app/Contents/MacOS/Calculator')

為了減輕因為注入JavaScript而引起的遠程代碼執行的風險,從版本5.0.0開始,Electron默認禁用了程序對Node.js模塊的訪問。開發人員可以通過在配置文件中將“nodeIntegration”設置為true來啟用對Node.js模塊的使用,從安全角度來說并不推薦。

值得注意的是在2018年,Electron被發現有一個嚴重漏洞可被攻擊者利用來訪問Node.js模塊,即使在配置中已經被禁止。參考文獻1也對此進行了詳細說明,因此在開發時請務必使用最新版本的Electron。

在了解了基于Electron的應用程序相關特征之后,現在可以深入探討在Symbol桌面錢包中發現的漏洞。

Symbol桌面錢包是開源的,可以在其Github(參考文獻2)中找到該應用的源代碼。build.js(參考文獻3)是其應用程序的Electron構建配置文件。下面這段Build.js中的代碼檢查程序是否在“darwin”(macOS)上運行。如果不是,app.on將使用“createWindow”函數創建瀏覽器窗口。

....code...  

if (process.platform === 'darwin') { 

BitMax交易所將首發上線e-Money (NGM):BitMax交易所將于1月20日 22:00(北京時間)首發上線e-Money (NGM),并開放NGM/USDT交易,充提現已開放。

e-Money是貨幣互聯網透明、計息、以貨幣為基礎的穩定幣的領先發行者。NGM代幣可用于支付交易執行費用,以及作為抵押代幣,以NGM通貨膨脹和交易費用的形式獲得成比例的抵押獎勵。

更多詳情請至BTMX.io官網查詢。[2021/1/20 16:35:12]

    app.on('ready',createMac) 

  } else { 

    app.on('ready',createWindow) 

 

....code... 

在“createwindow”函數中,函數內部的“ windowOptions”變量包含瀏覽器窗口配置選項。注意,紅色部分顯示的行將“nodeIntegration”變量設置為true,這表示此應用程序啟用了Node.js。

...code... 

function createWindow(){      

    const windowOptions = {   

      minWidth: width,   

      minHeight: height,   

BitMax將聯合首發Maps.me:據官方消息,BitMax交易所將于2月1日 22:00(北京時間)聯合首發Maps.me (MAPS),并開放MAPS/USDT交易。充值已開放。

BitMax為慶祝Maps.me (MAPS)上線,將于1月26日22:00(北京時間)開啟拍賣活動。本次將以限價競拍(搖號抽簽)+自由競拍(競價排名)兩種模式同時進行,用戶可同時參與兩種模式拍賣,每位用戶最多可得7份拍賣品(14,000 MAPS)詳情請見官網。[2021/1/18 16:25:42]

      width: width,   

      height: height,   

      title: app.getName(),   

      titleBarStyle: 'hiddenInset',   

      webPreferences: {   

        nodeIntegration: true,    

      },   

      resizable: true,   

    }   

幣信、KKEX全球首發BQT:BQT今日上線幣信錢包及幣信戰略合作交易所KKEX,幣信已開通BQT零手續費場外交易擔保支付等功能,KKEX也將開放零手續費BQT/BTC交易對。據悉,幣信錢包與KKEX交易所已打通轉賬渠道,互轉零手續費秒到賬。

上線前就備受各方矚目的BQT是BQI生態的社區權益證明(Community Proof Of Stake),BQI生態致力于區塊鏈以及虛擬貨幣行情大數據,以開放的形式給區塊鏈行業提供標準的數據輸出,并通過BQT傳遞社區價值,連接生態社區的所有用戶及成員。[2018/5/30]

....code...   

    mainWindow= newBrowserWindow(windowOptions) 

}   

根據build.js配置文件,可以了解到如果此應用在Windows操作系統上運行,Node.js將被啟用。為了利用啟用的Node.js,攻擊者需要在應用程序中注入任意的JavaScript。攻擊者一般可以通過利用XSS(跨站點腳本)漏洞或者在當前Electron窗口中加載任何包含攻擊者注入的JavaScript的網站來實現攻擊。

Symbol桌面錢包(v9.7版)提供了瀏覽“新聞”的功能,只要用戶點擊新聞中的鏈接,應用程序便會從錢包窗口加載外部網站(圖中展示的是Github)。

那么漏洞又是如何被利用的呢?

為了演示該漏洞利用的流程,技術人員在個人網站上托管了以下代碼段。在Github上可以很容易的放置指向其網站的URL。當“nodeIntegration”設置為true并啟用Node.js,在“child_process”模塊的幫助下可以將任意的JavaScript執行升級為遠程代碼執行。

用戶訪問包含payload的頁面,并點擊頁面里的“Close”按鈕后,用戶的計算機上將彈出計算器。在目標系統中彈出計算器是證明成功利用代碼執行漏洞的一種方法。

Proof-of-Concept(視頻位于頁首):

<!DOCTYPEhtml> 

<h1>click me</h1> 

<button type="button" onClick="rce_calc()">Submit</button> 

<script> 

functionrce_calc(){ 

const{ exec } = require('child_process'); 

exec('calc'); 

}  

</script> 

Symbol在修復中將“nodeIntegration”設置為false,禁止了JavaScript對Node.js模塊的訪問。此更改已經反映在了他們當前的build.js(參考文獻4)文件中。他們還更新了“新聞”功能,停止了將遠程網站加載到Electron窗口中的行為。

做為安全研究員,當在一個程序中發現漏洞,我們總會嘗試去探索此類漏洞是否在別的應用中存在。通過互聯網搜索,CertiK安全團隊發現了另一個基于Electron的加密貨幣錢包: MyCrypto。在測試時,技術人員發現MyCrypto將“nodeintegration”設置為true,并啟用了Node.js。雖然沒有找到攻擊此配置的辦法。但是我們不應該給攻擊者將“self-xss”轉化為命令代碼執行的機會。

CertiK旨在為加密社區的安全做出貢獻,并幫助企業保護用戶資產。技術人員在對方的Github 倉庫中提交了Issue。

MyCrypto十分重視,并回復該漏洞將在下一版本中修復。

Electron本身是非常優秀的軟件框架,但開發人員要注意不要因為配置錯誤而使程序暴露在危險之中。在產品中使用新技術時要小心,要保持謹慎并了解潛在的安全風險。這里CertiK安全團隊總結了幾個要點來提高基于Electron的應用程序的安全性:

在生產版本中移除對development console的訪問。

除非應用程序絕對必要,否則將“nodeintegration”設置為false。

使用“event.preventDefault()來禁止應用程序加載外部網頁。

使用React,Vue或Angular(2+)等前端框架開發應用程序,以減少應用程序包含XSS(跨站點腳本)漏洞的機會。

持續使用最新版本的Electron框架,并保持更新。

開發Electron應用程序時,請務必閱讀參考官方安全指南(參考文獻7)。其中包含了可以提高Electron的應用的安全性的建議。

無論是由內部安全團隊還是第三方公司執行安全審計和滲透測試,對于確保系統的安全性都是至關重要的。專業的安全人員會試圖從“惡意黑客”的角度來破壞系統,幫助在真正的黑客利用漏洞之前識別和補救漏洞。

對于專業安全服務提供商而言,要提高安全測試水平的唯一途徑就是不斷學習。CertiK的安全工程師自始至終都在通過廣泛涉獵不同目標來提高自身的滲透測試技能,從而為客戶提供最佳的滲透測試服務。

參考文獻:

https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/cve-2018-1000136-electron-nodeintegration-bypass/

https://github.com/nemfoundation/symbol-desktop-wallet

https://github.com/nemfoundation/symbol-desktop-wallet/blob/14ddfd44fe9a54b54f8261dfaa68b2f88be211ce/public/build.js

https://github.com/nemfoundation/symbol-desktop-wallet/blob/master/public/build.js#L237

https://github.com/terra-project/station-electron/blob/5a919b87323c9d1d9c76f7c4a7deff5d731d235e/public/electron.js

https://www.electronjs.org/docs/tutorial/security#5-do-not-disable-websecurity

https://www.electronjs.org/docs/tutorial/securit

了解更多

General Information: info@certik.org

Audit & Partnerships: bd@certik.org

Website: certik.org

Twitter: @certik.org

Telegram: t.me/certik.org

Medium:medium.com/certik

幣乎:bihu.com/people/1093109

Tags:BSPNBSECTRONBSP價格nbs幣未來價格HECTA幣1Tronic Network

fil幣價格今日行情
USD:金色觀察 | 區塊鏈成職業新寵 廣東企業占半壁江山_能投入嗎

近日,三部門聯合發布九大新職業引發熱議,其中有兩個職業均與近年來大熱的區塊鏈有關,分別為“區塊鏈工程技術人員”和“區塊鏈應用操作員”.

1900/1/1 0:00:00
比特幣:富國銀行預計股市將遭到拋售 BTC價格將隨之下跌?_1比特幣等于多少美元

富國銀行(Wells Fargo)預計美國企業養老金將有350億美元轉入固定資產收益領域。分析師認為,這可能會導致股市大幅拋售,并且鑒于比特幣和股票之間的相關性,這可能會使比特幣很容易出現回調.

1900/1/1 0:00:00
COI:成立近三年 58COIN 憑什么能保持0事故?_區塊鏈

作為一家成立了近三年的合約平臺,58COIN雖然爭議不斷,但是根據公開渠道信息顯示,其在用戶資金安全方面從未出現過紕漏,要知道58作為合約平臺的領頭羊,單合約日平均成交量早已是億級體量.

1900/1/1 0:00:00
AKI:區塊鏈上半年投融資報告:融資總額同比增長113% 交易和支付類項目受青睞_staking幣崩盤了嗎

受“新冠”疫情的持續影響,2020年全球經濟發展不容樂觀,IMF在最新的《世界經濟展望》報告中預測今年全球經濟將萎縮4.9%.

1900/1/1 0:00:00
FIL:臨近主網上線 眾交易所緊鑼密鼓上線FIL產品_OIN

Filecoin主網上線臨近,除了搶“頭礦”、云算力和投資布局外,交易所們也啟動布局。金色財經對于目前交易所上線FIL期貨、托管等相關產品的情況進行盤點.

1900/1/1 0:00:00
LEA:日媒:G20擬為數字貨幣交易“開綠燈” 將探討監管措施_Clearpool

共同社11日報道,多名G20相關人士透露,二十國集團(G20)已朝著事實上允許代替現金的結算工具“數字貨幣”的方向,啟動了協調,預計10月將全面開始探討防止洗錢等監管措施.

1900/1/1 0:00:00
ads