공격자에게 어려운 것은 악성 코드를 짜는 일이 아닙니다. 누군가가 그것을 실행하게 만드는 일입니다. 스트리밍 사이트에서는 그 문제가 맥락으로 해결됩니다. 영상을 재생시키려 애쓰고 있던 방문자는 왜 재생이 안 되는지에 대한 설명을 순순히 받아들이기 때문입니다.
아래의 위장은 거의 전부가 그 하나의 수법을 변주한 것입니다. 그래서 대응책도 말하기는 간단하고 깨기는 어렵습니다. 영상을 재생하는 데 무언가를 설치하거나, 압축을 풀거나, 붙여 넣어야 하는 스트리밍 사이트는 없습니다. 요즘 브라우저는 표준 영상을 자체적으로 디코딩합니다. 그렇지 않다고 말하는 페이지는 거짓말을 하고 있는 것이고, 거짓말의 구체적인 문구는 중요하지 않습니다.
흔한 위장에는 무엇이 있나?
일곱 가지 형태가 돌아다니는 것의 대부분을 설명합니다.
| 위장 | 내세우는 말 | 실제 정체 | 알아채는 단서 |
|---|---|---|---|
| 없는 코덱 | "HD로 보려면 이 코덱 팩을 설치하세요" | 설치 파일. 대개 끼워 넣은 애드웨어나 로더 | 브라우저는 십 년 넘게 H.264를 자체 디코딩해 왔습니다 |
| 플레이어 업데이트 | "플레이어가 오래되었습니다" | 같은 것을, 사이트 자체 UI처럼 꾸민 것 | 웹 페이지에는 업데이트할 플레이어가 없습니다 |
| 브라우저 업데이트 | 사용자 에이전트에 맞춰 브라우저 업데이트 화면을 흉내 낸 페이지 | 실행 파일 | 브라우저는 스스로 업데이트하며 웹사이트에서 받지 않습니다 |
| 가짜 CAPTCHA | "사람인지 확인합니다: Win+R을 누르고 이것을 붙여 넣으세요" | 공격자의 명령을 당신이 직접 실행하는 것 | 사람 확인에 터미널을 쓰라는 시스템은 없습니다 |
| 다운로드 도우미 | "더 빠른 스트리밍을 위해 앱을 받으세요" | 상주 기능이 있는 설치 파일 | 그것 없이도 사이트는 작동합니다 |
| 자막이나 압축 파일 | 영상 옆에 놓인 .srt, .zip, .rar |
그 안에 든 스크립트나 실행 파일 | 확장자와 압축 내용은 설명과 잘 맞지 않습니다 |
| 서명된 설치 파일 | 정식으로 코드 서명된 설치 프로그램 | 서명은 진짜지만 남용되거나 탈취된 인증서 | 유효한 서명은 누가 서명했는지를 증명할 뿐, 안전을 증명하지 않습니다 |
가짜 CAPTCHA 계열은 "붙여 넣고 실행하기"라고도 불리는데, 파일 기반 방어를 통째로 무력화하므로 특별히 눈여겨봐야 합니다. 페이지가 클립보드에 명령어를 넣어 두고, 확인 절차라는 구실로 그것을 실행 창이나 터미널에 붙여 넣으라고 시킵니다. 내려받는 파일이 없으므로 다운로드 평판 검사도, 많은 검사 엔진도 아예 개입하지 못합니다. 인터넷에서 정상적인 무언가가 이런 것을 요구한 적은 한 번도 없습니다.
파일 이름은 어떻게 정체를 숨기나?
대부분의 시스템이 기본적으로 확장자를 숨긴다는 사실을 이용합니다.
| 수법 | 보이는 모습 | 실제 정체 |
|---|---|---|
| 이중 확장자 | video.mp4.exe |
실행 파일. 확장자를 숨겨 두면 video.mp4로 표시됨 |
| 바로 가기 파일 | movie.mkv.lnk |
명령을 실행하는 바로 가기 |
| 미디어로 위장한 스크립트 | episode.mp4.js |
시스템이 실행해 버릴 스크립트 |
| 설치 파일 그 자체 | codec_setup.msi |
이름 그대로 설치 파일. 그 이름이 곧 위장 |
| 오른쪽에서 왼쪽 재정의 | videoexe.mp4 |
보이지 않는 제어 문자로 글자 순서가 뒤집힌 것 |
| 암호가 걸린 압축 파일 | film.zip, 암호는 페이지에 |
풀기 전까지 내용을 검사할 수 없음 |
첫 번째 조치는 설정 변경입니다. Windows 탐색기나 macOS Finder에서 파일 확장자 표시를 켜세요. 비용은 전혀 들지 않고, 이 표의 절반을 영구히 무력화합니다.
암호가 걸린 압축 파일은 의도적인 검사 회피 수단입니다. 페이지 본문에 암호가 적힌 채로 오는 다운로드는 당신의 백신을 우회하라고 요구하는 것이며, 공개 다운로드가 이런 식으로 암호화되어야 할 정당한 이유는 없습니다.
내려받은 파일은 열기 전에 어떻게 확인하나?
유용한 순서대로, 짧은 절차가 있습니다.
| 확인 | 걸러내는 것 |
|---|---|
| 확장자 표시를 켜고 진짜 확장자를 읽는다 | 이중 확장자와 스크립트 파일 |
| 파일 크기를 설명과 대조한다 | 3 MB짜리 "1080p 영화"는 영화가 아닙니다 |
| 여러 엔진을 쓰는 서비스로 검사한다 | 이미 알려진 검체. 갓 나온 것은 자주 통과합니다 |
| 디지털 서명을 살펴본다 | 서명이 없는 설치 파일, 또는 무관한 회사 이름이 적힌 서명 |
| 관리자 권한을 요구하는지 본다 | 미디어 파일에는 권한 상승이 필요 없습니다 |
| SmartScreen이나 Gatekeeper를 끄지 않는다 | 이 경고는 바로 이런 경우를 위해 있습니다 |
이 모든 것 아래에 깔린 원칙은 이렇습니다. 당신이 판단할 것은 그 파일이 안전해 보이는지가 아닙니다. 애초에 실행 파일을 내려받을 이유가 있었는지입니다. 스트리밍 페이지에서 그 답은 "없다"이고, 그 답은 검사 결과와 달리 믿을 만합니다.
이미 무언가를 실행했다면 어떻게 해야 하나?
먼저 계정 정보 탈취를 전제하세요. 요즘 흔한 악성코드는 압도적으로 정보 탈취형이고, 첫 행동은 대개 브라우저 쿠키와 저장된 비밀번호, 세션 토큰을 복사하는 것입니다. 감염된 기기에서 비밀번호를 바꾸는 것이 아무 소용 없는 이유가 그것입니다.
| 단계 | 이유 |
|---|---|
| 1. 네트워크를 끊는다 | 추가 유출과 원격 명령을 멈춥니다 |
| 2. 다른 깨끗한 기기에서 비밀번호를 바꾼다 | 감염된 기기가 입력을 기록하고 있을 수 있습니다 |
| 3. 중요한 계정의 모든 세션을 로그아웃한다 | 탈취된 세션 토큰은 비밀번호를 바꿔도 살아남습니다 |
| 4. 새로 생긴 브라우저 확장과 프로필을 확인한다 | 흔한 상주 수단입니다 |
| 5. 시작 프로그램과 예약 작업을 확인한다 | 또 하나의 흔한 상주 수단입니다 |
| 6. 부팅 가능한 매체로 오프라인 검사를 돌린다 | 활동 중인 감염은 OS 안에서 도는 검사기를 방해할 수 있습니다 |
| 7. 결제 정보나 신원 정보가 저장된 기기라면 시스템을 새로 만든다 | 당신의 권한으로 코드가 실행된 뒤에 확실한 복구는 이것뿐입니다 |
2단계는 순서를 가장 자주 틀리는 항목이고, 3단계는 가장 자주 통째로 건너뛰는 항목입니다. 당신이 무언가를 바꾸기 전에 빠져나간 세션 토큰은, 계정이 그것을 명시적으로 무효화할 때까지 계속 작동합니다.