워드프레스 보안 강화하기

보안 강화를 위한 다양한 팁들

워드프레스는 기능과 레이아웃을 향상시키는 다양한 테마와 플러그인으로 널리 인정받고 있습니다. 하지만 이러한 기능으로 인해 보안 취약점이 발생할 수도 있습니다. 이러한 위험을 완화하려면 사용하는 플러그인 수를 최소화하고 새 버전이 나오면 즉시 업데이트하는 것이 중요합니다.

최근 워드프레스 사이트가 멀웨어나 해킹에 의해 손상되는 사건이 여러 차례 발생했습니다. 며칠 전, 다른 블로그를 호스팅하는 해외 웹호스팅 업체에서 보안 조치를 강화하기 위해 “SiteLock”과 제휴를 맺었다고 알려왔습니다. 그들은 다음과 같이 설명했습니다:

이러한 검사는 알려진 멀웨어를 탐지하고 악성 활동을 식별하면 즉시 고객에게 이메일 알림을 보내는 기본 “경보 시스템”의 역할을 합니다. 이를 통해 검색 엔진이 사이트를 블랙리스트에 올리기 전에 적절한 조치를 취할 수 있는 시간을 확보할 수 있습니다.
상당한 시간과 비용을 투자하여 구축한 사이트가 멀웨어 감염으로 인해 검색 엔진 결과에서 삭제될 경우 사이트에 미치는 영향이 얼마나 클지 상상해 보세요. 악성코드 공격으로 수천 개의 워드프레스 사이트가 차단된 구글의 사례에서 알 수 있듯이 이런 상황은 생각만 해도 끔찍한 일입니다.

워드프레스 사이트의 보안을 유지하기 위해 취할 수 있는 몇 가지 사전 예방적 조치가 있습니다. 아래는 이전에 이 블로그에서 공유했던 팁과 몇 가지 새로운 제안을 정리한 것입니다.

워드프레스 보안을 강화하기 위한 팁
사용자 아이디로 관리자, 관리자를 사용하지 않기
스팸 차단 플러그인을 사용하면 스패머가 admin, 관리자, 심지어 demo와 같은 사용자 아이디로 로그인을 시도하는 경우가 많다는 사실을 알 수 있습니다.

오늘날 많은 공격이 wp-admin/wp-login 페이지를 표적으로 삼고 관리자 사용자 아이디를 사용하여 액세스 권한을 얻으려고 시도합니다. 최근에 악성코드에 감염된 사이트를 발견했는데, 자세히 살펴보니 관리자 사용자 아이디가 사용되고 있었습니다.

관리자 사용자 아이디가 현재 admin으로 설정되어 있는 경우 변경하려면 다음 단계를 따르세요:

새 사용자를 만듭니다.
‘관리자’ 역할을 할당하고 저장합니다.
로그아웃하고 새 관리자 계정으로 로그인합니다.
이전 관리자 계정(admin)을 제거합니다.
이 과정이 너무 복잡해 보인다면 사용자 아이디 체인저와 같은 플러그인을 사용할 수 있습니다(“워드프레스에서 사용자 아이디를 변경하는 방법” 참조).
강력한 비밀번호 사용
강력한 비밀번호가 보안에 중요하다는 것은 두말할 나위가 없습니다. 비밀번호는 복잡하고 길며 고유해야 합니다. 쉽게 추측할 수 있는 비밀번호는 피하고 숫자, 대문자, 소문자, 특수문자를 혼합하여 사용하세요.

비밀번호를 자주 잊어버리는 경향이 있다면 “비밀번호를 사용하여 안전하고 기억하기 쉬운 비밀번호 만들기”를 읽어보세요.

XMLRPC.PHP를 통한 무차별 대입 공격 방지
XML-RPC는 인코딩에 XML을 사용하고 전송에 HTTP를 사용하는 원격 프로시저 호출 프로토콜입니다. 이 기능을 사용하지 않는 경우 보안을 강화하기 위해 XML-RPC를 비활성화하는 것이 좋습니다. 자세한 내용은 여기에서 확인하세요.

 

WP-LOGIN 페이지 경로 수정
또 다른 보안 강화 방법은 wp-로그인 경로를 변경하는 것입니다. WPS 로그인 숨기기와 같은 플러그인을 설치하면 로그인 URL을 변경할 수 있습니다. 자세한 내용은 이 문서를 참조하세요.

초기 보안 플러그인은 워드프레스 로그인 페이지를 숨길 수 있지만 “모호성을 통한 보안” 전략은 효과적이지 않으며 시스템을 불안정하게 하고 테마를 망가뜨릴 수도 있습니다.

다른 방법들

로그인 시도 제한
무차별 암호 대입 공격은 일반적으로 로그인 양식을 대상으로 하므로 앞서 언급한 플러그인으로 로그인 페이지를 변경하면 이러한 공격을 방어하는 데 도움이 될 수 있습니다. 또 다른 옵션은 수많은 모범 보안 사례를 통합한 강력한 보안 플랫폼인 올인원 WP 보안 및 방화벽 플러그인입니다. (이 플러그인에는 WPS Hide Login과 같은 플러그인의 기능이 포함되어 있으므로 동시에 사용하지 않는 것이 가장 좋습니다).

올인원 WP 보안 및 방화벽

이 페이지에서 다른 보안 중심 플러그인을 살펴볼 수도 있습니다.

WP-CONFIG.PHP 및 .HTACCESS 숨기기
.htaccess 파일에 규칙을 추가하여 wp-config.php 및 .htaccess 파일에 대한 액세스를 제한하세요.

.htaccess 파일에 다음 코드를 삽입하여 wp-config.php에 대한 액세스를 차단합니다:

<Files wp-config.php>
order allow,deny
deny from all
</Files>
.htaccess에 대한 액세스를 차단하려면 다음 코드를 추가합니다:
<Files .htaccess>
order allow,deny
deny from all
</Files>
이 작업을 수행하려면 FTP 액세스 권한이 필요합니다. 이 문서에서 FTP 사용 방법을 알아보세요.

스팸 발송자 차단 스팸 방지 플러그인을 설치하면 wp-config.php에 대한 액세스를 차단하는 기능이 포함되어 있습니다.

파일 편집 비활성화
해커가 사이트에 액세스하는 경우 가장 쉽게 파일을 변경할 수 있는 방법은 워드프레스 대시보드의 모양 > 테마 편집기로 이동하는 것입니다. 테마 편집기 내에서 파일 편집을 비활성화하면 보안이 강화됩니다. 이렇게 하려면 wp-config.php 파일에 다음 줄을 추가하세요:

define(‘DISALLOW_FILE_EDIT’, true);
이제 FTP를 통해서만 파일을 수정할 수 있으며 워드프레스 내에서 직접 파일을 편집할 수 없습니다.

디렉토리 브라우징 비활성화하기
디렉토리 브라우징을 비활성화하면 해커가 사이트 디렉토리의 콘텐츠를 볼 수 없도록 차단할 수 있습니다.

.htaccess 파일에 다음 줄을 추가합니다:

# Disable Directory Browsing
Optionas All -Indexes
디렉토리 브라우징을 비활성화해도 SEO 페널티는 없습니다. 자세한 내용은 이 문서를 참조하세요.

보안 플러그인 설치
워드팬스 보안, 수쿠리 보안 등 광범위한 보안 기능을 갖춘 플러그인을 사용하여 사이트의 보안을 강화하세요. 이러한 플러그인은 리소스 집약적일 수 있지만 보안을 위해 꼭 필요합니다. 자세한 내용은 “워드프레스를 위한 최고의 보안 플러그인”을 참조하세요.

(참고: 멀웨어 감염이나 기타 워드프레스 관련 문제가 발생하면 여기에서 유료로 서비스를 이용할 수 있습니다.)

데이터/DB 백업
사이트가 해킹당하거나 손상되었을 때 적절한 백업을 하지 않아 사이트 전체를 잃은 사람도 있습니다. 호스팅 업체가 자동으로 데이터를 백업하더라도 주기적으로 하드 드라이브나 USB에 백업을 저장하는 것이 좋습니다. 간혹 웹 호스팅 업체의 서버가 다운되어 전체 데이터가 손실될 수 있습니다. 이러한 경우, 데이터 백업에 대한 책임이 회원님에게 있다고 주장하는 경우가 많기 때문에 제공업체로부터 보상을 받기 어려울 수 있습니다. 따라서 소중한 정보의 백업을 정기적으로 저장하는 것이 현명합니다.

 

플러그인으로 인한 보안 위험
플러그인은 기능을 확장하고 워드프레스의 주요 장점 중 하나이기 때문에 워드프레스에 매우 중요합니다. 하지만 보안을 손상시킬 수도 있습니다. 예를 들어, 동적 슬라이더를 만들 수 있는 도구인 슬라이더 레볼루션은 10만 개의 사이트에 영향을 미치는 보안 취약점을 경험했습니다.

10만 개 이상의 사이트가 해킹된 워드프레스 플러그인 취약점
Contact Form 7과 같은 다른 인기 플러그인에도 보안 문제가 있는 것으로 알려졌습니다(저는 Contact Form 7을 삭제하고 대신 Quform을 사용하고 있습니다).

워드프레스 사이트 해킹 방법
사용하는 플러그인 수를 제한하고 업데이트가 있을 때마다 설치하는 것이 중요합니다. 플러그인에 보안 문제가 있는 경우 즉시 제거하고 비슷한 기능을 제공하는 다른 플러그인으로 교체하세요.

마치며

복제기를 사용하여 워드프레스 사이트 마이그레이션 후 스크립트 파일 제거하기
복제기를 사용하여 사이트를 이전한 후에는 서버에서 스크립트 파일을 삭제해야 합니다. 자세한 내용은 “Duplicator 플러그인, 원격 코드 실행(RCE) 취약점 패치하기”를 참조하세요.

최종 생각
앞서 언급했듯이 워드프레스, 테마, 플러그인을 지속적으로 업데이트하는 것은 보안 유지에 매우 중요합니다. 일반 사용자 로그인을 허용할 필요가 없다면 특정 IP 주소만 로그인을 허용하도록 사이트를 구성할 수 있습니다. wp-login.php 페이지에 대한 액세스를 제한하고 로그인 페이지에 대한 공개 액세스를 방지하려면 .htaccess 파일에 다음 코드를 삽입합니다:

<Files wp-login.php>
Order Deny,Allow
Deny from All
Allow from xxx.xxx.xx.xxx
</Files>
여기서 xxx.xxx.xx.xxx를 액세스 권한을 부여할 IP 주소로 바꾸세요.
워드프레스 보안이 최우선이라면 이 글에 소개된 Hide My WP 플러그인을 사용해 보세요. 유료 플러그인이지만 베스트셀러에 오른 것을 보면 사용자가 보안을 중요하게 생각한다는 것을 알 수 있습니다.

Hide My WP – 워드프레스를 위한 놀라운 보안 플러그인

또한 웹 호스팅 제공업체를 선택할 때는 단순히 가장 저렴한 솔루션을 선택하기보다는 보안 조치를 평가하는 것이 현명합니다. 보안에 대한 더 자세한 정보는 이 글을 참고하세요.

요약: 안전한 워드프레스 환경을 유지하려면 워드프레스, 테마, 플러그인을 정기적으로 업데이트하고, 보안 플러그인을 사용해 보호 기능을 강화하며, 자주 백업하세요.