2P by GN⁺ | ★ favorite | 댓글 1개
  • X41은 소스 코드 접근을 포함한 화이트박스 침투 테스트로 Mullvad VPN 앱을 점검했고, 가벼운 위협 모델까지 함께 수립함
  • 감사 대상은 Android 2024.8-beta1, iOS 2024.8, Desktop 2024.6 코드였으며 Linux, Windows, macOS, Android, iOS 5개 플랫폼 동작을 전제로 함
  • 테스트에서 6개 취약점이 발견됐지만, Mullvad VPN 앱은 보고서의 위협 모델 기준으로 전반적으로 높은 보안 수준을 보임
  • 가장 심각한 이슈는 시그널 핸들러의 경쟁 조건과 시간적 안전성 위반으로 인한 메모리 손상이지만, 공격자가 먼저 다른 결함으로 시그널을 유발해야 해 심각도가 낮아짐
  • 일부 취약점은 인접 네트워크 공격자의 사용자 식별 정보 유출이나 특정 조건의 사이드 채널 공격으로 이어질 수 있었고, Mullvad VPN AB는 수정 사항을 빠르게 반영함

감사 범위와 대상 특성

  • X41은 Mullvad VPN 애플리케이션을 대상으로 화이트박스 침투 테스트를 수행함
    • 소스 코드 접근이 있었고, 가벼운 위협 모델 수립도 포함됨
  • 감사 대상 소스 코드는 다음 버전임
  • 대상 앱은 규모가 크고 5개 플랫폼에서 동작해 감사 난도가 높음
    • 지원 플랫폼은 Linux, Windows, macOS, Android, iOS임
    • Mullvad VPN은 정기 감사를 수행해 왔으며, 기존 코드에서 새 취약점이 발견된 점은 제품 복잡도에 비춰 지속적 보안 검토가 필요함을 보여줌
  • 성숙한 대상에서는 발견 사항이 애플리케이션 개발팀의 직접 통제나 초점 밖 영역으로 이동하는 경향이 있음
    • 운영체제 동작 특성
    • 서로 다른 네트워크 계층과 프로토콜의 상호작용

발견 결과와 보안 평가

  • X41 테스트에서 총 6개 취약점이 발견됨
  • Mullvad VPN 애플리케이션은 보고서의 위협 모델 기준으로 높은 보안 수준을 보임
    • 안전한 코딩 및 설계 패턴
    • 정기 감사와 침투 테스트
    • 강화된 실행 환경
  • 가장 심각한 취약점은 시그널 핸들러 코드의 경쟁 조건과 시간적 안전성 위반으로 인한 메모리 손상임
    • 시그널 핸들러 코드가 일단 트리거되면 악용 가능성이 낮아 보이지 않음
    • 다만 공격자가 먼저 다른 결함으로 시그널을 유발해야 해 전체 심각도는 낮아짐
  • 다른 취약점은 인접 네트워크 공격자가 사용자 신원 정보를 유출하거나, 특정 조건에서 클라이언트가 현재 접근 중인 사이트를 드러내는 사이드 채널 공격을 가능하게 할 수 있음
    • 사이드 채널 공격은 대부분 완화됨
    • 예외는 NAT와 최신 HTTP 프로토콜 변형처럼 여러 기술 조합에서 비롯되는 프로토콜 수준 공격이며, 이는 Mullvad VPN AB의 통제 범위 밖임
    • 더 높은 보안과 프라이버시가 필요한 사용자는 보호된 VPN 내부의 난독화 기술과 프록시 서비스를 선택지로 둘 수 있음
  • Mullvad VPN AB는 발견 사항을 신속히 수정했고, 수정 사항도 정상 동작하는 것으로 감사됨

공개 자료

댓글과 토론

Hacker News 의견들
  • PDF 보고서 직접 링크: https://x41-dsec.de/static/reports/X41-Mullvad-Audit-Public-...
    발견된 이슈 제목은 신호 처리기 대체 스택 부족, 비동기 안전하지 않은 함수 사용, 터널 장치의 가상 IP 주소 누출, NAT를 통한 익명성 해제, MTU를 통한 익명성 해제, 설치 과정 사이드로딩 등임
    전반적으로 꽤 직관적인 내용이고, DAITA(AI 트래픽 분석 방어)에 많이 기대고 있는데 아직 완전히 이해하진 못했지만 더 읽어볼 가치가 있어 보임: https://mullvad.net/en/vpn/daita
    • 안전한 신호 처리에는 함정이 너무 많아서 API 전체를 다시 생각해볼 만함
      OpenSSH조차 관련 이슈가 있었고 https://blog.qualys.com/vulnerabilities-threat-research/2024..., 명시적인 함수 색칠(function coloring) 메커니즘 없이는 어떤 언어에서도 좋은 추상화를 만들기 어려워 보임
      Haskell 같은 순수 함수형 언어라면 가능할지도 모름
    • 논문 쪽이 더 따라가기 쉬운 것 같음: https://dl.acm.org/doi/pdf/10.1145/3603216.3624953
    • 스택이 너무 작다는 건 8KB 할당이 실제로 부족하다는 증명이 없고, 정말 악용 가능한지도 의문임
      비동기 안전하지 않은 함수 사용은 흔한 문제지만 실제 악용은 어렵고, 신호 처리기를 다뤄본 개발자라면 재현이 극도로 어려운 타이밍 문제 때문에 한 번쯤 했을 실수임
      ARP 주소 누출은 Mullvad 자체 문제라기보다 로컬 네트워크에서만 악용 가능하고, 익명성 해제 공격은 모든 VPN에 적용되며 더 익명화할 수는 있지만 비용이 듦
      사이드로딩은 아마 가장 나쁜 이슈지만 단독으로는 악용되지 않음
  • 공개 감사 보고서가 “이 회사는 매우 안전하고 잘하고 있으며 이번 감사가 이를 확인했다” 같은 말을 하는 것에 대해 짧게 불평하려 했는데, 이건 X41만의 문제가 아니라 거의 모든 평가 업체가 하는 일이고 일부는 X41보다 훨씬 심함
    그런데 Rust 프로그램의 힙 손상 취약점을 실제로 유발 가능하게 찾아낸 건 좋은 포착임
    다만 그 다음 취약점에 심각도 높음을 준 건 이론적이고 개념 증명도 없어 보이며 메모리 손상도 아니라서 등급 인플레이션으로 보임
  • 좋은 감사 보고서임
    별도의 위협 모델 섹션은 많은 감사 업체가 보고서에서 건너뛰는 부분임
    Cure53, Assured, Atredis 같은 이전 감사자들도 Mullvad와 사전에 적절한 위협 모델을 세웠을 거라 확신하지만, 독자에게 명시적으로 적혀 있지 않으면 결과를 오해할 여지가 생김
    • “Mullvad와 사전에 적절한 위협 모델을 세웠다”면 오히려 무의미해지는 것 아닌가 싶음
      대상이 감사나 공격 방식에 발언권을 가지면 결과가 대상에게 유리하게 편향되지 않기 어려움
      가장 편향이 적은 방식은 대상이 감사자가 무엇을 할지 전혀 모르는 것 아닌가 함
      Mullvad가 방식에 관여했거나 테스트 범위를 제한했다면 결과는 어차피 가치가 없음
  • Mullvad 블로그 글 링크: https://mullvad.net/en/blog/the-report-for-the-2024-security...
  • 이건 Mullvad VPN 앱에 대한 감사이지, 서비스 자체에 대한 감사가 아님
  • Mullvad는 예전엔 훌륭했지만, 포트 포워딩 중단 때문에 토렌트가 훨씬 나빠졌음
    OpenVPN 지원 중단도 내게는 별로인데, 그게 필요한 사용 사례가 몇 개 있어서 다른 곳으로 옮길 예정임
    오래 잘해왔던 곳이라 아쉬움
    • 합리적인 기준으로 보면 여전히 훌륭함
      포트 포워딩 제거는 처리해야 할 남용을 크게 줄이고, 극소수의 초 nerd 사용자에게만 영향이 있음
    • 그렇게 된 지 얼마나 됐는지 궁금함
      Mullvad로 토렌트를 한동안 써왔고, 시드가 적은 토렌트는 가끔 시작까지 오래 걸리지만 결국 받아짐
      더 마이너한 미디어는 며칠 앞서 생각해둬야 할 때도 있음
    • 포트 포워딩 중단 때문에 Mullvad를 그리워하면서도 다른 곳으로 옮겨야 했음
    • OpenVPN을 버리는 이유가 뭔지 모르겠음
      솔직히 OpenVPN 미지원 제공업체는 아예 고려하지 않을 것 같고, 그러면 무슨 의미가 있나 싶음
    • OpenVPN을 버린다니 아쉽지만, 그래도 최소 1년은 남아 있음
      어떤 이유에서인지 내 라우터에서 사이트 간 VPN으로는 훨씬 더 잘 동작하고 안정적임
  • 제목은 “X41이 Mullvad VPN 앱을 감사했다”가 더 명확해 보임
  • OpenBSD에서 WireGuard로 Mullvad VPN을 쓰고 있음(man wg)
    잘 동작하고, 익명성을 위해 Bitcoin으로 월 단위 구매도 가능함
    • Bitcoin은 익명이 아님
      뭔가 잘못 이해한 건가?
    • 내 이름으로 된, 몇 년째 쓰는 신용카드로 VPN 비용을 냄
      가끔 VPN을 쓴다는 사실을 숨기려는 게 아니고, ISP는 터널을 보고 방문한 웹사이트는 VPN IP를 보며 넷플로우에는 시간, 기간, 전송량 등이 남음
      VPN 사용 자체는 비밀이 아님
      대부분의 VPN 사용자는 나처럼 온라인 광고업체와 데이터 수집업체로부터의 프라이버시를 원하는 평범한 사람이라고 봄
      VPN 제공업체로부터의 프라이버시는 원하지도 기대하지도 않음
      어차피 내 이름으로 된 계정의 가정용 ISP IP에서 그들의 VPN 서비스에 접속함
      VPN 결제를 어떻게 숨기든 그들은 당신이 누구인지 알게 됨
      기술자들, 특히 보안 쪽 사람들은 이런 문제에서 너무 멀리 가서 비현실적이 되는 경우가 많고, 현실의 위협 모델과 사용 사례에서 멀어진 느낌임
      James Mickens의 짧은 글 “This World of Ours”가 이 주제를 잘 다룸: https://www.usenix.org/system/files/1401_08-12_mickens.pdf
    • 중국을 방문했을 때 Mullvad 팬이 됐음
      테스트한 VPN 앱 중 가장 안정적이었고, 계정당 최대 5대 기기까지 쓸 수 있음
    • BTC로 사더라도 결국 실제 IP로 접속하는 것 아닌가?
    • BTC 익명성 착각은 제쳐두더라도 그게 중요하긴 한가 싶음
      주장대로 로그를 저장하지 않는다면 당신에 대해 무엇을 알든, 경찰이 묻는 IP를 수천 명 고객 중 누구든 썼을 수 있어서 원해도 당국에 넘길 수 없음
      뭔가 놓치고 있는 건가?
  • 요즘 VPN은 좋은 사업이지만, 고객을 제대로 대하거나 자신들이 제공하는 것을 투명하게 보여준다는 느낌은 안 듦
    허튼소리가 꽤 많아 보이고, “멋진” VPN은 스칸디나비아 국가에서 나와야 한다는 분위기도 있는데 실제로는 대부분 그렇지 않음
    • 이 말이 잘 이해되지 않음
      좋게 봐도 본문과 주변적인 관련만 있고, 표현이 모호해서 주제인 Mullvad가 뭔가 나쁜 일을 하는 것처럼 들림
      Mullvad는 스웨덴 기반이라고 밝히는데, 그게 아니라는 건가? 서버 위치와 소유자도 공개하고 있음
      VPN을 왜 쓰거나 쓰지 말아야 하는지에 대한 정보도 꽤 많이 제공하고, 고객 데이터를 기록하지 않으며 RAM 전용 인프라로 옮겼고, 단일 정액 요금으로 저렴함
      정확히 무엇이 허튼소리라는 건지, 무엇을 다르게 하길 바라는지 궁금함
    • “멋진 VPN은 스칸디나비아에서 나와야 하는데 대부분 그렇지 않다”는 말이 무엇을 암시하는지 모르겠음
      왜 그래야 하는지도, 왜 사실이 아니라는지도 이해가 안 됨
      공정하게 말해, 내가 아는 강한 프라이버시 지향 VPN 중 스칸디나비아가 아닌 건 ProtonVPN 정도임
    • 소비자 입장에선 기본적인 것조차 제대로 동작하는지 직접 확인해야 해서 엉망임
      몇 년 전 Nord를 쓰다가 연결됐다고 표시하면서도 실제로는 VPN에 연결하지 않는 조용한 실패를 발견했고, 보고했더니 알려진 문제니 걱정하지 말라는 답을 받았음
      내가 아는 한 그들은 보안 공지를 내지 않았음
    • 약 5년간 Mullvad를 만족스럽게 쓰고 있음
      YouTube나 제휴 사이트에 엄청난 광고비를 쓰지 않는 점이 오히려 안심됨
      수상한 회사들의 피난처 같은 관할권이 아닌 곳에 있는 것도 선호함
      요약하면 허튼소리가 적고 괜찮아 보여서 좋아함
      PIA나 그런 회사들을 믿을 수 있을 것 같진 않음
  • Mullvad의 유일한 문제는 다른 VPN보다 웹사이트에서 캡차와 차단을 훨씬 더 많이 만난다는 것임
    • YouTube와 Reddit이 최악임
      공격적인 차단은 남용 때문이 아니라 VPN이 추적과 데이터 채굴에 실제 문제가 되었기 때문이라고 꽤 확신함
      출구 서버가 둘 중 하나에서는 되지만 둘 다에서는 안 되는 경우가 많아서, YouTube와 Reddit 사이에 IP 차단이 어느 정도 조율되어 VPN 사용을 귀찮게 만들고 억제하려는 것 같다는 의심이 듦
      VPN 사용자에게 소셜 미디어의 핑퐁을 방해하는 건 행동에 영향을 주는 효과적인 전략으로 보이고, 둘 다 사실상 자연 독점이라 그렇게 해도 사용자를 잃을 위험이 거의 없음
      쿠키 배너가 데이터 채굴에 유리하게 개인정보 규제에 대한 사람들의 감정을 바꾸도록 악용되는 것과 비슷함
      심지어 많은 기술자도 짜증나는 쿠키 배너가 EU 탓이라고 믿지만, 실제 관행은 악의적 준수이거나 불필요하거나 노골적으로 불법인 경우가 많음
      어쨌든 정말 짜증나고, 전반적인 웹의 엔시티피케이션과 빠르게 커지는 불만 속 한 가지 양상처럼 느껴짐
    • 최근 나한테는 심각했음
      사실상 기피 인물 취급이고, 많은 캡차는 그냥 차단인데 무료 훈련을 기대하는 것처럼 보임