보안

트로이목마의 의미와 동작 방법

Josh Fruhlinger  | CSO 2019.06.24
트로이목마(Trojan horse)는 사용자가 원하는 무언가로 변장해 시스템 방어망을 뚫고 들어가는 악성코드의 한 종류다.

트로이목마의 목적은 다른 형태의 악성코드와 마찬가지로 컴퓨터를 장악하거나 손상을 가하는 데 있다. 트로이목마라는 명칭도 컴퓨터를 감염시키는 방식에서 유래됐다. 즉, 사용자가 원할 만한 무언가로 변장해 사용자 스스로 방어망 안쪽으로 가지고 들어오도록 유도한다.
 
ⓒ Getty Images Bank 

트로이 전쟁 이야기에서 그리스 군은 트로이의 성벽을 뚫지 못하자 나무로 만든 커다른 말 안에 병력을 숨긴 다음 이 말을 트로이 도시 성문 바깥에 뒀다. 트로이 군은 이 나무 말이 신의 선물이라고 생각해 도시 안으로 가지고 들어왔고, 그 안에 숨은 그리스 병사들은 밤을 틈타 오디세우스의 지휘 아래에 도시를 파괴하고 사람들을 학살했다. 사이버 공격자도 오디세우스와 마찬가지로 탐스러운 미끼를 던져 놓고 사용자가 이 미끼를 물어 네트워크 내부로 악성코드를 가지고 들어가기를 기다린다.

선물을 들고 있는 그리스인을 조심하라는 말이 있듯이 선물을 든 온라인의 낯선 사람 역시 조심해야 한다.


트로이목마와 바이러스

트로이목마는 바이러스일까. "트로이목마 바이러스"라는 말을 종종 볼 수 있지만 엄격히 말하면 정확하지 않은 표현이다. 트로이목마와 바이러스는 서로 다른 방식으로 컴퓨터를 감염시키는 서로 다른 유형의 악성코드를 가리킨다(악성코드 유형에 대한 본지의 기사를 참조하라). 

트로이목마 악성코드는 트로이 전쟁사의 트로이목마와 마찬가지로 안에 악의적인 내용물을 숨긴 채 무해한 무언가로 변장해 사용자가 안으로 가지고 들어가게끔 유도한다. 반면 바이러스는 생물학적 의미의 바이러스와 마찬가지로 숙주 프로그램의 코드 안에 침입한 다음, 이 숙주를 사용해 스스로를 퍼뜨리고 복제한다. 이 과정에서 사용자의 개입은 필요 없다(웜은 또 다른 유형의 악성코드로, 숙주 애플리케이션 없이 복제, 확산되는 프로그램이다).

정확하게 알기 위해서는 이와 같은 차이점의 구분이 중요하다. 본지는 이 기사는 물론 다른 기사에서도 이 세 가지 용어를 정확히 구분해 사용하고자 한다. 많은 사람이 바이러스와 악성코드를 동의어로 사용하므로 트로이 바이러스라는 용어도 드물지 않게 접할 수 있다. 이 경우 대부분은 바이러스가 아닌 트로이목마를 의미한다.


트로이목마의 감염 경로

지금까지는 트로이목마의 개념에 대해 설명했다. 그렇다면 트로이목마는 구체적으로 어떻게 움직일까. 공격자는 어떤 방법으로 사용자를 유도해 악의적인 코드를 다운로드하도록 할까. 맬웨어바이츠(Malwarebytes)에 따르면, 고전적인 방법은 웹사이트에서 악성코드가 포함된 무료 게임이나 화면보호기를 내세워 사용자를 유혹하는 것이다. 

대부분의 사람은 자신은 그런 수법에 걸려들 리가 없다고 생각하지만 정밀한 트로이목마 사이트는 유명한 회사의 웹사이트를 가장해 방문자가 원래의 정체를 모른 채 뭔가를 다운로드하도록 유도한다. 예를 들어 x86 칩 내의 스펙터(Spectre)와 멜트다운(Meltdown) 취약점이 공개되면서 모두가 충격에 빠졌을 당시 독일 정부의 공식 사이버보안 부처를 거의 똑같이 가장한 한 웹사이트가 등장해 스펙터/멜트다운 패치 다운로드 링크를 제공했다. 이 "패치"는 사실 "스모크 로더(Smoke Loader)"라는 트로이목마였다.

일단 다운로드된 트로이목마는 관리자 권한을 요청하는 경우가 많다. 정상적인 프로그램도 관리자 권한을 요청하는 경우가 빈번하므로 많은 사용자는 별 고민 없이 "허용"을 클릭해 자신의 컴퓨터를 공격자에게 넘겨주게 된다.

트로이목마가 확산되는 또 다른 일반적인 방법은 피싱(phishing)이다. 피싱은 다른 누군가를 가장해 이메일을 보낸다. 이런 이메일에는 악성코드, 즉 트로이목마가 첨부된 경우가 많으며 이메일은 이 첨부 파일을 다운로드해서 열어야 한다고 설득한다. 피싱 사기 공격의 정밀도는 천차만별이다. 낮은 수준에서는 예를 들어 복권에 당첨됐으니 첨부 파일을 열어보라는 식의 대량 스팸 메일이 있는가 하면, 높은 수준에서는 공격할 가치가 높은 사람의 특정 컴퓨터에 접근하기 위해 그 개인에게 맞춤 작성된 이메일이 있다.

이런 피싱 이메일에서 악성코드는 일반적으로 첨부 파일 내에 존재한다. 그런데 출처를 알 수 없는 실행 파일을 다운로드하거나 실행하면 안 된다는 점은 많은 사람이 이미 귀에 못이 박히도록 들어 알고 있으므로 트로이목마도 다른 방법을 찾았다. 마이크로소프트 오피스 또는 다양한 PDF 리더에 사용되는 매크로 스크립팅 언어의 결함을 이용하는 방법이다. 스택익스체인지(StackExchange)에는 많이 사용되는 트로이목마가 겉으로는 무해해 보이는 PDF 내에 실행코드를 숨기는 방법에 대해 토론하는 흥미로운 스레드가 있다.

이와 같은 방법으로 전파되는 실제 트로이목마 중에서 이모텟(Emotet)이 있다. 이모텟은 악성 내장 매크로가 포함된 워드와 PDF 파일을 통해 처음 전파됐고 흔히 “your invoice”나 “payment details”와 같은 문구를 포함했다. 이 매크로가 실행되면 추가 코드가 다운로드된 다음 사용자 컴퓨터를 장악해 은행 계좌 정보를 검색한다.

이번 기사에서 다루는 내용은 대부분 모바일 디바이스보다는 컴퓨터와 관련되는데, 컴퓨터는 비교적 잘 보호되고 악성코드에 당할 위험도 상대적으로 적다. 그러나 모바일 트로이목마도 있으며 일반적으로 비공식, 또는 해적 앱 스토어를 통해 전파된다.


트로이목마의 유형

트로이목마는 일단 다운로드되어 컴퓨터에 설치되면 여러 가지 방법으로 온갖 종류의 피해를 입힐 수 있다. 시만텍은 다양한 트로이목마 유형을 목록으로 정리해 제공한다. 트로이목마는 방법과 목적, 두 가지를 기준으로 분류할 수 있다.

- 침입 방법에 따른 분류(컴퓨터를 공격하는 방식)
백도어 트로이목마(Backdoor Trojans)는 컴퓨터의 방어망에 해커가 침투할 수 있는 구멍을 뚫는다. 다운로더 트로이목마(Downloader Trojans)는 해커 사이트에서 더 악의적인 코드를 다운로드해 컴퓨터에 대한 장악력을 더 확대한다. 루트킷 트로이목마(Rootkit Trojans)는 다른 공격자가 이용할 수 있는 숨겨진 해킹 툴킷을 설치한다.

- 침입 목적에 따른 분류(설치된 후 하는 행동)
메일파인더(Mailfinders)는 사용자의 주소록을 훑어 스팸에 이용할 이메일 주소를 확보한다. DDoS 트로이목마(DDoS Trojans)는 컴퓨터를 탈취해 좀비화해서 다른 공격 목표에 대한 DDoS 공격에 이용한다. 뱅킹 트로이목마(Banking Trojans)는 금융 로그인 정보를 훔친다. 랜섬웨어 트로이목마(Ransomware Trojans)는 파일을 암호화한 다음 복원해주는 대가로 비트코인 몸값을 요구한다.

하나의 트로이목마가 두 가지 이상의 범주에 해당되기도 한다. 앞서 언급한 이모텟은 다운로드 트로이목마(처음 실행된 워드 또는 PDF 매크로가 더 많은 악성 프로그램을 다운로드하므로)인 동시에 뱅킹 트로이목마이기도 하다(자리를 잡은 후에는 은행 로그인 정보를 탐색한다).

한 가지 더 짚고 넘어갈 점은 서두에 말한 트로이목마, 바이러스, 웜의 구분은 대부분 컴퓨터를 감염시키는 방법을 기준으로 한다는 것이다. 일단 첫 침해가 이뤄지면 다양한 범주의 많은 악성코드 프로그램이 서로 비슷한 방식으로 실행된다. 예를 들어 페트야(Petya) 랜섬웨어 악성코드는 트로이목마지만 이와 비슷한 낫페트야(NotPetya) 랜섬웨어는 바이러스다.


트로이목마 악성코드를 제거하는 방법

컴퓨터에 설치된 트로이목마를 제거하는 절차는 다른 종류의 악성코드를 제거하는 과정과 비슷하지만 쉽지는 않다. 본지는 루트킷, 랜섬웨어, 크립토재킹을 제거하거나 복구하는 방법에 관한 정보를 제공한다.  

시스템 정리를 위한 툴을 찾는다면 테크 레이더(Tech Radar)에서 정리한 무료 툴 모음을 참고하면 된다. 이 모음에는 안티바이러스 업계에서 잘 알려진 친숙한 이름도 있고 멜웨어바이츠와 같은 신생 업체도 있다.


트로이목마의 시초  

최초의 트로이목마는 애니멀(ANIMAL)로 불린 컴퓨터 프로그램이라는 것이 중론이다. 애니멀은 유니박(Univac) 컴퓨터용으로 1974년에 존 워커가 만들었으며 "20개의 질문"을 통해 사용자가 좋아하는 동물을 알아맞히는 프로그램이다. 실행 과정에서 영리한 머신러닝 기법을 사용해 질문을 개선한다. 

워커에 따르면, 애니멀이 유니박 사용자들 사이에서 인기를 끌면서 복사본을 요청하는 사람이 늘어나자 컴퓨터 네트워킹이 흔치 않았던 당시 워커는 복사본 요청에 응대하는데 많은 시간을 소비하게 됐다. 결국 워커는 퍼베이드(PERVADE)라는 서브루틴을 만들었다. 퍼베이드는 사용자가 애니멀의 질문에 답하는 사이 사용자가 액세스할 수 있는 아무 디렉토리나 찾아 그 디렉토리에 애니멀의 복사본을 저장했다. 

사실 이런 디렉토리의 상당수는 여러 사무실에서 공유하는 릴 방식의 테이프에 위치했으므로 트로이목마, 즉 퍼베이드는 이 경로를 타고 전파됐다. 워커는 애니멀이 “선량한 프로그램”이며 단순히 스스로를 여기저기 복사했을 뿐 아무런 피해도 입히지 않았다고 주장한다. 덕분에 누가 프로그램을 요청하면 ‘이미 당신 시스템에 애니멀이 있을 것’이라고 알려주는 것으로 이야기를 끝낼 수 있었다. 또한 워커는 헌터(HUNTER)라는 또 다른 프로그램이 애니멀 복사본을 찾아서 제거하기 위해 작성됐다는 이야기는 근거없는 소문일 뿐이라고 강조했다.


이모텟과 페트야, 그리고 기타 트로이목마 

물론 현대의 트로이목마는 더 악의적이다. 가장 넓게 확산되고 가장 큰 피해를 입힌 두 가지 트로이목마는 이모텟과 페트야지만 다른 사례도 있다.

- 스톰 웜(Storm Worm)은 이름과 달리 트로이목마로, 2000년대 초반 자극적인 제목의 이메일을 통해 빠르게 확산됐다.
- 제우스(Zeus)는 2010년 초반에 확산된 트로이목마이며 은행 로그인 정보를 훔치는 키로거를 설치했다.
- 락니(Rakhni)는 2013년부터 퍼지기 시작한 트로이목마이며 지금은 하드 드라이브를 탐색해서 사용자의 CPU 사이클을 사용해 비트코인을 마이닝하는 트림토재킹 프로그램과 랜섬웨어 중에서 무엇을 설치할 지를 결정한다.

슬프지만 매일 새로운 트로이목마 악성코드가 만들어지므로 보안 뉴스를 수시로 확인해야 한다. editor@itworld.co.kr 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.