1P by GN⁺ 3일전 | ★ favorite | 댓글 1개
  • 픽스내핑(Pixnapping) 은 악성 Android 앱이 다른 앱이나 웹사이트에 표시된 개인 정보를 몰래 훔치는 새로운 공격 기법임
  • 이 공격은 Android API와 GPU 하드웨어 사이드 채널을 이용하며, Google, Samsung 등 주요 제조사의 최신 기기 대부분에 영향을 미침
  • 인증코드, 채팅, 이메일 등 화면에 표시되는 모든 정보가 노출될 수 있으며 앱 권한 없이도 공격 가능함
  • Google Authenticator에서는 30초 이내에 2차 인증코드를 탈취할 수 있음
  • Google과 GPU 벤더 모두 공격 완화를 위한 확실한 패치나 대응책이 부족한 상황임

개요

  • 픽스내핑(Pixnapping) 은 악성 Android 앱이 다른 앱이나 웹사이트에 표시되는 정보를 사용자 모르게 훔쳐갈 수 있게 하는 공격임
  • Android API와 GPU의 측면 채널(side channel) 을 악용해 정보 유출이 이루어지며, Google 및 Samsung 기기 등 최근 Android 스마트폰 대부분이 영향을 받음
  • 확인된 실제 피해 앱에는 Gmail, Signal, Google Authenticator, Venmo, Google Maps 등이 포함되며, Google Authenticator의 2FA 코드도 30초 이내에 도난 가능함

연구 논문 및 시연

  • ACM CCS 2025에서 “Pixnapping: Bringing Pixel Stealing out of the Stone Age” 논문으로 공개 예정임
  • 논문 사전 인쇄본을 통해 공격 원리 및 상세 내용 확인 가능함

주요 질의응답

어떤 기기가 영향을 받는가

  • Android 13~16을 탑재한 Google Pixel 6, 7, 8, 9, Samsung Galaxy S25에서 실증함
  • 다른 제조사 기기에서도 핵심 공격원리가 그대로 동작할 가능성이 높음

공격 조건

  • 권한 없는 모든 Android 앱도 공격 실행 가능함
  • 앱 매니페스트 파일에 별도 권한 선언이 없이도 발동함

어떤 정보를 훔칠 수 있는가

  • 화면에 표시되는 모든 정보(채팅, 인증코드, 이메일 등)가 공격 타깃이 됨
  • 화면에 노출되지 않는 내부 정보는 유출 불가함

실제 악용 사례

  • 현재 실제 악용 중인지 여부는 미확인임

사용자 보호 방법

  • 새로운 Android 보안 패치가 나올 때마다 즉시 설치 권장됨

개발자 보호 방법

  • 효과적인 방어책이나 우회책은 현재 확인되지 않음
  • 보안 관련 인사이트가 있으면 연구자에게 연락 요청

공격 동작 원리

  1. 악성 앱이 타깃 앱(예: Google Authenticator)을 호출해 민감 정보가 렌더링되도록 유도함
  2. 타깃 앱 화면에서 특정 픽셀에 그래픽 연산(블러 등)을 강제 적용함
  3. GPU.zip과 같은 측면 채널을 활용해 2단계 픽셀을 한 픽셀씩 추출함
  • 2,3단계를 반복해 픽셀 전체를 복구 후 OCR로 원래 내용을 추출하는 방식임
  • 악성 앱이 실제로는 접근 불가한 화면을 스크린샷 찍는 효과와 유사함

악용된 Android API

  • window blur API를 이용해 민감 픽셀 부위에 그래픽 처리(블러)를 시행함
  • VSync 콜백을 통해 렌더링 시간을 측정, 픽셀별 추출에 활용함

Google의 패치 및 대응

  • Google은 앱이 호출하는 blur 처리 활동 개수 제한 방식으로 대응했으나, 곧 우회책(workaround)이 발견됨
  • 해당 우회책은 현재 비공개(embargo) 상태임

하드웨어 수준의 사이드 채널

  • GPU.zip이라는 GPU 기반 사이드 채널로 픽셀 정보를 추출함
  • 2025년 10월 기준 GPU 제조사 중 별도의 패치 계획 없음

취약점 식별 정보 (CVE)

  • CVE-2025-48561로 공식 등재됨

타 운영체제 영향 여부

  • Android는 앱이 다른 앱의 화면 데이터에 그래픽 연산, 사이드 이펙트 측정이 가능해 공격 대상이 됨
  • 다른 OS 적용 가능성 미확인임

App List Bypass 추가 취약점

  • 설치된 타 앱 목록을 별도 권한이나 매니페스트 선언 없이 식별할 수 있는 app list bypass 취약점도 있음
  • 사용자 프로파일링에 활용될 수 있고, 기존 우회 방법과 달리 추가 선언 없이 동작함
  • Google은 “Infeasible(불가)”로 판단하고 별도 조치 없이 종료함

로고, 소스코드 및 라이선스

대응 및 주요 일정

  • 2025년 2월~10월 사이 Google, Samsung에 단계적으로 취약점 공개 및 대응 요청 진행
  • Google은 Pixnappingapp list bypass의 위험 등급을 High/Low로 분류했으며 일부 패치는 미흡하거나 불가(Fix 불가)로 결론 지음
  • 2025년 12월 Android 보안 공지에서 추가 패치 예정

요약

  • 픽스내핑은 앱 권한 구조와 하드웨어 동작의 복합적인 허점을 이용해 실제 화면의 중요한 정보를 부정하게 유출할 수 있는 공격임
  • Android 소프트웨어와 하드웨어 보안 모두에 구조적인 보완책이 필요한 상태임
Hacker News 의견
  • 내 생각에는, Android의 권한 시스템이 "백그라운드에서 실행"이나 "인터넷 접근"을 사용자의 허가 없이도 기본적으로 허용하는 것이 핵심 문제임을 봄, 이런 공격은 모든 앱—심지어 오프라인 게임조차—가 기본적으로 이런 권한을 갖고 있기 때문에 가능함, 많은 앱은 "앱을 사용할 때만" 인터넷 접근 권한을 가져야 하며, 이게 완벽한 보호는 아니지만 실수로 악성 앱을 실행하는 위험이 항상 있기에 공격 효과를 크게 낮출 수 있음

    • 혹시 자동 업데이트와 수동/미업데이트의 위험도에 대한 제대로 된 연구가 있는지 궁금함, 특히 Android 같은 반쯤 샌드박스된 환경에서 결함률 비교 연구를 아는지 묻고 싶음

    • 실제로 인터넷 접근 권한이 존재하며, GrapheneOS에서는 해당 권한을 명시한 앱에 대해 인터넷 접근 자체를 거부할 수 있음

    • 왜 Android 앱에서 인터넷 접근 허가를 사용자에게 요구하지 않는지에 대한 설득력 있는 답변이 있음, Android 개발팀의 직접 답변임 출처, "백그라운드 실행" 관련해서는 Android가 "인텐트" 기반이기에 앱이 언제든 깨워질 수 있으므로, 단순히 "백그라운드 실행 금지" 옵션이 사용자가 기대하는 대로 동작하지 않을 수 있음

  • 영상을 봤는데도 이 공격이 어떻게 동작하는지 이해가 어렵다는 생각임, 앱을 바꾼 후에도 인증 앱의 픽셀에 접근이 가능한지 의문임

  • 앱 개발자로서 사용자를 보호하려면 어떻게 해야 하냐는 질문에 대해, 공개된 대처 방법이 없다고 하지만, 나는 몇 가지 기본적인 시도가 있다고 생각함, 예를 들어 암호 코드 위치를 화면에서 고정하지 않거나, 백그라운드에서 숨기거나, 코드를 계속 움직이거나, 색상·명암을 바꾸거나, 정적 노이즈 표시, 코드를 전체가 아닌 일부만 짧게 깜빡거리게 하는 방법 등을 제시함, 물론 이런 방법들이 UX에 다소 영향을 주겠지만, 이론적으로는 공격자 난이도를 상당히 올릴 수 있다고 봄, 단 실제로 스크린샷으로 캐싱된 비밀 정보가 있다면 한계가 있다는 것도 언급함

    • Google Authenticator가 예전에 TOTP 코드를 터치해야 보여주도록 바꿨던 기억이 있음, 당시엔 실제로 위협을 막지 못하고 불편하기만 하다고 생각했고 많은 사람들이 동의해서 얼마 안 가 해당 기능이 조용히 롤백됨, 혹시 이 결함에 대한 사전 대처였는지 궁금해짐

    • unscreenshottable.vercel.app라는 데모 소개함

  • TOTP에 대해 이번 공격이 실질적으로 가능하려면 폰트와 픽셀 위치가 완벽히 알려져야 함을 강조함, 논문에 따르면 민감한 화면 영역을 훔치는데 시간이 오래 걸리고, 예를 들어 2FA 코드는 기본적으로 30초마다 새로고침되어서 엄격한 시간 제한이 있음, 공격자가 30초 내에 6자리를 모두 유출하지 못하면 값이 사라지며, 다만 폰트가 공격자에게 알려져 있다면 몇몇 픽셀만 유출해도 판별이 가능함

    • 널리 쓰는 인증 앱이 몇 가지(Google, Microsoft Authenticator, Okta 등)밖에 없으니 이게 실제로는 큰 장애물이 아니라 생각함
  • 예전부터 존재했던 기법이긴 하지만 타겟을 정밀하게 노리기에 매우 유효함을 밝힘, 특정 앱을 유저 폰에 설치할 수 있다면 굳이 복잡하게 안 해도 직접 앱으로 원하는 정보에 접근할 수 있음, 예를 들어 Facebook처럼 유저에게 "이 앱은 주기적으로 화면을 캡처합니다"라는 프라이버시 공지를 띄우면 놀랄 만큼 많은 사람들이 그대로 허용함, Pixnapping 소스 코드는 패치가 가능해지면 이곳에서 공개하겠다고 했는데, 사실 역공학도 어렵지 않을 듯함, 패치될 때까지 기다릴 수도 있었지만 연구자들이 관심을 빨리 얻으려 한 것 같음

    • 원래 취약점 패치는 이미 공개됨 관련 커밋의 메시지에도 "윈도우간 블러 처리 시간을 측정해 픽셀 탈취를 막는다"고 명시되어 있음, 연구자들이 코드를 공개하지 않는 이유는 해당 패치에 우회 방법이 있음을 발견해서임, 추가로 "GPU.zip에 대해 패치하겠다고 약속한 GPU 벤더는 없다", "Google도 앱 리스트 우회 취약점 패치 의사가 없다"고 언급함(“수정 불가로 종료”), 최초 제보일이 2025년 2월 24일임을 보면 연구자들이 성급했다고 보기 어려움, 그리고 "이 앱이 화면을 주기적으로 캡처합니다" 알림이 있더라도, 명시적으로 스크린샷 불가로 설정된 화면은 별도 익스플로잇 없인 캡처가 안 됨

    • Google에 최초 제보한 날짜가 2025년 2월 24일임, 충분히 시간은 주었음

  • 이번 공격이 렌더링 시간(사이드채널)을 활용한 똑똑한 기법임을 인정함, Google Authenticator라도 전체 픽셀을 채집하려면 시간이 꽤 걸린다는 점을 언급함, 오히려 이런 방법이 문자 메시지에서 OTP 훔치는 데 얼마나 적용 가능할지 걱정임, GitHub 알림 이메일처럼 패턴이 고정된 피싱 이메일도 많아져서 아예 이메일 내 링크 클릭을 멈췄고, 이제는 앱 인텐트 추천으로 앱을 여는 것도 지양해야겠다고 생각함, 직접 앱을 열어 작업하고 쓸모없는 앱은 삭제하는 게 나음, 공격 표면이 SDK나 웹 페이지 인텐트를 통해서도 확장될 수 있으므로 많이 간과된다고 봄

  • 웹브라우저 게임인 줄 알고 제목만 보고 찾아봤었음

  • 보안 전문가가 아니지만, Windows 데스크톱에 앱을 설치할 경우, Android의 pixnapping보다 훨씬 빠르고 은밀하게 공격이 가능하다고 생각함, 같은 비밀번호를 여러 웹사이트에서 쓰면 어느 한 쪽이 비밀번호를 도용해서 다른 곳에 로그인할 수 있음(별도 보안층이 없다면), 이론상으론 보안이 약한데 현실에선 이런 공격이 흔하거나 실행하기 쉽진 않은 편임

    • 데스크톱에서는 샌드박싱이 없고, 모바일에서는 있다 보니 샌드박스 탈출은 곧 보안 침해임, 게다가 데스크톱은 패스트푸드 앱 하나하나 설치하지 않는데 모바일에선 무분별하게 앱을 깔게 됨
  • 이전 토론 링크 안내함

    • 이전 토론에서는 패치가 나왔으니 걱정하지 않아도 된다는 반응이 많았는데, 이번 사례에서는 해당 패치가 완전하게 동작하지 않는다고 함
  • 현대 디바이스는 너무 복잡해져 완전한 보안이 불가능하다는 생각임, 필요하지도 않은 기능이 끝도 없이 추가되다 보니 이런 일이 생기는 것 같음, 앞으로 FreeBSD처럼 최소 기능만 담은 보안 중심 OS에 대한 수요가 점점 커질 것이라 믿음

    • 이동 중에도 터미널에서 make world 할 수 있는 환경을 원함

    • Bunnie에서 만든 Precursor가 있는데, 멋지긴 해도 너무 비싸다고 느꼈음, $100짜리 계산기가 비싸다 느낀다면 Precursor는 형태도 비슷하고 연산 성능도 비슷하지만 $1000이나 하며 수학 시험에 쓸 수도 없음, Precursor 공식 블로그 (현재 접속 불가, 나중에 열릴 수도 있음)

    • 몇 년간 hn 댓글을 읽으며 보안 지식과 실천이 크게 퇴보했다고 느끼게 됨, 생성형 AI의 확산으로 상황이 더 악화될 것 같음, 요즘은 fsf 폰 프로젝트 관련 이야기와 함께 모바일 뱅킹 앱 사용이 불편하다고 불평하는 사람도 많음, 데스크톱에서 30분마다 비밀번호 치는 것도 번거롭다는 소리도 있고, "두 대의 폰을 가져야 하냐"는 불만도 많음, 내가 보기엔 폰을 훔친 범인이 비밀번호 입력 장면만 봤으면 바로 은행앱, 머니앱을 켜서 최대한 데이터를 빼갈 것임, 실제로 매일 같이 이런 범죄가 있음, 이런 앱은 아예 폰에 설치하거나 로그인된 상태로 두지 않는 것이 좋고, 2FA 앱도 마찬가지임, 비싼 브랜드 여행가방을 드는 것과 똑같이 타깃을 노출하는 셈임, CEO거나 국가 차원의 공격대상 아니라면 더욱 조심해야 함, "최소 기능 보안 OS" 디바이스도 물리적으로 뺏기는 문제(패스워드를 누가 보고 기기를 훔침)가 본질적으로 남지만, 술집에서 게임, 광고 앱만 설치해서 쓰는 폰과, 뱅킹이나 2FA, 업무에 쓰는 폰은 철저히 분리해야 함