比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

首發 | 漏洞分析:開源工具CORS-anywhere第三方軟件配置錯誤的危險_HER

Author:

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

在最近一次進行的Web應用程序滲透測試中,CertiK技術團隊發現了一個預料之外的嚴重漏洞。在獲得客戶的許可后,我們將此發現寫入本文以做分享,幫助相關開發人員未來規避同樣的錯誤。

目標Web應用程序是一個區塊鏈瀏覽器,它具備區塊信息查找、交易歷史記錄查找、部署的智能合約等功能。

該應用程序的前端是用React編寫的,React是一個Web框架,可以很好地預防XSS(跨站點腳本)和HTML注入等攻擊。

在實現方面,前端JavaScript定期從區塊鏈RPC API中獲取新的塊數據。因為區塊鏈是一個簡單的應用程序,沒有“傳統的”后端服務器,不涉及身份驗證和授權,也不需要處理大量的用戶輸入。因此一般來說,很難在區塊鏈瀏覽器應用程序中找到嚴重漏洞。

然而,在滲透測試期間,CertiK團隊發現了一些關于用于獲取塊數據的請求URL有些異常。該URL看起來像這樣:

https://cors.x.y/http://load-balancer.us-east-1.elb.amazonaws.com/blocks/270865

如果仔細觀察,就能發現這個完整的URL由兩個前后連接的URL組成。

“第二個”URL看起來像一個AWS負載均衡器的DNS名稱,那第一個指向的又是什么?

單獨訪問第一個URL”https://cors.x.y”后,它進入一個名為“CORS-anywhere”的開源工具的默認頁面。CertiK技術團隊發現該工具配置錯誤,從而能夠訪問敏感信息。

下文將進一步解釋背景,并敘述CertiK技術團隊的發現及進行的其他研究。

在了解調查結果之前,先來了解一下CORS(跨源資源共享)。如果你有Web開發的經驗,應該無數次遇到這種bug:

LBank藍貝殼于4月9日16:50首發 BOSON:據官方公告,4月9日16:50,LBank藍貝殼首發BOSON(Boson Protocol),開放USDT交易,4月9日16:00開放充值,4月12日16:00開放提現。上線同一時間開啟充值交易BOSON瓜分10,000 USDT。

LBank藍貝殼于4月9日16:50開啟充值交易BOSON瓜分10,000 USDT。用戶凈充值數量不少于1枚BOSON ,可按凈充值量獲得等值1%的BOSON的USDT空投獎勵;交易賽將根據用戶的BOSON交易量進行排名,前30名可按個人交易量占比瓜分USDT。詳情請點擊官方公告。[2021/4/9 20:02:26]

當一個Web應用從與該資源本身所在的服務器不同的域、協議或端口請求一個資源時,Web應用會發起一個跨域 HTTP 請求。如果響應中沒有正確的“access-control-allow-origin”標頭(引用),瀏覽器將阻止發起跨域請求的網頁,讀取跨域請求返回的內容。

在本文中,將不會太過深入地討論SOP(同源政策)和CORS(跨源資源共享)機制。簡而言之,SOP會阻止JavaScript讀取跨源請求中的響應,而CORS則是一種繞開由同源策略施加的限制的方法。

區塊鏈瀏覽器中的跨域請求來自何處?為什么我們需要處理它?

在這種情況下,上面提到的區塊鏈瀏覽器的后臺是Cosmos鏈。在Cosmos中,與節點進行交互的方式是利用JSON RPC API(https://cosmos.network/rpc) 。節點的主機名通常是由開發人員分配的,或者是AWS應用程序負載平衡器的DNS名稱。

如果區塊鏈瀏覽器的主機名是“explorer.mychain.com”,而RPC API的主機名是“api.mychain.com”。

那么當瀏覽器“explorer.mychain.com”向“api.mychain.com”發出請求時,它就會成為一個跨域請求。如果其中沒有正確的CORS標頭,瀏覽器就會阻止應用網站讀取RPC API的HTTP響應。

LBank藍貝殼于4月10日01:00首發 BOSON,開放USDT交易:據官方公告,4月10日01:00,LBank藍貝殼首發BOSON(Boson Protocol),開放USDT交易,4月9日23:00開放充值,4月12日16:00開放提現。上線同一時間開啟充值交易BOSON瓜分10,000 USDT。

LBank藍貝殼于4月10日01:00開啟充值交易BOSON瓜分10,000 USDT。用戶凈充值數量不少于1枚BOSON ,可按凈充值量獲得等值1%的BOSON的USDT獎勵;交易賽將根據用戶的BOSON交易量進行排名,前30名可按個人交易量占比瓜分USDT。詳情請點擊官方公告。[2021/4/7 19:54:33]

目前有很多可以解決跨源請求問題的方法,文章末尾處會給出解釋。

對于此區塊鏈瀏覽器,CertiK技術團隊發現它使用名為“CORS-anywhere”的類似代理工具作為處理CORS標頭的解決方案。因此團隊就此對“CORS-anywhere”展開研究。

CORS-anywhere是一個開源工具,為開發人員提供了一種處理跨域請求的方法。該項目存儲庫在Github上有3千多顆星,這足以證明它的受歡迎程度。

“CORS -Anywhere是一個NodeJS代理 ,它將CORS標頭添加到代理請求中”。

在著手研究這一工具時,Github(Github issue)上有一個關于CORS-anywhere的潛在安全風險的提問。就此問題,作者(Rob--W)給出了他的觀點。

簡而言之,他的回答列出了3個要點:

拒絕服務(Denial of Service)

IP地址欺騙

SSRF(服務器端請求偽造)

在對于Web應用程序滲透測試中,最有趣的是最后一個要點——服務器端請求偽造。

首發 | 歐科云鏈推出“天眼方案”推動鏈上安全系統再升級:8月28日,區塊鏈產業集團歐科云鏈宣布推出區塊鏈“天眼方案”,主要通過鏈上數據追蹤系統研發、對外技術支持、凝聚企業眾力等途徑,全面助力區塊鏈安全提升和產業平穩健康發展。

據了解,在“天眼方案”下,歐科云鏈集團將打造鏈上數據追蹤系統,通過溯源數字資產、監控非法交易等手段,全力遏制洗錢等非法行為;協助執法機關辦案,并為打造法務等區塊鏈系統提供技術支持;為聯盟鏈和基于各類業務的鏈上數據提供區塊鏈+大數據的解決方案。[2020/8/28]

服務器端請求偽造(也稱為SSRF)是一個網絡安全漏洞,攻擊者可以利用該漏洞誘使服務器端應用程序向攻擊者選擇的任意域發出HTTP請求。在典型的SSRF示例中,攻擊者的操作可能導致服務器建立自身連接,或者在組織基礎結構中構建其他基于Web服務或外部第三方系統的連接。

如果想要了解更多關于SSRF的信息,可訪問參考文獻8。

利用SSRF漏洞的常見方法

在內部網絡中執行端口掃描和網絡偵察

將請求發送到內部服務器的API

訪問內部網絡中的敏感資源

有了執行SSRF的方法,那么使用SSRF可以獲得什么呢?

AWSEC2云服務器有一個特殊端點:

http://169.254.169.254/latest/meta-data/ 

此端點只能在服務器內部訪問。這個端點包含AWS實例元數據,例如實例ID、主機名、公共/私有IP和AWS角色憑據。

用Google檢索時,http://169.254.169.254被Y Combinator定義為“EC2最危險的功能”。

如果EC2云服務器被分配了IAM(身份和訪問管理)角色,則對應的credentials將出現在元數據中。有了role credentials,就有了附加到EC2云服務器的IAM角色特權。

首發 | 劉堯:百度區塊鏈推出天鏈平臺賦能鏈上業務:12月20日,由CSDN主辦的“2019中國區塊鏈開發者大會”12月20日在北京舉行。百度智能云區塊鏈產品負責人劉堯以《企業區塊鏈賦能產業創新落地》為主題進行了演講,他指出:2020年將是區塊鏈企業落地的元年,為了支持中國區塊鏈的產業落地,百度將區塊鏈進行平臺化戰略升級,依托百度智能云推出天鏈平臺,就是要賦能360行的鏈上業務創新落地。[2019/12/20]

例如,IAM角色具有一個名為“aws-elasticbeanstalk-ec2-role”的角色。這是在使用Elastic Beanstalk服務啟動環境時創建的角色。根據AWS文檔,此角色具有對s3存儲庫的完全訪問權限。如果能從元數據端點獲取憑據,就可以訪問組織中的s3存儲庫。

EC2云服務器metadata服務有兩種版本:IMDSv1(Instance Metadata Service Version 1);IMDSv2(Instance Metadata Service Version 1)。

對于IMDSv1,檢索實例元數據僅需要GET請求:

對于IMDSv2,在查詢任何元數據之前,必須創建定義會話持續時間的會話通證。

通過將PUT請求發送到“http://169.254.169.254/latest/api/token”來創建會話。然后就可以使用PUT請求返回的通證請求元數據。

針對于保護Web應用程序中的SSRF漏洞的保護,與在IMDSv1相比,IMDSv2提供了額外的安全措施。簡而言之,有幾個優點:

首發 | 百度推動246家博物館線上藏品上鏈:金色財經訊,近日,百度超級鏈聯合百度百科,基于區塊鏈技術創建 “文博藝術鏈”,推動百科博物館計劃中的246家博物館線上藏品上鏈。基于“文博藝術鏈”,百度將與博物館共同推動線上藏品版權的確權與維護,同時探索線上藏品版權數字化交易方式,為合作的博物館提供更全面的服務和更多的權益。據介紹,此項目將分階段進行,一期將完成線上藏品的入鏈確權,為每一件藏品生產專屬的版權存證證書。讓每一名用戶可以在百度百科博物館計劃的PC端和WAP端的藏品頁查看證書。后續,百度還將推動AI與區塊鏈技術在文博領域的結合應用,用來保障上鏈數據與藏品相匹配,為后續進行藏品圖像版權數字化交易奠定基礎。[2019/1/30]

必須通過PUT請求獲取通證,而大多數SSRF攻擊僅支持GET和POST方法。

PUT請求包含一個HTTP標頭“X-aws-ec2-metadata-token-ttl-seconds”。在SSRF攻擊中,攻擊者通常無法在請求中插入其他HTTP標頭。

更多有關IMDSv1和IMDSv2區別的信息,可訪問AWS security blog(參考文獻3)。

如上所述,CORS-anywhere可被用于執行SSRF攻擊,并且被部署在EC2云服務器上,是時候對此進行利用了。

CertiK技術團隊使用Elastic Beanstalk啟動一個EC2云服務器。為了方便演示假設訪問EC2云服務器上部署的cors-anywhere的URL是http://cors.x.y:

針對IMDSv1的利用:

針對IMDSv1的十分簡單直接。CertiK技術團隊向部署CORS-anywhere的服務器發出GET請求,去獲取附加了IAM角色的AWS憑證。

針對IMDSv2的利用:

可以使用這些證書來獲得對S3儲存庫和Cloudwatch日志的完全(讀+寫)訪問權限。

由于“CORS-wherewhere”的流行和AWS云的大量使用。究竟有多少EC2云服務器遭受“CORS-wherewhere”造成的SSRF漏洞?

默認的CORS-anywhere頁面自動生成頁面內容,使潛在的黑客更容易找到它們,包括這句第一行就非常引人注目:“This API enables cross-origin requests to anywhere”。所以CertiK技術團隊使用Shodan.io和Zoomeye這兩個搜索引擎尋找連接到互聯網的設備,并在搜索中尋找可利用的實例。

CORS-anywhere的默認頁面

“Shodan”返回6個結果,“Zoomeye”返回447個結果。

為了消除誤報并進一步驗證來自搜索引擎的結果,CertiK技術團隊編寫了腳本用來確認主機在線,并且可以在“CORS-anywhere”的幫助下訪問元數據服務。最終發現互聯網上總共有100個AWS EC2云服務器因為部署了CORS-anywhere,而會受到SSRF攻擊。但因為沒有被授權,所以沒有繼續嘗試獲取檢索AWS role credentials。

ZoomEye

在滲透測試期間,CertiK技術團隊利用區塊鏈瀏覽器使用的CORS-anywhere中的SSRF漏洞,獲取EC2 role credentials,從而獲得對公司S3存儲庫和CloudWatch Logs的完全(讀取和寫入)訪問權限。但沒有在AWS云中執行進一步的滲透,因為這不在滲透測試的范圍之內。

重點:

1.  Web應用程序中的漏洞不僅可以在系統的前端和后端找到,而且可以在基礎設施中找到。

2.  在系統上部署第三方工具之前,請謹慎操作并了解潛在的安全風險。

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

4.  了解AWS共享責任模型。客戶應對其系統上運行的軟件負責。不要讓配置錯誤的軟件成為破壞云基礎架構的關鍵。

5.  可以關閉AWS EC2 云服務器中的matadata服務:

在AWS中,可以通過禁用對元數據服務的HTTP端點的訪問來關閉對元數據服務的訪問。這可以通過在AWS CLI中執行以下命令來完成:

6.  與Cosmos RPC API通信時,有更安全的方法來處理跨域請求:

在config / config.toml配置文件中為“ cors_allowed_origins”指定允許的值。

在相同的主機名下配置應用程序和RPC API。

將Nginx反向代理放置在節點(鏈)服務器的前面,以將CORS標頭插入HTTP響應中

使用WebSocket而不是HTTP與RPC API進行通信。

這個滲透測試故事的寓意是,當你受益于第三方代碼的價值和功能時,你也需要承擔其中可能存在的風險和安全漏洞。

在此次滲透測試服務中,CertiK技術團隊能夠在惡意黑客利用SSRF漏洞之前就將漏洞捕獲。但并不是每次都能這么幸運。因此無論是接使用內部還是外部安全團隊的審計,對于識別并降低風險因素,以及確保代碼和用戶安全都是至關重要的。

CertiK團隊在區塊鏈的各方面,諸如Solidity,RUST和Go等不同語言;以太坊,Cosmos和Substrate等多種平臺方面,都擁有豐富的經驗和專業知識。此外,在涵蓋非區塊鏈特定的應用程序,包括前端、后端和基礎設施滲透測試等方面,CertiK的技術團隊也十分專業。

如果你希望對區塊鏈生態系統(包括智能合約,底層區塊鏈協議的實現以及網絡應用程序等)進行徹底的安全審計,CertiK都可以為你提供幫助。

我們絕不僅僅是尋找漏洞,而是要消除哪怕只有0.00000001%被攻擊的可能性。

原文作者 | CertiK滲透測試團隊

編輯及出品 | CertiK(ID:certikchina)

參考文獻:

https://github.com/Rob--W/cors-anywhere/issues/152

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html

https://cosmos.network/rpc/v0.37.9

https://www.shodan.io/

https://www.zoomeye.org/

https://portswigger.net/web-security/ssrf

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html

https://github.com/Azure/WALinuxAgent/wiki/VMs-without-WALinuxAgent

https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

Tags:ORSHTT區塊鏈HERCryptoHorseCHTT幣區塊鏈通俗易懂的例子ethereum代幣瀏覽器下載

幣贏交易所
中國人開的“伊朗交易所”bitisis遭立案 平臺緊急凍結資產_SIS

吳說區塊鏈獲悉,中國媒體廣泛報道的伊朗交易所bitisis已經跑路,多個消息源指出其背后實控人是中國詐騙分子,掌握多個宣稱能搬磚套利的海外交易所吸納散戶資金再卷款跑路。目前各地已經立案.

1900/1/1 0:00:00
穩定幣正在成為以太坊生態的護城河_以太坊

近三十日,以太坊上的穩定幣交易手續費可以占到全網手續費的35%左右,而在高位甚至可以接近以太坊全網交易費的50%.

1900/1/1 0:00:00
6.23午間行情:多頭強勢 不要做空_USDT

文章系金色財經專欄作者牛七的區塊鏈分析記供稿,發表言論僅代表其個人觀點,僅供學習交流!金色盤面不會主動提供任何交易指導,亦不會收取任何費用指導交易,請讀者仔細甄別,謹防上當.

1900/1/1 0:00:00
加密貨幣不屬于資產類別?_OIN

要點提煉 近日高盛集團與投資客戶召開電話會議,會上高盛投資策略團隊聲稱,比特幣是不可行的投資工具。會議內容缺乏對加密貨幣的基本了解,且邏輯混亂.

1900/1/1 0:00:00
Chainalysis報告:近60%的比特幣被長期投資者持有_AIN

- 根據Chainalysis最近的一份報告,大部分已被開采的比特幣由長期投資者持有,只有19%用于交易.

1900/1/1 0:00:00
視頻|不斷上漲的借貸挖礦代幣COMP怎么挖_GARI

Compound正式開啟借貸挖礦,資金規模破2億美金,鎖倉金額大幅上漲3700萬美金。治理代幣COMP 24小時上漲10倍,借貸年化收益高達200%,競賽已經開啟.

1900/1/1 0:00:00
ads