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

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

Устраним уязвимости информационной системы - устраним и возможность реализации атак.

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

Модели атак

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

В модели распределенной атаки используются иные принципы. В отличие от традиционной модели в распределенной модели используются отношения (рис.3) и (рис.4).

Распределенные атаки основаны на "классических" атаках типа "отказ в обслуживании ", а точнее на их подмножестве, известном как Flood-атаки или Storm-атаки (указанные термины можно перевести как "шторм", "наводнение" или "лавина"). Смысл данных атак заключается в посылке большого количества пакетов на атакуемый узел. Атакуемый узел может выйти из строя, поскольку он "захлебнется" в лавине посылаемых пакетов и не сможет обрабатывать запросы авторизованных пользователей. По такому принципу работают атаки SYN-Flood, Smurf, UDP Flood, Targa3 и т.д. Однако в том случае, если пропускная способность канала до атакуемого узла превышает пропускную способность атакующего или атакуемый узел некорректно сконфигурирован, то к "успеху" такая атака не приведет. Например, с помощью этих атак бесполезно пытаться нарушить работоспособность своего провайдера. Но распределенная атака происходит уже не из одной точки Internet, а сразу из нескольких, что приводит к резкому возрастанию трафика и выведению атакуемого узла из строя. Например, по данным России-Онлайн в течение двух суток, начиная с 9 часов утра 28 декабря 2000 г. крупнейший Internet-провайдер Армении "Арминко" подвергался распределенной атаке. В данном случае к атаке подключились более 50 машин из разных стран, которые посылали по адресу "Арминко" бессмысленные сообщения. Кто организовал эту атаку, и в какой стране находился хакер - установить было невозможно. Хотя атаке подвергся в основном "Арминко", перегруженной оказалась вся магистраль, соединяющая Армению с всемирной паутиной. 30 декабря благодаря сотрудничеству "Арминко" и другого провайдера - "АрменТел" - связь была полностью восстановлена. Несмотря на это компьютерная атака продолжалась, но с меньшей интенсивностью.

Этапы реализации атак

Можно выделить следующие этапы реализации атаки:

Обычно, когда говорят об атаке, то подразумевают именно второй этап, забывая о первом и последнем. Сбор информации и завершение атаки ("заметание следов") в свою очередь также могут являться атакой и могут быть разделены на три этапа (см. рис.5).
Рисунок 5. Этапы реализации атаки

Cбор информации - это основной этап реализации атаки. Именно на данном этапе эффективность работы злоумышленника является залогом "успешности" атаки. Сначала выбирается цель атаки и собирается информация о ней (тип и версия операционной системы, открытые порты и запущенные сетевые сервисы, установленное системное и прикладное программное обеспечение и его конфигурация и т.д.). Затем идентифицируются наиболее уязвимые места атакуемой системы, воздействие на которые приводит к нужному злоумышленнику результату. Злоумышленник пытается выявить все каналы взаимодействия цели атаки с другими узлами. Это позволит не только выбрать тип реализуемой атаки, но и источник ее реализации. Например, атакуемый узел взаимодействует с двумя серверами под управлением ОС Unix и Windows NT. С одним сервером атакуемый узел имеет доверенные отношения, а с другим - нет. От того, через какой сервер злоумышленник будет реализовывать нападение, зависит, какая атака будет задействована, какое средство реализации будет выбрано и т.д. Затем, в зависимости от полученной информации и желаемого результата, выбирается атака, дающая наибольший эффект. Например:
SYN Flood, Teardrop, UDP Bomb - для нарушения функционирования узла;
CGI-скрипт - для проникновения на узел и кражи информации;
PHF - для кражи файла паролей и удаленного подбора пароля и т.п.

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

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

Рассмотрим основные механизмы реализации атак. Это необходимо для понимания методов обнаружения этих атак. Кроме того, понимание принципов действий злоумышленников - залог успешной обороны сети.

1. Сбор информации

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

Изучение окружения

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

Идентификация топологии сети

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

  1. изменение TTL (TTL modulation),
  2. запись маршрута (record route).

По первому методу работают программы traceroute для Unix и tracert для Windows. Они используют поле Time to Live ("время жизни") в заголовке IP-пакета, которое изменяется в зависимости от числа пройденных сетевым пакетом маршрутизаторов. Для записи маршрута ICMP-пакета может быть использована утилита ping . Зачастую сетевую топологию можно выяснить при помощи протокола SNMP, установленного на многих сетевых устройствах, защита которых неверно сконфигурирована. При помощи протокола RIP можно попытаться получить информацию о таблице маршрутизации в сети и т.д.

Многие из этих методов используются современными системами управления (например, HP OpenView, Cabletron SPECTRUM, MS Visio и т.д.) для построения карт сети. И эти же методы могут быть с успехом применены злоумышленниками для построения карты атакуемой сети.

Идентификация узлов

Идентификация узла, как правило, осуществляется путем посылки при помощи утилиты ping команды ECHO_REQUEST протокола ICMP. Ответное сообщение ECHO_REPLY говорит о том, что узел доступен. Существуют свободно распространяемые программы, которые автоматизируют и ускоряют процесс параллельной идентификации большого числа узлов, например, fping или nmap. Опасность данного метода в том, что стандартными средствами узла запросы ECHO_REQUEST не фиксируются. Для этого необходимо применять средства анализа трафика, межсетевые экраны или системы обнаружения атак.

Это самый простой метод идентификации узлов. Однако он имеет два недостатка.

  1. Многие сетевые устройства и программы блокируют ICMP-пакеты и не пропускают их во внутреннюю сеть (или наоборот не пропускают их наружу). Например, MS Proxy Server 2.0 не разрешает прохождение пакетов по протоколу ICMP. В результате возникает неполная картина. С другой стороны, блокировка ICMP-пакета говорит злоумышленнику о наличии "первой линии обороны" - маршрутизаторов, межсетевых экранов и т.д.
  2. Использование ICMP-запросов позволяет с легкостью обнаружить их источник, что, разумеется, не может входить в задачу злоумышленника.

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

Идентификация сервисов или сканирование портов

Идентификация сервисов, как правило, осуществляется путем обнаружения открытых портов (port scanning). Такие порты очень часто связаны с сервисами, основанными на протоколах TCP или UDP. Например:

  • открытый 80-й порт подразумевает наличие Web-сервера,
  • 25-й порт - почтового SMTP-сервера,
  • 31337-й - серверной части троянского коня BackOrifice,
  • 12345-й или 12346-й - серверной части троянского коня NetBus и т.д.
Для идентификации сервисов и сканирования портов могут быть использованы различные программы, в т.ч. и свободно распространяемые. Например, nmap или netcat.

Идентификация операционной системы

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

Другой, менее эффективный и крайне ограниченный, способ идентификации ОС узлов - анализ сетевых сервисов, обнаруженных на предыдущем этапе. Например, открытый 139-й порт позволяет сделать вывод, что удаленный узел, вероятнее всего, работает под управлением ОС семейства Windows. Для определения ОС могут быть использованы различные программы. Например, nmap или queso.

Определение роли узла

Предпоследним шагом на этапе сбора информации об атакуемом узле является определение его роли, например, выполнении функций межсетевого экрана или Web-сервера. Выполняется этот шаг на основе уже собранной информации об активных сервисах, именах узлов, топологии сети и т.п. Например, открытый 80-й порт может указывать на наличие Web-сервера, блокировка ICMP-пакета указывает на потенциальное наличие межсетевого экрана, а DNS-имя узла proxy.domain.ru или fw.domain.ru говорит само за себя.

Определение уязвимостей узла

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

2. Реализация атаки

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

  • проникновение;
  • установление контроля.

Проникновение

Проникновение подразумевает под собой преодоление средств защиты периметра (например, межсетевого экрана). Реализовываться это может быть различными путями. Например, использование уязвимости сервиса компьютера, "смотрящего" наружу или путем передачи враждебного содержания по электронной почте (макровирусы) или через апплеты Java. Такое содержание может использовать так называемые "туннели" в межсетевом экране (не путать с туннелями VPN), через которые затем и проникает злоумышленник. К этому же этапу можно отнести подбор пароля администратора или иного пользователя при помощи специализированной утилиты (например, L0phtCrack или Crack).

Установление контроля

После проникновения злоумышленник устанавливает контроль над атакуемым узлом. Это может быть осуществлено путем внедрения программы типа "троянский конь" (например, NetBus или BackOrifice). После установки контроля над нужным узлом и "заметания" следов, злоумышленник может осуществлять все необходимые несанкционированные действия дистанционно без ведома владельца атакованного компьютера. При этом установление контроля над узлом корпоративной сети должно сохраняться и после перезагрузки операционной системы. Это может быть реализовано путем замены одного из загрузочных файлов или вставка ссылки на враждебный код в файлы автозагрузки или системный реестр. Известен случай, когда злоумышленник смог перепрограммировать EEPROM сетевой карты и даже после переустановки ОС он смог повторно реализовать несанкционированные действия. Более простой модификацией этого примера является внедрение необходимого кода или фрагмента в сценарий сетевой загрузки (например, для ОС Novell Netware).

Цели реализации атак

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

Классификация атак

Существуют различные типа классификации атак. Например, деление на пассивные и активные, внешние и внутренние, умышленные и неумышленные. Однако дабы не запутать вас большим разнообразием классификаций, мало применимыми на практике, предлагаю более "жизненную" классификацию:

  1. Удаленное проникновение (remote penetration) . Атаки, которые позволяют реализовать удаленное управление компьютером через сеть. Например, NetBus или BackOrifice.
  2. Локальное проникновение (local penetration) . Атака, которая приводит к получению несанкционированного доступа к узлу, на котором она запущена. Например, GetAdmin.
  3. Удаленный отказ в обслуживании (remote denial of service) . Атаки, которые позволяют нарушить функционирование или перегрузить компьютер через Internet. Например, Teardrop или trin00.
  4. Локальный отказ в обслуживании (local denial of service) . Атаки, которые позволяют нарушить функционирование или перегрузить компьютер, на котором они реализуются. Примером такой атаки является "враждебный" апплет, который загружает центральный процессор бесконечным циклом, что приводит к невозможности обработки запросов других приложений.
  5. Сетевые сканеры (network scanners) . Программы, которые анализируют топологию сети и обнаруживают сервисы, доступные для атаки. Например, система nmap.
  6. Сканеры уязвимостей (vulnerability scanners) . Программы, которые ищут уязвимости на узлах сети и которые могут быть использованы для реализации атак. Например, система SATAN или ShadowSecurityScanner.
  7. Взломщики паролей (password crackers) . Программы, которые "подбирают" пароли пользователей. Например, L0phtCrack для Windows или Crack для Unix.
  8. Анализаторы протоколов (sniffers) . Программы, которые "прослушивают" сетевой трафик. При помощи этих программ можно автоматически искать такую информацию, как идентификаторы и пароли пользователей, информацию о кредитных картах и т.д. Например, Microsoft Network Monitor, NetXRay компании Network Associates или LanExplorer.

Компания Internet Security Systems, Inc. еще больше сократила число возможных категорий, доведя их до 5:

  1. Сбор информации (Information gathering).
  2. Попытки несанкционированного доступа (Unauthorized access attempts).
  3. Отказ в обслуживании (Denial of service).
  4. Подозрительная активность (Suspicious activity).
  5. Системные атаки (System attack).

Первые 4 категории относятся к удаленным атакам, а последняя - к локальным, реализуемом на атакуемом узле. Можно заметить, что в данную классификацию не попал целый класс так называемых "пассивных" атак ("прослушивание" трафика, "ложный DNS-сервер", "подмена ARP-сервера" и т.п.).

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

Одной из лучших баз уязвимостей и атак является база данных X-Force, находящаяся по адресу: http://xforce.iss.net/. Доступ к ней может осуществляться как путем подписки на свободно распространяемый список рассылки X-Force Alert, так и путем интерактивного поиска в базе данных на Web-сервере компании ISS.

Заключение

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

Средства обнаружения компьютерных атак

Технология обнаружения атак должна решать следующие задачи:

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

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

  • Контроль эффективности межсетевых экранов. Например, установка системы обнаружения атак после межсетевого экрана (внутри корпоративной сети) позволяет обнаружить атаки, пропускаемые МСЭ и, тем самым, определить недостающие правила на межсетевом экране.
  • Контроль узлов сети с неустановленными обновлениями или узлов с устаревшим программным обеспечением.
  • Блокирование и контроль доступа к определенным узлам Internet. Хотя системам обнаружения атак далеко до межсетевых экранов и систем контроля доступа к различным URL, например, WEBsweeper, они могут выполнять частичный контроль и блокирование доступа некоторых пользователей корпоративной сети к отдельным ресурсам Internet, например, к Web-серверам порнографического содержания. Это бывает необходимо тогда, когда в организации нет денег на приобретение и межсетевого экрана и системы обнаружение атак, и функции МСЭ разносятся между системой обнаружения атак, маршрутизатором и proxy-сервером. Кроме того, системы обнаружения атак могут контролировать доступ сотрудников к серверам на основе ключевых слов. Например, sex, job, crack и т.д.
  • Контроль электронной почты. Системы обнаружения атак могут использоваться для контроля неблагонадежных сотрудников, использующих электронную почту для выполнения задач, не входящих в их функциональные обязанности, например, рассылка резюме. Некоторые системы могут обнаруживать вирусы в почтовых сообщениях и, хотя до настоящих антивирусных систем им далеко, они все же выполняют эту задачу достаточно эффективно.

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

Классификация систем обнаружения атак

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

  1. host-based , то есть обнаруживающие атаки, направленные на конкретный узел сети,
  2. network-based , то есть обнаруживающие атаки, направленные на всю сеть или сегмент сети.

Системы обнаружения атак, контролирующие отдельный компьютер, как правило, собирают и анализируют информацию из журналов регистрации операционной системы и различных приложений (Web-сервер, СУБД и т.д.). По такому принципу функционирует RealSecure OS Sensor. Однако в последнее время стали получать распространение системы, тесно интегрированные с ядром ОС, тем самым, предоставляя более эффективный способ обнаружения нарушений политики безопасности. Причем такая интеграция может быть реализовано двояко. Во-первых, могут контролироваться все системные вызовы ОС (так работает Entercept) или весь входящий/исходящий сетевой трафик (так работает RealSecure Server Sensor). В последнем случае система обнаружения атак захватывает весь сетевой трафик напрямую с сетевой карты, минуя операционную систему, что позволяет уменьшить зависимость от нее и тем самым повысить защищенность системы обнаружения атак.

Системы обнаружения атак уровня сети собирают информацию из самой сети, то есть из сетевого трафика. Выполняться эти системы могут на обычных компьютерах (например, RealSecure Network Sensor), на специализированных компьютерах (например, RealSecure for Nokia или Cisco Secure IDS 4210 и 4230) или интегрированы в маршрутизаторы или коммутаторы (например, CiscoSecure IOS Integrated Software или Cisco Catalyst 6000 IDS Module). В первых двух случаях анализируемая информация собирается посредством захвата и анализа пакетов, используя сетевые интерфейсы в беспорядочном (promiscuous) режиме. В последнем случае захват трафика осуществляется с шины сетевого оборудования.

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

Практически все системы обнаружения атак основаны на сигнатурном подходе.

Достоинства систем обнаружения атак

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

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

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

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

Системы, функционирующие на уровне сети, обнаруживают подозрительные события и атаки по мере того, как они происходят, и поэтому обеспечивают гораздо более быстрое уведомление и реагирование, чем системы, анализирующие журналы регистрации. Например, хакер, инициирующий сетевую атаку типа "отказ в обслуживании" на основе протокола TCP, может быть остановлен системой обнаружения атак сетевого уровня, посылающей TCP-пакет с установленным флагом Reset в заголовке для завершения соединения с атакующим узлом, прежде чем атака вызовет разрушения или повреждения атакуемого узла. Системы анализа журналов регистрации не распознают атаки до момента соответствующей записи в журнал и предпринимают ответные действия уже после того, как была сделана запись. К этому моменту наиболее важные системы или ресурсы уже могут быть скомпрометированы или нарушена работоспособность системы, запускающей систему обнаружения атак на уровне узла. Уведомление в реальном масштабе времени позволяет быстро среагировать в соответствии с предварительно определенными параметрами. Диапазон этих реакций изменяется от разрешения проникновения в режиме наблюдения для того, чтобы собрать информацию об атаке и атакующем, до немедленного завершения атаки.

И, наконец, системы обнаружения атак, функционирующие на сетевом уровне, не зависят от операционных систем, установленных в корпоративной сети, так как они оперируют сетевым трафиком, которым обмениваются все узлы в корпоративной сети. Системе обнаружения атак все равно, какая ОС сгенерировала тот или иной пакет, если он в соответствие со стандартами, поддерживаемыми системой обнаружения. Например, в сети могут работать ОС Windows 98, Windows NT, Windows 2000 и XP, Netware, Linux, MacOS, Solaris и т.д., но если они общаются между собой по протоколу IP, то любая из систем обнаружения атак, поддерживающая этот протокол, сможет обнаруживать атаки, направленные на эти ОС.

Совместное применение систем обнаружения атак на уровне сети и уровне узла повысит защищенность вашей сети.

Сетевые системы обнаружения атак и межсетевые экраны

Наиболее часто сетевые системы обнаружения атак пытаются заменить межсетевыми экранами, уповая на то, что последние обеспечивают очень высокий уровень защищенности. Однако не стоит забывать, что межсетевые экраны - это просто системы, основанные на правилах, которые разрешают или запрещают прохождение трафика через них. Даже межсетевые экраны, построенные по технологии "", не позволяют с уверенностью сказать, присутствует ли атака в контролируемом ими трафике или нет. Они могут сказать, соответствует ли трафик правилу или нет. Например, МСЭ сконфигурирован так, чтобы блокировать все соединения кроме TCP-соединений на 80 порту (то есть HTTP-трафик). Таким образом, любой трафик через 80-ый порт законен с точки зрения МСЭ. С другой стороны, система обнаружения атак также контролирует трафик, но ищет в нем признаки атаки. Ее мало заботит, для какого порта предназначен трафик. По умолчанию весь трафик для системы обнаружения атак подозрителен. То есть, несмотря на то, что система обнаружения атак работает с тем же источником данных, что и МСЭ, то есть с сетевым трафиком, они выполняют дополняющие друг друга функции. Например, HTTP-запрос "GET /../../../etc/passwd HTTP/1.0". Практически любой МСЭ разрешает прохождение данного запроса через себя. Однако система обнаружения атак легко обнаружит эту атаку и блокирует ее.

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

Межсетевой экран - не панацея!

Варианты реакций на обнаруженную атаку

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

  • Уведомление на консоль (включая резервную) системы обнаружения атак или на консоль интегрированной системы (например, межсетевого экрана).
  • Звуковое оповещение об атаке.
  • Генерация управляющих последовательностей SNMP для систем сетевого управления.
  • Генерация сообщения об атаке по электронной почте.
  • Дополнительные уведомления на пейджер или факс. Очень интересная, хотя и редко применяемая возможность. Оповещение об обнаружении несанкционированной деятельности посылается не администратору, а злоумышленнику. По мнению сторонников данного варианта реагирования, нарушитель, узнав, что его обнаружили, вынужден прекратить свои действия.
  • Обязательная регистрация обнаруживаемых событий. В качестве журнала регистрации могут выступать:
    • текстовый файл,
    • системный журнал (например, в системе Cisco Secure Integrated Software),
    • текстовый файл специального формата (например, в системе Snort),
    • локальная база данных MS Access,
    • SQL-база данных (например, в системе RealSecure).
    Надо только учитывать, что объемы регистрируемой информации требуют, как правило, SQL-базу - MS SQL или Oracle.
  • Трассировка событий (event trace), т.е. запись их в той последовательности и с той скоростью, с которыми их реализовывал злоумышленник. Затем администратор в любое заданное время может прокрутить (replay или playback) необходимую последовательность событий с заданной скоростью (в реальном режиме времени, с ускорением или замедлением), чтобы проанализировать деятельность злоумышленника. Это позволит понять его квалификацию, используемые средства атаки и т.д.
  • Прерывание действий атакующего, т.е. завершение соединения. Это можно сделать, как:
    • перехват соединения (session hijacking) и посылка пакета с установленным флагом RST обоим участникам сетевого соединения от имени каждого из них (в системе обнаружения атак, функционирующей на уровне сети);
    • блокировка учетной записи пользователя, осуществляющего атаку (в системе обнаружения атак на уровне узла). Такая блокировка может быть осуществлена либо на заданный промежуток времени, либо до тех пор, пока учетная запись не будет разблокирована администратором. В зависимости от привилегий, с которыми запущена система обнаружения атак, блокировка может действовать как в пределах самого компьютера, на который направлена атака, так и в пределах всего домена сети.
  • Реконфигурация сетевого оборудования или межсетевых экранов. В случае обнаружения атаки на маршрутизатор или межсетевой экран посылается команда на изменение списка контроля доступа. Впоследствии все попытки соединения с атакующего узла будут отвергаться. Как и блокировка учетной записи злоумышленника, изменение списка контроля доступа может быть осуществлено или на заданный интервал времени или до того момента, как изменение будет отменено администратором реконфигурируемого сетевого оборудования.
  • Блокирование сетевого трафика так, как это реализовано в межсетевых экранах. Этот вариант позволяет ограничить трафик, а также адресатов, которые могут получить доступ к ресурсам защищаемого компьютера, позволяя выполнять функции доступные в персональных межсетевых экранах.

Способы проникновения вредоносных программ в систему

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

социальная инженерия (также употребляется термин «социальный инжиниринг» - калька с английского «social engineering»);

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

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

Социальная инженерия

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

Задача хакеров и вирусописателей - привлечь внимание пользователя к заражённому файлу (или HTTP-ссылке на заражённый файл), заинтересовать пользователя, заставить его кликнуть по файлу (или по ссылке на файл). «Классикой жанра» является нашумевший в мае 2000 года почтовый червь LoveLetter, до сих пор сохраняющий лидерство по масштабу нанесённого финансового ущерба, согласно данным от Computer Economics. Сообщение, которое червь выводил на экран, выглядело следующим образом:

На признание «I LOVE YOU» среагировали очень многие, и в результате почтовые сервера больших компаний не выдержали нагрузки - червь рассылал свои копии по всем контактам из адресной книги при каждом открытии вложенного VBS-файла.

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

Стоит также упомянуть червь Swen, который выдавал себя за сообщение от компании Microsoft и маскировался под патч, устраняющий ряд новых уязвимостей в Windows (неудивительно, что многие пользователи поддались на призыв установить «очередную заплатку от Microsoft»).

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

В последнее время особую популярность приобрели не файлы, вложенные в письмо, а ссылки на файлы, расположенные на заражённом сайте. Потенциальной жертве отправляется сообщение - почтовое, через ICQ или другой пейджер, реже - через интернет-чаты IRC (в случае мобильных вирусов обычным способом доставки служит SMS-сообщение). Сообщение содержит какой-либо привлекательный текст, заставляющий ничего не подозревающего пользователя кликнуть на ссылку. Данный способ проникновения в компьютеры-жертвы на сегодняшний день является самым популярным и действенным, поскольку позволяет обходить бдительные антивирусные фильтры на почтовых серверах.

Используются также возможности файлообменных сетей (P2P-сети). Червь или троянская программа выкладывается в P2P-сеть под разнообразными «вкусными» названиями, например:

AIM & AOL Password Hacker.exe

Microsoft CD Key Generator.exe

play station emulator crack.exe

В поиске новых программ пользователи P2P-сетей натыкаются на эти имена, скачивают файлы и запускают их на выполнение.

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

Необычный способ «разводки» использовал неизвестный злоумышленник из России в 2005-2006 годах. Троянская программа рассылалась на адреса, обнаруженные на веб-сайте job.ru, специализирующемся на трудоустройстве и поиске персонала. Некоторые из тех, кто публиковал там свои резюме, получали якобы предложение о работе с вложенным в письмо файлом, который предлагалось открыть и ознакомиться с его содержимым. Файл был, естественно, троянской программой. Интересно также то, что атака производилась в основном на корпоративные почтовые адреса. Расчёт, видимо, строился на том, что сотрудники компаний вряд ли будут сообщать об источнике заражения. Так оно и произошло - специалисты «Лаборатории Касперского» более полугода не могли получить внятной информации о методе проникновения троянской программы в компьютеры пользователей.

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

Другой необычный случай доставки шпионской программы «на дом» произошел в Японии осенью 2005. Некие злоумышленники разослали заражённые троянским шпионом CD-диски на домашние адреса (город, улица, дом) клиентов одного из японских банков. При этом использовалась информация из заранее украденной клиентской базы этого самого банка.

Технологии внедрения

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

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

Уязвимостями в почтовых клиентах Outlook пользовались почтовые черви Nimda и Aliz. Для того чтобы запустить файл червя, достаточно было открыть заражённое письмо или просто навести на него курсор в окне предварительного просмотра.

Также вредоносные программы активно использовали уязвимости в сетевых компонентах операционных систем. Для своего распространения такими уязвимостями пользовались черви CodeRed, Sasser, Slammer, Lovesan (Blaster) и многие другие черви, работающие под ОС Windows. Под удар попали и Linux-системы - черви Ramen и Slapper проникали на компьютеры через уязвимости в этой операционной среде и приложениях для неё.

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

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

Уязвимости, о которых становятся известно, достаточно оперативно исправляются компаниями-разработчиками, однако постоянно появляется информация о новых уязвимостях, которые тут же начинают использоваться многочисленными хакерами и вирусописателями. Многие троянские «боты» используют новые уязвимости для увеличения своей численности, а новые ошибки в Microsoft Office тут же начинают применяться для внедрения в компьютеры очередных троянских программ. При этом, к сожалению, имеет место тенденция сокращения временного промежутка между появлением информации об очередной уязвимости и началом её использования червями и троянцами. В результате компании-производители уязвимого программного обеспечения и разработчики антивирусных программ оказываются в ситуации цейтнота. Первым необходимо максимально быстро исправить ошибку, протестировать результат (обычно называемый «заплаткой», «патчем») и разослать его пользователям, а вторым - немедленно выпустить средство детектирования и блокирования объектов (файлов, сетевых пакетов), использующих уязвимость.

Одновременное использование технологий внедрения и методов социальной инженерии

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

Например, почтовый червь Mimail распространялся как вложение в электронное письмо. Для того чтобы пользователь обратил внимание на письмо, в него вставлялся специально оформленный текст, а для запуска копии червя из вложенного в письмо ZIP-архива - уязвимость в браузере Internet Explorer. В результате при открытии файла из архива червь создавал на диске свою копию и запускал её на исполнение без каких либо системных предупреждений или дополнительных действий пользователя. Кстати, этот червь был одним из первых, предназначенных для воровства персональной информации пользователей интернет-кошельков системы e-gold.

Другим примером является рассылка спама с темой «Привет» и текстом «Посмотри, что про тебя пишут». За текстом следовала ссылка на некую веб-страницу. При анализе выяснилось, что данная веб-страница содержит скрипт-программу, которая, пользуясь еще одной уязвимостью в Internet Explorer, загружает на компьютер пользователя троянскую программу LdPinch, предназначенную для воровства различных паролей.

Противодействие антивирусным программам

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

Упаковка и шифрование кода. Значительная часть (если не большинство) современных компьютерных червей и троянских программ упакованы или зашифрованы тем или иным способом. Более того, компьютерным андеграундом создаются специально для этого предназначенные утилиты упаковки и шифровки. Например, вредоносными оказались абсолютно все встретившиеся в интернете файлы, обработанные утилитами CryptExe, Exeref, PolyCrypt и некоторыми другими.

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

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

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

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

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

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

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

Электронная почта

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

рассылка вредоносных программ «в чистом виде» - в этом случае вредоносное ПО является вложением в письмо и его автоматический запуск не предусмотрен. Запуск вредоносной программы осуществляет сам пользователь, для чего нередко в письме применяются элементы социальной инженерии. Вложенный malware необязательно является исполняемым файлом - часто встречаются вредоносные скрипты, например Worm.Win32.Feebs, которые рассылаются по почте в виде HTA?файлов, содержащих зашифрованный скрипт, который загружает исполняемый файл из Интернета;

вредоносная программа с измененным расширением - этот метод отличается от предыдущего тем, что вложенный в письмо исполняемый файл имеет двойное расширение, например Document.doc .pif. В данном случае пробелы применяются для маскировки реального расширения файла и их количество может варьироваться от 10-15 до сотни. Более оригинальный метод маскировки состоит в применении расширения *.com - в результате вложенный файл может ошибочно рассматриваться пользователем как ссылка на сайт, например www.playboy.com пользователь, вероятнее всего, посчитает ссылкой на сайт, а не вложенным файлом с именем www.playboy и расширением *.com;

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

письмо в html-формате с эксплойтом для запуска вложенной вредоносной программы - в настоящее время такие почтовые вирусы встречаются редко, но в 2001-2003 годах они были широко распространены (типичные примеры - Email-Worm.Win32.Avron, Email-Worm.Win32.BadtransII, Net-Worm.Win32.Nimda);

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

Рис. 1. «Поздравительная открытка»

На рисунке показана весьма грубая подделка: хорошо видно, что письмо пришло с какого-то непонятного адреса, да и ссылка с IP-адресом вместо имени сайта не внушает доверия. Тем не менее, по статистике автора, на таких письмах «попадаются» тысячи пользователей. Более качественный вариант поддельного сообщения о поздравительной открытке показан на рис. 2.

Рис. 2. Более качественная поддельная открытка

В данном случае распознать фальшивку гораздо сложнее: визуально письмо действительно пришло от службы postcard.ru и ссылка на страницу-открытку ведет на этот сайт. В данном случае обман основан на том, что письмо имеет формат html и ссылка выполнена стандартным тэгом . Как известно, оформление ссылки при помощи этого тэга имеет вид:

текстовое описание

Текстовое описание может быть произвольным, так как оно никак не связано с открываемым URL. Поэтому в данном письме текстовое описание ссылки - www.postcard.ru/card.php?4295358104, а реальная ссылка указывает на совершенно иной ресурс. Данный прием элементарно реализуется и легко вводит пользователя в заблуждение.

ссылка ведет непосредственно на исполняемый файл вредоносной программы - это простейший случай. При открытии данной ссылки пользователь получит запрос о том, что делать с файлом по данной ссылке: сохранить или запустить. Выбор «запустить» приводит к запуску вредоносного кода и поражению ПК. Практика показывает, что пользователи обычно не задумываются об опасности. Наиболее свежим примером является вредоносная программа Virus.VBS.Agent.c, которая уничтожает файлы на диске (собственно, из-за этого она и причислена к категории Virus) и распространяет себя путем рассылки по электронной почте «поздравительных открыток» со ссылкой на свой исполняемый файл, размещенный непосредственно на сайте разработчика вируса. Большое количество пострадавших от данного вируса пользователей - наглядный пример эффективности этого метода;

ссылка на сайт, замаскированный под сайт легитимной программы. Типичный пример - программы для «взлома» сотовых провайдеров и почтовых ящиков, у которых зачастую имеется домашняя страничка, правдоподобная документация и инсталляционный пакет;

ссылка ведет на html-страницу с эксплойтом. Это распространенный вариант (во время написания статьи автор зафиксировал настоящую эпидемию подобных писем), и он опаснее прямой ссылки на исполняемый файл, так как подобную ссылку очень сложно обнаружить по протоколам прокси-сервера и заблокировать. В случае успешного выполнения эксплойт выполняет загрузку вредоносного кода, причем в результате на пораженный компьютер может быть установлено более десяти вредоносных программ. Обычный набор: почтовые черви, ворующая пароли троянская программе, набор троянских программ класса Trojan-Spy и Trojan-Proxy.

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

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

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

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

Интернет

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

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

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

Рис. 3. Код эксплойта, добавленный к концу HTML-страницы

взломанного сайта

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

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

Флэш-носители

Носители такого вида в настоящее время очень широко применяются - это флэш-диски и флэш-карты, HDD-диски с USB-интерфейсом, сотовые телефоны, фотоаппараты, диктофоны. Распространение данных устройств приводит к увеличению количества вредоносных программ, использующих данные носители в качестве средства переноса. Можно выделить три базовых способа заражения флэш-диска:

создание в корне диска файла autorun.inf для запуска вредоносной программы и размещение ее в любом месте на диске (необязательно в корне диска). Работа autorun.inf на флэш-диске идентична работе подобного файла на CD-ROM, соответственно при подключении или открытии диска в проводнике производится запуск вредоносной программы;

создание в корне диска или в существующих на диске папках файлов, которые своими именами и иконками напоминают файлы или папки. Автором был проделан опыт: на флэш-дисках участвовавших в эксперименте пользователей был помещен безобидный исполняемый файл с иконкой, визуально неотличимой от иконки папки, и с именем MP3. Опыт показал, что пользователи немедленно проявили интерес к новой папке и решили посмотреть ее содержимое, осуществив двойной клик мышью на «папке», что привело к запуску исполняемого файла;

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

Методики защиты от распространения вредоносных программ на флэш-носителях довольно просты:

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

эффективной мерой защиты является отключение автозапуска;

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

написание локальных политик безопасности, блокирующих запуск приложений с флэш-диска.

Ноутбуки и КПК

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

установка на ноутбук антивируса и брандмауэра с обязательным периодическим контролем их работоспособности со стороны администратора;

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

создание особой «гостевой» подсети для ноутбуков и принятие мер по защите основной ЛВС от данной подсети.

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

Объектами тестирования могут быть как отдельные информационные системы, например: CMS (система управления содержимым), CRM (система управления взаимоотношениями с клиентами), интернет клиент-банк, так и вся инфраструктура в целом: периметр сети, беспроводные сети, внутренняя или корпоративная сеть, а так же внешний периметр.

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

Тестирования на проникновение принято делить на BlackBox, WhiteBox и GreyBox:

BlackBox — «черный ящик». Специалист располагает только общедоступной информацией о цели исследования, её сети и параметрах. Данный вариант максимально приближен к реальной ситуации. В качестве исходных данных для тестирования исполнителю сообщается только имя компании или ее сайт, а всю остальную информацию, такую как используемые компанией IP-адреса, сайты, точки выхода офисов и филиалов компании в сеть Интернет, исполнителю придётся выяснять самому.

WhiteBox – полная противоположность BlackBox. В данном случае, специалисту предоставляется максимум необходимой для него информации, вплоть до административного доступа на любые сервера. Данный способ позволяет получить наиболее полное исследование уязвимости объекта. При WhiteBox исполнителю не придётся тратить время на сбор информации, составления карты сети, и другие действия перед началом тестирования, а так же сократит время самого тестирования, т.к. часть проверок просто не придется делать. Плюс данного метода в более полном и комплексном подходе к исследованию. Минус в том, что это менее приближено к ситуации реальной атаки злоумышленника.

GrayBox – это средний вариант между WhiteBox и BlackBox, когда исполнитель действует по варианту BlackBox и периодически запрашивает информацию о тестируемой системе, для того чтобы сократить время исследования или более эффективно приложить свои усилия. Такой вариант самый популярный, так как позволяет провести тестирование без траты лишнего времени на сбор информации, и больше времени уделить поиску уязвимостей, при этом данный вариант остается достаточно близким к реальной ситуации действия злоумышленника.

1. ОСОБЕННОСТИ ПРОНИКНОВЕНИЯ НА УДАЛЕННУЮ КОМПЬЮТЕРНУЮ СИСТЕМУ.

Любое объективное и полноценное тестирование на проникновение обладает рядом особенностей и должно выполняться с учетом рекомендаций и правил.

Правила и рамки информационного тестирования на проникновение представлены в методологиях OSSTMM и OWASP. Впоследствии полученные данные можно легко адаптировать для проведения оценки соответствия с какими-либо промышленными стандартами и «лучшими мировыми практиками», такими как, Cobit, стандартами серии ISO/IEC 2700x, рекомендациями CIS/SANS/NIST/etc и стандартом PCI DSS.

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

Что касается тестирования на проникновение в соответствии с требованиями стандарта по защите информации в индустрии платежных карт, – он не намного отличается от обычного тестирования, проводимого с использованием методик OSSTMM и OWASP. Более того, стандартом PCI DSS рекомендуется придерживаться правил OWASP при проведении как пентеста (AsV), так и аудита (QSA).

Основные отличия тестирования по PCI DSS от тестирования на проникновение в широком смысле этого слова заключаются в следующем:

  • Стандартом не регламентируется (а значит и не требуется) проведение атак с использованием социальной инженерии.
  • Все проводимые проверки должны максимально минимизировать угрозу «Отказа в обслуживании» (DoS). Следовательно, проводимое тестирование должно осуществляться методом «серого ящика» с обязательным предупреждением администраторов соответствующих систем.
  • Основная цель такого тестирования – это попытка осуществления
    несанкционированного доступа к данным платежных карт (PAN, Cardholder Name и т.п.).

Метод GrayBox позволяет снизить риск отказа в обслуживании при проведении подобных работ в отношении информационных ресурсов, функционирующих в режиме 24/7.

В общем случае тестирование на проникновение по требованиям PCI должно удовлетворять следующим критериям:

  • п.11.1(b) – Анализ защищенности беспроводных сетей
  • п.11.2 – Сканирование информационной сети на наличие уязвимостей (AsV)
  • п.11.3.1 – Проведение проверок на сетевом уровне (Network-layer
    penetration tests)
  • п.11.3.2 – Проведение проверок на уровне приложений (Application-layer penetration tests)

Определение границ проводимого исследования. В первую очередь необходимо выявить границы тестирования на проникновение, определиться и согласовать последовательность выполняемых действий. В лучшем случае со стороны подразделения ИБ может быть получена карта сети, на которой схематично показано, каким образом процессинговый центр взаимодействует с общей инфраструктурой. В худшем – придется общаться с системным администратором, который знает собственные недоработки и получение исчерпывающих данных об информационной системе будет затруднено его нежеланием делиться своими данными об ИС. Так или иначе, для проведения пентеста по PCI DSS, как минимум, требуется получить следующую информацию:

  • сегментация сети (пользовательская, технологическая, ДМЗ, процессинг и т.д.);
  • межсетевое экранирование на границах подсетей (ACL/МСЭ);
  • используемые Web-приложения и СУБД (как тестовые, так и продуктивные);
  • используемые беспроводные сети;
  • какие-либо детали обеспечения безопасности, которые необходимо учесть в ходе проведения обследования (например, блокировка учетных записей при N попытках неправильной аутентификации), особенности инфраструктуры и общие пожелания при проведении тестирования.

2. ЭТАПЫ ТЕСТИРОВАНИЯ НА ПРОНИКНОВЕНИЕ

Рассмотрим возможные этапы проведения тестирования на проникновение. В зависимости от располагаемой информации (BlackBox/ WhiteBox/ GreyBox), последовательность действий может быть различной: сбор данных, сетевое сканирование, взлом системы, вредоносное ПО, социальная инженерия.

2.1 Сбор данных.

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

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

Так же информацию могут предоставлять внутренние URL сайта, адреса e-mail, телефонные номера, факсы, DNS-сервер, диапазон IP-адресов, сведения о маршрутизации.

С развитием интернета широкое распространение получили WHOIS-сервисы. Whois (от английского «who is» - «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение сведений о «регистранте» (владельце домена) и «регистраторе» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 - 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

2.2 Сетевое сканирование.

Сетевое сканирование можно разделить на составляющие:

1. Сканирование диапазона IP-адресов для определения «живых» хостов

2. Сканирование портов

3. Обнаружение служб и их версий

4. Сканирование для определения ОС

5. Сканирование уязвимостей

1. Сканирование диапазона IP-адресов.

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

Задачу обнаружения хостов иногда называют пинг сканированием (ping scan), однако она намного превосходит использование обычных ICMP запросов ассоциирующихся с вездесущими ping утилитами. Сканировать сеть предпочтительно с помощью произвольных комбинаций мультипортовых TCP SYN/ACK, UDP и ICMP запросов. Целью всех этих запросов является получение ответов, указывающих, что IP адрес в настоящее время активен (используется хостом или сетевым устройством). В большинстве сетей лишь небольшой процент IP адресов активен в любой момент времени. Это особенно характерно для адресных пространств вида 10.0.0.0/8. Такие сети имеют 16 млн. IP адресов, но бывают случаи, когда они используются компаниями, в которых не более тысячи машин. Функция обнаружения хостов может найти эти машины в этом необъятном море IP адресов.

2. Сканирование портов.

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

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

Различные типы UDP сканирования
В то время как большинство сервисов Интернета используют TCP протокол, UDP службы также широко распространены. Тремя наиболее популярными являются DNS, SNMP и DHCP (используют порты 53, 161/162 и 67/68). Т.к. UDP сканирование в общем случае медленнее и сложнее TCP, то многие специалисты по безопасности игнорируют эти порты. Это является ошибкой, т.к. существуют UDP службы, которые используются атакующими.

TCP NULL, FIN и Xmas сканирования
Эти три типа сканирования используют незаметную лазейку в TCP RFC, чтобы разделять порты на открытые и закрытые.\

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

3. Обнаружение служб и их версий.

При сканировании удаленной системы может быть выявлено, что порты25/tcp,80/tcp, и 53/udp открыты. Используя сведения можно узнать, что эти порты вероятно соответствуют почтовому серверу (SMTP), веб серверу (HTTP), и серверу доменных имен (DNS) соответственно. Эта информация обычно верна, т.к. подавляющее большинство служб, использующих 25 TCP порт, фактически, почтовые сервера. Тем не менее, не следует полностью полагаться на эту информацию. Люди могут и запускают службы с использованием нестандартных портов.

После обнаружения каких-либо TCP и/или UDP портов происходит процедура их идентификации с целью определения какие приложения (службы) их используют. Используя базу данных запросов для обращения к различным службам и соответствующие выражения для распознавания и анализа ответов можно определить протоколы службы (напр. FTP, SSH, Telnet, HTTP), имя приложения (e.g. ISC BIND, Apache httpd, Solaris telnetd), номер версии, имя хоста, тип устройства (напр. принтер, роутер), семейство ОС (напр. Windows, Linux) и иногда различные детали типа: возможно ли соединится с X сервером, версию протокола SSH, или имя пользователя.

4. Сканирование для определения ОС.

Возможно определить ОС на удаленной системе на основе анализа работы стека TCP/IP. Посылается серия TCP и UDP пакетов на удаленный хост и изучается практически каждый бит в ответах. После проведения множества тестов таких как TCP ISN выборки, поддержки опций TCP, IP ID выборки, и анализа продолжительности процедуры инициализации, сравнивается результаты сбазой данных, содержащей известные наборы типичных результатов для различных ОС и, при нахождении соответствий, можно сделать вывод об установленной ОС.

5. Сканирование уязвимостей.

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

2.3 Взлом системы.

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

Однако имеются подходы, которым может быть подвергнута практически любая операционная система:

  1. Кража пароля.
  2. Наблюдение за пользователем в момент его ввода пароля, дающего право на работу с операционной системой.
  3. Получение пароля из файла, в котором этот пароль был сохранен пользователем.
  4. Поиск пароля, который пользователи зачастую записывают на бумажном носителе.
  5. Кража внешнего носителя парольной информации (дискеты или электронного ключа, на которых хранится пароль пользователя, предназначенный для входа в операционную систему).
  6. Полный перебор всех возможных вариантов пароля.
  7. Подбор пароля по частоте встречаемости символов и биграмм, с помощью персональных словарей и наиболее часто применяемых паролей.
  8. Сканирование жестких дисков компьютера.
  9. Сборка «мусора».
  10. Превышение полномочий (используя ошибки в программном обеспечении или в администрировании операционной системы, исследователь получает полномочия, превышающие полномочия, предоставленные ему согласно действующей политике безопасности).
  11. Запуск программы от имени пользователя, имеющего необходимые полномочия, или в качестве системной программы (драйвера, сервиса, демона и т. д.).
  12. Подмена динамически загружаемой библиотеки, используемой системными программами, или изменение переменных среды, описывающих путь к таким библиотекам.
  13. Модификация кода или данных подсистемы защиты самой операционной системы.
  14. Отказ в обслуживании (целью этой атаки является частичный или полный вывод из строя операционной системы).
  15. Захват ресурсов (подконтрольная программа производит захват всех имеющихся в операционной системе ресурсов, а затем входит в бесконечный цикл).
  16. Бомбардировка запросами (подконтрольная программа постоянно направляет операционной системе запросы, реакция на которые требует привлечения значительных ресурсов компьютера).
  17. Использование ошибок в программном обеспечении или администрировании.

2.4 Вредоносное программное обеспечение.

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

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

Троянские программы - это вредоносные программы, выполняющие несанкционированные пользователем действия. Такие действия могут включать:

  1. Удаление данных
  2. Блокирование данных
  3. Изменение данных
  4. Копирование данных
  5. Замедление работы компьютеров и компьютерных сетей.

Троянские программы классифицируются в соответствии с типом действий, выполняемых ими на компьютере.

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

2.5 Социальная инженерия.

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

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

Техники социальной инженерии:

  • Претестинг. Претекстинг - это набор действий, проведенный по определенному, заранее готовому сценарию (претексту).
  • Фишинг. Фишинг (англ. phishing, от fishing - рыбная ловля, выуживание) - это видинтернет-мошенничества, целью которого является получение доступа к конфиденциальным данным пользователей - логинам и паролям. Целью фишинга является незаконное получение конфиденциальной информации.
  • Quid pro quo . Квид про кво (отлат. Quid pro quo - «то за это») - в английском языке это выражение обычно используется в значении «услуга за услугу». Зачастую социальный инженер представляется сотрудником технической поддержки, который сообщает о возникновении технических проблем на рабочем месте сотрудника и предлагает помощь в их устранении.

Проведенное в 2003 году исследование в рамках программы Информационная безопасность показало, что 90% офисных работников готовы разгласить конфиденциальную информацию, например свои пароли, за какую-либо услугу или вознаграждение.

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

Организация псевдоатаки.

Для организации псевдоатаки на компьютерную систему используем программные средства Social Engineering Toolkit (SET) и Metasploit Framework (MFS). Эти утилиты по умолчанию включены в дистрибутив Backtrack 5, предназначенный для тестирования возможности системного и сетевого взлома. Так же используем две виртуальные машины с такими ОС как: Windows 7 и Backtrack 5.

Генерация бэкдора. SET будем использовать для создания бэкдора с обратным TCP, а MFS для создания handler’a (обработчик), чтобы обрабатывать пакеты от созданного бэкдора, который будет поддерживать канал связи между потенциальным злоумышленником и системой, на которой будет запущен бэкдор.

Все действия производятся в консольном режиме на ОС Backtrack 5. Создание полезной нагрузки достигается через утилиту SET, п. 4 Create a Payload and Listerer

Создание полезной нагрузки с обратным TCP (для установления обратной связи) производится путем выбора п. 2 Windows Reverse TCP Meterpreter и затем п. 16 Backdoored Executable . Данная операция завершает создание бэкдора. При его создании также указывается номер порта, через который будет происходить обратная связь. В папке / pentest / exploits / SET будет сформирован msf.exe, на основе выбранных нами опций.

Настройка эксплойта. Эксплоит предназначен для получения запросов TCP от созданного бэкдора. Его настройка производится через запуск MFS и выбор эксплоита handler (прослушиватель): use exploit/multi/handler .

Вследствие этого MFS переключается в контекст обработчика эксплоита. Дальнейшая задача состоит в конфигурировании полезной нагрузки для этого эксплоита. Поскольку бэкдор ориентирован (создан) с Revers_TCP Meterpretor, то обмен информацией происходит через TCP соединение: set / payload windows / meterpreter / revers _ tcp . Кроме того необходимым является указание в опциях Local Host (ip-адреса потенциального злоумышленника).

Запуск handler приводит в контекст meterpretor, где будут представлены сессии к которым можно подключиться. Появление сессии возникнет после запуска бэкдора на удаленной машине, что в ряде случаев на практике достигается путем социальной инженерии.

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

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

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

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

Предупреждение: информация в этой статье предоставлена только в ознакомительных целях. Представленные инструменты следует использовать лишь для исследования и тестирования своих собственных сетей и/или с согласия администратора. Некоторые из программ могут нарушить работу, как телефона, так и сети. НЕ ИСПОЛЬЗУЙТЕ ЭТИ МЕТОДЫ НА РАБОЧИХ СЕТЯХ ИЛИ ТАМ, ГДЕ ВАМ ЭТО ДЕЛАТЬ НЕ РАЗРЕШЕНО.

Настройка телефона

В своих экспериментах я использую телефон на операционной системе Android, а если точнее, Samsung Galaxy S с правами привилегированного пользователя. Я настоятельно рекомендую получить root-доступ, установив новую прошивку, например, Cyanogen (я использовал Cyanogen 7). Многие упомянуты в статье приложения, требуют права привилегированного пользователя. Также желательно проводить эксперименты не на вашем рабочем телефоне, а на каком-либо другом, поскольку телефон с root-доступом менее защищен от проникновения вредоносных программ.

На телефон можно установить большинство Linux-дистрибутивов на Android-телефонах, включая Backtrack 5, с использованием GitBrew. Однако использование линукса в Android-телефоне несколько запутано, и, возможно, вам будет удобнее использовать нетбук. Хотя в этой статье я буду использовать некоторые специальные приложения для ОС Android, которые предоставляют определенные аппаратные преимущества для смартфонов. Если у вас есть успешный опыт использования других платформ, поделитесь об этом в комментариях.

Сеть и сканеры уязвимостей

Первое приложение, использованное мной при тестах - обозреватель сети. На Android Marketplace существует немало таких программ. Одна из них - Network Discovery , которая бесплатна и не требует прав привилегированного пользователя. Разработчики этого приложения создали удобный дизайн, который позволяет окинуть одним взглядом объекты сети, что не так просто сделать, учитывая ограниченную площадь экрана мобильного телефона. Программа определяет операционную систему, тип и производителя сетевого устройства. Network Discovery совместимо с Wi-Fi сетями, позволяя подключаться как к открытыми сетям, так и к сетям доступным по паролю.

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

Утилиты Anti и dSploit позволяют автоматизировать задачи по поиску уязвимостей. При запуске они ищут открытые сети, сканируют устройства в сети и пытаются протестировать каждое устройство на наличие уязвимостей. Если обнаружена брешь, Anti пытается получить доступ к этому устройству, запуская эксплоиты из базы Metasploit и ExploitDB, после чего вы может производить удаленное администрирование, например, снимать скриншот с экрана или извлекать диск из устройства (чтобы удостовериться, что у вас имеются права администратора в системе).

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

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

Встроенный монитор позволяет получить список Wi -Fi сетей, узнать мощность сигнала и доступность сети. Сканер сети довольно быстр, и мне удалось исследовать весьма большую сеть примерно за 30 секунд. При запуске сканирования программа спросит, нужно ли проводить дополнительное детальное исследование устройств на уязвимости.

Утилиты Anti и dSploit прекрасные средства для поиска уязвимостей при помощи мобильных устройств. Само тестирование запускается в один клик, позволяя находить незащищенные Wi-Fi сети и получать более детальную информацию в автоматическом режиме. Фактически вы можете запустить поиск и убрать телефон в карман, что делает мобильные устройства мощным инструментом для проверки безопасности сети.