uXfvlJoWub.jpg

Настройка CGI-сценариев

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

CGI-сценарии представляют очень серьезную угрозу для безопасности системы, поэтому при их использовании надо принимать специальные меры предосторожности. Если сценарию требуются специальные привилегии, разработчик может установить признаки setuid или setgid. В обычных условиях Web-сервер обладает достаточно низкими полномочиями, так как запускается от имени непривилегированного пользователя nobody; с теми же полномочиями выполняются и процессы, порождаемые сервером. Однако если Web-сервер настроен неправильно, его дочерние процессы, в том числе CGI-сценарии, могут иметь права root. В подобной ситуации удаленный пользователь имеет возможность передать сценарию данные, подобрав их так, чтобы получить контроль над ним и зарегистрироваться в системе с правами root.


В документации на сервер Apache (ее можно получить на сервере www.apache.org) приведены рекомендации, позволяющие уменьшить опасность для системы. Кроме того, при организации службы Web в сети желательно принять дополнительные меры. Одна из них заключается в применении сервера-посредника cgiwrap, который защищает CGI-сценарии подобно тому, как ТСР-анализатор защищает сетевые службы. Вторая мера сводится к проверке данных, введенных пользователем, перед обращением к системным ресурсам.

Опубликовано в Разное
/
20 Июл 2014