Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

워드프레스, 마젠토, 드루팔, 프레스타숍 웹사이트에서 코인하이브(CoinHive) 크립토재킹 멀웨어 제거하는 방법

크립토 마이닝 멀웨어(코인하이브 JavaScript)란? 어떻게 피해를 입게 되나?

코인하이브(CoinHive)는 자바스크립트를 이용해 웹사이트에 설치할 수 있는 암호화폐 채굴 프로그램(크립토 마이닝 멀웨어)을 제공하는 온라인 서비스입니다. 이 자바스크립트 채굴기는 사이트 방문자의 브라우저에서 실행되며 모네로(Monero) 블록체인에서 코인을 채굴합니다. 원래는 웹사이트 광고의 대안으로 홍보되었지만, 실제로는 해커들이 웹사이트를 먼저 감염시킨 후 방문자의 컴퓨터 자원을 몰래 빼앗는 멀웨어로 악용되고 있습니다.

코인하이브로 모네로 코인을 채굴하는 방법은 매우 간단합니다. 웹사이트의 헤더나 푸터에 작은 자바스크립트 스니펫만 삽입하면 됩니다. 방문자가 사이트에 접속하는 순간 코인하이브 자바스크립트가 활성화되어 가용 CPU 자원을 사용하기 시작합니다. 활성 채굴기가 10~20개일 때 월평균 수익은 약 0.3 XMR(약 109달러) 수준입니다. 해커들은 이러한 수익을 극대화하기 위해 취약한 웹사이트에 크립토 마이닝 멀웨어(코인하이브)를 지속적으로 주입해 왔습니다.

코인하이브 자체는 악성 서비스는 아니지만, 해커들이 해킹된 웹사이트를 통해 몰래 코인을 채굴하는 데 광범위하게 악용되어 왔습니다. 그 결과 상당수 멀웨어 스캐너와 보안 기관이 해당 도메인을 블랙리스트에 등재했습니다.

크립토 마이닝 코드가 호스팅되는 신고된 도메인 목록

멀웨어가 사용하는 코인하이브 코드를 호스팅하는 것으로 확인된 제3자 도메인 목록을 정리했습니다. 자바스크립트 파일명은 일반적인 파일 이름과 비슷하게 지어져 합법적인 것처럼 보이도록 의도적으로 위장되어 있으므로, 웹마스터가 쉽게 눈치채지 못하도록 설계되었습니다.

  • ads.locationforexpert[.]com
  • camillesanz[.]com/lib/status.js
  • security.fblaster[.]com
  • fricangrey[.]top/redirect_base/redirect.js
  • alemoney[.]xyz/js/stat.js
  • africangirl[.]top/redirect_base/redirect.js
  • ribinski[.]us/redirect_base/redirect.js
  • aleinvest[.]xyz/js/theme.js
  • babybabybabyoooh[.]net/beta.js
  • www.threadpaints[.]com/js/status.js
  • oneyoungcome[.]com/jqueryui.js
  • wp-cloud[.]ru
  • doubleclick1[.]xyz ~ doubleclick6[.]xyz
  • api[.]l33tsite[.]info
  • ws[.]l33tsite[.]info

크립토 마이닝 멀웨어(코인하이브) 탐지 방법

본인의 웹사이트에서 허가 없이 크립토 마이닝 스크립트가 실행되고 있다는 사실을 발견했다면, 사이트가 해킹당했거나 감염되었을 가능성이 매우 높습니다. 아래 단계를 따라 해킹 여부를 확인해 보세요.

  1. 웹 브라우저에서 사이트를 연 후 "페이지 소스 보기(View Source)" 옵션을 선택합니다.
  2. 페이지 소스에서 수상한 자바스크립트 코드를 찾아봅니다.
    1. 위에 나열된 신고된 도메인 여부
    2. 인식할 수 없는 도메인 또는 파일명
    3. 코인하이브 초기화 스크립트 존재 여부
워드프레스, 마젠토, 드루팔, 프레스타숍 웹사이트에서 코인하이브(CoinHive) 크립토재킹 멀웨어 제거하는 방법

또한 서버의 핵심 웹사이트 파일 안에 멀웨어 코드가 숨어 있는지 확인해야 합니다. 아스트라(Astra) 고객이라면 대시보드에서 멀웨어 스캔을 바로 실행하면 됩니다. 아니라면 다음 단계를 직접 수행해 보세요.

  1. SSH 명령어로 서버에서 최근 수정된 파일을 확인합니다.
    find /path-of-www -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r
  2. 다음 SSH 명령어로 흔히 사용되는 멀웨어 문자열을 검색합니다.
    find /var/www -name "*.php" -exec grep -l "eval(" {} \;
    굵게 표시된 문자열을 아래 목록의 값으로 바꿔가며 명령어를 반복 실행하세요.
    1. echo(gzinflate(base64_decode
    2. coinhive (크립토재킹 코드)
    3. locationforexpert
    4. base64_decode
    5. gzinflate(base64_decode
    6. eval(base64_decode
  3. 검색에서 걸린 파일들을 하나씩 열어 내용을 검토합니다.

워드프레스(WordPress)에서 코인하이브 멀웨어 제거하기

실제 사례를 보면 워드프레스 코어 파일이 수정되어 멀웨어 코드가 삽입된 경우가 많았습니다. 또한 상당수 사이트에서 테마 파일까지 덮어써져 자바스크립트 채굴 코드가 들어가 있는 것이 발견되었습니다. 특히 이 멀웨어는 요청의 사용자 에이전트(user-agent)를 확인해 Google, Bing, Yahoo 등 검색 엔진 봇이 아닌 방문자에게만 악성 JS 코드를 노출하도록 설계되어 있어 탐지가 더욱 어렵습니다.

관련 가이드 – 워드프레스 멀웨어 제거

워드프레스, 마젠토, 드루팔, 프레스타숍 웹사이트에서 코인하이브(CoinHive) 크립토재킹 멀웨어 제거하는 방법

아래 파일들을 확인하고 원본과 비교하여 변조 여부를 점검하세요.

  • index.php
  • wp-admin/admin-header.php
  • wp-includes/general-template.php
  • wp-includes/default-filters.php
  • wp-includes/manifest.php
  • 테마 폴더 내 header.php에 알 수 없는 코드가 있는지 확인
  • functions.php

자주 해킹당하는 워드프레스 파일 목록과 복구 방법도 함께 참고하시길 권장합니다.

마젠토(Magento)에서 코인하이브 멀웨어 제거하기

마젠토를 사용 중이라면 데이터베이스 안에서 크립토 마이닝 멀웨어를 찾아야 합니다. phpMyAdmin 같은 도구로 'core_config_data' 테이블을 연 뒤 design/head/includes 값을 확인하세요. <script> 태그로 포함된 자바스크립트 파일이 있다면 모두 제거합니다.

또한 푸터의 저작권(Copyright) 문구에 추가 악성 코드가 삽입되지 않았는지 확인하세요. System → Configuration → Design → Footer → Copyright 경로로 이동해 내용을 점검합니다.

악성 코드 제거 후에는 반드시 마젠토 캐시를 모두 삭제해야 한다는 점도 잊지 마세요.

늘어나는 온라인 취약점으로 인해 사이트 안전이 걱정되신가요? 아스트라의 보안 솔루션은 크립토 마이닝 해킹을 탐지하고 다양한 온라인 위협으로부터 사이트를 보호해 줍니다.

오픈카트(OpenCart)에서 코인하이브 멀웨어 제거하기

오픈카트에서 자주 감염되는 파일은 아래와 같습니다. 정리 절차는 워드프레스와 유사하며, 해당 파일들을 오픈카트 원본 코드와 비교해 무결성을 검증하면 됩니다.

  • index.php
  • catalog/view/theme/default/template/common/header.tpl
  • catalog/view/theme/default/template/common/header.twig

드루팔(Drupal)에서 코인하이브 멀웨어 제거하기

드루팔 사이트라면 각 모듈의 .js 파일을 집중적으로 살펴보세요. 실제로 구글 애널리틱스(Google Analytics) 모듈에서 채굴 코드가 발견된 사례가 있었습니다.

  • sites/all/modules/google_analytics/googleanalytics.js

이 파일에는 구글 애널리틱스 코드 바로 다음 줄에 코인하이브 코드가 삽입되어 있었고, 이를 통해 방문자의 브라우저에서 코인 채굴이 시작되도록 동작했습니다.

데이터베이스에 숨어 있는 코인하이브 멀웨어

해커들은 악성 코인하이브 채굴 코드를 웹사이트 데이터베이스에 직접 주입하기도 합니다. 아래는 실제 데이터베이스에 삽입된 코드의 스크린샷입니다.

워드프레스, 마젠토, 드루팔, 프레스타숍 웹사이트에서 코인하이브(CoinHive) 크립토재킹 멀웨어 제거하는 방법

크립토재킹 멀웨어(코인하이브) 해킹 예방 방법

  • 정기적인 파일 무결성 모니터링: 아스트라 같은 도구를 활용해 서버 파일 변동 여부와 변경 시점을 상시 확인하세요. 해커는 서버 파일을 수정해 웹사이트 코어 파일에 멀웨어와 바이러스를 심곤 하는데, 이런 코드는 PHP, Python 등 서버 측에서 실행될 수도 있고, 자바스크립트처럼 방문자의 브라우저에서 실행될 수도 있습니다.
  • 신뢰할 수 있는 출처와 CDN의 자바스크립트만 포함: JS 파일을 사이트에 추가하기 전에는 반드시 출처를 검증하세요. 자바스크립트는 매우 강력한 도구인 만큼 악용될 경우 피해도 큽니다.
  • 콘텐츠 보안 정책(CSP) 설정: CSP는 XSS(교차 사이트 스크립팅), 클릭재킹 등 신뢰할 수 있는 페이지에서 악성 콘텐츠가 실행되도록 하는 코드 주입 공격을 차단하는 컴퓨터 보안 표준입니다. 구글에서 제공하는 CSP 기초 가이드와 설정 방법을 참고해 적용해 보세요.
  • CMS 정기 업데이트: 보안 패치와 업데이트는 대개 새 버전 CMS와 함께 배포됩니다. 새 버전 출시 여부를 주기적으로 확인하고 업그레이드하는 습관이 필수적입니다.
  • 벤더가 배포하는 모든 보안 패치 설치: 거의 모든 CMS는 치명적 취약점이 보고될 때마다 보안 패치를 릴리스합니다. 보안 메일링 리스트나 RSS 피드를 구독해 소프트웨어를 항상 최신 상태로 유지하세요.

맺음말

코인하이브 자체는 악성 서비스가 아니지만, 이더리움이나 라이트코인 같은 암호화폐를 몰래 채굴하는 데 해커들에게 널리 악용되어 왔습니다. 이러한 무단 사용을 막기 위해 코인하이브는 사이트 방문자의 명시적 동의를 받아야 채굴이 시작되는 'AuthedMine' 버전의 자바스크립트 라이브러리를 출시했습니다. 그러나 구버전은 여전히 유통되고 있어, 해커들이 방심한 방문자와 해킹된 사이트 운영자의 컴퓨터 자원을 계속 빼앗을 수 있는 상황입니다.

온라인 비즈니스 운영자에게 웹사이트는 사업의 중심축입니다. 비즈니스가 원활하게 돌아가려면 지속적인 보안 모니터링이 필요합니다. 웹사이트를 안전하고 멀웨어 없이 유지하는 여정에 아스트라가 함께하겠습니다.

또한 RawGit CDN이 크립토루트(CryptoLoot) 채굴자들에게 악용된 사례를 다룬 블로그 글도 확인해 보세요.

아스트라(Astra)가 코인하이브와 각종 멀웨어 공격으로부터 보호하는 방법

아스트라에는 매일 수건의 크립토 멀웨어 문제를 해결하고 재감염을 차단하는 보안 전문가 팀이 있습니다. 강력한 웹 애플리케이션 방화벽(WAF)이 멀웨어, XSS, SQL 인젝션 등 80여 가지 위협으로부터 웹사이트를 실시간으로 보호합니다. 사이트로 들어오는 모든 요청은 보안 엔진을 통해 검사되며, 정상 요청만 통과됩니다.