보안뉴스 보고 워드프레스 취약점 대응하는 방법

얼마 전 운영 중인 사이트에서 보안 경고를 보고 플러그인 목록부터 열었습니다. 기사 제목은 급해 보였지만, 확인해 보니 그 플러그인은 설치돼 있지 않았습니다. 반대로 조용히 넘어간 업데이트 하나가 실제로 쓰는 플러그인의 보안 수정인 적도 있었고요. 보안뉴스를 읽을 때는 제목의 위험도보다 내 사이트에 해당하는지 먼저 확인해야 합니다.
보안뉴스에서 플러그인 이름과 영향받는 버전부터 본다
워드프레스 취약점 기사에는 보통 제품명, 영향받는 버전, 수정 버전, 공격에 필요한 권한이 나옵니다. 이 네 가지를 메모해 두고 관리자 화면의 플러그인 → 설치한 플러그인에서 이름과 현재 버전을 대조합니다. 테마 취약점이라면 외모 → 테마에서 활성 테마와 설치만 해 둔 테마를 함께 확인합니다. 비활성 플러그인과 테마도 서버에 파일이 남아 있으므로 목록에서 빼면 안 됩니다.
이름만 같다고 바로 영향받는 것도 아닙니다. 예를 들어 ‘3.2.0 이하 영향, 3.2.1에서 수정’이라는 안내라면 설치 버전이 3.2.1 이상인지 확인해야 합니다. 같은 이름의 다른 제품을 혼동하지 않도록 제작사와 플러그인 상세 정보도 봅니다. 기사가 오래됐거나 수정 버전 표기가 빠졌다면 제작사의 변경 기록과 Wordfence 취약점 데이터베이스에서 해당 제품의 영향 범위를 다시 확인합니다.
위험 점수만 보고 작업 순서를 정하지는 않습니다. 로그인 없이 악용할 수 있는지, 관리자 권한이 필요한지, 실제 공격이 관찰됐는지가 더 급할 때가 있습니다. 특히 회원 가입이나 파일 업로드를 받는 사이트라면 방문자가 접근할 수 있는 기능의 취약점을 먼저 처리합니다. 내 사이트에 없는 제품의 경고라면 설치할 보안 플러그인을 찾을 일이 아니라, 확인했다는 기록만 남기면 됩니다.
해당된다면 백업을 확인하고 업데이트한다
영향받는 버전을 쓰고 있다면 먼저 복구 가능한 백업이 있는지 확인합니다. 데이터베이스만 저장한 백업으로는 업로드 파일과 테마 수정 파일을 되살릴 수 없습니다. 반대로 파일만 있어도 글과 주문 정보는 돌아오지 않습니다. 호스팅의 자동 백업 기능을 쓰든 백업 플러그인을 쓰든, 데이터베이스와 파일이 모두 포함됐는지, 언제 생성됐는지, 사이트 밖에 사본이 있는지를 봅니다. 주문이 들어오는 쇼핑몰이라면 오래된 백업으로 복원할 때 최근 주문이 사라질 수 있다는 점도 계산해야 합니다.
그다음 관리자 화면의 대시보드 → 업데이트에서 대상 플러그인이나 테마를 갱신합니다. 가능하면 이용자가 적은 시간에 한 항목씩 처리하고, 매번 첫 화면과 글 페이지, 로그인, 문의 양식을 확인합니다. 쇼핑몰은 장바구니와 결제 직전 단계까지 점검합니다. 여러 플러그인을 한꺼번에 갱신하면 문제가 생겼을 때 원인을 찾기 어렵습니다. 업데이트 전에 캐시를 비워야 하는 것은 아니지만, 갱신 뒤 화면이 예전 상태로 보이면 사이트 캐시와 호스팅 캐시를 차례로 지우고 다시 확인합니다.
워드프레스 공식 문서도 플러그인 갱신 전에 백업을 권합니다. 자동 업데이트는 플러그인 → 설치한 플러그인의 ‘자동 업데이트 활성화’에서 항목별로 켤 수 있습니다. 단순한 기능의 플러그인은 자동 업데이트를 켜고 결과 알림을 확인하는 편이 관리하기 쉽습니다. 결제, 예약, 회원 기능처럼 오류가 바로 운영에 영향을 주는 항목은 백업과 점검 시간을 확보한 뒤 수동으로 갱신해도 됩니다. 수동으로 둔다면 담당자가 주기적으로 확인해야 합니다.
수정 버전이 없을 때는 기능을 줄이고 대안을 찾는다
보안뉴스에 취약점은 실렸는데 수정 버전이 없다면 무작정 기다리기 어렵습니다. 우선 해당 기능이 꼭 필요한지 판단합니다. 사용하지 않는 플러그인은 비활성화한 뒤 삭제하고, 필요한 기능이라면 같은 일을 하는 다른 플러그인이나 호스팅 기능으로 옮길 수 있는지 봅니다. 비활성화만 해 두면 파일이 남습니다. 다만 삭제 과정에서 설정이나 데이터가 함께 지워질 수 있으므로 백업을 확인한 다음 진행합니다.
당장 교체할 수 없다면 취약한 기능에 대한 접근을 제한하고 제작사의 수정 안내를 계속 확인합니다. 예를 들어 회원 가입 기능이 필요 없다면 설정 → 일반에서 ‘누구나 가입할 수 있습니다’를 꺼 둘 수 있습니다. 이 설정은 사이트의 가입 정책도 바꾸므로 회원제 사이트에서 그대로 따라 하면 안 됩니다. 방화벽이 필요하다면 먼저 호스팅에서 제공하는 기능을 확인합니다. Wordfence 무료판도 선택지지만, 보안 플러그인을 추가했다고 업데이트를 미뤄도 되는 것은 아닙니다.
파일 관리자에서 취약한 플러그인의 코드를 직접 고치거나 인터넷에서 받은 낯선 수정 파일을 덮어쓰는 방식은 피합니다. 다음 업데이트 때 수정 내용이 사라질 수 있고, 작은 문법 오류만으로 관리자 화면에 접근하지 못할 수도 있습니다. 이미 침해가 의심된다면 복원부터 누르기보다 관리자 계정, 최근 변경 파일, 백업 시점과 접속 기록을 확인해야 합니다. 감염된 상태의 백업을 되돌리면 같은 문제가 반복됩니다.
뉴스를 기다리지 않는 점검 습관을 만든다
운영 사이트에서는 주 1회 정도 대시보드 → 업데이트와 도구 → 사이트 건강을 확인하는 일정이 현실적입니다. 사이트 건강에서 백그라운드 업데이트 오류가 보이면 자동 업데이트를 켜 둔 것만으로 안심할 수 없습니다. 호스팅의 예약 작업이나 외부 통신 문제 때문에 실제 갱신이 실패할 수 있습니다. 설치 목록에서는 더 이상 쓰지 않는 플러그인과 테마도 함께 살핍니다.
관리자 계정에는 서로 다른 비밀번호를 쓰고, 가능하면 이중 인증을 켭니다. 별도 기능이 필요하면 무료 Two-Factor 플러그인을 검토할 수 있습니다. 로그인 방법을 바꾸기 전에는 복구 코드와 다른 관리자 계정을 준비해 두는 편이 안전합니다. 이중 인증 설정을 잘못하면 운영자 본인도 들어가지 못합니다.
보안뉴스는 경고를 발견하는 출발점입니다. 실제 작업은 내 사이트의 설치 목록과 버전을 대조하고, 백업 상태를 확인한 뒤, 수정 버전을 적용하는 순서로 이어집니다. 지난 10년간 본 사고 중에는 새 보안 도구가 없어서보다 이미 나온 업데이트를 미뤄서 커진 일이 많았습니다. 플러그인을 더 쌓기 전에 지금 설치된 것부터 꾸준히 관리하는 쪽이 사이트를 오래 버티게 합니다.
