복구가 끝났다고 안심하기는 이릅니다. 공격자가 이미 가져간 비밀번호와 키는 그대로 유효하기 때문입니다. 복구 직후에 아래 항목을 점검하세요.
1. 비밀번호와 키 교체 (가장 먼저)
소스와 설정 파일에 있던 값은 모두 유출되었다고 가정합니다.
- DB 접속 비밀번호 (애플리케이션 설정에도 함께 반영)
- 관리자 계정 비밀번호 (모든 관리자)
- FTP·SFTP·SSH 계정 비밀번호, SSH 키
- 소스에 들어 있던 API 키, 메일 SMTP 비밀번호, 결제·외부 서비스 키
- 워드프레스 인증 키와 솔트(
wp-config.php의AUTH_KEY등): 교체하면 기존 로그인 세션이 모두 만료됩니다.
# 워드프레스 솔트 새로 발급 (WP-CLI 사용 시)
wp config shuffle-salts
교체한 값은 새 서버(또는 청소한 서버)에서만 사용합니다. 예전 값을 설정 파일에 남기지 마세요.
2. 모르는 계정과 권한 정리
- 관리자 계정 목록에서 모르는 계정을 삭제합니다.
- 서버의
/etc/passwd,~/.ssh/authorized_keys에서 모르는 항목이 없는지 확인합니다. - 권한이 필요 이상으로 높은 계정은 낮춥니다.
3. 소프트웨어 업데이트
침입 경로가 오래된 플러그인이나 CMS였다면 업데이트하지 않으면 그대로 다시 뚫립니다.
- 코어, 테마, 플러그인을 모두 최신으로 올립니다.
- 사용하지 않는 플러그인과 테마는 비활성화가 아니라 삭제합니다.
- 출처가 불분명한 무료 변형본(nulled) 테마·플러그인은 쓰지 않습니다.
4. 접속 경로 줄이기
- 관리자 화면(
wp-admin, 관리 페이지)은 IP 제한이나 2단계 인증을 적용합니다. - SSH는 비밀번호 로그인을 끄고 키 인증만 허용합니다.
- 서버 관리 접속은 VPN을 통해서만 허용하는 구성도 효과적입니다(관리자 접속을 VPN으로만 허용하기 참고).
5. 업로드 폴더의 실행 막기
웹쉘이 다시 올라와도 실행되지 않게 합니다. 설정 방법은 웹쉘이란 무엇인가를 참고하세요.
6. 변경 감시와 알림
복구 후 가장 중요한 것은 다시 당했을 때 빨리 아는 것입니다.
- 소스의 파일 변경 감시: 업로드 폴더에 PHP가 생기거나, 코어 파일이 바뀌면 알립니다.
- 로그인 감시: 관리자 페이지 로그인, SSH 접속을 알림으로 받습니다.
- 서비스 중단 감시: 웹 서버와 DB가 멈추면 알립니다.
간단하게는 Monit 같은 도구로 로그를 감시하고 텔레그램 API로 알림을 보내는 방식을 쓸 수 있습니다.
7. 백업은 따로, 복원도 확인
- 백업은 서버 밖의 별도 위치에 둡니다. 같은 서버 안의 백업은 함께 감염됩니다.
- 백업에서 실제로 복원되는지 한 번은 시험해 봅니다.
체크리스트 요약
| 영역 | 확인 |
|---|---|
| 비밀번호·키 | 모두 교체, 예전 값 제거 |
| 계정 | 모르는 계정 삭제, 권한 최소화 |
| 업데이트 | 코어·플러그인 최신, 미사용 삭제 |
| 접속 | 관리자·SSH 접근 제한 |
| 실행 차단 | 업로드 폴더 PHP 실행 금지 |
| 감시 | 파일 변경·로그인·서비스 중단 알림 |
| 백업 | 외부 보관, 복원 시험 |
TCP-80.NET의 해킹 복구·이전 서비스는 이전 후 환경에서 같은 점검을 다시 하고, 관리자 전용 VPN 접속과 텔레그램 알림(SSH 접속, 관리자 로그인, 웹 폴더의 새 PHP 파일, 서비스 중단)을 함께 구성합니다. 구축 일정은 상담 후 안내드립니다.