성인 사이트의 악성 광고는 대개 사이트 주인이 심어 놓은 것이 아닙니다. 여느 상업 웹사이트가 다 쓰는 그 자동 광고 배관을 타고 들어옵니다. 그리고 들어오는 이유는, 그 배관이 광고 안에 무엇이 들었는지 아무도 들여다보지 않은 채 가장 높은 값을 부른 쪽에 자리를 팔기 때문입니다.
그 배관을 이해해야 악성 광고와 평범한 광고를 가려낼 수 있습니다. 아래에 나오는 공격 패턴은 거의 전부 한 가지 발상의 변주입니다. 광고를 동영상 플레이어의 일부처럼, 또는 운영체제의 일부처럼 보이게 만드는 것입니다.
성인 사이트에 악성 광고가 유독 많은 이유는 무엇인가요?
경제 구조가 이 사이트들을 광고 시장의 하단으로 밀어내고, 사기가 사는 곳이 바로 그 하단이기 때문입니다.
주류 광고 네트워크는 대체로 성인 인벤토리를 거부합니다. 그래서 운영자는 더 작은 거래소와 리셀러에게서 사게 되는데, 그곳에서는 노출 한 건이 채워지기까지 여러 중개자를 거칠 수 있습니다. 한 단계를 지날 때마다 소재를 검수하지 않았고 책임을 묻기도 어려운 당사자가 하나씩 늘어납니다.
공격자는 여기에 클로킹을 씁니다. 검수용으로 제출한 소재는 정상적으로 동작하고, 악성 버전은 표적 조건에 맞는 방문자에게만 발동합니다. 특정 국가, 특정 브라우저 버전, 처음 방문한 사람, 근무 시간 외에 들어온 사람 같은 조건입니다. 검수자와 자동 스캐너에게는 깨끗한 버전이 나갑니다. 당신에게 나가는 것은 다른 쪽입니다.
흔한 공격 패턴은 어떤 모습인가요?
몇 가지 반복되는 형태로 모입니다. 개별 사기 수법을 외우는 것보다 그 형태를 익히는 편이 쓸모 있습니다.
| 패턴 | 눈에 보이는 것 | 실제로 노리는 것 |
|---|---|---|
| 가짜 플레이어 오버레이 | 진짜 영상 위에 얹힌 "Play"나 "HD" 버튼 | 다운로드나 새 탭을 여는 클릭 |
| 코덱·플러그인 안내 | "동영상 플레이어가 오래됐습니다. 계속하려면 업데이트하세요." | 설치 파일을 실행하게 만들기 |
| 가짜 CAPTCHA | "로봇이 아님을 증명하려면 허용을 누르세요" | 브라우저 알림 권한 |
| 브라우저 잠금 | 전체 화면 경고, 경보음, "이 번호로 전화하세요" | 사기 콜센터로 거는 전화 |
| 강제 리다이렉트 | 클릭하지도 않았는데 스크롤 도중 페이지가 넘어감 | 사슬의 다음 사기꾼에게 넘겨 파는 트래픽 |
| 팝언더 | 지금 보고 있는 창 뒤에 창이 하나 열림 | 노출 수, 그리고 위의 모든 수법을 다시 시도할 기회 |
| 가짜 시스템 경고 | Windows나 macOS처럼 꾸민 대화 상자 | 실행 파일 다운로드 또는 기술 지원 사칭 사기 |
가짜 CAPTCHA는 따로 짚어 둘 만합니다. 알림 권한을 내주면 그 도메인은 브라우저 창 바깥에서, 시스템 알림처럼 꾸민 메시지를 데스크톱이나 휴대폰으로 무기한 밀어 넣을 수 있게 됩니다. 탭을 닫은 뒤에도 오래도록 계속 먹히는 몇 안 되는 공격입니다.
악성 광고와 평범한 광고는 어떻게 구별하나요?
당신에게 상호작용을 요구하는 그 물건이 실제로 어디에 사는지를 확인하십시오.
- 진짜 동영상 플레이어는 무언가를 설치하라고 하지 않습니다. 요즘 브라우저는 H.264와 VP9을 자체적으로 디코딩합니다. 스트리밍 페이지에 뜨는 "코덱 없음" 안내는 예외 없이 악성입니다.
- 진짜 시스템 대화 상자는 웹 페이지 안에 나타날 수 없습니다. 운영체제 경고는 OS가 그리는 것이지, 브라우저 테두리가 주변에 그대로 보이는 페이지 영역 안에 렌더링되지 않습니다.
- 백신은 브라우저 안에서 돌지 않습니다. 탭 안에 결과를 보여 주는 "검사"는 아무것도 검사하지 않은 것입니다.
- 누르기 전에 목적지를 확인하십시오. 링크에 커서를 올리고 상태 표시줄을 읽어 보십시오. 오버레이 버튼은 대개 아무 상관 없는 도메인을 가리킵니다.
- 진짜 버튼은 자리를 옮기지 않습니다. 페이지를 새로 열 때마다 "Play" 버튼 위치가 튄다면, 그 노출을 낙찰받은 쪽이 끼워 넣고 있는 것입니다.
- 정상적인 것은 카운트다운을 쓰지 않습니다. 조급함은 당신이 확인하지 못하게 만들려고 존재합니다.
이미 클릭했다면 어떻게 해야 하나요?
이 목록을 위에서부터 순서대로 밟으십시오. 앞의 세 가지가 가장 중요합니다.
| 상황 | 즉시 할 일 |
|---|---|
| 페이지가 닫히지 않고 경고를 띄움 | 작업 관리자나 강제 종료로 브라우저를 강제 종료한 뒤, 다시 열 때 세션 복원을 거부 |
| 알림을 허용해 버렸음 | 브라우저 설정의 사이트 권한에서 취소. OS의 알림 목록도 함께 확인 |
| 파일이 다운로드됐음 | 열지 마십시오. 삭제한 뒤 휴지통을 비우십시오 |
| 설치 파일을 실행했음 | 네트워크를 끊고 그 기기를 침해된 것으로 간주하십시오. 아래 악성코드 가이드를 참고하십시오 |
| 전화를 걸었음 | 설치하라고 안내받은 것은 무엇이든 원격 접속 권한을 준 것으로 보십시오. 그 세션은 반드시 끊고 기기를 점검해야 합니다 |
| 카드 정보를 입력했음 | 그 페이지에 적힌 번호가 아니라 카드에 적힌 번호로 카드사에 직접 연락하십시오 |
세션 복원을 거부하는 것이 중요합니다. 브라우저가 친절하게도 문제를 일으킨 탭을 다시 열어 주면, 브라우저 잠금은 강제 종료를 하고도 살아남습니다.
실제로 노출을 줄여 주는 방어책은 무엇인가요?
들인 노력 대비 걷어 내는 양을 기준으로 대략 순서를 매기면 이렇습니다.
| 방어책 | 막아 주는 것 | 한계 |
|---|---|---|
| 브라우저 최신 유지 | 클릭 없이 터지는 드라이브바이 익스플로잇 | 사회공학에는 아무 소용이 없음 |
| 콘텐츠 차단기 | 팝언더를 포함한 서드파티 광고 전달 대부분 | 사이트 자체 도메인에서 나오는 페이로드는 막지 못함 |
| 알림 요청을 전역으로 거부 | 가짜 CAPTCHA 계열 전체 | 정상적인 요청까지 함께 막힘 |
| 서드파티 쿠키 차단 | 표적화에 쓰이는 사이트 간 프로파일링 | 악성코드 대책은 아님 |
| 자동 다운로드 끄기 | 소리 없이 떨어지는 드라이브바이 파일 | 스스로 받은 파일을 열지 않는 것은 여전히 본인 몫 |
| 브라우저 프로필 분리 | 권한과 쿠키를 한 맥락 안에 가둠 | 이미 실행된 코드에는 무력 |
| 관리자 권한이 아닌 계정 사용 | 설치 파일이 시스템 전체에 손댈 수 있는 범위를 제한 | 개인용 컴퓨터에서는 불편함 |
두 가지는 분명히 말해 둘 만합니다. 첫째, 어떤 차단기 설정도 정체 모를 실행 파일을 안전하게 만들어 주지 않습니다. 진짜 피해가 시작되는 지점은 다운로드 단계이고, 어떤 필터링도 그 실수를 저지를 수 있는 여지를 없애 주지는 못합니다. 둘째, 공격적인 광고가 붙어 있다는 사실만으로 그 사이트 운영자가 악의적이라고 말할 수는 없습니다. 대개는 검수하지 않는 거래소에 인벤토리를 팔았다는 뜻일 뿐입니다.