Основы безопасности WEB-серверов
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Институт кибернетики
Направление – ПО вычислительной техники и автоматических систем
Кафедра – Информатики и проектирования систем
____ Основы безопасности WEB-серверов _______ __
Наименование реферата
Выполнил студент гр. 3-8081 _______ А.А. Киреев
Подпись Дата
Проверил доцент ________ ________ И.А.Ботыгин
Подпись Дата
Томск, 2013
Содержание
1.Актуальность 3
2. Причины 4
3. Уровни безопасности 9
4.Защита 10
5.Заключение 18
6.Литература 19
1.Актуальность
В настоящее время человек все больше и больше переносит сферы своей жизни в информационную структуру. Все больше и больше он становиться зависим от безопасности данной информационной структуры. Банки, интернет-магазины, многие среды комуникации (e-mail, Skype, социальные сети); в настоящие время многие отделения медицинских образований используют базы данных; наша зарплата, пенсии, страховки – все это где-то храниться в сетевых хранилищах.
Что если
однажды, по вине халатности – уязвимости
в безопасности сетевого хранилища
– большая часть сферы
Это будет фатально для человека. Нет денег, нет возможности получить квалифицированную медицинскую помощь, нет будущего.
Все данные которые мы используем и видим в интернете находяться на web-сервере. За сохранность данных и отвечать безопасность web-серверов.
WEB-сервер
достаточно сложная и потому
уязвимая для атак программа.
Причем угрозы могут исходить
из самых неожиданных мест. Так
в конце июня 1997 года было обнаружено,
что Windows-95 (и NT) “повисает” (полный
перечень причин повисания
2. Причины
Большинство организаций, маленьких или больших, уделяя много внимания оформлению своих сайтов, порой пренебрегают основами их безопасного существования. Недавние атаки на Web-сайты показали, что работоспособность серверов может быть нарушена даже в результате перегрузки одного или нескольких сервисов.
Разновидностей данных атак довольно много, рассмотрим основные из них:
- Аутентификация
- Подбор (Brute Force). Подбор, или просто "брут", как его ласково любят называть хакеры, представляет собой автоматизированный процесс проб и ошибок, основной задачей которого является угадывание имени пользователя, пароля, номера кредитной карточки, ключа шифрования и т.д. Многие системы позволяют использовать слабые пароли или ключи шифрования, и пользователи часто выбирают легко угадываемые или содержащиеся в словарях парольные фразы. Трагизм еще и в том, что пользователи намеренно выбирают простые пароли, т.к. сложные, помимо времени ввода, неудобны еще и тем, что легко забываются.
- Недостаточная аутентификация (Insufficient Authentication) Данная уязвимость возникает тогда, когда web-сервер позволяет атакующему получать доступ к важной информации или функциям сервера без должной аутентификации. Атаки подобного рода очень часто реализуются посредством интерфейса администрирования через Web. Чтобы не использовать аутентификацию, некоторые ресурсы по дефолту "сидят в укромном месте" по определенному адресу, который не указан на основных страницах сервера или других общедоступных ресурсах. Однако подобный подход не более чем "безопасность через сокрытие". Важно понимать, что, несмотря на то, что злоумышленник не знает адреса страницы, она все равно доступна через Web.
- Небезопасное восстановление паролей (Weak Password Recovery Validation). Данная уязвимость реализуется благодаря тому, что web-сервер позволяет атакующему несанкционированно получать, модифицировать или восстанавливать пароли других пользователей. Часто аутентификация на web- сервере требует от пользователя запоминания пароля или парольной фразы (ну кто из нас не помнит, как при регистрации на mail.ru нас вежливо просили ввести имя бабушки из Гваделупы;-)).Строгая политика безопасности предусматривает, что только пользователь должен знать пароль, причем помнить его отчетливо. Но, как оно всегда бывает, со временем пароль забывается. Ситуация усложняется еще и тем, что у многих по несколько электронных ящиков. Примером реализации подобной функции является использование "секретного вопроса", ответ на который указывается в процессе регистрации. Вопрос либо выбирается из списка, либо вводится самим пользователем. Еще один механизм позволяет пользователю указать "подсказку", которая поможет ему вспомнить пароль. Другие способы требуют от пользователя указать часть персональных данных — таких, как номер паспорта, домашний адрес, почтовый индекс и т.д., — которые затем будут использоваться для установления личности. После того, как пользователь докажет свою идентичность, система отобразит новый пароль или перешлет его по почте. Уязвимости, связанные с недостаточной проверкой при восстановлении пароля, возникают, когда атакующий получает возможность используемый механизм. Это случается, когда информацию, используемую для проверки пользователя, легко угадать или сам процесс подтверждения можно обойти. Система восстановления пароля может быть скомпрометирована путем использования подбора, уязвимостей системы или из-за легко угадываемого ответа на секретный вопрос. Примеры. Многие серверы требуют от пользователя указать его e-mail в комбинации с домашним адресом и номером телефона. Эта информация может быть легко получена из сетевых справочников. В результате данные, используемые для проверки, не являются большим секретом. Кроме того, эта информация может быть получена злоумышленником с использованием других методов — таких, как межсайтовое выполнение сценариев или фишинг. Одно из слабых звеньев — несомненно, парольные подсказки. Сервер, использующий подсказки для облегчения запоминания паролей, может быть атакован, поскольку подсказки помогают в реализации подбора паролей. Пользователь может использовать стойкий пароль — например, "27Пуаро10" с соответствующей подсказкой: "детектив". Атакующий может заключить, что пользовательский пароль состоит из даты рождения и имени любимого автора пользователя. Это помогает сформировать относительно короткий словарь для атаки путем перебора.
- Авторизация (Authorization)
- Предсказуемое значение идентификатора сессии (Credential/Session
Prediction). Предсказуемое значение идентификатора сессии позволяет перехватывать сессии других пользователей. Подобные атаки выполняются путем предсказания или угадывания уникального идентификатора сессии пользователя. Эта атака, также как и перехват сессии (Session Hijacking), в случае успеха позволяет злоумышленнику послать запрос web-серверу с правами скомпрометированного пользователя. Если атакующий имеет возможность определить алгоритм, используемый для генерации идентификатора сессии, он может выполнить следующие действия:
1) подключиться к серверу, используя текущий идентификатор сессии;
2) вычислить или подобрать следующий идентификатор сессии;
3) присвоить полученное значение идентификатора cookie/скрытому полю формы/URL. - Недостаточная авторизация (Insufficient Authorization). Недостаточная авторизация возникает, когда web-сервер позволяет атакующему получать доступ к важной информации или функциям, доступ к которым должен быть ограничен. То, что пользователь прошел аутентификацию, не означает, что он должен получить доступ ко всем функциям и содержимому сервера. Кроме аутентификации, должно быть реализовано разграничение доступа. Процедура авторизации определяет, какие действия может совершать пользователь, служба или приложение. Правильно построенные правила доступа должны ограничивать действия пользователя согласно политике безопасности. Доступ к важным ресурсам сайта должен быть разрешен только администраторам.
- Отсутствие тайм-аута сессии (Insufficient Session Expiration). В случае, если для идентификатора сессии или учетных данных не предусмотрен тайм-аут или его значение слишком велико, злоумышленник может воспользоваться старыми данными для авторизации. Это повышает уязвимость сервера для атак, связанных с кражей идентификационных данных. Поскольку протокол HTTP не предусматривает контроль сессии, web- серверы обычно используют идентификаторы сессии для определения запросов пользователя. Таким образом, конфиденциальность каждого идентификатора должна быть обеспечена, чтобы предотвратить множественный доступ пользователей с одной учетной записью. Похищенный идентификатор может использоваться для доступа к данным пользователя или осуществления мошеннических транзакций. Отсутствие тайм-аута сессии увеличивает вероятность успеха различных атак. К примеру, злоумышленник может получить идентификатор сессии, используя сетевой анализатор или уязвимость типа межсайтовое выполнение сценариев. Хотя тайм-аут не поможет в случае, если идентификатор будет использован немедленно, ограничение времени действия поможет при более поздних попытках использования идентификатора. В другой ситуации, если пользователь получает доступ к серверу с публичного компьютера (библиотека, Internet-кафе и т.д.), отсутствие тайм-аута сессии может позволить злоумышленнику воспользоваться историей браузера для просмотра страниц пользователя. Большое значение тайм-аута увеличивает шансы подбора действующего идентификатора.
- Сам человеческий фактор. Большинство пользователей относяться с пренебрежением к информационной безопасности и сами идут на поводу у злоумышленников.
3. Уровни безопасности
Далее мы обсудим наиболее общие способы защиты, которые организации могут взять на вооружение для предотвращения атак на их серверы или смягчения их последствий.
Создание плана защиты Web-сервера
Если большинство инцидентов вызывают лишь ваше раздражение или неудобство, это не означает, что хакер не сможет причинить компании серьезного ущерба. Поэтому каждая организация должна принять меры по обеспечению безопасности своих ресурсов, оценив при этом уровень рисков и материальных затрат. Другими словами, каждая организация обязана сопоставить возможные потери с теми преимуществами, которые предоставляет возможность выхода в Интернет. В условиях ограниченных финансовых возможностей необходимо вкладывать средства в системы защиты наиболее уязвимых мест сети.
Можно выделить три уровня безопасности для сервера:
Уровень 1. Минимальный уровень безопасности.
- Модернизация имеющегося программного обеспечения и установка "заплаток".
- Использование единых настроек (политик) для всех серверов.
- Удаление лишних приложений.
Уровень 2. Сопротивление вторжению.
- Установка внешнего межсетевого экрана.
- Удаленное администрирование систем безопасности.
- Ограничения на использование скриптов.
- Защита Web-серверов, используя фильтрацию пакетов.
- Обучение персонала и разграничение прав доступа.
- Использование решений, перечисленных в уровне 1.
Уровень 3. Обнаружение атак и ослабление их воздействия.
- Разделение привилегий.
- Аппаратные системы защиты.
- Внутренний межсетевой экран.
- Сетевые системы обнаружения вторжений.
- Системы обнаружения вторжений, размещаемые на серверах (хостах).
- Использование решений, перечисленных в уровне 2.
Варианты обеспечения безопасности Web-серверов Можно выделить следующие, наиболее общие способы защиты Web-серверов:
*
удаление лишнего программного
обеспечения (приложений);
* обнаружение попыток нарушения защиты
Web-серверов;
* исправление изъянов в установленном
программном обеспечении;
* уменьшение последствий атак на сеть;
* защита остальной части сети, в
случае если Web-сервер был скомпрометирован.
4.Защита
Модернизация программного обеспечения/Установка "заплат"
Это один из наиболее простых, но вместе
с тем наиболее эффективных способов
уменьшения рисков. Все имеющиеся Web-серверы
должны постоянно (иногда ежедневно) проверяться
на предмет обновления установленного
программного обеспечения и установления
"заплат". (NIST совместно с другими
правительственными организациями
разрабатывает специальный
Требование обновления программного обеспечения вызвано тем, что любое программное обеспечение, установленное на Web-сервере, может быть использовано хакером для проникновения в систему. Это операционные системы, программное обеспечение, работающее с сетевыми пакетами или используемое администраторами сети и системы безопасности.
Проверка программного обеспечения должна производиться по следующему алгоритму:
*
составьте перечень
* убедитесь в том, что на вашем сервере
установлены последние версии программных
продуктов;
* найдите и установите "заплаты"
для соответствующих версий программного
обеспечения, с учетом прилагающейся поставщиком
инструкции. Причем для обеспечения работоспособности
системы "заплаты" должны быть установлены
в порядке возрастания их номера;
* проверьте, что "заплаты" работают
нормально.
Использование узкоспециализированных серверов
Обеспечение безопасности информации требует выделения отдельного ресурса (компьютер) под каждую задачу. В противном случае ошибка в системе безопасности может нарушить работу сразу нескольких сервисов. Например, не желательно размещать сервер электронной почты, Web-сервер и сервер баз данных на одном и том же компьютере. Однако каждый новый сервер должен быть оснащен системой защиты, иначе он может стать легкой мишенью для хакера.
Удаление лишних приложений
Все привилегированное программное обеспечение, не обязательное для Web-сервера, должно быть удалено. Под привилегированным программным обеспечением в данном случае понимается ПО, работающее с сетевыми пакетами или запускающееся с правами администратора. Некоторые операционные системы запускают привилегированные программы по умолчанию, а администраторы часто просто не знают об их существовании. Между тем, каждая такая программа может быть использована хакером для атаки на Web-сервер. В ряде случаев для повышения уровня безопасности администраторы удаляют все программное обеспечение (а не только привилегированное), которое не используется для обеспечения работоспособности Web-сервера.
Внешний Firewall
Установка межсетевого экрана между корпоративной (внутренней) сетью и Web-серверами общего доступа позволяет предотвратить проникновение "левых" пакетов в сеть организации: если злоумышленник проникает на внешний Web-сервер, то попасть в корпоративную сеть организации через firewall ему будет затруднительно. Если же Web-сервер находится внутри корпоративной сети, то хакер, проникнув на него, может, используя захваченный ресурс в качестве плацдарма, нарушить работоспособность всей сети и получить полный контроль над ней.
Удаленное администрирование
Поскольку управлять сервером с
физической консоли зачастую не слишком
удобно, системные администраторы устанавливают
на Web-серверы программное
В тех случаях, когда удаленное администрирование неизбежно, его необходимо сопровождать следующими действиями:
*
шифровать трафик удаленного
администрирования (чтобы
* использовать фильтрацию пакетов (см.
описание ниже) при удаленном администрировании
из предназначенной для этого конфигурации
хоста;
* поддерживать для этой конфигурации
более высокий уровень безопасности;
* не использовать фильтрацию пакетов
вместо шифрования, так как хакеры могут
сфабриковать IP-адреса (посылать сообщения,
маскируя свой IP-адрес другим значением).
Ограничение использования скриптов
Большинство сайтов содержат скрипты (маленькие программы), которые запускаются при переходе на особую страницу. Хакер может использовать эти скрипты (при помощи обнаруженных изъянов в коде) для проникновения на сайт. Для обнаружения таких дыр ему вовсе не обязательно знать исходный код, поэтому скрипты необходимо тщательно проверить, прежде чем они будут выложены на сайт. Скрипты не должны запускать случайные команды или посторонние (опасные) программы, позволять пользователям выполнение определенных узкоспециализированных задач, а также ограничивать количество параметров входящего потока. Последнее необходимо для предотвращения атак на переполнение буфера. (При атаках такого рода злоумышленник пытается принудить систему к запуску программы арбитража с целью получения дополнительной информации.) Наконец, скрипты не должны обладать правами администратора.
Маршрутизаторы с фильтрацией пакетов
Маршрутизаторы устанавливают для того, чтобы отделить Web-серверы от остальной части сети. Этот шаг поможет предотвратить многие атаки, не допуская проникновения "чужих" (не правильных) пакетов. Обычно маршрутизаторы удаляют все пакеты, которые не идут на Web-сервер (например, на порт 80) или к портам, использующимся при удаленном администрировании. Для повышения степени безопасности можно составить перечень пакетов, подлежащих пропуску. Таким образом, хакеру останется еще меньше возможностей для проникновения в сеть. Маршрутизатор с функцией фильтрации пакетов будет более эффективен для предотвращения атак при условии удаления с сервера всего ненужного программного обеспечения (злоумышленник не сможет запросить нестандартный сервис). Однако следует иметь в виду, что применение пакетной фильтрации снижает пропускную способность маршрутизатора и увеличивает риск потери "правильных" пакетов.
Обучение персонала
Часто хакеры проникают в систему из-за того, что администраторы сети не владеют знаниями в области обеспечения безопасности или пренебрегают вопросами защиты. Поэтому занимающим эту должность сотрудникам следует постоянно совершенствоваться, изучая системы безопасности сети и используя полученные знания на практике. Несколько отличных книг и учебных семинаров также помогут вашим администраторам.
Разделение привилегий
Независимо от серьезности мер, предпринятых для обеспечения безопасности Web-сервера, вероятность проникновения тем не менее полностью исключить нельзя. Что ж, если это все-таки произошло, важно минимизировать последствия атаки. Разделение привилегий являет собой эффективный способ для достижения этой цели: каждый пользователь может запускать только определенные программы. Поэтому хакер, проникнувший в сеть по скомпрометированным данным отдельного пользователя, сможет нанести системе лишь ограниченный вред. Например, у пользователя на сайте есть свои страницы, но другие страницы ему недоступны. Следовательно, хакер, добыв данные первого пользователя, окажется не в состоянии как-либо повлиять на прочие ресурсы (страницы). Так же обстоят дела и с программным обеспечением. В целях повышения уровня безопасности для пользователей, обладающих правами записи, можно создать личные поддиректории.
Аппаратные решения
Аппаратура, в плане разделения привилегий, имеет более высокий уровень безопасности, так как в отличие от программного обеспечения не так легко модифицируется. Но через дыры в программном обеспечении хакер может получить доступ и к аппаратным средствам. Одним из наиболее доступных способов защиты от этой угрозы является запрет режима записи на внешние жесткие диски, магнитооптические диски и т. д. Обычно для предотвращения атак Web-сервер конфигурируют на режим "только чтение".
Внутренние межсетевые экраны
Современные Web-серверы часто работают
с распределенными системами, они
могут взаимодействовать с
Сетевые системы обнаружения вторжений
Несмотря на все попытки установить
"заплатки" на Web-сервер и реализовать
безопасную конфигурацию, невозможно
добиться гарантированного исключения
всех уязвимостей. Тем более что
Web-сервер, защищенный от внешних атак,
может быть выведен из строя нарушением
работы одного из сервисов. В этом случае
важно получать оперативную информацию
о подобных происшествиях, для минимизации
последствий атаки или быстрого
восстановления работоспособности
сервиса. Для получения такой
информации используют сетевые средства
обнаружения вторжений. Сетевые
системы обнаружения вторжений (IDS)
сканируют весь трафик сети и выявляют
несанкционированную
Системы обнаружения вторжений, размещаемые на серверах (хостах)
Системы обнаружения вторжений, размещаемые на серверах, лучше справляются с задачей определения состояния сети, чем сетевые IDS. Обладая всеми возможностями сетевых IDS, во многих случаях серверные IDS лучше выявляют попытки нарушения защиты, так как обладают более высоким уровнем доступа к состоянию Web-сервера.
Однако и этот способ не лишен
своих недостатков. Если хакер проникнет
на Web-сервер, он сможет отключить серверные
IDS, блокировав тем самым получение
сообщений об атаке администратором.
Удаленные атаки на отказ сервиса
(DoS атаки) также часто блокируют
IDS на время выхода из строя сервера.
А так как DoS-атаки позволяют
злоумышленникам блокировать
Ограничения существующих решений и дополнительные меры
Все специалисты по безопасности советуют
использовать защищенное программное
обеспечение, но в некоторых случаях
установить его невозможно из-за дороговизны
или нехватки времени. Мало того, безопасное
программное обеспечение через
некоторое время устаревает, и
необходимо устанавливать новую
версию. Поэтому использование
Уровень безопасности программного обеспечения,
может быть оценен, во-первых, путем
анализа ранее совершенных атак
на серверы, на которых было установлено
такое же (или подобное) ПО. Количество
атак показывает насколько устойчиво
к ним ПО. Причем надежность программного
обеспечения прямо зависит от
его качества. Некачественное программное
обеспечение не учитывает всех требований
к системе безопасности и уже
поэтому не надежно. Во-вторых, некоторые
компании, специализирующиеся на создании
систем безопасности склонны преувеличивать
возможности своих продуктов (в
плане отсутствия уязвимостей), поэтому
при проектировании систем безопасности
своих серверов пользователи должны
учитывать это обстоятельство. В-третьих,
оценить уровень безопасности программного
обеспечения можно путем
5.Заключение
В заключении выделим основные правила
которые системный
1.Использовать наиболее
2.Быть всегда в курсе
3.Как можно часто проводить собеседования с персоналом.
4.Ограничить как можно
5.Периодически изменять
6.Использовать резервное
Данные меры предотвратят или смягчат возможные последствия взлома системы.
6.Литература
1.Защита
веб-сервера Apache // URL: http://habrahabr.ru/post/ 145215/
(дата обращения: 17.04.2013).
2. Безопасность WEB-серверов // URL: http://book.itep.ru/6/web_68.
3. Обеспечение безопасности web-серверов
// URL: http://www.intuit.ru/studies/
4. КАК
ЗАЩИТИТЬ ВЕБ-СЕРВЕР // URL: http://www.xakep.ru/magazine/