InfoQ訪談:如何應用多雲環境工具Cloud Discovery

Cloud Discovery是Twistlock提供的一個開源工具。它能連接到雲供應商並獲取一個清單,其中包含已部署的全部基礎設施資源。Cloud Discovery用聚合的方式收集和報告資源的元數據。此外,提高了跨環境可見性後,可以識別出應用程序的安全漏洞,例如哪些資源缺少防火牆規則。

Cloud Discovery是Twistlock提供的一個開源工具。它能連接到雲供應商並獲取一個清單,其中包含已部署的全部基礎設施資源。Cloud Discovery用聚合的方式收集和報告資源的元數據。

藉助Cloud Discovery,用戶不用再搜尋不同雲供應商的控制檯,手動地遍歷所有服務頁面(比如像AWS EC2或Azure 虛擬機),然後導出數據並在電子表格中重新校對。 此外,提高了跨環境可見性後,可以識別出應用程序的安全漏洞,例如哪些資源缺少防火牆規則。舉例來講,在 CI/CD管道中增加雲資源後,你可以使用Cloud Discovery執行安全檢查,然後在新的更改生效前自動告警或者應用程序補丁。 無論應用程序部署在AWS、Azure還是Google Cloud Platform,Cloud Discovery僅需要只讀權限就可以收集必要的信息。

除了能發現雲供應商提供的服務外,Cloud Discovery 還可以識別“自安裝”的雲原生組件,例如EC2實例上的Docker註冊表或者由用戶管理的Kubernetes API服務器。 然後,藉助收集到的數據,它能識別出羣集上那些薄弱的安全設置,例如公開可訪問的SSH。

爲了進一步瞭解案例以及如何使用Cloud Discovery,InfoQ最近與Twistlock首席架構師Liron Levin進行了一次交流。

InfoQ:爲什麼要選擇Cloud Discovery來獲取已部署資源的清單,而不用雲供應商的原生度量工具?

Liron Levin:如今,雲供應商正以驚人的速度推出新服務,開發人員也很樂於嘗試它們。 這兩個趨勢引發了一場完美的“風暴”,讓組織無法準確知道哪些服務正在部署、部署在哪個雲供應商或雲區域,以及有哪些具體權限。 我們希望使所有組織都能快速、輕鬆地瞭解已部署的服務以及部署在哪裏,讓他們知道雲原生服務快速發展導致的“未知的未知”。

Cloud Discovery能讓組織提高跨雲可見性,進而着手保護這些資源,無論是PaaS還是IaaS資源。 缺少安全保護措施的服務越多,組織就越容易受到攻擊和威脅。 藉助Cloud Discovery,組織能即刻獲取部署在不同公有云上的雲工件的完整清單,並能瞭解哪些工件有安全保護,哪些沒有。

InfoQ:在多雲環境中,如何快速上手使用Cloud Discovery?在哪裏以及如何部署它?

Levin:Cloud Discovery能在容器中作爲獨立服務運行。例如,你可以運行以下命令來啓動一個容器:

docker run -d --name cloud-discovery --restart = always \
 -e BASIC_AUTH_USERNAME = admin -e BASIC_AUTH_PASSWORD = pass -e PORT = 9083 -p 9083:9083 twistlock / cloud-discover

然後,要掃描並列出所有部署在AWS上的資產,你可以使用以下API向Cloud Discovery發送查詢請求:

 curl -k -v -u admin:pass --raw --data \
'{"credentials": [{"id":"<AWS_ACCESS_KEY>","secret":"<AWS_ACCESS_PASSWORD>"}]}' \
https://localhost:9083/discover\

或者,如果想從GCP獲取相同的信息,你可以使用以下調用:

SERVICE_ACCOUNT=$(cat <service_account_secret> | base64 | tr -d '\n')
curl -k -v -u admin:pass --raw --data '{"credentials": [{"secret":"'${SERVICE_ACCOUNT}'", "provider":"gcp"}]}' https://localhost:9083/discover?format=json

目前我們正在爲Azure添加支持。

InfoQ:如何將Cloud Discovery與其它工具集成?

Levin:我們在構建Cloud Discovery的過程中,把互操作性和易集成性當作重點。我們遵循Unix“只做一件事情,並把它做好“的理念進行設計,使它能抽取你所有的雲原生服務的元數據,並以開放的標準JSON格式返回,無論這些服務部署在哪個雲供應商、雲帳戶或雲區域。 有許多對JSON支持良好的工具,這讓監控、告警和變化追蹤變得很簡單。已經有人使用Cloud Discovery向審計人員提供報告,與他們的SIEM集成並對新部署的流氓服務發出告警,甚至用它幫助識別在雲上的花費是否存在潛在的浪費。

因此,如果一個組織正在使用的監控技術棧支持JSON,則可以使用集成API來獲取JSON格式的響應,並在所選工具中展示這些數據。 實際上,你可以編寫一個應用程序,使用Cloud Discovery定時接收數據更新,然後通過相關的API更新監控和告警工具。

InfoQ:您能舉例說明如何集成Cloud Discovery嗎?告警可配置嗎?

Levin:例如,用戶可以在自己的環境中使用Cloud Discovery每天執行端口掃描命令,如下所示:

curl -k -v -u admin:pass --raw --data '{"subnet":"172.17.0.1", "debug": true}' https://localhost:9083/nmap

上面的調用生成的輸出如下圖所示:

在這個例子中,你能很快判斷出有人配置了一個註冊表和一個MongoDB實例,但它們都不安全,因爲其未經授權。

然後,這些JSON數據會被髮送到告警系統,並進入預定義的調度流程。接着,系統會向相關人員會發送告警通知,讓他們知道有不安全的或這不應該存在的資產。

InfoQ:Cloud Discovery的路線圖是什麼?

Levin:Cloud Discovery已經支持三大主要的雲供應商(AWS,GCP和Azure),但我們希望在不久的將來增加對IBM Cloud和Oracle Cloud的支持。 此外,我們正在爲常用的非安全應用添加更多檢查,這些應用包括RabbitMQRedisPostgresWordpress(暴力破解支持)、ElasticsearchKibanaVault(確保配置了https)和Nats

針對這些非安全應用,我們正在開發第三個增強功能。這個功能可以探測對常用密碼的暴力破解。 它包括更多的暴力破解探測檢查,既能檢查預定義的用戶名和密碼,也能檢查自定義密碼列表。

InfoQ:Cloud Discovery是Twistlock的首次獨立貢獻。但是您之前一直活躍在開源社區,對嗎?

Levin:是的,我們的團隊構建了Docker的授權框架。OpenShift、Open Policy Agent和Docker Swarm的第三方可插拔敏感數據後端使用了該框架。 我們還爲Kubernetes CIS基準做出了貢獻。 我們的首席技術官John Morello與他人共同撰寫了NIST SP 800-190,即容器安全指南。我們的研究機構Twistlock Labs發現並公開披露了14個安全漏洞,其CVE ID已收錄到NVD。 因此, 除了開源貢獻,我們的團隊還爲改善整個雲原生生態系統的容器安全性做出了重大貢獻。

我們開源貢獻的一些具體例子包括Docker的可插拔敏感數據後端Docker授權插件特權容器(privileged containers)與用戶的兼容性使用TLS用戶信息擴展Docker認證,以及對Docker註冊表認證默認行爲的更改

你可以從官方GitHub代碼庫訪問基於Go語言的源代碼,並查看對應不同雲供應商的具體實現

查看英文原文https://www.infoq.com/news/2019/02/qa-cloud-discovery-multi-cloud

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章