Защита сайтов

       

Защита от "Дурачка".


Вы когда-нибудь изучали web сервер в Internet, путем модификации его URL? К примеру, давайте взглянем на U.S. Census Page, которая находится по адресу http://cedr.lbl.gov/cdrom/doc/lookup_doc.html

Предположим, что мы заинтересованы в том, чтобы также и другие файлы находились в каталоге "/doc" (это могут быть документы, находящиеся в стадии разработки, или просто документы о которых забыли, или же документы, предназначеные для внутреннего пользования). Теперь просто удаляем часть строки, содержащую имя документа "lookup_doc.html". Останется "http://cedr.lbl.gov/cdrom/doc/". И наблюдаем, настроен ли их сервер на генерацию динамического списка.

В данном случае фокус удался и мы получаем сгенерированный сервером динамический индекс каталога "/doc", методом удаления части строки.

Таким образом мы можем видеть сгенерированный список всех файлов и подкаталогов. Фактически, множество серверов в сети сконфигурированы так, что если пользоватьель не указал конкретного имени документа, типа "index.html", то сервер выведет распечатку каталога очень похожую на эту. Все бы ничего, но если сервер настроен так, что можно аналогичным способом получить индекс каталога, где находятся cgi-скрипты, то последствия могут обернуться для системы очень плачевно:

Что вы думаете произойдет, когда пользователь нажмет на файл "auth.setup"? Так как web-сервер должен будет выполнить этот CGI скрипт, соответственно он должен будет также иметь разрешение на его чтение. Таким образом хакер получит содержимое вашего setup-файла в окне браузера. Как вы понимаете данный файл может содержать в себе различные ключи, пути, кофигурационные настройки - и это не единственные файлы несущие в себе компроментирующие данные. Другие файлы могут оказаться файлами паролей, временными файлами, файлами пользователей и другими файлами, которые могут дать хакеру информацию, позволяющую использовать вашу систему в его интересах.

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


  • Конфигурируйте свой web- сервер так, чтобы он не генерировал динамических индексов, а выдавал сообщение об ошибке.

  • Конфигурируйте свой web-сервер так, чтобы он не выполнял никаких файлов кроме *.cgi, и тех, который не находятся в каталоге /cgi-bin

  • Предоставте серверу файл index.html, даже если он не несет в себе никакой информации. Таким образом если даже сервер некорректно сконфигурирован с точки зрения CGI безопасности, хакер не сможет воспользоваться данной лазейкой.

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

    Другими словами, если я знаю, что вы используете CGI крипт с правами на запись, кторый в свое время использует файл "users.dat" в каталоге "/ScriptA/Users", то я могу обратится к нему непосредственно следующим способом:

    http://www.yourdomain.com/cgi-bin/ScriptA/Users/users.dat

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


    Содержание раздела