OpenSCAP研究2
如同前篇有找到YT影片看到一個cli工具:oscap-docker
但是在RHEL8中發現有:
上述RH頁面提供了幾個連結:
- RHEL 8 Security hardening
- Scanning container and container images for vulnerabilities
- Assessing security compliance of a container or a container image with a specific baseline
然後我發現RHEL8機台內也有:
所以後面專注找到"oscap-podman"的文件看到:
如上,所以我可能先在機台放好一個image來測試
首先先安裝podman來隨便抓個image
#在RHEL8機台安裝podman工具(包在container-tools),可以先查看可安裝模組清單:
sudo yum module list -y#實際安裝:
sudo yum module install container-tools -y
簡單以我最近常搞的Jenkins的image為例子,先拉來到該機台上
#抓取lts的Jenkins image(這邊暫時不用root來搞):
podman pull docker.io/jenkins/jenkins:lts
#確認image有被拉下來:
podman images
#執行oscap-podman工具指令來掃描剛剛抓的Jenkins image:
oscap-podman 89b279054578 xccdf eval \
--results-arf results-image.xml \
--report report-image.html --profile ospp \
/usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
但是後來看到沒辦法用非root來執行:
所以只能多sudo:
但是image要是root抓的
#先移除一般User的image:
podman rmi 89b279054578#用root身分重抓Jenkins image:
sudo podman pull docker.io/jenkins/jenkins:lts
#先看root抓下來的image id:
sudo podman images#重新用root身分執行oscap-podman工具指令來掃描剛剛抓的Jenkins image,:
sudo oscap-podman 89b279054578 xccdf eval \
--results-arf results-image.xml \
--report report-image.html --profile ospp \
/usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
其中有大量的顯示"notapplicable"表示該掃描規則不適用
(參考上一篇找到的YT解說也有提到)
然後我才突然想到,這Jenkins抓下來的image base os好像不是RHEL...
但是我掃描規則用的是"ssg-rhel8-ds.xml"
我先確認一下抓來的image打包的os版本
#執行以下兩個指令來確認Jenkins image的os版本:
sudo podman images
sudo podman run 89b279054578 cat /etc/*release*
看起來是Debian的11版
所以接下來這邊要先研究把相關os的scap掃描規則拉下來
以rhel8的為例子:
後來找到一個網站有統整相關的掃描文件:
然後有搜尋頁面:
進去後有地方可以下載:
但是後來根本沒有xml文件下載點
所以後面改用RH的image來做測試
比如說用以下的image:
首先登入該registry並用root抓取該image:
#登入:
sudo podman login registry.redhat.io
#抓image:
sudo podman pull registry.redhat.io/openshift4/ose-jenkins-agent-maven:v4.10.0-202207251556.p0.gc5b7159.assembly.stream
#依據前面學到的方式掃描看看
#先拿到image id:
sudo podman images#用上面拿到的image id進行指令掃描:
sudo oscap-podman 97ed38ba8ef9 xccdf eval \
--results-arf results-image.xml \
--report report-image.html --profile ospp \
/usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
用工具抓下來本機看:
再來要想想架構上如何使用在Jenkins pipeline來做掃描
最後重建一下機台確認"oscap-podman"這個工具
是打包在前面安裝的"scap-workbench"裡面!?
在全新的空機內沒有oscap-podman:
#安裝scap-workbench:
sudo yum install scap-workbench -y
再次確認"oscap-podman":
所以確定oscap-podman包裹在RHEL的scap-workbench套件裡面!