|
|
Обзор подготовлен
Тестирование на проникновение, во-первых, - единственный способ взглянуть на безопасность компании глазами настоящего хакера. Во-вторых, это наиболее эффектный способ привлечь внимание руководства к проблемам информационной безопасности компании.
Услуги по тестированию на проникновение (penetration testing) постепенно приживаются на российском рынке консалтинга и аудита информационной безопасности. Практически все компании, работающие на рынке защиты информации, предлагают услуги по тестированию на проникновение в качестве одного из видов аудита безопасности. Разрабатываются стандарты безопасности, такие как PCI DSS, рекомендующие регулярное проведение работ по тестированию на проникновение внешними аудиторами. Появляются методики проведения активного инструментального анализа защищенности, такие как ISSAF, которые также затрагивают вопросы тестов на проникновение. В общем можно сделать вывод, что рынок данного вида услуг находится в стадии формирования, однако этот процесс еще далек от завершения. Необходимо понимать, что зрелость рынка определяется не количеством компаний, предлагающих одно и то же, и даже не степенью диверсификации предлагаемых услуг в рамках отдельно взятого системного интегратора, а глубиной специализации предлагаемых на рынке услуг.
Для начала необходимо определиться с тем, что же такое "тестирование на проникновение". Существует великое множество толкований этого термина, но, как правило, все они имеют под собой вполне определенную основу: либо это "инструментальный анализ уязвимостей и оценка их критичности для бизнеса", либо "имитация действий реального взломщика по реализации несанкционированного проникновения в информационную систему.
Вопреки распространенному до сих пор убеждению, эти два понятия отнюдь не тождественны. Принципиальное различие подходов заключается в направлении воздействия на объект тестирования. Именно на основе данного различия можно построить специализацию услуги по тестированию на проникновение.
Любое возможное направление воздействия на объект защиты со стороны потенциального злоумышленника -- так называемый "вектор атаки" -- можно разложить на три фундаментальных ортогональных базисных вектора:
Во-первых, лобовое воздействие на эксплуатационные и технологические уязвимости. Лобовое воздействие принято разделять на "удаленный" и "локальный" векторы атаки. Необходимым условием возможности реализации удаленного вектора атаки является прямая доступность объекта атаки для злоумышленника (отсюда и происхождение термина - "лобовое воздействие"). Локальный вектор атаки реализует эскалацию привилегий доступа (например, получение системных прав из-под прав ограниченного пользователя). Инструментальный анализ защищенности анализирует именно лобовое воздействие по удаленному вектору атаки. Лишь в случае обнаружения и успешной реализации найденных удаленных уязвимостей могут быть использованы локальные средства эскалации привилегий.
Во-вторых, интерактивное воздействие, более известное как "социальная инженерия". Объектом атаки по данному вектору являются не автоматические вычислительные системы, а управляющие этими системами физические лица. Необходимым условием для реализации сценария проникновения на основе социальной инженерии является прямая или опосредованная доступность объектов атаки - сотрудников компании, по отношению к которой производится тестирование на проникновение. В качестве примера сценария с прямым доступом можно привести телефонный звонок сотруднику якобы от лица администратора безопасности с требованием сообщить свой код доступа к информационной системе. Наиболее простой вариант опосредованного доступа - отправка тому же сотруднику электронного сообщения якобы от лица администратора безопасности с требованием запустить исполняемый файл, якобы содержащий срочное обновление системы безопасности, на самом деле содержащий скрытое средство удаленного контроля.
В-третьих, физическое воздействие, к которому относятся все виды прямого или опосредованного физического контакта с объектом тестирования. К прямому контакту можно отнести те или иные попытки физического проникновения нарушителя внутрь периметра тестируемого объекта. Примером опосредованного физического контакта может служить отправка твердых носителей информации (таких как флэшки, компакт-диски и т.д.) со скрытыми программными средствами удаленного контроля внутрь периметра с курьером.
Тестирование на проникновение как инструментальный анализ защищенности осуществляется, как правило, по следующему принципу. Сначала определяется модель нарушителя. Существуют две типовые модели нарушителя: "внешний" и "внутренний", что соответствует местоположению нарушителя относительно физического периметра тестируемого объекта. Внешний нарушитель находится вне физического периметра и работает с интернет-ресурсами (такими как web-сервисы, внешний диапазон IP-адресов и т.п.). Внутренний нарушитель имеет физический доступ к локальной вычислительной сети и работает с внутренними ресурсами.
Далее устанавливаются границы проведения обследования. Типовые модели нарушителя достаточно жесткие, ведь они реализуют лишь лобовое воздействие на тестируемый объект, но в ряде случаев необходима установка еще более жестких ограничений (например, с целью предотвращения отказа в обслуживании тестируемых сервисов). Это позволяет точно определить, какие действия потенциального злоумышленника будут имитироваться в рамках теста.
Затем согласовывается методика проведения обследования, определяется набор средств и последовательность действий для "отработки" определенных воздействий.
Согласованная методика отрабатывается физически, и по результатам работ составляется итоговый отчет о выполненных работах, содержащий информацию об обнаруженных уязвимостях и рекомендации по повышению уровня защиты.
Описанный выше алгоритм является удобным и выгодным по всем позициям как для поставщика, так и для потребителя услуги по следующим причинам. Он легко интегрируется со схемой комплексного аудита информационной безопасности. Элементы активного инструментального анализа защищенности могут применяться наравне с традиционными инструментами поиска уязвимостей, позволяя вскрывать проблемы, не обнаруживаемые такими средствами как опросные листы и сканеры безопасности.
Типизация методики проведения тестирования и формализация процесса приводят к существенному снижению издержек на оказание этой услуги. Нет ничего проще, чем создать единую типовую методику на основе каких-либо публичных методик, пару раз ее "обкатать", и с небольшими корректировками предлагать ее различным заказчикам. Кроме того, для работы по стандартизированной методике не требуются высококвалифицированные специалисты: не нужно быть "семи пядей во лбу", чтобы запускать перечисленные в той же ISSAF программы и копировать их вывод в итоговый отчет.
Результатом недельной работы двух специалистов будет отчет на несколько сотен страницах с перечислением нескольких сотен уязвимостей. Технологические и эксплуатационные уязвимости, обнаруживаемые инструментальным анализом, закрываются, как правило, очень просто: необходимо установить более сложный пароль, поставить несколько галочек в программных настройках или произвести обновление программного обеспечения. Таким образом, со стороны поставщика и со стороны потребителя выполняется огромное количество работы в кратчайшие сроки. Все перечисленное выше позволяет обосновать необходимость проведения инструментального анализа защищенности перед руководством компании-потребителя.
Подводя итог всему сказанному выше, можно отметить, что тестирование на проникновение в качестве дополнительного инструмента для поиска уязвимостей в контексте комплексного аудита информационной безопасности - безусловно, вещь полезная и нужная. Однако ни в коем случае нельзя верить в то, что настоящий злоумышленник добровольно впишется в абстрактную модель нарушителя и будет ограничивать себя лишь теми векторами атаки, которые предписаны стандартными методиками инструментального анализа. Напротив, реальный нарушитель будет применять весь свой опыт для преодоления средств защиты, используя все доступное пространство воздействия, в том числе и самых неожиданных. Более того, настоящий преступник, во избежание риска быть замеченным, будет предпринимать такие действия, которые не отражены в публичных методиках по тестированию на проникновение.
Типовая модель "внешнего нарушителя" предполагает воздействие на объект защиты исключительно способом инициации сетевых соединений к объекту защиты извне. Методология противодействия "внешнему нарушителю" называется "концепцией защиты периметра" и, к сожалению, до сих пор именно к этой концепции сводится информационная безопасность очень многих отечественных компаний. Таким образом, получается, что если объект защиты не обладает ни одним открытым для соединения извне портом, то он неуязвим.
На самом деле, каким бы жестким и непробиваемым лобовыми векторами атаки внешний периметр ни был, он легко обходится по другим векторам атаки. В качестве наиболее простой и наглядной иллюстрации, можно привести использование распространенной уязвимости корпоративных почтовых релеев - отсутствие SMTP-авторизации сообщений, входящих с обслуживаемых доменов. В наше время, 70% почтовых релеев российских компаний имеют данную уязвимость.
Предположим, что сотрудники компании company.ru используют корпоративную электронную почту для связи с внешним миром. Значит, должен быть какой-либо доступный из интернета релей, принимающий электронную почту извне. Отсутствие SMTP-авторизации для сообщений с исходным адресом @company.ru делает возможным отправку сообщений от произвольного адреса @company.ru к произвольному адресу @company.ru. Таким образом, сотрудники компании company.ru могут получить сообщения от старшего системного администратора с настойчивым требованием немедленно установить обновление системы безопасности из прилагаемого файла. Прилагаемый файл может содержать троянскую программу, устанавливающую скрытый канал связи с нарушителем, предоставляя ему доступ к компьютеру, с правами запустившего программу пользователя.
Многие полагаются на "концепцию защиты периметра", пребывая в уверенности, что контролируя периметр не только с внешней стороны (применение фильтрации входящих пакетов данных), но и изнутри (применение фильтрации исходящих пакетов, а также контентной фильтрации трафика внутренних пользователей), они тем самым эффективно противодействуют возможности "внешнего нарушителя" взаимодействовать с компьютерами внутри периметра. Однако, увы, подобная уверенность безосновательна.
Во-первых, хакеры используют средства удаленного управления, реализующие stealth-технологии для сокрытия своего присутствия в операционной системе. Подобные хакерские средства всегда на полшага впереди любых мыслимых проактивных систем локальной защиты. В качестве примера можно привести известный руткит Rustock, созданный легендарным отечественным хакером z0mbie и по какой-то причине переданный антивирусным вендорам. Противодействовать stealth-технологиям возможно, однако уровень жесткости противодействовия обратно пропорционален уровню комфортности работы пользователя. Отдельно взятая вычислительная система, решающая узкий круг задач и управляемая высококвалифицированным оператором, теоретически может быть надежно защищена от хакерских средств сокрытия, но в подавляющем большинстве случаев в реальной жизни (обыкновенное рабочее место обыкновенного пользователя) взломщик имеет существенную фору.
Во-вторых, уже многие годы хакерские средства удаленного управления используют реверсивный способ взаимодействия, с той или иной периодичностью устанавливая канал связи с контролируемыми взломщиком узлами. Это позволяет нивелировать концепцию защиты периметра, работать в жестких условиях трансляции сетевых адресов и "серой адресации", концентрировать контроль за произвольным числом захваченных узлов в одном месте. Проще говоря, это намного удобнее прямого способа взаимодействия.
В-третьих, хакеры пользуются технологиями "covert channels", позволяющими устанавливать скрытый канал связи наружу, используя инкапсуляцию трафика средств удаленного управления в технических протоколах (icmp, dns, tcp options и др.), либо используя легитимную учетную запись пользователя для получения доступа к интернет-ресурсам через корпоративный прокси-сервер (HTTP GET- и POST-запросы). Наиболее гибким и скрытым средством является использование какого-либо легитимного средства (например, почтового клиента), "паразитируя" на котором возможно организовать канал связи наружу.
В-четвертых, хакеры, получив физический доступ внутрь периметра, могут устанавливать собственные каналы связи (например, незаметно подключив usb-wi-fi-адаптер к какому-либо узлу внутри периметра).
Разумеется, можно построить модель нарушителя с перечислением всех технических, социотехнических и физических средств воздействия на объект тестирования, но в таком случае стоимость работ по тестированию на проникновение перевесит все мыслимые и немыслимые бюджеты, затрачиваемые компанией-заказчиком на собственную безопасность. Достаточно лишь посмотреть на объемы той же методики ISSAF, помня о том, что она охватывает лишь часть тех действий (к слову, наиболее примитивных действий), которые может предпринять настоящий нарушитель.
Вероятно, при проведении тестирования на проникновение с целью имитации действий взломщика модель нарушителя нельзя строить по ограничению тех действий и векторов атаки, которые моделируемый взломщик способен предпринять. В любом случае, моделируемого взломщика нельзя ограничивать лишь лобовым вектором воздействия. Имитация действий взломщика должна производиться с максимальным приближением к реальной действительности: реальному нарушителю вряд ли поставят цель исследовать весь возможный спектр воздействия на объект атаки. Модель нарушителя в данном случае необходимо строить, прежде всего, от конкретной цели, преследуемой моделируемым нарушителем.
Таким образом, должен получиться следующий алгоритм действий. Сначала - выделение наиболее ценных информационных активов компании. Это может быть, например, персональный компьютер генерального директора, дамп базы данных с критически важной информацией, формирование и отправка ложного платежного поручения и т.п.
Затем определение границ обследования. Взломщик, к примеру, может использовать домашний компьютер системного администратора для проникновения внутрь периметра объекта тестирования. Взломщик может организовать вектора атаки со стороны партнерских или аффилированных компаний, со стороны интернет-провайдера организации и т.д.
Далее - согласование сроков проведения тестирования на проникновение с самыми общими формулировками. Потом согласование регламента взаимодействия с ответственными за безопасность сотрудниками компании заказчика, с целью обеспечения мгновенного реагирования в случае возникновения непредвиденных обстоятельств (отказ в обслуживании какого-либо информационного сервиса тестируемой компании, либо, например, "поимка" службой безопасности).
И, наконец, реализация тестирования на проникновение, итоговый отчет с описанием предпринятых сценариев проникновения и рекомендации по улучшению защиты.
Этот подход, безусловно, нельзя принимать в качестве инструмента поиска уязвимостей. Если считать не качеством, а количеством, то сканер безопасности покажет на порядки большее число уязвимостей. Однако тестирование на проникновение - единственный способ взглянуть на безопасность компании глазами настоящего хакера, увидеть и понять те уязвимости, которые не будут обнаружены традиционными средствами.
Но не стоит думать, будто бы работа взломщика - это какие-то мистические "пляски с бубном" в стиле голливудских фильмов про хакеров или научно-фантастической беллетристики. При тестировании на проникновение, как правило, отыскиваются и используются самые простые уязвимости, по принципу тождественности простоты и надежности. Более того, опыт показывает, что применение сложных эксплоитов оказывается намного менее эффективным по "пробиваемости", чем использование самых простецких элементов социальной инженерии.
"Прочность цепи определяется прочностью самого слабого ее звена" - известная мудрость, в общем и целом предопределяющая образ мысли взломщика. Можно представить себе программно-аппаратное средство, осуществляющее наиболее ценные информационные транзакции (скажем, финансовые платежи), и реализующее все мыслимые и немыслимые средства защиты информации от несанкционированного доступа, нарушения целостности и т.д., зажигающее большую красную лампу в отделе безопасности при возникновении любого подозрения на противодействие средствам защиты. Причем, охраняется не только трафик, но и исполняемый код программной части комплекса. Следует отметить, что такие программно-аппаратные комплексы для своей работы требуют прав локального администратора. Это и есть искомое слабое звено.
Известно, что любой код, работающий под управлением современной операционной системы, пользуется системными вызовами ядра ОС для взаимодействия со всеми периферийными устройствами: с экраном, с клавиатурой и сетевой картой. Программно-аппаратный комплекс не контролирует (и не может контролировать) то, что происходит в ядре операционной системы. Для профессионального взломщика, контролирующего операционную систему этого программно-аппаратного комплекса, но не контролирующего сам программно-аппаратный комплекс, не составит труда написать и внедрить фильтрующий драйвер уровня ядра с целью влияния на потоки данных, обрабатываемых системными вызовами ядра, при этом ни коим образом не нарушая целостность кода суперзащищенного программно-аппаратного комплекса.
Эта уязвимость существует столько, сколько существует сам протокол Address Resolution Protocol и необходимость трансляции 48-битных Ethernet-адресов в 32-битные IPv4-адреса. Вкратце суть этой технологии сводится к тому что, контролируя какой-либо узел в корпоративной сети, существует возможность полностью контролировать (прослушивать, модифицировать, производить диссекцию криптографических протоколов) трафик всех узлов в пределах доступности ARP-ответов с контролируемого узла, вне зависимости от свойств физической сетевой инфраструктуры.
Несмотря на публичность и даже популярность этой уязвимости (существует великое множество программ, с той или иной тщательностью и качеством ее реализующих), в подавляющем большинстве компаний меры по противодействию ARP Poison не предпринимаются. В действительности, эффективное противодействие ARP Poison не только стоит денег, но и требует значительных организационных мер по ведению списков соответствий IP- и MAC-адресов на активном сетевом оборудовании.
Наиболее привлекательной мишенью для взломщика являются пользователи с правами локального администратора. С доступом к компьютеру с правами локального администратора взломщик получает гораздо более широкий спектр возможностей по воздействию как на локально контролируемый узел, так и, с помощью ARP Poison, на все узлы в пределах физической топологической однородности. К таким пользователям можно отнести, во-первых, VIP-пользователей - топ-менеджмент компании. Как говорилось в одном мультфильме, "все звери равноправны, но есть равноправнее": в большинстве случаев групповая политика безопасности не распространяется на VIP-пользователей. Тут действует общий принцип: "закон, как правило, создают для других". Во-вторых, сюда относится группа системных администраторов - тут действует другой общий принцип: "кто охраняет закон, редко его выполняет". В третьих, к этой группе принадлежат разработчики программного обеспечения, так как этот вид деятельности практически невозможен при ограниченных правах.И последняя категория - пользователи, объективно вынужденные работать с правами локальных администраторов. Как правило, это операторы программ со средствами отечественной локальной защиты. В качестве примера можно привести такие программы, как "Гранд-Смета", а также множество других банковских и бухгалтерских программ отечественного производства.
Как можно заметить, обладатели прав локального администратора имеют непосредственный доступ к наиболее ценным информационным активам.
Администратор домена Microsoft Windows -- это ключ ко всему. Средства управления доменом в достаточной степени гибкие, чтобы создать процедуру введения нового узла в домен без использования учетной записи администратора домена. Однако это требует определенных организационных мер и, разумеется, в большинстве случаев этим пренебрегают. Таким образом, чтобы получить учетную запись администратора домена, необходимо три важных момента: средство отслеживание нажатия клавиш клавиатуры, загружаемое операционной системой до входа пользователя, реализованное как драйвер уровня ядра, либо как локальный сервис, возможность в нужный момент исключить компьютер из домена, сгенерировав более-менее правдоподобную ошибку, и администратор, который будет вынужден как можно скорее ввести узел обратно в домен, не выясняя причины возникших неполадок.
Кроме того, тут нужен небольшой элемент социальной инженерии: например, бухгалтер, которому необходимо в самое ближайшее время сдавать баланс, в подобной ситуации очень поможет направить действия администратора домена в нужном направлении.
Уязвимости физической безопасности также могут представлять существенный интерес для взломщика. И здесь, в большей степени, чем по лобовым векторам, требуется использование элементов социальной инженерии и личная смелость взломщика.
К наиболее простым и эффективным сценариям проникновения можно отнести отправку сотрудникам компании твердых носителей с троянским кодом. Например, мало какой системный администратор устоит перед соблазном подключить к своему компьютеру флэшку, на которой напечатано "32Gb". Хорошо оформленное письмо с приглашением принять участие в профильной конференции по интересующей руководителя теме обязательно заинтересует его ознакомиться с дополнительными материалами на прилагаемом компакт-диске.
Кроме этого, взломщик, посредством портативного считывателя электронного ключа, может скопировать идентификационную карту какого-либо сотрудника компании и, скопировав этот ключ соответствующим программатором, физически проникнуть внутрь периметра.
Тестирование на проникновение, имитирующее действия взломщика и моделирующее злоумышленника исходя из поставленных целей, а не из средств, и выполняемое опытным, высококвалифицированным специалистом, результативно практически всегда.
Тестирование на проникновение именно в таком ключе - наиболее эффектный способ привлечь внимание руководства к проблемам информационной безопасности компании. Можно показать руководителю толстый отчет о найденных сканером безопасности технологических и эксплуатационных уязвимостях, и он лишь пожмет плечами. Но если взломщик проникнет в его персональный компьютер и выбросит окно с подписью "я слышал ваш разговор с вашим партнером по скайпу" или продемонстрирует какую-либо иную "страшилку", уровень и качество внимания к проблемам информационной безопасности со стороны руководителя мгновенно изменится.
Андрей Соколов
CNews: Как убедить бизнес, что надо инвестировать в информационную безопасность?
Борис Симис: По моему опыту, руководство крупных организаций, государственных или частных, достаточно плохо осведомлено об угрозах, связанных с применением ИТ. Выгода от внедрения того или иного ИТ-решения может быть очевидна. А обратная сторона, то есть новые угрозы, которым теперь подвергается бизнес, представляются эфемерными. И я вижу задачу служб информационной безопасности - в адекватном донесении до коллег, руководства, бизнес-подразделений, маркетинга возможных негативных сценариев, которые могут случиться при реализации угроз ИБ. Задача эта благородная, но не благодарная! Делать это надо профессионально и взвешенно, учитывая специфику предприятия. Где-то надо разговаривать на языке оценки рисков, финансовых сценариев, где-то на языке нормативных документов и предписаний.