fbpx

CL LAB

HOME > CL LAB > CVE-2019-5021:Alpine Dockerイメージ空パスワード脆弱性 #AquaSecurity #Container #Security #DevSecOps

CVE-2019-5021:Alpine Dockerイメージ空パスワード脆弱性 #AquaSecurity #Container #Security #DevSecOps

 ★ 1


本ブログは「Aqua Security」社の技術ブログで2019年5月12日に公開された「cve-2019-5021-alpine-docker-image-vulnerability」の日本語翻訳です。

CVE-2019-5021:Alpine Dockerイメージ空パスワード脆弱性

先週、AlpineのDockerイメージに影響を与える新しい脆弱性が公開されました。この脆弱性は、バージョン3.3以降のAlpine Dockerイメージではデフォルトで空に設定されているrootユーザのパスワードが原因です。

このCVEはDockerイメージとして提供されていないAlpineディストリビューションには影響しません。

脆弱なAlpineイメージを使用したコンテナ環境で、Linux PAMまたはシステムのshadowファイルを認証データベースとして使用するその他のメカニズムを使用するアプリケーションを持つコンテナは、rootユーザに対して空パスワードを受け入れる可能性があります。これにより、rootユーザではないユーザが認証プロセスを迂回してコンテナ内にrootアクセスするというシナリオが生じる可能性があります。

使用しているAlpineイメージに脆弱はあるか

使用しているDockerイメージが脆弱かどうかを確認するには、実行中の「Alpine」コンテナにログインし、次のコマンドを実行します。

$ cat /etc/shadow | grep root

脆弱なコンテナの出力は以下のとおりです。

root:::0:::::

/etc/shadowファイルは各ユーザの暗号化されたパスワードが含まれています。一行につき、一ユーザの暗号化されたパスワード、変更時刻、有効期限など、パスワードに関する情報が記載されています。(各フィールドはコロンで区切られています。)

上記の出力のように脆弱なAlpineイメージのrootアカウントの2番目のフィールドは空です。これは、パスワードが空に設定されていることを意味します。

この脆弱性を修正するには、rootパスワードが「!」に設定されている新しいAlpineイメージを使用してください。これは、rootユーザをアプリケーションへのログインとして使用できず、かつシステムにログインできないことを示します。(root権限でアプリケーションを実行することはできます。)

修正されたAlpineイメージの出力は以下のとおりです。

root:!::0:::::

Alpineイメージを最新版にアップデート

まず、Alpineイメージを最新版にアップデートすることをお勧めします。

この問題は、以下のDockerイメージリリース(2019年3月7日)で修正されました。

  • edge(20190228スナップショット)
  • 9.2
  • 8.4
  • 7.3
  • 6.5

バージョン3、4、および5はサポートが終了しており、脆弱性が含まれています。(修正版は出ていません。)

Aquaを使用してこの脆弱性を検出し軽減する

Dockerイメージが空のrootパスワードを持っているかどうかを確認するためにはAquaの「ImageAssurance」ポリシーをご利用ください。

  1. 「CVE-2019-5021」の脆弱性をチェックするスクリプトを作成。
#!/bin/sh

if [ $(cat /etc/shadow | grep ^root::) ]; then 
         echo "Image is vulnerable with CVE-2019-5021"; exit 1;
    else echo "Image is not vulnerable"; exit 0;
fi

2.スクリプトをアップロード
null

3.空のrootアカウントのパスワードを含むDockerイメージを確認する「ImageAssurance」ポリシーを作成。

4.Dockerイメージをスキャンし、/etc/shadowのrootユーザが空であるDockerイメージは、先ほどAquaに登録したポリシーにより検知。(写真は、修正される前のAlpine:3.9のDockerイメージです。)

shadowまたはlinux-pamのパッケージがインストールされているかどうかも確認できます。これらのパッケージはこの脆弱性を悪用するために利用されます。パッケージを確認するには、「Package Blacklist」を「Image Assurance」ポリシーに追加します。

Related post