fail2ban이 아무도 막지 않고 있었다
서버에 fail2ban을 올려 둔 것은 2026년 4월 1일입니다. 설정 파일에는 “악성 User-Agent 봇 차단”, “취약점 스캔 차단”, “가짜 GoogleBot 차단” 같은 주석이 붙어 있었고, 저는 그동안 그 세 줄이 제 몫을 하고 있다고 믿었습니다. 오늘 상태를 처음으로 열어 봤습니다. 다섯 개 잼 가운데 웹을 지키는 세 개가 161일 동안 단 한 건도 잡지 않았습니다. 더…
서버에 fail2ban을 올려 둔 것은 2026년 4월 1일입니다. 설정 파일에는 “악성 User-Agent 봇 차단”, “취약점 스캔 차단”, “가짜 GoogleBot 차단” 같은 주석이 붙어 있었고, 저는 그동안 그 세 줄이 제 몫을 하고 있다고 믿었습니다. 오늘 상태를 처음으로 열어 봤습니다. 다섯 개 잼 가운데 웹을 지키는 세 개가 161일 동안 단 한 건도 잡지 않았습니다. 더…
워드프레스는 설치만 하면 REST API가 켜집니다. 플러그인을 붙이지 않아도, 설정을 건드리지 않아도 그렇습니다. 그런데 이 API가 로그인하지 않은 사람에게 무엇까지 보여주는지는 대부분 확인하지 않고 넘어갑니다. 그래서 운영 중인 사이트에서 직접 세어 봤습니다. 라우트가 몇 개인지, 어떤 주소가 인증 없이 열리는지, 열리는 응답에 무엇이 들어 있는지입니다. 먼저 라우트 개수부터 REST API는 주소 하나가 아니라 여러 개의…
악성 파일을 하나 찾아 삭제했는데 며칠 뒤 같은 파일이나 비슷한 코드가 다시 생긴다면, 단순히 삭제가 제대로 되지 않았다고만 보기는 어렵습니다. 공격자가 다시 들어올 수 있는 취약점이 남아 있거나, 서버 안에 설치된 백도어가 파일을 재생성하고 있을 수 있습니다. 워드프레스 보안 사고에서는 악성코드 제거와 재침입 원인 차단을 분리해서 봐야 합니다. 눈에 보이는 PHP 파일은 원인이 아니라 이미…
워드프레스 5.6부터 애플리케이션 비밀번호(Application Passwords)가 기본 기능으로 제공됩니다. 일반 로그인 비밀번호를 외부 프로그램에 알려주지 않고도 REST API를 통해 글 작성, 수정 같은 작업을 수행하게 해주는 기능입니다. 다만 편리하다는 이유만으로 항상 켜 둘 필요는 없습니다. 외부 자동화 도구나 모바일 앱을 사용하지 않는 일반 블로그라면 발급된 인증 정보가 남아 있을 이유가 적습니다. 특히 관리자 계정으로 만든 애플리케이션…
워드프레스 관리자 계정의 사용자 이름이 admin이거나 사이트 도메인과 비슷하면 공격자가 로그인 시도에 사용할 아이디를 쉽게 추측할 수 있습니다. 사용자 이름만 바꾼다고 모든 보안 문제가 해결되는 것은 아니지만, 자동화된 무차별 대입 공격이 겨냥할 정보를 줄이는 기본 조치로는 의미가 있습니다. 변경 방법은 크게 새 관리자 계정을 만든 뒤 기존 계정을 삭제하는 방식, 플러그인을 이용하는 방식, 데이터베이스에서 직접…
워드프레스 보안 글에는 거의 빠지지 않고 나오는 항목이 있습니다. xmlrpc.php를 막으라는 것입니다. 저도 그렇게 적어 두었습니다. 그러면서 “다만 Jetpack 같은 서비스를 쓰고 있다면 막기 전에 확인하라”는 단서를 달았습니다. 맞는 말처럼 보였는데, 그 확인을 실제로 해 본 적은 없었습니다. 서버 접속 기록 35일치를 열어서 그 조언을 제 서버에 대 보았습니다. 두 군데가 틀렸습니다. 먼저, 이게 1순위가…