Про безопасность хостингов

1 Дек
2011

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

Про основные виды уязвимостей:

Самое, пожалуй, популярное — выполнение php скриптов от www-data(apache), встречается достаточно часто, даже на бывалых хостингах. Буквально на днях, тестировал один хостинг, работающий на рынке 4 года, и скрипты у них выполнялись под юзером apache. На взлом таких хостингов обычно уходит не более 10минут. Необходимый набор: php-shell, небольшое знание unix-команд, типа ls -al, cat, wget.
Так, например, получить конфиг «соседа» можно проще простого, выполнив
cat /home/%username%/%domain_name%/config.php
, про заливку шелла и взлом самого хостинга, говорить пожалуй не стоит, во избежание инцидентов.

mpm-itk, suphp — не панацея.
На большинстве хостингов таки устанавливают mpm-itk, или suphp и думаю, что этого достаточно. Но помимо этого, существуют другие виды чтения чужих файлов, например, через mysql — да-да, через него. На самом деле, такой функционал изначально заложен в mysql, для получения данных из файла используется команда:
load data local infile '/path_to_file' into ........;
Правда, срабатывает это только в том случае, если у файла chmod >= 644. Закрывается достаточно просто, добавлением
local-infile=0
в my.cnf

Про nginx
Cкажете: «а как он относится к взлому сайтов» — Очень даже относится, с помощью него, можно получать читать файлы других пользователей, тот-же config.php. Практически на всех хостингах, стоит nginx для раздачи статики, пользователь под которых он работает nginx (www-data) имеет права на доступ ко всех директориям и файлам в них (/var/www/… (/home/user/…/, etc.)), исключая только то, на что установлен chmod, запрещающий чтение файлов для группы пользователя (обычно 700 для директорий и 600 для файлов). Для получение содержимого файла достаточно воспользоваться обычными симплинками:
ln -s /path_to_file/config.php image.gif.
Данный баг, если его можно так назвать, работает практически на всех хостингах (было выбрано 20 из топа серча и маула, сработало на 18).
Для его закрытия, есть много вариантов, один из которых, предложенный Игорем Сысоевым:
mount -o nosymfollow
вариант не самый лучший, ибо во многих цмс используются симплинки.
В настоящее время, я пишу патч для nginx’a, проверяющий пути симплинков.

Про server-status и биллинг
Многие биллинги, для создания\изменения клиентов отправляют POST с данными в панели управления, в server-status, если он не закрыт от случайных посетителей можно без проблем увидеть содержимое POST, в котором будет пароль от пользователя, который используется для создания\изменения\удаления клиентов.

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



загрузка...

Комментарии:

Наверх