macOS 시스템 업데이트 후 발생하는 트래픽 누출 현상
(mullvad.net)- Mullvad는 macOS에서 시스템 업데이트 직후 트래픽 누출이 발생할 수 있으며, 현재 확인된 해결책은 재부팅이라고 밝힘
- 문제 상황에서는 macOS 방화벽이 정상적으로 동작하지 않아 설정된 방화벽 규칙이 무시되는 것으로 보임
- 대부분의 트래픽은 라우팅 테이블 때문에 VPN 터널로 들어가지만, 앱이 항상 라우팅 테이블을 따르는 구조는 아님
- macOS 14.6부터 최근 15.1 베타까지 일부 Apple 앱과 서비스가 터널 밖으로 트래픽을 보낼 수 있음
- Mullvad는 Apple에 문제를 보고했으며, 앱 차원에서 가능한 우회책을 계속 조사 중임
업데이트 후 확인된 누출 조건
- macOS 시스템 업데이트 후 트래픽 누출이 발생할 수 있음
- 현재 Mullvad가 파악한 범위에서는 재부팅으로 문제가 해결됨
- 이 상태에서는 macOS 방화벽이 정상적으로 작동하지 않고, 설정된 방화벽 규칙을 무시하는 것으로 보임
- 라우팅 테이블 설정 때문에 대부분의 트래픽은 VPN 터널 안으로 들어감
- 다만 앱이 라우팅 테이블을 반드시 따라야 하는 것은 아니어서, 의도하면 VPN 터널 밖으로 트래픽을 보낼 수 있음
- Apple 자체 앱과 서비스가 해당 예시에 포함됨
- 범위는 macOS 14.6부터 최근 15.1 베타까지임
- Mullvad는 Apple에 이 문제를 보고했고, 추가 정보 제공과 앱에서 가능한 우회책 조사를 계속하고 있음
영향을 받는지 확인하는 방법
- 터미널에서 모든 트래픽을 차단하는 방화벽 규칙을 추가함
echo "block drop quick all" | sudo pfctl -ef -
- VPN 터널 밖으로 트래픽을 보내는지 확인함
curl https://am.i.mullvad.net/connected
- 실험 후 방화벽을 비활성화하고 모든 규칙을 지움
sudo pfctl -d
sudo pfctl -f /etc/pf.conf
- Mullvad 앱에서도 누출 여부를 확인할 수 있음
- VPN에 연결하지 않은 상태인지 확인함
- 기본 인터페이스를 확인함
route get mullvad.net | sed -nE 's/.*interface: //p'
- Mullvad 앱으로 VPN 서버에 연결함
- 아래 명령에서
<interface>를 앞 단계에서 확인한 인터페이스로 바꿔 실행함
curl --interface <interface> https://am.i.mullvad.net/connected
- 정상 동작 시 응답은 Mullvad에 연결되어 있거나 서버에 연결할 수 없다고 나와야 함
- Mullvad에 연결되어 있지 않다는 응답이 나오면 트래픽이 누출되고 있는 상태임
댓글과 토론
Hacker News 의견들
-
macOS를 업데이트할 때마다 방화벽을 포함한 일부 시스템 설정이 기본값으로 되돌아가서, 매번 일일이 다시 바꿔야 했음
macOS나 iOS를 설치·업데이트할 때 인터넷에 연결되어 있으면 설치 시간이 더 길어지는 걸 몇 번 겪은 뒤로는, 이제 업데이트 중에는 라우터를 꺼둠
Windows, macOS, Android 등에 AI 기능이 계속 통합되는 상황이라 업데이트 중에도 새 AI 기능을 “준비”한다는 명목으로 개인 데이터 업로드나 서버 측 데이터 다운로드가 더 늘어날 것 같음
인터넷이 없으면 설치 프로그램이 그 과정을 나중으로 미룰 수밖에 없고, 부팅 후 기본 설정을 바꾸기 전까지 시간을 벌 수 있다고 봄
관련 글은 https://news.ycombinator.com/item?id=26418809와 https://news.ycombinator.com/item?id=26303946에 더 있음- 설치나 업데이트 때마다 라우터까지 꺼야 한다면, 돈 주고 산 운영체제치고는 너무 많은 수고를 요구하는 것 같음
- Mac의 아름다운 하드웨어가 최근 macOS 버전들 때문에 너무 아깝게 쓰이고 있음
- 인터넷 없이 업데이트를 어떻게 설치할 수 있는지 궁금함
몇 년째 자동 업데이트는 “소프트웨어 개인화 실패, 인터넷을 확인하라” 같은 오류로 계속 실패했음. 인터넷은 멀쩡히 동작하는데도 그렇고, 업데이트하려면 결국 라이브 USB와 이더넷 연결이 필요했음 - macOS가 업데이트 때마다 방화벽을 포함한 설정 일부를 기본값으로 되돌리는 일은 Windows도 한동안 해왔음
그 관점에서는 Linux만 비교적 “깨끗”했지만, 요즘은 일부 배포판도 스파이웨어성 요소를 슬쩍 넣기 시작함. 운영체제의 엔시티피케이션은 계속되고 있음 - iPhone을 업그레이드할 때마다 Bluetooth가 켜져서 정말 짜증남
Apple은 고객이 특정 기능을 쓰길 바라니까 업그레이드 때 그냥 켜버리는 듯하고, 꽤 불쾌함
-
누수 없는 VPN을 원하면 기기 안이 아니라 라우터 수준에서 구현해야 함. 어떤 기기든 그렇지만 특히 Apple 기기는 더 그렇다
유선 구간에서 트래픽을 캡처해 Wireshark로 흘려보는 걸 강하게 추천함. 라우터나 수동 이더넷 탭으로 가능하고, VPN 진입점이 아닌 곳으로 가는 패킷이 꽤 보일 것임
라우터를 쓰면 휴대폰 누수도 확인할 수 있음. Wi-Fi 통화가 켜져 있으면 휴대폰이 30초마다 통신사 제어 서버로 TCP 연결을 만든다는 점도 알게 됨
예를 들어 T-Mobile을 쓰면서 해외에 있고, 기본 SIM으로 쓰지도 않아도, 통신사는 사용자가 쓰는 모든 출구 IP 로그를 얻게 됨
Apple이 VPN과 네트워크 필터링 확장을 지원하는 듯 보이는 건 미끼에 가깝고, 자기들 트래픽에는 기꺼이 그걸 꺼버림
iOS에서는 App Store가 VPN을 건너뛰고, VPN을 쓰면 Apple이 업데이트 다운로드까지 막기도 함. 라우터에 VPN을 올려 쓰다가 업데이트 다운로드가 실패하면서 알게 됨
Mac에서는 특히 첫 부팅 때 문제가 많음. Mac이 VPN 밖으로 한 번 연결하기 전까지는 VPN을 세우지 않으려는 것처럼 보임
잠자기에서 깨어난 뒤 Cloudflare Warp를 쓰는 온디맨드 WireGuard 터널이 패킷을 못 보내는 상황을 자주 겪음. 이더넷을 뽑고, 항상 켜짐을 끄고, 30초쯤 기다린 뒤 다시 켜고 이더넷을 꽂으면 연결됨
다만 이 과정에서 실제로 누수가 없는지는 아직 확신할 수 없어서 더 조사해봐야 함 -
로그인하기 전에도 탭의 오디오가 새는 일이 있음
모든 “복원” 기능을 꺼뒀는데도, macOS가 재시작 후 로그인 전에 브라우저를 “시작”해버리고, 재부팅 전 또는 며칠 전 일시정지돼 있던 콘텐츠가 자동 재생되기도 했음
그 뒤로 그 기능을 꽤 깊게 비활성화했지만, 다시는 신뢰하지 않게 됨- Apple은 즉각적인 반응을 원하는 사용자를 위해 TCP/IP 스택과 Safari를 미리 데워두고 싶은 것 같음
장기적으로는 이 호의를 “Safari는 구리다”는 비판을 버티는 신용으로 바꾸다가, 결국 Apple과 Google이 브라우저가 앱 장터가 되는 전쟁 쪽으로 인터넷을 밀어붙일 것임
두 회사 모두 이기고, 서로를 탓할 수 있으며, 반경쟁적 행동에 인센티브를 주면서도 각자 조직의 이익이 우연히 맞아떨어진 것처럼 보이게 만들 수 있음
인터넷은 소수의 거대 기업에게 포획되고, 게임화되고, 상품화되고, 수직 통합됐음
모바일 기기는 사실상 중독성을 가진 추적 장치이고, 정부는 그런 화려한 도구를 행정 기능에 쓰는 데 너무 관심이 많아 법·기술·비즈니스가 맞물려 체계적으로 악용될 수 있는 지점을 방치한 위험을 보지 못하고 있음 - 노트북을 열었을 때 소리가 나는 것만큼 원치 않는 기능도 잘 떠오르지 않는데, Apple은 그걸 기능인 것처럼 가져다줌
- 로그인도 안 했는데 애플리케이션을 여는 게 어떻게 가능한지 이해가 안 됨
사용자가 누구인지 어떻게 알고, 어떤 앱을 열어야 하는지 어떻게 아는 걸까. 로그인 전이라면, 실제로는 자동으로 로그인해놓고 화면에만 안 보여주는 것인지 의심됨
꽤 큰 보안 버그처럼 보이는데, 이게 악용되지 않는다는 게 이상함
예전에 FaceTime 전화가 오면 받지 않아도 iPhone이 카메라를 켜고 발신자에게 영상을 보내던 일이 떠오름 - FileVault가 켜져 있다면 이게 어떻게 가능한지 모르겠고, 사실상 보안 우회처럼 들림
재부팅 후 암호를 입력하기 전까지는 사용자 데이터가 암호화돼 있으니 시스템이 사용자에 대해 아무것도 몰라야 한다고 생각했음
그러면 재부팅 전에 어떤 앱이 열려 있었는지도 알 수 없어야 하고, 소리를 재생하는 건 더더욱 불가능해야 함 - iPhone 브라우저에서도 비슷한 일이 있음
브라우저를 열면 마지막으로 열어둔 페이지가 잠깐 보이는데, 브라우저를 닫기 전에 조심해서 닫았던 경우에도 그럼
큰 문제로 이어진 적은 없지만 매우 거슬리고, 상황에 따라 실제 문제가 될 수도 있음
- Apple은 즉각적인 반응을 원하는 사용자를 위해 TCP/IP 스택과 Safari를 미리 데워두고 싶은 것 같음
-
기사 날짜는 오늘로 되어 있지만, 한 달 전쯤 똑같은 글을 읽은 것 같은 느낌이 듦
- 2023년 9월 13일에도 macOS 14 Sonoma 베타 중 Apple이 macOS 방화벽인 패킷 필터(PF) 에 버그를 넣었고, 이 때문에 Mullvad 앱이 동작하지 않으며 로컬 네트워크 공유 같은 설정이 켜져 있으면 누수가 날 수 있다고 공지했음
https://mullvad.net/en/blog/bug-in-macos-14-sonoma-prevents-...
2023년 9월 22일에 고쳐진 듯함: https://mullvad.net/en/blog/macos-14-sonoma-firewall-bug-fix...
Apple의 제품·엔지니어링 부서는 마케팅 부서만큼 사용자 프라이버시를 중요하게 보지 않는 것 같음 - Little Snitch도 이 문제를 보고했음: https://obdev.at/blog/should-i-upgrade-to-macos-sequoia-part...
- 2023년 9월 13일에도 macOS 14 Sonoma 베타 중 Apple이 macOS 방화벽인 패킷 필터(PF) 에 버그를 넣었고, 이 때문에 Mullvad 앱이 동작하지 않으며 로컬 네트워크 공유 같은 설정이 켜져 있으면 누수가 날 수 있다고 공지했음
-
NixOS가 좋다고는 들었지만, 브라우저와 자주 쓰는 앱 때문에 아직은 그래픽 운영체제가 필요하다고 생각했음
macOS 생태계에서 벗어나고 싶은데, 점점 나쁜 방향으로 가고 있음. 디지털 생활 전체를 Apple 중심으로 구성해버린 것 같음- NixOS에서도 GUI는 문제없이 돌아감. 이 댓글도 NixOS의 브라우저에서 보낸 것임
-
“앱이 라우팅 테이블을 따를 필요가 없다”는 건 미친 일임
그냥 참고용 허구라면 왜 라우팅 테이블을 만들고 사용자에게 노출하는지 모르겠음
공급업체들은 사용자 기기에서 자기 자신에게 특권을 주는 일을 그만해야 함- 소켓을 특정 인터페이스에 바인딩해야 하는 정당한 사용 사례도 있음
-
macOS 시스템 업데이트 직후 첫 부팅은 오래전부터 버그투성이였음
업데이트 전에 열어두지도 않았던 앱들을 잔뜩 띄우는데, 보통 최근에 종료한 앱 5~10개처럼 보임
완전히 종료한 앱들이었고, “재개” 설정도 꺼져 있었음. 단순 재개가 아니라 새 창을 만들라고 앱을 실행하는 방식이고, 디스크 마운트가 끝나기 전에 실행됨
그래서 업데이트할 때마다 자주 쓰는 앱들이 갑자기 나타나 설정과 데이터가 사라졌다고 말함
다시 재부팅하면 괜찮아져서 큰 문제는 아니지만, 부주의해 보이고 운영체제가 불안정하게 느껴짐
방화벽 문제가 이와 무관할 수도 있지만, 이번 일로 Apple이 그 버그까지 고치게 될지도 지켜봐야 함- “업데이트” 버튼을 누른 순간 열려 있던 앱들을 전부 실행하는 것 같음. 실제 설치가 30분 뒤 시작됐더라도 그렇게 보임
- “재개” 설정이 실제로 무엇을 하는지 잘 모르겠음
Mac이 결국 모든 걸 다시 열어버리는 일이 너무 많아서 짜증남. 막는 방법을 찾아보면 항상 “이미 꺼둔 그 설정을 끄라”는 답만 나옴