среда, 4 мая 2011 г.

ISSP \ Домен 10. Операционная безопасность. Часть 5

В этой части рассмотрены следующие вопросы:
  • Безопасность электронной почты
  • Как работает электронная почта
  • POP
  • IMAP
  • Ретрансляция сообщений электронной почты
  • Безопасность факсов
  • Методы взлома и атак
  • Браузинг
  • Снифферы
  • Перехват коммуникационного сеанса
  • Loki
  • Взлом паролей
  • Бэкдоры

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

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

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

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

Для защиты от такой (и аналогичных) атаки необходимо обеспечить надлежащую аутентификацию отправителя, которая позволит убедиться, что сообщение на самом деле пришло из указанного в нем отправителя. Компаниям, которые рассматривают безопасность в качестве одной из своих приоритетных задач, следует внедрить систему защиты электронной почты на основе цифровой подписи сообщений (например, PGP – Pretty Good Privacy) или использовать инфраструктуру открытых ключей (PKI). Дополнительно можно рассмотреть возможность использования шифрующего протокола, что поможет защититься от несанкционированного перехвата сетевого трафика и передаваемых с его помощью сообщений.

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

Рисунок 10-3. Сообщение электронной почты может быть перехвачено на множестве различных точек

Если пользователь принимает решение воспользоваться определенным механизмом безопасности, чтобы защитить свои сообщения от перехвата, модификации и подделки, он должен договориться с получателем своих сообщений об использовании одинакового механизма безопасности (например, средства шифрования и электронной подписи). Если для защиты будет применяться криптография с открытыми ключами, пользователи должны иметь возможность для безопасного обмена ключами шифрования. Это относится к использованию PGP, цифровых подписей, продуктов, использующих стандарт S/MIME. Эти вопросы подробно рассматривались в Домене 06. Если администратор или специалист по безопасности, хочет быть уверен, что все сообщения, передаваемые между двумя точками, шифруются, и не хочет зависеть в этом вопросе от действий самих пользователей (которые могут что-то забыть или сделать неправильно), он может воспользоваться решениями на основе VPN (это также обсуждалось в Домене 06).


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

Сообщения электронной почты не имеют смысла, если их нельзя отправить. Для отправки сообщений используется протокол SMTP (Simple Mail Transfer Protocol - Простой протокол передачи почты), который работает в качестве агента передачи сообщений - он передает сообщения с компьютера отправителя на почтовый сервер при нажатии пользователем кнопки «Отправить». SMTP также определяет стандарт обмена сообщениями, именно он определяет привычную большинству людей форму адреса электронной почты: something@somewhere.com.

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

Чтобы использовать протокол SMTP, почтовый клиент пользователя должен быть совместим с ним и правильно настроен. Почтовый клиент предоставляет пользователю интерфейс для создания и редактирования сообщений, которые затем передаются посредством SMTP. Если привести аналогию с отправкой бумажного письма через почтовое отделение, почтовый клиент является пишущей машинкой, на которой человек пишет письмо; SMTP является почтовым курьером, который забирает почту из почтового ящика и доставляет ее в почтовое отделение; а почтовым отделением является сервер электронной почты. Почтовый сервер должен понимать, куда направляется сообщение, чтобы правильно маршрутизировать его.

Почтовый сервер часто называют сервером SMTP. Наиболее распространенным программным обеспечением SMTP-сервера является Unix-программа Sendmail, фактически являющаяся приложением почтового сервера. Unix использует Sendmail для хранения, сопровождения и маршрутизации сообщений электронной почты. В среде Microsoft обычно для этих целей используется Microsoft Exchange, а в среде Novell – программное обеспечение GroupWise. SMTP работает в тесном сотрудничестве с двумя протоколами почтового сервера: POP и IMAP, которые будут рассмотрены далее.


POP (Post Office Protocol - Протокол почтового отделения) – это протокол интернет-сервера электронной почты, поддерживающий входящие и исходящие сообщения. Почтовый сервер использует POP для хранения и передачи сообщений электронной почты, а SMTP – для передачи сообщений между почтовыми серверами.

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

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


IMAP (Internet Message Access Protocol - Протокол доступа к электронной почте Интернета) является еще одним интернет-протоколом, который позволяет пользователям получать доступ к почте на почтовом сервере. IMAP, помимо реализации функций, предоставляемых протоколом POP, дает дополнительные возможности и функции. При использовании POP, когда пользователь обращается к почтовому серверу, чтобы узнать, не пришли ли ему новые сообщения, все полученные сообщения автоматически загружаются на его компьютер, после чего они обычно удаляются с сервера (в зависимости от настроек). POP может быть неудобен мобильным пользователям, поскольку сообщения автоматически передаются на пользовательский компьютер (или устройство), а они могут не иметь достаточного пространства для хранения всех сообщений. В особенности это относится к мобильным устройствам, которые могут быть использованы для доступа к электронной почте. Также это может быть неудобно для людей, проверяющих свою почту на чужих компьютерах, поскольку их почта будет загружена на эти компьютеры.

Если пользователь использует IMAP вместо POP, он может скачать все сообщения или оставить их на почтовом сервере в своей папке сообщений, именуемой почтовым ящиком (mailbox). Пользователь может управлять сообщениями в своем почтовом ящике на почтовом сервере также, как если бы эти сообщения находились на его локальном компьютере: он может создавать и удалять сообщения, осуществлять поиск сообщений, устанавливать и отключать различные флаги. Это дает пользователю больше свободы и позволяет хранить сообщения в централизованном хранилище, пока он специально не включит функцию загрузки всех своих сообщений с почтового сервера на свой компьютер.

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


Электронная почта кардинально изменилась со времен мейнфреймов. Тогда для работы системы электронной почты использовались простые протоколы SNA (Systems Network Architecture - Системная сетевая архитектура) и формат ASCII. Сегодня множество различных видов почтовых систем работают в различных операционных системах и предлагают широкий спектр функциональных возможностей. Иногда компаниям требуется использовать в одной сети различные типы почтовых серверов и сервисов, что может достаточно сложной задачей, в т.ч. с точки зрения обеспечения безопасности.

У большинства компаний есть внешние почтовые серверы в DMZ, а также один или несколько почтовых серверов в локальной сети. Внешние почтовые серверы имеют прямое подключение к сети Интернет, поэтому они должны размещаться в защищенном пространстве DMZ. Эти серверы должны быть хорошо укреплены, а ретрансляционные механизмы на них должны быть правильно настроены. Почтовые серверы используют агентов ретрансляции (relay agent) для пересылки сообщения с одного почтового сервера на другой. Этот агент должен быть правильно настроен, чтобы почтовый сервер компании не использовался посторонними для рассылки спама.

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

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

Ссылки по теме:


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

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

Некоторые компании используют факс-серверы (fax server), которые являются системами, управляющими входящими и исходящими факсимильными сообщениями. При получении факса факс-сервером, он направляет его тому человеку, которому он был адресован. Передача документа при этом осуществляется, как правило, по внутренней электронной почте компании в электронном, а не печатном, виде.

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

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

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


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

Большинство инструментов, применяемых хакерами, имеют двойное назначение – они могут быть использованы для добра или зла. Злоумышленник может использовать специальный инструмент, чтобы найти эксплуатируемую уязвимость и воспользоваться ей, а специалист по безопасности может использовать тот же инструмент для поиска и устранения уязвимостей. Когда такой инструмент используется «черными шляпами» (злоумышленники), это называется хакингом (hacking). Когда такой инструмент используют «белые шляпы» (специалисты по безопасности), это называется этичным хакингом (ethical hacking) или тестированием на проникновение (penetration testing).

Инструменты, используемые для проведения атак на сети и системы, со временем стали настолько мощными и в то же время простыми, что даже человек с невысокой квалификацией (иногда таких людей называют скрипт-кидди (script kiddie)) способен выполнить чрезвычайно разрушительную атаку. Многие из этих инструментов сегодня имеют графический интерфейс, проводящий пользователя по шагам: идентификация ресурсов, создание карты сети, проведение атаки. Людям больше не нужно детально разбираться стеках протоколов, знать назначение отдельных полей в них, понимать процесс выполнения программ операционными системами и даже знать программирование. Хакеру достаточно просто указать диапазон IP-адресов в соответствующем окне программы и нажать кнопку «Старт». Современное сообщество хакеров использует множество различных инструментов (типов инструментов), некоторые из них способны автоматически генерировать код вирусов и червей, создавать эксплойты для конкретной уязвимости конкретной операционной системы, платформы или даже версии приложения.

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

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

Иногда у злоумышленника есть конкретные цели, в таких случаях он не проводит столь широкого сканирования. После нахождения своей цели, злоумышленник составляет карту ее сети и проводит сканирование портов. Инструменты для создания карты сети отправляют, казалось бы, вполне легальные пакеты множеству различных систем в сети. Эти системы отвечают на полученные пакеты, а инструмент анализирует их ответы, выясняя, какие на них запущены службы, типы операционных систем и, возможно, их местоположение в сети. Может показаться, что из пакетов с такими ответами нельзя собрать много информации, но используемые для этих целей инструменты очень хорошо откалиброваны для извлечения максимального количества сведений из получаемых ответных пакетов, насколько это возможно. Различные операционные системы имеют отличия в своих стеках протоколов, например, они могут использовать различные поля в кадрах протоколов или заполнять эти поля немного иначе, чем другие операционные системы. Если инструмент отправляет одинаковый запрос двум компьютерам, работающим под управлением различных операционных систем, полученные от них ответы будут, скорее всего, немного различаться. Хотя суть ответов обоих компьютеров вероятно будет одинаковой, но отдельные поля в ответных пакетах могут быть заполнены по-разному, как показано на рисунке 10-4. На основании этих различий в ответах, инструмент может определить тип операционной системы ответивших компьютеров. После этого злоумышленник с использованием инструмента собирает вместе всю полученную информацию и пытается на основе нее определить топологию сети жертвы.

Рисунок 10-4. Существуют специальные программные инструменты, позволяющие определить тип операционной системы, с которой взаимодействует компьютер атакующего

Инструмент создания карты сети (network-mapping tool) может обладать базой данных, содержащей варианты ответов различных операционных систем и приложений в зависимости от их версий. Например, если инструмент отправил на целевой компьютер ICMP-пакет и получил от него в ответ пакет ICMP Ping Sweep в определенном бите которого установлен флаг «не фрагментировать», этот инструмент может определить, что на целевом компьютере установлена операционная система Unix. Если инструмент отправил пакет TCP SYN и в ответ получил FIN/ACK, инструмент может сделать вывод, что целевая система – Windows NT. Эта работа называется снятием отпечатков операционной системы (operating system fingerprinting).

Злоумышленнику важно знать, что за системы работают в атакуемой им сети. Отправляя первый пакет, инструмент смотрит, отвечает ли целевой компьютер – его ответ указывает на то, что по указанному адресу компьютер действительно существует, он включен и работает. Обычно, когда компьютер посылает пакет SYN с запросом на создание TCP-соединения с удаленным компьютером, первым шагом установления соединения является процедура "рукопожатия". Однако, хакерские утилиты, которые используют пакеты SYN, не намереваются создавать реальные соединения и обманывают надежды целевой системы, не посылая ответ. Правильный ответ на пакет SYN – это SYN/ACK, но администратор может заблокировать трафик такого типа на межсетевом экране или маршрутизаторе, либо заблокировать соответствующий порт на компьютере. В таком случае злоумышленник может не получить никакого ответа или получить сообщение «порт недоступен». Такой ответ сообщает инструменту создания карты сети, что межсетевой экран компании позволяет трафику этого типа войти в сеть, однако на целевой машине соответствующий порт закрыт. Все эти сведения используются злоумышленником, чтобы узнать как можно больше об атакуемой среде, что позволит ему выбрать наиболее эффективные методы для проведения атаки.

Таким образом, первым шагом для атакующего является выявление работающих компьютеров, типов установленных на них операционных систем и начало построения топологии сети. Следующим шагом является выполнение сканирования портов на целевых компьютерах, позволяющее определить открытые на них порты. Эти порты открывают двери в операционную систему для других компьютеров, процессов, протоколов и… злоумышленников. Если злоумышленник может узнать, какие порты открыты, он может получить достаточно полное представление о том, какие службы работают на просканированных системах. Знание работающих служб может помочь дополнительно уточнить тип целевого компьютера. Например, если целевой компьютер отвечает на пакеты SMTP, отправленные на его порт 25, то злоумышленник может сделать вывод, что этот компьютер может быть сервером электронной почты. Однако необходимо будет выполнить дополнительные проверки, чтобы подтвердить это предположение.

Злоумышленник хочет знать, какая операционная система установлена на целевом компьютере, какие на нем работают приложения и службы. Это позволит ему понять, какую атаку нужно проводить в отношении этого компьютера. Если он находит сервер Unix с запущенным Apache, он будет выполнять совершенно другую атаку, чем для сервера с Windows 2000, на котором работает IIS. Каждая операционная система, приложение и служба имеют свои собственные уязвимости и правильное их определение позволяет злоумышленнику быть более успешным в своей атаке.

Каждая компьютерная система имеет 65535 TCP-портов и 65535 UDP-портов. Первые 1024 портов называют общеизвестными портами (well-known ports). Это означает, что каждый порт с номером до 1025, как правило, связан с общеизвестным и широко используемым протоколом. Например, порт 80 почти всегда связан с протоколом HTTP, порт 21 – с протоколом FTP, а порт 25 – с протоколом SMTP. Эти порты могут быть перенастроены, например, чтобы порт 21 был связан с HTTP, но это делается очень редко.

Утилита сканирования портов используется злоумышленником, чтобы выяснить, какие порты открыты в системе, и понять, какие ему доступны двери. Эта утилита отправляет пакеты на каждый порт в системе и «слушает» ответ. Отсутствие ответа или получение сообщения «порт недоступен» обычно указывает на то, что порт заблокирован и/или соответствующая служба отключена. Если от порта получен предсказуемый ответ, злоумышленник может сделать вывод, что порт открыт и доступен для атаки.

Порт должен быть открыт и доступен для использования. Например, для использования функциональности электронной почты в большинстве случаев требуется использование протокола SMTP (порт 25). Администратору необходимо установить барьер между потенцильными злоумышленниками и этим уязвимым портом и его службой. Конечно, первым шагом является создание сетевого периметра и его защита с помощью межсетевых экранов, прокси-серверов и маршрутизаторов, которые разрешают только определенные (допустимые) подключения к внутренним ресурсам и системам. Но если администратор или специалист по безопасности хочет установить еще один уровень защиты, ему следует внедрить TCP Wrappers. Эти программные компоненты (wrappers) отслеживают поступающие на компьютер входящие сетевые пакеты и проверяют, какой из них может, а какой не может получить доступ к службам, связанными с определенными портами. Когда запрос приходит на определенный порт компьютера, его операционная система проверяет, включен ли этот порт. Если порт включен и операционная система видит, что соответствующая служба защищена (wrapped), она проверяет список контроля доступа, чтобы принять решение, может ли этот запрос получить доступ к этой службе. Если человеку (или компьютеру), пытающемуся получить доступ к этой службе, доступ к ней (в соответствии с ее списоком контроля доступа) разрешен, операционная система позволяет создать подключение. В противном случае пакет уничтожается, либо отправителю запроса направляется сообщение об ошибке.

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

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

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


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

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


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

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

В локальных сетях Ethernet (используемых в большинстве сред) снифферы работают весьма успешно, поскольку Ethernet является широковещательной технологией. В таких сетях значительный объем данных постоянно рассылается широковещательно, поэтому его легко может получить злоумышленник, установивший сниффер в сетевом сегменте. Однако с переходом на коммутируемые среды, эффективность снифферов снижается. Коммутируемые среды разделяют сетевые сегменты на широковещательные и коллизионные домены. При этом злоумышленник сможет получить нужную ему информацию только в том случае, если он сможет установить сниффер в интересующем его коллизионном и широковещательном домене среды. Это связано с тем, что коммутатор обычно передает трафик с порта отправителя непосредственно на порт получателя, то есть трафик не рассылается всем подряд. Коммутируемый трафик передается из точки А в точку Б через коммутатор и не распространяется на все компьютеры в сети, как это происходит в некоммутируемых сетях (широковещательные и коллизионные домены подробно обсуждались в Домене 05).

Для противодействия работе снифферов в сети, по возможности должны использоваться безопасные версии служб и протоколов. Многие службы и протоколы были разработаны с учетом только их функциональности, но не безопасности. Однако после того, как необходимость безопасности стала очевидной, большинство этих служб и протоколов были усовершенствованы для обеспечения надлежащего уровня безопасности. Многие старые протоколы имеют более современную безопасную версию, которая не содержит уязвимостей, имевшихся в первоначальной версии протокола (службы). Одним из таких примеров является Secure RPC (S-RPC), в котором используется криптография с открытым ключом на базе алгоритма Диффи-Хеллмана для генерации и обмена общий секретным ключом, применяющимся при шифровании симметричным алгоритмом. Если в среде используется протокол S-RPC, сниффер может по-прежнему перехватить передаваемые данные, но далеко не всегда он сможет расшифровать их.

Большинство протоколов являются уязвимыми, поскольку они не требуют строгой аутентификации (или не требуют вообще никакой аутентификации). Например, r-утилиты, используемые в Unix (rexec, rsh, rlogin и rcp), как известно, имеют множество недостатков. Обычно они выполняют аутентификацию на основе проверки списка IP-адресов, содержащегося в файле .rhosts, а не идентификаторов пользователей и паролей. Следует заменить эти утилиты на те, которые требуют выполнения строгой аутентификации, например, Secure Shell (SSH).


Многие злоумышленники подделывают свои адреса, поэтому в отправленных ими на целевую систему сетевых пакетах, обычно указан IP-адрес отправителя, не принадлежащий злоумышленнику. Это существенно усложняет поиск злоумышленника. Кроме того, это позволяет злоумышленнику перехватить коммуникационный сеанс (Session Hijacking) между двумя пользователями, не будучи замеченным.

Чтобы перехватить сеанс связи между двумя компьютерами, злоумышленник должен встать между ними, но так, чтобы его не обнаружили. Для этих целей могут использоваться специальные утилиты, например, Juggernaut или HUNT Project. Эти утилиты позволяют злоумышленнику «шпионить» за TCP-соединением и в любой момент перехватить его.

Рассмотрим следующий пример. Кристи и Дэвид взаимодействуют посредством сеанса TCP. Злоумышленнику нужно исключить из сеанса Дэвида и перехитрить Кристи, чтобы она думала, что по-прежнему общается с Дэвидом. Для этого злоумышленник должен использовать утилиту для изменения своего адреса на адрес Дэвида и временно отключить Дэвида от сети, проведя DoS-атаку на его компьютер. После того, как он все это сделает, при дальнейшей отправке сообщений от Кристи Дэвиду, они будут фактически направляться злоумышленнику, который может отвечать Кристи. При этом Кристи будет думать, что она получила ответ от Дэвида. Злоумышленник может пойти и по другому пути, оставив Дэвида в сети. При этом он может перехватывать сообщения, которыми обмениваются Дэвид и Кристи, читать их, и заново формировать сетевые пакеты, изменяя их заголовки, чтобы они не указывали на перехват сеанса.

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


Распространенной современной атакой на скрытые каналы является атака Loki. Эта атака использует протокол ICMP для передачи данных, хотя этот протокол не был разработан для использования таким образом, он предназначен лишь для отправки сообщений о текущем статусе и ошибках. Но кто-то разработал специальный инструмент (Loki), который позволяет злоумышленнику записывать данные сразу после заголовка ICMP.

Это позволяет злоумышленнику организовать связь с другой системой посредством скрытого канала. Часто такая атака оказывается весьма успешной, поскольку большинство межсетевых экранов настроены на разрешение входящего и исходящего трафика ICMP. Это скрытый канал, т.к. он использует для связи протокол, который не был разработан для этого. Подробную информацию об атаке Loki можно найти на http://xforce.iss.net/xforce/xfdb/1452.


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

Однако статические пароли не очень сложно взломать, если злоумышленник воспользуется правильными инструментами. Примером такого инструмента является утилита John The Ripper, которая сочетает в себе множество различных техник взлома паролей. Также существуют и другие мощные инструменты (например, L0phtcrack), которые могут использоваться для выполнения атак по словарю и брутфорс-атак на перехваченный пароль или файл с паролями.

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


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

Бэкдор – это программа, которая устанавливается злоумышленником, чтобы он мог снова подключиться к взломанному компьютеру позднее, не вводя учетные данные и не проходя процедуру авторизации. Это нарушает работу системы управления доступом. Программа-бэкдор после установки начинает прослушивать определенный порт, настроенный злоумышленником. Когда злоумышленник отправит запрос на подключение к этому порту, программа предоставит ему доступ.

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

Сегодня большинство антивирусных приложений и IDS имеют сигнатуры таких инструментов в своих базах данных, и отслеживают известные модели их поведения. Использование IDS уровня узла может быть одним из лучших способов обнаружить бэкдор. Для этого IDS должна быть настроена на выявление подозрительной активности при использовании сетевых портов, т.к. бэкдор будет прослушать определенные порты, ожидая подключений злоумышленника. Кроме этого, администратор может выполнять сканирование файлов на компьютерах в поисках известных исполняемых файлов бэкдоров (или связанных с ними), проверять списки автоматически загружаемых программ, отыскивая в них подозрительные исполняемые файлы, а также проверять контрольные суммы системных и автоматически загружаемых файлов, чтобы убедиться, что они не были изменены. Такие действия обычно не делаются вручную, т.к. это требует слишком много времени. Обычно они выполняются автоматически с помощью антивирусного программного обеспечения и систем IDS. Но злоумышленники умны, они постоянно разрабатывают новые инструменты и дорабатывают старые инструменты, чтобы они не обнаруживались средствами безопасности. Эта игра в «кошки-мышки» продолжается на протяжении многих лет между хакерами и сообществом безопасности.

Ниже приведено краткое описание некоторых типов атак, с которыми вы должны быть знакомы:
  • DoS-атака (Denial-of-Service attack). Злоумышленник посылает множество запросов на компьютер жертвы, пока они в конечном счете не выведут систему из строя, вызыв ее зависание, перезагрузку компьютера или другим способом не позволят выполнять свои обычные задачи.
  • Атака «человек посередине» (Man-in-the-middle attack). Нарушитель внедряется в сеанс связи между двумя компьютерами, после чего он может перехватывать и читать сообщения, которыми обмениваются стороны. С атакой этого типа можно бороться с помощью цифровых подписей и технологий взаимной аутентификации.
  • Бомбардировка электронной почтой (Mail bombing). Это атака применяется для выведения из строя почтовых серверов и клиентов электронной почты, путем направления им большого количества сообщений электронной почты. Для противодействия этой атаке может использоваться фильтрация сообщений электронной почты и правильная настройка функций почтового ретранслятора на почтовых серверах.
  • Wardialing. Это брутфорс-атака, выполняемая с помощью специальной программы, которая систематически набирает большое количество телефонных номеров в поисках модемов. Модемы могут предоставить легкий доступ в сеть компании. Контрмерами для противодейтствия этой атаке является запрет на публикацию телефонных номеров модемов в открытых источниках, а также выполнение строгого контроля доступа к модемам и модемным пулам.
  • Пинг смерти (Ping of death). Это разновидность DoS-атаки, при которой жертве направляются пакеты ICMP увеличенного размера. Системы, уязвимые для такой атаки, не знают, что делать с такими ICMP-пакетами, это может привести к их зависанию или перезагрузке. Контрмерами против такой атаки является установка необходимых патчей на систему, внедрение средств для обнаружения таких пакетов.
  • Поддельный экран входа в систему. Для выполнения этой атаки, злоумышленник создает поддельный экран входа в систему и устанавливает его на систему жертвы. Когда пользователь пытается войти в систему, ему показывается этот фальшивый экран, запрашивающий его реквизиты для аутентификации в системе. После того, как он вводит эти данные, программа, отображающая поддельный экран, завершается и пользователь видит настоящий экран регистрации в системе. При этом пользователь может подумать, что он просто ошибся при вводе пароля и, ничего не подозревая, пытается повторно пройти аутентификацию. Для обнаружения этого, может использоваться IDS уровня узла.
  • Teardrop. При выполнении этой атаки, злоумышленник посылает жертве неправильно фрагментированные пакеты. При этом система жертвы не может правильно собрать пакет, что может привести к ее зависанию. Контрмерой против этой атаки является установка патчей на систему, и использование средств фильтрации трафика для выявления таких пакетов.
  • Анализ трафика. Это метод раскрытия информации, реализуемый путем наблюдения за изменениями потоков трафика в сети. Например, интенсивный трафик между компьютерами отдела кадров и компьютерами руководства может свидетельствовать о предстоящем сокращении. Для борьбы с этой атакой могут применяться ложные потоки трафика, которые передаются по сети, чтобы скрыть реальные изменения и затруднить их обнаружение.
  • Slamming и Cramming. Slamming – это изменение провайдера пользователя без его ведома. Cramming – это реализация загрузки ложной информации при любых запросах пользователя. Единственной контрмерой против таких атак является надлежащий мониторинг загружаемой информации.
В этом разделе были рассмотрены только некоторые из возможных атак. Одной из наиболее полезных вещей, которые сетевой администратор, сетевой инженер или специалист по безопасности могут сделать для противодейтствия атакам, это следование лучшим практикам, выполнение мониторинга и регулярного контроля. Конечно, это хорошо, если администратор устанавливает обновления безопасности систем сразу после того, как он прочитает об опасной уязвимости, которая стала популярной у злоумышленников, но более важно, чтобы он своевременно узнавал о новых уязвимостях, регулярно сканировал свою сеть, помнил основные симптомы воздействия наиболее распространенных атак, вирусов, троянских программ и бэкдоров. Эти привычки позволят навести порядок и помогут поддерживать безопасность сети, делая жизнь администратора менее хаотичной. Одним из лучших способов обеспечения уверенности в том, что компьютер должным образом защищен, является самостоятельное выявление и устранение проблем, не дожидаясь, пока их найдут хакеры. Для этого выполняется тестирование уязвимостей.

Комментариев нет: