Тестирование на проникновение: инструментальный анализ уязвимостей или имитация действий злоумышленника? Существует множество толкований термина «тестирование на проникновение», но большинство из них основаны на одном из двух вариантов: подразумевается либо имитация действий реального взломщика по реализации несанкционированного проникновения в информационную систему, что соответствует значению термина «penetration testing» на западном рынке услуг безопасности, либо инструментальный анализ уязвимостей и оценка критичности найденных уязвимостей для бизнеса, что в англоязычной среде больше известно как «security assessment». Указанные подходы диаметрально различаются по способам, качеству и глубине воздействия на объект тестирования. Пространство воздействия Любой вектор атаки - то есть направление воздействия на объект защиты со стороны потенциального злоумышленника - можно разложить на три базисных вектора: технологический, интерактивный (социальный) и физический. 1. Технологический вектор: лобовое воздействие на эксплуатационные и технологические уязвимости системы. Лобовое воздействие принято разделять на «удаленное» и «локальное». Необходимым условием возможности реализации удаленного вектора атаки является прямая доступность объекта атаки для злоумышленника (отсюда и происхождение термина «лобовое воздействие»). Локальный вектор атаки реализует эскалацию привилегий доступа, например, получение прав администратора под учетной записью ограниченного пользователя. Инструментальный анализ защищенности, каким бы объемным и детальным он ни был, реализует исключительно воздействие по удаленному вектору атаки (см., например, методику ISSAF). Лишь в случае обнаружения и успешной реализации найденных удалённых уязвимостей могут быть использованы локальные средства эскалации привилегий - как правило, в ручном режиме. 2. Интерактивный вектор: «социальная инженерия». Объектом атаки по данному вектору являются не автоматизированные вычислительные системы, а управляющие этими системами люди. Необходимым условием для реализации сценария проникновения на основе социальной инженерии является прямая или опосредованная доступность объектов атаки - сотрудников компании, по отношению к которой производится тестирование на проникновение. Хрестоматийным примером сценария с прямым доступом можно привести телефонный звонок сотруднику от лица администратора безопасности с требованием сообщить свой код доступа к информационной системе. Наиболее простой вариант опосредованного доступа - отправка тому же сотруднику электронного сообщения от лица администратора с требованием запустить исполняемый файл, содержащий якобы срочное обновление системы безопасности, а на самом деле - скрытое средство удаленного контроля. 3. Физический вектор: воздействие через прямой или опосредованный контакт с объектом тестирования. К прямому контакту относятся попытки физического проникновения нарушителя внутрь периметра тестируемого объекта. Примером опосредованного физического контакта может служить отправка внутрь периметра с курьером твердых носителей информации (таких как flash-диски, CD и другие) со скрытыми программными средствами удаленного контроля. Инструментальный анализ Общепринятая практика реализации инструментального анализа защищенности, как правило, определяется следующим алгоритмом. 1. Определяется так называемая «модель нарушителя». Распространены две типовые модели нарушителя: так называемый «внешний» и «внутренний» нарушители, что соответствует местоположению злоумышленника относительно физического периметра тестируемого объекта. Внешний нарушитель находится вне физического периметра. Его работа ограничена внешними Интернет-ресурсами, такими как web-сервисы, внешний диапазон IP-адресов и т.п. Внутренний нарушитель имеет физический доступ к локальной вычислительной сети и работает с внутренними ресурсами. 2. Устанавливаются границы проведения обследования. Типовые модели нарушителя сами по себе являются достаточно жёсткими, так как они реализуют исключительно лобовое воздействие на тестируемый объект. Но в ряде случаев необходима установка ещё более жёстких ограничений на методы и пространство воздействия во избежание отказа в обслуживании тестируемых сервисов, непрерывность работы которых является критичной. Границы обследования в таком случае точно определяют, какие действия моделируемого злоумышленника будут имитироваться в рамках теста. 3. Согласовывается методика проведения обследования, определяется набор средств и последовательность действий для «отработки» определённых воздействий. 4. Согласованная методика отрабатывается, и по результатам работ составляется итоговый отчёт, содержащий информацию об обнаруженных уязвимостях и рекомендации по повышению уровня защиты. Существуют и развиваются системы для автоматизации анализа защищенности, такие как отечественная система Max Patrol, популярный сканнер Nessus или среда с интегрированным набором инструментов Backtrack. Возможности таких инструментов позволяют облегчить или даже почти полностью автоматизировать работу аналитика по реализации типовых методик инструментального анализа защищенности. Однако, по личному мнению автора, инструментальный анализ защищенности - это далеко не то же самое, что тестирование на проникновение. Ни в коем случае нельзя верить, что настоящий злоумышленник добровольно впишется в абстрактную модель нарушителя и будет ограничивать себя лишь теми векторами атаки, которые предписаны стандартными методиками инструментального анализа. Напротив, реальный взломщик будет применять весь свой опыт для преодоления мер защиты, используя все доступные средства воздействия, в том числе и самые неожиданные. Более того, настоящий преступник, во избежание риска быть замеченным и пойманным, будет предпринимать такие действия, которые не отражены в публичных методиках по тестированию на проникновение. Ограниченность концепции защиты внешнего периметра Типовые модели нарушителя предполагают воздействие на объект защиты исключительно способом инициации сетевых соединений к объекту защиты извне. Методология противодействия «внешнему нарушителю» называется «концепцией защиты периметра» и, к сожалению, до сих пор именно к этой концепции сводится информационная безопасность многих отечественных компаний. С этой точки зрения, если объект защиты не обладает ни одним открытым для соединения извне портом, то для «внешнего нарушителя» объект и вовсе неуязвим. На самом деле, каким бы жёстким и непробиваемым для лобовой атаки ни был внешний периметр, он зачастую может быть обойдён по другим векторам атаки. В качестве наиболее простой и наглядной иллюстрации можно привести использование распространенной уязвимости корпоративных почтовых серверов - отсутствие SMTP-авторизации сообщений, входящих с обслуживаемых доменов. В наше время, 70% почтовых серверов российских компаний имеют данную уязвимость. Предположим, что сотрудники компании company.ru используют корпоративную электронную почту для связи с внешним миром. Значит, должен быть какой-либо доступный из Интернета почтовый сервер, принимающий электронную почту извне. Отсутствие SMTP-авторизации для сообщений с адресом отправителя @company.ru делает возможным отправку сообщений от произвольного адреса @company.ru к произвольному адресу @company.ru. Таким образом, сотрудники компании company.ru могут получить сообщения от старшего системного администратора с требованием немедленно установить обновление системы безопасности из прилагаемого файла. Прилагаемый файл может содержать троянскую программу, устанавливающую скрытый канал связи с нарушителем, предоставляя ему доступ к компьютеру с правами запустившего программу пользователя. Многие специалисты по безопасности полагаются на «концепцию защиты периметра», пребывая в уверенности, что, контролируя периметр не только с внешней стороны (посредством фильтрации входящих пакетов данных), но и изнутри (посредством фильтрации исходящих пакетов и контентной фильтрации трафика пользователей), они тем самым эффективно противодействуют возможности «внешнего нарушителя» взаимодействовать с компьютерами внутри периметра. Однако, подобная уверенность безосновательна по причине использования хакерами специфических инструментов и техник, перечисленных ниже. 1. Stealth-технологии Хакеры используют средства удаленного управления, реализующие stealth-технологии для сокрытия присутствия своих программных средств внутри контролируемой операционной системы. Подобные хакерские средства всегда на полшага впереди любых существующих проактивных систем для локальной защиты в силу самой своей специфики. Противодействовать stealth-технологиям возможно, однако уровень жёсткости противодействовия прямо пропорционален причиняемым пользователю неудобствам. Отдельно взятая вычислительная система, решающая узкий круг задач и управляемая высококвалифицированным оператором, теоретически может быть надежно защищена от хакерских средств сокрытия, но в подавляющем большинстве случаев реальной жизни - обыкновенное рабочее место обыкновенного пользователя - взломщик имеет существенное преимущество. 2. Реверсивный backdoor Уже многие годы хакерские средства удаленного управления используют реверсивный способ клиент-серверного взаимодействия со своим троянским ПО. При этом троянская программа сама инициирует и поддерживает скрытый канал связи с сервером, принадлежащим взломщику. Такой подход в первую очередь нивелирует саму концепцию защиты периметра. Кроме того, он намного удобнее традиционного прямого способа сетевого взаимодействия, так как позволяет работать в жёстких условиях трансляции сетевых адресов и концентрировать контроль над произвольным числом захваченных узлов в одном месте. 3. Скрытые каналы связи (covert channels) Хакеры пользуются технологиями «covert channels», позволяющими устанавливать скрытый канал связи наружу, обходя локальные и корпоративные средства защиты, такие как межсетевые экраны, системы контент-фильтрации трафика, локальной проактивной защиты и т.п. 4.Скрытые каналы связи на физическом уровне Хакеры, получив физический доступ внутрь периметра, могут устанавливать собственные каналы связи физического уровня - к примеру, незаметно подключив USB-Wi-Fi-адаптер к какому-либо узлу внутри периметра. Разумеется, можно построить модель нарушителя с перечислением максимального количества технических, социотехнических и физических средств воздействия на объект тестирования, но в таком случае временные затраты по тестированию на проникновение выйдут за рамки всех мыслимых бюджетов, затрачиваемых компанией-заказчиком на собственную безопасность. Кроме того, что ещё важнее, наращивание детальности инструментальной оценки безопасности не дает пропорционального уточнения реальной защищенности системы: как уже сказано выше, сама специфика хакерской атаки такова, что в ходе неё задействуются наименее предсказуемые и, по возможности, неизвестные вектора и методы атаки. Для примера можно оценить объем упомянутой выше методики ISSAF, помня о том, что она охватывает лишь часть действий (к слову, наиболее примитивных), которые может предпринять настоящий нарушитель. Имитация действий реального нарушителя Имитация действий взломщика в ходе тестирования защищенности системы должна производиться с максимальным приближением к реальной действительности. Это означает, что при согласовании модели нарушителя в данном случае нельзя ограничивать действия, которые моделируемый взломщик способен предпринять. В первую очередь нельзя ограничивать моделируемого взломщика исключительно лобовым вектором воздействия. Перед реальным нарушителемедва ли стоит задача исследовать весь возможный спектр воздействия на объект атаки; его цель - получить контроль над заданным информационным ресурсом. Автор убеждён, что модель нарушителя в данном случае необходимо строить, прежде всего, от конкретной цели, преследуемой моделируемым нарушителем. Таким образом, для проведении тестирования на проникновения с имитацией действий нарушителя используется следующий алгоритм. 1. Выделение наиболее ценных информационных активов компании. Это может быть, например, персональный компьютер генерального директора, дамп базы данных с критически важной информацией, формирование и отправка ложного платежного поручения и т.п. 2. Определение границ исследования. Взломщик, к примеру, может использовать домашний компьютер системного администратора для проникновения внутрь периметра объекта тестирования, организовать атаку со стороны партнерских или дочерних компаний, со стороны интернет-провайдера организации и т.п. 3. Согласование сроков тестирования с самыми общими формулировками. 4. Согласование регламента взаимодействия с ответственными за безопасность сотрудниками компании-заказчика с целью обеспечения мгновенного реагирования в случае возникновения непредвиденных обстоятельств (таких как отказ в обслуживании какого-либо информационного сервиса тестируемой компании, либо, например, «поимка» службой безопасности). 5. Реализация тестирования, итоговый отчет с описанием предпринятых сценариев проникновения и рекомендации по улучшению защиты. Этот подход, безусловно, нельзя использовать в качестве инструмента для поиска уязвимостей. Если считать не качеством, а количеством, то сканер безопасности покажет на порядки большее число уязвимостей, чем итоговый отчет теста на проникновение с имитаций действий взломщика. Однако, такое тестирование - единственный способ взглянуть на безопасность компании глазами настоящего хакера, увидеть и понять уязвимости, которые не будут обнаружены более традиционными средствами поиска уязвимостей или анализа защищенности. Кратчайший путь к цели Если злоумышленник осуществляет только лобовое технологическое воздействие на объект атаки, это вынуждает его пройти сравнительно длинный путь (от единиц до десятков «шагов») до конкретного целевого ресурса. Если мы представим себе взломщика, находящегося далеко за физическими пределами коммерческого банка, ему потребуется не один десяток взломов, чтобы осуществить отправку ложного платежного поручения. Реализация такого процесса вскрывает большое количество уязвимостей. Каждый успешный шаг - это найденная и успешно использованная уязвимость того или иного рода. Но, вместе с тем, очевидно, что по мере увеличения количества шагов до цели уменьшается вероятность её достижения, а шансы взломщика быть пойманным возрастают. Настоящий нарушитель в реальных жизненных условиях будет искать способ достигнуть цели кратчайшим путем и как можно более незаметно. Если он увидит возможность получить доступ к компьютеру генерального директора за один шаг по интерактивному или физическому вектору воздействия, он, несомненно, ею воспользуется. Не стоит думать, будто бы работа взломщика - это какие-то мистические «пляски с бубном» в стиле голливудских фильмов про хакеров или научно-фантастической беллетристики. Не стоит также думать, что для проведения подобных работ требуется какая-то экстраординарная техническая квалификация. При тестировании на проникновение, как правило, отыскиваются и используются самые простые уязвимости. Более того, опыт показывает, что применение сложных эксплойтов оказывается намного менее эффективным по «пробиваемости», чем использование самых примитивных элементов социальной инженерии. Оптимальный путь для взломщика - использование уязвимостей, которые не классифицируются как уязвимости. Такие особенности информационных систем практически гарантированно работают «без присмотра», открывая взломщику широкое и удобное поле для деятельности. В качестве иллюстрации приведённых выше тезисов, рассмотрим примеры некоторых повсеместно распространённых фундаментальных уязвимостей. Физическое проникновение Уязвимости физической безопасности представляют существенный интерес для взломщика. Здесь в большей степени, чем по лобовым векторам, требуется использование элементов социальной инженерии и личная смелость. К наиболее простым и эффективным сценариям проникновения можно отнести отправку сотрудникам компании твердых носителей с троянским кодом. Например, мало какой системный администратор устоит перед соблазном подключить к своему компьютеру флешку с оттиском «64Gb». Хорошо оформленное письмо с приглашением принять участие в профильной конференции по интересующей руководителя теме обязательно заинтересует его ознакомиться с дополнительными материалами на прилагаемом компакт-диске. Кроме этого, взломщик посредством портативного считывателя электронного ключа может скопировать идентификационную карту какого-либо сотрудника компании и, скопировав такой ключ соответствующим программатором, физически проникнуть внутрь периметра. Конкретные практические аспекты физической безопасности зачастую не согласуются с практическими аспектами безопасности информационной. В той или иной степени эта уязвимость свойственна, пожалуй, всем отечественным компаниям. ARP Poison Эта уязвимость существует столько, сколько существуют сам протокол Address Resolution Protocol и необходимость трансляции 48-битных Ethernet-адресов в 32-битные IPv4-адреса. Вкратце, суть технологии ARP Poison сводится к тому, что при имеющемся контроле над каким-либо узлом в корпоративной сети возможно контролировать трафик всех узлов в пределах доступности ARP-ответов с контролируемого узла, вне зависимости от свойств физической сетевой инфраструктуры. Таким образом возможно прослушивать, производить инспекцию криптографических протоколов, подменять передаваемые данные. Существует множество программ, реализующих атаку ARP Poison. Но несмотря на широкую известность данной уязвимости, в подавляющем большинстве компаний меры по противодействию ARP Poison не предпринимаются. В действительности, эффективное противодействие ARP Poison не только стоит денег, но и требует значительных организационных мер по контролю списков соответствий IP- и MAC-адресов на активном сетевом оборудовании. Локальные администраторы Наиболее привлекательной мишенью для взломщика являются пользователи с правами локального администратора. Получив доступ к компьютеру такого пользователя, взломщик получает гораздо более широкий спектр возможностей по воздействию как на данный захваченный узел, так и, с помощью ARP Poison, на все узлы в пределах физической топологической однородности. К таким пользователям можно отнести: 1. VIP-пользователей, топ-менеджмент компании. Как говорится, «все звери равноправны, но некоторые - равноправнее»: в большинстве случаев, групповая политика безопасности не распространяется на VIP-пользователей. Тут действует общий принцип: «закон, как правило, создают для других». 2. Группа системных администраторов. Тут действует другой общий принцип: «те, кто охраняет закон, редко его выполняют». 3. Разработчики программного обеспечения, так как этот вид деятельности практически невозможен при ограниченных локальных правах. 4. Пользователи, объективно вынужденные работать с правами локальных администраторов. Как правило, это операторы программ со средствами отечественной локальной защиты. В качестве примера можно привести такие программы как «Гранд-Смета», а также множество других банковских и бухгалтерских программ отечественного производства, для корректной работы которых требуются привилегии администратора. Как можно заметить, обладатели прав локального администратора имеют непосредственный доступ к наиболее ценным информационным активам. Администратор домена Администратор домена Microsoft Windows -- это ключ ко всему. Поэтому получение доступа к учетной записи администратора домена - очень заманчивая цель для атакующего. В достижении этой цели ему помогает тот факт, что учетная запись администратора домена в большинстве случаев используется для добавления в домен нового узла. Средства управления доменом в достаточной степени гибки, чтобы создать процедуру введения нового узла в домен без использования учетной записи администратора домена. Однако это требует определенных организационных мер и, разумеется, в большинстве случаев такими возможностями пренебрегают. Таким образом, чтобы получить учетную запись администратора домена, необходимо следующее: 1. Средство отслеживания нажатия клавиш, загружаемое операционной системой до входа пользователя и реализованное как драйвер уровня ядра или локальный сервис. 2. Возможность в нужный момент выбросить компьютер из домена, сгенерировав более или менее правдоподобное сообщение об ошибке. 3. Администратор домена, который будет вынужден как можно скорее ввести узел обратно в домен, не выясняя причины возникших неполадок. Для примера - бухгалтер, которому необходимо в самое ближайшее время сдавать баланс, в подобной ситуации поможет направить действия администратора домена в нужном взломщику направлении. Социальная инженерия Грамотная политика информационной безопасности компании должна иметь регламенты взаимодействия пользователей с информационными ресурсами компании на самом нижнем, практическом уровне, предписывая пользователям алгоритмы действий в случае возникновения исключительных ситуаций. К сожалению, даже если подобные регламенты существуют, и даже если сотрудники компании ознакомлены с ними в приказном порядке - не факт, что эти регламенты работают, как следует. Отсутствующая или плохо работающая политика информационной безопасности - это очень существенная уязвимость, которая может быть использована потенциальным нарушителем. Эксплуатация этой уязвимости называется социальной инженерией. Социальная инженерия - термин весьма популярный и весьма затёртый. Однако у всевозможных толкований социальной инженерии есть общий знаменатель: это механизм психологической манипуляции, то есть навязывания мотивации сотрудникам компании со стороны злоумышленника. В качестве примера можно привестиэпизод из личной практики автора. Когда атакующий пытается внедриться в сессию криптографического протокола SSL при помощи техники ARP Poison, пользователь получает предупреждение о смене ключа на стороне сервера и о возможной злоумышленной активности. Даже не очень бдительный пользователь заподозрит что-то неладное и наверняка нажмет на кнопку «отмены». В моей ситуации таким пользователем был системный администратор крупной компании. Он обладал административным доступом к корпоративному коммутатору, который автору было необходимо получить. Задача была решена при помощи телефонного звонка администратору. Представившись одним из учредителей компании, которого он не знал лично, я нажаловался на неработоспособность связи на повышенных тонах. Угрозы самыми жесткими санкциями в самых фамильярных выражениях подействовали: системный администратор практически не уделил внимания сообщению о смене криптографического ключа, и я получил искомый пароль. Это характерный пример индивидуальной манипуляции. Приведенный ранее пример с рассылкой писем сотрудникам компании от лица начальника службы информационной безопасности с замаскированным троянским кодом - хрестоматийный пример групповой манипуляции. Заключение Тестирование на проникновение, имитирующее действия взломщика и моделирующее злоумышленника исходя из поставленных целей, и выполняемое опытным специалистом, адекватно и результативно практически всегда. Исходя из личного опыта, автор берёт на себя смелость утверждать, что тестирование на проникновение именно в таком ключе - наиболее эффективный способ выявить реальные проблемы информационной безопасности в компании и привлечь к ним внимание руководства. Ведь о качестве защиты гораздо лучше свидетельствует демонстрация успешного доступа к информации, которая считается хорошо защищенной, или демонстрация полного контроля над личными компьютерами ответственных сотрудников, чем толстые отчеты сканеров уязвимостей. взял сдесь http://www.nobunkum.ru/ru/pentest