容器安全-鏡像漏洞掃描
鏡像作為容器技術的最基本的概念,我們如何從其入手保護容器的安全。鏡像和虛擬機的掃描和控制又有所大不同。虛擬機我們常用靜態掃描,但是安全人員常常跟在開發人員後面要求其修復生產漏洞,但是who care呢,最後安全敵不過業務,地位也非常弱勢。在納入容器技術後,安全人員有能力通過docker.sock收集所有容器的基線鏡像,通過基線鏡像便能想製作一個golden VM一樣定製一個個golden image.
1. 漏洞管理
背景:即使在Docker Hub下載的官方鏡像中也常常包含了大量的漏洞,而開發人員在使用大量開源框架時更會加劇鏡像漏洞的問題。大部分在docker hub上的鏡像,即使是官方的也具有大量的漏洞。而現有的安全人員對於devops流程中的鏡像完全喪失管理能力,並且也無法像傳統的虛擬機掃描去對生產的容器作一定的安全評估。
解決方案:Aqua Security可以掃描鏡像倉庫內的鏡像,發現相關鏡像的威脅漏洞、安裝的Package、敏感信息、Malware等,幫助用戶得到一個安全純凈的鏡像文件。
2. 阻斷高危鏡像運行
Aqua可以根據掃描結果的威脅級別、分數、威脅黑名單等自動禁用鏡像
3. 禁止以root用戶運行
背景:以root許可權運行的容器存在著打破容器沙盒,提權獲得Docker主機root許可權的風險。而Docker在不指定運行用戶的情況下默認是使用root運行容器的,這就加大了容器的安全風險,而這一點也非常容易被利用。例如黑客只需運行rootplease容器即可獲得主機root許可權。
解決方案:Aqua可以禁止以root許可權運行容器
4. Package控制
背景:出於合規性和監控等要求,企業對IT環境會有如下需求:
不允許運行某些高風險的程序和Package
有些Package的低版本中存在嚴重的漏洞。如需使用,必須高於某個版本
必須運行規定的安全和監控程序
解決方案:Aqua可以掃描得到鏡像中的Package名單和版本,如果鏡像中包含黑名單Package,或者某些Package小於規定的版本,或者鏡像中缺少某些必要的Package則禁止其運行
5. 禁止未掃描的鏡像
Aqua可以阻斷未掃描的鏡像運行,企業也可以通過鏡像前綴或label標籤設置白名單
6. 基準鏡像
背景:生產環境中,企業會根據自身合規和監控等需求定製一套基準鏡像。企業會要求所有生產系統都是基於基準鏡像搭建部署的,但由於容器的封閉性導致該要求難以實現
解決方案:Aqua可以獲取鏡像的底層layer,阻斷沒有基於基準鏡像搭建的鏡像運行
7. 安全內容自動化協議(SCAP)與自定義檢查
背景:企業對運行的環境存在如下自定義檢查的需求:
安全性檢查,如suid許可權、worldwritable file等
合規性報告檢查,如PCI-DSS等
敏感信息檢查,如秘鑰、用戶信息等
然而由於容器環境的封閉性,企業難以對容器進行這些檢查
解決方案:Aqua可以通過OpenVulnerability and Assessment Language(OVAL)、自定義腳本(Unix Shell,PowerShell)對鏡像進行檢查,全面發現鏡像中的安全問題,並阻斷檢查未通過的鏡像運行
8. CI/CD
背景:大部分使用容器技術的公司已採用DevOps敏捷開發模式,這就要求容器的安全合規檢查也能夠集成到CI/CD流程中,進行自動化的安全檢查,確保不會對DevOps造成阻礙,最終形成DevSecOps
解決方案:Aqua的鏡像安全掃描和控制可以和CI/CD工具集成,包括如Jenkins,Microsoft VSTS, GoCD, GitLab, JIRA, Jfrog Xray, Bamboo等主流工具,使得開發人員在開發階段就可以獲知鏡像是否符合企業安全標準,大大縮短了安全掃描和控制流程的周期
9. 開源協議檢查
背景:開發人員往往會錯誤地使用不符合開源協議規範的開源軟體
解決方案:Aqua可以掃描開源組件的開源協議,確保企業使用符合規範的開源軟體
問題:Aqua和Clair有什麼差別呢?
Clair開源產品(https://github.com/coreos/clair)可以對鏡像實現掃描,但是並不能阻斷黑客或者管理人員通過docker load方式手動載入鏡像。小編曾經看到過把容器當虛擬機來用的客戶。形形色色的鏡像裡面充斥著安裝了SSH,netcat,這些都是在容器平台中應盡量減少使用軟體包。有些容器公司常常用clair作基礎,通過一些掃描,包裝成為所謂的容器安全產品。但是其控制基本通過編排工具來實現,並不能從根本上保證鏡像相關的安全。
Aqua卻不同,在掃描鏡像的同時,會記錄這些鏡像的特徵碼,並嚴格禁止「非授權」,「高危」、「有毒」的鏡像載入到K8S中,即使是K8S管理員的手工載入也會被阻斷。只有真正實現了docker.sock的攔截才能做到鏡像的安全。否則都只是耍耍流氓而已啦。
更多安全請參考:https://www.aquasec.com/wiki/display/containers/Container+Vulnerabilities+and+Threats
關注AquaSec的各位「小水滴」們,如有希望了解的技術範疇,盡情私信我們。我們將提供容器世界的安全準則和最佳實踐。
TAG:aquasec |