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도 함께 내놓았고, 세 버전 모두 같은 변경이 들어 있어요.
무슨 일이 있었는지, 누구에게 영향이 있는지, 무엇을 테스트할지 정리했어요.
무슨 일이 있었나요
- 중간 인증 기관 8곳이 침해됐어요. Apple의 eMudhra 지원 페이지에 따르면 eMudhra 중간 CA 8곳의 개인 키가 침해됐어요. 그중 6곳은 웹사이트가 https에 쓰는 인증서를 발급해요. 그 키가 있으면 어떤 사이트든 유효해 보이는 인증서를 만들 수 있어요. eMudhra와 Sectigo는 영향받은 인증서를 폐기했어요.
- 키가 아주 작았어요. MacRumors에 따르면 Mozilla 조사에서 복구하기 쉬울 만큼 작은 키 값이 발견됐어요. MacRumors는 10월에도 키가 사용된 증거는 없다고 전했어요.
- Apple은 10월에 차단했지만, 모든 곳은 아니었어요. 10월 19일부터 Apple은 이 인증서 중 12개를 Safari, 메일, Apple의 네트워킹 및 보안 프레임워크를 쓰는 앱에서 차단했어요. 업데이트는 필요 없었어요.
- 빈틈은 명령줄 도구였어요. Apple 페이지는 curl, git, python3, ruby, perl, openssl을 꼽아요. 이 도구들은 인증서를
/etc/ssl/cert.pem파일과 대조해 확인하기 때문에, 그 파일 안의 루트로 이어지는 인증서는 Apple의 차단을 건너뛰었어요. - 27.2.1에서 이 구멍이 막혀요. 명령줄 도구가 이 인증서들을 더는 받아들이지 않고,
/etc/ssl/cert.pem에서 루트 5개가 제거돼요. emSign ECC Root CA - G3, AAA Certificate Services, emSign Root CA - G1, emSign Root CA - C1, emSign ECC Root CA - C3예요. Apple 페이지에 따르면 26.7.3과 15.8.3에도 같은 보호가 들어 있어요.
같은 업데이트가 메시지, AirPlay, 블루투스의 다른 보안 버그 8건도 고쳐요(MacRumors 기준). Apple은 공격에 쓰인 것이 있다고 밝히지 않았어요.
Mac 앱 개발자가 신경 써야 하는 이유
앱이 URLSession으로 인터넷과 통신하는 일반적인 Swift 앱이라면 10월 조치로 대부분 보호됐을 거예요. Apple 페이지는 Apple의 네트워킹 및 보안 프레임워크를 쓰는 앱을 이야기하고, Michael Tsai가 인용한 Howard Oakley는 Apple 표준 API로 만든 앱이 macOS 신뢰 저장소를 쓴다고 말해요.
보호받지 못한 앱은 많은 인디 개발자가 내놓는 종류의 앱이에요.
- 내부에서 curl, git, python3를 실행하는 앱. 다운로드 도우미, 설치 스크립트, 로컬 AI 앱의 모델 다운로더, git을 감싸는 개발자 도구 등이에요.
- 자체 신뢰 루트 목록을 가진 앱. Oakley는 Chrome과 다른 Chromium 브라우저, Mozilla와 Microsoft 제품, 일부 Electron 앱을 꼽았어요. 또 Python, Java, Go, 어쩌면 Rust나 Ruby도 영향을 받을 수 있다고 말해요. Apple 페이지에 따르면 자체 루트 목록을 쓰는 도구는 Apple의 차단도
/etc/ssl/cert.pem도 전혀 사용하지 않아요.
그래서 10월 조치가 앱에 닿지 않았을 수 있고, 앱이 자체 루트를 가져온다면 11월 조치도 닿지 않을 수 있어요.
또 다른 면이 있어요. AAA Certificate Services는 Sectigo의 오래된 루트로, 평범한 인증서도 많이 서명했어요. Apple 페이지는 /etc/ssl/cert.pem만 쓰는 도구가 제거된 루트를 거치는 일부 사이트를 검증하지 못할 수 있다고 경고해요. 다운로드 서버, 업데이트 피드, 라이선스 API가 우연히 그중 하나라면 업데이트한 Mac의 curl이 거부하기 시작할 수 있어요.
이번 주에 확인할 것
이건 Apple의 안내가 아니라 제 방법이에요.
- Mac 한 대를 27.2.1로 업데이트하고 명령줄에서 다운로드를 테스트하세요. 설치 스크립트를 실행하고, cask가 있다면
brew install도 해 보고, 다운로드, appcast, 라이선스 주소에curl -I를 실행하세요. 거부된 인증서는 느린 페이지가 아니라 오류로 나타나요. - 내 인증서 체인을 확인하세요.
openssl s_client -connect yourapp.com:443 -showcerts를 실행하고 issuer 줄을 읽어요. eMudhra, emSign, AAA Certificate Services가 보이면 호스팅 업체나 인증서 판매처에 다른 루트로 끝나는 체인을 요청하세요. - 앱이 실제로 쓰는 신뢰 저장소를 찾으세요. Electron, Go, 루트를 함께 담은 Rust, certifi를 쓰는 Python, Java는 모두 자체 저장소를 가져와요. 런타임이나 루트 패키지를 문제 인증서를 뺀 버전으로 업데이트하고, 릴리스 노트에 적어 두세요.
- 지원 답변을 미리 준비해 두세요. 오래된 Mac에서 업데이트를 설치할 수 없는 사람에게는 Apple 페이지에 루트를 직접 제거하는 단계가 있어요. sudo를 쓰는 명령을 이메일에 붙여 넣기보다 Apple 페이지를 링크하는 편이 좋겠어요.
- 사용자에게 업데이트를 안내하세요. 앱 사용자가 기술에 익숙한 편이라면 다음 릴리스나 뉴스레터에 짧게 적는 데 드는 비용은 없어요.
- 테스트용 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에 없다면 등록은 무료예요.
출처
- Apple 지원: eMudhra 인증 기관 침해에 관하여 (2026년 11월 9일 게시)
- Apple 지원: Apple 보안 릴리스
- MacRumors: macOS 27.2.1, 명령줄 도구의 eMudhra 인증서 결함 수정
- MacRumors: Apple, 침해된 eMudhra 인증서 차단 (2026년 10월 25일)
- MacRumors: iOS 27.2.1과 macOS 27.2.1에서 Apple이 고친 내용
- Michael Tsai: eMudhra 중간 CA 침해
계속 읽기
- Claude Fable 5.2 and Mythos 5.2: what's new, the benchmarks, and what it means for your MacClaude Fable 5.2 and Mythos 5.2 came out on November 9, 2026. Anthropic's benchmarks as charts, the prices, what changes on a Mac, and four free tools.
- Live Activities가 Mac 메뉴 막대에 들어와요. 제 Mac 앱이라면 이렇게 해볼 거예요macOS 27.3 베타에서는 Apple silicon Mac의 메뉴 막대에 Live Activities가 표시되고, Mac 앱도 직접 시작할 수 있어요. 무엇이 바뀌었는지, 제한은 무엇인지, 무엇부터 해볼지 정리했어요.
- 메모리 때문에 Mac이 비싸지고 있어요. 제 Mac 앱에서 제가 할 일Apple은 메모리 때문에 Mac이 2027까지 계속 부족하고 비싸질 거라고 말했고, 가장 싼 Mac의 메모리는 8 GB예요. 내 Mac 앱에 왜 중요한지, 이번 주에 해 볼 점검을 정리했어요.
- 이제 Apple이 구독을 취소하는 사람에게 말을 걸 수 있게 해요. 제 Mac 앱에는 이렇게 하려고 해요11월 4일부터 App Store 구독은 취소하는 사람에게 메시지나 혜택을 보여 줄 수 있어요. 규칙, Apple이 밝힌 내용, Mac에서 확인할 것을 정리했어요.
- Apple이 연령 등급 질문 두 개를 추가해요. 제 Mac 앱에는 이렇게 할 거예요11월 16일부터 App Store Connect가 위치 공유와 데이트 기능에 대해 물어보고, 모든 앱은 2027년 1월 12일까지 답해야 해요. 무엇이 바뀌었고 무엇을 하면 되는지 알려드려요.
- 이제 Siri AI가 모든 개발자에게 열려 있어요. 제 Mac 앱에서 제일 먼저 할 일Apple이 macOS 27.3 베타에서 Siri AI를 모든 개발자에게 열었어요. 무엇이 바뀌었는지, 지금 내놓을 수 있는 것과 없는 것, 작은 Mac 앱을 위한 짧은 계획을 정리했어요.
- 터치스크린 Mac이 11월 6일에 출시돼요. 제 Mac 앱에서 확인해 볼 것들이에요Apple의 첫 터치 Mac이 11월 6일에 나와요. 무엇이 달라졌는지, Apple이 개발자에게 안내한 내용, 내 Mac 앱에서 테스트해 볼 항목을 짧게 정리했어요.
- MacPip 소개MacPip이 무엇인지, 제가 왜 만들었는지, 등록과 출시일이 어떻게 돌아가는지, 파란 체크가 실제로 무엇을 뜻하는지, 처음 며칠 동안의 실제 숫자에 대해서요.
- Mac 앱 출시 방법: 한 페이지에 들어가는 체크리스트Mac 앱 출시일 전, 당일, 후에 할 일: 서명, 페이지, 디렉터리, Product Hunt, Show HN, 그리고 측정할 것.
- Mac 앱이 무엇을 하는지 말하는 한 줄 설명 쓰는 법Mac 앱 이름 아래 한 줄을 쓰는 간단한 방법이에요. 하는 일을 밝히고, 과장을 빼고, 앱을 본 적 없는 사람에게 테스트해 보세요.
- 처음 Mac 앱을 만드는 사람을 위한, 쉬운 말로 된 서명과 공증 설명코드 서명, 공증, 스테이플링이 각각 무엇을 하는지, 어떤 순서인지, 없으면 사용자가 무엇을 보게 되는지, 그리고 내 빌드를 어떻게 확인하는지.
- dofollow 링크를 제공하는 사이트가 말하는, dofollow 링크의 솔직한 가치dofollow의 뜻, 구글이 링크에 대해 하는 말, 새 디렉터리의 링크가 지금 가치가 적은 이유, 그리고 링크를 사는 대신 할 일.