Как навсегда забыть о взломах и вирусах на сайте

Сложность статьи:Среднячкам

Всем привет! Давно не писал. Был занят в своих проектах. В  данной статье хочу поделиться своим способом навсегда забыть о вирусах на сайтах. Когда передо мной самим встала задача как защитить свои сайты от хакерских атак, я не нашел полностью удовлетворяющего меня способа в интернете. Поэтому пришлось разрабатывать собственную систему. Она довольно простая, универсальная и очень надежная!

Эта статья о том, как на 100% защитить свой сайт от вирусов, взлома и хакеров (на joomla, wordpress).

Предисловие: мои сайты начали взламываться и заражаться вирусами

Полгода-год назад я столкнулся с проблемой, что мои сайты стали постоянно взламываться. Сперва я думал, что это разовые случаи. Что этого больше не повторится. Не уделял этому особого внимания. Но мои сайты продолжали взламывать со все большей и большей регулярностью.

Сперва я просто установил на каждом из своих сайтов защиту на доступ к админке (вот статья как это сделать: ставим пароль на страничку админки сайта). На некоторое время проблема была решена. Но не надолго.

В скором времени я столкнулся с тем, что мои сайты обваливаются в Гугле, в Яндексе. На них размещают рекламу виагры, порно и прочей нечисти. Иногда сайты вообще пропадают. Иногда добавляются ссылки, о которых ты узнаешь только сделав сканирование сайта с помощью xenu (об этой программе рекомендую почитать тут, офигенная статья http://www.markintalk.ru/audit-saita-primer.html). Иногда добавляются кучи левых страниц. С рекламой естественно. Иногда просто залетают вирусы, которые делают рассылку спама с твоего сайта и за это твой хостер может надолго заблокировать доступ к твоему сайту.

Можно сказать, что из-за вирусов я на целый год отложил свой проект по свадебному сайту www.agentstvo-svadeb.ru, потому что начал заниматься проектом незадолго до сезона, но из-за постоянного взлома сайта мне пришлось принять решение об обновлении версии joomla, а вместе с этим всплыли другие проблемы (кто менял систему управления раскрученного сайта впопыхах понимает о чем я). В итоге свадебный сезон успешно закончился, а мой сайт так и не заработал в том виде, в котором я хотел.

Резервное копирование не помогает

Самый естественный способ защиты от взломов и от вирусов, который приходит в голову — это резервное копирование сайта. Так думал и я. Мол, взламывайте, я все равно делаю регулярные резервные копии, да еще и хостер их тоже делает. Да еще и каждый день. Казалось, проблемы нет.

Что выходит на практике:

  • делать ручные резервные копии очень утомительно. Я  очень щепетильный и дотошный человек. Но даже у меня не хватает никакого терпения делать резервные копии вручную чаще, чем раз в месяц. Таким образом, при ручном копировании ты защищен только в случае, если проект заморожен и обновления происходят очень редко.
  • доверять хостеру нельзя. Я столкнулся с тем, что один из крупнейших хостеров страны nic.ru просто забил на ежедневные резервные копии. Когда я столкнулся с необходимостью срочно вытащить архив за определенную дату, то ответ мне пришел аж через НЕДЕЛЮ и примерно следующего содержания: «Извините, бекапов за эту дату нет, есть только вот за эту бекап базы и вот за эту бекап файлов, сори постараемся принять меры, но вот только так…». Неделя — это очень долго, когда у тебя горит. Когда проект крупный и простой в один день приносит ощутимый убыток, то ты не будешь дожидаться когда хостер соизволит тебе ответить. В нашем случае пришлось лечить сайт из того, что было. Вручную выискивать и убирать следы заражения сайта + смотреть на бекап месячной давности, который был сделан в ручном режиме.
  • есть еще одна проблема — многие вирусы действуют не сразу, а выжидают некоторое время. Таким образом, есть шанс сделать резервную копию сайта уже с вирусом. У меня так было несколько раз. Уже месяца 3 как стоит система 100% защиты от вирусов и взломов на сайте, а до сих пор продолжаем находить следы предыдущих заражений. Ниже поймете что я имею ввиду.

Традиционные методы: не помогают

Я стал искать в интернете, что люди пишут на этот счет, какие есть методы. К своему огромнейшему сожалению, я обнаружил лишь следующие рекомендации: «Регулярно обновляйте системы управления сайтами, надежно храните пароли от сайтов, не устанавливайте непроверенные дополнения к сайтам«.

На практике эти советы обычно неосуществимы. Возьмем проект, которому несколько лет. Скорее всего работает он на старенькой джумле 1.5. В работе используется куча компонентов. Половина из которых перестали обновляться, другая половина стала платной, третья половина написана фрилансерами, связь с которыми уже давно потеряна.

Даже тупо понять какой из компонентов имеет уязвимости, а какой нет — это уже практически невозможно (если ты сам не хакер).

Ну а насчет регулярных обновлений ЦМСки — это вообще отдельная песня. Начнем с того, что делать это нужно РЕГУЛЯРНО (обычно раз в месяц в среднем выходят обновления).

А во-вторых, обновления легко делаются на сайтах, которые не допиливались напильником (т.е. кроме функционала самой ЦМС на сайте не было никаких доработок кода, не было установлено никаких дополнений и плагинов). Я, например, тупо боюсь делать обновления, потому что нет уверенности, что в данной версии ЦМСки сохранит работоспособность весь текущий функционал сайта. Причем часто можно сразу и не заметить, что что-то отвалилось. Поймешь только когда узнаешь, что заявки с сайта уже неделю как не приходят.

Плюс, при переходе с версии джумлы с 1.5 до 2.0, 2.5, 3.0 — появляются уже серьезные проблемы, связанные с тем, что обновлять приходится все. Начиная с верстки и заканчивая всем программированием, плагинами. В общем вообще все. Если появляются еще проблемы со ссылочной структурой сайта, то тут не исключено пропадание сайта из поисковиков года так на пол.

Я разговаривал с людьми из техподдержки различных хостингов. Говорил, что на практике следовать этим советам практически нереально. Но они только разводили руками. Мол, нереально, ну а без этого гарантировать что с сайтом будет все хорошо нельзя.

К чему мы пришли в итоге

Итак, самая интересная часть моей статьи.

  1. Сначала был поставлен специальный компонент, который производит детектирование изменений файлов на сайте. Когда на хостинге происходит изменение, удаление, или добавление какого-то из файлов, то тут же на почту приходит уведомление об этом. В письме указано время и путь к измененному файлу. Если проверяешь почту каждый день, то о проникновении на сайт узнаешь сразу. Обычно ты знаешь, если ты вел какие-то работы по сайту, что это ложная тревога и изменения на сайте вызваны тобою. Иначе — срочно смотри что изменилось на сайте. Какие файлы добавились.
  2. После этого узнавать о заражениях на сайте стало очень удобно, но была одна проблема, которая не давала мне жить спокойно. Это то, что узнать то о заражении ты узнал. А вот сделать иногда ничего и не можешь, если нет резервной копии. В итоге был написан специальный скрипт, который делает ежедневные бекапы базы сайта + всех основных важных файлов сайта и отправляет эти бекапы на специально-заведенную почту на сервисе Яндекса. Абсолютно автоматически. На почту только приходят отчеты, что бекап выполнен успешно.
  3. В идеале было бы делать такие бекапы всего сайта полностью, но мы не можем отправлять письма размером по гигабайту и более. Поэтому после долгих размышлений, что же делать, было решено делать бекапы всего содержимого сайта полностью и класть эти бекапы в специально-отведенную на хостинге папку. Далее этот бекап тупо скачивается по ftp с локального компьютера. Я для этих целей использую специальный софт xstarter.ru (программа, которая помогает автоматизировать действия в windows). Но можно  и написать скрипт любым другим способом. Скрипт делает ежедневную проверку, не появилось ли новых файлов в ftp-папке и если они появились, то скачивает себе эти новые файлы. В общем, средствами xstarter делается элементарно. А если что-то пошло не так, то скрипт делает уведомление по почте. Кстати, полный бекап делается только в случае, когда на сайте произошли какие-то изменения. А это детектирует скрипт из пункта 1.
  4. Еще хочу немного написать про суть скрипта из пункта 1. Эту идею я взял где-то на просторах рунета. Но скрипты, которые были выложены там, в том виде, в котором они были выложены, не работали, поэтому пришлось значительно дорабатывать тот код. Суть скрипта в том, что он по крону запускается каждые 5 минут и проверяет контрольные суммы по файлам. Деталей я не знаю, не вникал, т.к. подробной работай занимался программист, с которым я сотрудничаю.

Преимущества данного метода

Ну во-первых, о заражении сайта ты узнаешь сразу.

Во-вторых, ты узнаешь о заражении конкретных файлов. Тебе не нужно выискивать долго и муторно, что же конкретно подверглось заражению. Есть точный список.

В-третьих, ты полностью избавлен от необходимости делать регулярные ручные резервные копии.

В-четвертых, ты можешь больше не обновлять систему управления сайтом. Вообще. Никогда!

В-пятых, бекапы делаются гарантированно ежедневно! И они делаются твоими собственными средствами. Ты не зависим от хостера. В процессе восстановления сайта не теряется никакая информация.

В-шестых, ты легко по логам у хостера можешь понять, откуда пришла атака — с какого-то ip-адреса, со скрипта на сайте или из другого места (естественно необходимы некоторые навыки, чтобы это понять, но тем не менее). По итогу просто убиваешь скрипт, или блокируешь ip, или удаляешь дырявый компонент. Или принимаешь другие меры.

Я думаю достаточно преимуществ. Такое спокойствие стоит многое.

Данная защита устанавливается в обязательном порядке на мои проекты и проекты моих клиентов

Кстати, на всех проектах, которые я веду, описанная мною защита устанавливается в обязательном порядке. Не сочтите это за само-рекламу, хотя… а почему бы и нет:) В конце концов это же мой блог:)

10 апреля 2013, 05:04

94

нет комментов

КОММЕНТАРИИ


МОИ КЛИЕНТЫ


ОТЗЫВЫ
О МОЕЙ РАБОТЕ


Спасибо! Вы подписаны на наши обновления

Подписаться на блог