Technote

보안 실무

연재 첫 보안 사고를 겪기 전에 8부 중 7부

반복되는 로그인 시도를 무의미하게 만들기

시도 제한과 로그인 주소 변경은 자주 함께 권장되지만 하는 일이 다릅니다. 각각 무엇을 해 주고 무엇은 해 주지 않는지 솔직하게 정리합니다.

로그인 화면은 사이트에서 가장 많은 자동 요청을 받는 곳입니다. 계정 자체를 튼튼하게 만들었다면 그 시도들이 성공할 가능성은 이미 낮지만, 남는 문제가 둘 있습니다 — 서버 자원언젠가는 맞힐 수 있다는 사실입니다. 이 회차는 그 둘을 다룹니다.

1. 시도 제한 — 가장 먼저 켜는 것

워드프레스는 기본적으로 로그인 실패 횟수를 세지 않습니다. 즉 같은 주소에서 몇 번을 틀려도 계속 시도할 수 있습니다. 시도 제한 기능은 여기에 상한을 둡니다 — 정해진 횟수를 틀리면 일정 시간 그 접속을 거부합니다.

이 하나가 만드는 변화가 큽니다. 시간당 시도 횟수에 천장이 생기면 비밀번호를 반복해 맞히는 방식 자체가 성립하지 않게 되고, 동시에 서버가 그 요청들을 처리하느라 쓰던 자원도 돌아옵니다. 방문자가 적은데 사이트가 이유 없이 느리던 것이 이것 때문인 경우가 있습니다.

로그인 방어 네 가지 — 위 둘이 실제 방어이고 아래 둘은 보조다

2. 로그인 주소 변경 — 효과를 정확히 알고 씁니다

많은 보안 플러그인이 로그인 주소를 다른 경로로 바꾸는 기능을 제공합니다. 여기에 대해서는 솔직하게 말하는 편이 낫습니다. 이것은 근본적인 방어가 아닙니다 — 주소를 바꿨다고 계정이 튼튼해지는 것은 아니니까요.

그럼에도 유용한 이유는 다릅니다. 자동화된 요청은 표준 주소만 두드리기 때문에, 주소를 옮기면 그 소음이 거의 사라집니다. 서버 부하가 줄고 로그가 읽을 만해지며, 진짜 이상 징후가 소음에 묻히지 않습니다. 보안 강화가 아니라 관측 가능성 개선으로 이해하고 쓰면 정확합니다.

다만 바꾼 주소를 잊으면 본인이 못 들어갑니다. 반드시 비밀번호 관리자에 함께 저장하세요.

3. 나를 잠그지 않기

이 회차의 설정들은 강하게 걸수록 본인이 갇힐 위험도 같이 올라갑니다. 실제로 자주 일어나는 일이므로 미리 대비합니다.

잠금 대비 점검 — 보안 설정을 강화하기 전에 이 다섯 줄을 먼저 채운다

특히 마지막 줄이 중요합니다. 시도 제한에 스스로 걸렸을 때 푸는 방법(대기 시간, 또는 플러그인 설정 파일을 잠시 비활성화하는 방법)을 미리 확인해 두면, 그 상황이 사고가 아니라 불편으로 끝납니다.

보안 플러그인은 하나만

마지막으로 앞 회차의 원칙을 다시 적습니다. 기능이 겹치는 플러그인을 두 개 두지 않습니다. 방화벽 기능이 있는 보안 플러그인을 둘 이상 켜면 서로의 요청을 차단하거나 로그를 이중으로 남겨, 문제가 생겼을 때 원인 추적이 불가능해집니다. 하나를 고르고 그것의 설정을 이해하는 편이 언제나 낫습니다.

로그인과 접근 제어를 더 보려면 보안 아카이브가 있고, 서버 단에서 로그인 요청을 제한하는 구성까지 필요하다면 최적화 지원 사업의 보안 하드닝에 포함됩니다.

다음 회차

연재의 마지막 회차입니다. 준비를 다 해도 사고는 날 수 있습니다 — 발견한 첫 한 시간에 무엇을 하고 무엇을 하지 말아야 하는지, 순서대로 정리합니다.

이 주제의 다른 글

노하우 목록으로

보안 실무

업로드 디렉터리의 PHP 실행 차단 — 마지막 관문

업로드 취약점은 파일을 올리는 데서 끝나지 않습니다. 올라간 파일이 실행될 때 원격 코드 실행이 됩니다. uploads 에서 PHP 를 못 돌게 하면 그 승격이 끊깁니다.

운영 · 관리자 2분 읽기

₩270,000 · 신청하기