월요일 아침에 회사 홈페이지를 열었는데 화면 대신 붉은 경고가 뜨고 '이 사이트는 위험합니다'라는 문구가 보입니다. 검색창에 회사 이름을 넣어도 홈페이지가 나오지 않습니다. 소스를 열어 보면 처음 보는 스크립트가 붙어 있고, 일부 주소는 도박 사이트로 넘어갑니다.

이럴 때 가장 많이 하는 선택이 백업 파일을 급하게 덮어쓰는 것입니다. 그런데 순서를 잘못 잡으면 경고는 그대로 남고 며칠 뒤 같은 코드가 다시 올라옵니다. 경고를 푸는 열쇠는 복구 속도가 아니라 순서입니다.

첫 한 시간은 복구가 아니라 차단입니다

경고가 떴다는 것은 우리 서버가 지금도 방문자에게 악성코드를 뿌리고 있다는 뜻입니다. 그래서 첫 조치는 소스 수정이 아니라 사이트를 내리는 일입니다. 점검 안내 페이지로 바꾸거나 웹서버를 멈춰 유포를 먼저 끊으세요.

동시에 관리자 계정과 FTP, 데이터베이스 계정의 비밀번호를 전부 바꿉니다. 공격자가 아직 붙어 있는 상태라면 파일만 고쳐도 몇 분 뒤 다시 덮어씁니다. 호스팅 관리 콘솔의 접속 기록도 이때 함께 확인하세요.

지우기 전에 증거를 먼저 복사해 두세요

변조된 파일을 급하게 지우면 침투 경로를 찾을 단서가 같이 사라집니다. 웹서버 로그와 변조된 파일, 접속 기록을 다른 저장소로 통째로 복사한 뒤에 정리를 시작하세요.

보호나라 침해사고 신고 안내에는 자료 보전 의무를 지키지 않으면 2년 이하의 징역 또는 2천만원 이하의 벌금이 따른다고 적혀 있습니다. 로그가 일정 기간마다 순환 삭제되는 서버라면 복사를 미룰 이유가 더 없습니다.

신고 기한은 24시간으로 법에 정해져 있습니다

정보통신망법 제48조의3은 침해사고 발생 사실을 알게 된 때부터 24시간 이내에 과학기술정보통신부 장관이나 한국인터넷진흥원에 신고하도록 정하고 있습니다. 보호나라 안내 기준으로 미신고 시 과태료는 최대 3천만원입니다.

신고는 국번 없이 118로 전화하거나 보호나라 홈페이지의 상담·신고 메뉴에서 접수합니다. 118 상담은 365일 24시간 운영됩니다.

신고하면 침해사고 원인분석 기술지원도 함께 요청할 수 있습니다. 침투 경로 분석과 대응조치 안내, 재발 방지를 위한 원인 제거까지 지원하며 문의 번호는 02-405-6661입니다.

신고는 책임을 추궁당하는 절차가 아니라 원인 분석 지원을 받는 창구입니다. 24시간이라는 기한 자체가 법에 적혀 있습니다.

소스를 되돌리기 전에 침투 경로를 찾으세요

웹셸 파일 하나만 남아 있어도 며칠 뒤 같은 코드가 다시 올라옵니다. 그래서 소스 복구는 경로를 찾은 다음 순서입니다. 게시판 첨부 업로드, 탈취된 관리자 계정, 오래된 게시판이나 플러그인이 흔한 출발점입니다.

업체에 맡기더라도 어디를 봤는지 물어볼 수 있게 항목은 알아두는 편이 좋습니다.

  • 업로드 폴더에 실행 가능한 스크립트 파일이 있는지
  • 같은 날짜, 같은 시각에 수정된 파일이 몇 개나 있는지
  • 관리자 계정 목록에 모르는 아이디가 추가됐는지
  • .htaccess나 web.config에 리다이렉트 설정이 끼어들었는지
  • 게시물 본문 같은 데이터베이스 안에 스크립트 태그가 심겼는지

백업은 감염 시점 이전 것이어야 의미가 있습니다

언제부터 감염됐는지 모르는 상태에서 최근 백업을 올리면 악성코드까지 같이 복원됩니다. 로그에서 최초 변조 시각을 확정하고, 그보다 앞선 백업을 고르세요.

파일만 되돌리는 것도 흔한 실수입니다. 리다이렉트 코드가 데이터베이스 안에 들어간 경우에는 파일을 새로 올려도 도박 사이트로 넘어가는 동작이 그대로 남습니다.

구글 검토 요청은 모두 고친 뒤에 한 번만 누르세요

구글 쪽 경고는 서치 콘솔의 보안 문제 보고서에서 풉니다. 이 보고서는 '해킹됨: 멀웨어', '해킹됨: 코드 삽입', '해킹됨: URL 삽입', '사기성 페이지' 같은 유형으로 문제를 나눠 보여주고 샘플 주소도 함께 제공합니다.

모든 페이지에서 문제를 해결한 뒤 검토 요청을 누릅니다. 구글은 요청서에 세 가지를 담으라고 안내합니다.

  1. 어떤 문제가 있었는지 정확히 설명합니다
  2. 문제를 해결하기 위해 무엇을 했는지 적습니다
  3. 조치 결과를 확인할 수 있게 기록을 남깁니다

검토는 며칠에서 몇 주까지 걸립니다. 경고가 남아 있다고 요청을 다시 넣는 것은 손해입니다.

문제가 남은 상태로 재제출하면 다음 요청의 처리 시간이 더 길어지거나 반복 위반자로 지정될 수 있습니다.

검토를 기다리는 동안 다시 뚫리면 처음으로 돌아갑니다

검토 대기 기간에 같은 경로로 재감염되면 그동안의 조치가 무의미해집니다. 이 구간을 버티는 무료 수단이 KISA 사이버대피소의 웹공격 방어 서비스입니다.

중소기업이 대상이며 신청 후 해당 서버가 서비스 대상으로 적합한지 적격 검토를 거칩니다. 문의는 02-405-4769 또는 help@ddos.or.kr입니다.

해킹진단도구는 민간기업 전체가 신청할 수 있습니다

KISA 해킹진단도구는 참여 대상 제한이 없어 대기업과 비영리 기관도 신청할 수 있습니다. 해킹이 의심되는 서버와 PC를 점검하는 용도입니다.

8개 카테고리 52개 유형의 아티팩트를 한 번에 수집하고, 원클릭 빠른 진단과 여러 대를 묶어 처리하는 다중 진단을 제공합니다. 신청·접수 뒤 신청서 검토를 거쳐 도구와 매뉴얼을 전달받는 방식이며 문의는 02-6013-3002입니다.

내서버 돌보미는 무료지만 모집 규모가 정해져 있습니다

재발 방지 단계에서 쓸 만한 것은 내서버 돌보미입니다. 중소기업기본법 제2조 제1항에 해당하는 중소기업이 대상이고, 모집 규모는 영세·중소기업 350개로 공지되어 있습니다.

점검 항목은 윈도우 계열 10개 영역 111개 항목, 리눅스·유닉스 계열 10개 영역 100개 항목입니다. 운영체제와 웹·WAS, DBMS, 오픈소스의 취약점을 함께 봅니다.

상시 모집이며 신청 후 중소기업 확인증 검토와 사전 협의를 거쳐 점검이 진행되고, 이후 자가진단도구까지 받습니다. 문의는 02-6715-2332 또는 servercheck@krcert.or.kr입니다.

이 순서가 그대로 맞지 않는 경우도 있습니다

공용 호스팅을 쓰고 있다면 우리 계정만 문제인지 서버 전체가 문제인지부터 호스팅사에 확인해야 합니다. 서버 설정이나 다른 계정은 우리가 손댈 수 있는 영역이 아니라서, 혼자 소스만 뒤지면 원인을 못 찾고 시간만 씁니다.

무료 점검 사업들은 재발 방지용이라는 점도 분명히 해 둘 필요가 있습니다. 신청서 검토와 사전 협의 절차가 있어서 오늘 뜬 경고를 오늘 푸는 수단은 되지 않습니다. 차단과 복구는 우리 손으로, 점검은 그 뒤에 신청하세요.

회원 정보나 결제 정보를 다루는 사이트라면 개인정보 유출 여부가 함께 걸립니다. 이때는 신고 창구와 기한이 달라지므로 118 상담에서 우리 사이트에 해당하는 절차를 확인하세요. 관련 자료는 KISA 해킹진단도구 안내내서버 돌보미 안내, 구글 보안 문제 보고서 도움말에서 확인할 수 있습니다. 홈페이지 운영 중에 겪는 사고 기록은 운영 노트에 모아 두었고, 복구와 재구축 상담은 Codeforest에서 받습니다.

결론: 차단과 증거 보전을 먼저 하고 검토 요청은 마지막에 누르세요

경고를 푸는 순서는 사이트 차단과 계정 교체, 증거 복사, 24시간 이내 신고, 침투 경로 확인, 감염 이전 백업으로 복구, 마지막에 구글 검토 요청입니다. 이 중 하나라도 앞으로 당기면 검토가 반려되거나 재감염으로 원점에 돌아갑니다.

검토는 며칠에서 몇 주가 걸리니 그 기간에 웹공격 방어 서비스로 재감염을 막고, 해킹진단도구와 내서버 돌보미로 취약점을 정리하세요. 신고와 무료 점검은 비용이 들지 않는 절차이고, 사고 원인을 남이 찾아주는 유일한 창구입니다.