Взлом сайта

02.04.2013
К нам в компанию поступил запрос: 
"На сервере происходит что-то странное, периодически беспричинно возрастает нагрузка, пользователи форума жалуются на то, что от их имени уже кто-то заходил в админку. Пожалуйста, проведите аудит безопасности и выясните причины непонятной активности!" 

В результате анализа сервера была обнаружена уязвимость позволяющая с помощью специально сформированного запроса удаленно получить хеши паролей пользователей сайта. Был обнаружен и ликвидирован веб шелл бэкдор (php cкрипт, позволяющий управлять сервером в обход легитимных механизмов доступа) залитый хакером после взлома сайта. 

После проведения анализа клиенту был предоставлен отчет, содержащий список обнаруженных уязвимостей + рекомендации по защите сервера от взлома

Отчет: 

Oleg      Добавлено:08 Apr 2013 16:06 
08.04.2013 www.xxxxxxxx.by 

Общий уровень безопасности сайта можно оценить на 4 из 10 баллов. 
Обнаруженные уязвимости: 

Открытый порт 11212/tcp 
Класс: Information leakage 
Уровень опасности: высокий 
Риск: удаленный пользователь с помощью специально сформированного запроса может получить список хешей паролей на целевой системе. 

Пример: 

a:2:{s:4:"tags";a:1:{s:26:"xxxxxxxxx_ru_cabinet_users";s:10:"1365408708";}s:4:"data";a:1:{s:4:"data";a:40:{s:2:"id";s:5:"44371";s:4:"date";s:10:"1344886489";s:5:"dauth";s:10:"1365409301";s:5:"login";s:10:"valera1605";s:8:"password";s:32:"fd34e134a5a8b0307617dde8e35ac4b2";s:4:"name";s:37:" 
a:2:{s:4:"tags";a:1:{s:26:"xxxxxxxxx_ru_cabinet_users";s:10:"1365408708";}s:4:"data";a:1:{s:4:"data";a:40:{s:2:"id";s:5:"35178";s:4:"date";s:10:"1322946033";s:5:"dauth";s:10:"1365409816";s:5:"login";s:8:"fedordeg";s:8:"password";s:32:"fbd377027b8ca1b4ac99a93355621295";s:4:"name";s:31:" 
a:2:{s:4:"tags";a:1:{s:26:"xxxxxxxxx_ru_cabinet_users";s:10:"1365408708";}s:4:"data";a:1:{s:4:"data";a:40:{s:2:"id";s:5:"14511";s:4:"date";s:10:"1268312193";s:5:"dauth";s:10:"1365409252";s:5:"login";s:4:"dsh1";s:8:"password";s:32:"24ee06013868ffb0adb0e24bf6612052";s:4:"name";s:25:" 
a:2:{s:4:"tags";a:1:{s:26:"xxxxxxxxx_ru_cabinet_users";s:10:"1365408708";}s:4:"data";a:1:{s:4:"data";a:40:{s:2:"id";s:5:"49971";s:4:"date";s:10:"1355248366";s:5:"dauth";s:10:"1365409350";s:5:"login";s:6:"m_ilya";s:8:"password";s:32:"736bb80b4ac0d5beb908c681d1a149e1";s:4:"name";s:27:" 
a:2:{s:4:"tags";a:1:{s:26:"xxxxxxx_ru_cabinet_users";s:10:"1365408708";}s:4:"data";a:1:{s:4:"data";a:40:{s:2:"id";s:5:"47090";s:4:"date";s:10:"1349878131";s:5:"dauth";s:10:"1365409775";s:5:"login";s:8:"egunov86";s:8:"password";s:32:"16450ad9db8763ad921aa56efffc85d0";s:4:"name";s:31:" 
a:2:{s:4:"tags";a:1:{s:26:"xxxxxxx_ru_cabinet_users";s:10:"1365408708";}s:4:"data";a:1:{s:4:"data";a:40:{s:2:"id";s:5:"55534";s:4:"date";s:10:"1364985014";s:5:"dauth";s:10:"1365409123";s:5:"login";s:9:"sacha0700";s:8:"password";s:32:"62a1f2c31c8f01e00a04e3f01b264a6d";s:4:"name";s:41:" 
a:2:{s:4:"tags";a:1:{s:26:"xxxxxxx_ru_cabinet_users";s:10:"1365408708";}s:4:"data";a:1:{s:4:"data";a:40:{s:2:"id";s:5:"37278";s:4:"date";s:10:"1328693356";s:5:"dauth";s:10:"1365409884";s:5:"login";s:5:"Gubko";s:8:"password";s:32:"405e28906322882c5be9b4b27f4c35fd";s:4:"name";s:23:" 

login Gubko 
password 1978 
fedordeg 
060879 
Hermanovich 
12345678 
Klimov555 
3411811 

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

2. Предсказуемое расположение ресурсов (Predictable Resource Location) 
http://www.xxxxxxx.by/admin.php 
Уровень опасности: низкий 
Риск: способствует проведению ряда атак 
Решение: двуфакторная аутентификация (установка дополнительного пароля на админку) 

3. Обнаружен веб шелл бэкдор здесь http://www.xxxxxxx.by/files/xxxxxxx/file/inc.php 
Указанный скрипт позволяет читать и писать, выполнять произвольные команды, организовывать спам и ддос атаки. 
Указанный файл после ознакомления, разумеется, следует удалить. 

Судя по дате залитого скрипта 

/var/www/xxxxxxx.by/www/files/xxxxxxx/file 
-rwxrwxr-x 1 xxxxxxx tape 24892 Mar 9 2012 inc.php 

взлом произошел не позднее 9 марта 2012 года. 
Давняя дата не позволяет по лог файлам восстановить сценарий атаки для выявления первопричины взлома.  С большой долей верояности вредоносный файл был залит через один из уязвимых скриптов вашего сайта. 
Также вероятен вариант, когда вредоносный скрипт был залит благодаря скомпрометированным данным доступа администратора в панель управления сайтом. 
Инструменты автоматической проверки не выявили SQL Injection, PHP-Including и др. опасных уязвимостей. 

Рекомендации: построчный аудит кода (данная работа на выявление должным образом не фильтруемых переменных должна быть проведена при участии вашего веб разработчика), отключение потенциально опасных php функций (exec,shell_exec,system,passthru,popen,proc_open), смена всех паролей в особенности муsql (мог быть прочитан через веб шелл). 


Клиент Виталий    Добавлено:08 Apr 2013 16:23 

Другими словами сайт был взломан, но понять что было сделано - невозможно, я правильлно понял? 
Можно ли ПРЕДПОЛОЖИТЬ, к чему мог иметь доступ хакер? Например в базе данных заявок, фирм, паролям и т.п. Нужно экспертное заключение. 

Спасибо. 

Oleg     Добавлено:08 Apr 2013 16:27 
Читать, писать, БД могла быть слита - технически это возможно. 
У владельца данного скрипта был неограниченный доступ ко всем файлам и базам данных сайта www.xxxxxxx.by 

Клиент Виталий    Добавлено:08 Apr 2013 22:28 
Вы не могли бы составить для нас полный список рекоммендаций по безопасности сайта, защите от злоумышленников на уровне 
- сервера 
- админки (бекенд) 
- сайта (фронэнда) 
- сотрудников 
- и т.д. другие аспекты? 

Oleg     Добавлено:08 Apr 2013 23:01 
Доброй ночи! 

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

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

После прекращения тестирования и тем более после перезагрузки сервера - состояние сервера становится идентичное тому, что было до тестирование, поэтому ошибки на других сайтах, которые есть сейчас 100% не связаны с тестированием которое мы проводили, тем более никаких изминений в серверную конфигурацию с нашей стороны не вносилось. 


Рекомендации: 

На уровне сервера - достаточно регулярно обновлять установленое ПО, особенно если речь идет о критических обновлениях безопасности. Количество открытых портов должно быть минимальным. 11212 необходимо закрыть. Если вы не используете mysql удаленно - 3306 также лучше закрыть. 

Админка - двуфакторная аутентификация административной панели (установка дополнительного пароля средствами apache 

.htaccess 

открываем тег Files "admin.php", закрываем тег 
Deny from all 
Allow From 178.165.81.238 (вместо примера должен быть ваш IP) 
открываем тег /files, закрываем тег 

Код - рекомендуется провести построчный аудит кода (данная работа на выявление должным образом не фильтруемых переменных должна быть проведена при участии вашего веб разработчика). Значения попадающие в базу должны по возможности фильтроваться (основы правильного написания безопасного php кода http://www.programmersclub.ru/%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C-php-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D0%BF%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B8%D0%B2%D1%88%D0%B8%D1%85-%D0%B4/) 

Настройки PHP - потенциально опасные php функций нужно отключить (перечисленные функции не должны использоваться в ваших скриптах) (exec,shell_exec,system,passthru,popen,proc_open) - отключаются через php.ini После внесения изменений требуется перезагрузить апач. 

Смена всех паролей в особенности муsql (мог быть прочитан через веб шелл). 

Сотрудники имеющие административный доступ к сайту должны быть уведомлены о возможных попытках взлома методом социальной инженерии (http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%8F) 

Компьютеры с которых осуществляется ftp подключение должны быть защищены антивирусом с актуальными базами.

Возврат к списку

Рекомендуемый хостинг решений 1С-Битрикс
Сертификаты
15 лет на рынке Тысячи довольных клиентов
Золотой сертифицированный партнер 1С-Битрикс Рекомендуемый хостинг-партнер 1С-Битрикс
6 дата-центров в Беларуси и Европе
EQUNIX Белтелеком BeCloud