- •1.3.1.2. По цели. С точки зрения защиты, атаки можно рассматривать, как направленные на конкретные составляющие безопасности - конфиденциальность, целостность и доступность.
- •1.3.1.3. По характеру взаимодействия с жертвой. Относительно характера взаимодействия злоумышленника с системой все удаленные атаки можно разделить на "интерактивные" и "безусловные".
- •I am in a harry, I promise you will love it! Attachment: gone.Scr
- •1.3.3.2. Отказ в обслуживании
- •1.3.3.3. Маскировка
- •1.3.3.4. Атаки на маршрутизацию
- •1.3.3.5. Атаки на серверы: cgi и http
- •1.3.3.6. Атаки на клиентов: ActiveX, Java и другие
- •1.3.3.7. Переполнение буфера.
1.3.3.5. Атаки на серверы: cgi и http
Не вдаваясь в подробности функционирования механизма CGI (Common Gateway Interface — Интерфейс Единого Шлюза), скажем, что это набор программ (исполняемых скриптов, интерпретаторов и т. п.), выполняемый на сервере по запросу клиента. Он предназначен обеспечивать динамическое (то есть более гибкое) взаимодействие между удаленным клиентом - браузером и Веб-сервером посредством запуска на серверной стороне приложений, выполняющих задания клиента.
Как и любым другим программам, данному механизму присущ ряд возможных уязвимостей, которые усиливаются тем, что он обслуживает клиентов (пользователей), о которых предварительно ничего не известно, т. е. возможны и потенциальные злоумышленники.
Основные проблемы, связанные с работой CGI, сводятся к тому, что:
О разработчиком допущены ошибки при написании кода;
D в коде оставлены преднамеренные люки;
П злоумышленник получил возможность (права) модифицировать код либо данные, используемые кодом на сервере;
О злоумышленник получил доступ к интерпретатору с правом исполнения команд.
Наиболее часто встречаются уязвимости, относящиеся к ошибкам на этапе разработки, причем в значительной степени это касается необходимости проверок данных, которые поступают от клиента на обработку программой. Этому вопросу был посвящен отдельный бюллетень CERT — CERT Advisory CA-1997-25 Sanitizing User-Supplied Data in CGI Scripts. В качестве примера возможности реализации атаки приведем CERT Advisory CA-1997-24 Buffer Overrun Vulnerability in Count.cgi cgi-bin Program. В документе говорится о программе count. cgi, которая ведет подсчет посещений Веб-вервера. По причине недостаточной проверки данных, вводимых клиентом, возможно произвести переполнение стека. В результате Count.cgi исполнит команды злоумышленника, наделив их при этом правами доступа, равными правам доступа сервиса httpd в данной системе.
В целом, специальным образом подобранные некорректные (в смысле скорее "неожидаемые разработчиком") наборы данных представляют собой угрозу, характерную не только для CGI. Известны случаи, когда использование специальных символов ("/", "." и ряда других) в URL при обращении к Веб-серверу приводило к совсем иным последствиям, чем это предполагалось разработчиками и администраторами Веб-сервера — от отказа в обслуживании до возможности исполнения зловредного кода с высокими привилегиями. Не будем приводить весь список подобных атак — он довольно однообразен (сформированный особым образом URL — в ответ недокументированная реакция сервера). Остановим внимание специалистов на том вопросе, что, обеспечивая защиту своих Веб-серверов, например, с помощью межсетевых экранов, необходимо уделять внимание не только правильной адресации и обращению к службам, но и тому, какие данные получает конкретное приложение. Другими словами, строя защиту, необходимо в анализе угроз подниматься от сетевого и транспортного уровня сетевой модели — вверх до прикладного.
1.3.3.6. Атаки на клиентов: ActiveX, Java и другие
При взаимодействии клиента и Веб-сервера возможен запуск кода и на клиентской стороне; наиболее популярные технологии на сегодняшний день, это Java Virtual Machine и ActiveX. Необходимо сразу осознать, что загружаемый с удаленного сервера код — это набор команд, которые ваш хост (компьютер) будет исполнять, возможно, не информируя вас о результатах. Поэтому и относиться к такому коду следует соответственно. Возможно, мы загружаем этот код с доверенного сервера, но что мы можем, знать о его безопасности? Достаточно ли уверенности, что механизм электронно-цифровой подписи сообщил нам, что код не был модифицирован после того, как его разместил на сервере уполномоченный программист? Возможно, мы считаем, что настройка прав такова, что данный код не сможет получить большие привилегии?
Прежде всего необходимо определиться, что мы хотим от данного кода? Большая часть такого кода в Интернете предназначена для визуализации или озвучивания красивых, в значительной степени рекламных, эффектов при посещении данного сайта. Поэтому необходимо разделять следующее.
П С какого компьютера (хоста) мы сейчас работаем? Это компьютер в Интернет-кафе, обычная пользовательская рабочая станция или компьютер, выполняющий важную роль в сети либо хранящий конфиденциальную информацию?
П Что мы делаем? Либо это просто просмотр новых сайтов для удовольствия, либо поиск необходимой информации в Интернете, либо работа с функциональностью удаленного сервера?
Соответственно этому будут актуальны и разные варианты ответов на вопрос о том, что можно позволить загружаемой программе на нашем компьютере. При развлечении на временном, общедоступном компьютере мы можем загружать все что угодно, какое нам дело до последствий? Если мы ищем справочную информацию, то необходимы ли нам сложные, загружающие память и канал эффекты? Ведь мы ищем чаще всего текст. Графические файлы, исполняемые модули и даже видео-аудио клипы можно скачать отдельно и просмотреть позже, возможно, на другом компьютере соответственно поддержку исполнения загружаемого кода можно отключить.
Другой вариант — работа значимого компьютера с сервером, обеспечивающим доставку некоторой функциональности для выполнения задач. Наиболее очевидный пример — обслуживание организацией своих банковских операций на сервере банка. С одной стороны, и на хосте организации находятся важные финансовые сведения, но, с другой стороны, задача может функционировать в режиме тонкого клиента, т. е. все функциональные компоненты для обработки финансовой информации загружаются с сервера банка. В этом случае поддержка загружаемого кода должна быть включена.
Но должны быть соблюдены все необходимые меры по обеспечению безопасности:
С") идентификация и аутентификация и клиента и сервера;
П создание защищенного канала обмена информацией;
О проверка целостности и авторизованности загружаемого кода;
П обеспечение настройки прав, с которыми будет работать код;
D доступность данных для кода и т. п.