要約
Docker Desktop for Mac で更新後、「マルウェアがブロックされました」エラーが発生して起動できない問題が報告。最新版 v4.37.2 (2025/1/9夜リリース) で修正済み。古いバージョンで問題発生時は GitHub issue #7527 の手順で対処可能。Docker Desktop 4.28 以下は影響を受けない。
Docker Desktop for Mac は、今後の問題発生を未然防止するため、できるだけ早く 4.73.2 へのバージョンアップが推奨されています
概要
※ Docker Desktop for Mac のみが対象です
Docker Desktop for Mac のバージョンアップや再起動後、起動時にエラー「マルウェアがブロックされました」または「Malware Blocked」が出た場合、正常起動できず、対処が必要でした。一連の経緯は GitHub の Docker Desktop for Mac の issue #7527 にまとめられています。
現在提供中のバージョン v4.37.2
1 (1月9日(木) 日本時間19時頃以降にリリース)は問題に対処済みとアナウンスがあります。この新しいバージョンをダウンロードしてインストールしている場合は、起動できない現象は発生しない模様です。(ただし、ステータスページでは現在も対処中と表示されていますので、継続してパッチリリースが出る可能性はあります→ 1/10 16:32 に「監視中」に変わりました)
心配な場合は、公式サイト https://www.docker.com/ から最新の Docker Desktop for Mac をダウンロードし、手動でのアップデートを試みたほうが安全と考えられます。
特に、自動アップデートが有効な場合、Docker Desktop や macOS の再起動によって、自動的にアップデートが走る可能性があります。もし古いバージョンでアップデートしてしまうと、問題が発生し、実行できなくなる可能性があります。
古いバージョンで起動を試みると、エラーが出て起動できなくなりますので、スクリプトまたはコマンド実行による対処が必要です。GitHub で対処方法が公開されていますので、手順通りの作業の後、正常起動できるようになるとのことでした。
詳細
Docker Desktop for Mac を使っている場合、Docker Desktop のインストールやバージョンアップ(macOS 再起動後の自動アップデートを含む)によって、Docker Desktop 起動時にエラーが発生して起動できない現象が発生していました(公式ステータスによると 1/8 10:37〜調査開始のため、実際にはもっと早くから発生していたかもしれません)。
一次情報
- Malware detection prevents Docker Desktop to start · Issue #7527 · docker/for-mac
- Incident Update: Docker Desktop for Mac | Docker
- Docker Systems Status Page
時系列
問題が認識された時刻は、Docker System Status Page によると、
-
1/8(水)10:37 [JST](1/8 01:37 [UTC])
[Investigating]
(調査中)のステータス -
1/9(木)03:41 [JST](1/8 18:41 [UTC])
-
[Identified] The root cause has been identified: some files in existing installations are incorrectly signed which can be fixed by copying correctly signed files from the Docker.app application bundle.
We are working on a proper fix. - [原因特定済み]既存のインストールにあるファイルの一部に、電子証明の問題があると判明。修正するには、 Docker.app アプリケーションから正しく署名されたファイルをコピーする。現在対応中。
-
-
1/9(木)16:32 [JST](1/10 07:32 [UTC])
-
[Monitoring] Patch releases for Docker Desktop versions 4.32 to 4.37 are now available. Please refer to docs.docker.com/desktop/cert-revoke-solution for more detail.
We continue to monitor this situation. - [監視中] Docker Desktop バージョン 4.32 〜 4.37 のパッチリリースが利用可能です。詳細は docs.docker.com/desktop/cert-revoke-solution を参照。現在も状況を継続確認中。
-
原因
issueのコメント によると、「原因が特定された」と書かれており、
The root cause has been identified: some files in existing installations are incorrectly signed which can be fixed by copying correctly signed files from the Docker.app application bundle.
その理由は 「既存のインストールに含まれる一部ファイルで、電子署名に問題あり。対処には、 Docker.app から正しく署名されたファイルをコピーすると解決できる」とあります。
Those warnings are inaccurate. Docker Desktop is not affected by malware!
また、説明によると「これらの警告は不正確であり、Docker Desktop はマルウェアの影響を受けていません」ともあります。
対処方法
一次情報:Resolve the recent Docker Desktop issue on macOS(公式ドキュメント) 、 Incident Update: Docker Desktop fot Mac(公式ブログ)
対処パターン
※ Docker Desktop バージョン 4.28 以下は本件の影響を受けません
パターン1. Docker Desktop を、問題に対処したバージョン 4.37.2 にバージョンアップする方法(推奨されている)。
- リリースノートのページからダウンロードするか、Docker Desktop アプリからアップデートをかける。
パターン2. パッチアップデートを使う(古いバージョン向け)
- 4.32 〜 4.36 向けに提供しているパッチを適用する。 リリースノート の各対応バージョンのものを適用する。
パターン3. 適切な対処を実施する
- マルウェア警告のポップアップが出続ける場合は、対処方による追加ステップが必要。
パターン4. IT管理者の場合
- ユーザの代わりに適切に スクリプト を実行する
公式ドキュメントに書かれた対処方法
以下参考訳
Docker Desktop バージョン 4.37.2 にアップグレード(推奨)
Docker Desktop バージョン 4.37.2 へのアップグレードが推奨する方法です。
可能であれば、アプリから直接更新をかけてください。できない場合は、まだマルウェアポップアップが出続けているでしょうから、以下の手順を行います。
- Docker プロセスを停止(kill)しないと、適切に開始できません:
$ sudo launchctl bootout system/com.docker.vmnetd 2>/dev/null || true
$ sudo launchctl bootout system/com.docker.socket 2>/dev/null || true
$ sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd || true
$ sudo rm /Library/PrivilegedHelperTools/com.docker.socket || true
$ ps aux | grep -i docker | awk '{print $2}' | sudo xargs kill -9 2>/dev/null
2.マルウェアのポップアップが出てこなくなるのを確認します。
3.バージョン 4.37.2 をダウンロードとインストールします 。
4.Docker Desktop を起動します。5〜10秒後に、権限に関するポップアップメッセージが表示されます。
5.パスワードを入力します。
Docker Desktop ダッシュボードが見えるでしょう。
バージョン 4.32 〜 4.36 にパッチをインストール
最新バージョンにアップグレードできない場合で、マルウェアポップアップが現れる場合、以下の手順を実行します。
- Docker プロセスを停止(kill)しないと、適切に開始できません:
$ sudo launchctl bootout system/com.docker.vmnetd 2>/dev/null || true
$ sudo launchctl bootout system/com.docker.socket 2>/dev/null || true
$ sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd || true
$ sudo rm /Library/PrivilegedHelperTools/com.docker.socket || true
$ ps aux | grep -i docker | awk '{print $2}' | sudo xargs kill -9 2>/dev/null
2.マルウェアのポップアップが出てこなくなるのを確認します。
3.現時点で使っている基準となるバージョンに一致するバージョンのインストーラーとパッチをダウンロードします 。たとえば、バージョン 4.36.0 の場合は、 4.36.1 をインストールします。
4.Docker Desktop を起動します。5〜10秒後に、権限に関するポップアップメッセージが表示されます。
5.パスワードを入力します。
Docker Desktop ダッシュボードが見えるでしょう。
MDM script
IT 管理者の場合は、開発者が Docker Desktop バージョン 4.35 以降で再署名バージョンを使っている場合、以下のスクリプトを回避策として利用できます。
※正確なスクリプトは常に最新のドキュメントをご確認ください。
#!/bin/bash
# Stop the docker services
echo "Stopping Docker..."
sudo pkill [dD]ocker
# Stop the vmnetd service
echo "Stopping com.docker.vmnetd service..."
sudo launchctl bootout system /Library/LaunchDaemons/com.docker.vmnetd.plist
# Stop the socket service
echo "Stopping com.docker.socket service..."
sudo launchctl bootout system /Library/LaunchDaemons/com.docker.socket.plist
# Remove vmnetd binary
echo "Removing com.docker.vmnetd binary..."
sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd
# Remove socket binary
echo "Removing com.docker.socket binary..."
sudo rm -f /Library/PrivilegedHelperTools/com.docker.socket
# Install new binaries
echo "Install new binaries..."
sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/PrivilegedHelperTools/
sudo cp /Applications/Docker.app/Contents/MacOS/com.docker.socket /Library/PrivilegedHelperTools/
対処方法(旧)
※ 新しいドキュメントが公開されたため、こちらは参考情報として残しておきます。
issue中のWorkaround に掲載されているスクリプトを実行するか、コマンドを1行1行実行します。
実行に当たっては root
ユーザのアクセスが必要です。スクリプトまたはコマンドで、docker サービスを停止した後、ファイルをコピーします。
その後、Docker Desktop を再起動すると起動する模様でした。
If that still doesn't work, download one of the currently supported release from the Release notes, re-install the application and then finally re-apply step 2.
それでも動作しない場合は、リリースノート を読んで対処されたバージョンかどうか確認し(注:1/10現在リリースされている v4.37.2 はこの問題が修正済みの模様です)、アプリケーションを再インストールした後、再びスクリプトを実行するように書かれています。
issue に掲載された対処法(Wordaround)
※原稿執筆時点の issue からコピーしていますが、変更の可能性があるため、常に 最新の情報をご確認 ください
この手順では、前提条件として、 root
ユーザアクセスが必要です。
- Docker Desktop を終了します。アクティビティモニタを使って、 docker プロセスが残っていないかどうかを確認します。
- 以下のコマンドを実行します
#!/bin/bash
# docker サービスを停止
echo "Stopping Docker..."
sudo pkill '[dD]ocker'
# vmnetd サービスを停止
echo "Stopping com.docker.vmnetd service..."
sudo launchctl bootout system /Library/LaunchDaemons/com.docker.vmnetd.plist
# socker サービスを停止
echo "Stopping com.docker.socket service..."
sudo launchctl bootout system /Library/LaunchDaemons/com.docker.socket.plist
# vmnetd バイナリを削除
echo "Removing com.docker.vmnetd binary..."
sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd
# socket バイナリを削除
echo "Removing com.docker.socket binary..."
sudo rm -f /Library/PrivilegedHelperTools/com.docker.socket
# 新しいバイナリのインストール
echo "Install new binaries..."
sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/PrivilegedHelperTools/
sudo cp /Applications/Docker.app/Contents/MacOS/com.docker.socket /Library/PrivilegedHelperTools/
- Docker Desktop を起動し直します。
If you are already encountering the malware warning, please follow the steps outlined above.
バージョンアップを試みてもマルウェアの警告が出る場合は、回避策通りのスクリプトまたはコマンド実行が必要です。
root 権限が無い場合
If the above instructions can't be used because you don't have root privileges or your Docker Desktop installation is managed by a Mobile Device Management solution, the above script needs to be executed by the MDM tool. Please contact your system administrators or Docker org owner for support.
スクリプトの実行には root
権限が必要です。権限がなかったり、Docker Desktop が MDM で配布されている場合 MDM ツールが必要なため、システム管理者または Docker org 管理者に尋ねるようにとあります。
Homebrew の場合
If you’ve installed Docker Desktop with Homebrew, you can update it to the latest version using brew update && brew upgrade --cask docker.
Homebrew で Docker Desktop をインストールしている場合は、 brew update && brew upgrade --cask docker
で最新版にアップデート可能です。
現在リリースされている Docker Desktop v4.37.2 は対処版
v4.37.2 のリリースノート や Issueのコメント によると、日本時間の1/9夜に配布された v4.37.2 では対処された模様。コメントによれば
A patch release of Docker Desktop (for macOS only) has been released. This version prevents installations from entering into the failure state. Please update to this version as soon as possible to prevent future issues.
(macOS 版のみ)Docker Desktop のパッチリリース。このバージョンであれば、インストール時の不具合を防げる。今後の問題を避けるだけ、できるだけ早くこのバージョンに更新するのをお勧めする、とあります。
If you are already encountering the malware warning, please follow the steps outlined above.
もしバージョンアップを試みてもマルウェアの警告が出る場合は、回避策通りのスクリプトまたはコマンド実行が必要になる模様です。
なお、私自身は直近では Docker Desktop for Mac をバージョンアップしておらず、本日1/10の朝に v4.37.2 を手動ダウンロードしてアップデートしましたが、問題なく起動できています。
参考情報
- Docker Systems Status Page
-
issue#7527 のコメント https://github.com/docker/for-mac/issues/7527#issuecomment-2579351371 ↩