OpenSCAP研究2

OpenSCAP研究-原機掃描image

ZONGRU Li
7 min readAug 2, 2022

如同前篇有找到YT影片看到一個cli工具:oscap-docker

但是在RHEL8中發現有:

LINK(需要RH一般帳號)

上述RH頁面提供了幾個連結:

  1. RHEL 8 Security hardening
  2. Scanning container and container images for vulnerabilities
  3. Assessing security compliance of a container or a container image with a specific baseline

然後我發現RHEL8機台內也有:

所以後面專注找到"oscap-podman"的文件看到:

LINK

如上,所以我可能先在機台放好一個image來測試

首先先安裝podman來隨便抓個image

#在RHEL8機台安裝podman工具(包在container-tools),可以先查看可安裝模組清單:
sudo yum module list -y
#實際安裝:
sudo yum module install container-tools -y

簡單以我最近常搞的Jenkinsimage為例子,先拉來到該機台上

#抓取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*

看起來是Debian11

所以接下來這邊要先研究把相關osscap掃描規則拉下來

rhel8的為例子:

後來找到一個網站有統整相關的掃描文件:

LINK這是rhel8的文件

然後有搜尋頁面:

LINK

進去後有地方可以下載:

但是後來根本沒有xml文件下載點

所以後面改用RHimage來做測試

比如說用以下的image:

LINK

首先登入該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包裹在RHELscap-workbench套件裡面!

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet