스폰서로그인제출
블로그

macOS 27.2.1부터 curl이 eMudhra를 더는 신뢰하지 않아요. 제 Mac 앱에서 확인해 볼 것들

Justinas Rolando 작성, MacPip 메이커

짧은 답

2026년 11월 9일에 Apple은 macOS 27.2.1을, 오래된 Mac용 26.7.3 및 15.8.3과 함께 내놓았어요. 보안 수정 8건 외에도 eMudhra 인증서 침해로 남아 있던 빈틈을 막아요. 10월 19일부터 Safari, 메일, Apple의 네트워킹 및 보안 프레임워크를 쓰는 앱은 이미 문제 있는 인증서 12개를 거부했지만, curl, git, python3, openssl 같은 명령줄 도구는 /etc/ssl/cert.pem을 읽으며 계속 받아들였어요. 이번 업데이트는 AAA Certificate Services를 포함해 루트 인증서 5개를 그 파일에서 제거해요. 앱, 설치 프로그램, 업데이트 스크립트가 이 도구들을 쓰거나 자체 신뢰 루트 목록을 포함한다면, 새 버전에서 다운로드와 자체 서버를 테스트해 보세요.

Mac 업데이트는 대부분 설치하고 잊어버려요. 11월 9일에 나온 macOS 27.2.1은 Mac 앱을 만든다면 작은 글씨까지 읽어 볼 업데이트예요. 모든 Mac에 들어 있는 도구 일부가 신뢰하는 인증서가 바뀌기 때문이에요. Apple은 오래된 Mac용으로 macOS Tahoe 26.7.3과 Sequoia 15.8.3도 함께 내놓았고, 세 버전 모두 같은 변경이 들어 있어요.

무슨 일이 있었는지, 누구에게 영향이 있는지, 무엇을 테스트할지 정리했어요.

무슨 일이 있었나요

같은 업데이트가 메시지, AirPlay, 블루투스의 다른 보안 버그 8건도 고쳐요(MacRumors 기준). Apple은 공격에 쓰인 것이 있다고 밝히지 않았어요.

Mac 앱 개발자가 신경 써야 하는 이유

앱이 URLSession으로 인터넷과 통신하는 일반적인 Swift 앱이라면 10월 조치로 대부분 보호됐을 거예요. Apple 페이지는 Apple의 네트워킹 및 보안 프레임워크를 쓰는 앱을 이야기하고, Michael Tsai가 인용한 Howard Oakley는 Apple 표준 API로 만든 앱이 macOS 신뢰 저장소를 쓴다고 말해요.

보호받지 못한 앱은 많은 인디 개발자가 내놓는 종류의 앱이에요.

그래서 10월 조치가 앱에 닿지 않았을 수 있고, 앱이 자체 루트를 가져온다면 11월 조치도 닿지 않을 수 있어요.

또 다른 면이 있어요. AAA Certificate Services는 Sectigo의 오래된 루트로, 평범한 인증서도 많이 서명했어요. Apple 페이지는 /etc/ssl/cert.pem만 쓰는 도구가 제거된 루트를 거치는 일부 사이트를 검증하지 못할 수 있다고 경고해요. 다운로드 서버, 업데이트 피드, 라이선스 API가 우연히 그중 하나라면 업데이트한 Mac의 curl이 거부하기 시작할 수 있어요.

이번 주에 확인할 것

이건 Apple의 안내가 아니라 제 방법이에요.

  1. Mac 한 대를 27.2.1로 업데이트하고 명령줄에서 다운로드를 테스트하세요. 설치 스크립트를 실행하고, cask가 있다면 brew install도 해 보고, 다운로드, appcast, 라이선스 주소에 curl -I를 실행하세요. 거부된 인증서는 느린 페이지가 아니라 오류로 나타나요.
  2. 내 인증서 체인을 확인하세요. openssl s_client -connect yourapp.com:443 -showcerts를 실행하고 issuer 줄을 읽어요. eMudhra, emSign, AAA Certificate Services가 보이면 호스팅 업체나 인증서 판매처에 다른 루트로 끝나는 체인을 요청하세요.
  3. 앱이 실제로 쓰는 신뢰 저장소를 찾으세요. Electron, Go, 루트를 함께 담은 Rust, certifi를 쓰는 Python, Java는 모두 자체 저장소를 가져와요. 런타임이나 루트 패키지를 문제 인증서를 뺀 버전으로 업데이트하고, 릴리스 노트에 적어 두세요.
  4. 지원 답변을 미리 준비해 두세요. 오래된 Mac에서 업데이트를 설치할 수 없는 사람에게는 Apple 페이지에 루트를 직접 제거하는 단계가 있어요. sudo를 쓰는 명령을 이메일에 붙여 넣기보다 Apple 페이지를 링크하는 편이 좋겠어요.
  5. 사용자에게 업데이트를 안내하세요. 앱 사용자가 기술에 익숙한 편이라면 다음 릴리스나 뉴스레터에 짧게 적는 데 드는 비용은 없어요.
  6. 테스트용 Mac에서 파일을 확인하세요. Apple 페이지에 아래 명령이 있는데, 주요 루트 인증서 두 개가 제거되면 아무것도 출력하지 않아요.
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/cert.pem | openssl pkcs7 -print_certs -noout | grep -E 'emSign ECC Root CA - G3|AAA Certificate Services'

제가 하지 않을 일

오류를 없애려고 스크립트에서 인증서 검사를 끄지는 않을 거예요. 이번 변경이 막으려는 것이 바로 그 일이니까요. 그리고 사용자에게 Mac이 해킹당했다고 말하지도 않을 거예요. 키가 사용된 흔적은 없고, 대부분의 앱은 10월에 이미 보호받았어요.

MacPip의 관점

MacPip은 앱이 어떤 인증서를 신뢰하는지 검사하지 않아요. 등록된 앱은 제출될 때 자동으로 스캔되고, 파란 체크는 사람이 어느 날짜에 앱을 써 봤다는 뜻일 뿐이에요. 개발자 도구나 보안 및 개인정보 보호 앱을 만든다면, 이 변경에 영향받는 스크립트나 내장 런타임이 있을 가능성이 가장 높으니 한 시간쯤 들여 볼 만해요.

오늘 새로 나온 것: 개인정보 보호 매니페스트 검사기. PrivacyInfo.xcprivacy를 붙여 넣으면 각 데이터 유형, 목적, CA92.1 같은 필수 사유 코드를 Apple의 공식 목록과 대조해요. Mac에서 Apple이 요구하는 것과 요구하지 않는 것도 알려 줘요. 페이지 안에서만 실행되고 아무것도 전송되지 않아요. Info.plist 설명과 공증 설명도 바로 옆에 있어요. 아직 Mac 앱이 MacPip에 없다면 등록은 무료예요.

출처

계속 읽기

앱 제출하기메이커를 위한 무료 도구