iT邦幫忙

2023 iThome 鐵人賽

0

Yes

  • Harbor 是一款開源的 Container Registry 解決方案,支援代理映像檔倉庫功能,並結合映像檔案掃描工具於抓取後進行第三方函式庫的弱點掃描。這邊就先由安裝 harbor 開始介紹起,然後設定代理鏡像倉庫,最後再來測試第三方函式庫弱點掃描功能。

  • 參考資料 : Harbor Installation and Configuration。安裝檔案位於官方 github 頁面,請下載 offline 檔案 goharbor/harbor v2.5.1。步驟如下 :

  1. 下載檔案並且解壓縮
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz ;
tar xvf harbor-offline-installer-v2.7.0.tgz ;
  1. 產生自簽憑證,指令參考 How To Create a Self-Signed SSL Certificate for Nginx in Ubuntu 22.04
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt ;
  1. 複製一份設定檔案
cd harbor ;
cp harbor.yml.tmpl harbor.yml ; 
  1. 調整 harbor.yml 內容,包含 hostname、certificate、private_key
# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: ithome

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /etc/ssl/certs/nginx-selfsigned.crt
  private_key: /etc/ssl/private/nginx-selfsigned.key
  1. 初始化安裝資訊,並設定使用 trivy 掃描工具
./prepare --with-trivy
  1. 調整資料夾權限,避免 1514 服務沒辦法啟動 Syslog (harbor-log) seems not correctly configured, error is reported when starting
sudo find common/ -type f -exec chmod 0755 \{\} \;
  1. 啟動 harbor
#背景執行
docker compose up -d ; 
  1. 連入 port 80,帳號 admin,預設密碼 Harbor12345。

  2. 先把語系切換成英文,待會比較好比對。

  3. 接著要新增一個遠端倉庫遠端連到 dockerhub,參考設定 Creating Replication Endpoints,步驟是先到從[Administrator]->[Registers]中新增一個[ENDPOINT],記得務必把 Provider 切換成你要的對象 (重要!!!!!!!!!)。Provider 選擇 [Docker Hub] -> 輸入自己的帳號、密碼 -> [Test Connection] -> OK。

  4. 接著設定一個本地倉庫使用這個遠端倉庫,步驟參考 How to use Harbor Registry to Eliminate Docker Hub Rate LimitsConfigure Proxy Cache。步驟是 [Projects] -> [New PROJECT] -> Project Name 填入 [docker-hub] -> Access Level 針對 Public 打勾 -> [Proxy Cache] 選擇 [docker_hub],按下 [確定]。

  5. 透過 harbor 拉取鏡像倉庫

docker pull localhost/docker-hub/ubuntu ; #先試拉一個 image 看看
  1. 針對 docker-hub 內部設定抓取的策略,在 [Configuration] -> [Deployment security] -> [Prevent vulnerable images from running.] -> 阻止 Critical 級別嚴重以上的鏡像運行。 [Vulnerability scanning] -> 勾選[Automatically scan images on push]。儲存後試著拉去年鐵人賽的內容。
docker pull localhost/docker-hub/aeifkz/ithome_ctf:v1.0 ;

# 顯示抓取的鏡像檔案
docker images ; 

# 等待harbor 進行掃描。

# 刪除鏡像檔案
docker rmi localhost/docker-hub/aeifkz/ithome_ctf:v1.0 ;

# 再次抓取會失敗
docker pull localhost/docker-hub/aeifkz/ithome_ctf:v1.0 ; 
  1. 或許是因為效能考量,harbor 沒辦法針對下載的映像檔做完掃描才讓使用者下載。取而代之的是下載後先讓使用者使用,並且進行映像檔案掃描,一旦發現有問題,下次就不會讓使用者進行下載。
  • 今日總結 :
    • 本日回顧 :
      • 針對開源鏡像倉庫工具 harbor 進行安裝、建立 Proxy 倉庫、開啟第三方函式庫掃描功能。雖然用起來有點差強人意,無法再抓取的時候即時掃描,但也還算堪用。只是問題是後續禁止閥值的訂定,以及修補函式庫的相關規範匯是資安人員需要拿捏的部分,一個訂不好會讓AP人員疲於奔命在修補無關緊要的東西上,這部分是導入第三方函式庫掃描時需要特別考慮的地方。弱點掃描項目部分並沒有想像中來的好用,跟自己用 trivy 套用樣板產出來的結果相去不遠,也算是比較可惜的地方。
    • 次日預告 :
      • 容器安全的防禦部分已經介紹得差不多了,有些掃描工具的部分主要會留給 K8s,其他容器的掃描工具就交給各位自行研究。接著就要開始介紹偵查的部分,當面對到一些無法防禦的攻擊該怎麼辦呢? 這時候就交給偵測機制去監控,即便是真的被打進來日後還有機會從監控的資料去研究出對方的攻擊手法,這部分會透過 Falco 來進行。

上一篇
Day 40 - 作業13解答 - 透過 syft 排除特定資料夾做 Image 安全掃描
下一篇
Day 42 - (偵測) Falco 介紹及安裝
系列文
怕痛的我把 Docker、K8s 攻擊、防禦、偵測力點滿就對了63
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言