容器安全的全球威脅分析

  • 2019 年 12 月 11 日
  • 筆記

容器技術被廣泛接受和使用的同時,容器以及容器運行環境的安全成為了亟待研究和解決的問題。為了進一步了解容器以及容器環境的安全威脅,為使用容器的用戶提供安全防護建議。綠盟科技攜手矽谷知名容器安全公司NeuVector,聯合發布《2018綠盟科技容器安全技術報告》。

近年來,雲計算的模式逐漸被業界認可和接受。在中國,包括政府、金融、運營商、能源等眾多行業,以及中小企業,均將其業務進行不同程度的雲化。但簡單地將主機、平台或應用轉為虛擬化形態,並不能解決傳統應用的升級緩慢、架構臃腫、無法快速迭代等問題,雲原生(Cloud Native)的概念應運而生。

雲原生提倡應用的敏捷、可靠、高彈性、易擴展以及持續的更新。在雲原生應用和服務平台構建過程中,近年興起的容器技術憑藉其彈性敏捷的特性和活躍強大的社區支援,成為了雲原生等應用場景下的重要支撐技術。

從2008年LXC的出現,到2013年DotCloud開源了其內部的容器項目Docker,再到2014年CoreOS發布了其容器引擎Rocket(rkt),2015年微軟發布了Windows Containers,實現Docker容器在Windows上的原生運行,再到2017年阿里巴巴開源其容器技術Pouch,容器技術越來越多的引起大家的關注。但其背後的安全問題不容忽視。

2018年5月-7月綠盟威脅情報中心(NTI)對全網的Docker 2375埠進行檢索,發現這段時間暴露在互聯網上的2375埠地址達337個。下圖顯示了暴露主機的分布情況,主機暴露數據覆蓋多達29個國家,這個數據一方面說明了Docker的受歡迎程度,另一方面也說明了用戶對於Docker的使用並不規範。

針對這337個服務的IP地址,對地理區域進行統計可以看出,在全球範圍內,互聯網上暴露的Docker服務主要分布於中國、美國以及德國,其中中國有197個IP地址以52%位居第一,美國有65個IP地址以17%位居第二,德國有19個IP以7%位居第三。

前述暴露的337個Docker服務IP,我們對其域名服務分布情況進行了統計,其中不乏某些知名公有雲廠商的IP地址。

2018年8月份,阿里雲安全團隊公開披露,黑客在阿里雲上針對Docker的批量攻擊與利用。其主要的入侵途徑就是掃描開放了2375埠的Docker容器IP,之後通過命令對讀取的IP進行入侵,成功進入被入侵的主機後,從下載伺服器中拉取包括webshell、挖礦程式、後門程式、任務文件、挖礦配置文件等眾多文件到本地,然後一一執行。

2018年7月,我們也分析了Kubernetes的服務暴露情況,利用NTI對全網的6443埠(Kubernetes的API Server默認SSL埠)進行掃描分析,發現這段時間暴露在互聯網上的Kubernetes服務達12803個。下圖顯示了Kubernetes服務暴露分布情況。其中美國以4886個暴露的服務佔比38%位居第一,中國以2582個暴露的服務佔比20%位居第二,德國以1423個暴露的服務佔比11%位居第三。中國互聯網上暴露的Kubernetes服務主機主要存在於北京、浙江以及廣東等省市,這些服務大多部署在亞馬遜、阿里雲等公有雲上。其中的幾百個甚至都沒有設置登錄密碼,一旦被惡意操作,後果將不堪設想。

作為容器運行的基礎,容器的鏡像安全一直以來備受使用者的關注,有關研究報告[1]顯示,Docker Hub中超過30%的官方鏡像包含高危漏洞,接近70%的鏡像有著高危或中危漏洞。我們從Docker Hub中選擇評價和下載量較高的10個鏡像,對其最新版本(latest)採用Clair工具進行了掃描分析。從結果可以看出,如此高頻率使用的鏡像,絕大多數均存在高危漏洞,有的鏡像高危漏洞數量甚至達到數十個之多。

在使用容器鏡像的時候,除了鏡像中應用漏洞需要重點關注之外,對於鏡像內的其它脆弱性問題,同樣不容忽視,比如,鏡像內是否暴露了帳號密碼等資訊、是否包含了秘鑰文件、是否提供並暴露了ssh服務、是否運行了禁止運行的命令、公共的鏡像中是否有木馬、病毒等等。

2018年6月,就有安全廠商發現17個受到感染的Docker容器鏡像[2],鏡像中包含了可用於挖掘加密貨幣的程式,更危險的是,這些鏡像的下載次數已經高達500萬次。

2017年11月,Uber發布聲明,承認2016年曾遭黑客攻擊並導致數據大規模泄露。根據這份聲明,兩名黑客通過第三方雲服務對Uber實施了攻擊,獲取了5700萬名用戶數據,包括司機的姓名和駕照號碼,用戶的姓名、郵箱和手機號。調查發現,Uber數據泄露的原因竟然是工程師將解鎖資料庫的安全密鑰存儲在GitHub的一個可以公開訪問的頁面。這類由於操作不當引發數據泄漏的事件並不是孤案,尤其值得注意的是,當今雲環境和DevOps的迅速發展導致安全風險顯著地提高了。

另外,由於容器在技術實現上基於主機內核,採用共享主機資源的方式,因此面向容器的拒絕服務攻擊(DoS)威脅程度更高。例如,默認情況下容器可以使用主機上的所有記憶體,如果某個容器以獨佔方式訪問或消耗主機的大量資源,則該主機上的其它容器就會因為缺乏資源而無法正常運行。

Fork Bomb是一個很典型的計算型DoS攻擊場景,主機內核正常情況下只能支援一定數量的進程,如果某個容器內的進程組新建過多進程,消耗了主機上的所有進程資源,那其它的容器就沒有資源來創建新的進程,甚至會危及主機的正常工作。Fork Bomb也是自2015年到現在Docker社區一直討論的問題。

作為容器重要應用場景的微服務架構,通常由眾多服務構成,雖然微服務提倡隔離、輕量、獨立開發部署、業務間松耦合等,但有時服務間是需要緊密相聯的,比如多個服務間共享數據。這些服務之間的聯繫在微服務架構中通常是以點對點的形式呈現,隨著這些聯接的增多,如果其中一個服務因安全漏洞被攻破,那麼其它聯接的服務也會受到牽連,從而整個系統都會落入攻擊者手中。

總之,容器技術被廣泛接受和使用的同時,容器以及容器運行環境的安全成為了亟待研究和解決的問題。為了進一步了解容器以及容器環境的安全威脅,為使用容器的用戶提供安全防護建議。綠盟科技攜手矽谷知名容器安全公司NeuVector,聯合發布《2018綠盟科技容器安全技術報告》。

《報告》從容器安全風險入手,分別從軟體脆弱性、安全威脅、應用安全威脅等方面,系統的介紹了容器以及容器應用中所面臨的安全問題。針對這些安全問題,從主機安全、鏡像安全、網路安全、應用安全等多個角度,提出了相應的檢測與防護建議。最後,從開源社區和廠商兩個層面,簡要介紹了當前對於容器安全的一些解決方案。

點擊文末閱讀原文,下載報告完整版。