Docker容器安全掃描-Grype

2022-02-06 老年人的雜貨鋪

收錄於話題 #DevSecOps工具鏈探索 3個

Docker容器安全掃描-Grype

前言

隨著雲和虛擬技術發展,Docker容器的使用越來越流行和方便。有很多企業已經把基礎架構由傳統實體機轉移到了虛擬機化架構,基於公有雲、私有雲以及容器雲構建在線服務。

基於k8s的DevOps平臺中,Docker也是核心的一環,如圖:

由此可見,容器相關的安全性也越來越重要。

價值衡量:

成本:搭建成本較低(需要長期運營),但從工具化->自動化階段會有一定時間成本;

收益:可解決Docker容器安全這一類問題,在DecSecOps流程中也是必不可少的一部分;

0X01 相關地址

Github地址:https://github.com/anchore/grype

除Grype之外,也調研過其他相關工具

如:

Clair, 是由CoreOS推出的容器靜態安全掃描工具,有cli端做分布式掃描會很不錯,並且目前一直在更新迭代;

DockerScan,更像一款docker容器安全風險利用工具,能提取容器中配置但需要人工根據這些配置信息排查是否存在安全隱患;

0X02 安裝&特徵

安裝比較簡單這裡就不作描述。

支持對主流作業系統包進行安全漏洞掃描:

Alpine
BusyBox
CentOS / Red Hat
Debian
Ubuntu

支持對特定語言的軟體包進行漏洞掃描:

Ruby (Bundler)
Java (JARs等)
JavaScript (NPM/Yarn)
Python (Egg/Wheel)
Python pip/requirements.txt/setup.py

支持Docker和OCI鏡像格式;

0X03 使用

使用比較簡單,安裝成功後直接在命令行中調用Grype即可,如圖:

支持直接對docker image掃描,grype [IMAGE] [flags]如圖:

與這個工具搭配的還有syft一款掃描容器內軟體包信息的工具,grype可直接掃描由syft生成的json文件,感興趣的朋友可以自己研究下;

ps:這裡只是記錄下工具的使用,後邊更多的還需要思考,如何實現工具化->自動化的轉化!

0X04 參考連結

https://zhuanlan.zhihu.com/p/200997301
https://www.cnblogs.com/Hi-blog/p/Docker-Scanner-Tool-DockerScan.html
https://zhuanlan.zhihu.com/p/43547242

來,一起探索未來

相關焦點

  • docker 容器安全問題實驗
    最近log4j的漏洞很紅火,跟風發一篇docker的安全問題文章。容器提權操作了一個沒有權限的文檔。指定容器用戶容器可以指定用戶。 998docker的機制是容器的id=1的進程是主進程。清理可以使用下面命令清理實驗環境docker ps -aq | xargs docker  stop  # 關閉容器docker container prune  # 清理容器docker rmi redis:redis_test  # 刪除鏡像
  • Docker鏡像安全深度掃描
    基於Docker鏡像的特點,深入開展Docker鏡像安全風險分析,通過各個環節探究鏡像安全風險,提出了鏡像的安全掃描檢測方法,提升了Docker鏡像的安全和可靠性。守護進程配置風險2.3.2 Docker其他安全配置風險3 Docker鏡像安全掃描研究3.1 病毒木馬檢測3.2 軟體漏洞檢測3.3 歷史行為分析3.4 信息洩露檢測3.5 鏡像運行安全策略4 Docker鏡像安全檢測方法5 結 語Docker一般以集群的方式提供服務,是大量容器協作完成的一項任務,需要快速分發和啟動大量Docker容器。
  • 技術乾貨 | Docker 容器逃逸案例匯集
    判斷是否在docker容器裡首先,我們需要先判斷是否在docker環境裡,常用的兩個檢測方式:檢查/.dockerenv文件是否存在檢查/proc/1/cgroup內是否包含"docker"等字符串。2.2 docker.sock掛載到容器內部場景描述:簡單來說就是docker in docker,在docker容器中調用和執行宿主機的docker,將docker宿主機的docker文件和docker.sock文件掛載到容器中,具體為:docker run
  • ​Docker容器化Jenkins+碼雲+Docker+華為鏡像容器實現CI/CD
    轉載Docker容器化Jenkins+碼雲+Docker+華為鏡像容器實現CI/CD本篇主要為個人在jenkins不知道是不是自己下的鏡像版本的問題,jenkins容器起起來以後沒有jdk運行環境。使用docker 掛載數據卷的方式蹭宿主機的jdk來用,見下面的一長串啟動命令配置。個人不是很熟悉 docker-compose,所以本篇基本都是docker 原生命令。
  • sec-admin資產安全掃描核心管理系統首發(弱口令掃描,漏洞掃描)
    SEC-分布式資產安全掃描弱口令、系統漏洞、WEB漏洞掃描SEC (SEC Is Elastic Controller
  • Docker容器的管理
    下面詳細的演示這部分的應用:#運行docker的鏡像信息[root@wuyaShare ~]# docker run -it centos:7.8.2003 bash[root@b8c896d0a0d6 /]# dateWed Oct 20 08:42:46 UTC 2021[root@b8c896d0a0d6 /]# exitexit
  • Docker取代VM!是什麼讓Docker比VM或裸機更安全?
    Docker:在docker容器上,有一些非命名空間的資源:SELinuxCgroupsfile systems under /sys, /proc/sys,/proc# 套接字問題容器在默認情況下都安裝了docker Unix套接字(/var/run/docker.sock),此套接字,可以關閉、啟動或者創建新的鏡像。
  • Docker安全最佳實踐
    apt.conf.d/01autoremove ab6540f7278a05a4b7f9e58afcaa5f46/etc/cron.daily/apt-compat 49e9b2cfa17849700d4db735d04244f3/etc/kernel/postinst.d/apt-auto-removal 4ad976a68f045517cf4696cec7b8aa3a/etc/logrotate.d
  • Docker容器互聯方法
    當容器安裝完畢,執行CTRL+P和CTRL+Q命令退出該容器。緊接著我們停止並提交該容器。$ sudo docker stop client_setup$ sudo docker commit client_setup client_img現在我們可以使用剛才創建的名為client_img的容器了。
  • 備份 docker 容器內的 mongo資料庫
    突然有一天,發現數據全部沒有了(被黑):後面小白不斷成長,摸索出了 jenkins + docker 實現了自動構建和部署,其中 mongo 被我部署進了 docker 容器現在有個問題,我想定期的去備份數據,以備不時之需
  • Docker容器入門指北
    ; docker images運行容器所使用的鏡像可以被修改從而生成新的鏡像,新的鏡像可以上傳或者說push到Docker hub上用來分享。使用下面的指令可以使用Nginx鏡像來運行容器,-i和-t選項可以賦予你以交互式shell形式進入容器的權限:> docker run -it nginx然後你的shell提示符會反映出你現在正在容器中,它的形式是這樣的:root@
  • Docker 鏡像存儲原理及其漏洞掃描
    容器啟動之後,查看/var/lib/docker/overlay2目錄,發現多了兩個目錄。未啟動容器前,目錄裡面的內容:[root@localhost docker]# ls overlay2/ 695001d77ca267b08cb2dcbf586f9771ee8c507dc337188517cefe4f44fa4f6f backingFsBlockDev l[root@localhost docker]# 啟動容器後,目錄裡面的內容
  • 細述docker容器創建MariaDB鏡像
    yum install docker[root@test01 ~]# systemctl enable docker[root@test01 ~]# systemctl start docker下載本地鏡像[root@test01 ~]# docker pull centos:7.4.1708
  • docker容器由淺入深解析
    前言在雲原生技術的大趨勢下,容器技術作為雲原生技術的基石,而docker在容器領域被大家廣泛認可和接受
  • Docker容器進階(中)
    測試看下,登陸redis容器,隨意寫個數據[root@qfedu.com ~]# docker run --rm -it --namemyredis2 --link myredis:redisdb docker.io/redis/bin/bashroot@be44d955d6f4:/data[root@qfedu.com ~]# redis-cli
  • NBU 基於 Docker 容器的備份及恢復
    本文系2020容器雲職業技能大賽架構師崗比賽作品。在基於容器的應用程式架構中,部分容器旨在創建或修改持久性數據。在這種情況下,保護數據尤為重要,但它也允許在其他場景中,將數據安全地排除在備份進程之外。作為用於備份和恢復的 Docker 認證容器,Veritas NetBackup 可提供三種方式保護容器,以實現最大靈活性。
  • 怎樣在Python中操作Docker容器?
    目前很多人使用容器Docker Daemon API來管理承載著他們應用的容器。 (Kubernetes / Mesos 就是很好的例子)。 而sidomo則為容器開闢了一條全新的用例——將棘手的軟體轉換為好用的、原生的Python模塊,可以與python程序無縫對接。
  • 玩轉docker容器編排調度 docker-compose、docker-swarm
    容器啟動後,同屬一個網絡下(默認一般是橋接)的容器彼此能根據對方的name彼此ping通。使用docker-compose時,他會為我們新創建一個虛擬網卡。app中的容器啟動後都會加入這個虛擬網絡中。後來我們學著通過volume將容器中應用的配置文件掛載到宿主機實現簡單的定製化配置,然後docker run 啟動容器再後來我們學習了Dockerfile,自定義鏡像,實現了將我們本地打包好的應用做成鏡像,然後docker run 啟動容器。
  • Docker 容器化部署技術
    信息和版本docker info #容器的池、已用數據大小、總數據的大小、基本容器大小、當前運行容器數量等。docke>docker rmi <鏡像ID或名稱>6)刪除所有的鏡像docker rmi $(docker images -q)4、創建並運行容器docker run <容器名稱>docker run -dit --name="容器名稱"  鏡像ID或名稱 /bin/sh #創建一個名為python~
  • Docker 容器常用命令
    啟動docker2.新建並啟動容器常用選項:-d :表示後臺運行(不加此選項,退出命令行後,容器將自動停止運行)-v :掛載宿主機目錄到容器例:docker run -v  /宿主機絕對路徑:/容器內目錄-P :隨機埠映射-p :指定埠映射,一般為 hostPort:containerPort 或 containerPort