- 개발이 멈춘 팝콘타임 파생판 ‘Time4Popcorn’의 업데이터가 아직 윈도·맥OS·안드로이드 기기에서 돌고 있었다. 이 업데이터는 주인 없는 도메인에 암호화되지 않은 HTTP로 접속하고 있었다.
- 보안업체 아이 시큐리티는 그중 도메인 하나를 직접 등록했다. 이어 업데이터가 스스로 꺼지게 하는 업데이트를 보냈고, 3월까지 200만 건 이상 내려받혔다.
- 안드로이드 기기는 이번 조치에서 빠졌다. 예전에 이 앱을 설치한 적이 있다면 직접 지우는 편이 안전하다.
200만 건 이상. 보안업체 아이 시큐리티가 남이 만든 소프트웨어에 ‘작동을 멈추라’는 업데이트를 밀어 넣었다. 3월까지 그 업데이트가 내려받힌 횟수가 이 정도다. 대상은 2010년대 ‘불법복제판 넷플릭스’로 불린 팝콘타임의 파생판.
남의 프로그램을 원격으로 꺼 버렸으니 말이 나올 수밖에 없는 일이다. 그래도 연구진의 판단은 분명하다. 공격자가 먼저 손을 댔다면 전 세계 기기를 한꺼번에 움직이는 봇넷이 생길 수 있었다는 것이다.
주인 없는 도메인 하나가 수백만 대 봇넷의 열쇠였다
팝콘타임은 영화·TV 프로그램 토렌트를 스트리밍 앱처럼 쉽게 보게 해 준 프로그램이다. 미국영화협회(MPAA)가 2010년대에 가장 싫어한 앱으로 꼽힐 정도로 이름이 났다. 개발은 몇 년 전에 끊겼다.
프로그램까지 같이 사라지지는 않았다. 더버지는 이 프로그램이 지금도 수백만 대 기기에 깔린 채 ‘봇 군단’에 끌려 들어가기만 기다리는 상태라고 짚었다.
아이 시큐리티(Eye Security) 연구진이 들여다본 것은 팝콘타임의 포크(파생 버전)인 ‘Time4Popcorn’의 업데이터다. 세계 곳곳의 윈도·맥OS·안드로이드 기기에서 이 업데이터가 아직 돌고 있었고, 상태는 이랬다.
- 접속 대상: 지금은 운영이 끊긴 웹 도메인
- 통신 방식: 암호화되지 않은 HTTP
- 내장 구성 요소: 오래되고 보안이 취약한 크롬 버전
하나씩 떼어 보면 흔한 결함이다. 세 가지가 한 프로그램에 겹치면서 문제가 커졌다.
아이 시큐리티의 닐스 테우싱크(Niels Teusink)는 이 업데이터로 사실상 어떤 소프트웨어든 전체 권한으로 설치하고 실행할 수 있었다고 설명했다. 그가 든 악용 시나리오는 세 가지다.
- 버려진 도메인 하나를 차지해 업데이트를 받는 기기를 모두 봇넷으로 묶는 방법
- 중간자(MITM) 공격으로 특정 기기만 골라 노리는 방법
- 이 소프트웨어가 깔린 기기를 찾아내 감시에 쓰는 방법
뿌리는 셋 다 같아 보인다. 업데이터가 받은 파일이 어디서 왔는지 제대로 확인하지 못하는 구조다. 암호화되지 않은 HTTP로 주인 없는 주소에 접속하는 한 그 주소를 먼저 차지한 쪽이 기기를 움직이게 된다.
셋 가운데 가장 무거운 건 첫 번째다. 중간자 공격은 기기를 하나씩 노려야 하지만, 도메인은 한 번만 등록하면 업데이트를 받는 기기 전부에 닿는다. 연구진이 실제로 쓴 방법도 이것이었다.
아이 시큐리티, 버려진 도메인 먼저 등록해 업데이터 정지
연구진의 해법은 단순했다. 공격자가 쓸 통로를 먼저 차지하는 것. 버려진 도메인 하나를 직접 등록한 뒤, 업데이터에 스스로 작동을 멈추라는 업데이트를 내려보냈다.
운영체제마다 방식이 달랐다. 연구진은 윈도에서 파일을 지우거나 다른 부분을 건드리지 않았다고 밝혔다.
| 운영체제 | 연구진의 조치 | 비고 |
|---|---|---|
| 윈도 | 서비스 제어 관리자(Service Control Manager)로 업데이트 서비스를 멈추고 비활성화 | 파일 삭제 등 다른 변경 없음 |
| 맥OS | 셸 스크립트로 업데이트 프로세스가 시작되지 못하게 막는 명령 실행 | — |
| 안드로이드 | 조치하지 않음 | 업데이트를 설치하려면 사용자가 먼저 직접 조작해야 함 |
안드로이드가 빠진 이유는 표의 비고 칸에 있다. 사용자가 직접 손을 대야 업데이트가 깔리는 구조여서 원격으로 밀어 넣는 방식이 먹히지 않았다.
배포 도중에는 웃지 못할 일도 있었다. 업데이트 파일이 바이러스토탈(VirusTotal)에 올라가자 보안 프로그램들이 이를 악성코드로 분류해 막아 버렸다. 정작 취약한 업데이터는 멀쩡히 남았다. 연구진은 업데이트를 고쳐서 다시 내보내야 했다.
보안 프로그램만 탓하기도 어렵다. 남의 기기에서 원격으로 코드를 실행하는 파일이니, 겉으로는 악성코드와 구분하기 힘들었을 것이다(해석).
위험에 노출된 기기가 정확히 몇 대였는지는 알 수 없다. 아이 시큐리티는 3월까지 200만 건 이상의 업데이트 다운로드를 내보낸 뒤 배포를 멈췄다. 사용한 도메인은 비영리 웹보안 단체인 섀도서버 재단(Shadowserver Foundation)에 넘겼다.
Time4Popcorn 깔았던 안드로이드폰, 직접 지워야 한다
원문에는 나라별 설치 현황이 없다. 영향을 받은 기기가 전 세계에 흩어져 있었으니 국내에도 예전에 설치한 기기가 남아 있을 수 있다(추측).
이번 조치로 위험이 다 사라진 것도 아니다. 연구진의 업데이트는 업데이터만 멈췄을 뿐 프로그램은 지우지 않았다. 나머지 정리는 사용자가 해야 한다.
- 안드로이드: 비활성화 업데이트를 아예 받지 못했다. 예전에 Time4Popcorn 계열 앱을 설치했다면 앱 목록에서 직접 지우는 편이 안전하다.
- 윈도·맥OS: 업데이트 서비스는 멈췄어도 프로그램 파일은 그대로다. 구형 크롬이 들어 있는 앱이니 쓰지 않는다면 지우는 편이 낫다(해석).
- 기업·공용 PC: 설치한 사람조차 잊은 오래된 프로그램이 사내망에 남아 있을 수 있다. IT 담당자라면 자산 목록에서 개발이 끊긴 소프트웨어를 한 번 훑어볼 만하다(해석).
개발이 멈춰도 이미 깔린 프로그램은 백그라운드에서 바깥 서버로 계속 접속할 수 있다. 이번에 드러난 게 바로 그 점이다. 이 업데이터도 아무 기능 없이 주인 없는 주소에 접속만 이어 가고 있었다.
확인된 것과 아직 불확실한 것
확인된 것
- Time4Popcorn 업데이터는 윈도·맥OS·안드로이드 기기에서 돌면서 버려진 도메인에 암호화되지 않은 HTTP로 접속했고, 구형 크롬을 쓰고 있었다.
- 아이 시큐리티는 도메인 하나를 등록해 업데이터를 비활성화하는 업데이트를 보냈다.
- 바이러스토탈 업로드 뒤 보안 프로그램들이 이 업데이트를 악성코드로 분류해 막았고, 연구진은 업데이트를 고쳐야 했다.
- 3월까지 200만 건 이상의 업데이트 다운로드가 나갔다. 그 뒤 배포는 멈췄고 도메인은 섀도서버 재단으로 넘어갔다.
아직 불확실한 것
- 실제로 위험에 노출됐던 기기 수. 다운로드 건수가 곧 기기 수인지는 원문으로 확인되지 않는다.
- 이 업데이터가 실제 공격에 쓰인 적이 있는지. 원문은 악용 ‘가능성’만 다룬다.
- 조치에서 빠진 안드로이드 기기가 얼마나 남아 있는지.
- 국내를 포함한 나라별 설치 규모.
동의 없는 원격 조치, 연구진은 ‘무대응보다 낫다’고 했다
원문은 이번 조치에 윤리적 우려가 있었다는 사실만 짧게 전하고, 어떤 우려였는지는 풀어 쓰지 않았다. 쟁점은 사용자 동의 없이 남의 기기에서 코드를 실행했다는 점으로 보인다.
연구진도 그 점을 알고 있었다. 그럼에도 유일한 대안은 “아무것도 하지 않는 것”이었다는 게 연구진의 답이다. 업데이트 과정은 원래 아무 기능도 하지 않았고 사용자에게 위험만 만들고 있었다는 설명이다.
조치 범위를 좁게 잡은 것도 이런 비판을 의식한 결과로 보인다(해석).
- 윈도: 파일은 남기고 서비스만 정지
- 배포: 3월에 종료
- 도메인: 비영리 보안 단체 섀도서버 재단에 이관
연구진이 그 통로를 계속 쥐고 있지 않겠다는 뜻으로 읽힌다(해석). 업데이터가 정말 아무 기능도 없었다면, 꺼진다고 사용자가 잃는 것은 없다. ‘무대응보다 낫다’는 주장이 설득력을 갖는 이유다.
근본 문제는 그대로 남아 있다. 개발이 끊긴 소프트웨어의 업데이트 주소가 방치되면, 그 주소를 누가 먼저 차지하느냐에 따라 수많은 기기가 안전할 수도 있고 공격에 넘어갈 수도 있다. 이번엔 보안업체가 먼저였다. 다음에도 그럴 거라는 보장은 없다.
출처: The Verge

