보안

악성코드란 무엇인가, 바이러스, 웜, 트로이 목마, 그 이상의 것 이해하기

Josh Fruhlinger | CSO 2018.08.14
악성코드(Malware)는 바이러스(virus), 웜(worm), 트로이 목마(trojan)와 기타 유해한 컴퓨터 프로그램을 통틀어 일컫는 용어로, 컴퓨팅의 초창기부터 존재했다. 악성코드는 끊임없이 진화하며 해커는 악성코드를 사용해 파괴를 일삼고 민감한 정보를 훔친다. 악성코드와 싸우는 일은 정보보안 전문가의 일상적인 주 업무다.


Credit: Getty Images Bank

악성코드의 정의
악성코드는 악성 소프트웨어(malicious software)의 줄임말이다. 마이크로소프트의 설명에 따르면 "하나의 컴퓨터, 서버 또는 컴퓨터 네트워크에 피해를 입히도록 설계된 모든 소프트웨어"를 통칭한다. 즉, 악성코드는 만드는 데 사용된 특정 기법이나 기술이 아니라 의도된 용도를 기준으로 분류된다.

악성코드의 유형
예를 들어 악성코드와 바이러스의 차이는 무엇이냐는 질문은 요점을 빗나간 것이다. 바이러스는 악성코드의 한 종류다. 따라서 모든 바이러스는 악성코드다(그러나 모든 악성코드가 바이러스는 아니다).

악성코드를 분류하는 방법은 여러 가지인데, 첫 번째는 악성 소프트웨어의 확산 방법에 따른 분류다. 바이러스, 트로이 목마, 웜이라는 용어는 구분되지 않고 혼용되는 경향이 있지만, 시만텍의 설명에 따르면, 각각은 대상 컴퓨터를 감염시키는 방법이 조금씩 다르다.

- 웜은 독립적으로 실행되는 악의적인 소프트웨어로, 스스로를 복제하고 다른 컴퓨터로 확산된다.

- 바이러스는 다른 독립적 프로그램의 코드 내에 스스로를 주입한 다음, 그 프로그램이 악성 행동을 하고 스스로 확산되도록 강제하는 컴퓨터 코드다.

- 트로이 목마는 자가 복제는 하지 못하지만 사용자가 원하는 무언가로 위장해 자신을 활성화하도록 유도하는 방식으로 피해를 입히고 확산된다.


공격자는 컴퓨터에 물리적으로 접근하거나 권한 상승을 사용해 원격 관리자 액세스 권한을 얻는 방법으로 악성코드를 "직접" 컴퓨터에 설치할 수도 있다.

악성코드를 분류하는 또 다른 방법은 컴퓨터를 성공적으로 감염시킨 후 수행하는 행위를 기준으로 하는 방법이다. 악성코드에 사용되는 공격 기법은 상당히 다양하다.

- 스파이웨어(Spyware) : 웹루트 사이버시큐리티(Webroot Cybersecurity)는 스파이웨어를 "의심하지 않는 사용자에게서 몰래 데이터를 수집할 목적으로 사용되는 악성코드"로 정의한다. 기본적으로 스파이웨어는 사용자가 컴퓨터에서 보내고 받는 데이터를 염탐하며 그 목적은 대체로 이 정보를 제 3자에게 보내는 데 있다. 키로거(keylogger)는 사용자의 모든 키 입력을 기록하는 스파이웨어의 한 종류로, 비밀번호를 훔치는 데 사용된다.

- 루트킷(rootkit) : 테크타겟(TechTarget)은 "위협 행위자에게 컴퓨터 또는 다른 시스템에 대한 원격 액세스 권한 또는 통제 권한을 부여하는 프로그램, 또는 더 흔한 경우로 소프트웨어 툴 모음"이라고 정의했다. 루트킷이라는 이름은 대상 시스템의 루트(root) 액세스 권한(유닉스 용어로 하면 관리자 수준 제어)을 탈취해 이를 이용해 존재를 숨기는 특성에서 유래했다.

- 애드웨어(Adware) : 브라우저를 강제로 웹 광고로 보내는 악성코드이며 많은 경우 그 외에도 더욱 악의적인 소프트웨어를 추가로 다운로드한다. 뉴욕타임즈에서 지적한 바와 같이 애드웨어는 게임 또는 브라우저 확장 형태의 매력적인 "무료" 프로그램 속에 숨어 있는 경우가 많다.

- 랜섬웨어(Ransomware) : 하드 드라이브의 파일을 암호화한 다음 해독 키의 대가로 금전(보통 비트코인)을 요구하는 데 사용되는 악성코드의 일종이다. 페트야(Petya) 등 지난 몇 년 사이 악명을 떨친 악성코드가 랜섬웨어다. 피해자는 해독 키가 없으면 파일에 대한 액세스를 회복하기는 수학적으로 불가능하다. 스케어웨어(scareware)는 랜섬웨어의 모방 버전이다. 컴퓨터를 장악했다고 주장하며 몸값을 요구하지만 사실 브라우저 리디렉션 루프와 같은 속임수를 사용해 실제보다 피해 정도를 부풀려 표현하며, 랜섬웨어와 달리 비교적 쉽게 해제할 수 있다.

- 크립토재킹 : 피해자에게서 강제로 비트코인을 받아내는 또 다른 방법이다. 다만 피해자가 모르는 사이에 일이 진행될 수 있다는 점이 차이다. 암호화폐 채굴 악성코드가 컴퓨터를 감염시킨 후 그 컴퓨터의 CPU 사이클을 사용해 공격자를 위해 비트코인을 채굴한다. 채굴 소프트웨어는 운영체제의 백그라운드에서 실행되거나 브라우저 창의 자바스크립트로 실행될 수 있다.

모든 종류의 악성코드에는 감염 수단과 행동 범주가 있다. 예를 들어 워너크라이(WannaCry)는 랜섬웨어 웜이다. 또한 특정 악성코드는 다양한 공격 벡터를 사용하고 다양한 형태를 띨 수 있다. 예를 들어 이모텟(Emotet) 뱅킹 악성코드는 트로이 목마와 웜, 두 가지 형태로 모두 발견됐다.

인터넷 보안 센터(Center for Internet Security)의 2018년 6월 기준 상위 10개 악성코드 공격을 보면 악성코드 유형을 파악할 수 있다. 가장 일반적인 감염 벡터는 사용자를 속여 악성코드, 트로이 목마를 활성화하도록 유도하는 스팸 이메일이다.

이 순위에서 가장 자주 등장하는 악성코드는 워너크라이와 이모텟이다. 그러나 나노코어(NanoCore), 고스트(Gh0st)를 포함해 원격 액세스 트로이 목마(RAT, 트로이 목마와 같은 방법으로 전파되는 루트킷)로 분류되는 악성코드도 상당수 있다. 그 외에 코인마이너(CoinMiner)와 같은 암호화폐 악성코드가 있다.

악성코드를 차단하는 방법
악성코드가 컴퓨터를 감염시키는 주 경로는 스팸과 피싱 이메일이므로 악성코드를 막는 최선의 방법은 이메일 시스템을 단단히 걸어 잠그고 사용자에게 위험 인지 방법을 교육하는 것이다.

이메일에 첨부된 문서를 면밀히 점검하고 잠재적으로 위험한 사용자 행동을 제한하는 것이 좋다. 또한 사용자에게 일반적인 피싱 사기 수법을 알려 합리적으로 대처할 수 있게끔 해야 한다.

기술적인 방지책에는 모든 시스템을 패치하고 업데이트된 상태로 유지하기, 하드웨어 인벤토리를 상시 유지해 보호해야 할 대상을 파악하고 인프라를 대상으로 지속적인 취약점 평가 수행하기 등 여러 가지 단계가 있다. 특히 랜섬웨어 공격에 대비하는 방법 가운데 하나는 항상 파일을 백업해 하드 드라이브가 암호화되더라도 되돌리기 위해 몸값을 지불할 필요가 없도록 하는 것이다.

악성코드 보호
악성코드 보호 제품 범주 중에서 가장 널리 알려진 제품은 안티바이러스 소프트웨어다. 이름에 "바이러스"라는 단어가 들어가지만 대부분의 제품은 모든 형태의 악성코드에 대응한다.

최상급 보안 전문가들 사이에서는 이제 구시대의 유물로 취급되지만 안티바이러스 소프트웨어는 여전히 기본적인 악성코드 방어에서 중추적 역할을 한다. 최근 AV-TEST 테스트 결과에 따르면 현재 가장 뛰어난 안티바이러스 소프트웨어는 카스퍼스키 랩, 시만텍, 트렌드 마이크로의 소프트웨어다.

기업 네트워크의 경우, 엔드포인트 보안 제품으로 악성코드에 대한 심층 방어가 가능하다. 안티바이러스에 흔히 사용되는 시그니처 기반 악성코드 탐지뿐만 아니라 안티 스파이웨어, 개인 방화벽, 애플리케이션 제어, 그 외의 호스트 침입 차단 기능도 제공한다. 가트너가 선정한 우수 제품 목록에는 사일런스(Cylance), 크라우드스트라이크(CrowdStrike), 카본 블랙(Carbon Black)의 제품이 포함된다.

악성코드를 탐지하는 방법
만전을 기해 보호하더라도 시스템이 악성코드에 감염될 가능성은 상존한다. 확실히 확인하는 방법은 무엇일까.

기업 IT 수준까지 가면 네트워크 현황을 파악하고 악성코드 감염을 탐지하는 데 사용할 수 있는 폭넓은 시야를 제공하는 더 고급 툴도 있다. 대부분의 악성코드는 네트워크를 사용해 확산되거나 배후 조종자에게 정보를 보내므로 네트워크 트래픽에는 관리자가 미쳐 잡아내지 못한 악성코드 감염 신호가 포함된다.

이 분야에는 다양한 네트워크 모니터링 툴이 있으며 가격대도 수 달러부터 시작해 수천 달러까지 천차만별이다. 또한 로그 관리 프로그램에서 발전한 SIEM 툴도 있다. SIEM 툴은 인프라에 위치한 다양한 컴퓨터와 애플리케이션의 로그를 분석해 악성코드 감염을 포함한 문제의 신호를 포착한다.

SIEM 시장에는 IBM, HP 엔터프라이즈와 같은 IT 분야 대표업체부터 스플렁크(Splunk), 에일리언 볼트(Alien Vault)와 같은 소규모 전문업체까지 다양한 업체가 포진해 있다.

악성코드를 없애는 방법
악성코드에 감염된 후 악성코드를 어떻게 제거하느냐, 그것이 바로 가장 중요한 질문이다. 악성코드 제거는 까다로운 작업이며 악성코드의 종류에 따라 그 방법도 다양하다. CSO에는 루트킷, 랜섬웨어, 크립토재킹을 제거하거나 공격 후 복구하는 방법에 대한 정보가 있다. 또한 윈도우 레지스트리 감사를 위한 가이드도 제공한다.

시스템 청소를 위한 툴을 찾는다면 테크 레이더(Tech Radar)에서 유용한 무료 제품을 정리한 자료를 볼 수 있다. 여기에는 안티바이러스 분야의 친숙한 이름도 있고 악성코드바이트(Malwarebytes)와 같은 신생업체도 있다.

악성코드의 예시
현재 창궐하고 있는 악성코드 위협에 대해서는 앞서 언급했다. 그러나 악성코드의 역사는 1980년대 애플 II 개인 사용자가 바꿔치기한 감염된 플로피 디스크와 1988년 유닉스 시스템 전반에 확산된 모리스 웜 시절까지 거슬러 올라간다. 그 외의 주요 악성코드 사건을 정리하면 다음과 같다.

- 아이러브유(ILOVEYOU) : 2000년 맹렬한 기세로 확산되면서 150억 달러 이상의 피해를 입힌 웜

- SQL 슬래머(SQL Slammer) : 2003년 확산이 시작되고 수분 이내에 인터넷 트래픽을 멈추게 함

- 콘피커(Conficker) : 윈도우의 패치되지 않은 결함을 틈타 악성코드 주입부터 피싱 이메일에 이르기까지 다양한 공격 벡터를 활용, 궁극적으로는 비밀번호를 풀고 윈도우 디바이스를 봇넷으로 하이재킹하는 웜

- 제우스(Zeus) : 2000년대 후반에 등장한 키로거 트로이 목마로, 뱅킹 정보를 노림

- 크립토로커(CryptoLocker) : 최초로 광범위하게 퍼진 랜섬웨어 공격이며, 크립토로커의 코드는 비슷한 악성코드 프로젝트로 계속 수정되어 사용되는 중

- 스턱스넷(Stuxnet) : 극히 정교한 웜으로, 전 세계 컴퓨터를 감염시켰지만 실질적인 피해는 한 곳, 나탄즈에 소재한 이란 핵시설에만 입혔다. 미국과 이스라엘의 정보 기관이 만든 스턱스넷은 그 임무대로 이란 우라늄 농축 원심분리기를 파괴했다. 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.