日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

容器镜像安全概述

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 容器镜像安全概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
微服務架構的興起,容器化部署已經成為時下最流行的生產方式,越來越多的公司將應用部署在基于容器的架構上。自然的,隨著容器的廣泛使用,容器的安全性就成為了業界關注的焦點,容器安全廠商如雨后春筍般相繼成立,如:CoreOSClair、AquaSecurity、Twistlock、Anchore等等。容器是基于鏡像構建的,如果鏡像本身就是一個惡意鏡像或是一個存在漏洞的鏡像,那么基于它搭建的容器自然就是不安全的了,故鏡像安全直接決定了容器安全。


為什么容器鏡像會產生安全問題?

在傳統的部署方式中,應用依賴于操作系統中的環境。在配置好環境后,應用可以穩定地運行。

圖1?傳統部署結構

但是隨著技術的發展,傳統部署帶來的問題越來越嚴重。因為多個應用對運行環境的不同要求,導致應用部署產生了很多出乎意料的麻煩,在瑣碎的環境問題上消耗了許多精力。

圖2?傳統部署帶來的問題

因此,容器化部署被引進以應對這種情景。容器安裝了運行時所需要的環境,并且要求開發人員將他們的應用程序及其所需的依賴關系打包到容器鏡像中。?無論其他開發人員和操作系統如何,每個開發人員都可以擁有自己的依賴版本。最終不論是用戶還是開發者都在這種部署方案中受益,開發者可以輕松地在不同環境中測試應用的運行情況,在發布新版本的時候也不必為環境的改變而定制升級教程;用戶在使用容器部署時也十分便利,并且不同的軟件之間也不會相互影響。

圖3??容器化部署結構

理想情況下,容器鏡像應該只包含應用程序的二進制文件及其依賴項。?然而實際上,容器鏡像往往是相當巨大的。像Ubuntu、Centos這樣被廣泛使用的基礎系統鏡像,它們包含了相當多的功能。盡管有些功能在調試部署的時候帶來了一定的便利,但是在增大的體積面前,收益極低。

圖4??容器化部署實際情況

容器實際上是不透明的,被封裝成一個個繁瑣的鏡像。

最終,當越來越多的容器被創建時,沒有人再確定容器到底裝載了什么?實際運行著什么?

?圖5?容器部署現狀

正是因為如此,我們日常使用的鏡像面臨嚴峻的安全問題。隨著歷年來積累的CVE越來越多,很多應用都存在一些問題,在更新頻率低的鏡像中尤為嚴重。

因此,筆者做了一個測試,拉取了Docker?Hub上公開熱門鏡像中的前十頁鏡像,對其使用Clair進行了CVE掃描統計。結果出乎預料。在一百多個鏡像中,沒有漏洞的只占到24%,包含高危漏洞的占到67%。很多我們經常使用的鏡像都包含在其中,如:Httpd,Nginx,Mysql等。

圖6?掃描示例

?圖7??掃描結果統計

如何改善目前的處境?

在使用前確認鏡像的安全性,對鏡像進行分析檢測,不讓鏡像中的漏洞和惡意后門在運行的容器中給我們帶來風險。

目前Docker安全工具有很多,從多方面來維護容器的安全性,如運行時監控預警、取證、預生產分析、安裝配置校驗、信任管理等。本文主要關注于鏡像在使用之前的掃描和審計,即預生產分析類的工具。這類工具主要從CVE漏洞與惡意鏡像兩方面來對鏡像進行掃描。

接下類介紹三款有代表性的鏡像安全工具,分別針對CVE檢測,惡意鏡像產生,惡意鏡像檢測。

Clair?

Clair的目標是能夠從一個更加透明的維度去看待基于容器化基礎框架的安全性、Clair是由CoreOS所推出的這樣一款針對容器鏡像的安全掃描工具。?Clair主要模塊分為Detector、Fetcher、Notifier和Webhook,Clair首先對鏡像進行特征的提取,然后再將這些特征匹配CVE漏洞庫,若發現漏洞則進行提示,其功能側重于掃描容器中的OS及APP的CVE漏洞。

Clair是掃描引擎,啟動后暴露API等待調用。在這里筆者使用clairctl(一個第三方調用工具)來對Clair發出調用請求,從而完成掃描。

下圖為clairctl的基本命令介紹,基本命令如圖所示,詳情了解某一條的用法在命令后加上--help參數即可。

?圖8?Clair示例

上圖使用Clair對本地(-l?參數)鏡像Centos進行了一次掃描,掃描結果為沒有漏洞,隨后生成報告,保存在/reports/html/analysis-centos-latest.heml,用瀏覽器打開即可查看詳情。

Dockerscan

Dockerscan是一個分析、攻擊工具。它可以在網絡中找出鏡像倉庫所在的主機,可以在鏡像中插入木馬,可以查看鏡像中的敏感信息等等。

下圖為Dockerscan基本命令,以及一次對?223.****.210/28?這個小網段進行一次探測容器倉庫掃描。探測發現兩臺網易的容器倉庫。

?圖9?Dockerscan掃描示例

下圖為獲取mysql_origin鏡像的基本信息,可以看到該鏡像被植入一個反彈shell,接收shell的端口為2222,地址為10.****.8

?圖10??Dockerscan查看鏡像信息

下圖為利用Dockerscan攻擊受害者的流程,將木馬植入正常鏡像Nginx中,當用戶運行該鏡像時,攻擊者就會接收到反彈出的shell,從而達到控制服務器的目的。


?圖11?Dockescan攻擊鏈

下圖為使用實例,白窗為Dockerscan容器,黑窗為容器所在宿主機,宿主機/tmp目錄掛載在容器~/images?目錄。首先在宿主機/tmp目錄下將鏡像保存為文件(docker?save?-o??filename??imagename),然后再容器中可以看到該鏡像文件,然后使用dockerscan修改鏡像,將木馬植入該鏡像,接受地址設置為?10.****.8(我的宿主機),端口為2222,保存為evil.tar(植入木馬的mysql鏡像文件),隨后在本地監聽2222端口(nc?-v?-k?-l?2222),然后再宿主機導入注入木馬的鏡像(docker?load?-i?evil.tar),隨后運行該鏡像,監聽端口隨即收到反彈出的shell,執行命令測試。

?圖12??Dockerscan使用示例

Anchore

Clair能掃描出一個鏡像中的所有CVE漏洞,但現在有一種情況,黑客使用最新版無漏洞的OS鏡像,然后在其之上安裝后門木馬,或執行惡意命令,這樣Clair就不能檢測其安全性了。
這時就要介紹一個分析工具Anchorele,與Clair不同,Anchore側重于對鏡像的審計,其有強大的對鏡像的解析能力。在分析之后可以對鏡像進行多種操作,內置了許多腳本,用途廣泛。

下圖為Anchore使用命令截圖,初次使用要先使用feeds?list和?feeds?sync來同步漏洞庫。接下來有使用示例命令,在這里不多做介紹了。在有想了解的命令時,加上--help參數即可查看詳細介紹。

?圖13??Anchore使用命令

這里介紹幾個常用的命令,query命令是調用已有模塊對鏡像進行相應的操作,調用不同的腳本需要不同的參數。接下來調用一個模塊做演示。

?圖14??Anchore??query功能

在這里,我們想調用show-file-diffs模塊來對比兩個鏡像的差別,在之前,我們需要首先先分析兩個鏡像mysql:evil?和?origin:origin,這是上個環節使用dockerscan生成的惡意鏡像和原始鏡像。接下來調用該模塊,可以看到差別是在/usr/share/lib目錄下多了一個反彈shell的文件。

?圖15??Anchore?示例

下圖是toolbox命令的詳情,里面有一些使用的小工具,接下里我們嘗試幾個命令。show-familytree?、?show-taghistory、show-layers、show-dockerfile,來查看鏡像registry的鏡像關系,版本歷史,鏡像的層,還有鏡像構建文件。

?圖16?Anchore功能示例

?圖17??Anchore功能示例

小結

鏡像安全決定了容器安全,而目前Docker?Hub上的鏡像76%都存在漏洞,所以我們使用鏡像運行容器前,一定要對鏡像鏡像進行掃描,從而提高安全性。


https://mp.weixin.qq.com/s?__biz=MzIyODYzNTU2OA==&mid=2247484334&idx=1&sn=d700d4aa893ad69b677295d615c68362&chksm=e84fa571df382c672c95f345c5dcf1cb6f4109b86b6dec8e3a442a13e71be4eddfd6dd6f0d3c&mpshare=1&scene=1&srcid=03306RWXhVzpD8xDBU0lpTuh&pass_ticket=bdFr9wadMkBuEr6t8TcmUrpCgxMgwBpo8%2B9tcXzU2O4ScqJ2%2BpEBJwRBLz9NtPmJ#rd

總結

以上是生活随笔為你收集整理的容器镜像安全概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。