0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker Imageに脆弱性のあるライブラリが含まれていたときの対応方法

Last updated at Posted at 2024-11-13

概要

docker imageに脆弱性のあるライブラリが含まれていたときの対応方法。

対処法1

個別にライブラリを脆弱性のないバージョンまでアップデートする。
例えばDockerfileに以下の処理を追加する。

ただしこれは表層的な対処法なので、可能であれば対処法2を行う。

RUN set -ex \ 
	&& apt-get update -qq \ &
	& apt-get install -y \
	 # fix CVE-2024-47685 linux-libc-dev 次回image更新時に削除
	linux-libc-dev 

対処法2

イメージを、脆弱性のないライブラリを含むバージョンまでアップデートする。
その際に、マイナーバージョンを上げるだけで済みそうなのであれば、マイナーバージョンをMaxまであげるとよりいい。

例えば、6.1.99-1のlinux-libc-devが使われており、それはCVE-2024-47685に引っかかっているとする。
その場合まず、どのイメージでこのライブラリが使われているかを明確にする。

例えばDockerfileが以下のようであった場合、nodeとrubyでlinux-libc-devが使われている可能性がある。

FROM node:22.10.0-slim
FROM ruby:3.3.4-slim

それぞれのイメージをDockerHubで検索し、使用しているバージョンのページに行き、Packagesの箇所にライブラリの名前をいれて検索 or VulnerabilitiesにCVEの番号を入力して検索(CVEで検索してもでない場合があるので、今回の場合はライブラリ名で検索するのが安全)。
以下のようにruby:3.3.4-slimで使用していることがわかった。

image.png

パッチバージョンを上げるだけで済むのであれば、基本的にパッチバージョンを最大まで上げる & 既存の機能に影響がでないことを確認 & 軽く動作確認してリリースすればいい。
メジャー、マイナーバージョンを上げる必要がある場合は、必要に応じた分だけバージョンをあげて、適切に影響範囲等に対して対応すればいい。

今回の場合は、3.3.5以上にすれば問題は解消するが、ruby3.3系で最新のバージョンは3.3.6なので、3.3.6まであげる。

FROM node:22.10.0-slim
FROM ruby:3.3.6-slim
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?