Курс лекций по дисциплине "Защита информационных процессов в компьютерных системах"
Вид материала | Курс лекций |
- Курс лекций по дисциплине " основы компьютерных технологий" Часть I. Microsoft Word, 432.92kb.
- Конспект лекций по дисциплине информатика для студентов заочного отделения, 649.48kb.
- В. А. Деденко Л. Г. Караваев В. А. Курс лекций, 48.22kb.
- Безопасность информационных технологий, 305.29kb.
- Курс лекций по дисциплине «информационные и коммуникационные технологии в образовании», 1679.08kb.
- Элективный курс Арифметические и логические основы построения компьютера ( 9 класс,, 150.98kb.
- Учебная программа по дисциплине администрирование в информационных системах растягаев, 136.99kb.
- Лекция Защита информации в компьютерных системах, 105.02kb.
- Курс лекций по дисциплине история экономических учений москва 2008, 5434.7kb.
- Завгородний В. И. Защита информации в компьютерных системах. Электронное издание, 13.73kb.
Курс лекций
по дисциплине “Защита информационных процессов в компьютерных системах”
Часть 1
Содержание
1. Цели, преследуемые злоумышленником
2. Методы и инструменты
2.1. Прослушивание сети
2.2. Сканирование
2.3. Генерация пакетов
2.4. Троянские программы
2.5. Эксплойты
2.6. Программы для автоматизированного подбора пароля
3. Классификация сетевых атак
3.1. По уровню модели OSI
3.2. По типу
3.3. По местоположению злоумышленника и атакуемого объекта
4. Атаки типа «spoofing»
5. Атаки, обеспечивающие несанкционированный обмен данными
5.1. Туннелирование
5.2. Атака крошечными фрагментами
6. Атаки, обеспечивающие перехват данных
6.1. Ложное сообщение ICMP Redirect
6.2. Ложное сообщение DHCP
6.3. Атака на протоколы маршрутизации
7. Распределенные атаки отказа в обслуживании (DDoS)
7.1. Общие принципы и концепции DDoS атак
7.2. DDoS атаки, основанные на протоколе TCP
7.3. DDoS атаки, основанные на протоколе UDP
7.4. DDoS атаки, основанные на протоколе ICMP
8. Атаки на прикладном уровне
8.1. Парольные атаки
8.2. SQL Injection
8.3. Cross-Site Scripting (XSS)
9. Угрозы и атаки, специфичные для беспроводной сети стандарта 802.11
Актуальность и важность проблемы обеспечения информационной безопасности обусловлена следующими факторами:
- Быстрое развитие глобальной сети Интернет
Подобная глобализация позволяет злоумышленникам практически из любой точки земного шара, где есть Интернет, за тысячи километров, осуществлять нападение на корпоративную сеть.
- Распространение простых в применении программ для взлома
Всеобщее распространение простых в использовании злонамеренных программ и рекомендаций по их использованию привело к тому, что резко снижается уровень знаний и навыков, которые необходимы злоумышленнику для проведения успешной атаки.
- Автоматизация почти всех бизнес-процессов компаний
Значительное увеличение объемов информации, хранимой и обрабатываемой с помощью компьютеров и других средств автоматизации, способствовало появлению угроз, связанных с возможностью потери, искажения и раскрытия данных. По оценкам специалистов в настоящее время около 70-90% интеллектуального капитала компании хранится в цифровом виде.
- Многочисленные уязвимости программных и сетевых платформ
Современные программные продукты из-за конкуренции попадают в продажу с ошибками и недоработками. Ошибки и недоработки, оставшиеся в этих системах, приводят к случайным и преднамеренным нарушениям информационной безопасности.
- Пренебрежение вопросами информационной безопасности в компании.
Отсутствие информационной поддержки сотрудников в сфере обеспечения ИБ и сохранения коммерческой тайны.
- Увеличение популярности беспроводных сетевых технологий в корпоративной среде. Это обуславливается простотой развертывания (нет необходимости прокладывать кабель), относительной дешевизной оборудования, значительно меньшей стоимостью в случае необходимости расширения сети (по сравнению с проводным аналогом, достаточно охватить точками доступа требуемую зону), а также мобильностью для пользователей и гибкостью при расширении.
Далее будут рассматриваться разновидности сетевых атак, цели, которые они преследуют, а также способы борьбы с ними.
1. Цели, преследуемые злоумышленником
- похищение информации (пример – кража логина и пароля; похищение информации, являющейся коммерческой тайной)
- модификация информации (пример – изменение информации о состоянии счета в базе данных банка)
- нарушение доступности информационного ресурса (в этом случае злоумышленника не интересует информация; его цель – затруднить или сделать невозможной работу сервера до такой степени, чтобы остальные пользователи не смогли воспользоваться его услугами).
2. Методы и инструменты
2.1. Прослушивание сети (sniffing)
Прослушивание трафика в локальных сетях производится с помощью специальных программ – снифферов (sniffers). Эта программа отлавливает пакеты, которые приходят на сетевой интерфейс компьютера, и позволяет проанализировать их.
Ввиду того, что некоторые сетевые приложения передают данные в текстовом формате (HTTP, FTP, SMTP, POP3 и т.д.), с помощью сниффера можно узнать полезную, а иногда и конфиденциальную информацию (например, имена пользователей и пароли). Перехват имен и паролей создает большую опасность, так как пользователи часто применяют один и тот же логин и пароль для множества ресурсов и приложений.
Интерфейс программы-сниффера Network Chemistry Packetyzer
Процесс прослушивания траффика в локальной сети зависит от ее топологии и от используемого в ней оборудования.
Раньше локальные сети были некоммутируемыми. Обмен данными между компьютерами в сети происходил по одному и тому же информационному каналу или, грубо говоря, по одному и тому же проводу независимо от отправителя и получателя. К таким сетям относятся сети Ethernet с топологией «Общая шина» (в настоящее время устарели), сети Ethernet с топологией «Звезда» на основе хаба, или концентратора (в настоящее время используются редко), беспроводные сети стандарта Wi-Fi.
Ethernet с топологией «Общая шина»
Ethernet с топологией «Звезда» на основе хаба (концентратора)
Беспроводная Wi-Fi сеть
В некоммутируемых сетях каждый компьютер получает все пакеты, передающиеся по сети. Получив пакет, драйвер сетевой карты анализирует заголовок пакета, извлекает оттуда MAC-адрес получателя и сравнивает с MAC-адресом сетевой карты. Если адреса совпадают, то пакет передается операционной системе для дальнейшей обработки. Если адреса не совпадают, то пакет отбрасывается.
Понятно, что при такой схеме злоумышленнику несложно прослушать весь трафик в сети. Для этого надо перевести сетевую карту в специальный режим – так называемый promiscuous («неразборчивый»). Сетевая карта в «неразборчивом» режиме принимает все пакеты, независимо от их адреса назначения, и передает изх программе-снифферу для анализа. (В большинстве случаев promiscuous-режим включается автоматически после запуска сниффера).
Однако в настоящее время большинство Ethernet-сетей построены на основе коммутатора (switch).
Ethernet с топологией «Звезда» на основе коммутатора (switch)
Коммутатор имеет таблицу соответствия MAC-адресов узлов и своих портов, к которым эти узлы подключены. Теперь пакеты направляются на конкретный порт, присвоенный адресату пакета. Соответственно, злоумышленник может просматривать только адресованные ему или широковещательные пакеты.
Однако существуют способы, позволяющие злоумышленнику обойти данное ограничение и прослушать трафик, для него не предназначенный. К одному из таких способов относится атака ARP spoofing (другое название атаки– ARP poisoning, т.е. отравление). Атака ARP spoofing относится к типу man-in-the-middle (человек посередине).
Для формирования пакета и отправки его в сеть компьютеру необходимо знать IP и MAC адреса получателя пакета. IP адрес, как правило, известен отправителю заранее (либо известно доменное имя получателя, через которое посредством DNS-сервера несложно получить и IP-адрес). Для поиска MAC-адреса по известному IP предназначен протокол ARP (Address Resolution Protocol – протокол разрешения адреса). Работает он следующим образом:
- когда компьютер должен послать пакет по определенному IP-адресу, он вначале изучает свой ARP-кэш на наличие там искомого соответствия IP - MAC. (Содержимое ARP-кэша своего компьютера можно посмотреть, выполнив команду arp –a в командной строке). Если таковое имеется, то полученный MAC-адрес вставляется в заголовок исходящего пакета, и пакет отправляется в сеть.
- В противном случае в сеть посылается специальный широковещательный ARP-запрос ("Who has 192.168.0.1?"). Любой компьютер, опознав в запросе свой IP-адрес, должен ответить его отправителю и выслать свой MAC-адрес. Тот помещается в ARP-кэш автора запроса и используется для дальнейшей отправки сетевых пакетов.
Злоумышленник может использовать протокол ARP для того, чтобы перехватить трафик между двумя компьютерами сети.
Схема проведения атаки ARP spoofing
Предположим, что злоумышленнику X надо просмотреть трафик, передающийся с A на B и обратно. Для этого он отправляет на компьютер A ложный ARP-ответ, содержащий IP адрес компьютера B и якобы соответствующий ему MAC-адрес злоумышленника X. Аналогичный ARP-ответ отправляется на B: в нем IP-адресу компьютера А сопоставляется MAC-адрес злоумышленника X. Протокол ARP не требует аутентификации, поэтому А и В не могут проверить достоверность входящих данных и сразу занесут их в свой ARP-кэш. Таким образом, просиходит отравление ARP-кэша узлов А и В, занесение в них неверных, ложных данных. При этом, послав раз ложный ARP-пакет и подменив ARP-кэш чужого компьютера, нужно периодически выполнять эту процедуру вновь и вновь, так как любая операционная система также постоянно обновляет свой ARP-кэш через определенные промежутки времени. Достаточно это делать раз в 20–40 секунд.
Теперь компьютер А, собираясь отправить данные на В, отправит их на Х (поскольку реальная доставка данных коммутатором происходит по МАС-адресу получателя). Злоумышленник Х получает данные, просматривает их и затем переправляет законному получателю В, чтобы не быть обнаруженным. Аналогичная ситуация происходит и в обратном направлении: трафик, передающийся от В к А, также может быть изучен злоумышленником. Особую выгоду для атакующего (и, соответственно, особую опасность) представляет тот случай, когда один из атакуемых компьютеров является шлюзом, т.е. служит для подключения локальной сети к Интернет. Тогда злоумышленнику могут стать доступны имена пользователей и пароли для доступа к Интернет-ресурсам (веб сайтам, ICQ, электронной почте) и другая конфиденциальная информация, передаваемая в Интернет.
Таким образом, коммутируемая инфраструктура не ликвидирует угрозу сниффинга. Однако она заметно снижает ее остроту.
Методы защиты от ARP spoofing
- использование статических записей в ARP-кэше. Для этого необходимо вручную внести в ARP-кэш компьютера записи об IP и соответствующих им MAC адресах. В этом случае ложный ARP-ответ злоумышленника не будет воспринят, и отравления кэша не произойдет.
Записи в ARP-кэше – статическая и динамическая
Однако такой способ сложно применять в больших сетях - по причине его трудоемкости. Также не получится использовать статические записи в том случае, когда раздача IP-адресов выполняется автоматически с применением DHCP-сервера.
- использование интеллектуальных коммутаторов.
Многие современные модели коммутаторов имеют встроенную функцию защиты от ARP спуфинга (выполняется путем анализа ARP-трафика на коммутаторе, и блокирования им ложных ARP-запросов)
- использование специальных модулей межсетевых экранов для обнаружения и блокирования атак
Некоторые межсетевые экраны имеют в своем составе специальный модуль (например, в Outpost он называется «Детектор атак»), позволяющий обнаруживать подозрительную сетевую активность и блокировать ее, а также оповещать об этом пользователя.
- шифрование трафика
Этот метод не предотвращает перехвата, но делает его бесполезным. Если канал связи является криптографически защищенным, это значит, что хакер перехватывает не сообщение, а зашифрованный текст (то есть непонятную последовательность битов). Однако следует помнить о том, что выполнение криптографических преобразований над большими объемами данных может существенно замедлить работу компьютера.
Существует еще один способ прослушивания трафика в сети. Как известно, для своей работы коммутатор динамически строит таблицу соответствия «MAC-адрес – порт». Если через коммутатор проходит пакет, MAC-адрес которого отсутствует в этой таблице, то коммутатор автоматически добавляет в нее новую запись, соответствующую неизвестному MAC-адресу.
Атака заключается в отправке через коммутатор большого числа пакетов с различными ложными MAC-адресами. При этом таблица коммутатора переполнится и он перейдет в режим работы «концентратора» (hub). Соответственно, злоумышленнику станет доступен для просмотра весь трафик в сети.
Особенно актуальной в последнее время является проблема прослушивания беспроводных сетей, поскольку беспроводная сеть по своей сути является открытой и общедоступной. Для предотвращения несанкционированного прослушивания беспроводного трафика в Wi-Fi сетях применяются специальные криптографические протоколы (на сегодняшний день наиболее распространенные – это WPA и WPA2).
2.2.Сканирование
Сканирование сети имеет своей целью выявление подключенных к сети компьютеров и определение работающих на них сетевых сервисов (открытых портов TCP или UDP). Первая задача выполняется посылкой ICMP-сообщений Echo с помощью программы ping с последовательным перебором адресов узлов в сети.
Администратор сети может обнаружить попытки сканирования путем анализа трафика в сети и отслеживания Echo-сообщений, за короткий промежуток времени посылаемых последовательно по всем адресам сети. Для большей скрытности злоумышленник может существенно растянуть процесс во времени («медленное сканирование») — это же касается и сканирования портов TCP/UDP.
Для определения того, какие UDP- или TCP-приложения (а также системные сервисы ОС) запущены на обнаруженных компьютерах, используются программы-сканеры. Поскольку номера портов всех основных сервисов Интернета стандартизованы, то, определив, например, что порт 25/TCP открыт, можно сделать вывод о том, что данный хост является сервером электронной почты; порт 80/TCP – Web сервером, и т. д. Полученную информацию злоумышленник может использовать для дальнейшего развертывания атаки.
Сканирование TCP-портов хоста производится несколькими способами. Наиболее простой способ — установление полного TCP-соединения с тестируемым портом. Если соединение удалось установить, значит, порт открыт и к нему подсоединено серверное приложение. Достоинством этого способа является возможность выполнения сканирования без специального программного обеспечения: стандартная программа telnet позволяет указать произвольный номер порта для установления соединения. Существенный недостаток — возможность отслеживания и регистрации такого сканирования: при анализе системного журнала сканируемого хоста будут обнаружены многочисленные открытые и сразу же прерванные соединения, в результате чего могут быть приняты меры по повышению уровня безопасности. Кроме того, в случае использования утилиты telnet, придется перебирать все интересующие злоумышленника порты вручную.
Сканирование в режиме половинного открытия (half-open scanning) не имеет описанных недостатков. Большинство современных сканеров работают именно таким способом. Сканер направляет на сканируемый порт SYN-сегмент и ожидает ответа. Получение ответного сегмента с битами SYN и ACK означает, что порт открыт; получение сегмента с битом RST означает, что порт закрыт. Получив SYN+ACK, сканер немедленно отправляет на обнаруженный порт сегмент с битом RST, таким образом ликвидируя попытку соединения. Так как соединение так и не было открыто (ACK от сканера не был получен), то зарегистрировать такое сканирование гораздо сложнее.
Третий способ — сканирование с помощью FIN-сегментов. В этом случае на сканируемый порт посылается сегмент с установленным битом FIN. Хост должен ответить RST-сегментом, если FIN-сегмент адресован закрытому порту. FIN-сегменты, направленные на порт, находящийся в состоянии LISTEN, многими реализациями TCP/IP игнорируются. Таким образом, отсутствие отклика говорит о том, что порт открыт. Варианты этого способа сканирования — посылка сегментов с флагами FIN, PSH, URG или вообще без всяких флагов («Null scan»).
Конечно, сканирование SYN-сегментами дает более надежные результаты, однако, к счастью, многие брандмауэры могут не пропускать SYN-сегменты без флага ACK из Интернета во внутреннюю сеть (так, запрещаются соединения хостов Интернета с внутренними хостами, инициируемые из Интернета, но разрешаются соединения, инициируемые изнутри). В этом случае злоумышленнику ничего не остается, кроме как применить сканирование FIN-сегментами.
Для определения открытых портов UDP злоумышленник может отправить на тестируемый порт UDP-сообщение. Получение в ответ ICMP-сообщения Port Unreachable говорит о том, что порт закрыт.
Программа-сканер может также определить операционную систему сканируемого узла по тому, как узел реагирует на специальным образом сконструированные, нестандартные пакеты: например, TCP-сегменты с бессмысленными сочетаниями флагов или ICMP-сообщения некоторых типов, и по другим признакам.
Современные программы-сканеры позволяют не только обнаружить открытые порты приложений, но и определить список уязвимостей, которые присутствуют в этих приложениях, и дать рекомендации по их устранению. Для того, чтобы сканер мог находить уязвимости в новых версиях приложений, база данных сканера должна постоянно обновляться (аналогично базе данных антивирусной программы).
Таким образом, программа-сканер может использоваться не только злоумышленником, но и самим администратором, с целью поиска уязвимостей и их устранения. Также администратор должен регулярно просматривать список открытых портов: наличие неизвестного администратору открытого порта может указывать на присутствие в системе троянской программы.
Отчет программы-сканера Xspider со списком открытых портов
Отчет программы-сканера Xspider: найденная уязвимость и рекомендации по ее устранению
Определить открытые порты на локальной машине, а также приложения, использующие эти порты, также можно с помощью утилиты командной строки netstat.
2.3. Генерация пакетов
В Интернете можно найти готовые программы для генерации пакетов определенного формата и содержания. Применение таких программ часто не требует от злоумышленника ни квалификации программиста, ни понимания принципов работы сети, что делает многие из атак, особенно атаки типа «отказ в обслуживании», широко доступными для исполнения.
2.4. Троянские программы
Предназначены для кражи информации или управления удаленным компьютером.
Троянские программы различаются между собой по тем действиям, которые они производят на зараженном компьютере. Далее представлена классификация троянских программ, согласно лаборатории Касперского.