크립토재킹(Cryptojacking)은 암호화폐(Cryptocurrency)와 하이재킹(Hijacking)의 합성어로, 다른 사람의 컴퓨터 리소스를 무단으로 사용해 암호화폐를 채굴하는 행위를 말한다. 사이버 범죄자들은 악성 링크가 포함된 스팸 이메일을 보내 감염 시키는데, 피해자의 컴퓨터에 크립토마이닝 Javascript 코드를 로드하는 웹사이트 링크를 클릭하도록 유도한다. 이러한 방식으로 사용자 몰래 설치하는 암호화폐 채굴 악성코드가 빠르게 증가하고 있으며, 크립토재킹 공격을 받은 기업은 네트워크가 중단되거나 클라우드 요금 폭탄을 맞을 수도 있다.
특히 브라우저 마이닝(Browser mining) Javascript 기능을 이용하면 단 두 세 줄의 Javascript 코드 삽입 만으로 손쉽게 암호화폐 채굴 악성코드에 감염 시킬 수 있다는 문제가 있다. 그 중 해커들이 즐겨 사용하는 것으로는 코인하이브(CoinHive)와 딥마이너(DeepMiner) 가 있다. Criminal IP Team이 살펴본 결과, 이 두 가지 크립토재킹은 예전에 비해서 많이 줄어들긴 했지만 여전히 많은 PC가 감염되어 있다는 것을 알 수 있었다.
Criminal IP Asset Search에서 코인하이브(CoinHive) Miner Bot 검색하기
Criminal IP의 Asset Search에서 “코인하이브(CoinHive)”를 검색하면 14,590대의 서버가 검색 된다. 검색된 IP주소는 모두 코인하이브(CoinHive)에 감염된 서버로 예상할 수 있다. 코인하이브(CoinHive)는 주로 모네로(XMR)를 채굴하는데, 검색된 결과를 보면 WordPress, Magento, Drupal 등 다양한 웹 어플리케이션들이 이 악성코드에 감염되어 채굴에 악용되고 있음을 알 수 있다.
감염된 웹사이트에 방문자가 접속하면 코인하이브(CoinHive) JavaScript가 활성화 되고, 사용 가능한 CPU 성능을 활용하여 코인 채굴을 시작하게 된다. 이러한 방식으로 10-20명의 Active Miner가 있는 경우 평균적으로 약 0.3 XMR(~$109)의 월 수익을 내는 것으로 알려져 있다.
코인하이브(CoinHive) Miner를 검색하는 주요 키워드는 아래와 같다.

“CoinHive” 키워드로 검색한 결과, CoinHive Miner Bot이 삽입된 사이트의 IP 주소가 보여진다.

CoinHive Miner Bot이 삽입된 국내 사이트 화면
아래 이미지는 코인하이브(CoinHive) 서버에 접근하는 Javascript 코드 내용이다.
코인하이브(CoinHive) JS 라이브러리 파일명은 기본적으로 “coinhive.min.js” 이지만, 가끔 JS 라이브러리 이름을 변경해서 사용하기 때문에 Criminal IP 로 검색할 때는 “CoinHive.Anonymous” 문자열 존재 여부로 감염을 판단하는 것이 정확하다.

CoinHive Miner를 작동시키는 Javascript 코드
구글 검색에서도 코인하이브(CoinHive) 마이닝 풀 접속 도메인 주소를 찾을 수 있다. 참고로 현재 해당 사이트는 접속 되지 않는 상태다.
Criminal IP 로 딥마이너(DeepMiner) Bot 검색하기
또 다른 인기 있는 크립토마이너로는 딥마이너(DeepMiner)가 있다. 딥마이너(DeepMiner) 역시 XMR(Monero)나 ETN(Electroneum) 암호화폐 채굴을 위한 오픈 소스 JavaScript 채굴봇으로, Criminal IP 의 Asset Search 에서 검색하면 대략 50개 IP 주소가 검색된다. 검색 키워드는 CoinHive와 유사한 형태이며, 아래와 같다.

“deepMiner.Anonymous” 키워드로 검색한 결과

국내 웹사이트에 설치되어 있는 DeepMiner 봇
딥마이너(DeepMiner) Javascript 소스코드는 특이하게 Javascript 라이브러리 이름이 ‘jqueryeasyui.js’ 로 jQuery 라이브러리 명과 유사하다. 이는 혼동을 유발해 일반인들이 탐지하기 어렵게 한다.

DeepMiner Bot을 작동시키는 Javascritpt 소스코드
Criminal IP 검색 필터로 크립토-루트(Crypto-Loot) Bot 찾기
크립토-루트(Crypto-Loot)는 코인하이브(CoinHive)의 경쟁 채굴 봇으로 알려져 있다. Asset Search에 “CRLT.Anonymous” 키워드로 검색하면 대략 1,209개의 결과가 나오지만 서버 코드가 403 금지인 경우가 많다.

“CRLT.Anonymous” 키워드 검색 결과
403 코드인 경우는 굳이 살펴볼 필요가 없기 때문에, 서버 코드가 ‘200 OK’ 인 경우만 출력하도록 검색하면 실제 감염 상태인 서버를 확인할 수 있다. 24 대의 서버가 검색되고 있다.

서버 응답코드 200 OK Crypto-Loot 마이너만 검색한 결과

CryptoLoot Miner Bot을 작동시키는 Javascritpt 소스코드
Criminal IP 검색 필터로 코인아이엠피(CoinIMP) Bot 찾기
코인아이엠피(CoinIMP) 역시 브라우저 기반의 가상화폐 마이닝 스크립트다. 사이버 범죄자들이 취약한 드루팔(Drupal) 웹사이트의 index.php 파일에 감염 시키면, 방문자들이 메인 페이지를 브라우징할 때 마이닝 스크립트가 실행하도록 되어있다. Criminal IP에 검색하면 389개의 사이트가 검색된다.

CoinIMP BotDeepMiner Bot을 작동시키는 Javascritpt 소스코드
CoinIMP 채굴봇을 대한민국 국가 필터로 검색해 보니, 상대적으로 적은 1개 IP 주소만 검색되었다.

CoinIMP Miner에 감염된 국내 사이트
CoinIMP Miner는 Javascript를 로드시키는 JS 파일이름이 일정하지 않고 매번 랜덤한 문자열을 넣기 때문에 단순 파일명 만으로는 탐지가 힘들다는 특징이 있다. CoinIMP의 또 다른 특징으로는 타 크립토재킹과 달리 경우에 따라 Victim PC의 CPU 자원을 최대 30% 소모 시킨다는 점이 있다.

CoinIMP Miner Bot을 작동시키는 Javascritp 소스코드

CoinIMP Miner를 로드시키는 JS 파일명, 랜덤하게 생성되어 불규칙적인 형태이다.
최근 AWS 클라우드 환경에서 CryptoMiner가 설치되는 일명 “데노니아(Denonia)” 멀웨어 사례가 해외 보안 업체에 의해 보고된 바가 있다. 아래 이미지는 데노니아(Denonia) 감염 사례인 지는 확실하지 않지만, 해커로 추정되는 공격자가 남긴 메시지를 Criminal IP에 검색한 결과이다.

AWS ECS 컨테이너에 크립토마이너가 설치된 사례
AWS Lambda 기능을 통해서 Amazon ECS(Elastic Container Service) 컨테이너에 Coin Miner를 설치하여 감염 시킬 수도 있다. 참고로 AWS Lambda는 AWS에서 제공하는 서버리스 컴퓨팅 플랫폼으로, 서버를 사용하지 않고도 어플리케이션이나 함수를 실행시킬 수 있다.

AWS 람다(Lambda)를 이용해 ECS 컨테이너에 Miner를 설치한 화면
데이처 출처 : Criminal IP
[…] 크립토재킹 탐지 : 암호화폐 채굴 악성코드에 감염된 어플리케이션 […]