docker

Docker - Malware Blocked and Moved to Trash

99duuk 2025. 1. 12. 17:22

 

지난 월요일인가..화요일인가..수요일인가...? 아무튼 

tars를 껐다 켰는데 뭐 이런 알림이 뜨길래 지피티한테 물어봤다.

도커로 딱히 문제될만한 거 한 적 없어서 불안하진 않았고...

멀웨어? 오류겠지.. 하고 할 거 했다..

 

 

주말이라 뭐 좀 해보려고 도커 켰는데 안켜진다..

확인해보니까 도커앱이 휴지통에 들어가있다...

 

 

 

이런 건 지피티랑 무작정 건드렸다가 기존 데이터 날아가기 십상이라...

 

https://docs.docker.com/desktop/cert-revoke-solution/

 

Fix startup issue for Mac

Learn how to resolve issues affecting macOS users of Docker Desktop, including startup problems and false malware warnings, with upgrade, patch, and workaround solutions.

docs.docker.com

https://github.com/docker/for-mac/issues/7527

 

Malware detection prevents Docker Desktop to start · Issue #7527 · docker/for-mac

Description Some versions of Docker Desktop might fail to start or function with the following error message: Malware Blocked. “com.docker.vmnetd” was not opened because it contains malware. This a...

github.com

 

도커 사이트 위주로 찾아봤다...

그리고 이미 

로 Known issues에 등록돼있었다....

  • com.docker.vmnetd또는 에서 맬웨어에 대한 보안 팝업이 표시되는 경우 docker/for-mac#7527com.docker.socket 에 설명된 단계를 따르세요 .

 

 


 

 

서명 어쩌구 때문이라는데..

 

일단 

#!/bin/bash
set -e

# check if codesign and openssl are installed
which codesign > /dev/null 2>&1 || { echo "codesign is not installed"; exit 1; }
which openssl > /dev/null 2>&1 || { echo "openssl is not installed"; exit 1; }

# if no parameter is provided, use the default binary file
binary_file="$1"
if [ $# -ne 1 ]; then
    binary_file="/Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd"
fi

# create a folder with temp folder to extract the certificates into
timestamp=$(date "+%Y%m%d_%H%M%S")
folder_name="${TMPDIR:-/tmp}/docker-desktop_cert_check_$timestamp"
mkdir -p "$folder_name"
cd "$folder_name"

# extract and check if the extraction was successful
if ! codesign -d --extract-certificates "$binary_file" >/dev/null 2>&1
then
    echo "Failed to extract certificates from $binary_file"
    exit 1
fi

# run the OpenSSL command and capture the output
certificate_details=$(openssl x509 -noout -serial -subject -issuer -dates -in codesign0)
binary_name=$(basename "$binary_file")

cd ..
rm -rf "$folder_name"

echo "-----------------------------------------------------------------"
echo "Certificate details for $binary_name:"
echo "$certificate_details" | tr '\n' ',' | tr -s ',' | tr ',' '\n' | while read -r line; do
    echo " $line"
done

echo "-----------------------------------------------------------------"
echo ""

# check for specific serial numbers
if [[ "$certificate_details" == *"serial=1316FD127D9A5715176591F85FFC3C66"* ]]; then
    echo "$binary_name is signed with a revoked certificate"
    echo "please download and install a new version of Docker Desktop"
    exit 1
elif [[ "$certificate_details" == *"serial=3EC22E699630083A"* ]]; then
    echo "$binary_name is signed with a correct certificate"
    exit 0
else
    echo "$binary_name is signed with an unknown certificate"
    echo "please download and install a new version of Docker Desktop"
    exit 1
fi%

이걸 받고.. 실행해서 애플리케이션 번들의 바이너리를 확인하라고 했다...

 

권한 없는 건

chmod +x check.sh

 

해주면 된다..

 

그리고 

./check.sh

돌려보면 
역시 인증서니 뭐가 만료됐다고 한다..

 

다음으로 

./check.sh /Library/PrivilegedHelperTools/com.docker.vmnetd
./check.sh /Library/PrivilegedHelperTools/com.docker.socket

얘네도 확인해보면 된다. 

 

나는 셋 다 출타했다.

 

 

Failed to extract certificates from /Library/PrivilegedHelperTools/com.docker.vmnetd

이런거 뜬다...


 

 

뭐 살아있으면 그냥 어쩌구저쩌구 하면 된다는데 나는 이것저것 해도 안돼서 그냥 재설치했다..

 

최신버전 dmg 받아두고 ,

sudo rm -rf /Applications/Docker.app

앱과 

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

Docker 데몬 바이너리를 지웠다.

 

 

기존 데이터와 설정 같은 건 

Library/Containers/com.docker.docker/

에 저장되어있다고 한다. 찾아가보면 뭐 많다..

그러니까 쫄지말고 지우면 된다..

지우는 건 실행 바이너리 관련된거...

 

 

 

docker Desktop 설치한 뒤...


다시 확인해보면...

나의 경우엔 vmnetd, socket 둘이 여전히 출타중이었다..

 

다시 위에서 삭제했던거 반복하고.. 이번엔 설치 후 

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/

두 개 복붙해주고 다시 
확인해보면...!!! 

 


./check.sh
./check.sh /Library/PrivilegedHelperTools/com.docker.vmnetd
./check.sh /Library/PrivilegedHelperTools/com.docker.socket

확인해보면 셋 다 살아있다고 한다. 

 

com.docker.vmnetd is signed with a correct certificate

이런거 나옴

 

그리고 다시 docker desktop 키면 잘 돌아간다...

 

 

기존 컨테이너도 네트워크도 잘 살아있다..


맥쓰는데 아직 멀웨어니 뭐니 알림 안떴고, 

도커 데스크탑 업데이트 안한 블친께서는 

필히 

업데이트를 확인하시길...

업데이트만 하면 문제없다는 것 같더라요...

 

 

 


+ docker-compose

 

하려던거 하려고 docker-dompose up -d 했더니 

zsh: command not found: docker-compose

;;;;;;;;;;;;

 

docker-compsoe --verion 해도 못찾는다..

 

 

 

걍 

sudo rm /usr/local/bin/docker-compose
sudo ln -s /Applications/Docker.app/Contents/Resources/cli-plugins/docker-compose /usr/local/bin/docker-compose

 

이거 두줄 딸깍딸딱 해주니까

 

이제 된다..