Защита и обслуживание CGI и других сервисных программ
Мы говорим о производительности, которой располагает Web-сервер для пересылки динамической информации через различные интерфейсы. Эти интерфейсы запрограммированы с использованием сценариев, встроенных команд или языков программирования, которые создают определенные проблемы при защите серверов. Наибольшая опасность заключается в том, что в таких программах могут быть случайные ошибки, алгоритмические ошибки или другие проблемы, связанные с языком программирования. Языки сценариев имеют команды, выполняющиеся внешними программами, в которых могут быть свои ошибки, бреши в защите или незадокументированные особенности, которые тоже могут привести к нарушениям безопасности.
В наше время, когда цикл разработки системы происходит в "эпоху Internet", возникает множество неожиданных проблем в программах в связи с тем, что они эксплуатируются пользователями, а поставляются разработчиками. Не вдаваясь в тонкости развития программного обеспечения, правила должны учитывать современную практику с требованиями присутствия программного обеспечения "вчерашнего дня". Эти правила также не должны быть связаны с правилами разработки программного обеспечения.
При разработке правил для этих вспомогательных программ необходимо рассмотреть два аспекта.
Ревизия программ на предмет выявления ошибок и брешей в защите обычно представляет собой важный этап процесса разработки программного обеспечения, но существует тенденция сдавать в эксплуатацию программное обеспечение, не проведя надлежащего тестирования. Разработав правило, требующее провести такую ревизию, можно надеяться, что разработчики потратят немного дополнительного времени на обеспечение гарантий того, что с этими программами не будет проблем. Формулировка правил может выглядеть следующим образом.
Вспомогательные программы для Web-cepвepoв должны подвергаться тщательной проверке всех компонентов.
Во время ревизии проверяются рабочие характеристики этих программ на предмет непредвиденных результатов по причине сбоев в работе. Кроме того, в процессе ревизии необходимо рассмотреть возникшие проблемы безопасности системы и сети.
Теперь необходимо сосредоточиться непосредственно на элементах программного обеспечения. Существуют два аспекта, по поводу которых стоит беспокоиться. Во-первых, если какой-либо элемент программного обеспечения не используется, то он не должен загружаться или нужно выбрать такую конфигурацию, чтобы сервер его не использовал. Другая проблема состоит в том, что когда эти элементы используются, то следует позаботиться о проблемах безопасности, выявленных исследовательскими группами безопасности, поставщиками и взломщиками. Иногда создается впечатление, что предостережения касательно брешей в защите серверов или программ, генерирующих содержимое, появляются сами еженедельно.
Правила в этих областях довольно сложно трактовать. Если ваша организация использует внешние WеЬ-серверы, то определить их потенциальные проблемы довольно сложно. Можно попробовать заключить соглашение при подписании контракта, которое согласовывалось бы с вашими правилами, но все равно это будет намного сложнее, чем если бы ваша организация имела собственные Web-серверы. Ваши администраторы не могут просто проводить новые патчи или менять конфигурацию, так как не могут быть уверены в том, что эти обновления не приведут к неправильной работе или к выходу из строя сервера или программного обеспечения.
Существует слишком много вариантов, поэтому невозможно решить эти проблемы, составив всего лишь одну формулировку правил. В следующем примере из нескольких различных правил извлечены общие положения и составлена одна общая формулировка. Предлагается в вашей организации использовать нижеследующий пример в качестве руководства по разработке собственного правила, а не в качестве образца, который можно вставить в правила.
Web-серверы должны быть установлены и сконфигурированы так, чтобы обеспечить функционирование только тех вспомогательных систем, которые необходимы для поддержки операционной среды.Администраторы должны отслеживать сообщения систем оповещения о нарушениях безопасности на предмет обнаружения уязвимых мест в установленных компонентах системы. Для тестирования и проведения патчей в установленных компонентах системы администраторы должны работать совместно с программистами и ответственными за информацию лицами.