ВВЕДЕНИЕ
Примечательная особенность нынешнего периода - переход от индустриального общества к информационному, в котором информация становится более важным ресурсом, чем материальные или энергетические ресурсы. Информационные ресурсы - отдельные документы и отдельные массивы документов, документы и массивы документов в информационных системах (библиотеках, архивах, фондах, банках данных, других информационных системах).
Информация становится основой социального взаимодействия, значимым ресурсом влияния на индивидов, социальные группы, общности, институты, наконец, на общество в целом. Именно поэтому в нашей стране принята Доктрина информационной безопасности, призванная регулировать и оказывать влияние на информационно-коммуникационные системы.
Согласно Доктрине информационной безопасности, под информационной безопасностью Российской Федерации понимается состояние защищенности ее национальных интересов в информационной сфере, определяющихся совокупностью сбалансированных интересов личности, общества и государства. Информационная безопасность представляет собой подраздел гуманитарной безопасности: государство и общество стремятся к сохранению и защите своего информационного пространства, к утверждению идеалов и ценностей, восходящих в своем содержании к национальному социокультурному наследию.
В современном мире, спаянном коммуникативно-информационными взаимодействиями, резко возросла относительная ценность интеллекта и финансов как наиболее мобильных и обладающих мощным потенциалом ресурсов.
1. СРАВНИТЕЛЬНЫЙ АНАЛИЗ МЕТОДОВ ВОЗДЕЙСТВИЯ И ПРОТИВОДЕЙСТВИЯ В СЕТИ INTERNET
Понятие «безопасность информации», определяемое в отечественной правовой литературе как состояние устойчивости информации к случайным или преднамеренным воздействиям, исключающее недопустимые риски ее уничтожения, искажения и раскрытия, которые приводят к материальному ущербу владельца или пользователя информации. В американской доктрине термин «безопасность» понимается как степень конфиденциальности, целостности, надежности и доступности информации, а также соответствующих систем.
Архитектура Internet подразумевает подключение к внешним открытым сетям, использование внешних сервисов и предоставление собственных сервисов вовне, что предъявляет повышенные требования к защите информации.
В Internet используется подход клиент-сервер, а главная роль на сегодняшний день отводится Web-сервису. Web-серверы должны поддерживать традиционные защитные средства, такие как аутентификация и разграничение доступа; кроме того, необходимо обеспечение новых свойств, в особенности безопасности программной среды и на серверной, и на клиентской сторонах.
Сетевые системы характерны тем, что, наряду с обычными (локальными) атаками, осуществляемыми в пределах одной компьютерной системы, к ним применим специфический вид атак, обусловленный распределенностью ресурсов и информации в пространстве. Это так называемые сетевые (или удаленные) атаки (remote или network attacks). Они характеризуются, во-первых, тем, что злоумышленник может находиться за тысячи километров от атакуемого объекта, и, во-вторых, тем, что нападению может подвергаться не конкретный компьютер, а информация, передающаяся по сетевым соединениям. С развитием локальных и глобальных сетей именно удаленные атаки становятся лидирующими как по количеству попыток, так и по успешности их применения и, соответственно, обеспечение безопасности ВС с точки зрения противостояния удаленным атакам приобретает первостепенное значение.
Уязвимости в Web-приложениях довольно давно представляли опасность для пользователей. После идентификации уязвимости для осуществления атаки используется одна из нескольких техник. Обычно на эти техники ссылаются как на классы атак (методы использования уязвимостей). Многие из этих классов имеют распространенные названия, к примеру «переполнение буфера» (Buffer Overflows), «внедрение кода SQL» (SQL Injection), и «межсайтовое выполнение сценариев» (Cross-site Scripting). Эти классы атак будут использованы в качестве основы для описания и классификации угроз Web-приложений.
Рассмотрим основные классы уязвимости в сети Internet.
1) Аутентификация (Authentication) - атаки, направленные на обход или эксплуатацию уязвимостей в механизмах реализации аутентификации Web-серверов.
2) Подбор (Brute Force). Подбор - автоматизированный процесс проб и ошибок, использующийся для того, чтобы угадать имя пользователя, пароль, номер кредитной карточки, ключ шифрования и т.д.
Многие системы позволяют использовать слабые пароли или ключи шифрования, и пользователи часто выбираю легко угадываемые или содержащиеся в словарях парольные фразы.
Используя эту ситуацию, злоумышленник может воспользоваться словарем и попытаться использовать тысячи или даже миллионы содержащихся в нем комбинаций символов в качестве пароля. Если испытуемый пароль позволяет получить доступ к системе, атака считается успешной и атакующий может использовать учетную запись.
3) Недостаточная аутентификация (Insufficient Authentication) - эта уязвимость возникает, когда Web-сервер позволяет атакующему получать доступ к важной информации или функциям сервера без должной аутентификации. Интерфейсы администрирования через Web - яркий пример критичных систем.
Необходимый URL может быть найден перебором типичных файлов и директорий (таких как /admin/), с использованием сообщений об ошибках, журналов перекрестных ссылок или путем простого чтения документации. Подобные ресурсы должны быть защищены адекватно важности их содержимого и функциональных возможностей.
4) Небезопасное восстановление паролей (Weak Password Recovery Validation) - эта уязвимость возникает, когда Web-сервер позволяет атакующему несанкционировано получать, модифицировать или восстанавливать пароли других пользователей.
Уязвимости связанные с недостаточной проверкой при восстановлении пароля возникают, когда атакующий получает возможность используемый механизм. Это случается, когда информацию, используемую для проверки пользователя, легко угадать или сам процесс подтверждения можно обойти. Система восстановления пароля может быть скомпрометирована путем использования подбора, уязвимостей системы или из-за легко угадываемого ответа на секретный вопрос.
Проверка информации. Многие серверы требуют от пользователя указать его email в комбинации с домашним адресом и номером телефона. Эта информация может быть легко получена из сетевых справочников. В результате, данные, используемые для проверки, не являются большим секретом. Кроме того, эта информация может быть получена злоумышленником с использованием других методов, таких как межсайтовое выполнение сценариев или "рыбалка" (phishing).
Парольные подсказки. Сервер, использующий подсказки для облегчения запоминания паролей, может быть атакован, поскольку подсказки помогают в реализации подбора паролей.
Секретный вопрос и ответ. Предположим, ответ пользователя «Бобруйск», а секретный вопрос «Место рождения». Злоумышленник может ограничить словарь для подбора секретного ответа названиями городов. Более того, если атакующий располагает некоторой информацией об пользователе, узнать его место рождения не сложно.
5) Авторизация (Authorization). Используя различные техники, злоумышленник может повысить свои привилегии и получить доступ к защищенным ресурсам.
6) предсказуемое значение идентификатора сессии (Credential/Session Prediction). Предсказуемое значение идентификатора сессии позволяет перехватывать сессии других пользователей. Подобные атаки выполняются путем предсказания или угадывания уникального идентификатора сессии пользователя. Эта атака также как и перехват сессии (Session Hijacking) в случае успеха позволяет злоумышленнику послать запрос Web-серверу с правами скомпрометированного пользователя. Дизайн многих серверов предполагает аутентификацию пользователя при первом обращении и дальнейшее отслеживание его сессии. Для этого пользователь указывает комбинацию имени и пароля. Вместо повторной передачи имени пользователя и пароля при каждой транзакции, Web-сервер генерирует уникальный идентификатор, который присваивается сессии пользователя. Последующие запросы пользователя к серверу содержат идентификатор сессии как доказательство того, что аутентификация была успешно пройдена. Если атакующий может предсказать или угадать значение идентификатора другого пользователя, это может быть использовано для проведения атаки.
7) Недостаточная авторизация (Insufficient Authorization) возникает, когда Web-сервер позволяет атакующему получать доступ к важной информации или функциям, доступ к которым должен быть ограничен. То, что пользователь прошел аутентификацию не означает, что он должен получить доступ ко всем функциям и содержимому сервера. Кроме аутентификации должно быть реализовано разграничение доступа.
8) Отсутствие таймаута сессии (Insufficient Session Expiration). В случае если для идентификатора сессии или учетных данных не предусмотрен таймаут или его значение слишком велико, злоумышленник может воспользоваться старыми данными для авторизации. Это повышает уязвимость сервера для атак, связанных с кражей идентификационных данных. Поскольку протокол HTTP не предусматривает контроль сессии, Web-серверы обычно используют идентификаторы сессии для определения запросов пользователя. Таким образом, конфиденциальность каждого идентификатора должна быть обеспечена, чтобы предотвратить множественный доступ пользователей с одной учетной записью. Похищенный идентификатор может использоваться для доступа к данным пользователя или осуществления мошеннических транзакций. Отсутствие таймаута сессии увеличивает вероятность успеха различных атак. К примеру, злоумышленник может получить идентификатор сессии, используя сетевой анализатор или уязвимость типа межсайтовое выполнение сценариев. Хотя таймаут не поможет в случае, если идентификатор будет использован немедленно, ограничение времени действия поможет в случае более поздних попыток использования идентификатора.
9) Фиксация сессии (Session Fixation). Используя данный класс атак, злоумышленник присваивает идентификатору сессии пользователя заданное значение. В зависимости от функциональных возможностей сервера, существует несколько способов «зафиксировать» значение идентификатора сессии. Для этого могут использоваться атаки типа межсайтовое выполнение сценариев или подготовка сайта с помощью предварительного HTTP запроса. После фиксации значения идентификатора сессии атакующий ожидает момента, когда пользователь войдет в систему. После входа пользователя, злоумышленник использует идентификатор сессии для получения доступа к системе от имени пользователя.
Для фиксации ID сессии могут быть использованы различные техники, такие как:
- установка значения cookie с помощью языков сценариев на стороне клиента;
- установка cookie с использованием заголовка ответа HTTP;
- взлом сервера в домене (например, слабо администрируемый сервер WAP);
- подмена значений в кэше DNS-сервера пользователя с целью добавления сервера атакующего в домен;
- установка ложного WEB-сервера в домене (к примеру, на рабочей станции в среде Active Directory, где все машины в DNS принадлежат одному домену);
- использование атаки типа расщепление HTTP ответа (response splitting).
10)Атаки на клиентов (Client-side Attacks). Пользователь ожидает, что сайт предоставит ему легитимное содержимое. Кроме того, пользователь не ожидает атак со стороны сайта. Эксплуатируя это доверие, злоумышленник может использовать различные методы для проведения атак на клиентов сервера.
11) Подмена содержимого (Content Spoofing). Используя эту технику, злоумышленник заставляет пользователя поверить, что страницы сгенерированны Web-сервером, а не переданы из внешнего источника. Специально созданная ссылка может быть прислана по электронной почте, системе моментального обмена сообщениями, опубликована на доске сообщений или открыта в браузере пользователе с использованием межсайтового выполнения сценариев. Если атакующий спровоцировал пользователя на переход по специально созданной ссылке, у пользователя может создаться впечатление, что он просматривает данные с сервера, в то время как часть их была сгенерирована злоумышленником.
12) Межсайтовое выполнение сценариев (Cross-site Scripting, XSS). Наличие уязвимости Cross-site Scripting позволяет атакующему передать серверу исполняемый код, который будет перенаправлен браузеру пользователя. Этот код обычно создается на языках HTML/JavaScript, но могут быть использованы VBScript, ActiveX, Java, Flash, или другие поддерживаемые браузером технологии.
Существует два типа атак, приводящих к межсайтовому выполнению сценариев: постоянные (сохраненные) и непостоянные (отраженные). Основным отличием между ними является то, что в отраженном варианте передача кода серверу и возврат его клиенту осуществляется в рамках одного HTTP-запроса, а в хранимом - в разных.
Расщепление HTTP-запроса (HTTP Response Splitting). При использовании данной уязвимости злоумышленник посылает серверу специальным образом сформированный запрос, ответ на который интерпретируется целью атаки как два разных ответа. Второй ответ полностью контролируется злоумышленником, что дает ему возможность подделать ответ сервера.
В результате успешной реализации этой атаки злоумышленник может выполнить следующие действия:
- Межсайтовое выполнение сценариев.
- Модификация данных кэша сервера-посредника.
- Межпользовательская атака (один пользователь, одна страница, временная подмена страницы). При реализации этой атаки злоумышленник не посылает дополнительный запрос.