웹사이트가 해킹/악성코드 삽입/이상한 리디렉션을 당했을 때 1차 목표는 '즉각적으로 아름답게 만드는 것'이 아니라 격리 - 증거 수집 - 안전하게 복원한 다음 강화하여 재감염을 방지하는 것입니다. 다음은 P1 → P2 → P3 우선순위 순으로 즉시 적용할 수 있는 실제 전투 플레이북입니다.
명확한 책임자와 SLA P1 ≤ 2–4h 구조 프레임워크가 필요한 경우 호치민 웹사이트 유지관리 서비스(문제 해결, 복구 및 강화 플레이북)를 참조하세요. 호치민 웹사이트 유지관리 서비스.
1) 빠른 식별(5~10분)
공통 기호
자동으로 익숙하지 않은 페이지로 리디렉션(특히 Google/di에서 액세스할 때) 동적).
특이한 깨진 인터페이스, 이상한 팝업/iframe 삽입, 일본어/제약 링크 삽입.
갑자기 서버 CPU/IO 증가, 이메일/호스팅에서 멀웨어를 보고합니다.
Google Search Console에서 보안을 보고합니다. 문제(멀웨어/사기성 콘텐츠), 세이프 브라우징은 '유해한 웹사이트'를 경고합니다.
로그에 비정상적인 404/5xx가 많이 기록되고, 무차별로 로그인합니다.
범위 결정
전체 사이트 또는 일부(블로그, /wp-content/uploads, 테마/플러그인)?
Google/모바일 클라이언트만 또는 모두?
프로덕션 또는 스테이징의 영향을 받나요?
2) P1 – 증거 격리 및 보존(0–60 분)
목표: 확산 방지, 조사를 위한 현상 유지, 복구 phục lùu thông an toàn.
Bật chế độ cách ly
Tạm 공개 비밀번호 trên 서버/ngăn truy cập IP(nếu có thể).
Hoặc trả 503 유지 관리 cho c đuan dẫn công cộng(đừng 302/301).
WordPress의 경우: 정적인 유지 관리 페이지를 설정합니다(동적 PHP를 실행하지 않음).
터치하기 전에 포렌식을 백업하세요
스냅샷 전체 소스 코드 + DB + 로그 (웹, PHP-FPM, WAF/CDN) 나중에 확인을 제어합니다.
사본을 오프사이트에 저장합니다(오프사이트).
키 변경 및 세션 무효화
비밀번호 변경 (호스팅/SSH/DB/CMS/FTP), 2FA.
취소 API 토큰(CDN, 결제, SMTP), 세션 무효화(모두 로그아웃).
이상한 항목 격리 process
일시적으로 의심스러운 cron을 중지하고, 프로세스 PHP/이상한 명령을 종료하고, 쉽게 삽입된 디렉터리(예:
/uploads)에 대한 쓰기를 일시적으로 잠급니다.
P1 단계의 목표는 출혈을 멈추는 것입니다. 조사에 사용할 사본이 없다면 서두르지 마세요.
3) P2 - 원인 조사 및 정리(2~6시간)
3.1 진입점 결정(공격 벡터)
고유한 관리자 계정, 외국에서 로그인 시도 IP?
플러그인/테마가 방금 업데이트되었나요?
PHP를
/uploads,/temp에 업로드하거나 .htaccess가 손상되었나요?DB 삽입: 이상한 콘텐츠
wp_options,siteurl/home, 포스트 메타, 메뉴.
3.2 악성 코드 서명 확인(IOC – 침해 지표)
일반적인 PHP 패턴:
eval(base64_decode(...)),gzinflate,str_rot13,preg_replace('/e', ...),assert($_POST...).의심스러운 파일:
/wp-includes/의 가짜wp-*.php, 임의의 파일 이름.ico/.jpg이지만 PHP,/wp-content/mu-plugins/의 cron/백도어 포함 또는/wp-content/sessions/.
.htaccess user-agent/referrer에 따라 리디렉션 규칙을 추가합니다(Google/모바일에서 오는 경우에만 리디렉션).
3.3 안전한 순서로 정리
동결 쓰기 권한(기술자만 권한).
- 메인 소스에서
코어(WP 코어, CMS 코어) 교체
제거 사용하지 않거나 의심스러운 플러그인/테마.
스캔 & 제거:
파일 수준 검사: 악성 코드 샘플을 찾고 체크섬을 깨끗한 버전과 비교합니다.
DB 수준 검사:
options/posts/meta/terms에서 이상한 스크립트를 찾습니다.
삭제 webshell/backdoor(숨겨진 PHP 파일, 이상한 파일 확장자).
.htaccess/nginx conf 정리(이상한 리디렉션 규칙 제거, 기본 재작성 유지) 버전).
재생성 솔트, 키(WP
AUTH_KEY,SECURE_AUTH_KEY…), 모든 비밀번호 변경.
깨끗하게 설치 나머지 플러그인/테마(원본 버전 다운로드).
3.4 '스마트' 리디렉션 확인
Google/mobile에서 액세스(다른 UA 사용) UA/리퍼러에 따라 규칙을 탐지합니다.
정리 전과 후의 로그를 일치시키고 머니 페이지 URL에 대해 HTTP 200 표준을 보장합니다.
4) P3 – 서비스 복원 및 SEO 정리(1~3일)
4.1 개방형 제어 access
유지 관리/503을 언로드하고 필요한 경우 사이트를 부분적으로 활성화합니다.
처음 48~72시간 동안 WAF/CDN을 '엄격' 모드로 유지합니다(공격 패턴 차단).
4.2 SEO 복원 신호
Google Search Console에서 정리 후 보안 문제를 열고 검토 요청을 엽니다(간단한 설명: "악성 코드 제거, 코어/플러그인 교체, 키 변경, WAF 활성화").
제거 정크 URL(해커가 스팸 페이지를 많이 생성하는 경우) 제거 도구 또는 합리적인 방법을 통해 410/301.
사이트맵 정리를 다시 보냅니다. 적용 범위(404/Soft 404/대체 표준)를 확인하세요.
robots.txt를 다시 비교하세요(격리 후 실수로 차단하지 않도록 주의하세요).
4.3 7~14일을 면밀히 모니터링
5xx/CPU/IO 차트, 로그인 번호 실패, 이상한 국가 트래픽.
핵심 웹 바이탈(무거운 스크립트를 가져오는 악성 코드 방지), GSC의 CTR/노출
거래가 있는 사이트의 경우 결제 웹훅을 확인하고 결제 테스트(샌드박스/실질적으로 작음) 주문 주기가 변경되지 않도록 합니다.
5) 재감염 방지를 위한 강화(1주차)
인프라 계층
WAF/CDN(Cloudflare/…): Bot Fight 활성화, 공격 국가 차단, 속도 제한
/wp-login.php,/xmlrpc.php, 민감한 경로에 챌린지를 적용합니다.TLS 1.2+, HSTS, HTTP/2/3를 활성화합니다.
애플리케이션 레이어
프로세스 업데이트: 스테이징 → 테스트 → 프로덕션, 예 롤백.
플러그인/테마 제거 nulled; 플러그인 수를 최소화합니다.
- 대시보드에서
파일 편집을 비활성화합니다(WP
DISALLOW_FILE_EDIT). FTP/DB/CMS에 대한 최소 권한을 분산화합니다. 별도의 CI/CD 계정.
XML-RPC 비활성화/제한, 관리자용 2FA 활성화, 로그인 URL 변경(해당되는 경우).
보안 구성 레이어
콘텐츠 보안 정책 (CSP): 화이트리스트 도메인 스크립트/img/font.
X-Frame-Options / Permissions-Policy / Referrer-Policy.
콘텐츠 팀에게 피싱, 미디어/스크립트 업로드 규칙을 교육합니다.
사용자에게 투명한 알림(수준은 영향을 받는 데이터에 따라 다름).
위험에 처한 사용자 그룹에 대해 비밀번호 변경을 강제합니다. 이전 로그인 토큰을 무효화합니다.
결제/PCI/PII, 법률 상담 및 규제 보고 준수와 관련된 경우.
503/유지 관리, 일시적으로 공개 차단
스냅샷 코드 + DB + 로그(오프사이트)
공식webshell/backdoor 검사 및 삭제, .htaccess/nginx
정리DB 검사(옵션/게시물/메타),
siteurl/home수정재생성 salts/keys, 모든 비밀번호 비밀번호 변경
사이트 열기, 엄격한 수준에서 WAF/CDN 활성화
검토 요청 GSC에서 제출, 깨끗하게 제출 사이트맵
제거/410 정크 URL, 로봇/범위 확인
CSP, HSTS, 보안 헤더, 2FA, 최소 권한
스테이징으로 일정 업데이트, 백업 3–2–1, 복원
테스트가동 시간 모니터링/5xx, 무결성 검사, 감사 로그
- (업데이트, 404/301 정리, 맬웨어 검사, CWV, 로그).
월별 유지 관리 로드맵(업데이트된 체크리스트, 반복되는 오류 정리, 빠른 감사/기술 SEO)이 필요한 경우 깨끗하고 & 안정적인 웹사이트, Tan Phat Digital 팀이 구축한 월간 웹사이트 유지 관리 프로세스: 웹 유지 관리 서비스를 참조하세요.
6) 커뮤니케이션 및 법률(놓치지 마세요) 잊어버리세요)
7) 자주 묻는 질문(FAQ)
"일본/제약"에 의해 해킹되었으므로 파일 정리만으로 충분합니까?
일반적으로 아닙니다. 이 양식은 주로 DB 삽입(메타, 옵션, 메뉴)입니다. 파일 + DB를 검색하고, .htaccess를 편집하고, 키를 다시 생성한 다음 WAF를 켜야 합니다.
백업을 복원하고 완료해야 합니까?
복원은 깨끗한 시작점에 도움이 되지만, 공격 벡터가 다루어지지 않으면(결함 있는 플러그인, 유출된 키) 사이트는 재감염되기 쉽습니다. 복원 후 항상 강화합니다.
Google에서 '유해한 웹사이트' 경고를 제거하는 데 얼마나 걸리나요?
보통 검토 요청 후 24~72시간이 걸리고 정말 깨끗합니다.
Google/모바일에서 접속할 때만 리디렉션하고 직접 접속하지 않고 → 해킹하는 걸까요?
가능성이 매우 높습니다. 공격자는 종종 UA/Referrer 조건을 사용하여 숨어 있습니다. .htaccess를 확인하고, 스크립트와 로그를 삽입하세요.
8) 요약 체크리스트(인쇄하여 벽에 붙여넣기)
P1 – 격리
P3 – 복구 및 SEO
강화
공유








