基於ClamAV技術的容器安全建設

https://www.freebuf.com/articles/system/353092.html

概述

隨着雲原生技術被越來越多的企業使用,容器作爲雲原生技術架構最重要的基礎組件之一,容器自身是否存在安全風險、是否提供足夠的安全機制來保障業務安全問題運行,成爲了企業實踐雲原生架構最大的絆腳石之一。試想,如果容器存在一個嚴重漏洞,那麼基於容器的一切數據甚至是運行容器的宿主機,將被攻擊者控制。

據《Sysdig 2022 雲原生安全和使用報告》顯示,超過75%的運行容器存在高危或嚴重漏洞、62%的容器被檢測出包含shell命令、76%的容器使用root權限運行。

那麼如何發現這些危險的容器、如何發現容器中是否包含惡意文件了?這篇文章試着提供一個基於ClamAV的容器安全建設方法,供大家參考。

ClamAV介紹

ClamAV是一個開源病毒掃描工具,最近發佈了1.0正式版本,穩定性有了很大提升,同時,ClamAV也從0.96版本支持針對容器的規則編寫,具體規則編寫方法,可以參考官方文檔

新版ClamAV的安裝過程有幾個需要注意的地方:

  1. Linux環境如果不存在ClamAV用戶名、用戶組,則直接手動創建即可。
  2. 運行是如果提示目錄不存在,手動創建後,設置爲ClamAV用戶可讀寫。
  3. 根據官方文檔生成配置文件後,需要打開配置文件,刪除無用的Example那一行,不然運行是會報錯。

ClamAV更新規則庫

由於ClamAV官方不在提供更新規則庫連接,因此,很多網上的方法都無法使用,這地方,直接介紹一個最簡單的辦法。

  1. 下載安裝cvdupdate工具:pip install cvdupdate
  2. 運行cvdupdate命令更新規則庫:cvdupdate update
  3. 啓動規則庫私服:cvdupdate serve
  4. 打開freshclam配置文件: /usr/local/etc/freshclam.conf,找到PrivateMirror配置項,取消前面的註釋,如果第三步的私服和clamav在一臺機器,則可以配置爲:PrivateMirror localhost:8000
  5. 運行freshclam命令導入clamav規則

ClamAV掃描容器

ClamAV掃描方式有兩種

  1. daemon方式:先運行clamd daemon進程,然後使用clamdscan把要掃描的對象傳給clamd daemon掃描。
  2. cli方式:使用clamscan命令,指定目標掃描。
    爲簡單演示,本篇文章使用clamscan cli方式進行掃描。
  3. 導出容器鏡像文件
    與Trivy不同的是,ClamAV需要對容器裏的文件內容進行掃描,所以,在掃描之前,我們需要先把容器鏡像導出來,比如我們導出名爲:vibersastra/ubuntu的鏡像:
    docker save -o ubuntu.tar vibersastra/ubuntu:latest
  4. 解壓掃描容器鏡像
    解壓上一步導出的鏡像文件:tar xvf ubuntu.tar,假設我們解壓到了temp目錄,則可以使用 clamscan -r temp進行掃描(-r表示遞歸掃描),掃描結果如下:

通過ClamAV,可以成功發現容器中包含的挖礦病毒文件。

tips:由於clamscan每次都需要load一次規則庫文件,導致每次開始掃描都很慢,在正式的環境中,建議使用daemon方式運行。

與Trivy結合實現安全左移

到這,我們已經學會了ClamAV的使用,接下來,如何使用ClamAV實現安全左移,把安全問題發現在業務上線前了?

Trivy這個工具,相信很多瞭解容器安全的小夥伴都在用,通過Trivy可以發現容器鏡像的安全漏洞,包括容器裏的靜態代碼。但是Trivy是一個發現漏洞的工具,至於容器鏡像裏是否存在惡意樣本,比如遠控病毒、挖礦木馬等,Trivy是無法發現的,一個典型的Trivy掃描容器的接入如下:

所以,我們可以通過綜合使用Trivy和ClamAV,來保障容器運行時的安全:

  • trivy:確認容器無漏洞,從而無法被攻擊。
  • clamav:保證容器運行時無惡意文件,從而杜絕供應鏈攻擊。

結語

隨着使用docker的企業越來越多,容器防病毒也將會得到更多的關注,這在一定程度上可以借鑑主機安全建設的思路,但容器的靈活性,註定無法像主機那樣部署Agent,更多的還是依賴宿主機層面的Agent,實現對容器的安全掃描,從而排除安全風險。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章