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

OpenCart 해킹? 단계별 OpenCart 맬웨어 제거 완벽 가이드

혹시 지금 OpenCart 스토어가 해킹을 당했거나, 해킹 복구에 어려움을 겪고 계신가요? 해킹당한 OpenCart 스토어를 정리하고자 이 글을 찾아오셨다면, 올바른 곳에 오셨습니다.

이 글에서는 OpenCart 해킹 사례를 자세히 살펴보고, 흔히 나타나는 해킹 증상과 그 원인을 짚어본 뒤, 실제로 효과가 검증된 OpenCart 해킹 제거 절차를 단계별로 안내해 드립니다.

유의사항: 이 글에서 소개하는 작업은 기본적인 기술 지식을 갖춘 분에게 적합합니다. 작업에 상당한 시간이 걸릴 수 있고 번거롭게 느껴질 수 있으므로, 스토어의 민감한 백엔드 환경을 다뤄본 경험이 없다면 전문가의 도움을 받는 것이 좋습니다. 실제로 어느 정도 기술에 익숙한 사용자라 하더라도 맬웨어를 완벽하게 제거하는 일은 말처럼 쉽지 않은 작업입니다.

전문가의 맬웨어 제거 서비스를 활용하면 시간과 노력을 절약할 수 있을 뿐만 아니라, 사고 대응 시간도 크게 단축됩니다. 피해를 신속하게 통제하고 복구하는 것은 해킹당한 웹사이트, 특히 전자상거래 사이트에서 무엇보다 중요한 요소입니다.

OpenCart 해킹 주요 증상

OpenCart 스토어가 해킹되면 여러 가지 징후가 나타납니다. 대표적인 증상은 다음과 같습니다.

1. 비인가 위치에서의 다중 로그인

서로 다른 지역에서 관리자 포털로 로그인이 반복된다면 OpenCart가 해킹되었을 가능성이 높습니다. 로그인 기록과 접속 시간, 마지막 접속 IP 주소를 반드시 확인하세요.

2. 생성하지 않은 관리자 계정 존재

대시보드에는 본인 또는 협업하는 담당자 외에 관리자 계정이 없어야 합니다. 그런데 열어보지 않은 관리자 계정이 여러 개 보인다면 명백한 해킹 신호입니다.

3. 결제 정보 유출

가장 심각한 경고 신호입니다. 고객들로부터 결제 카드 정보가 유출되었다는 불만이 들어오기 시작했다면 즉시 대응에 나서야 합니다. 이는 웹사이트가 부정 거래에 악용되고 있다는 의미입니다.

4. 무료 주문 발생

악성 코드가 침투한 OpenCart는 결제되지 않은 주문을 생성할 수 있습니다. 결과적으로 배송은 진행되었는데 매출은 전혀 발생하지 않는 현상이 나타날 수 있습니다.

5. 스팸 메일 발송

내 서버를 통해 고객에게 스팸 메일이 발송되고 있다면 반드시 주의 깊게 살펴야 할 신호입니다.

6. Google 블랙리스트 등재

이 경고 메시지는 여러 다른 원인으로도 나타날 수 있지만, 장기간 지속된다면 웹사이트가 이미 침해되었다는 뜻입니다.

7. FTP 로그의 의심스러운 IP 주소

FTP 로그는 세션 동안의 활동과 함께 IP 주소를 기록합니다. 로그에 낯선 의심스러운 IP가 보인다면 즉각적이고 강력한 조치를 취해야 합니다.

8. 신용카드 남용

해커가 카드 스키머, 가짜 결제 폼, 위조 결제 수단을 삽입하는 것 역시 가장 흔한 OpenCart 해킹 유형 중 하나입니다. 대부분의 카드 해킹 사건은 매장 운영자가 아닌 고객의 제보를 통해 알려지므로, 고객의 신용카드 피해 신고에 귀 기울여야 합니다.

OpenCart 해킹 공격의 다양한 사례

대부분의 OpenCart 해킹 사건은 코어 파일과 그 하위 파일(플러그인·테마 파일 포함)에 맬웨어를 삽입하는 방식으로 이루어집니다. 그러나 해커는 데이터베이스, 관리자 패널, 기존 사용자 계정 등 다른 경로를 통해서도 침입하여 악성 코드를 심을 수 있습니다.

즉, OpenCart 해킹 사례는 매우 다양합니다. 그럼에도 해커 공격에는 몇 가지 identifiable한 패턴이 존재하는데, 대표적인 유형을 정리하면 다음과 같습니다.

  1. 다운로드 취약점을 통해 백도어로 침입하여 사용자의 신용카드 정보를 yopmail 계정으로 전송
  2. 관리자 패널에 악성 코드를 삽입해 피해 사이트에서 악성 ID로 외부 메시지를 발송하도록 유도
  3. 관리자 패널에 로그인하여 다음 행위 수행:
    1. 결제 정보 탈취
    2. 주문 내역 조작
    3. 웹사이트 콘텐츠 변조(디페이스먼트)
    4. 상품 목록 변경
    5. 악성 링크 삽입 등
  4. 신용카드 모듈을 악성 모듈 또는 카드 스키머로 교체

관리자 패널에서 이런 활동이 벌어지면 웹사이트 전체에 혼란이 초래되므로, 공격의 근본 원인을 파악하는 것이 매우 중요합니다.

OpenCart 해킹 원인

1. 웹사이트 내부에서의 맬웨어 생성

웹사이트에서 맬웨어를 스크립트로 실행하고 서버를 감염시키는 것이 가장 큰 원인입니다. 이 방식으로 인해 같은 서버에 호스팅된 다른 웹사이트까지 연쇄적으로 감염될 수 있습니다.

2. 공격자의 원격 접근(RCE) 취약점

OpenCart는 RCE(원격 코드 실행)에 취약한 버전이 존재했습니다. 일정 버전의 OpenCart는 원격으로 손쉽게 해킹당해 악성 코드가 주입될 수 있었으며, OpenCart 내 JSON 함수의 존재가 이 취약점의 주요 원인으로 지목되었습니다.

3. CSRF 취약점

CSRF(Cross-Site Request Forgery) 취약점은 해커가 사용자를 대신해 서버에 위조 요청을 보낼 수 있게 만듭니다. 이 취약점을 악용하면 웹사이트 수정, 가짜 관리자 추가, 백도어 삽입, 심지어 사이트 삭제까지 가능해집니다. 적절한 입력값 검증·살균(sanitization) 부족, 논스(nonce) 검증 누락, 출력 이스케이프 미적용 등이 CSRF에 노출되는 주요 원인입니다.

SQL 인젝션(SQL Injection)

얼마 전까지 OpenCart의 페이지 섹션에는 SQL 인젝션 취약점이 존재했습니다. 이 취약점을 이용하면 공격자가 악성 SQL 문을 손쉽게 실행해 웹사이트를 침해할 수 있었습니다.

위 항목들이 OpenCart 스토어 해킹의 주요 원인입니다. 여기에 더해, 약한 비밀번호 사용 역시 OpenCart 해킹 피해 사례에서 빠지지 않는 요인으로 기록되고 있습니다.

OpenCart 맬웨어 제거 절차

1. 비밀번호를 강력한 것으로 변경

먼저 관리자 패널 비밀번호를 더 강력한 것으로 변경하세요. 이어서 데이터베이스 비밀번호도 변경해 데이터베이스가 임의로 조작되는 것을 막아야 합니다. 데이터베이스 비밀번호는 아래 스크립트로 변경할 수 있습니다.

update users set pass = concat('ZZZ', sha(concat(pass, md5(rand()))));

2. 백업 생성

다음으로 스토어 전체를 백업하세요. 백업은 실수로 웹사이트를 삭제했을 때 생명줄이 됩니다. 제대로 된 백업에는 스토어가 원활하게 작동하는 데 필수적인 모든 파일, 그리고 스토어의 디자인과 기능을 정의하는 파일이 포함되어야 합니다.

요약하면 백업에는 코어 파일, 플러그인·테마 파일, 데이터베이스 등이 반드시 포함되어야 합니다.

3. 유지보수 모드 활성화

백업을 마쳤다면 이제 고객에게 스토어를 점검 중임을 알릴 차례입니다. 가장 좋은 방법은 유지보수 모드를 켜는 것입니다. OpenCart의 유지보수 모드 기능을 활용하면 '준비 중' 화면을 스토어에 표시할 수 있으며, 스토어 로고, 카운트다운 타이머, 커스텀 메시지나 이미지로 화면을 꾸밀 수도 있습니다.

4. OpenCart 맬웨어 스캐너로 스토어 검사

다음 단계는 맬웨어 탐지입니다. OpenCart 맬웨어 스캐너는 몇 분 만에 웹사이트의 문제를 진단해 주는 강력한 보안 도구입니다.

Astra의 머신러닝 기반 지능형 맬웨어 스캐너는 OpenCart 스토어 내 모든 악성 링크, 파일, 코드를 탐지합니다. 코드 변경 사항을 빠르게 검토할 수 있는 유틸리티와 클릭 한 번으로 악성 파일을 제거하는 기능도 제공합니다.

5. 웹사이트의 열린 백도어 확인

웹사이트에 존재하는 백도어는 공격자의 출입문입니다. 백도어가 남아 있다면 비밀번호를 아무리 바꿔도 모르는 사이 공격자와 비밀번호를 공유하는 꼴이 됩니다.

따라서 웹사이트 내 백도어를 찾아야 합니다. Wireshark처럼 데이터 패킷 흐름을 모니터링하는 도구가 유용합니다. 외부로 나가는 데이터를 추적해 백도어를 봉쇄함으로써 데이터 유출을 예방할 수 있습니다. 백도어 존재가 확실하다면 사이트를 오프라인으로 전환하고, 악성 코드를 완전히 제거한 후 다시 온라인으로 전환하기를 권장합니다.

6. base64 인코딩 코드 검토

기술적으로 base64는 데이터를 바이너리에서 텍스트 형태로 변환하는 인코딩 방식입니다. 웹사이트 코드에 숨겨진 base64 형식의 코드를 찾아야 할 수 있습니다. 이러한 인코딩 방식은 전문가가 더 정확하게 해석할 수 있습니다.

아래 명령줄로 숨겨진 코드를 찾아볼 수 있습니다.

find . -name "*.php" -exec grep "base64" '{}' \; -print > hiddencode.txt

이 명령은 여러 인코딩된 코드를 hiddencode.txt 파일에 저장하며, 해당 파일은 온라인 디코딩 도구로 추가 해석할 수 있습니다. 이후 특정 코드가 위치한 곳을 찾아 수정하면 됩니다.

7. 체크섬(checksum) 비교

OpenCart 공식 저장소에서 새로운 코어 파일(체크섬이라고도 함)을 내려받아 현재 사용 중인 파일 버전과 비교하세요. 플러그인과 테마 파일에도 동일한 과정을 반복합니다. 데이터베이스의 경우, 과거의 정상적인 백업본이 있다면 이를 현재 DB와 비교할 수 있습니다. 다만 이것만으로 DB 감염을 완벽히 찾아내기는 어렵습니다.

참고: 체크섬을 내려받을 때는 반드시 현재 사용 중인 OpenCart 버전과 일치하는 버전인지 확인하세요.

8. 모든 감염 요소 삭제

여기까지 진행했다면 이미 해킹 지점을 찾았을 것입니다. 이제 남은 일은 감염된 코드와 파일을 완전히 제거하는 것입니다.

OpenCart 해킹 재발 방지 방법

재공격 방지는 필수입니다. 해킹은 시간과 비용을 소모할 뿐 아니라, 평판 저하로 이어져 고객 이탈을 초래합니다. 아래 체크리스트를 따라 추가 공격을 예방하세요.

웹사이트 정기 백업

항상 웹사이트를 정기적으로 업데이트하고 백업하세요. 업데이트는 취약점으로부터 웹사이트를 보호하며, 새로운 패치는 익스텐션의 허점에 대한 방어력을 강화합니다.

설치 폴더 관리

설치(install) 폴더는 골칫거리가 될 수 있습니다. 많은 프로그램이 서버의 설치 폴더를 탐색하며, 설치 폴더는 서버에 그대로 열려 있는 경우가 많습니다. 설치 폴더에는 고도의 기밀 정보가 담겨 있으므로 반드시 삭제하는 것이 좋습니다. 단, vQMod 설치 폴더는 삭제하지 않도록 주의하세요!

관리자 패널 접근 통제

OpenCart 관리자 패널의 보안을 강화해야 합니다. 일단 공격을 당했다면, 관리자 패널의 높은 보안 수준을 유지하는 것은 운영자의 책임입니다.

  • 관리자 URL을 변경해 해커가 다시 추적하지 못하도록 하세요. 기억하기 쉬운 무작위 문자열로 URL을 바꾸면 다중 공격을 예방할 수 있습니다.
  • 관리자 패널 접근을 본인만 허용하는 것도 현명한 선택입니다. .htaccess 파일에 다음 코드를 추가하세요.
<Files *.*>
Order Deny,Allow
Deny from all
Allow from "IP"
</Files>

여기서 IP = 본인의 IP 주소입니다. 이 코드를 사용하면 각종 폴더와 하위 폴더에 대한 접근을 제한할 수 있습니다.

  • admin.php, index.php처럼 관리자 패널의 중요 파일에는 Users > User Groups 위치를 통해 접근하세요. 이 파일들은 보안 공격이 있을 때마다 수정할 필요가 없습니다. 파일 권한을 644 또는 444로 설정하면 추가적인 파일 변경을 막을 수 있습니다.

전자상거래 웹사이트 방화벽 구축

모든 전자상거래 웹사이트는 플랫폼 위에서 금융 거래가 이루어집니다. 금전 거래가 오가는 만큼 보안에 최우선 가치를 두어야 하며, OpenCart 해킹 문제는 고객의 결제 정보 탈취로 직결될 수 있습니다. 이를 막기 위해 적절한 보안 솔루션을 사용하는 것이 좋습니다. 방화벽은 공격자의 첫 번째 공격 지점을 방어하는 최전선입니다. Astra의 OpenCart Security Suite는 강력한 방화벽으로 웹사이트를 악성 공격으로부터 보호합니다. OpenCart에서 공식 추천하는 올인원 보안 솔루션으로 Astra를 검토해 보세요.