利用google釋出的osv-scanner來檢視docker images的安全
CentOS ubuntu皆可。
curl -OL https://go.dev/dl/go1.19.4.linux-amd64.tar.gz
tar -C /usr/local -xvf go1.19.4.linux-amd64.tar.gz
ubuntu的環境
nano ~/.profile
追加一行最後,將現有PATH加入go的bin
export PATH=$PATH:/usr/local/go/bin
#直接使用或重新登出登入
source ~/.profile
#會有版本號代表設置成功
go version
CentOS的環境
#追加一行最後,將現有PATH加入go的bin
vi ~/.bash_profile
export PATH=$PATH:/usr/local/go/bin
#直接使用或重新登出登入
source ~/.bash_profile
#會有版本號代表設置成功
go version
沒git也沒關係,從另外一台git專案下來打包好,傳到這台解壓使用也行
git clone https://github.com/google/osv-scanner
cd osv-scanner
go install github.com/google/osv-scanner/cmd/osv-scanner@v1
拿新舊nginx來驗證
docker pull nginx:latest
docker pull nginx:1.19
go run ./cmd/osv-scanner --docker nginx:latest
Scanned docker image with 142 packages
以上是通常最新的,很容易安全的結果 返回碼是 0
如果最新的也有被掃出,代表官方最新的也還沒來的及更新。(個人看法)
我們來試試舊的來比較...(排版差 大概把顯示內容貼上 真的執行的表格是漂亮的 )
go run ./cmd/osv-scanner --docker nginx:1.19
Scanned docker image with 135 packages
│ nginx:1.19 │ Debian │ curl │ 7.64.0-4+deb10u2 │ https://osv.dev/vulnerability/DLA-3085-1 │
│ nginx:1.19 │ Debian │ dpkg │ 1.19.7 │ https://osv.dev/vulnerability/DSA-5147-1 │
│ nginx:1.19 │ Debian │ gzip │ 1.9-3 │ https://osv.dev/vulnerability/DSA-5122-1 │
│ nginx:1.19 │ Debian │ libxml2 │ 2.9.4+dfsg1-7+deb10u1 │ https://osv.dev/vulnerability/DLA-3172-1 │
│ nginx:1.19 │ Debian │ libxml2 │ 2.9.4+dfsg1-7+deb10u1 │ https://osv.dev/vulnerability/DSA-5142-1 │
│ nginx:1.19 │ Debian │ openssl │ 1.1.1d-0+deb10u6 │ https://osv.dev/vulnerability/DSA-4963-1 │
│ nginx:1.19 │ Debian │ openssl │ 1.1.1d-0+deb10u6 │ https://osv.dev/vulnerability/DSA-5103-1 │
│ nginx:1.19 │ Debian │ openssl │ 1.1.1d-0+deb10u6 │ https://osv.dev/vulnerability/DSA-5139-1 │
│ nginx:1.19 │ Debian │ openssl │ 1.1.1d-0+deb10u6 │ https://osv.dev/vulnerability/DSA-5169-1 │
│ nginx:1.19 │ Debian │ tzdata │ 2021a-0+deb10u1 │ https://osv.dev/vulnerability/DLA-3134-1 │
│ nginx:1.19 │ Debian │ tzdata │ 2021a-0+deb10u1 │ https://osv.dev/vulnerability/DLA-3161-1 │
exit status 1
就會列出,並且返回碼是 1
使用重點是被掃目標是否存在在docker images清單內
本篇操作範例在 osv-scanner 專案目錄下執行操作
git pull
go run ./cmd/osv-scanner --docker 目標image:版本
用在針對自己使用的官方image或自製image來做掃描
有返回碼設計,
所以可以稍微自行設計自動化的script排程透過返回碼來定期檢查通報自己的創作或採用的image是不是該更新了。