24
26

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がマルウェア判定された原因と解決方法

Last updated at Posted at 2025-03-17

こんにちは。エンジニアのKennieです!
少し前に、macOS環境のDocker Desktopバージョン4.32から4.36において、Dockerがマルウェアと誤判定され、ゴミ箱への移動を促される問題が発生しました。今回は、その原因と解決方法を詳しく解説します。

問題の原因

多くのユーザーがこの問題に直面し、com.docker.vmnetdcom.docker.socket証明書に不具合が発生していました。この証明書の不具合は、macOSセキュリティ機能であるGatekeeperによって引き起こされた可能性があります!

Gatekeeperによる証明書の取り消し

GatekeeperはmacOSのセキュリティ機能で、アプリケーションのマルウェアを検証し、定期的にバックグラウンドでセキュリティアップデートを行い、再検証を実施します。アプリケーションが不正なものと判定されると、その証明書は無効化され、「取り消しチケット(revocation ticket)」が発行されます。

今回、Dockerに含まれるファイルがマルウェアと誤判定されたことにより、取り消しチケットが発行され、アプリケーションの証明書が無効化された可能性があります。その結果、Dockerの起動が阻止され、「コンピュータが破損する可能性があります」といった通知が表示されたと考えられます。

証明書の確認

自分の環境でも影響を受けているか確認することにしました。

1. check.sh.txtファイルを、以下のページからダウンロードします。

2. ダウンロードしたファイルの名前をcheck.shに変更します。
3. ダウンロードしたスクリプトファイルに実行権限を付与するために、ターミナルで以下のコマンドを実行します。

chmod +x check.sh

注意: インターネットからダウンロードしたシェルスクリプトをそのまま実行するのは危険なので、必ず内容を確認してから実行してください。

4. 以下のコマンドを実行して、証明書の状態をチェックします。

com.docker.vmnetdcom.docker.socketの証明書の確認を行います。下記は、Dockerをすでに再インストールした後の環境で行っているものなので、成功した例としてis signed with a correct certificateがスクリプトの結果として表示されます。

com.docker.vmnetdの証明書の確認

$ ./check.sh /Library/PrivilegedHelperTools/com.docker.vmnetd
-----------------------------------------------------------------
Certificate details for com.docker.socket:
 serial=3EC22E699630083A
 subject=UID=9BNSXJN65R
 CN=Developer ID Application: Docker Inc (9BNSXJN65R)
 OU=9BNSXJN65R
 O=Docker Inc
 C=US
 issuer=CN=Developer ID Certification Authority
 OU=Apple Certification Authority
 O=Apple Inc.
 C=US
 notBefore=Oct  2 16:46:37 2024 GMT
 notAfter=Feb  1 22:12:15 2027 GMT
-----------------------------------------------------------------

com.docker.socket is signed with a correct certificate

com.docker.socketの証明書の確認

$ sudo ./check.sh /Library/PrivilegedHelperTools/com.docker.socket
-----------------------------------------------------------------
Certificate details for com.docker.vmnetd:
 serial=3EC22E699630083A
 subject=UID=9BNSXJN65R
 CN=Developer ID Application: Docker Inc (9BNSXJN65R)
 OU=9BNSXJN65R
 O=Docker Inc
 C=US
 issuer=CN=Developer ID Certification Authority
 OU=Apple Certification Authority
 O=Apple Inc.
 C=US
 notBefore=Oct  2 16:46:37 2024 GMT
 notAfter=Feb  1 22:12:15 2027 GMT
-----------------------------------------------------------------

com.docker.vmnetd is signed with a correct certificate

スクリプトを実行した結果がis signed with a correct certificateでなければ、証明書に不具合があることになります。

Dockerを再インストールする前に、自分の環境でスクリプトを実行した結果では、証明書に不具合があることを確認できました。

解決方法

マルウェアと誤判定を受けないように修正され、有効な証明書を保持するDockerの新しいバージョンがリリースされたため、Dockerを再インストールしました。

その前に、Dockerを完全にパソコンから削除する必要がありました。

Dockerを完全に削除するには、まずアプリケーションフォルダにあるDocker.appを削除します。これにより、DockerのGUIアプリケーションが削除されます。

関連する設定ファイルやシステムコンポーネントは残っているため、以下のコマンドを実行して、Dockerに関連する設定やデーモンを完全に削除します。

rm -rf ~/.docker
sudo rm -f /Library/LaunchDaemons/com.docker.socket.plist
sudo rm -f /Library/LaunchDaemons/com.docker.vmnetd.plist
sudo rm -f /Library/PrivilegedHelperTools/com.docker.socket
sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd

Dockerの削除が完了したら、公式サイトから4.37.2のバージョンをインストールして解決しました。

あとがき

突然ポップアップが表示され、「コンピュータが破損します」と書かれていて驚きましたが、公式の手順に従ってDockerを再インストールすることで問題が解決してよかったです。

参考にしたもの

24
26
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
24
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?