원문 캡처 · emudhra.we-have-a-problem.com
원문 캡처 · emudhra.we-have-a-problem.com

eMudhra 인증서 침해 사실을 10월 17일 통보받았지만, 애플이 macOS에 제공하는 개발 도구인 git, curl, python3는 10월 28일에도 침해된 인증서를 신뢰한다고 사이트는 전했다. 10월 26일 출시된 macOS 27.2도 문제를 해결하지 않았으며, 사용자가 수동으로 적용한 우회 조치까지 되돌려 취약한 상태로 만들었다고 밝혔다. 반면 자원봉사자가 운영하는 곳을 포함한 다른 프로젝트 수십 곳은 며칠 전에 수정 사항을 배포했다.

사이트에 따르면 이 도구를 이용한 HTTPS 연결은 누구나 가로챌 수 있다. git의 경우 https:// 원격 저장소에서 복제하거나 변경 사항을 가져올 때 공격자가 고른 코드를 전달할 수 있고, 푸시 내용을 전송 중에 바꾸거나 GitHub 토큰 같은 자격 증명을 가로챌 수 있다.

영향 여부를 확인하려면 다음 명령을 실행한다. 인증서 오류가 표시되면 보호된 상태이고, 커밋이 나열되면 영향을 받는 상태라고 사이트는 설명한다.

git ls-remote https://git-emudhra.we-have-a-problem.com/check.git

사이트는 테스트 서버가 GitHub를 사칭하는 과정을 확인하는 방법도 제시했다. 임시 디렉터리에서 다음 명령을 실행하면 해당 명령에서만 github.com 연결을 테스트 서버로 돌린다. 서버는 침해된 eMudhra 중간 인증서 중 하나가 발급한 github.com 인증서를 제시한다.

git -c http.curloptResolve=github.com:443:15.235.19.186 clone https://fake-user@github.com/galadran/emudhra-git-test

수정된 git은 인증서 오류로 작업을 거부한다. 복제가 성공하면 INTERCEPTED로 시작하는 README.md가 표시된다. 실제 공격자는 추가 옵션 없이도 네트워크 경로에서 트래픽을 직접 다른 곳으로 돌릴 수 있다고 사이트는 덧붙였다.

공개 또는 비공개 저장소로 테스트 대상을 바꿀 수 있지만, fake-user@ 접두사는 유지해야 한다. 이를 빼면 git이 GitHub 자격 증명을 테스트 서버로 보낼 수 있다. 사이트가 든 예시는 다음과 같다.

git -c http.curloptResolve=github.com:443:15.235.19.186 clone https://fake-user@github.com/Homebrew/brew

curl, python3와 애플이 제공하는 다른 도구도 같은 방식으로 영향을 받는다. curl은 아래 명령으로 확인할 수 있으며, 인증서 오류가 나면 보호된 상태라고 사이트는 설명했다.

curl https://dv-g3b-noct-emudhra.we-have-a-problem.com/
curl https://dv-g3b-aaa-noct-emudhra.we-have-a-problem.com/

사이트에 따르면 애플은 이미 Safari와 자체 네트워킹 프레임워크를 기반으로 만든 앱을 보호했다. 개발자용 macOS에도 가능한 한 빨리 수정 사항을 배포해야 하며, 예를 들어 /etc/ssl/cert.pem에서 영향을 받는 루트 인증서를 제거할 수 있다고 제안했다.

개발자는 macOS 우회 조치 안내를 따라 영향을 받는 루트 인증서를 직접 제거할 수 있다. 다만 애플의 안내에 따르면 macOS 업데이트가 이 조치를 되돌릴 수 있다. 애플이 수정 사항을 배포할 때까지 개발자는 업데이트할 때마다 위의 확인 절차와 우회 조치를 반복해야 한다. 보안팀에는 CI나 기타 빌드 인프라에서 macOS 실행기를 사용하는지 확인하고 공급망 위험을 평가하라고 권고했다.

사이트는 데니스 잭슨(Dennis Jackson)이 공개했으며, 커뮤니티 기여자들이 함께 만들었다. 원문