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

Joomla 해킹 및 멀웨어 완벽 제거 가이드

조믈라(Joomla)는 워드프레스(WordPress)에 이어 세계에서 두 번째로 인기 있는 CMS이기 때문에 해커들의 주요 표적이 됩니다. 통계에 따르면 XSS(교차 사이트 스크립팅)는 조믈라와 워드프레스 모두에서 공격자들이 가장 많이 악용하는 취약점입니다. 그 외에도 코드 인젝션, SQL 인젝션(SQLi) 등이 조믈라 해킹의 주요 원인으로 꼽힙니다.

Joomla 해킹 및 멀웨어 제거 가이드

해킹된 조믈라 웹사이트에서 멀웨어를 제거하는 방법을 찾고 계신다면 이 가이드가 큰 도움이 될 것입니다. 조믈라 확장 프로그램과 보안 설정을 점검하고, 감염된 파일과 데이터베이스를 정리한 뒤, 재감염을 방지하기 위한 후속 조치까지 단계별로 안내해 드립니다.

조믈라 사이트가 해킹당하면 매우 당황스러울 수 있습니다. 하지만 제거 작업을 시작하기 전에 먼저 해킹된 조믈라 사이트의 전형적인 증상을 빠르게 살펴보겠습니다.

해킹된 Joomla 사이트의 주요 징후

  • 구글 검색 결과 메타 설명에 “이 사이트는 해킹되었을 수 있습니다”라는 문구가 표시됩니다.
  • 백그라운드에서 암호화폐 채굴(크립토마이닝)이 실행됩니다.
  • 웹사이트가 스팸 페이지로 리디렉션됩니다.
  • 인덱스 페이지가 변조되거나 해킹 페이지로 교체됩니다.
  • 관리자 계정에서 갑자기 로그아웃됩니다.
  • 모르는 새 관리자 계정이 생성되어 있습니다.
  • 페이지 로딩 속도가 눈에 띄게 느려지거나 트래픽이 비정상적으로 증가합니다.
  • 이전에는 없던 스팸 콘텐츠가 사이트에 나타나기 시작합니다.
  • 구글로부터 ‘멀웨어’ 또는 ‘피싱’ 사유로 사이트가 블랙리스트에 등재됩니다.
  • 원치 않는 광고와 리디렉션이 포함된 스팸이 발생합니다.
  • 비정상적인 트래픽 급증이 관찰됩니다. 구글 서치 콘솔(웹마스터 도구)로 확인할 수 있습니다.
  • CMS 또는 기타 소프트웨어, 특히 방화벽이 손상되었을 수 있습니다.

Joomla 해킹 및 멀웨어 제거 프로세스

구글 등 검색 엔진의 블랙리스트 경고, 비정상적인 브라우저 동작, 변경된 파일, 조믈라 관리자 대시보드에 나타난 의심스러운 신규 사용자 등은 해킹된 조믈라 사이트의 일반적인 지표입니다. 아래 가이드를 따라 해킹된 조믈라 사이트를 진단하고 정리하세요.

1단계: 해킹 여부 확인

먼저 조믈라 사이트를 스캔하여 멀웨어의 위치와 악성 페이로드를 파악합니다. Astra의 조믈라 보안 솔루션은 실시간 모니터링을 통해 해킹 여부를 신속하게 식별해 줍니다.

다음으로 핵심 파일을 포함해 수정된 모든 파일을 점검합니다. SFTP를 통해 파일을 수동으로 확인할 수 있습니다. 또한 악성 사용자 및 관리자 계정에 대한 감사도 진행해야 합니다.

사이트가 구글이나 다른 웹 보안 기관의 블랙리스트에 올라 있다면, 해당 기관의 진단 도구로 보안 상태를 확인할 수 있습니다. 예를 들어 구글 세이프브라우징 사이트 상태 페이지에서는 다음 정보를 확인할 수 있습니다.

  • 사이트 보안 세부 정보: 악성 리디렉션, 스팸, 유해 다운로드 관련 정보
  • 진단 세부 정보: 멀웨어를 발견한 가장 최근의 구글 검사 기록

또한 Google Search Console, Bing 웹마스터 도구, Norton SafeWeb 같은 무료 보안 모니터링 도구를 활용해 사이트의 보안 보고서를 점검하는 것도 좋습니다.

2단계: Joomla 해킹 복구

멀웨어의 잠재적 위치, 침해된 사용자 계정, 위협 평가를 파악하려면 웹사이트 전체 정화 작업을 진행해야 합니다. 감염된 파일을 이전 백업본과 비교하여 변경 범위를 평가하고 악성 코드를 제거하세요. PHPMyAdmin 같은 데이터베이스 관리 패널이나 Search-Replace-DB, Adminer 같은 도구를 사용해 해킹된 조믈라 데이터베이스를 정리합니다.

다음 단계는 모든 사용자 계정을 확보하는 것입니다. 해커는 사이트 정화 이후에도 다시 접근할 수 있도록 여러 개의 백도어를 남기는 경우가 많습니다. 백도어는 겉보기에 정상적인 파일처럼 위장하지만 잘못된 디렉터리에 숨어 있는 경우가 많습니다. 재감염 위험을 없애려면 파일에서 백도어를 철저히 제거하는 것이 필수입니다.

1) 데이터베이스 정리

감염된 데이터베이스부터 정리를 시작합니다. 조믈라 SQL 인젝션은 새로운 데이터베이스 사용자를 생성할 수 있습니다. 특정 날짜 이후 생성된 사용자를 찾으려면 다음 쿼리를 사용하세요.

SELECT * FROM users AS u
AND u.created > UNIX_TIMESTAMP(STR_TO_DATE('My_Date', '%M %d %Y'));

악성 사용자를 발견하면 SQL의 DROP USER; 문으로 삭제합니다. 추가적으로 미래의 감염을 예방하려면 다음 사항을 준수하세요.

  • 사용자 입력값을 반드시 검증·소독(sanitize)합니다.
  • 데이터베이스 계정의 권한을 최소화합니다.
  • 데이터베이스 오류 노출은 로컬 환경에서만 허용합니다.
  • 가능한 한 타입 캐스팅(type casting)을 활용합니다.

2) 서버 보안 강화

설치 자체가 안전하더라도 서버 취약점은 조믈라 해킹으로 이어질 수 있습니다. 조믈라 보안 이슈는 매우 다양하지만, 특히 다음 사항을 기억하세요.

  • 열려 있는 모든 불필요한 포트를 닫습니다.
  • 사용하지 않는 서브도메인을 삭제합니다.
  • 서버 설정 오류를 정기적으로 점검합니다.
  • 공유 서버를 사용 중이라면 서브넷 분리 또는 VPN 사용을 고려합니다.
  • 정보를 유출하는 오류 메시지 출력을 차단합니다.
  • FTP 계정과 데이터베이스에는 강력하고 무작위적인 비밀번호를 설정합니다.
  • 방화벽 또는 보안 솔루션 사용을 반드시 확인합니다.

3) 파일 권한 설정

  • 무엇보다 어떤 사용자도 .php, .aspx 같은 실행 파일을 업로드할 수 없도록 하세요. 서버에는 이미지 파일만 업로드를 허용해야 합니다.
  • 서버의 파일 권한을 설정합니다. 가장 민감한 파일은 .htaccess입니다. 적절한 권한은 444(r--r--r--) 또는 440(r--r-----)로 설정하는 것이 좋습니다.
  • PHP 파일이 덮어쓰기되지 않도록 *.php 파일 권한을 444(r--r--r--)로 설정하세요.
  • 중요한 점은 널리 사용되는 확장 프로그램을 선택하는 것입니다. 조믈라는 규모가 큰 CMS이므로 대체제가 언제든 존재합니다. 인기 있는 확장 프로그램은 취약점 발생 시 더 빠르게 업데이트되므로, 되도록 검증된 인기 확장 프로그램을 사용하세요.

4) Joomla 내 수정된 파일 점검

대부분의 경우 해커는 스팸을 주입하기 위해 파일을 변조합니다. 이는 설치 환경 전체에 심각한 혼란을 초래할 수 있으며, 경우에 따라 새로 설치해야 할 수도 있습니다. 이를 예방하려면 항상 백업을 보관하세요. 해킹 이후 파일을 분석할 때는 diff 명령어가 유용합니다. 수정된 파일을 확인하는 데 도움이 되며, 모든 조믈라 코어 파일은 GitHub에서 공개적으로 제공되므로 비교 기준으로 활용할 수 있습니다.

SSH 명령어로 코어 파일 무결성을 확인하는 방법은 다음과 같습니다.

$ mkdir joomla $ cd joomla

먼저 'joomla'라는 디렉터리를 만들고 해당 위치로 이동합니다.

$ wget https://github.com/joomla/joomla-cms/releases/download/3.6.4/Joomla_3.6.4-Stable-Full_Package.tar.gz

$ tar -zxvf Joomla_3.6.4-Stable-Full_Package.tar.gz

wget 명령어로 GitHub에서 조믈라 파일을 다운로드하고, 두 번째 명령어로 압축을 해제합니다.

$ diff -r joomla-3.6.4 ./public_html

마지막으로 diff 명령어가 public_html 파일과 비교합니다. 같은 방식으로 여러 파일을 검사할 수 있으며, FTP 클라이언트로 접속해 수동으로 확인하는 것도 가능합니다. SSH를 사용하면 파일 변경 목록을 손쉽게 조회할 수 있습니다.

$ find ./ -type f -mtime -15

이 SSH 명령어는 최근 15일 이내에 수정된 파일을 표시합니다. 타임스탬프 값을 조정해 최근에 수정된 모든 파일을 찾아보세요.

5) 사용자 로그 점검

시스템 로그는 조믈라 해킹의 원인을 파악하는 가장 좋은 도구입니다. 시스템 로그는 발생한 모든 활동을 기록하므로, XSS나 SQL 인젝션이 발생했을 때도 반드시 요청 기록이 남습니다. 또한 해커는 새로운 관리자 계정을 생성하는 경향이 있습니다. 의심스러운 사용자를 찾으려면 다음 절차를 따르세요.

  1. 먼저 조믈라 관리자 대시보드에 로그인합니다.
  2. [사용자] 메뉴에서 [관리]를 선택합니다.
  3. 의심스러운 사용자, 특히 최근에 등록된 계정을 확인합니다.
  4. 알 수 없는 사용자를 모두 삭제합니다.
  5. 마지막 방문 날짜도 함께 확인합니다.
  6. 서버 로그 저장 위치를 파악하고, 이를 통해 조믈라 SQL 인젝션 흔적 등을 분석합니다.
  7. 알 수 없는 IP 주소에서 로그인한 사용자가 있다면 삭제합니다.

추가로 구글 진단 보고서를 활용하면 원인을 파악하는 데 도움이 됩니다. 사이트가 블랙리스트에 등재되었다면 구글과 긴밀히 협력하고, 진단 보고서가 알려주는 원인을 바탕으로 감염 요소를 찾아 제거하세요.

Joomla 해킹 제거 후 해야 할 일

업데이트

대부분의 조믈라 해킹은 패치되지 않은 파일 때문에 발생합니다. 따라서 정화 작업 후 첫 번째 단계는 조믈라 업데이트입니다. 업데이트는 취약한 확장 프로그램을 제거하고 보안 취약점을 메워 안전한 환경을 제공합니다.

현재 조믈라 3.x 버전이 가장 안정적인 메이저 버전입니다. 1.x 또는 2.x 브랜치를 사용 중이라면 즉시 3.x로 전환해야 합니다. 메이저 버전 업데이트와 함께 코어 파일, 컴포넌트, 템플릿, 모듈, 플러그인도 모두 최신 상태로 유지하세요.

재설치

해킹 이후에는 모든 확장 프로그램을 재설치하여 정상 작동 여부와 멀웨어 부재를 확인하는 것이 좋습니다. 또한 오래되었거나 비활성화된 테마, 컴포넌트, 모듈, 플러그인은 웹 서버에서 삭제하세요. 사용하지 않는 모듈과 플러그인의 관련 파일을 삭제하지 않으면 취약점이 그대로 남을 수 있습니다. 파일 자체에 심각한 취약점이 있을 수 있으므로 반드시 함께 정리하세요.

해킹된 조믈라 사이트 정화가 끝나면 반드시 백업을 수행합니다. 탄탄한 백업 전략은 보안 모범 사례의 핵심입니다. 백업은 서버에 저장하면 해킹당할 위험이 있으므로 오프사이트(외부) 위치에 보관하세요.

마지막으로 신뢰할 수 있는 백신 프로그램으로 시스템을 스캔하는 것이 좋습니다. 감염된 PC를 사용하는 사용자가 사이트에 접근하면 시스템이 침해될 가능성이 있습니다. 웹 방화벽(WAF)을 활용하면 악성 사용자와 온라인 멀웨어 위협으로부터 사이트를 보호할 수 있습니다. Astra의 웹 애플리케이션 방화벽은 온라인 위협을 완화하고 멀웨어를 차단합니다.

비밀번호 초기화

재감염을 막기 위해 모든 비밀번호를 초기화하세요. 사용자 계정에 2단계 인증(2FA)을 설정했는지 확인하고, 최소 권한 원칙을 적용해 필요한 작업을 수행하는 사람에게만 제한된 접근 권한을 부여하세요.

해킹 이후 Joomla 보안 강화 팁

다음 보안 수칙을 실천하면 대부분의 공격으로부터 조믈라 사이트를 보호할 수 있습니다.

  1. 조믈라 버전, 확장 프로그램, 플러그인 정기 업데이트: 안전한 조믈라 사이트는 꾸준히 업데이트되는 사이트입니다. 모든 버전 업데이트에는 보안 개선 사항과 버그 수정이 포함됩니다. 오래된 조믈라 버전이나 확장 프로그램은 해커에게 공격의 빌미를 제공합니다.
  2. 강력한 비밀번호 사용: 약한 자격 증명은 무차별 대입(Brute Force) 공격으로 결국 유출될 수 있는 대표적인 보안 취약점입니다. 추측하기 쉬운 비밀번호와 기본 관리자 계정은 공격자의 침입을 쉽게 허용합니다. 짧은 비밀번호보다 여러 종류의 문자를 조합한 긴 비밀번호가 훨씬 안전합니다.
  3. 주기적인 백업: 파일과 데이터베이스를 정기적으로 백업하면 문제가 발생했을 때 신속히 복구할 수 있습니다. Easy Joomla Backup 같은 확장 프로그램은 자동 예약 백업을 제공하며, 해킹으로 인한 데이터 손실 시 복원에 활용할 수 있습니다.
  4. 관리자 페이지 접근 제한: 공격자는 추측하기 쉬운 관리자 로그인 페이지를 대상으로 무차별 대입 공격을 시도하는 경우가 많습니다. 기본 관리자 로그인 URL을 사용하지 말고 고유한 이름으로 변경하고, 관리자 패널에 비밀번호 보호를 적용하세요. Admin Tools, RSFirewall 같은 확장 프로그램으로 로그인 페이지 URL을 변경할 수 있습니다.
  5. 보안 확장 프로그램 활용: 보안 확장 프로그램은 조믈라 사이트를 안전하게 지키는 데 큰 도움이 됩니다. 사이트에 올바르게 설정하면 각종 악성 활동을 차단하고 보안 취약점을 숨길 수 있습니다.
  6. 2단계 인증 사용: 2단계 인증 코드(흔히 OTP라고 함)는 조믈라 사이트를 한층 더 안전하게 만듭니다. 비밀번호가 유출되더라도 인증 코드를 통과해야만 계정에 접근할 수 있습니다.
  7. 오염된 다운로드 주의: 검증되지 않은 출처에서 프리미엄 확장 프로그램, 플러그인, 테마를 무료로 다운로드하지 마세요. 출처를 알 수 없는 플러그인은 손상되었거나 멀웨어를 포함하고 있어 사이트를 위험에 빠뜨릴 수 있습니다. 돈을 아끼려 하지 말고 반드시 공식·인증된 소스를 이용하세요.
  8. SSL 인증서 적용: 사용자가 사이트에 로그인하면 자격 증명이 암호화되지 않은 상태로 서버에 전송됩니다. SSL 인증서를 사용하면 이 정보가 서버로 전송되기 전에 암호화됩니다. 이렇게 SSL 인증은 조믈라 웹사이트에 한 층의 보호막을 더해 줍니다.
  9. FTP 레이어 비활성화: FTP 레이어는 조믈라에서 일반적으로 필요하지 않으며 기본적으로 비활성화되어 있습니다. 활성화된 FTP 레이어는 조믈라 사이트의 주요 보안 취약점이 되므로 비활성 상태를 유지하는 것이 좋습니다.
  10. 적절한 파일 및 디렉터리 권한: 파일과 디렉터리 권한을 항상 관리하고, 전체 권한인 777은 절대 사용하지 마세요. 폴더는 755, 파일은 644, configuration.php 파일은 444 권한을 사용하는 것이 안전합니다.

지금 Astra 데모를 신청하고 조믈라 사이트를 더욱 안전하게 보호하세요!