Функции CGI-программ мощные, но именно из-за этого, если вы, как CGI-разработчик или системный администратор, не будете уделять внимание написанию и настройке CGI-программ, ваша система будет пронизана дырами. В этой статье обсуждаются вопросы безопасности CGI.
3. Безопасность компьютерной графики
Программа CGI обладает мощными функциями. Она может не только выполнять функции обычных программ, но также публиковать результаты работы программы в Интернете. Но именно потому, что функции программ CGI настолько мощны, если вы, как разработчик CGI или системный администратор, не уделяете внимания написанию и настройке программ CGI, ваша система будет пронизана дырами, что позволит некоторым нелегальным пользователям воспользоваться преимуществами. из них.
Упомянутая здесь безопасность вызвана не спецификацией CGI, а неправильным программированием и настройками системы. Спецификация CGI позволяет пользователям воспользоваться вычислительной мощностью сервера. Неправильные вычисления на сервере приводят к уязвимостям безопасности системы. Ниже я привожу уязвимость безопасности CGI в системах UNIX. Эта уязвимость очень распространена.
# !/usr/local/bin/perl
# formmail.cgi
требуется «cgi.pl»;
# Запуск приложения электронной почты «/bin/mail» с заголовком «Тема:» из поля «имя формы».
open (MAIL, "|/bin/mail -s '".$input{"formname"}."' webweave");
# Добавить поле отправки «formcontents» в тело сообщения
PRint MAIL $input{"formcontents"};
закрыть(ПОЧТА);
выход (0);
В этом примере программа CGI отправляет информацию о форме в /bin/mail и отправляет ее на сервер Webveave. В большинстве случаев эта программа CGI может нормально выполнить задачу, но эта программа CGI не фильтрует информацию, введенную пользователем в веб-форму, тем самым создавая угрозу безопасности. Когда пользователи или люди со скрытыми мотивами вводят неправильные данные, это может вызвать системные ошибки или получить неправомерные разрешения.
Например, пользователь заполняет следующее содержимое в «имя формы» веб-формы:
"ls /etc/passwd '[email protected] #'
Содержимое /etc/passwd будет отображаться в веб-браузере пользователя. Если файл passwd этой системы UNIX не имеет тени, пользователь может использовать это содержимое, чтобы попытаться взломать пароль с помощью Crack Jack или Crack john!
Как упоминалось ранее, безопасность CGI является обязанностью как программистов, так и системных администраторов. Теперь я расскажу о вещах, на которые им обоим следует обратить внимание:
Должность системного администратора:
1. Сотрудничайте с программистами, чтобы обмениваться информацией о безопасности серверов, одновременно проверять коды друг друга и своевременно обнаруживать проблемы безопасности в коде.
2. Используйте хорошее серверное программное обеспечение и часто посещайте веб-сайт серверного программного обеспечения, чтобы узнавать самую свежую информацию.
3. Ограничьте пользователей сервера определенными сетевыми хостами, используйте функцию управления безопасностью сервера, установите контроль доступа к маршрутизации и т. д.
4. Ограничить функции CGI, ограничить доступ к некоторым расширенным службам доверенным пользователям, ограничить использование протестированных программ CGI разработчиками и предоставлять пользователям только проверенные программы CGI.
5. При использовании чужих CGI-программ внимательно проверяйте код.
6. Ограничьте использование программ CGI защищенной средой, настройте сервер на доступ непривилегированных пользователей и настройте рабочую учетную запись или группу специально для программ CGI.
7. Настройте сервер, на котором работает программа CGI, за пределами брандмауэра. Следует отметить, что сервер, на котором работает программа CGI, должен быть настроен за пределами брандмауэра, как только нелегальные пользователи обнаружат уязвимость безопасности. сервер программы CGI, они будут. Вы сможете контролировать все хосты внутри брандмауэра!
8. Уменьшите приоритет запуска программ CGI, чтобы предотвратить злонамеренный запуск пользователями большого количества программ CGI, вызывающих перегрузку сервера.
9. Подпишитесь на электронную рассылку о сетевой безопасности и участвуйте в группах новостей по сетевой безопасности.
Вакансии CGI-программиста:
1. Сотрудничайте с системным администратором, чтобы понять информацию о безопасности системы и проверить коды друг друга.
2. Используйте надежные библиотечные программы и проверяйте исходный код библиотечных программ.
3. Получите имя клиента из REMOTE_HOST и ограничьте некоторые расширенные функции доверенными клиентами.
4. Если веб-сервер предоставляет подтверждение пароля HTTP, используйте пароль HTTP для ограничения доступа.
5. Фильтруйте ввод пользователя и удаляйте недопустимые входные данные.
6. Ограничьте размер входных данных, чтобы предотвратить перегрузку сервера злоумышленниками путем ввода больших объемов данных.
7. Избегайте передачи пользовательских данных в другие приложения, чтобы пользователи не могли вызывать интерпретатор команд или использовать уязвимости безопасности в других приложениях.
8. Когда вы обнаружите уязвимость в программе CGI, никому не говорите, не говоря уже о том, чтобы оставлять комментарии в программе. Вам следует немедленно исправить уязвимость.
9. Научитесь быть злоумышленником и узнайте уязвимости безопасности CGI-программ.