iOS에서 TikTok, Meta, X 푸시 알림을 악용하여 사용자에 대한 데이터 수집
Apple은 오랫동안 기기의 하드웨어 및 소프트웨어 기능을 통해 사용자를 추적하는 것은 허용되지 않는다고 말해왔습니다. 하지만 일부 인기 앱은 Apple의 규칙을 우회하는 방법을 찾아낸 것으로 보입니다.
개인정보 보호 연구원인 토미 마이스크(Tommy Mysk)는 2016년에 처음 도입된 푸시 알림 기능을 통해 다수의 인기 iOS 앱이 사용자 기기에 대한 자세한 데이터를 회사 서버로 전송하는 것을 발견했습니다.
마이스크는 TikTok, Facebook, FB 메신저, Instagram, Threads, X 등 여러 소셜 미디어 앱을 조사면서 이 불안하고 지속되는 듯한 패턴을 발견했다고 설명했습니다. 이 모든 앱은 실행 중이 아닐 때에도 푸시 알림을 직접 사용자 지정할 수 있는 기능을 활용하고 있었습니다.
이 기능은 본질적으로 악의적이지 않으며 중요한 용도로 사용됩니다. 예를 들어, 사용자에게 알림을 가장 잘 표시하기 위해 알림 페이로드를 디코딩하거나 추가 콘텐츠를 다운로드해야 하는 앱에 유용할 수 있습니다. 앱이 푸시 알림을 받으면 iOS는 앱이 시작되어 짧은 시간 동안 실행되도록 신호를 보냅니다. 이 시간 동안은 앱 푸시 알림의 모양을 어떤 식으로든 직접 조정하는 등 개발자가 원하는 작업들을 수행할 수 있습니다. 후자가 이 기능의 원래 목적이지만, 문제는 이 시간 동안 앱이 데이터를 수집하거나 사용자에 대한 정보를 전송할 수도 있다는 것입니다.
마이스크는 자신이 연구한 앱들이 이 제한된 실행 시간을 최대한 활용하여 기기에서 데이터를 수집하고 해당 데이터를 원격 서버로 전송한다는 사실을 발견했습니다. 마이스크는 이러한 백그라운드에서 코드를 실행하는 기능이 데이터가 많이 필요한 앱들에게 악용될 수 있다고 말합니다.
마이스크에 따르면 이 모든 것이 어떻게 작동할까요?
- 앱 개발자가 앱의 백그라운드에서 실행할 코드를 작성합니다.
- 개발자는 앱 사용자에게 푸시 알림을 보냅니다. 그 알림은 새로운 업데이트, 실시간 스포츠 스코어, 새로운 친구 요청 등 무엇이든 포함할 수 있습니다.
- 사용자의 기기가 푸시 알림을 수신하지만 아직 화면에 표시되지 않습니다. iOS는 푸시 알림이 소셜 앱에서 보낸 것임을 인식하고 백그라운드에서 실행합니다. 앱이 실행 중이지만 사용자가 앱을 보거나 앱과 상호 작용할 수 없습니다.
- 앱은 개발자가 백그라운드에서 준비한 코드를 실행합니다. 예를 들어, 알림에 이미지와 같은 추가 정보를 추가하는 데 사용될 수 있지만, 사용자의 기기에서 데이터를 수집하여 해당 데이터를 개발자의 서버로 전송하는 데 사용될 수도 있습니다.
이를 통해 개발자는 사용자 기기의 고유한 소프트웨어 및 하드웨어 특성 조합을 파악할 수 있습니다.
많은 앱이 이 기능을 백그라운드에서 조용히 실행하면서 기기에 대한 자세한 정보를 전송합니다. 이러한 정보에는 시스템 가동 시간, 로캘, 키보드 언어, 사용 가능한 메모리, 배터리 상태, 기기 모델, 디스플레이 밝기 등이 포함됩니다.
마이스크는 이 데이터가 나중에 여러 앱에서 사용자를 추적하는 데 사용될 수 있다고 지적합니다.
어떤 데이터가 수집되나요?
이러한 속임수의 예를 설명하는 동영상에서 마이스크는 소셜 미디어 회사가 푸시 알림의 허점을 통해 수집할 수 있는 데이터의 유형을 보여줍니다. 수집은 회사 자체 서비스를 통해 이루어지거나 Google의 분석 도구인 Google 애널리틱스 및 Firebase와 같은 타사 도구의 도움을 받아 이루어집니다.
예를 들어, TikTok의 경우, 푸시 알림을 받을 때마다 iPhone의 부팅 시간을 원격 서버로 전송합니다.
즉, TikTok은 사용자가 마지막으로 iPhone을 재시작한 시간을 정확히 알 수 있습니다. 일정 기간 동안 수집된 부팅 시간을 통해 사용자가 iPhone을 재부팅하는 빈도를 알 수 있으며, 이를 통해 사용자의 사용량이나 안정성을 파악할 수 있습니다. 또한 사용자의 기기를 식별하거나 활동을 추적하는 데에도 사용할 수 있습니다.
Facebook 앱이 동일한 기기로 푸시 알림을 보낼 때, Facebook은 사용자의 iPhone 마지막 부팅 시간에 대한 동일한 데이터를 수신합니다.
연구원이 지적했듯이, 이는 여러 앱에서 사용자를 추적하는 데 용이할 수 있습니다. 부팅 시간을 사용자 기기의 고유 식별자로 사용할 수 있기 때문입니다. 기기에 부팅 시간을 수집하여 동일하거나 다른 서버로 전송하는 앱이 여러 개 있는 경우, 이러한 서버는 부팅 시간 데이터를 비교하여 그 기기에 연결할 수 있습니다. 이렇게 하면 사용자가 각 앱에서 똑같은 계정이나 로그인 정보를 사용하지 않더라도 여러 앱에서 사용자의 행동과 기본 설정을 추적할 수 있습니다. 이 모든 것들이 소셜 미디어 회사의 푸시 알림 기능 악용을 합법적인 개인정보 위협으로 만듭니다.
또한, 마이스크는 Facebook 및 TikTok과 같은 일부 앱은 앱의 알림 개요를 제공하는 iOS 기능인 알림 센터에서 알림을 지울 때 데이터를 전송하기도 한다고 지적합니다.
예를 들어, 사용자가 Facebook 알림을 지우면 앱은 사용 가능한 메모리 정보, 게시물 '좋아요'와 같은 마지막 앱 이벤트, 마지막 앱 이벤트 이후 시간, Facebook에서 사용자의 계정을 식별하는 행위자 ID, 선호하는 콘텐츠 크기, 알림이 지워진 타임스탬프(정확한 날짜 및 시간), 연결 유형 등의 세부 정보가 포함된 요청을 보냅니다.
Twitter(X)는 사용자 정보 수집 과정을 Facebook 및 TikTok과 거의 동일한 방식으로 처리합니다.
마이스크는 세 회사 모두 Google에서 제공하는 서비스인 Firebase를 사용하고 있으며, 많은 앱이 알림을 받은 후 기기 정보를 전송하는 빈도가 놀랍다고 덧붙였습니다.
개발자를 위한 새로운 Apple 규칙: 무엇이 바뀌나요?
마이스크는 올봄에 시행될 Apple의 새로운 개발자 규칙에 많은 기대를 걸고 있습니다. Apple은 이 규칙을 공개하면서 개발자가 앱이 서로 다른 앱과 통신하고 데이터를 공유하는 방법인 특정 API(애플리케이션 프로그래밍 인터페이스)를 사용해야 하는 이유를 설명해야 한다고 발표했습니다.
개발자는 자신의 코드뿐만 아니라 앱에 추가하는 타사 SDK(소프트웨어 개발 키트)를 위해 기기 정보에 액세스해야 하는 이유를 설명해야 합니다. 앱과 타사 SDK 모두 특정 API를 통해 기기 정보에 액세스해야 하는 이유에 대해, 승인된 이유를 한가지 이상으로 개인정보 매니페스트 파일이라는 별도의 문서에 작성해야 합니다. 이러한 이유는 ‘앱의 기능과 일치’에 기반해야 합니다.
하지만 문제는 기업이 푸시 알림을 통해 앱에서 데이터를 수집하는 것을 막을 수 있을까요? 이론적으로는 가능하지만, Apple이 개발자에게 이러한 규칙을 엄격하게 적용하는 경우에만 가능합니다. 이는 결코 보장되지 않습니다.
새로운 규칙이 상황을 개선할 것이라고 믿지만 얼마나 개선될까요? 변수가 많은 어려운 질문입니다. 개발자들은 새로운 규칙을 고려해야 하므로 선의로 규칙을 준수하려고 노력할 가능성이 있습니다. 그러나 이러한 데이터를 계속 수집하는 데 열중하는 사람들은 위험을 감수할 가능성이 높습니다. 그리고 이러한 앱을 적발하는 것은 Apple과 검토자의 몫이 될 것입니다.
어쨌든 Apple이 개인정보 보호에 대해 선제적이고 투명한 접근 방식을 취하지 않으면 사용자의 데이터는 계속 위험에 노출될 것입니다.