Мой сайт взломали
Материал из DiPHOST.Ru wiki system
(Различия между версиями)
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) (→Лечение) |
||
(15 промежуточных версий не показаны.) | |||
Строка 7: | Строка 7: | ||
== Как ломают == | == Как ломают == | ||
- | + | * Загружают на сайт свой файл с расширением ''.php'' (который уже в свою очередь содержит программу, позволяющую получить полный доступ к аккаунту на сервере) и исполняют его. Это самый распространенный способ взлома. Как загружают? Через неаккуратно написанные куски программ, не проверяющих возможность такой загрузки. В большинстве случаев вы даже не подозреваете, что такие места есть. | |
- | + | * Как и в предыдущем пункте загружают куда-то файл ''.php'' начинающийся с '''GIF89'''. Большинство программ на PHP используют функцию file_info() для проверки типа содержимого файла, и она считает загружаемый файл картинкой за счет заголовка '''GIF89'''. Т.е. даже если проверка подразумевается и разрешены только картинки - сайт будет взломан. Обычно это функции заливки аватарок, смайликов и прочего. Причем в большинстве случаев вы даже не подозреваете о наличии данного функционала. | |
- | + | * Подбирают пароль к админке. Компьютеры мощные, сеть быстрая, можно делать миллионы попыток много дней - это всё равно делают роботы. | |
+ | * Остальные способы достаточно редкие. Взломщикам интересны простые и быстрые способы взлома. | ||
- | == | + | == Профилактика == |
- | + | === Что может сделать хостинг === | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | * Используется автоматическая блокировка IP по статистике обращений к определенному URL, или статистике ошибок обращений к URL. Например система [http://www.fail2ban.org fail2ban]. Статистика собирается по общему журналу обращений ко всем сайтам сервера, что делает её сильно эффективнее статистики, которую может собрать каждый сайт в отдельности. | ||
+ | |||
+ | === Что можно и _нужно_ сделать самостоятельно === | ||
+ | |||
+ | * Найти все места, где точно не может быть скриптов PHP (например /js/, /css/, /upload/, /images/) и запретить там исполняться файлам с расширением ''.php''. Сделать это следует аккуратно и точно всё проверить. Как запретить? В каталоге, где мы хотим запретить исполнять файлы ''.php'', создаем файл ''.htaccess'' с такими директивами (можно просто copy-paste отсюда): | ||
+ | <FilesMatch \.php$> | ||
+ | ForceType text/html | ||
+ | SetHandler default-handler | ||
+ | </FilesMatch> | ||
+ | * Использовать (там где это возможно и корректно) наши рецепты nginx, в которых уже предопределены некоторые правила безопасности для типовых случаев: http://wiki.diphost.ru/Cookbook_nginx | ||
+ | * Закрыть вход в "админку" сайта паролем: http://wiki.diphost.ru/Htpasswd | ||
+ | |||
+ | == Лечение == | ||
+ | |||
+ | Когда сайт уже взломан, простого и универсального пути решения проблемы нет: | ||
+ | * Количество загруженных вредоносных файлов может быть огромным | ||
+ | * Некоторые ''нормальные'' файлы могут быть заражены и/или испорчены | ||
+ | |||
+ | К сожалению, антивирусного решения, которое могло бы проверить исходный код сайта и обнаружить или удалить с него вредоносный код, в настоящий момент не существует. Но существуют достаточно эффективные сканеры и взломов и ''дырок''. Мы рекомендуем использовать [https://revisium.com/ai/ AI-Bolit] | ||
+ | |||
+ | И конечно же следует приготовиться к денежным тратам и обратиться к специалистам. | ||
+ | |||
+ | == Что можно почитать на тему безопасности сайтов == | ||
+ | |||
+ | Для интересующихся проблемами взлома сайтов мы рекомендуем блог отличной компании "Ревизиум": | ||
+ | * [https://www.facebook.com/Revisium "Ревизиум" в Facebook] | ||
+ | * [https://vk.com/siteprotect "Ревизиум" в Вконтакте] | ||
[[Category:FAQ:Tech]] | [[Category:FAQ:Tech]] | ||
[[Category:SomeProblems]] | [[Category:SomeProblems]] |
Текущая версия на 11:38, 12 мая 2016
Взлом сайта на сегодняшний день является очень распространенной проблемой. Ломают и самописные сайты, и сайты на CMS с открытым исходным кодом, и коммерческие CMS.
Содержание |
Как ломают
- Загружают на сайт свой файл с расширением .php (который уже в свою очередь содержит программу, позволяющую получить полный доступ к аккаунту на сервере) и исполняют его. Это самый распространенный способ взлома. Как загружают? Через неаккуратно написанные куски программ, не проверяющих возможность такой загрузки. В большинстве случаев вы даже не подозреваете, что такие места есть.
- Как и в предыдущем пункте загружают куда-то файл .php начинающийся с GIF89. Большинство программ на PHP используют функцию file_info() для проверки типа содержимого файла, и она считает загружаемый файл картинкой за счет заголовка GIF89. Т.е. даже если проверка подразумевается и разрешены только картинки - сайт будет взломан. Обычно это функции заливки аватарок, смайликов и прочего. Причем в большинстве случаев вы даже не подозреваете о наличии данного функционала.
- Подбирают пароль к админке. Компьютеры мощные, сеть быстрая, можно делать миллионы попыток много дней - это всё равно делают роботы.
- Остальные способы достаточно редкие. Взломщикам интересны простые и быстрые способы взлома.
Профилактика
Что может сделать хостинг
- Используется автоматическая блокировка IP по статистике обращений к определенному URL, или статистике ошибок обращений к URL. Например система fail2ban. Статистика собирается по общему журналу обращений ко всем сайтам сервера, что делает её сильно эффективнее статистики, которую может собрать каждый сайт в отдельности.
Что можно и _нужно_ сделать самостоятельно
- Найти все места, где точно не может быть скриптов PHP (например /js/, /css/, /upload/, /images/) и запретить там исполняться файлам с расширением .php. Сделать это следует аккуратно и точно всё проверить. Как запретить? В каталоге, где мы хотим запретить исполнять файлы .php, создаем файл .htaccess с такими директивами (можно просто copy-paste отсюда):
<FilesMatch \.php$> ForceType text/html SetHandler default-handler </FilesMatch>
- Использовать (там где это возможно и корректно) наши рецепты nginx, в которых уже предопределены некоторые правила безопасности для типовых случаев: http://wiki.diphost.ru/Cookbook_nginx
- Закрыть вход в "админку" сайта паролем: http://wiki.diphost.ru/Htpasswd
Лечение
Когда сайт уже взломан, простого и универсального пути решения проблемы нет:
- Количество загруженных вредоносных файлов может быть огромным
- Некоторые нормальные файлы могут быть заражены и/или испорчены
К сожалению, антивирусного решения, которое могло бы проверить исходный код сайта и обнаружить или удалить с него вредоносный код, в настоящий момент не существует. Но существуют достаточно эффективные сканеры и взломов и дырок. Мы рекомендуем использовать AI-Bolit
И конечно же следует приготовиться к денежным тратам и обратиться к специалистам.
Что можно почитать на тему безопасности сайтов
Для интересующихся проблемами взлома сайтов мы рекомендуем блог отличной компании "Ревизиум":