Joomla 관리자 보안 – 내 계정이 해킹되었는지 확인하는 방법
오픈소스 CMS인 Joomla는 전 세계 수많은 기업과 기관이 웹 콘텐츠를 운영하는 데 사용하는 검증된 플랫폼입니다. 그런데 인기가 많다는 것은 곧 해커들의 주요 공격 대상이 되기 쉽다는 의미이기도 합니다. 만약 내 Joomla 계정이 해킹당했거나 관리자 보안이 침해되었다고 의심된다면, 몇 가지 단서를 통해 이를 빠르게 식별할 수 있습니다. 조기에 침해 사실을 인지하면 추가 피해를 막고 신속하게 복구할 수 있습니다.
보안 침해 여부를 확신할 수 있는 대표적인 징후는 다음과 같습니다:
- 로그인 실패: 평소와 같은 아이디와 비밀번호로 관리자 페이지에 접근할 수 없다면 계정이 공격당했을 가능성이 있습니다. 비밀번호 분실 등 다른 원인일 수도 있으니 모든 가능성을 먼저 점검하는 것이 좋습니다.
- 데이터 삭제 또는 손상: 계정의 데이터가 갑자기 지워지거나 깨져 있다면 해커가 파일을 덤프한 뒤 흔적을 지우려 했을 가능성이 큽니다. 웹사이트 정밀 스캔으로 원인을 확인할 수 있습니다.
- 데이터베이스 오류 및 비정상 리디렉션: 로그인 시 데이터베이스 오류가 발생하거나, 사이트 방문 시 다른 웹사이트로 강제 이동되는 현상이 나타난다면 악성코드 삽입을 의심해야 합니다.
- 낯선 콘텐츠와 자바스크립트 코드: 사이트에 모르는 게시물이나 광고, 생소한 자바스크립트 코드가 새로 생겼다면 해킹의 전형적인 흔적입니다.
- 핵심 파일 변조: index.php, .htaccess 파일 또는 템플릿 관련 파일이 본인의 작업 없이 수정되었다면 관리자 계정이 해킹되었을 가능성이 매우 높습니다.
해킹된 Joomla 웹사이트의 원인을 파악하는 방법
1. 구글 블랙리스트 등재 여부 확인
- 가장 먼저 확인할 것은 웹사이트가 Google, Bing, McAfee 등 검색 엔진이나 보안 업체의 블랙리스트에 등재되었는지 여부입니다.
- Google의 Safe Browsing 사이트 상태(Site Status) 페이지에 접속해 사이트 URL을 입력하면 됩니다.
- 악성 리디렉션, 유해 다운로드, 스팸 등 사이트 안전 세부 정보와 최근 검사에서 발견된 악성코드 여부를 확인할 수 있습니다.
2. 해커가 변경한 코드와 악성코드 찾기
- 시스템 파일이 변조되었는지 확인하는 가장 빠른 방법은 현재 파일을 GitHub에 공개된 Joomla 순수 원본 패키지와 비교하는 것입니다. 터미널의 diff 명령어를 활용하면 손쉽게 차이점을 찾아낼 수 있습니다.
- SSH로 서버에 접속한 뒤 아래 명령어를 순서대로 실행합니다. 예시는 Joomla 3.6.4 버전 기준입니다.
$ mkdir joomla-3.6.4
$ cd joomla-3.6.4
$ 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
$ diff -r joomla-3.6.4 ./public_html
diff 명령어는 깨끗한 원본 파일들과 실제 서버의 파일들을 전부 비교해 변조된 부분을 알려줍니다.
3. Joomla 관리자 사용자 감사
- 관리자 및 슈퍼 관리자 목록을 점검하면 승인되지 않은 사용자가 계정에 접근했는지 확인할 수 있습니다.
- Joomla에서 미승인 사용자를 찾는 방법:
- 관리자 패널에 로그인합니다.
- [사용자(Users)] 메뉴로 이동한 뒤 [관리(Manage)]를 선택합니다.
- 최근 가입일 기준으로 사용자 목록을 확인합니다.
- 등록된 모든 사용자를 살펴보고 해커가 생성한 계정은 즉시 삭제합니다.
- 수상한 시간대나 위치에서 로그인한 사용자도 함께 점검합니다.
알려진 관리자 경로의 위험성
관리자 경로(admin path)는 Joomla 계정의 통제 중심이자 컨트롤 타워 역할을 합니다. 해커가 관리자 패널 URL을 알아내면 계정의 모든 데이터와 제어권을 넘볼 수 있습니다. 실제로 관리자 경로 노출은 해커들이 계정 장악에 가장 많이 활용하는 통로이기 때문에, 이를 외부로부터 숨기는 것이 필수적입니다.
관리자 경로를 아는 해커는 Metasploit 같은 도구로 CMS 공격을 시도해 가짜 사용자 계정을 생성할 수 있고, 그 가짜 계정을 통해 계정 전체를 장악하게 됩니다. 또한 관리자 로그인 페이지를 특정하면 무차별 대입(brute force) 공격으로 비밀번호를 알아낼 수 있으며, 성능이 충분한 컴퓨터라면 비밀번호를 깨는 일이 생각보다 쉽습니다.
처음에는 심각하지 않아 보일 수 있지만, 해커가 계정을 장악하고 웹사이트에 접근하는 대표적인 경로입니다. 그렇기에 Joomla 관리자 보안은 계정을 지키는 첫 번째 방어선이라 할 수 있습니다.
Joomla 관리자 패널을 숨기고 보호하는 방법
관리자 패널을 통한 공격을 차단하려면 관리자 패널 자체를 숨기는 것이 효과적인 보안 강화 방법입니다. 대표적인 방법은 다음과 같습니다.
1. 서드파티 플러그인 활용
- JSecure는 관리자 경로 숨김에 유용하게 쓰이는 플러그인입니다. 설치하려면 [확장(Extensions)] → [관리(Manage)] → [설치(Install)] 순서로 진행하면 됩니다.
- 웹에서 플러그인을 내려받아 설치한 뒤 설정만 마치면 바로 사용할 수 있습니다.
2. .htpassword로 이중 잠금 설정
- Joomla는 비밀번호를 암호화된 형태로 안전하게 저장하지만, 로그인 과정에서 아이디와 비밀번호는 네트워크를 통해 평문(plain text)으로 전송됩니다. 이 때문에 스니핑 도구를 갖춘 해커는 전송 구간에서 아이디와 비밀번호를 가로챌 수 있습니다.
- 따라서 .htpassword를 사용해 관리자 파일과 디렉터리에 추가 비밀번호 잠금을 걸어야 합니다. 이 비밀번호는 SSL 연결을 통해 전송되므로 암호화가 보장됩니다.
.htpassword 설정 절차:
- Apache의 비밀번호 유틸리티(htpasswd)를 사용해 .htpassword 파일을 생성합니다. 온라인 도구로도 만들 수 있지만, 명령줄로 직접 생성하는 편이 더 신뢰할 수 있습니다.
- 사이트가 .htaccess 사용을 지원하는지 확인한 뒤 .htaccess 파일의 위치를 정합니다. 파일 위치에 따라 이 방식으로 보호되는 파일의 범위가 달라집니다.
- .htpassword와 .htaccess 파일을 저장할 디렉터리를 지정합니다. 두 파일은 반드시 웹에서 직접 접근할 수 없는 곳에 두어야 합니다.
- .htaccess 파일을 생성해 올바르게 저장하고 백업을 만듭니다. .htpassword 보호를 활성화하려면 아래 코드를 .htaccess 파일에 추가합니다.
AuthUserFile /home/auth/.htpassword
AuthType Basic
Require valid-user
ErrorDocument 401 "Authorization required"
설정이 완료되면 관리자 패널 로그인 시 기존 Joomla 계정 정보 외에 한 번 더 인증을 요구하게 됩니다. 덕분에 무차별 대입 공격도 더 이상 통하지 않습니다.
Astra – 모든 공격으로부터 지켜주는 올인원 보안 도구
명령줄 작업은 어렵고 시간이 많이 걸립니다. 게다가 보안 솔루션이 새로운 방어 기술을 개발할 때마다 해커들은 이를 뚫는 새로운 침투 기법을 고안해냅니다. 끊임없이 진화하는 해커들의 공격에 대응하려면 전방위적인 보호 체계가 필요합니다. Astra는 Joomla 관리자 계정에 완전한 보안을 제공하고 웹사이트에 대한 지속적인 공격으로부터 지켜주는 솔루션입니다. 설치만 하면 바로 작동하는 완전한 플러그 앤 플레이 방식이라 IT 지식이 없어도 누구나 쉽게 사용할 수 있습니다.
Astra는 악성코드, 악성 봇, XSS, SQLi(SQL 인젝션)를 포함한 80여 가지 온라인 위협으로부터 Joomla 계정을 보호합니다. 미승인 사용자의 접근을 차단해 계정이 안전하게 유지되도록 하며, 관리자 계정에 대한 무차별 대입 공격 같은 시도를 차단하고 기록으로 남깁니다. 모든 로그인 시도가 로그로 남아 언제든 확인할 수 있고, 매시간 정기적으로 소유주에게 보안 상황을 알려줍니다.
일부 영역만 부분적으로 보호하는 다른 서드파티 플러그인과 달리, Astra는 모든 면에서 계정을 보호합니다. 봇이든 악성코드든 Astra 하나면 웹사이트 전반을 지킬 수 있습니다. 신속한 고객 지원 덕분에 도구 운영도 어렵지 않으며, 상세한 대시보드를 통해 계정과 관련된 모든 활동을 한눈에 파악할 수 있습니다.
Astra만 있다면 Joomla 관리자 보안에서 실수할 일은 없습니다. 요금제를 구독하기만 하면, 나머지는 Astra가 웹사이트를 안전하게 지켜줍니다.