МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное
образовательное учреждение
высшего профессионального образования
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Институт кибернетики
Направление – ПО вычислительной
техники и автоматических систем
Кафедра
– Информатики и проектирования систем
____ Основы безопасности 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) “повисает” (полный
перечень причин повисания этой
системы может занять целый
том) при приходе на ее вход
ICMP-пакета с длиной, которая не
соответствует значению, указанному
в его поле заголовка Длина.
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 совместно с другими
правительственными организациями
разрабатывает специальный инструментарий,
предназначенный для оценки необходимости
обновления ПО и применения "заплат".
Подробности можно найти на страничке
Департамента компьютерной безопасности
NIST по адресу http: //csrc. nist. gov.)
Требование обновления программного
обеспечения вызвано тем, что
любое программное обеспечение,
установленное на Web-сервере, может
быть использовано хакером для проникновения
в систему. Это операционные системы,
программное обеспечение, работающее
с сетевыми пакетами или используемое
администраторами сети и системы
безопасности.
Проверка программного
обеспечения должна производиться по
следующему алгоритму:
*
составьте перечень программного
обеспечения с указанием номеров
версий;
* убедитесь в том, что на вашем сервере
установлены последние версии программных
продуктов;
* найдите и установите "заплаты"
для соответствующих версий программного
обеспечения, с учетом прилагающейся поставщиком
инструкции. Причем для обеспечения работоспособности
системы "заплаты" должны быть установлены
в порядке возрастания их номера;
* проверьте, что "заплаты" работают
нормально.
Использование
узкоспециализированных серверов
Обеспечение безопасности информации
требует выделения отдельного ресурса
(компьютер) под каждую задачу. В
противном случае ошибка в системе
безопасности может нарушить работу
сразу нескольких сервисов. Например,
не желательно размещать сервер электронной
почты, Web-сервер и сервер баз данных
на одном и том же компьютере.
Однако каждый новый сервер должен
быть оснащен системой защиты, иначе
он может стать легкой мишенью
для хакера.
Удаление лишних
приложений
Все привилегированное программное
обеспечение, не обязательное для Web-сервера,
должно быть удалено. Под привилегированным
программным обеспечением в данном
случае понимается ПО, работающее с
сетевыми пакетами или запускающееся
с правами администратора. Некоторые
операционные системы запускают
привилегированные программы по
умолчанию, а администраторы часто
просто не знают об их существовании.
Между тем, каждая такая программа
может быть использована хакером
для атаки на Web-сервер. В ряде
случаев для повышения уровня
безопасности администраторы удаляют
все программное обеспечение (а
не только привилегированное), которое
не используется для обеспечения
работоспособности Web-сервера.