간단 요약: iPhone의 팝업 광고 대부분은 (1) 실수로 허용한 웹 푸시 알림, (2) 수상한 웹사이트에서 발생하는 Safari 리디렉션, (3) 무료 앱 내 공격적인 광고 SDK, (4) 기기에 설치된 악성 구성 프로파일, (5) 모르는 사이에 구독한 캘린더 스팸 중 하나입니다. 각각에 특정 진단 단계와 구체적인 해결책이 있습니다. 그 어느 것도 iPhone이 악성 코드에 감염되었다는 의미가 아닙니다. 아래에 전체 진단표와 각 원인 및 해결책에 대한 자세한 설명을 담았습니다.
진단표: 증상, 원인, 해결 방법
| 증상 | 가장 가능성 높은 원인 | 해결책 | 소요 시간 |
|---|---|---|---|
| 브라우징하지 않을 때도 알림 배너로 팝업이 나타남 | 허용한 사이트의 웹 푸시 알림 | Safari 설정에서 알림 권한 취소 | 2분 |
| Safari가 갑자기 사기성 페이지나 앱스토어로 리디렉션됨 | 방문한 사이트의 JavaScript 리디렉션 / 악성 광고 | 탭 닫기, Safari 데이터 삭제, 콘텐츠 차단기 활성화 | 3분 |
| 게임 레벨 사이 또는 무료 앱 실행 시 전체 화면 광고 표시 | 앱 내 광고 SDK의 전면 광고 | DNS 수준 광고 차단 또는 앱 삭제 | 5분 |
| 여러 앱에 걸쳐 지속되는 팝업, 브라우저 설정 변경됨 | 악성 구성 프로파일 | 설정에서 프로파일 제거 | 2분 |
| 캘린더 앱에 스팸 이벤트가 나타남 | 모르는 사이에 수락한 캘린더 구독 | 스팸 캘린더 구독 삭제 | 1분 |
이제 각 원인을 자세히 살펴보겠습니다. 해당 원인이 맞는지 확인하는 방법, 정확한 해결 방법, 재발 방지 방법을 함께 설명합니다.
원인 1: 실수로 허용한 웹 푸시 알림
무슨 일이 일어나고 있나요: Safari에서 브라우징하는 어느 시점에, 알림 전송을 요청하는 프롬프트가 표시된 웹사이트를 방문했을 것입니다. 빠르게 닫으려고 "허용"을 탭했거나, 프롬프트가 인증 단계처럼 보이도록 설계되었을 수 있습니다(예: "로봇이 아님을 확인하려면 허용을 탭하세요"). 웹사이트의 알림을 허용하면, 해당 사이트는 원할 때마다 iPhone으로 푸시 알림을 보낼 수 있습니다. 스팸 지향 사이트는 경고, 할인 정보, 경고로 위장한 수십 건의 알림을 하루에 보냅니다. 이는 팝업 광고처럼 보이지만 실제로는 Safari의 Web Push API를 통해 전달되는 푸시 알림입니다.
이것이 원인인지 확인하는 방법: 알림 배너로 팝업이 나타날 때 알림 상단을 확인하세요. 출처가 표시됩니다. "Safari" 또는 웹사이트 URL이 표시된다면 웹 푸시 알림이 원인입니다. 설정 > Safari > 알림으로 이동하면 알림 권한을 부여한 모든 웹사이트 목록을 볼 수 있습니다.
해결 방법: 설정 > Safari > 알림으로 이동합니다. 알림 권한이 있는 웹사이트 목록이 표시됩니다. 모르는 사이트나 원하지 않는 사이트를 모두 삭제하세요. 목록이 길고 어느 사이트가 스팸인지 불확실하다면, 모두 삭제하는 것이 가장 안전합니다. 정당한 사이트는 다음 방문 시 다시 권한을 요청할 수 있습니다. 또는 어떤 웹사이트도 푸시 알림을 보내지 않도록 하려면, 같은 화면에서 이 기능을 완전히 끌 수 있습니다.
예방: 웹사이트가 알림 전송을 요청할 때 기본 답변은 실제로 알림을 원하는 특별한 이유가 없는 한 "허용 안 함"이어야 합니다. iOS의 Web Push 사양은 권한 프롬프트를 표시하기 전에 사용자 상호작용을 요구하지만, 수상한 사이트는 종종 오해를 유발하는 버튼 레이블이나 CAPTCHA 유사 프롬프트를 사용해 "허용"을 탭하도록 유도합니다. DNS 수준 차단도 도움이 됩니다. 알림이 알려진 광고/스팸 도메인에서 발생하는 경우, DNS 필터가 알림 페이로드 로딩을 차단할 수 있습니다.
원인 2: 악성 광고 및 수상한 사이트로 인한 Safari 리디렉션
무슨 일이 일어나고 있나요: 웹사이트(때로는 정상적인 사이트)를 방문하면 갑자기 브라우저가 URL 체인을 통해 iPhone이 감염되었다거나, 경품에 당첨되었다거나, 앱을 즉시 설치해야 한다고 알리는 사기 페이지로 리디렉션됩니다. 때로는 저품질 앱을 홍보하기 위해 직접 앱스토어로 이동하기도 합니다. 이것은 휴대폰의 악성 코드가 아니라, 방문한 웹사이트의 악성 광고(malvertising)입니다. 광고 네트워크가 브라우저 세션을 가로채고 리디렉션하도록 설계된 JavaScript가 포함된 광고 크리에이티브를 제공한 것입니다.
확인 방법: 이러한 리디렉션은 Safari(또는 다른 브라우저)에서 브라우징하는 동안에만 발생합니다. 무료 스트리밍 사이트, 광고가 많은 포럼, 불법 복제 콘텐츠 등 특정 유형의 사이트를 방문할 때만 팝업이 나타난다면, 악성 광고가 거의 확실한 원인입니다. 리디렉션은 새 탭을 열거나 현재 페이지를 전체 화면 사기 페이지로 대체하는 경우가 많습니다.
즉각적인 해결 방법: 탭을 닫으세요. 페이지가 닫히지 않도록 방지한다면(일부 사기 페이지는 JavaScript를 사용해 뒤로 가기 버튼을 가로채고 반복적으로 대화 상자를 표시), Safari에서 탭 전환기 아이콘을 길게 누르고 "모든 탭 닫기"를 탭하세요. 그런 다음 설정 > Safari로 이동하여 "방문 기록 및 웹 사이트 데이터 지우기"를 탭해 캐시된 리디렉션을 삭제하세요. 이렇게 하면 사이트를 재방문할 때 캐시된 JavaScript에서 리디렉션이 즉시 재실행되지 않습니다.
장기적인 해결 방법: Safari 콘텐츠 차단기를 설치하세요. 콘텐츠 차단기(1Blocker, AdGuard for Safari, Wipr)는 악성 광고 크리에이티브가 처음부터 로드되는 것을 방지합니다. JavaScript 리디렉션이 실행되지 않으면 리디렉션이 발생하지 않습니다. iPhone에서 다섯 가지 광고 차단 방법에 대한 종합 가이드를 작성했으니 필요에 맞는 방법을 선택하세요. Safari를 넘어 더 광범위한 보호를 위해 DNS 수준 필터는 페이지가 로드되기 전에 알려진 리디렉션 및 사기 도메인에 대한 연결을 차단합니다. Casper의 위협 보호에는 가장 일반적인 악성 광고 리디렉션 체인을 포함하는 차단 목록이 포함되어 있어 리디렉션 도메인에 대한 초기 DNS 조회가 실패하므로 하이재킹이 시작되지 않습니다.
Safari의 내장 보호: Safari에는 "사기성 웹 사이트 경고" 기능이 있습니다(설정 > Safari > 사기성 웹 사이트 경고 활성화). Google의 Safe Browsing 데이터베이스를 통해 사이트를 확인합니다. 이 기능이 활성화되어 있는지 확인하세요. 이것은 많은(하지만 모든 것은 아닌) 알려진 사기 페이지를 차단합니다. 문제는 악성 광고 리디렉션이 종종 아직 Safe Browsing에 추가되지 않은 완전히 새로운 도메인을 사용한다는 점입니다. ML 기반 위협 탐지가 포함된 DNS 수준 차단은 정적 목록이 놓치는 이러한 제로데이 도메인을 탐지할 수 있습니다.
원인 3: 무료 앱 내 광고 SDK의 전면 광고
무슨 일이 일어나고 있나요: 무료 앱은 광고를 통해 수익을 창출합니다. 가장 공격적인 형식은 전면 광고(interstitial)로, 게임 레벨 사이, 앱 실행 시, 화면 전환 시 등 액션 사이에 나타나는 전체 화면 광고입니다. 이러한 광고는 앱 코드에 내장된 광고 SDK인 Google AdMob, Meta Audience Network, Unity Ads, ironSource, AppLovin 등에 의해 전달됩니다. 개발자가 이러한 SDK를 포함하고 전면 광고가 표시되는 빈도를 설정했습니다. 일부 앱은 30초마다, 일부 앱은 주요 화면 전환 시에만 표시합니다. 이를 제어하는 iOS 설정은 없으며, 전적으로 앱 개발자에게 달려 있습니다.
확인 방법: 전체 화면 광고가 특정 앱(또는 몇 가지 특정 앱) 내에서만 나타나고, 작은 "X" 또는 "닫기" 버튼(보통 좌측 상단 또는 우측 상단)이 있다면, 이는 앱의 광고 SDK에서 나온 전면 광고입니다. 이것은 전통적인 의미의 팝업이 아닌 앱의 의도적인 수익화 기능입니다.
선택지: 세 가지가 있습니다. 첫째, 앱의 프리미엄/광고 없는 버전이 있다면 구매할 수 있습니다. 많은 무료 앱이 광고를 제거하는 유료 티어를 제공하며, 개발자의 작업에 보상하는 가장 깔끔한 해결책입니다. 둘째, 앱을 제거하고 광고가 덜 공격적인 대안을 찾을 수 있습니다. 셋째, DNS 수준 광고 차단을 사용해 광고 SDK가 크리에이티브를 로드하지 못하도록 할 수 있습니다. AdMob SDK가 pagead2.googlesyndication.com에서 광고를 가져오려 할 때 DNS 요청이 차단되면, 앱은 보통 광고가 있어야 할 자리에 빈 공간을 표시하거나 전면 광고를 완전히 건너뜁니다.
이해해야 할 트레이드오프: 앱 내 DNS 수준 광고 차단은 전용 광고 도메인에서 제공되는 광고에 효과가 있습니다(대부분 그렇습니다). 하지만 일부 앱은 광고 SDK 로딩이 실패했음을 감지하고 광고 차단기를 비활성화하도록 요청하는 안내 화면을 표시하거나, 기능을 제한하거나, 광고가 표시될 때까지 콘텐츠 로딩을 거부하는 등의 반응을 보입니다. 이는 앱 개발자의 권리입니다. 특정 앱이 광고 차단이 활성화된 상태에서 작동하지 않는다면, Casper를 포함한 대부분의 DNS 필터는 개별 앱을 화이트리스트에 추가할 수 있습니다.
"광고 차단기 탐지기" 앱에 대한 주의: 일부 기사에서는 다른 앱의 광고를 "탐지하고 제거"한다고 주장하는 앱을 설치하도록 권장합니다. iOS에서 이것은 기술적으로 불가능합니다. 앱은 샌드박스 처리되어 다른 앱의 동작을 수정할 수 없습니다. 이를 주장하는 앱은 사기이거나 오해를 유발하는 이름을 가진 VPN/DNS 필터입니다. 대신 평판 있는 DNS 필터 또는 VPN 기반 차단기를 사용하세요.
원인 4: 악성 구성 프로파일
무슨 일이 일어나고 있나요: iOS 구성 프로파일은 WiFi 설정, 이메일 계정, VPN 설정, 인증 기관, 웹 콘텐츠 필터 등 기기 설정을 수정할 수 있는 XML 파일입니다. 이것은 고용주(MDM), 학교, VPN이나 DNS 프로파일을 설치해야 하는 일부 앱에서 합법적으로 사용됩니다. 그러나 악의적으로 사용될 수도 있습니다. 악성 프로파일은 기본 검색 엔진을 변경하거나, 공격자가 제어하는 프록시를 통해 웹 트래픽을 리디렉션하거나, HTTPS에 대한 중간자 공격을 가능하게 하는 루트 인증서를 설치하거나, 앱처럼 보이지만 광고로 가득 찬 웹 페이지를 여는 웹 클립(홈 화면 단축키)을 추가할 수 있습니다.
확인 방법: 설정 > 일반 > VPN 및 기기 관리로 이동합니다. "구성 프로파일" 또는 "기기 관리" 섹션이 있으면 탭하세요. 기기에 설치된 모든 프로파일을 볼 수 있습니다. 정당한 프로파일은 고용주, 학교, 또는 의도적으로 설정한 앱(Casper, NextDNS, VPN 제공업체)에서 나온 것입니다. 인식할 수 없는 프로파일, 특히 "Web Filter," "Speed Boost," 또는 "Free Internet"과 같은 일반적인 이름의 프로파일이 있다면 악성 프로파일일 가능성이 높습니다.
해결 방법: 의심스러운 프로파일을 탭하고 "프로파일 제거"를 탭합니다. 기기 암호를 입력해야 할 수 있습니다. 제거 후 수정된 설정은 기본값으로 되돌아갑니다. 기본 검색 엔진이 변경되었다면 설정 > Safari > 검색 엔진에서 확인하세요. 홈 화면에 웹 클립이 추가되었다면 길게 눌러 삭제하세요. 프로파일 제거 후 Safari의 방문 기록 및 데이터를 지워(설정 > Safari > 방문 기록 및 웹 사이트 데이터 지우기) 캐시된 리디렉션을 삭제하세요.
악성 프로파일이 설치되는 방법: iOS에서 구성 프로파일 설치를 명시적으로 승인해야 합니다. 시스템은 경고 화면을 표시하고 설치를 완료하려면 설정으로 이동해야 합니다. 공격자는 프로파일 설치 프롬프트를 소프트웨어 업데이트나 보안 패치로 위장하거나, 프로파일 다운로드를 "무료 WiFi" 캡티브 포털 흐름에 포함하거나, 설정의 일부로 프로파일 설치를 지시하는 수상한 "유틸리티" 앱에 포함시키는 방법을 사용합니다. 핵심 방어책: 무엇인지 정확히 알고 왜 필요한지 이해하지 못한다면 절대로 구성 프로파일을 설치하지 마세요.
이것은 목록 중 가장 심각한 원인입니다. 알림 스팸과 전면 광고는 성가시지만, 악성 구성 프로파일은 실제로 보안을 침해할 수 있습니다. 루트 인증 기관을 설치하는 프로파일은 HTTPS 트래픽을 가로채 로그인 자격 증명과 금융 데이터를 노출시킬 수 있습니다. 의심스러운 프로파일을 발견하고 제거했다면, 프로파일이 설치된 동안 접근한 계정, 특히 은행 및 이메일의 비밀번호를 변경하세요.
원인 5: 캘린더 구독 스팸
무슨 일이 일어나고 있나요: 어느 시점에 링크를 탭하거나 웹사이트를 방문해 iOS에서 캘린더 구독 프롬프트가 실행되었습니다. "구독"을 탭했을 때 스패머가 제어하는 캘린더 피드를 캘린더 앱이 가져왔습니다. 이제 캘린더는 스팸 제목("iPhone이 위험합니다! 탭하여 수정하세요!")과 위치 또는 메모 필드에 URL이 있는 이벤트로 가득 찼습니다. 이벤트 알림이 잠금 화면에 경고로 표시되어 시스템 경고나 팝업처럼 보입니다.
확인 방법: 캘린더 앱을 열고 만들지 않은 이벤트를 찾습니다. 보통 경각심을 일으키는 제목, URL이 포함되어 있고, 낯선 이름의 캘린더에 표시됩니다. 이벤트를 탭했을 때 인식할 수 없는 구독된 캘린더에 속한다면, 이것이 원인입니다.
해결 방법: 캘린더 열기 > 하단의 "캘린더" 탭 > 스팸 캘린더 찾기(보통 다른 색상이고 알 수 없는 이름) > "i" 정보 버튼 탭 > 하단까지 스크롤하여 "캘린더 삭제" 탭. 구독과 모든 스팸 이벤트가 즉시 삭제됩니다. 어떤 캘린더가 스팸인지 확실하지 않다면, "iCloud", "Gmail" 또는 의도적으로 만든 것이 아닌 캘린더를 찾으세요.
예방: iOS가 캘린더 구독 프롬프트를 표시할 때 해당 캘린더 피드를 의도적으로 찾지 않은 한 기본 답변은 항상 "구독 안 함"이어야 합니다. 프롬프트에는 캘린더 URL이 표시됩니다. 인식하는 출처가 아니라면 거절하세요. 이 공격의 일부 버전은 이메일이나 iMessage에 캘린더 초대를 포함하여 구독 프롬프트를 우회합니다. 알 수 없는 발신자로부터 캘린더 초대를 받으면 수락하는 대신 "정크로 신고"(iOS 16+에서 사용 가능)를 탭하세요.
미신: iPhone의 팝업 광고가 아닌 것들
인터넷에는 iPhone 팝업 광고를 악성 코드 감염과 혼동하는 기사가 넘쳐납니다. 무슨 일이 아닌지 명확히 해봅시다.
"iPhone에 바이러스가 있다": iOS는 전통적인 바이러스가 작동하도록 허용하지 않습니다. 앱은 샌드박스에서 실행되며 다른 앱의 데이터나 OS 커널에 접근할 수 없습니다(탈옥이나 제로데이 취약점 없이는). "iPhone이 바이러스 3개에 감염되었습니다!"라고 말하는 팝업 페이지 자체가 사기입니다. 앱을 다운로드하거나 가짜 기술 지원 번호로 전화하도록 겁을 주는 웹 페이지입니다. 탭을 닫으세요. 휴대폰은 괜찮습니다.
"클리너 앱을 다운로드해야 한다": 앱스토어의 "iPhone 클리너" 및 "안티바이러스" 앱은 기껏해야 불필요하며, iOS의 내장 샌드박스가 이미 그 역할을 합니다. 최악의 경우 이러한 앱 자체가 개인 정보 문제입니다. 많은 앱이 광범위한 권한을 요청하고, 기기 데이터를 수집하며, 자체 광고를 제공합니다. iPhone에는 안티바이러스 앱이 필요 없습니다. 위의 표에서 팝업의 특정 원인을 해결해야 합니다.
"누군가가 원격으로 휴대폰을 해킹했다": 완전히 업데이트된 iPhone을 원격으로 공격하려면 국가 수준의 자원이 필요한 제로데이 취약점 체인이 필요합니다(NSO Group의 Pegasus 유형 공격은 대상당 수백만 달러가 소요됩니다). 무작위 팝업 광고는 이것의 증거가 아닙니다. 팝업 광고가 보인다면, 원인은 위의 진단표에 있는 다섯 가지 항목 중 하나입니다. 실제로 국가 수준의 스파이웨어에 표적이 되었다면 팝업 광고를 보지 않을 것입니다. 스파이웨어는 설계상 눈에 띄지 않습니다.
팝업 광고가 재발하지 않도록 예방하는 방법
즉각적인 원인을 해결한 후, 다음 단계를 통해 재발을 방지합니다.
- Safari 콘텐츠 차단기를 설치합니다. 앱스토어에서 1Blocker(무료 티어 사용 가능) 또는 AdGuard for Safari를 설치하세요. 그런 다음 설정 > Safari > 확장 프로그램으로 이동하여 활성화하세요. 이렇게 하면 Safari에서 팝업을 유발하는 악성 광고 스크립트와 리디렉션 체인이 차단됩니다. 증상에 반응하는 것이 아니라 문제를 원천 차단합니다.
- DNS 수준 광고 차단을 설정합니다. DNS 기반 필터는 앱 내부를 포함해 시스템 전체의 광고 및 추적기 도메인을 차단합니다. Casper's Cloak은 iOS에서 VPN 프로파일로 실행되며 휴대폰의 모든 앱에 대한 DNS를 필터링합니다. 광고 SDK가
pagead2.googlesyndication.com에서 전면 광고를 로드하려 할 때 연결이 열리지 않습니다. 이렇게 하면 인앱 광고가 크게 줄고 첫 번째 도약 전에 많은 리디렉션 체인을 차단합니다. - 알림 및 구독 프롬프트에 주의합니다. 웹사이트 알림 프롬프트에는 "허용 안 함"으로, 캘린더 구독 프롬프트에는 "구독 안 함"으로 기본 답변을 설정하세요. 실제로 알림을 원하는 웹사이트에서만 알림을 허용하고, 신뢰하는 출처의 캘린더만 구독하세요.
- 신뢰할 수 없는 출처의 구성 프로파일은 절대 설치하지 마세요. 웹사이트나 앱이 구성 프로파일을 설치하도록 요청하는데 왜 필요한지 정확히 이해하지 못한다면, 설치하지 마세요. 정당한 VPN 및 DNS 앱은 프로파일이 하는 일을 명확히 설명합니다. 수상한 출처는 긴급성이나 오해를 유발하는 언어를 사용합니다.
- 정기적으로 설정을 검토합니다. 몇 달마다 확인하세요: 설정 > Safari > 알림(낯선 사이트 제거), 설정 > 일반 > VPN 및 기기 관리(인식할 수 없는 프로파일 제거), 캘린더 > 캘린더(알 수 없는 구독 삭제). 2분의 간단한 검토로 새로운 문제가 성가셔지기 전에 발견할 수 있습니다.
완전한 해결책: 계층적 접근
iPhone의 팝업 광고에 대한 가장 철저한 보호를 위해 다음 계층을 결합하세요: (1) 웹 기반 광고 및 리디렉션을 처리하는 Safari 콘텐츠 차단기, (2) 인앱 광고 및 추적기 연결을 처리하는 DNS 수준 광고 차단, (3) 알림 스팸 및 악성 프로파일을 방지하는 신중한 권한 관리. 처음 두 가지는 한 번 설정하면 되는 기술적 해결책이고, 세 번째는 자동화되는 행동 변화입니다.
이 조합은 iPhone의 팝업 광고 대부분을 제거합니다. 살아남는 광고는 콘텐츠와 같은 도메인에서 제공되는 퍼스트파티 광고뿐입니다(YouTube 프리롤, Instagram 스폰서 게시물, Google 검색 광고). 이것은 광고 인프라와 콘텐츠 인프라가 호스트명을 공유하기 때문에 구조적으로 차단하기 어렵습니다. 그 외 모든 것, 즉 알림 스팸, 리디렉션, 전면 광고, 악성 광고는 위의 계층적 접근으로 포괄적으로 처리되며 설정에 10분도 걸리지 않습니다.
결론
iPhone의 팝업 광고는 바이러스, 해킹 또는 보안 침해의 증거가 아닙니다. 다섯 가지 구체적이고 식별 가능한 원인 중 하나의 결과입니다: 웹 푸시 알림, Safari 악성 광고 리디렉션, 인앱 전면 광고, 악성 구성 프로파일, 또는 캘린더 구독 스팸. 각각은 특정 진단 단계와 구체적인 해결책이 있습니다. 즉각적인 해결책은 현재 증상을 처리하고, 콘텐츠 차단기와 DNS 수준 광고 차단의 조합이 재발을 방지합니다. 진정한 보안 우려를 제기하는 유일한 원인은 악성 구성 프로파일입니다. 그것을 발견했다면 제거 후 비밀번호를 변경하세요. 그 외 모든 것은 성가시지만 위험하지는 않습니다.