Курс лекций по дисциплине "Защита информационных процессов в компьютерных системах"

Вид материалаКурс лекций

Содержание


5) Другие способы
8. Атаки на прикладном уровне
1) Ограничение пользователей в нормальной деятельности на сайте (чаще всего – с целью хулиганства).
2) Кражу конфиденциальной информации посетителя.
Как решить проблему фильтрации на форумах
9. Угрозы и атаки, специфичные для беспроводной сети стандарта 802.11
Источники случайных помех
Преднамеренные помехи – глушение клиентской и базовой станций.
Подобный материал:
1   2   3   4   5

4) Применение IDS (систем обнаружения вторжений). IDS предназначены для анализа трафика и выявления аномалий в нем. Обнаружить DoS атаку с помощью IDS возможно, однако сложность состоит в том, чтобы отделить злонамеренный трафик от правомерного, то есть инициированного законными клиентами.

5) Другие способы


Специалисты компаний могут использовать для противостояния атакам DDoS различные стратегии, в частности, применение резервных ресурсов, т.е. закупку резервной полосы пропускания или резервных сетевых устройств, которые помогут справиться с любым пиковым ростом нагрузки. Однако, следует заметить, что такой подход не отличается высокой рентабельностью, особенно из-за того, что необходимо вводить резервные сетевые интерфейсы и устройства. И, независимо от первоначального эффекта, для того чтобы истощить эти дополнительные мощности злоумышленникам понадобится лишь увеличить масштабы атаки.

Независимо от типа атаки DDoS, те приемы борьбы, которые применяются сегодня, не всегода и не в полной мере обеспечивают устранение угрозы и надежную, непрерывную работу информационных систем. Некоторые наиболее распространенные ответные меры борьбы с атаками DdoS не оптимизированы для борьбы с современными видами атак, которые становятся все более и более изощренными.


8. Атаки на прикладном уровне

Это наиболее распространенная группа атак. К ним относятся внедрение вирусов и троянских программ, использование уязвимостей ОС и прикладных программ, подбор паролей, атаки на веб-приложения типа XSS (Cross-Site Scripting) и SQL Injection и т.д. Троянские программы и использование уязвимостей было рассмотрено ранее, в разделах 2.4 и 2.5. В данном разделе будут рассмотрены парольные атаки, атаки XSS и SQL Injection.

8.1. Парольные атаки

Злоумышленники часто пытаются подобрать пароль и логин, используя для этого многочисленные попытки доступа. Такой подход носит название простого перебора (brute force attack). Как правило, для такой атаки используется специальная программа, которая пытается получить доступ к ресурсу общего пользования (например, к серверу). Иногда для повышения эффективности атаки используется подбор по словарю.


Если в результате хакер получает доступ к ресурсам, он получает его на правах обычного пользователя, пароль которого был подобран. Если этот пользователь имеет значительные привилегии доступа, хакер может создать для себя "проход" для будущего доступа, который будет действовать, даже если пользователь изменит свой пароль и логин.


 Еще одна проблема возникает, когда пользователи применяют один и тот же (пусть даже очень хороший) пароль для доступа ко многим системам. Существует атака, которая использует эту особенность человеческого мышления. Она может начинаться с рассылки почтовых сообщений, содержащих ссылку на какой-либо новый и интересный пользователю ресурс. На этом ресурсе пользователю предлагается пройти процедуру регистрации, в процессе которой необходимо придумать и ввести логин и пароль для дальнейшего доступа. Велика вероятность того, что выбранный пользователем пароль будет подходить и для других ресурсов, на которых тот зарегистрирован.


Одним из самых простых и в то же время действенных способов взлома является метод социальной инженерии. Он основан на работе со служащими компании, их подкупе или введении в заблуждение. Например, хакер может позвонить служащему и, выдав себя за сетевого администратора, попросить назвать свой пароль для выполнения каких-либо действий.


Прежде всего, парольных атак можно избежать, если не пользоваться паролями в текстовой форме. Одноразовые пароли и/или криптографическая аутентификация могут практически свести на нет угрозу таких атак. К сожалению, не все приложения, хосты и устройства поддерживают указанные выше методы аутентификации. При использовании обычных паролей старайтесь придумать такой пароль, который было бы трудно подобрать. Минимальная длина пароля должна быть не менее восьми символов. Пароль должен включать символы верхнего регистра, цифры и специальные символы (#, %, $ и т.д.). Лучшие пароли трудно подобрать и трудно запомнить, что вынуждает пользователей записывать пароли на бумаге. Этого также необходимо избегать.


8.2. Внедрение операторов SQL (SQL Injection)

Практически во всех современных Web-приложениях используются базы данных. В таблицах базы данных, как правило, хранится основной контент Web страницы и всевозможная дополнительная информация. Например, в базе данных Web-форума хранятся темы, сообщения, а также информация о пользователях: логин, пароль в зашифрованном виде, статус, путь к файлу аватара и проч.

Язык запросов Structured Query Language (SQL) представляет собой специализированный язык, позволяющий создавать запросы к базам данных. В большинстве современных СУБД присутствуют расширения диалекта SQL, специфичные для данной реализации (T-SQL в Microsoft SQL Server, PL SQL в Oracle и т.д.).

Когда пользователь обращается к веб-странице через браузер, то серверный скрипт, находящийся на этой странице, формирует SQL-запросы на выборку к базе данных. Полученные данные используются при формировании HTML страницы, отправляемой браузеру. Аналогично происходит и добавление информации в базу: сообщение, введенное пользователем, например, на форуме, передается на Web-сервер, и с помощью того же серверного скрипта и запросов на вставку записывается в базу данных

Смысл атаки SQL Injection состоит втом, что злоумышленник внедряет в SQL-запрос свой код, и в результате получает из БД не предназначенную для него информацию, или модифицирует/удаляет данные таблицы.

Рассмотрим следующий пример. Для того, чтобы попасть на страницу управления сайтом (админку), необходимо пройти процедуру аутентификации. Для аутентификации служит специальная страница, на которой расположена форма с двумя текстовыми полями для ввода логина и пароля и кнопкой.

После того, как пользователь ввел в форму свои учетные данные и нажал на кнопку, его данные передаются на сервер, где выполняется следующий запрос к базе данных:

Select * from users where login=’$login’ and password=’$password’

где $login и $password – переменные, содержащие значения текстовых полей.

Очевидно, что если запрос вернул хотя бы одну запись – то аутентификация пройдена, так как это означает, что пользователь с таим логином и паролем есть в базе данных. Соответственно, задача злоумышленника – заставить базу данных вернуть хотя бы одну запись, независимо от введенной в форму информации.

Это может быть выполнено следующим образом: в качестве логина злоумышленник вводит любое слово (anyword), в качестве пароля - anyword’ or ‘1’=’1.

login= anyword

password= anyword’ or ‘1’=’1

Тогда запрос будет выглядеть так:

Select * from users where login=’anyword’ and password=’anyword’ or ‘1’=’1’

База данных будет проверять, выполняются ли условия запроса. Если условие выполняется, возвращается соответствующая запись. Поскольку условие ‘1’=’1’ выполняется всегда, то и все условие целиком тоже будет выполняться всегда (false and false or true = true). Соответственно, запрос будет выполнен при любых значениях логина и пароля. Он вернет из базы данных набор записей, и аутентификация будет пройдена.

В реальности найти веб-страницу, имеющую подобную уязвимость, практически невозможно. Однако этот пример достаточно наглядно демонстрирует общий принцип проведения атаки SQL Injection.

Можно привести еще один пример, позволяющий получить доступ к конфиденциальной информации веб сайта. Он основан на использовании ключевого слова union, позволяющем объединить результаты двух запросов.

Например, на сайте представлен список статей (ссылками). После щелчка на первой ссылке формируется запрос:

select name, content from articles where id=1

Запрос передается в базу данных, где в таблице articles отыскивается название (name) и содержание (content) статьи под номером 1 (id=1). Далее выбранная статья отображается на странице.

При этом в адресной строке будет отображена ссылка следующего вида:

ru/articles.php?id=1

Злоумышленник может дописать в адресную строку следующий запрос:

ru/articles.php?id=1 union select login, password from users

при этом в базу данных будет передано следующее:

select name, content from articles where id=1 union select login, password from users

В результате на страницу будет выведено содержимое таблицы users, а именно, логины и пароли пользователей.

При проведении данной атаки злоумышленнику надо преодолеть ряд проблем. Первая заключается в том, что число столбцов в первом запросе (select name, content from articles) и во втором запросе (select login, password from users) должно совпадать. Вторая проблема состоит в том, что атакующий должен угадать имена столбцов и таблиц во втором запросе: например, таблица может называться не users, а users_tbl, table_users или вообще иметь неугадываемое название.

Если первую проблему можно решить достаточно просто – путем подбора, то вторую удается решить далеко не всегда. Впрочем, ситуация облегчается тем, что очень часто создатели сайтов используют готовые, бесплатно распространяемые скрипты, код которых доступен и злоумышленнику. Если таблицы и столбцы в них не переименовывались, то задача атакующего существенно облегчается.

Как и в первом случае, приведенный механизм атаки сильно упрощен. В реальности атаки SQL Injection выполняются намного более сложными способами. Но приведенный пример позволяет понять базовую суть данной атаки.

8.3. Cross-Site Scripting (XSS)

Аббревиатура XSS расшифровывается как Сross Site Sсriрting («межсайтовый скриптинг»).

Уязвимость заключается в следующем. Имеется HTML страница, которая генерируется автоматически, скриптами на сервере. То есть контент этой страницы хранится в базе данных, при обращении пользователя к веб серверу контент извлекается из базы, помещается на страницу и отправляется в браузер пользователя. По такому принципу работают форумы, гостевые книги, доски объявлений, новостные сайты, фотогалереи и проч.

В эту страницу внедряется произвольный код, путем ввода его в поле формы или в адресную строку. Обычно это код " onclick="return false">

Таким образом, в качестве жертвы выступает не Web сервер (как в случае SQL инъекций), а клиент. Уязвимый сервер используется как посредник, как промежуточное средство для осуществления атаки на клиента.



Что же позволяют осуществить XSS-уязвимости?

1) Ограничение пользователей в нормальной деятельности на сайте (чаще всего – с целью хулиганства). Например, вывод бесконечного числа окон или сообщений, как результат какого-либо действия пользователя (нажатие, наведение мышью на объект, просто заход на сайт). Или же переадресация на другой узел.

- вывод окна с сообщением

window.loсation.href="httр://anysite.ru" - переадресация


2) Кражу конфиденциальной информации посетителя.

Используя XSS, можно украсть учетную запись пользователя.

Чтобы пользователю не приходилось набирать пароль каждый раз, когда он заходит в форум, используется система авторизации через cookie. Когда пользователь первый раз аутентифицируется на форуме, для него создается так называемая сессия, которой присваивается специальный идентификатор (как правило, 16-символьная строка). Идентификатор сессии записывается к пользователю на жесткий диск в специальный текстовый файл – cookie, а также сохраняется на веб сервере. Когда пользователь заходит на форум, скрипт запрашивает cookie и проверяет, совпадает ли сессия, хранящаяся на жестком диске, с сессией, которая хранится на веб сервере. Если они совпадают, то форум считает, что пользователь аутентифицирован.

Соответственно, если злоумышленник похитит данные из этого cookie пользователя и передаст их сервису как свои, то система распознает взломщика как реального пользователя.

Для проведения атаки злоумышленнику необходимо иметь свой собственный сайт. На нем будет работать скрипт, принимающий данные из чужого cookie и сохраняющий их в файле. Затем он внедряет в свое сообщение на форуме или гостевой книге следующий скрипт:



В результате выполнения этого скрипта браузер сделает перенаправление на скрипт rver.ru/cookie.php. В параметрах ему передастся cookie пользователя. Cookie будет похищен, но пользователь может заподозрить неладное: вместо ожидаемой страницы он увидит результаты работы скрипта cookie.php, т.е. пустую страницу. Тут уже от фантазии хакера зависит, каким образом он сможет скрыть результат работы своего скрипта. Дальше будет приведен пример “незаметного” внедрения кода.

В итоге в файле на сервере злоумышленника скопятся cookie всех пользователей, просмотревших форум или чат с внедренным " onclick="return false">
Как решить проблему фильтрации на форумах

Преобладающее большинство скриптов в форумах препятствуют вставке своих html-тегов в сообщение, заменяя символы < и > кодами этих символов (< и >). Соответственно, если, к примеру, хакер вставит в свое сообщение строку , то, скорее всего, она будет выведена как простой текст, и " onclick="return false">
Как известно, в форумах при создании сообщения можно использовать специальные теги, с помощью которых можно выделять свой текст цветом, вставлять картинки, ссылки и др. В некоторых форумах не фильтруются данные, прописывающиеся в этих тегах.

С помощью тега [img] можно украшать свое сообщение картинками: [img]адрес картинки [/img]. Хакеру ничто не мешает добавить в свое сообщение такую «картинку»:

[img]" onclick="return false">
Так же можно красть и cookies. Добавляем в тег [img] следующее сообщение:

[img]" onclick="return false">
тогда картинка будет сформирована следующим образом:



Что же сделает браузер пользователя при обработке этой строки? Он увидит, что необходимо загрузить картинку с именем «myimg», URL которой складывается из пути к скрипту cookie.php и данных cookie пользователя. Когда браузер попытается загрузить эту так называемую «картинку», скрипт cookie.php получит cookie пользователя и сохранит его в файле.

Кроме того, такая конструкция, в отличие от предыдущей, вряд ли вызовет беспокойство у пользователя (поскольку не будет перенаправления).

Подобная уязвимость бывает и в других тегах. Например, тег [color], позволяющий выделять слова цветом, тег [url], с помощью которого пользователь может вставлять в свои сообщения ссылки.

Получив cookie, злоумышленник может воспользоваться им для получения доступа несколькими способами. Самый простой из них – использовать специальную программу, предназначенную для подделки cookie (например, Cookie Editor). Злоумышленник аутентифицируется на форуме с помощью своих учетных данных. На жесткий диск ему записывается cookie с его сессией. Потом он закрывает браузер и запускает Cookie Editor. Выбирает файл cookie, который оставил форум, и меняет значения соответствующих переменных на значения из украденного cookie. Потом злоумышленник открывает браузер, и заходит в форум, при этом форум распознает его как пользователя, у которого был украден cookie.

Поскольку администратор форума/чата тоже пользуется браузером, он также подвержен уязвимости. Если администратор просмотрит сообщение с опасным " onclick="return false">
9. Угрозы и атаки, специфичные для беспроводной сети стандарта 802.11


Стандарт IEEE 802.11 «работает» на двух нижних уровнях модели OSI: физическом и канальном. Таким образом, беспроводные сети отличаются от кабельных только на первых двух - физическом (Physical) и отчасти канальном уровнях (на MAC-подуровне) семиуровневой модели взаимодействия открытых систем OSI. Более высокие уровни в них реализуются также, как и в проводных сетях, поэтому разница в безопасности тех и других сетей сводится к разнице в безопасности физического и канального уровней.





Принято считать, что ввиду использования открытой среды передачи данных, помимо прочих уязвимостей, безопасность беспроводных сетей подвержена следующим видам угроз:
  • нарушение физической целостности сети
  • подслушивание трафика на физическом уровне
  • несанкционированное вторжение в сеть

Нарушение физической целостности сети

В проводных сетях угроза нарушения физической целостности сети очень маловероятна, так как она может быть осуществлена лишь в результате случайного или преднамеренного повреждения кабельной проводки и сетевого оборудования. Ввиду сложности получения доступа к кабелю и аппаратуре внутри сети при правильно организованной системе безопасности этой угрозой можно пренебречь.


Целостность же беспроводной сети может быть нарушена в результате действия случайных или преднамеренных помех в радиоканале.


Источники случайных помех - природные явления, приводящие к увеличению уровня шумов, и технические средства: действующие СВЧ-печи, медицинское и промышленное СВЧ-оборудование и другие устройства, работающие в том же диапазоне. Следует заметить, что природные явления в виде дождя и снега практически не влияют на работу сети (кроме некоторых случаев обледенения антенны, если она находится на открытом воздухе вне помещения).

Преднамеренные помехи – глушение клиентской и базовой станций.

Особым видом атак, присущих исключительно беспроводным сетям, являются атаки, использующие глушение базовой или клиентской станций. Как правило, такие атаки направлены на отказ в обслуживании. Также возможна установка злоумышленником точки доступа, сигнал от которой будет мощнее, чем сигнал от точки доступа атакуемой сети, с целью заставить беспроводных клиентов подключиться к точке доступа злоумышленника и подменить какую-либо информацию.

Прослушивание трафика сети на физическом уровне


Применительно к проводным сетям опасность прослушивания на физическом уровне реальна в случае сетей на неэкранированной витой паре, излучение которой может быть перехвачено и дешифровано при помощи современных технических средств. В сетях на экранированной витой паре излучение существенно ниже и вероятность перехвата и прослушивания информационных потоков мала. А в оптоволоконных сетях такая угроза и вовсе отсутствует.

Радиосеть, функционирование которой предполагает излучение, может быть прослушана практически из любой точки зоны радиовидимости сети. Анонимные вредители могут перехватывать радиосигнал и расшифровывать передаваемые данные. Оборудование, используемое для прослушивания трафика в сети, может быть не сложнее того, которое используется для обычного доступа к этой сети. Перехваты такого типа практически невозможно зарегистрировать и еще труднее помешать им. Использование антенн и усилителей дает злоумышленнику возможность находиться на значительном расстоянии от цели в процессе перехвата.


Несанкционированное вторжение в сеть


Для вторжения в сеть необходимо к ней подключиться. В случае проводной сети требуется электрическое соединение, беспроводной - достаточно оказаться в зоне радиовидимости сети с оборудованием того же типа, на котором построена сеть.

В проводных сетях основное средство защиты на физическом и MAC-уровнях - административный контроль доступа к оборудованию, недопущение злоумышленника к кабельной сети. В сетях, построенных на управляемых коммутаторах, доступ может дополнительно ограничиваться по MAC-адресам сетевых устройств.

В беспроводных сетях для снижения вероятности несанкционированного доступа предусмотрен контроль доступа по MAC-адресам устройств и WEP или WPA протоколы. Поскольку контроль доступа реализуется с помощью точки доступа, он возможен только при инфраструктурной топологии сети. Механизм контроля подразумевает заблаговременное составление таблицы MAC-адресов разрешенных пользователей в точке доступа и обеспечивает передачу только между зарегистрированными беспроводными адаптерами.


Для проникновения в беспроводную сеть злоумышленник должен:
  • иметь беспроводное оборудование, совместимое с используемым в сети
  • знать идентификатор сети SSID (если он не рассылается точкой доступа широковещательно)
  • быть занесенным в таблицу разрешенных MAC-адресов в точке доступа при инфраструктурной топологии сети
  • знать частоту, на которой работает сеть, или включить режим автосканирования
  • иметь возможность взломать ключ WEP или WPA шифрования, если таковое имеется.