2.2.1. Способы несанкционированного вторжения в процесс обмена данными

Набор протоколов TCP/IP применяют для организации коммуникаций в неоднородной сетевой среде, обеспечивая совместимость между компьютерами разных типов. Совместимость – одно из основных преимуществ TCP/IP, поэтому большинство локальных компьютерных сетей поддерживает эти протоколы. Кроме того, протоколы TCP/IP предоставляют доступ к ресурсам глобальной сети Internet. Поскольку TCP/IP поддерживает маршрутизацию пакетов, он обычно используется в качестве межсетевого протокола. Благодаря своей популярности TCP/IP стал стандартом де-факто для межсетевого взаимодействия.

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

Остановимся на более подробном рассмотрении важных проблем недостаточной информационной безопасности протоколов TCP/IP, IP-сетей и служб Internet. Эти «пороки» являются «врожденными» практически для всех протоколов стека TCP/IP и служб Internet. Большая часть проблем связана с исторической зависимостью Internet от операционной системы UNIX. ARPAnet (прародитель сети Internet) строилась как сеть, связывающая исследовательские центры, научные, военные и правительственные учреждения, крупные университеты США.

Эти структуры использовали операционную систему UNIX в качестве платформы для коммуникаций и решения собственных задач. Особенности методологии программирования в среде UNIX и ее архитектуры наложили отпечаток на реализацию протоколов обмена TCP/IP и политики безопасности в сети. Из-за открытости и распространенности система UNIX оказалась любимой добычей хакеров. Поэтому не удивительно, что и набор протоколов TCP/ IP имеет «врожденные» недостатки защиты.

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

На сегодняшний день наиболее распространенными являются следующие варианты атак: подслушивание, парольные атаки, изменение данных, «угаданный ключ», подмена доверенного субъекта перехват сеанса (session hijacking), посредничество, посредничество в обмене незашифрованными ключами (man-in-the-middle), «отказ в обслуживании» (DoS), атаки на уровне приложений; злоупотребление доверием, вирусы и приложения типа «троянский конь».

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

Сниффер пакетов представляет собой прикладную программу, перехватывающую все сетевые пакеты, которые передаются через определенный домен. В настоящее время снифферы работают в сетях на вполне законном основании. Они используются для диагностики неисправностей и анализа трафика. Однако ввиду того, что некоторые сетевые приложения передают данные в текстовом формате (Telnet, FTP, SMTP, POPS и т.д.), с помощью сниффера можно узнать полезную, а иногда и конфиденциальную информацию (например, имена пользователей и пароли).

Парольные атаки. Хакеры могут проводить парольные атаки с помощью целого ряда методов, таких как IP-спуфинг и сниффинг пакетов, атака полного перебора (brute force attack), «троянский конь». Перехват паролей и имен пользователей, передаваемых по сети в незашифрованной форме, путем «подслушивания» канала (password sniffing) создает большую опасность, так как пользователи часто применяют один и тот же логин и пароль для множества приложений и систем. Многие пользователи вообще имеют один пароль для доступа ко всем ресурсам и приложениям.

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

Часто для атаки полного перебора используется специальная программа, которая дает возможность получить доступ к ресурсу общего пользования (например, к серверу). В результате хакер допускается к ресурсам на правах обычного пользователя, пароль которого был подобран. Если этот пользователь имеет значительные привилегии доступа, хакер может создать себе «проход» для будущего доступа, который будет открыт, даже если пользователь изменит свой пароль и логин.

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

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

Подмена доверенного субъекта. Большая часть сетей и операционных систем используют IP-адрес компьютера для того, чтобы определять, тот ли это адресат, который нужен. В некоторых случаях возможно некорректное присвоение IP-адреса (подмена IP-адреса отправителя другим адресом). Такой способ атаки называют фальсификацией адреса (IP spoofing).

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

Атаки IP-спуфинга часто явля­ются отправной точкой для других атак. Обычно IP-спуфинг ограничивается вставкой ложной информации или вредоносных команд в обычный поток данных, передаваемых между клиентским и серверным приложением или по каналу связи между одноранговыми устройствами. Для двусторонней связи хакер должен изменить все таблицы маршрутизации, чтобы направить трафик на ложный IP-адрес. Если нарушителю это удается, он получает все пакеты и может отвечать на них так, будто является санкционированным пользователем;

Перехват сеанса (session hijacking). Для осуществления перехвата сеанса по окончании начальной процедуры аутентификации хакер переключает установленное соединение, скажем, с почтовым сервером на новый компьютер, а исходному серверу выдается команда разорвать соединение. В результате ваш «собеседник» оказывается незаметно подмененным. После получения доступа к сети злоумышленник получает большую свободу действий. Он может:

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

· наводнить компьютер или всю сеть трафиком, пока не произойдет останов системы в связи с перегрузкой;

· блокировать трафик, что приведет к потере доступа авторизованных пользователей к сетевым ресурсам.

Посредничество. Атака типа «посредничество» подразумевает активное подслушивание, перехват и управление передаваемыми данными невидимым промежуточным узлом. Когда компьютеры взаимодействуют на низких сетевых уровнях, они не всегда могут определить, с кем именно обмениваются данными.

Посредничество в обмене незашифрованными ключами (man-in-the-middle). Если атаки предыдущих типов увенчались успехом, их автор может вмешаться в процесс передачи ключей между сторонами и подставить им собственный ключ для дальнейшего использования. Вообще для атаки типа man-in-the-middle хакеру нужен доступ к пакетам, передаваемым по сети. Такой доступ ко всем пакетам, передаваемым от провайдера в любую другую сеть, может, к примеру, получить сотрудник этого провайдера.

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

«Отказ в обслуживании» (DoS). Атаки типа «отказ в обслуживании» являются наиболее известной формой хакерских атак. Эти атаки не нацелены на получение доступа к вашей сети или к какой-либо информации из нее. Атака DoS делает вашу сеть недоступной для обычного использования за счет превышения допустимых пределов функционирования сети, операционной системы или приложения. В случае использования некоторых серверных приложений (таких как Web- или FTP-сервер) атаки DoS могут заключаться в том, чтобы занять все соединения, доступные для этих приложений, и держать их в занятом состоянии, не допуская обслуживания пользователей.

В ходе атак могут использоваться обычные Internet-протоколы, например TCP и ICMP (Internet Control Message Protocol). Большинство атак DoS опирается на общие слабости системной архитектуры. Некоторые атаки DoS сводят к нулю производительность сети, переполняя ее нежелательными и ненужными пакетами или сообщая ложную информацию о текущем состоянии сетевых ресурсов. Если атака этого типа проводится одновременно через множество устройств, ее называют распределенной атакой DoS (DDoS – distributed DoS).

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

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

Главная проблема с атаками на уровне приложений состоит в том, что хакеры часто пользуются портами, которым разрешен проход через межсетевой экран. К примеру, хакер, эксплуатирующий известную слабость Web-сервера, часто использует в ходе атаки TCP-порт 80. Поскольку Web-сервер открывает пользователям Web-страницы, межсетевой экран должен предоставлять доступ к этому порту. Межсетевой экран рассматривает такую атаку как стандартный трафик для порта 80.

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

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

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

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

Вирусы и приложения типа «троянский конь». Рабочие станции конечных пользователей уязвимы для вирусов и «троянских коней». Вирусами называются вредоносные программы, которые внедряются в другие программы для выполнения определенной нежелательной функции на рабочей станции конечного пользователя. В качестве примера можно привести вирус, который прописывается в файле command.com (главном интерпретаторе систем Windows) и удаляет другие файлы, а также заражает все найденные им версии command.com.

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

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

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

Запросы DNS помогают понять, кто владеет тем или иным доменом и какие адреса этому домену присвоены. Эхо-тестирование адресов, раскрытых с помощью DNS, позволяет увидеть, какие компьютеры реально работают в данной среде. Получив список компьютеров, хакер использует средства сканирования портов, чтобы составить полный список услуг, поддерживаемых этими компьютерами. И, наконец, «разведчик» анализирует характеристики приложений, работающих на компьютерах. В результате добывается информация, которую можно использовать для реализации атаки.