譯者 | 陳峻
審校 | 重樓
近年來,隨著網(wǎng)絡(luò)威脅的增加,容器化設(shè)置中的漏洞逐漸給各類應(yīng)用程序帶來不同程度的安全風(fēng)險(xiǎn)。特別是隨著 DevOps 領(lǐng)域的不斷發(fā)展,各種容器的使用頻率也逐步攀升,這讓各類安全漏洞也逐漸成為了話題中的焦點(diǎn)。
而旨在提高容器安全性的高級(jí)工具--Docker Scout,通過支持漏洞檢測(cè)、軟件物料清單( Software Bill of Materials,SBOM)的生成、以及策略的實(shí)施,從而保護(hù) Docker 容器的生命周期,進(jìn)而使之更簡(jiǎn)化和更有效。
下面,我將和你討論 Docker Scout 的基本工作流,如何對(duì)其配置、以及其他特定功能技巧的演示。同時(shí),你也可以了解到如何將 Docker Scout 集成到自己的 DevOps 工作流中。
了解 Docker Scout
作為一款安全必備的工具箱,Docker Scout 可以通過與 Docker 的無縫集成,協(xié)助你進(jìn)行漏洞分析、依賴關(guān)系和合規(guī)性研判,進(jìn)而最大限度地提高容器的安全性。
在使用過程中,Docker Scout 可以掃描容器的鏡像,以識(shí)別漏洞。同時(shí),它也會(huì)創(chuàng)建 SBOM,并遵循安全策略。借助 Docker Scout的監(jiān)控,容器化應(yīng)用的風(fēng)險(xiǎn)將變得易于管理且簡(jiǎn)單明了。
Docker Scout 的工作流
如圖所示, Scout 使得用戶能夠通過跟蹤他們的 Docker 鏡像以掃清漏洞。同時(shí),它可以被輕松地集成到工作流程中,以實(shí)時(shí)掃描的方式提供有關(guān)目標(biāo)容器中軟件組件的更多詳細(xì)信息。當(dāng)然,它也可以通過生成SBOM,來確保不包含任何易受攻擊的代碼片段,進(jìn)而允許用戶跟蹤和評(píng)估目標(biāo)應(yīng)用程序中嵌入的所有組件和依賴項(xiàng)。
此外,由于Docker Scout 的策略實(shí)施功能可以驗(yàn)證容器的鏡像是否被“鎖定(locked-in)”。因此,它可以幫助開發(fā)團(tuán)隊(duì)遵守行業(yè)的最佳實(shí)踐,進(jìn)而輕松、主動(dòng)地保護(hù)容器化的應(yīng)用。
Docker Scout 的主要特點(diǎn)
- 漏洞掃描:Docker Scout 可以檢測(cè)容器中的已知漏洞。
- 生成SBOM:Docker Scout 能夠生成詳細(xì)的軟件物料清單。
- 策略實(shí)施:Docker Scout 會(huì)確保你的鏡像符合既定的安全標(biāo)準(zhǔn)。
因此,如果Docker Scout 能夠被恰當(dāng)?shù)?/span>集成到現(xiàn)有的軟件工具和工作流中,將能在 Docker 生態(tài)系統(tǒng)中良好運(yùn)行,可以在不減慢開發(fā)速度的情況下,簡(jiǎn)化容器的安全性。
如何設(shè)置 Docker Scout?
Docker Scout 的設(shè)置
Docker Scout 設(shè)置起來既快速又簡(jiǎn)單。以下是最常見的入門步驟:
先決條件和安裝
在安裝Docker Scout之前,請(qǐng)確保你的Docker能夠按預(yù)期運(yùn)行起來,以便Docker Scout與Docker桌面或Docker引擎配合使用。若要安裝Docker Scout,請(qǐng)運(yùn)行以下命令:
docker scout init
這將安裝Docker Scout及其所有依賴項(xiàng)。至此,你已為掃描鏡像做好了準(zhǔn)備。
首次運(yùn)行掃描
請(qǐng)使用以下命令運(yùn)行第一次掃描。
docker scout quickview
完成后,它將為你的鏡像快速提供安全概述。例如,若要掃描自己的應(yīng)用請(qǐng)輸入:
docker scout quickview my-app:latest
此命令將掃描你的Docker鏡像,并提供漏洞和合規(guī)性問題的摘要。
解讀掃描結(jié)果
Docker Scout的掃描結(jié)果會(huì)以章節(jié)形式呈現(xiàn)。其中:
- 漏洞部分:顯示了在鏡像中發(fā)現(xiàn)的任何CVE。
- SBOM部分:顯示了鏡像的軟件物料清單。
- 策略違規(guī)部分:列出任何被發(fā)現(xiàn)的違反安全策略的地方。
這些結(jié)果有助于你了解Docker鏡像的安全狀態(tài)。下面,我們來詳細(xì)了解Docker Scout的關(guān)鍵性功能是如何保護(hù)容器鏡像的:
漏洞掃描
漏洞掃描的工作流
為了在鏡像中查找已知的漏洞,Docker Scout會(huì)掃描每個(gè)包,并將其與CVE數(shù)據(jù)庫進(jìn)行核對(duì)。當(dāng)找到匹配項(xiàng)時(shí),它會(huì)標(biāo)記危險(xiǎn)并顯示其嚴(yán)重程度、以及修復(fù)方法。這有助于在將問題鏡像投入生產(chǎn)環(huán)境之前,提前予以處理。
SBOM
Docker Scout為每個(gè)掃描的鏡像生成一個(gè)唯一的SBOM。它概述了形成鏡像的所有軟件組件。
SBOM可用于跟蹤所有的依賴關(guān)系,以方便識(shí)別那些存在于第三方軟件包中的漏洞。這對(duì)于提高供應(yīng)鏈安全性和鏡像的完整性都是至關(guān)重要的。
安全策略和補(bǔ)救建議
你可以使用Docker Scout來設(shè)置安全策略(例如可接受的漏洞評(píng)級(jí)),以及確定潛在的風(fēng)險(xiǎn)。如果鏡像違反了相關(guān)策略,Docker Scout會(huì)提出采取補(bǔ)救措施,以便你在部署容器之前,為其建立最佳的安全實(shí)踐。
將Docker Scout集成到CI/CD管道中
為了自動(dòng)化CI/CD管道中的安全檢查,你可以將Docker Scout集成到DevOps工作流,以便從一開始就確保安全性成為管道的一部分。
將Docker Scout與GitHub Actions/GitLab CI結(jié)合使用
Docker Scout與Github集成
將Docker Scout與GitHub Actions或GitLab CI相集成,可以自動(dòng)化構(gòu)建過程中的安全性。例如,在GitHub Actions中,你可以對(duì)每次推送都執(zhí)行Docker Scout掃描,以確保鏡像在部署前的安全性。
以下是針對(duì)GitHub Actions的基本配置:
name: Docker Security Scan
on:
push:
branches:
- main
jobs:
security-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run Docker Scout Scan
run: |
docker scout init
docker scout quickview my-app:latest
此配置會(huì)在每次將更改推送到 main 分支時(shí),運(yùn)行安全掃描。
在部署之前自動(dòng)執(zhí)行安全檢查
將 Docker Scout 引入 CI/CD 管道,將有助于及早發(fā)現(xiàn)安全問題。也就是說,在每一次構(gòu)建或更新鏡像時(shí),Docker Scout 都會(huì)對(duì)其進(jìn)行掃描,如果發(fā)現(xiàn)漏洞,則構(gòu)建失敗。此舉可以有效地防止將不安全的鏡像部署到生產(chǎn)環(huán)境中。
以下是 GitLab CI 的配置示例:
stages:
- scan
docker_scan:
stage: scan
script:
- docker scout init
- docker scout quickview my-app:latest
通過此設(shè)置,Docker Scout 將作為構(gòu)建過程的一部分自動(dòng)運(yùn)行。
安全容器鏡像開發(fā)的最佳實(shí)踐
雖然 Docker Scout 有助于識(shí)別漏洞,但我們?nèi)孕枧浜蠌娜缦路矫?/span>來降低安全風(fēng)險(xiǎn)。
減少攻擊面
最大限度地減少鏡像中的依賴項(xiàng)數(shù)量,畢竟包含的庫越少,潛在漏洞也就越少。可使用類似 Alpine 這樣的最小基礎(chǔ)鏡像,并且僅包含基本組件。
定期更新和修補(bǔ)
容器安全是一項(xiàng)持續(xù)的工作,請(qǐng)定期更新你的鏡像,以包含最新的補(bǔ)丁。當(dāng)然,Docker Scout 也有助于跟蹤漏洞,方便你掌握必要的更新。
利用 Docker Scout 的洞見
請(qǐng)使用 Docker Scout 的洞見來持續(xù)改進(jìn)你的安全態(tài)勢(shì)。這包括:查看漏洞報(bào)告,參考修復(fù)建議,并定期更新你的策略。畢竟,持續(xù)掃描和改進(jìn)能夠及時(shí)驗(yàn)證你的鏡像是否安全。
常見問答
- Docker Scout 如何檢測(cè) Docker 鏡像中的漏洞?
- Docker Scout 會(huì)掃描容器鏡像,以查找已知的 CVE。它是通過將鏡像的組件與 CVE 數(shù)據(jù)庫進(jìn)行比對(duì)來實(shí)現(xiàn)。
- 可以將 Docker Scout 集成到 CI/CD 管道中嗎?
- 是的,Docker Scout 可以與 CI/CD 管道無縫集成。例如,它可與 GitHub Actions 和 GitLab CI 相結(jié)合,在構(gòu)建過程中運(yùn)行自動(dòng)安全掃描。
- Docker Scout 中的SBOM是什么?
- SBOM 可以跟蹤 Docker 鏡像中存在的所有軟件組成部分和依賴項(xiàng),進(jìn)而幫助開發(fā)者監(jiān)控容器與外部庫相關(guān)聯(lián)的漏洞。
- 如何配置 Docker Scout 以實(shí)施安全策略?
- 通過在 Docker Scout 中自定義安全策略,以實(shí)施諸如:判定漏洞嚴(yán)重性級(jí)別,加固依賴項(xiàng)的最低補(bǔ)丁版本等策略。
- 如果 Docker Scout 在鏡像中發(fā)現(xiàn)漏洞,應(yīng)該如何處置?
- Docker Scout 不但能突出顯示現(xiàn)有的漏洞,而且可以提供嚴(yán)重性評(píng)級(jí)。開發(fā)者應(yīng)該根據(jù)所提供的修復(fù)步驟,在容器部署之前及時(shí)解決發(fā)現(xiàn)的問題。
小結(jié)
作為一種提供容器安全的工具,Docker Scout 能夠自動(dòng)檢查和掃描漏洞并執(zhí)行策略,從而幫助 DevOps 團(tuán)隊(duì)改進(jìn) Docker 對(duì)其鏡像的整體保護(hù)。同時(shí),將 Docker Scout 實(shí)施到現(xiàn)有的 CI/CD 管道中,也可以確保開發(fā)流程中的安全構(gòu)建。
此外,Docker Scout 也能賦能用戶主動(dòng)糾正可能違規(guī)的軟件行為,確保在開發(fā)的整個(gè)生命周期中遵循既定的策略。而在效率上,Docker Scout 則能夠讓用戶在幾個(gè)小時(shí)內(nèi)構(gòu)建、測(cè)試和部署出安全的應(yīng)用,從而大幅提高了生產(chǎn)力。
譯者介紹
陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對(duì)內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識(shí)與經(jīng)驗(yàn)。
原文標(biāo)題:Your Docker Containers Are Probably Full of Security Holes—Here’s How to Fix Them Now,作者:Advait Patel