프레임워크별
WordPress 보안 대책 — 노려지는 이유와 최소한의 방어법
WordPress는 점유율 때문에 가장 많이 노려집니다. 본체보다 '플러그인/테마 취약점·방치된 업데이트·약한 관리자·노출된 관리 화면(wp-admin/xmlrpc)'이 주된 입구입니다. 업데이트 자동화·최소 플러그인·강한 인증(2FA)·관리 화면 노출 제한·백업이라는 최소한의 방어법을, 공격 절차는 빼고 풀어냅니다.
대상: WordPress로 사이트를 운영하는 사람. 여기서는 공격 절차를 다루지 않고, 노려지는 이유와 최소한으로 해야 할 방어법을 풀어냅니다. 프레임워크 전반의 사고방식은 프레임워크별 보안 입구도 참고하세요.
왜 노려지는가: 입구는 거의 정해져 있다
WordPress에 대한 공격은 마법이 아니라 자동화된 무차별 대입으로 정해진 약점을 뒤집니다. 입구를 알면 막을 곳도 정해집니다.
① 플러그인/테마 취약점
서드파티 코드의 알려진 구멍. 최대의 입구. 방치·작자 포기로 구멍이 남는다.
② 방치된 업데이트
본체/플러그인 패치 미적용. 공개된 CVE를 자동화 도구가 노린다.
③ 약한/재사용 관리자
admin + 약한 비밀번호 + 2FA 없음. 로그인 무차별 대입·유출 비밀번호 재사용으로 탈취.
④ 노출된 관리 화면
wp-admin/xmlrpc/REST API의 사용자 열거. 무차별 대입이나 증폭의 발판이 된다.
최소한의 방어법(5단계)
WordPress 고유의 함정을 순서대로 막습니다. 모두 관리 화면이나 설정에서 완결됩니다.
업데이트 자동화(최우선)
플러그인/테마를 최소로
관리자에 강한 인증(2FA)
admin을 피하고, 권한은 필요한 최소한으로. (→ 2FA란 무엇인가)관리 화면 노출과 로그인 시도 제한
xmlrpc.php 비활성화, REST API의 사용자 열거를 억제. 관리 화면에 접근할 수 있는 곳을 제한하면 더욱 좋습니다.백업과 변조 탐지
흔히 하는(위험)
- 본체도 플러그인도 수동 업데이트인 채 방치
- 안 쓰는 플러그인/테마를 비활성화만 하고 방치
- 관리자
admin+ 약한 비밀번호 + 2FA 없음 - 로그인 시도·xmlrpc·사용자 열거가 열려 있는 채
올바른
- 본체/플러그인/테마를 자동 업데이트
- 안 쓰는 확장은 삭제해 최소화
- 관리자는 강한 비밀번호 + 2FA, 최소 권한
- 로그인 시도 제한·불필요 기능 끄기·되돌릴 수 있는 백업
본 사이트의 관점: 본체보다 '확장과 방치'를 관리한다
WordPress 방어에서 효과가 있는 것은 화려한 설정이 아니라 「확장을 너무 늘리지 않는다·방치하지 않는다」는 운영 규율입니다. 플러그인은 편리하지만, 하나 늘어날 때마다 '계속 업데이트할 책임'도 늘어납니다. 본 사이트의 원칙은 다른 기술과 같습니다 — 의존성(플러그인)을 최소로 하고, 업데이트를 자동화하고, 강한 인증과 되돌릴 수 있는 백업으로 지킨다. WordPress 고유의 이야기처럼 보이지만, 사실은 보편적인 기초의 적용입니다. 플러그인의 CVE는 CVE/KEV 조회로도 확인할 수 있습니다.
다음으로 읽기
- 입구: 프레임워크별 보안 · Laravel 보안 대책
- 토대: 취약점(CVE) 대응 실무 · 백업의 기본
- 인증: 2FA란 무엇인가 · 용어: 피싱이란 무엇인가(관리자를 노리는 최대의 경로)
FAQ
QWordPress는 위험한가요?
WordPress 본체는 활발히 유지보수되고 있으며 그 자체가 특별히 취약하지는 않습니다. 위험한 것은 '사용법'입니다. 최대 점유율이라는 위치 때문에 자동화된 공격의 쉬운 표적이 되고, 실제 침입의 대부분은 본체가 아니라 서드파티 플러그인/테마 취약점, 방치된 업데이트, 약한 관리자 계정, 노출된 관리 화면에서 일어납니다. 뒤집어 말하면, 이것들을 막으면 대부분의 위험이 줄어듭니다.
Q플러그인은 몇 개까지 괜찮은가요?
'필요한 최소한만'이 원칙입니다. 플러그인은 각각이 공격 표면을 넓히고, 하나라도 업데이트되지 않거나 방치되면 구멍이 됩니다. 설치 전에 업데이트 빈도, 사용 실적, 최종 업데이트 날짜를 확인하고, 안 쓰는 것은 비활성화가 아니라 삭제하세요(비활성화해도 파일이 남아 있으면 취약점의 표적이 될 수 있습니다). 테마도 마찬가지입니다.
Q최소한 무엇을 해야 하나요?
(1) 본체·플러그인·테마의 자동 업데이트를 활성화, (2) 안 쓰는 플러그인/테마를 삭제해 수를 줄이기, (3) 관리자 계정에 강한 비밀번호와 2단계 인증(2FA), (4) 관리 화면(wp-admin/로그인)의 노출과 로그인 시도 횟수를 제한, (5) 되돌릴 수 있는 오프라인 백업과 변조 탐지. 이 다섯 가지로 자동화된 공격의 대부분을 막을 수 있습니다.