Раздел 10. Основы безопасности компьютерных сетей
Основы
безопасности компьютерных сетей
Классификация удаленных атак на распределенные
вычислительные системы
Характеристика и механизмы реализации типовых удаленных
атак
Принципы создания защищенных систем связи в распределенных
вычислительных системах
Контроль за маршрутом сообщения в распределенной
вычислительной системе
Контроль за виртуальными соединениями в распределенной
ВС
Программно-аппаратные методы защиты от удаленных атак в
сети Internet
Программные методы защиты, применяемые в сети
Internet
Введение
Повсеместное
распространение информационных систем и неоправданно высокий коэффициент доверия
к ним со стороны пользователей заставляют задумываться о рисках, которые связаны
с таким обширным их использованием. Немаловажным аспектом является сетевое
взаимодействие узлов распределенных, а также разрозненных информационных систем.
В рамках такого взаимодействия по сети передаются данные, идентификационные
атрибуты и управляющие команды.
Потенциальная
возможность взаимодействия с информационными системами, хранящими и
обрабатывающими данные, в том числе стратегические и конфиденциальные, появилась
у множества пользователей, среди которых неизбежно найдутся и злоумышленники.
Кроме того, в результате существенной величины и сложности современных
распределенных информационных систем их надежность функционирования может
оказаться под угрозой и без постороннего вмешательства злоумышленников, а
вследствие сугубо внутренних факторов или внешнего воздействия непредусмотренных
природных катаклизмов.
Под
информационной безопасностью
понимается состояние защищенности информационных ресурсов и поддерживающей
инфраструктуры (распределенной вычислительной сети) от случайных или
преднамеренных воздействий естественного или искусственного характера, связанных
с нарушением одного или нескольких критериев информационной безопасности
(конфиденциальность, доступность, актуальность/целостность). Нарушения
информационной безопасности обычно чреваты нанесением ущерба владельцам или
пользователям информационных ресурсов.
В
особой защите нуждаются такие привлекательные для злоумышленников элементы
сетей, как серверы и активное сетевое оборудование. Первые – как концентраторы
больших объемов информации, вторые – как элементы, в которых осуществляется
преобразование данных (возможно через открытую, незашифрованную форму
представления). При этом во многих случаях получить доступ к серверам или
сетевому оборудованию организации злоумышленникам удается, именно предварительно
получив доступ к рабочим станциям, которые подключены к тому же сегменту сети,
что и целевые компоненты инфраструктуры.
Для
того, чтобы рассматривать в дальнейшем вопросы информационной безопасности,
необходимо напомнить основные понятия, вообще говоря, их всего три: это угрозы, уязвимости и атаки.
Угроза
безопасности
компьютерной (информационной) системы – это потенциально возможное происшествие,
неважно, преднамеренное или нет, которое может оказать нежелательное воздействие
на саму систему, а также на информацию, хранящуюся в ней. Иначе говоря, угроза –
это нечто плохое, что когда-нибудь может произойти.
Уязвимость
компьютерной системы – это некая ее неудачная характеристика, которая делает
возможным возникновение угрозы. Другими словами, именно из-за наличия
уязвимостей в системе происходят нежелательные события.
Атака
на компьютерную систему – это действие, предпринимаемое злоумышленником, которое
заключается в поиске и использовании той или иной уязвимости. Таким образом,
атака – это реализация угрозы. Заметим, что такое толкование атаки (с участием
человека, имеющего злой умысел), исключает присутствующий в определении угрозы
элемент случайности, но, как показывает опыт, часто бывает невозможно различить
преднамеренные и случайные действия, и хорошая система защиты должна адекватно
реагировать на любое из них.
Сетевые угрозы
Наиболее
распространенными причинами возникновения уязвимостей являются:
·
ошибки при проектировании, разработке и эксплуатации
программно-аппаратного обеспечения;
·
преднамеренные действия по внесению уязвимостей в ходе
проектирования, разработки и эксплуатации программно-аппаратного обеспечения;
·
неправильные настройки оборудования и ПО, недопустимое изменение
режимов работы устройств и программ;
·
несанкционированное внедрение и использование неучтенных программ с
последующим необоснованным расходованием ресурсов (например, загрузка
процессора, захват оперативной памяти, памяти на внешних носителях);
·
внедрение вредоносных программ, создающих уязвимости в программном
и программно-аппаратном обеспечении;
·
несанкционированные неумышленные действия пользователей;
·
сбои в работе оборудования и ПО (вызванные сбоями в электропитании,
выходом из строя аппаратных элементов в результате старения и снижения
надежности, внешними воздействиями электромагнитных полей технических устройств
и др.).
Уязвимости
протоколов сетевого взаимодействия связаны с особенностями их программной
реализации и обусловлены ограничениями на размеры применяемого буфера,
недостатками процедуры аутентификации, отсутствием проверок правильности
служебной информации и др.
Краткая
характеристика уязвимостей нескольких протоколов верхних уровней модели OSI (на
примере стека TCP/IP) приведена в табл.1.
В
табл.1 перечислены уязвимости
нескольких протоколов стека TCP/IP, обусловленные факторами «на уровне идеи».
Необходимо отметить, что у этих же протоколов имеются и другие уязвимости,
которые обусловлены ошибками и недоработками в их реализации, потенциальной
возможностью наличия в них «закладок», вредоносных программ и т. д. Кроме того,
с течением времени ПО, в котором реализована поддержка этих протоколов,
обновляется, и соответственно каждая новая версия ПО может содержать в себе
новые ошибки или «закладки».
Отметим
также, что существуют протоколы с поддержкой шифрования процедуры авторизации,
установленной сессии и передаваемых данных (например, SFTP, SSH). При этом и
такие протоколы нельзя назвать полностью безопасными в силу неизбежных ошибок в
их реализации, а также неидеальной криптографической
составляющей.
Для
систематизации и описания уязвимостей программных сетевых протоколов и ПО
используется единая база данных уязвимостей CVE (Common Vulnerabilities and Exposures),
в разработке которой принимают участие специалисты многих известных компаний и
организаций, таких как MITRE, ISS, Cisco, BindView, и т. д. Эта база данных
постоянно пополняется и используется при разработке многочисленных программных
средств анализа защищенности и, прежде всего, средств мониторинга
сетей.
Таблица
1.
Уязвимости отдельных протоколов стека протоколов
TCP/IP
Наименование
протокола |
Соответствие
уровню OSI |
Характеристика
уязвимости |
Содержание
нарушения безопасности информации |
FTP |
Прикладной,
представительный,
сеансовый |
1.
Аутентификация на базе открытого текста (пароли пересылаются в
незашифрованном виде). 2.
Доступ по умолчанию. 3.
Наличие двух открытых портов |
Возможность
перехвата данных учетной записи (имен зарегистрированных пользователей,
паролей). Получение удаленного доступа к хостам |
Telnet |
Прикладной,
представительный,
сеансовый |
Аутентификация
на базе открытого
текста (пароли пересылаются в незашифрованном
виде) |
Возможность
перехвата данных учетной записи пользователя. Получение удаленного доступа
к хостам |
UDP |
Транспортный |
Отсутствие
механизма предотвращения перегрузок буфера. Отсутствие проверки доставки
пакетов адресату |
Возможность
реализации UDР-шторма.
В
результате обмена пакетами происходит существенное снижение
производительности сервера. Вероятность
потери информации в процессе передачи |
ARP |
Сетевой |
Аутентификация
на базе открытого текста (информация пересылается в незашифрованном
виде) |
Возможность
перехвата трафика злоумышленником |
RIP |
Сетевой |
Отсутствие
аутентификации управляющих сообщений об изменении
маршрута |
Возможность
перенаправления трафика через хост
злоумышленника |
TCP |
Транспортный |
Отсутствие
механизма проверки корректности заполнения служебных заголовков
пакета |
Существенное
снижение скорости обмена и даже полный разрыв произвольных соединений по
протоколу TCP |
DNS |
Прикладной,
представительный,
сеансовый |
Отсутствие
средств проверки аутентификации полученных данных от
источника |
Фальсификация
ответа DNS-сервера |
IGMP |
Сетевой |
Отсутствие
аутентификации сообщений об изменении параметров
маршрута |
Возможность
подделки маршрута. |
SMTP |
Прикладной,
представительный,
сеансовый |
Отсутствие
поддержки аутентификации заголовков сообщений |
Возможность
подделывания сообщений электронной почты, а также адреса отправителя
сообщения |
SNMP |
Прикладной,
представительный,
сеансовый |
Отсутствие
поддержки аутентификации заголовков сообщений |
Возможность
достижения максимальной пропускной способности
сети |
Угроза
информационной безопасности реализуется в результате образования канала
реализации угроз между источником угрозы и носителем, что создает условия для
нарушения одного или нескольких критериев безопасности.
Обычно
выделяют три основных вида угроз безопасности – это угрозы раскрытия, целостности и отказа в обслуживании.
Угроза
раскрытия
заключается том, что информация становится известной тому, кому не следовало бы
ее знать. В терминах компьютерной безопасности угроза раскрытия имеет место
всякий раз, когда получен доступ к некоторой конфиденциальной информации,
хранящейся в информационной системе или передаваемой от одной системы к другой.
Иногда вместо слова "раскрытие" используются термины "кража" или
"утечка".
Угроза
целостности
включает в себя любое умышленное изменение (модификацию или даже удаление)
данных, хранящихся в информационной системе или передаваемых из одной системы в
другую. Обычно считается, что угрозе раскрытия подвержены в большей степени
государственные структуры, а угрозе целостности – деловые или коммерческие.
Угроза
отказа в обслуживании
возникает всякий раз, когда в результате некоторых действий блокируется доступ к
некоторому ресурсу информационной системы. Реально блокирование может быть
постоянным, так чтобы запрашиваемый ресурс никогда не был получен, или оно может
вызвать только задержку запрашиваемого ресурса, достаточно долгую для того,
чтобы он стал бесполезным. В таких случаях говорят, что ресурс
исчерпан.
Классификацию
угроз будем рассматривать с точки зрения их реализации, т.е. как классификацию
атак на распределенные вычислительные системы (информационные
системы).
Существует
огромное множество сетевых атак как простых, так и сложных, но все они делятся
на 2 типа воздействия: пассивный и активный.
Пассивное
воздействие
на распределенную вычислительную систему – воздействие, которое не оказывает
непосредственного влияния на работу системы, но может нарушать ее политику
безопасности. Пассивное удаленное воздействие практически невозможно обнаружить.
Пример: прослушивание канала связи в сети.
Активное
воздействие
на распределенную вычислительную систему – воздействие, оказывающее
непосредственное влияние на работу системы (изменение конфигурации системы,
нарушение работоспособности и т. д.) и нарушающее принятую в ней политику
безопасности.
Основной
особенностью любой распределенной системы является то, что ее компоненты
распределены в пространстве и связь между ними физически осуществляется при
помощи сетевых соединений и программно при помощи механизма сообщений. При этом
все управляющие сообщения и данные, пересылаемые между объектами распределенной
информационной системы, передаются по сетевым соединениям в виде пакетов обмена.
Эта особенность и является основной для удаленных атак на инфраструктуру и
протоколы распределенных систем.
Практически
все типы удаленных атак являются активными воздействиями.
Особенностью
активного воздействия по сравнению с пассивным является принципиальная
возможность его обнаружения, так как в результате его осуществления в системе
происходят определенные изменения. В отличие от активного, при пассивном
воздействии не остается никаких следов.
Классификация
удаленных атак на распределенные вычислительные системы
Удаленные
атаки можно классифицировать по следующим признакам:
1.
По характеру воздействия
·
пассивное
·
активное
Очевидной
особенностью активного воздействия по сравнению с пассивным является
принципиальная возможность его обнаружения (естественно, с большей или меньшей
степенью сложности), так как в результате его осуществления в системе происходят
определенные изменения. В отличие от активного, при пассивном воздействии не
остается никаких следов (от того, что атакующий просмотрит чужое сообщение в
системе, в тот же момент ничего не изменится).
2.
По цели воздействия
·
нарушение конфиденциальности информации либо ресурсов
системы
·
нарушение целостности информации
·
нарушение работоспособности (доступности)
системы
Этот
классификационный признак является прямой проекцией трех основных типов угроз –
раскрытия, целостности и отказа в обслуживании.
Основная
цель практически любой атаки – получить несанкционированный
доступ к информации. Существуют две принципиальные возможности доступа к
информации: перехват и искажение. Возможность перехвата
информации означает получение к ней доступа, но невозможность ее модификации.
Следовательно, перехват информации ведет к нарушению ее конфиденциальности.
Примером перехвата информации может служить прослушивание канала в сети. В этом
случае имеется несанкционированный доступ к информации без возможности ее
искажения. Очевидно также, что нарушение конфиденциальности информации является
пассивным воздействием.
Возможность
искажения информации означает либо полный контроль над информационным потоком
между объектами системы, либо возможность передачи сообщений от имени другого
объекта. Таким образом, очевидно, что искажение информации ведет к нарушению ее
целостности. Данное информационное разрушающее воздействие представляет собой
яркий пример активного воздействия. Примером удаленной атаки, цель которой
нарушение целостности информации, может служить типовая удаленная атака "Ложный
объект распределенной вычислительной системы".
Принципиально
другой целью атаки является нарушение работоспособности системы. В этом случае
не предполагается получение атакующим несанкционированного доступа к информации.
Его основная цель – добиться, чтобы операционная система на атакуемом объекте
вышла из строя, и для всех остальных объектов системы доступ к ресурсам
атакованного объекта был бы невозможен. Примером удаленной атаки, целью которой
является нарушение работоспособности системы, может служить типовая удаленная
атака "Отказ в обслуживании".
3.
По условию начала осуществления воздействия
Удаленное
воздействие, также как и любое другое, может начать осуществляться только при
определенных условиях. В распределенных системах существуют три вида условий
начала осуществления удаленной атаки:
·
Атака по запросу от атакуемого объекта
В
этом случае атакующий ожидает передачи от потенциальной цели атаки запроса
определенного типа, который и будет условием начала осуществления воздействия.
Примером подобных запросов в сети Internet являются DNS- и ARP-запросы. Важно
отметить, что данный тип удаленных атак наиболее характерен для распределенных
ВС.
·
Атака по наступлению ожидаемого события на атакуемом
объекте
В
этом случае атакующий осуществляет постоянное наблюдение за состоянием
операционной системы удаленной цели атаки и при возникновении определенного
события в этой системе начинает воздействие. Как и в предыдущем случае,
инициатором осуществления начала атаки выступает сам атакуемый
объект.
·
Безусловная атака
В
этом случае начало осуществления атаки безусловно по отношению к цели атаки, то
есть атака осуществляется немедленно и безотносительно к состоянию системы и
атакуемого объекта. Следовательно, в этом случае атакующий является инициатором
начала осуществления атаки.
4.
По наличию обратной связи с атакуемым объектом
·
с обратной связью
·
без обратной связи (однонаправленная
атака)
Удаленная
атака, осуществляемая при наличии обратной связи с атакуемым объектом,
характеризуется тем, что на некоторые запросы, переданные на атакуемый объект,
атакующему требуется получить ответ, а, следовательно, между атакующим и целью
атаки существует обратная связь, которая позволяет атакующему адекватно
реагировать на все изменения, происходящие на атакуемом объекте. Подобные
удаленные атаки наиболее характерны для распределенных систем.
В
отличие от атак с обратной связью удаленным атакам без обратной связи не
требуется реагировать на какие-либо изменения, происходящие на атакуемом
объекте. Атаки данного вида обычно осуществляются передачей на атакуемый объект
одиночных запросов, ответы на которые атакующему не нужны. Подобную удаленную
атаку можно называть однонаправленной удаленной атакой. Примером
однонаправленных атак является типовая удаленная атака "Отказ в
обслуживании".
5.
По расположению субъекта атаки относительно атакуемого объекта
·
внутрисегментное
·
межсегментное
С
точки зрения удаленной атаки чрезвычайно важно, как по отношению друг к другу
располагаются субъект и объект атаки, то есть в одном или в разных сегментах они
находятся. В случае внутрисегментной атаки, как следует из названия, субъект и
объект атаки находятся в одном сегменте. При межсегментной атаке субъект и
объект атаки находятся в разных сегментах. Данный классификационный признак
позволяет судить о так называемой "степени удаленности" атаки.
В
дальнейшем будет показано, что на практике межсегментную атаку осуществить
значительно труднее, чем внутрисегментную. Важно отметить, что межсегментная
удаленная атака представляет гораздо большую опасность, чем внутрисегментная.
Это связано с тем, что в случае межсегментной атаки объект её и непосредственно
атакующий могут находиться на расстоянии многих тысяч километров друг от друга,
что может существенно воспрепятствовать мерам по отражению атаки.
6.
По уровню эталонной модели ISO/OSI, на котором осуществляется воздействие
·
физический
·
канальный
·
сетевой
·
транспортный
·
сеансовый
·
представительный
·
прикладной
Характеристика
и механизмы реализации типовых удаленных атак
Понятие
типовой удаленной атаки
Исследования
и анализ информационной безопасности различных распределенных вычислительных
систем продемонстрировали тот факт, что, независимо от используемых сетевых
протоколов, топологии, инфраструктуры исследуемых систем, механизмы реализации
удаленных воздействий инвариантны по отношению к особенностям конкретной
системы. Это объясняется тем, что распределенные системы проектируются на основе
одних и тех же принципов, а, следовательно, имеют практически одинаковые
проблемы безопасности. Поэтому оказывается, что причины успеха удаленных атак на
различные информационные системы одинаковы. Таким образом, появляется
возможность ввести понятие типовой удаленной атаки.
Типовая
удаленная атака –
это удаленное информационное разрушающее воздействие, программно осуществляемое
по каналам связи и характерное для любой распределенной вычислительной
системы.
Введение
этого понятия в совокупности с описанием механизмов реализации типовых удаленных
атак позволяет предложить методику исследования безопасности, инвариантную по
отношению к виду распределенной системы. Методика заключается в последовательном
осуществлении всех типовых удаленных воздействий в соответствии с предложенным
далее их описанием и характеристиками. При этом основным элементом исследования
безопасности является анализ сетевого трафика. Как пояснение последнего
утверждения рассмотрим следующую аналогию: отладчик – основное средство для
хакера, соответственно анализатор сетевого трафика – основное средство для
сетевого хакера. Анализатор сетевого трафика по своей сути является сетевым
отладчиком. Итак, в качестве методики исследования информационной безопасности
распределенной вычислительной системы предлагается выполнение ряда тестовых
задач, оценивающих её защищенность по отношению к типовым удаленным
воздействиям.
Как
уже отмечалось, основной особенностью распределенной системы является то, что ее
объекты распределены в пространстве и связь между ними физически осуществляется
по сетевым соединениям и программно – при помощи механизма сообщений. При этом
все управляющие сообщения и данные, пересылаемые между объектами систем,
передаются по сетевым соединениям в виде пакетов обмена. Эта особенность привела
к появлению специфичного типового удаленного воздействия, заключающегося в
прослушивании канала связи. Назовем данное типовое удаленное воздействие анализом сетевого трафика (или,
сокращенно, сетевым анализом).
Анализ
сетевого трафика позволяет, во-первых, изучить логику работы распределенной
системы, то есть получить взаимно однозначное соответствие событий, происходящих
в системе, и команд, пересылаемых друг другу ее объектами, в момент появления
этих событий. Это достигается путем перехвата и анализа пакетов обмена на
канальном уровне. Знание логики работы распределенной вычислительной системы
позволяет на практике моделировать и осуществлять типовые удаленные атаки.
Во-вторых,
анализ сетевого трафика позволяет перехватить поток данных, которыми
обмениваются объекты распределенной вычислительной системы. Таким образом,
удаленная атака данного типа заключается в получении на удаленном объекте
несанкционированного доступа к информации, которой обмениваются два сетевых
абонента. Отметим, что при этом отсутствует возможность модификации трафика и
сам анализ возможен только внутри одного сегмента сети. Примером перехваченной
при помощи данной типовой удаленной атаки информации могут служить имя и пароль
пользователя, пересылаемые в незашифрованном виде по сети.
По
характеру воздействия анализ сетевого трафика является пассивным воздействием.
Осуществление данной атаки без обратной связи ведет к нарушению
конфиденциальности информации внутри одного сегмента сети на канальном уровне
OSI. При этом начало осуществления атаки безусловно по отношению к цели атаки.
Часто
для анализа структуры сети используются снифферы пакетов. Сниффер пакетов
представляет собой прикладную программу, которая использует сетевую карту,
перехватывающую все сетевые пакеты, передающиеся через определенный
домен.
Подмена
доверенного объекта или субъекта распределенной вычислительной
системы
Одной
из проблем безопасности распределенной вычислительной системы является
недостаточная идентификация и аутентификация ее удаленных друг от друга
объектов. Основная трудность заключается в осуществлении однозначной
идентификации сообщений, передаваемых между субъектами и объектами
взаимодействия. Обычно в распределенных системах эта проблема решается следующим
образом: в процессе создания виртуального канала объекты системы обмениваются
определенной информацией, уникально идентифицирующей данный канал. Такой обмен
обычно называется "рукопожатием" (handshake). Однако, отметим, что не всегда для
связи двух удаленных объектов создается виртуальный канал. Практика показывает,
что зачастую, особенно для служебных сообщений (например, от маршрутизаторов)
используется передача одиночных сообщений, не требующих
подтверждения.
Как
известно, для адресации сообщений в распределенных системах используется сетевой
адрес, который уникален для каждого объекта системы (на канальном уровне модели
OSI – это аппаратный адрес сетевого адаптера, на сетевом уровне – IP-адрес).
Сетевой адрес также может использоваться для идентификации объектов
распределенной системы, однако сетевой адрес достаточно просто подделывается и
поэтому использовать его в качестве единственного средства идентификации
объектов недопустимо.
В
том случае, когда распределенная система использует нестойкие алгоритмы
идентификации удаленных объектов, то оказывается возможной типовая удаленная
атака, заключающаяся в передаче по каналам связи сообщений от имени
произвольного объекта или субъекта системы. При этом существуют две
разновидности данной типовой удаленной атаки:
·
атака
при установленном виртуальном канале,
·
атака
без установленного виртуального канала.
В
случае установленного виртуального соединения атака будет заключаться в
присвоении прав доверенного субъекта взаимодействия, легально подключившегося к
объекту системы, что позволит атакующему вести сеанс работы с объектом
распределенной системы от имени доверенного субъекта. Реализация удаленных атак
данного типа обычно состоит в передаче пакетов обмена с атакующего объекта на
цель атаки от имени доверенного субъекта взаимодействия (при этом переданные
сообщения будут восприняты системой как корректные). Для осуществления атаки
данного типа необходимо преодолеть систему идентификации и аутентификации
сообщений, которая, в принципе, может использовать контрольную сумму,
вычисляемую с помощью открытого ключа, динамически выработанного при
установлении канала, случайные многобитные счетчики пакетов и сетевые адреса
станций. Как было замечено выше, для служебных сообщений в распределенных
системах часто используется передача одиночных сообщений, не требующих
подтверждения, то есть не требуется создание виртуального соединения. Атака без
установленного виртуального соединения заключается в передаче служебных
сообщений от имени сетевых управляющих устройств, например, от имени
маршрутизаторов.
Очевидно,
что в этом случае для идентификации пакетов возможно лишь использование
статических ключей, определенных заранее, что довольно неудобно и требует
сложной системы управления ключами. Однако, при отказе от такой системы
идентификация пакетов без установленного виртуального канала будет возможна лишь
по сетевому адресу отправителя, который легко подделать.
Посылка
ложных управляющих сообщений может привести к серьезным нарушениям работы
распределенной системы (например, к изменению ее
конфигурации).
Подмена
доверенного объекта распределенной системы является активным воздействием,
совершаемым с целью нарушения конфиденциальности и целостности информации, по
наступлению на атакуемом объекте определенного события. Данная удаленная атака
может являться как внутрисегментной, так и межсегментной, как с обратной связью,
так и без обратной связи с атакуемым объектом и осуществляется на сетевом и
транспортном уровнях модели OSI.
Примером
организации такого вида атак является IP-спуфинг. IP-спуфинг происходит, когда
хакер, находящийся внутри корпорации или вне ее выдает себя за
санкционированного пользователя. Это можно сделать двумя способами. Во-первых,
хакер может воспользоваться IP-адресом, находящимся в пределах диапазона
санкционированных IP-адресов, или авторизованным внешним адресом, которому
разрешается доступ к определенным сетевым ресурсам. Атаки IP-спуфинга часто
являются отправной точкой для прочих атак. Классический пример – атака DoS,
которая начинается с чужого адреса, скрывающего истинную личность
хакера.
Ложный
объект распределенной вычислительной системы
В
том случае, если в распределенной системе недостаточно надежно решены проблемы
идентификации сетевых управляющих устройств (например, маршрутизаторов),
возникающие при взаимодействии последних с объектами системы, то она может
подвергнуться типовой удаленной атаке, связанной с изменением маршрутизации и
внедрением в систему ложного объекта. В том случае, если инфраструктура сети
такова, что для взаимодействия объектов необходимо использование алгоритмов
удаленного поиска, то это также позволяет внедрить в систему ложный объект.
Итак, существуют две принципиально разные причины, обуславливающие появление
типовой удаленной атаки "Ложный объект распределенной вычислительной
сети".
1. Внедрение
в распределенную вычислительную систему ложного объекта путем навязывания
ложного маршрута
Современные
глобальные сети представляют собой совокупность сегментов сети, связанных между
собой через сетевые узлы. При этом маршрутом называется последовательность узлов
сети, по которой данные передаются от источника к приемнику. Каждый
маршрутизатор имеет специальную таблицу, называемую таблицей маршрутизации, в
которой для каждого адресата указывается оптимальный маршрут. Отметим, что
таблицы маршрутизации существуют не только у маршрутизаторов, но и у любых
хостов в глобальной сети. Для обеспечения эффективной и оптимальной
маршрутизации в распределенных сетях применяются специальные управляющие
протоколы, позволяющие маршрутизаторам обмениваться информацией друг с другом
(RIP (Routing Internet Protocol), OSPF (Open Shortest Path First)), уведомлять
хосты о новом маршруте – ICMP (Internet Control Message Protocol), удаленно
управлять маршрутизаторами (SNMP (Simple Network Management Protocol)). Важно
отметить, что все описанные выше протоколы позволяют удаленно изменять
маршрутизацию в сети Internet, то есть являются протоколами управления
сетью.
Поэтому
абсолютно очевидно, что маршрутизация в глобальных сетях играет важнейшую роль
и, как следствие этого, может подвергаться атаке. Основная цель атаки, связанной
с навязыванием ложного маршрута, состоит в том, чтобы изменить исходную
маршрутизацию на объекте распределенной системы так, чтобы новый маршрут
проходил через ложный объект – хост атакующего.
Реализация
данной типовой удаленной атаки состоит в несанкционированном использовании
протоколов управления сетью для изменения исходных таблиц маршрутизации.
Для
изменения маршрутизации атакующему необходимо послать по сети определенные
данными протоколами управления сетью специальные служебные сообщения от имени
сетевых управляющих устройств (например, маршрутизаторов). В результате
успешного изменения маршрута атакующий получит полный контроль над потоком
информации, которой обмениваются два объекта сети, и атака перейдет во вторую
стадию, связанную с приемом, анализом и передачей сообщений, получаемых от
дезинформированных объектов распределенной системы.
Навязывание
объекту РВС ложного маршрута – активное воздействие, безусловно по отношению к
цели атаки. Данная типовая удаленная атака может осуществляться как внутри
одного сегмента, так и межсегментно, как с обратной связью, так и без обратной
связи с атакуемым объектом на транспортном и прикладном уровне модели OSI.
2. Внедрение
в распределенную вычислительную систему ложного объекта путем использования
недостатков алгоритмов удаленного поиска
В
распределенной системе часто оказывается, что ее удаленные объекты изначально не
имеют достаточно информации, необходимой для адресации сообщений. Обычно такой
информацией являются аппаратные (адрес сетевого адаптера) и логические
(IP-адрес, например) адреса объектов сети. Для получения подобной информации в
распределенных системах используются различные алгоритмы удаленного поиска,
заключающиеся в передаче по сети специального вида поисковых запросов, и в
ожидании ответов на запрос с искомой информацией. После получения ответа на
запрос, запросивший субъект системы обладает всеми необходимыми данными для
адресации. Руководствуясь полученными из ответа сведениями об искомом объекте,
запросивший субъект РВС начинает адресоваться к нему. Примером подобных
запросов, на которых базируются алгоритмы удаленного поиска, могут служить ARP-
и DNS-запрос в сети Internet.
В
случае использования распределенной системой механизмов удаленного поиска
существует возможность на атакующем объекте перехватить посланный запрос и
послать на него ложный ответ, где указать данные, использование которых приведет
к адресации на атакующий ложный объект. В дальнейшем весь поток информации между
субъектом и объектом взаимодействия будет проходить через ложный объект
сети.
Другой
вариант внедрения в РВС ложного объекта использует недостатки алгоритма
удаленного поиска и состоит в периодической передаче на атакуемый объект заранее
подготовленного ложного ответа без приема поискового запроса. В самом деле,
атакующему для того, чтобы послать ложный ответ, не всегда обязательно
дожидаться приема запроса (он может, в принципе, не иметь подобной возможности
перехвата запроса). При этом атакующий может спровоцировать атакуемый объект на
передачу поискового запроса, и тогда его ложный ответ будет немедленно иметь
успех. Данная типовая удаленная атака чрезвычайно характерна для глобальных
сетей, когда у атакующего из-за нахождения его в другом сегменте относительно
цели атаки просто нет возможности перехватить поисковый
запрос.
Ложный
объект РВС – активное воздействие, совершаемое с целью нарушения
конфиденциальности и целостности информации, которое может являться атакой по
запросу от атакуемого объекта, а также безусловной атакой. Данная удаленная
атака является как внутрисегментной, так и межсегментной, имеет обратную связь с
атакуемым объектом и осуществляется на канальном и прикладном уровнях модели
OSI.
3.
Использование ложного объекта для организации удаленной атаки на распределенную
вычислительную систему
Получив
контроль над проходящим потоком информации между объектами, ложный объект сети
может применять различные методы воздействия на перехваченную
информацию.
Селекция
потока информации и сохранение ее на ложном объекте распределенной
вычислительной сети
Одной
из атак, которую может осуществлять ложный объект РВС, является перехват
передаваемой между субъектом и объектом взаимодействия информации. Важно
отметить, что факт перехвата информации (файлов, например) возможен из-за того,
что при выполнении некоторых операций над файлами (чтение, копирование и т. д.)
содержимое этих файлов передается по сети, а, значит, поступает на ложный
объект. Простейший способ реализации перехвата – это сохранение в файле всех
получаемых ложным объектом пакетов обмена.
Тем
не менее, данный способ перехвата информации оказывается недостаточно
информативным. Это происходит вследствие того, что в пакетах обмена кроме полей
данных существуют служебные поля, не представляющие в данном случае для
атакующего непосредственного интереса. Следовательно, для того, чтобы получить
непосредственно передаваемый файл, необходимо проводить на ложном объекте
динамический семантический анализ потока информации для его селекции.
Модификация
информации
Одной
из особенностей любой системы воздействия, построенной по принципу ложного
объекта, является то, что она способна модифицировать перехваченную информацию.
Следует особо отметить, что это один из способов, позволяющих программно
модифицировать поток информации между объектами распределенной системы с другого
объекта. Ведь для реализации перехвата информации в сети необязательно атаковать
систему по схеме "ложный объект". Эффективней будет атака, осуществляющая анализ
сетевого трафика, позволяющая получать все пакеты, проходящие по каналу связи,
но, в отличие от удаленной атаки по схеме "ложный объект", она не способна к
модификации информации.
Далее
рассмотрим два вида модификации информации:
·
модификация
передаваемых данных;
·
модификация
передаваемого кода.
Одной
из функций, которой может обладать система воздействия, построенная по принципу
"ложный объект", является модификация передаваемых данных. В результате селекции
потока перехваченной информации и его анализа система может распознавать тип
передаваемых файлов (исполняемый или текстовый). Соответственно, в случае
обнаружения текстового файла или файла данных появляется возможность
модифицировать проходящие через ложный объект данные. Особую угрозу эта функция
представляет для сетей обработки конфиденциальной
информации.
Другим
видом модификации может быть модификация передаваемого кода. Ложный объект,
проводя семантический анализ проходящей через него информации, может выделять из
потока данных исполняемый код. Известный принцип неймановской архитектуры
гласит, что не существует различий между данными и командами. Следовательно, для
того, чтобы определить, что передается по сети – код или данные, необходимо
использовать определенные особенности, свойственные реализации сетевого обмена в
конкретной распределенной вычислительной системе или некоторые особенности,
присущие конкретным типам исполняемых файлов.
Представляется
возможным выделить два различных по цели вида модификации
кода:
·
внедрение
разрушающих программных средств;
·
изменение
логики работы исполняемого файла.
В
первом случае при внедрении разрушающих программных средств исполняемый файл
модифицируется по вирусной технологии: к исполняемому файлу одним из известных
способов дописывается тело, а также одним из известных способов изменяется точка
входа так, чтобы она указывала на начало внедренного кода. Описанный способ, в
принципе, ничем не отличается от стандартного заражения исполняемого файла
вирусом, за исключением того, что файл поражается вирусом или разрушающим кодом
в момент передачи его по сети. Такое возможно лишь при использовании системы
воздействия, построенной по принципу "ложный объект". Конкретный вид разрушающих
программных средств, его цели и задачи в данном случае не имеют значения, но
можно рассмотреть, например, вариант использования ложного объекта для создания
сетевого червя – наиболее сложного на практике удаленного воздействия в сетях,
или в качестве разрушающих программных средств использовать сетевые
шпионы.
Во
втором случае происходит модификация исполняемого кода с целью изменения логики
его работы. Данное воздействие требует предварительного исследования работы
исполняемого файла и, в случае его проведения, может принести самые неожиданные
результаты. Например, при запуске на сервере программы идентификации
пользователей распределенной базы данных ложный объект может так модифицировать
код этой программы, что появится возможность беспарольного входа с наивысшими
привилегиями в базу данных.
Подмена
информации
Ложный
объект позволяет не только модифицировать, но и подменять перехваченную им
информацию. Если модификация информации приводит к ее частичному искажению, то
подмена – к ее полному изменению.
При
возникновении в сети определенного контролируемого ложным объектом события
одному из участников обмена посылается заранее подготовленная дезинформация. При
этом такая дезинформация в зависимости от контролируемого события может быть
воспринята либо как исполняемый код, либо как данные. Рассмотрим пример
подобного рода дезинформации.
Предположим,
что ложный объект контролирует событие, которое состоит в подключении
пользователя к серверу. В этом случае он ожидает, например, запуска
соответствующей программы входа в систему. В случае, если эта программа
находится на сервере, то при ее запуске исполняемый файл передается на рабочую
станцию. Вместо того, чтобы выполнить данное действие, ложный объект передает на
рабочую станцию код заранее написанной специальной программы – захватчика
паролей. Эта программа выполняет визуально те же действия, что и настоящая
программа входа в систему, например, запрашивая имя и пароль пользователя, после
чего полученные сведения посылаются на ложный объект, а пользователю выводится
сообщение об ошибке. При этом пользователь, посчитав, что он неправильно ввел
пароль (пароль обычно не отображается на экране) снова запустит программу
подключения к системе (на этот раз настоящую) и со второго раза получит доступ.
Результат такой атаки – имя и пароль пользователя, сохраненные на ложном
объекте.
Еще
один пример – парольные атаки. Хакеры могут проводить парольные атаки с помощью
целого ряда методов, таких как простой перебор (brute force attack), троянский
конь, IP-спуфинг и сниффинг пакетов. Хотя логин и пароль часто можно получить
при помощи IP-спуфинга и снифинга пакетов, хакеры часто пытаются подобрать
пароль и логин, используя для этого многочисленные попытки доступа. Такой подход
носит название простого перебора (brute force attack). Часто для такой атаки
используется специальная программа, которая пытается получить доступ к ресурсу
общего пользования (например, к серверу). Если в результате хакер получает
доступ к ресурсам, он получает его на правах обычного пользователя, пароль
которого был подобран. Если этот пользователь имеет значительные привилегии
доступа, хакер может создать для себя "проход" для будущего доступа, который
будет действовать даже если пользователь изменит свой пароль и
логин.
Также
к этому типу атак можно отнести атаки типа Man-in-the-Middle. Для атаки типа
Man-in-the-Middle хакеру нужен доступ к пакетам, передаваемым по сети. Такой
доступ ко всем пакетам, передаваемым от провайдера в любую другую сеть, может, к
примеру, получить сотрудник этого провайдера. Для атак этого типа часто
используются снифферы пакетов, транспортные протоколы и протоколы маршрутизации.
Атаки проводятся с целью кражи информации, перехвата текущей сессии и получения
доступа к частным сетевым ресурсам, для анализа трафика и получения информации о
сети и ее пользователях, для проведения атак типа DoS, искажения передаваемых
данных и ввода несанкционированной информации в сетевые
сессии.
Отказ
в обслуживании
Одной
из основных задач, возлагаемых на распределенную систему, является обеспечение
надежного удаленного доступа с любого объекта сети к данному объекту. В общем
случае в распределенной системе каждый субъект сети должен иметь возможность
подключиться к любому объекту системы и получить в соответствии со своими
правами удаленный доступ к его ресурсам. Обычно в вычислительных сетях
возможность предоставления удаленного доступа реализуется следующим образом: на
объекте запускаются на выполнение ряд программ-серверов (например, FTP-сервер,
WWW-сервер и т.п.), предоставляющих удаленный доступ к ресурсам данного объекта.
Данные программы-серверы входят в состав телекоммуникационных служб
предоставления удаленного доступа. Задача сервера состоит в том, чтобы, находясь
в памяти операционной системы объекта сети, постоянно ожидать получения запроса
на подключение от удаленного объекта. В случае получения подобного запроса
сервер должен по возможности передать на запросивший объект ответ, в котором
либо разрешить подключение, либо нет (подключение к серверу специально описано
очень схематично, так как подробности в данный момент не имеют значения). По
аналогичной схеме происходит создание виртуального канала связи, по которому
обычно взаимодействуют объекты распределенной системы. В этом случае
непосредственно ядро сетевой ОС обрабатывает приходящие извне запросы на
создание виртуального канала и передает их в соответствии с идентификатором
запроса (порт или сокет) прикладному процессу, которым является соответствующий
сервер.
Очевидно,
что сетевая операционная система способна иметь только ограниченное число
открытых виртуальных соединений и отвечать лишь на ограниченное число запросов.
Эти ограничения зависят от различных параметров системы в целом, основными из
которых является пропускная способность канала связи (чем она выше, тем больше
число возможных запросов в единицу времени).
Основная
проблема состоит в том, что при отсутствии статической ключевой информации
идентификация запроса возможна только по адресу его отправителя. Если в
распределенной системе не предусмотрено средств аутентификации адреса
отправителя, то есть инфраструктура сети позволяет с одного объекта системы
передавать на другой атакуемый объект бесконечное число анонимных запросов на
подключение от имени других объектов, то в этом случае будет иметь успех типовая
удаленная атака "Отказ в обслуживании". Результат применения этой удаленной
атаки – нарушение на атакованном объекте работоспособности соответствующей
службы предоставления удаленного доступа, то есть невозможность получения
удаленного доступа с других объектов РВС – отказ в
обслуживании.
Вторая
разновидность этой типовой удаленной атаки состоит в передаче с одного адреса
такого количества запросов на атакуемый объект, какое позволит трафик
(направленный "шторм" запросов). В этом случае, если в системе не предусмотрены
правила, ограничивающие число принимаемых запросов с одного объекта (адреса) в
единицу времени, то результатом этой атаки может являться как переполнение
очереди запросов и отказа одной из телекоммуникационных служб, так и полная
остановка компьютера из-за невозможности системы заниматься ничем другим, кроме
обработки запросов.
И
последней, третьей разновидностью атаки "Отказ в обслуживании" является передача
на атакуемый объект некорректного, специально подобранного запроса. В этом
случае при наличии ошибок в удаленной системе возможно зацикливание процедуры
обработки запроса, переполнение буфера с последующим зависанием
системы.
Типовая
удаленная атака "Отказ в обслуживании" является активным воздействием,
осуществляемым с целью нарушения работоспособности системы, безусловно
относительно цели атаки. Данная удаленная атака является однонаправленным
воздействием, как межсегментным, так и внутрисегментным, осуществляемым на
транспортном и прикладном уровнях модели OSI.
В
целом любая атака типа «Отказ в обслуживании» (Denial of Service - DoS) ставит своей целью заставить
сервер не отвечать на запросы. Такой тип атаки не подразумевает непосредственно
получение некоторой секретной информации, но используется для того, чтобы
парализовать работу целевых сервисов. Например, некоторые программы из-за ошибок
в своем коде могут вызывать исключительные ситуации, и при отключении сервисов
способны исполнять код, предоставленный злоумышленником или атаки лавинного
типа, когда сервер не в состоянии обработать все входящие
пакеты.
DDoS
(от англ. Distributed Denial of
Service — распределённая DoS) — подтип DoS атаки, имеющий ту же цель что и
DoS, но производимой не с одного компьютера, а с нескольких компьютеров в сети.
В данных типах атак используется либо возникновение ошибок, генерирующих отказ
сервиса, либо срабатывание защиты, вызывающей блокирование работы сервиса, а в
результате также и отказ в обслуживании. DDoS используется там, где обычный DoS
неэффективен. Для этого несколько компьютеров объединяются, и каждый производит
DoS атаку на систему жертвы. Вместе это называется
DDoS-атака.
Принципы создания
защищенных систем связи в распределенных вычислительных
системах
Очевидно,
что при построении защищенных систем следует бороться не с угрозами, являющимися
следствием недостатков системы, а с причинами возможного успеха атак. Ясно, что
для того, чтобы победить следствие, надо устранить причину. Поэтому, чтобы
ликвидировать угрозы (удаленные атаки), осуществляемые по каналам связи,
необходимо ликвидировать причины, их порождающие. Это основной принцип,
руководствуясь которым, формулируются политики безопасности – совокупность
норм и правил, определяющих меры по обеспечению безопасности информации, в том
числе и требования к защищенным каналам связи в распределенных вычислительных
системах.
Политику
безопасности необходимо совершенствовать, чтобы она оставалась эффективной. Даже
если удалось разработать и внедрить эффективную политику безопасности, работа на
этом не заканчивается. Обеспечение информационной безопасности – непрерывный
процесс. Технологии стремительно изменяются, системы устаревают, а многие
процедуры защиты теряют эффективность.
Политика
безопасности включает в себя 3 уровня защиты:
·
1-й
уровень – защита на уровне аппаратных средств хостов и серверов, активизируемая
еще до загрузки ОС;
·
2-й
уровень – создание замкнутого интерфейсного окружения и защита на уровне
локальных хостов;
·
3-й
уровень – защита на уровне общих ресурсов распределенной системы, включая
блокирование несанкционированного межсетевого доступа.
Рассмотрим
инструменты, помогающие выработать стратегию при формулировке политики
безопасности в распределенных системах.
Утверждение 1.
Наилучшее с точки зрения безопасности взаимодействие объектов в распределенной
вычислительной системе возможно только по физически выделенному каналу.
Однако,
во-первых, на практике обеспечить взаимодействие всех объектов по выделенному
каналу достаточно сложно и, во-вторых, нельзя не предусмотреть вариант
физического подключения к каналу. Следовательно, разработчик защищенной системы
связи в распределенной системе должен исходить из следующего принципа:
Утверждение 2.
При построении защищенной системы связи в распределенной вычислительной системе
необходимо исходить из того, что все сообщения, передаваемые по каналу связи,
могут быть перехвачены, но это не должно повлечь за собой нарушения безопасности
системы в целом.
Таким
образом, данное утверждение накладывает на разработчика следующие требования:
необходимость введения дополнительных средств идентификации объектов в
распределенной системе и криптозащита передаваемых по каналу связи сообщений.
Идентификация
объектов распределенной системы, в отсутствие статической ключевой информации,
возможна только при взаимодействии объектов с использованием виртуального канала
(заметим, что в дальнейшем рассматривается только система, у объектов которой
отсутствует ключевая информация для связи друг с другом – в подобной системе
решить задачу безопасного взаимодействия несколько сложнее). Т.о. для того,
чтобы ликвидировать причину успеха удаленных атак необходимо руководствоваться
следующим правилом:
Утверждение 3.
Любое взаимодействие двух объектов в распределенной системе должно проходить по
виртуальному каналу связи.
Рассмотрим,
как в распределенной системе виртуальный канал связи может использоваться для
надежной, независимой от топологии и физической организации системы,
идентификации ее удаленных объектов. Для этого при создании виртуального канала
могут использоваться криптоалгоритмы с открытым ключом. Данные криптоалгоритмы
основаны на результатах исследований, полученных в 70-х годах У. Диффи. Он
ввел понятие односторонней функции с потайным входом. Это не просто вычисляемая
в одну сторону функция, обращение которой невозможно, она содержит потайной вход
(trapdoor), который позволяет вычислять обратную функцию лицу, знающему
секретный ключ. Сущность криптографии с открытым ключом (или двухключевой
криптографии) в том, что ключи, имеющиеся в криптосистеме, входят в нее парами и
каждая пара удовлетворяет следующим двум свойствам:
·
текст,
зашифрованный на одном ключе, может быть дешифрован на
другом;
·
знание
одного ключа не позволяет вычислить другой.
Поэтому
один из ключей может быть опубликован. При опубликованном (открытом) ключе
шифрования и секретном ключе дешифрования получается система шифрования с
открытым ключом. Каждый пользователь сети связи может зашифровать сообщение при
помощи открытого ключа, а расшифровать его сможет только владелец секретного
ключа. При опубликовании ключа дешифрования получается система цифровой подписи.
Здесь только владелец секретного ключа создания подписи может правильно
зашифровать текст (т.е. подписать его), а проверить подпись (дешифровать текст)
может любой на основании опубликованного ключа проверки
подписи.
В
A
вырабатывает случайное число x, вычисляет число ax (mod p) и посылает
его B;
B
вырабатывает случайное число y, вычисляет число ay (mod p) и посылает
его A;
затем
A и B возводят полученное число в степень со своим показателем и получают число
axy (mod p).
Рисунок
1. Алгоритм
У. Диффи и М. Хеллмана открытого распределения ключей
Это
число и является сеансовым ключом для одноключевого алгоритма, например, DES.
Для раскрытия этого ключа криптоаналитику необходимо по известным
ax(mod p), ay(mod p) найти axy(mod p) , т.е.
найти x или y. Нахождение числа x по его экспоненте ax(mod p)
называется задачей дискретного логарифмирования в простом поле. Эта задача
является труднорешаемой, и поэтому полученный ключ, в принципе, может быть
стойким.
Особенность
данного криптоалгоритма состоит в том, что перехват по каналу связи пересылаемых
в процессе создания виртуального канала сообщений ax(mod p) и
ay(mod p) не позволит атакующему получить конечный ключ шифрования
axy(mod p). Этот ключ далее должен использоваться, во-первых, для
цифровой подписи сообщений и, во-вторых, для их криптозащиты. Цифровая подпись
сообщений позволяет надежно идентифицировать объект распределенной сістемы и
виртуальный канал. Шифрование сообщений необходимо для соблюдения Утверждения 2.
В заключении к данному пункту сформулируем следующее требование к созданию
защищенных систем связи в распределенных
вычислительных системах
и два следствия из него:
Утверждение 4.
Для обеспечения надежной идентификации объектов распределенной вычислительной
системы при создании виртуального канала необходимо использовать криптоалгоритмы
с открытым ключом.
Следствие 4.1.
Необходимо обеспечить цифровую подпись сообщений.
Следствие 4.2.
Необходимо обеспечить возможность шифрования сообщений.
Контроль
за маршрутом сообщения в распределенной вычислительной системе
Как
известно, каждый объект распределенной системы должен обладать адресом,
уникально его идентифицирующим. Для того, чтобы сообщение от одного объекта было
передано на другой объект системы, оно должно пройти через цепь маршрутизаторов,
задача которых, проанализировав адрес назначения, указанный в сообщении, выбрать
оптимальный маршрут и, исходя из него, переправить пакет или на следующий
маршрутизатор или непосредственно абоненту, если он напрямую подключен к данному
узлу. Таким образом, маршрут до объекта определяется цепочкой узлов, пройденных
сообщением. Маршрут сообщения может являться информацией, аутентифицирующей с
точностью до подсети подлинность адреса субъекта, отославшего сообщение.
Очевидно, что перед любой системой связи объектов в сети встает стандартная
проблема проверки подлинности адреса сообщения, пришедшего на объект. Эту
задачу, с одной стороны, можно решить, введя дополнительную идентификацию
сообщений на другом, более высоком уровне OSI. Так, адресация осуществляется на
сетевом уровне, а дополнительная идентификация, например, на транспортном.
Однако подобное решение не позволит избежать проблемы контроля за созданием
соединений, так как дополнительная идентификация абонентов будет возможна только
после создания соединения. Поэтому разработчикам распределенной вычислительной
системы можно предложить следующие пути решения проблемы.
В
первом случае функцию проверки подлинности адреса отправителя можно возложить на
маршрутизатор. Это несложно сделать, так как маршрутизатор может отследить,
откуда к нему пришел пакет (от другого маршрутизатора или от подключенного к
нему хоста из подсетей, напрямую подключенных к данному маршрутизатору).
Маршрутизатор может проверять соответствие адреса отправителя с адресом
соответствующей подсети, откуда пришло сообщение. В случае совпадения сообщение
пересылается далее, а в противном случае – отфильтровывается. Этот способ
позволит на начальной стадии отбросить пакеты с неверными адресами
отправителя.
Другой
вариант решения может состоять в создании в заголовке пакета специальных полей,
куда каждый маршрутизатор, через который проходит пакет, заносит маршрутную
информацию (часть своего адреса, например). При этом первый маршрутизатор, на
который поступил пакет, заносит также информацию о классе сети (A, B, C), откуда
пришел пакет. Тем не менее, внесение в пакет адресов всех пройденных по пути
маршрутизаторов будет неоптимальным решением, так как в этом случае сложно
заранее определить максимальный размер заголовка пакета.
Когда
сообщение дойдет до конечного адресата, в его заголовке будет полностью отмечен
пройденный маршрут. По этому маршруту, вне зависимости от указанного в пакете
сетевого адреса отправителя, можно, во-первых, с точностью до подсети
идентифицировать подлинность адреса и, во-вторых, определить с точностью до
подсети истинный адрес отправителя. Итак, получив подобное сообщение с указанным
маршрутом, сетевая операционная система анализирует маршрут и проверяет
подлинность адреса отправителя. В случае его недостоверности пакет
отбрасывается.
Из
всего вышесказанного следует следующее требование к созданию защищенных систем
связи в распределенных сетях:
Утверждение 5.
В распределенной системе необходимо обеспечить на сетевом уровне контроль за
маршрутом сообщений для аутентификации адреса отправителя.
Контроль
за виртуальными соединениями в распределенной ВС
Взаимодействие
объектов сети по виртуальному каналу позволяет надежно защитить соединение от
возможных информационно-разрушающих воздействий по каналам связи. К минусам
относится необходимость контроля за соединением. Если в системе связи удаленных
объектов не предусмотреть использование надежных алгоритмов контроля за
соединением, то, избавившись от одного типа удаленных атак на соединение
("Подмена доверенного объекта"), можно подставить систему под другую типовую
удаленную атаку – "Отказ в обслуживании". Поэтому для обеспечения надежного
функционирования и работоспособности (доступности) каждого объекта
распределенной системы необходимо прежде всего контролировать процесс создания
соединения. Задача контроля за виртуальным каналом распадается на две
подзадачи:
·
контроль
за созданием соединения;
·
контроль
за использованием соединения.
Решение
второй задачи лежит на поверхности: так как сетевая операционная система не
может одновременно иметь бесконечное число открытых виртуальных каналов, то в
том случае, если виртуальный канал простаивает в течение определенного системой
тайм-аута, происходит его закрытие.
Далее
рассмотрим возможный алгоритм, позволяющий обеспечить контроль за созданием
соединения в распределенной системе.
Основная
задача, которую необходимо решить в данном случае, состоит в том, чтобы не
позволить одному субъекту взаимодействия занять все виртуальные каналы системы.
При создании виртуального канала, полученный системой запрос на создание
соединения ставится в очередь запросов, и, когда до него дойдет время, система
выработает ответ на запрос и отошлет его обратно отправителю запроса. Задача
контроля за созданием соединения заключается как раз в том, чтобы определить те
правила, исходя из которых система могла бы либо поставить запрос в очередь,
либо нет. Если все пришедшие запросы автоматически ставятся системой в очередь
(так построены все сетевые ОС, поддерживающие протокол TCP/IP), то это в случае
атаки ведет к переполнению очереди и к отказу в обслуживании всех остальных
легальных запросов. Такое происходит из-за того, что атакующий посылает в
секунду столько запросов, сколько позволит трафик, а обычный пользователь с
легальным запросом на подключение может послать лишь несколько запросов в
минуту. Следовательно, вероятность подключения в такой ситуации, при условии
переполнения очереди, один к миллиону в лучшем случае. Поэтому необходимо ввести
ограничения на постановку в очередь запросов от одного объекта. Однако, если в
распределенной системе любой её объект может послать запрос от имени (с адреса)
любого другого объекта системы, то, как отмечалось ранее, решить задачу контроля
не представляется возможным. Поэтому для обеспечения этой возможности было
введено Утверждение 5, исходя из которого в каждом пришедшем на объект
пакете должен быть указан пройденный им маршрут, позволяющий с точностью до
подсети подтвердить подлинность адреса отправителя. Учитывая данный факт,
позволяющий отсеять все пакеты с неверным адресом отправителя, можно предложить
следующее условие постановки запроса в очередь: в системе вводится ограничение
на число обрабатываемых в секунду запросов из одной подсети. Вводимое
ограничение не позволит атакующему переполнить очередь, так как только первые
несколько его запросов будут поставлены в очередь на обслуживание, а остальные
будут игнорироваться. Первый же запрос легального пользователя из другой подсети
будет также сразу поставлен в очередь.
К
минусам этого способа решения проблемы контроля за созданием соединения можно
отнести тот факт, что, так как адрес отправителя можно аутентифицировать с
точностью только до подсети, то атакующий может посылать запросы от имени любого
объекта данной подсети. Следовательно, в случае атаки все остальные объекты из
подсети атакующего будут лишены возможности подключения к атакуемому объекту.
Однако, так как, во-первых, атакующего по указанному в пакете маршруту можно
будет вычислить с точностью до его подсети и, во-вторых, не произойдет нарушения
работоспособности цели атаки, то такая атака вряд ли будет иметь
смысл.
Очередное
требование к защищенным системам связи в распределенных
сетях:
Утверждение 6.
Для обеспечения доступности ресурсов распределенной вычислительной системы
необходим контроль за виртуальными соединениями между ее
объектами.
Следствие 6.1.
Необходимо обеспечить контроль за созданием соединения, введя ограничение на
число обрабатываемых в секунду запросов из одной подсети.
Следствие 6.2.
Необходимо обеспечить контроль за использованием соединения, разрывая его по
тайм-ауту в случае отсутствия сообщений.
Проектирование
распределенной ВС с полностью определенной информацией о ее объектах с целью
исключения алгоритмов удаленного поиска
Одной
из особенностей распределенной вычислительной системы является возможное
отсутствие информации, необходимой для доступа к ее удаленным объектам. Поэтому
в распределенных системах возникает необходимость использования потенциально
опасных с точки зрения безопасности алгоритмов удаленного поиска. Следовательно,
для того, чтобы в распределенной системе не возникало необходимости в
использовании данных алгоритмов, требуется на начальном этапе спроектировать
систему так, чтобы информация о ее объектах была изначально полностью
определена. Это позволит, в свою очередь, ликвидировать одну из причин успеха
удаленных атак, связанных с использованием в распределенной системе алгоритмов
удаленного поиска.
Однако
в распределенной системе с неопределенным и достаточно большим числом объектов
(например, Internet) спроектировать систему с отсутствием неопределенности
практически невозможно. В этом случае отказаться от алгоритмов удаленного поиска
не представляется возможным.
Утверждение 7.
Наиболее безопасной распределенной вычислительной системой является та система,
в которой информация о ее объектах изначально полностью определена и в которой
не используются алгоритмы удаленного поиска.
Утверждение 8.
В том случае, если выполнить требование 7 невозможно, необходимо в
распределенной системе использовать только алгоритм удаленного поиска с
выделенным информационно-поисковым сервером, и при этом взаимодействие объектов
системы с данным сервером должно осуществляться только по виртуальному каналу с
применением надежных алгоритмов защиты соединения с обязательным использованием
статической ключевой информации.
Следствие 8.1.
В распределенной системе для обеспечения безопасности необходимо отказаться от
алгоритмов удаленного поиска с использованием широковещательных
запросов.
Программно-аппаратные
методы защиты от удаленных атак в сети Internet
К
программно-аппаратным средствам обеспечения информационной безопасности средств
связи в вычислительных сетях относятся:
·
аппаратные
шифраторы сетевого трафика;
·
методика
Firewall, реализуемая на базе программно-аппаратных средств;
·
защищенные
сетевые криптопротоколы;
·
программно-аппаратные
анализаторы сетевого трафика;
·
защищенные
сетевые ОС.
Методика
Firewall считается основным программно-аппаратным средством осуществления
сетевой политики безопасности в выделенном сегменте IP-сети. В общем случае
методика Firewall реализует следующие основные три функции:
1.
Многоуровневая фильтрация сетевого трафика
Фильтрация
обычно осуществляется на трех уровнях OSI:
·
сетевом
(IP);
·
транспортном
(TCP, UDP);
·
прикладном
(FTP, TELNET, HTTP, SMTP и т. д.).
Фильтрация
сетевого трафика является основной функцией систем Firewall и позволяет
администратору безопасности сети централизованно осуществлять необходимую
сетевую политику безопасности в выделенном сегменте IP-сети, то есть, настроив
соответствующим образом Firewall, можно разрешить или запретить пользователям
как доступ из внешней сети к соответствующим службам хостов или к хостам,
находящимся в защищаемом сегменте, так и доступ пользователей из внутренней сети
к соответствующим ресурсам внешней сети. Можно провести аналогию с
администратором локальной ОС, который для осуществления политики безопасности в
системе назначает необходимым образом соответствующие отношения между субъектами
(пользователями) и объектами системы (файлами, например), что позволяет
разграничить доступ субъектов системы к ее объектам в соответствии с заданными
администратором правами доступа. Те же рассуждения применимы к
Firewall-фильтрации: в качестве субъектов взаимодействия будут выступать
IP-адреса хостов пользователей, а в качестве объектов, доступ к которым
необходимо разграничить, - IP-адреса хостов, используемые транспортные протоколы
и службы предоставления удаленного доступа.
2.
Proxy-схема с дополнительной идентификацией и аутентификацией пользователей на
Firewall-хосте
Proxy-схема
позволяет, во-первых, при доступе к защищенному Firewall сегменту сети
осуществить на нем дополнительную идентификацию и аутентификацию удаленного
пользователя и, во-вторых, является основой для создания приватных сетей с
виртуальными IP-адресами. Смысл proxy-схемы состоит в создании соединения с
конечным адресатом через промежуточный proxy-сервер (proxy от англ. полномочный)
на хосте Firewall. На этом proxy-сервере и может осуществляться дополнительная
идентификация абонента.
3.
Создание приватных сетей (Virtual Private Network - VPN) с "виртуальными"
IP-адресами (NAT - Network Address Translation)
В
том случае, если администратор безопасности сети считает целесообразным скрыть
истинную топологию своей внутренней IP-сети, то ему можно порекомендовать
использовать системы Firewall для создания приватной сети (VPN-сеть).
Хостам в VPN-сети
назначаются любые "виртуальные" IP-адреса. Для адресации во внешнюю сеть (через
Firewall) необходимо либо использование на хосте Firewall описанных выше
proxy-серверов, либо применение специальных систем маршрутизации, только через
которые и возможна внешняя адресация. Это происходит из-за того, что
используемый во внутренней VPN-сети
виртуальный IP-адрес, очевидно, не пригоден для внешней адресации (внешняя
адресация - это адресация к абонентам, находящимся за пределами VPN-сети).
Поэтому proxy-сервер или средство роутинга должно осуществлять связь с
абонентами из внешней сети со своего настоящего IP-адреса. Кстати, эта схема
удобна в том случае, если вам для создания IP-сети выделили недостаточное
количество IP-адресов (в стандарте IPv4 это случается сплошь и рядом, поэтому
для создания полноценной IP-сети с использованием proxy-схемы достаточно только
одного выделенного IP-адреса для proxy-сервера). Однако вопрос не только в
адресации, в данный момент технология VPN развилась,
и является технологией создания виртуального канала «поверх» используемых
протоколов и технологий и является основным средством создания распределенных
информационных систем.
VPN
— обобщённое название технологий, позволяющих обеспечить одно или несколько
сетевых соединений (логическую сеть) поверх другой сети. Несмотря на то, что
коммуникации осуществляются по сетям с меньшим или неизвестным уровнем доверия
(например, по публичным сетям) уровень доверия к построенной логической сети не
зависит от уровня доверия к базовым сетям благодаря использованию средств
криптографии (шифрования, аутентификации, инфраструктуры
открытых ключей, средств для защиты от повторов и изменений
передаваемых по логической сети сообщений).
В
зависимости от применяемых протоколов и назначения, VPN может обеспечивать
соединения трёх видов: узел-узел, узел-сеть и сеть-сеть.
Обычно
VPN развёртывают на уровнях не выше сетевого, так как применение криптографии на
этих уровнях позволяет использовать в неизменном виде транспортные протоколы
(такие как TCP,
UDP).
Чаще
всего для создания виртуальной сети используется инкапсуляция протокола PPP
в какой-нибудь другой протокол – IP
(такой способ использует реализация PPTP
— Point-to-Point Tunneling Protocol) или Ethernet
(PPPoE
– Point-to-Point over
Ethernet).
Технология
VPN в последнее время используется не только для создания собственно частных
сетей, но и провайдерами
«последней
мили» предоставления выхода в Internet.
При
должном уровне реализации и использовании специального программного обеспечения
сеть VPN может обеспечить высокий уровень шифрования передаваемой
информации.
Итак,
любое устройство или ПО, реализующее хотя бы одну из функций Firewall-методики,
и является Firewall-устройством. Однако администраторам, поддавшись на рекламу
систем Firewall, не стоит заблуждаться на тот счет, что Firewall это гарантия
абсолютной защиты от удаленных атак в сети Internet. Firewall – не столько
средство обеспечения безопасности, сколько возможность централизованно
осуществлять сетевую политику разграничения удаленного доступа к доступным
ресурсам вашей сети. Да, в том случае, если, например, к данному хосту запрещен
удаленный TELNET-доступ, то Firewall однозначно предотвратит возможность данного
доступа. Но дело в том, что большинство удаленных атак имеют совершенно другие
цели (бессмысленно пытаться получить определенный вид доступа, если он запрещен
системой Firewall). Отнюдь не следует, что использование систем Firewall
абсолютно бессмысленно. Однако надо четко понимать и помнить ее основное
назначение. Нам представляется, что применение методики Firewall для обеспечения
сетевой безопасности является необходимым, но отнюдь не достаточным условием, и
не нужно считать, что, поставив Firewall, вы разом решите все проблемы с сетевой
безопасностью и избавитесь от всех возможных удаленных.
Программные
методы защиты, применяемые в сети Internet
К
программным методам защиты в сети Internet можно отнести прежде всего защищенные
криптопротоколы, с использованием которых появляется возможность надежной защиты
соединения. В следующем пункте пойдет речь о существующих на сегодняшний день в
Internet подходах и основных, уже разработанных, криптопротоколах.
К
иному классу программных методов защиты от удаленных атак относятся существующие
на сегодняшний день программы, основная цель которых – анализ сетевого трафика
на предмет наличия одного из известных активных удаленных
воздействий.
SKIP-технология
и криптопротоколы
Одна
из
основных причин успеха удаленных атак на распределенные системы
кроется в использовании сетевых протоколов обмена, которые не могут надежно
идентифицировать удаленные объекты, защитить соединение и передаваемые по нему
данные. Поэтому совершенно естественно, что в процессе функционирования Internet
были созданы различные защищенные сетевые протоколы, использующие криптографию
как с закрытым, так и с открытым ключом. Классическая криптография с
симметричными криптоалгоритмами предполагает наличие у передающей и принимающей
стороны симметричных (одинаковых) ключей для шифрования и дешифрирования
сообщений. Эти ключи предполагается распределить заранее между конечным числом
абонентов, что в криптографии называется стандартной проблемой статического
распределения ключей. Очевидно, что применение классической криптографии с
симметричными ключами возможно лишь на ограниченном множестве объектов. В сети
Internet для всех ее пользователей решить проблему статического распределения
ключей, очевидно, не представляется возможным. Однако одним из первых защищенных
протоколов обмена в Internet был протокол Kerberos, основанный именно на
статическом распределении ключей для конечного числа абонентов. Для того, чтобы
дать возможность защититься всему множеству пользователей сети Internet, а не
ограниченному его подмножеству, необходимо использовать динамически
вырабатываемые в процессе создания виртуального соединения ключи при
использовании криптографии с открытым ключом. Далее мы рассмотрим основные на
сегодняшний день подходы и протоколы, обеспечивающие защиту
соединения.
SKIP
(Secure Key Internet Protocol) –
технологией называется стандарт инкапсуляции IP-пакетов, позволяющий в
существующем стандарте IPv4 на сетевом уровне обеспечить защиту соединения и
передаваемых по нему данных. Это достигается следующим образом: SKIP-пакет
представляет собой обычный IP-пакет, поле данных которого представляет из себя
SKIP-заголовок определенного спецификацией формата и криптограмму (зашифрованные
данные). Такая структура SKIP-пакета позволяет беспрепятственно направлять его
любому хосту в сети Internet (межсетевая адресация происходит по обычному
IP-заголовку в SKIP-пакете). Конечный получатель SKIP-пакета по заранее
определенному разработчиками алгоритму расшифровывает криптограмму и формирует
обычный TCP- или UDP-пакет, который и передает соответствующему обычному модулю
(TCP или UDP) ядра операционной системы. В принципе, ничто не мешает
разработчику формировать по данной схеме свой оригинальный заголовок, отличный
от SKIP-заголовка. SKIP имеет ряд уникальных особенностей:
1. SKIP
универсален:
·
он
шифрует IP-пакеты, не используя информацию о формирующих их пользователях,
приложениях или процессах;
·
будучи
установленным непосредственно над пакетным драйвером, он обрабатывает весь
трафик, не накладывая никаких ограничений ни на программное обеспечение, ни на
физические каналы.
2. SKIP
сеансонезависим: не требует
дополнительного обмена информацией для организации защищенного взаимодействия
(за исключением единовременно запрошенного открытого ключа
собеседника).
3. SKIP
независим от системы
шифрования:
·
другие
системы шифрования могут быть подсоединены к системе в виде внешних библиотечных
модулей;
·
пользователь
может выбирать алгоритм шифрования информации - как из предлагаемых поставщиком,
так и использовать свой;
·
для
закрытия пакетного ключа и, собственно, данных могут использоваться различные
алгоритмы шифрования разной степени защищенности
SSL
(Secure Socket Layer) – разработка
компании Netscape – универсальный протокол защиты соединения,
использующий
криптографию
с открытым ключом, до
недавнего времени
являлся чуть ли не единственным универсальным средством, позволяющим динамически
защитить любое соединение с использованием любого прикладного протокола (DNS,
FTP, TELNET, SMTP и т. д.). При этом процесс создания виртуального
SSL-соединения происходит по схеме Диффи и Хеллмана, которая позволяет
выработать криптостойкий сеансовый ключ, используемый в дальнейшем абонентами
SSL-соединения для шифрования передаваемых сообщений. Протокол SSL является
предшественником протокола TLS
(в
2014 году правительство США сообщило об уязвимости протокола SSL и исключении из
работы в пользу TLS)
TLS
(Transport
Layer
Security)
– протокол защиты
транспортного уровня, использующий ассиметричное шифрование для аутентификации,
симметричное шифрование для конфиденциальности и коды аутентичности сообщений
для сохранения целостности сообщений. Широко используется в приложениях для
обмена мгновенными сообщениями и IP-телефонии.
TLS
даёт возможность клиент-серверным приложениям осуществлять связь в сети таким
образом, что нельзя производить прослушивание
пакетов и осуществить несанкционированный
доступ.
Так
как большинство протоколов связи может быть использовано как с, так и без TLS
(или SSL), при установке соединения необходимо явно указать серверу, хочет ли
клиент устанавливать TLS. Это может быть достигнуто либо с помощью использования
унифицированного номера
порта, по которому соединение всегда устанавливается с использованием
TLS (как, например, порт 443 для HTTPS),
либо с использованием произвольного порта и специальной команды серверу со
стороны клиента на переключение соединения на TLS с использованием специальных
механизмов протокола. Как только клиент и сервер договорились об использовании
TLS, им необходимо установить защищённое соединение. Это делается с помощью
процедуры подтверждения связи. Во время этого процесса клиент и сервер принимают
соглашение относительно различных параметров, необходимых для установки
безопасного соединения.
Основные
шаги процедуры создания защищённого сеанса связи:
·
клиент
подключается к серверу, поддерживающему TLS, и запрашивает защищённое
соединение;
·
клиент
предоставляет список поддерживаемых алгоритмов
шифрования и хеш-функций;
·
сервер
выбирает из списка, предоставленного клиентом, наиболее надёжные алгоритмы среди
тех, которые поддерживаются сервером, и сообщает о своём выборе
клиенту;
·
сервер
отправляет клиенту цифровой сертификат для собственной аутентификации. Обычно цифровой
сертификат содержит имя сервера, имя удостоверяющего
центра сертификации и открытый
ключ сервера;
·
клиент,
до начала передачи данных, проверяет валидность (аутентичность) полученного
серверного сертификата относительно имеющихся у клиента корневых сертификатов
удостоверяющих центров (центров сертификации). Клиент также может проверить, не
отозван ли серверный сертификат, связавшись с сервисом доверенного
удостоверяющего центра;
·
для
шифрования сессии используется сеансовый
ключ. Получение общего секретного сеансового ключа клиентом и
сервером проводится по протоколу Диффи-Хеллмана.
Существует исторический метод передачи сгенерированного клиентом секрета на
сервер при помощи шифрования асимметричной криптосистемой RSA (используется ключ
из сертификата сервера). Данный метод не рекомендован, но иногда продолжает
встречаться на практике.
На
этом заканчивается процедура подтверждения связи. Между клиентом и сервером
установлено безопасное соединение, данные, передаваемые по нему, шифруются и
расшифровываются с использованием симметричной криптосистемы до тех пор, пока
соединение не будет завершено.
При
возникновении проблем на некоторых из вышеуказанных шагов подтверждение связи
может завершиться с ошибкой, а безопасное соединение не будет
установлено.
HTTPS
(Secure HTTP) – защищенный
HTTP-протокол.
Протокол
HTTPS
позволяет обеспечить надежную криптозащиту HTTP-документов Web-севера и
функционирует на прикладном уровне модели OSI. Т.е.
HTTPS
не является отдельным протоколом. Это обычный HTTP, работающий через шифрованные
транспортные механизмы
SSL
и
TLS
протоколов.
Он обеспечивает защиту от атак, основанных на прослушивании сетевого
соединения
—
от
снифферских
атак
и атак типа
“man-in-the-middle”,
при условии, что будут использоваться шифрующие средства и
сертификат
сервера проверен и ему доверяют.
По
умолчанию HTTPS использует 443
TCP-порт
(для
незащищённого HTTP
—
80). Чтобы подготовить веб-сервер для обработки https-соединений, администратор
должен получить и установить в систему сертификат открытого и закрытого ключа
для этого веб-сервера. В TLS используется как
асимметричная
схема шифрования
(для
выработки общего секретного ключа), так и
симметричная
(для
обмена данными, зашифрованными общим ключом). Сертификат открытого ключа
подтверждает принадлежность данного открытого ключа владельцу сайта. Сертификат
открытого ключа и сам открытый ключ посылаются клиенту при установлении
соединения; закрытый ключ используется для расшифровки сообщений от
клиента.
Существует
возможность создать такой сертификат, не обращаясь в
центр сертификации.
Подписываются такие сертификаты этим же сертификатом и называются самоподписанными
(self-signed). Без проверки сертификата каким-то другим способом (например,
звонок владельцу и проверка контрольной суммы сертификата) такое использование
HTTPS подвержено атаке man-in-the-middle.
Эта
система также может использоваться для аутентификации клиента, чтобы обеспечить
доступ к серверу только авторизованным
пользователям. Для этого администратор обычно создаёт сертификаты для
каждого пользователя и загружает их в браузер каждого пользователя. Также будут
приниматься все сертификаты, подписанные организациями, которым доверяет сервер.
Такой сертификат обычно содержит имя и адрес электронной почты авторизованного
пользователя, которые проверяются при каждом соединении, чтобы проверить
личность пользователя без ввода пароля.
В
HTTPS для шифрования используется длина ключа 40, 56, 128 или 256 бит. Многие
современные сайты требуют использования новых версий браузеров, поддерживающих
шифрование с длиной ключа 128 бит, с целью обеспечить достаточный уровень
безопасности. Такое шифрование значительно затрудняет злоумышленнику поиск
паролей и другой личной информации.
Традиционно
на одном IP-адресе может работать только один HTTPS-сайт. Для работы нескольких
HTTPS-сайтов с различными сертификатами применяется расширение TLS под названием
Server
Name Indication (SNI).