Выявление уязвимостей компьютерных сетей. Поиск уязвимостей ИС: некоторые методы и продукты. Концепция адаптивного управления безопасностью

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

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

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

Обнаруживать, блокировать и предотвращать атаки можно несколькими путями. Первый, и самый распространенный, способ - это обнаружение уже реализуемых атак. Этот способ применяется в "классических" системах обнаружения атак (например, RealSecure компании Internet Security Systems), межсетевых экранах и т.п. Однако, "недостаток" средств данного класса в том, что атаки могут быть реализованы повторно. Второй путь - предотвратить атаки еще до их реализации. Осуществляется это путем поиска уязвимостей, которые могут быть использованы для реализации атаки. И, наконец, третий путь - обнаружение уже совершенных атак и предотвращение их повторного осуществления. Таким образом, системы обнаружения атак могут быть классифицированы по этапам осуществления атаки (рис.1.):

Системы, функционирующие на первом этапе осуществления атак и позволяющие обнаружить уязвимости информационной системы, используемые нарушителем для реализации атаки. Иначе средства этой категории называются системами анализа защищенности (security assessment systems) или сканерами безопасности (security scanners). Обычно системы анализа защищенности не принято относить к классу средств обнаружения атак, однако, если следовать описанным выше этапам осуществления атаки, то такое отнесение вполне логично.

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

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

Рисунок 1. Классификация систем обнаружения атак по этапу осуществления атаки

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

Application IDS (Intrusion Detection System ), обнаруживающие атаки на конкретные приложения;

OS IDS, обнаруживающие атаки на операционные системы;

DBMS IDS, обнаруживающие атаки на системы управления базами данных.

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

Можно заметить, что это деление соответствует уровням информационной системы предприятия.

Рисунок 2. Классификация систем обнаружения атак по принципу реализации

Системы контроля целостности

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

Обманные системы

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

Сокрытие

Камуфляж

Дезинформация

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

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

Работа систем 2 и 3 их реализующих заключается в том, что эти системы эмулируют те или иные известные уязвимости, которых в реальности не существует. Использование средств (deception systems), реализующих камуфляж и дезинформацию, приводит к следующему:

1. Увеличение числа выполняемых нарушителем операций и действий. Так как заранее определить является ли обнаруженная нарушителем уязвимость истинной или нет, злоумышленнику приходится выполнять много дополнительных действий, чтобы выяснить это. И даже дополнительные действия не всегда помогают в этом. Например, попытка запустить программу подбора паролей (например, Crack для Unix или L0phtCrack( LC ) для Windows) на сфальсифицированный и несуществующий в реальности файл, приведет к бесполезной трате времени без какого-либо видимого результата. Нападающий будет думать, что он не смог подобрать пароли, в то время как на самом деле программа "взлома" была просто обманута.

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

Например, в информационной системе используются от 5 до 10 зарезервированных портов (с номерами от 1 до 1024). К ним можно отнести порты, отвечающие за функционирование сервисов HTTP, FTP, SMTP, NNTP, NetBIOS, Echo, Telnet и т.д. Если обманные системы (например, RealSecure компании ISS) эмулируют использование еще 100 и более портов, то работа нападающего резко увеличивается и злоумышленник обнаружит не 5-10, а 100 открытых портов. При этом мало обнаружить открытый порт, надо еще попытаться использовать уязвимости, связанные с этим портом. И даже если нападающий автоматизирует эту работу путем использования соответствующих программных средств (Nmap, SATAN и т.д.), то число выполняемых им операций все равно существенно увеличивается, что приводит к быстрому снижению производительности его работы.

Средства анализа защищенности

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

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

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

Этапы жизненного цикла ИС

Проектирование ИС

Уязвимости проектирования

Реализация ИС

Уязвимости реализации

Эксплуатация ИС

Уязвимости конфигурации

Наиболее опасны уязвимости проектирования, которые обнаруживаются и устраняются с большим трудом. В этом случае, уязвимость свойственна проекту или алгоритму и, следовательно, даже совершенная его реализация (что в принципе невозможно) не избавит от заложенной в нем уязвимости. Например, уязвимость стека протоколов TCP/IP.

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

Последняя причина возникновения уязвимостей - ошибки конфигурации программного или аппаратного обеспечения. К их числу можно отнести, например, доступный, но не используемый на узле сервис Telnet, использование "слабых" паролей или паролей менее 6 символов, учетные записи (accounts) и пароли, остановленные по умолчанию (например, SYSADM или DBSNMP в СУБД Oracle), и т.д. Обнаружить и исправить такие уязвимости проще всего.

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

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

Системы имитации атак с одинаковым успехом обнаруживают не только уязвимости реализации, но и уязвимости эксплуатации. Функционировать системы анализа защищенности, в частности системы поиска уязвимостей реализации и эксплуатации, могут на всех уровнях информационной инфраструктуры любой компании, то есть на уровне сети, операционной системы, СУБД и прикладного программного обеспечения. Наибольшее распространение получили средства анализа защищенности сетевых сервисов и протоколов. Связано это, в первую очередь, с универсальностью используемых протоколов. Изученность и повсеместное использование таких стеков протоколов, как TCP/IP и т.п. позволяют с высокой степенью эффективности проверять защищенность корпоративной сети, работающей в данном сетевом окружении, независимо от того, какое программное обеспечение функционирует на более высоких уровнях. Примером такой системы является Internet Scanner компании ISS. Вторыми по распространенности являются средства анализа защищенности операционных систем. Связано это также с универсальностью и распространенностью некоторых операционных систем (например, UNIX и Windows). Однако, из-за того, что каждый производитель вносит в операционную систему свои изменения (ярким примером является множество разновидностей ОС UNIX), средства анализа защищенности ОС анализируют в первую очередь параметры, характерные для всего семейства одной ОС. И лишь для некоторых систем анализируются специфичные для нее параметры. Примером такой системы является System Scanner компании ISS.

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

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

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

Таблица 2. Средства анализа защищенности.

Название

Производитель

Примечание

Internet Scanner

Internet Security Systems

На уровне сети

Первая система, получившая сертификат ГТК. По системе существует авторизованное обучение в России.

System Scanner

Internet Security Systems

На уровне ОС

Database Scanner

Internet Security Systems

На уровне СУБД

Cisco Secure Scanner

Cisco Systems

На уровне сети

CyberCop Scanner

Network Associates

На уровне сети

WebTrends Security Analyzer

WebTrends Corporation

На уровне сети

Enterprise

Security Manager

Symantec

На уровне ОС

SFProtect

Hewlett Packard

На уровне сети, ОС, СУБД

Nessus

Свободно распространяется

На уровне сети

Система имеет сертификат ГТК.

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

Существует два основных механизма, при помощи которых сканер проверяет наличие уязвимости - сканирование (scan) и зондирование (probe).

Сканирование - механизм пассивного анализа, с помощью которого сканер пытается определить наличие уязвимости без фактического подтверждения ее наличия - по косвенным признакам. Этот метод является наиболее быстрым и простым для реализации. В терминах компании ISS данный метод получил название "логический вывод" (inference). Согласно компании Cisco этот процесс идентифицирует открытые порты, найденные на каждом сетевом устройстве, и собирает связанные с портами заголовки (banner), найденные при сканировании каждого порта. Каждый полученный заголовок сравнивается с таблицей правил определения сетевых устройств, операционных систем и потенциальных уязвимостей. На основе проведенного сравнения делается вывод о наличии или отсутствии уязвимости.

Зондирование - механизм активного анализа, который позволяет убедиться, присутствует или нет на анализируемом узле уязвимость. Зондирование выполняется путем имитации атаки, использующей проверяемую уязвимость. Этот метод более медленный, чем "сканирование", но почти всегда гораздо более точный, чем он. В терминах компании ISS данный метод получил название "подтверждение" (verification). Согласно компании Cisco этот процесс использует информацию, полученную в процессе сканирования ("логического вывода"), для детального анализа каждого сетевого устройства. Этот процесс также использует известные методы реализации атак для того, чтобы полностью подтвердить предполагаемые уязвимости и обнаружить другие уязвимости, которые не могут быть обнаружены пассивными методами, например подверженность атакам типа "отказ в обслуживании" ("denial of service").

На практике указанные механизмы реализуются следующими несколькими методами.

"Проверка заголовков" (banner check)

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

"Активные зондирующие проверки" (active probing check)

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

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

Этот метод также достаточно быстр, но реализуется труднее, чем "проверка заголовков".

"Имитация атак" (exploit check)

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

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

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

Однако, есть некоторые уязвимости, которые просто не могут быть протестированы без возможного выведения из строя сервиса или компьютера. В этом случае такие проверки выключены и пользователь может сам включить их. Например, в Internet Scanner такого рода проверки выделены в отдельную категорию "Denial of service" ("Отказ в обслуживании").

Этапы сканирования

Практически любой сканер проводит анализ защищенности в несколько этапов:

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

Обнаружение потенциальных уязвимостей. Сканер использует описанную выше базу данных для сравнения собранных данных с известными уязвимостями при помощи проверки заголовков или активных зондирующих проверок. В некоторых системах все уязвимости ранжируются по степени риска. Например, в Internet Scanner уязвимости делятся на три степени риска: высокая (High), средняя (Medium) и низкая (Low).

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

Генерация отчетов.

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

В любом случае у администратора, осуществляющего поиск уязвимостей, есть несколько вариантов использования системы анализа защищенности:

  • Запуск сканирования только с проверками на потенциальные уязвимости (этапы 1,2 и 4). Это дает предварительное ознакомление с системами в сети. Этот метод является гораздо менее разрушительным по сравнению с другими и также является самым быстрым.
  • Запуск сканирования с проверками на потенциальные и подтвержденные уязвимости. Этот метод может вызвать нарушение работы узлов сети во время реализации проверок типа "exploit check".

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

Комбинации вышеперечисленного.

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

Наличие в отчетах, как текстовой информации, так и графических данных.

Наличие в отчетах информации об обнаруженной уязвимости, вариантах ложного обнаружения, наличие рекомендаций по устранению обнаруженных проблем, ссылках на сервера производителей, дополнительной информации. Во многих случаях отчеты также содержат ссылки на FTP- или Web-сервера, содержащие patch"и и hotfix"ы, устраняющие обнаруженные уязвимости.

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

Возможность сортировки данных в создаваемых отчетах по различным параметрам (по имени, по дате, по степени риска и т.д.).

Возможность создания отчетов для различных категорий специалистов. Как минимум можно выделить три таких категории: руководство компании, руководство среднего звена и технические специалисты. В отчетах первой категории не содержится никакой технической информации об обнаруженных уязвимостях или атаках. Они содержат описание общего состояния защищенности корпоративной сети. Отчеты второй категории могут содержать более подробную техническую информацию, например, описание обнаруженных уязвимостей или атак, но без указания мер по их устранению. К данной категории также относятся так называемые сравнительные отчеты (trend analysis), которые показывают тенденции в изменении уровня защищенности заданных узлов корпоративной сети. К последней категории отчетов можно отнести технические отчеты, содержащие не только подробное описание каждой из обнаруженных проблем, но и рекомендации по их устранению, а также ссылки на дополнительные источники информации. Такие категории отчетов приняты, например, в Internet Scanner и Cisco Secure Scanner.

Поддержка различных форматов создаваемых отчетов.

Особенности применения

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

Для решения этой проблемы некоторые компании-производители пошли по пути предоставления своим пользователям нескольких систем анализа защищенности, работающих на всех указанных выше уровнях, - сетевом, системном и уровне приложений. Совокупность этих систем позволяет с высокой степенью эффективности обнаружить практически все известные уязвимости. Например, компания Internet Security Systems предлагает семейство SAFEsuite, состоящее из четырех сканеров: Internet Scanner, System Scanner, Security Manager и Database Scanner.

Компания Cisco, предлагающая только систему анализа защищенности на уровне сети пошла другим путем для устранения проблемы ложного срабатывания. Она делит все уязвимости на два класса:

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

Подтвержденные - выявленные и существующие на анализируемом хосте.

Проверки на потенциальную уязвимость проводятся через коллекцию заголовков и использование "несильных подталкиваний". "Подталкивание" используется для сервисов, не возвращающих заголовки, но реагирующих на простые команды, например, посылка команды HEAD для получения версии HTTP-сервера.

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

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

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

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

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

Способ, которым был скомпилирован анализируемый демон или сервис.

Ошибки удаленной системы.

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

Меры безопасности при использовании протоколов TCP / IP

1 .Фильтрация на маршрутизаторе

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

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

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

2.Анализ сетевого трафика

Анализ сетевого трафика проводится для обнаружения атак, предпринятых злоумышленниками, находящимися как в сети организации, так и в Интернете.

3.Защита маршрутизатора

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

4.Защита хоста

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

5.Превентивное сканирование

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

Общие меры по повышению безопасности сети

  1. Оперативная установка исправлений для программ (Patching) . Системные администраторы должны защищать самые важные свои системы, оперативно устанавливая исправления для программ на них. Тем не менее, установить исправления для программ на всех хостах в сети трудно, так как исправления могут появляться достаточно часто. В этом случае надо обязательно вносить исправления в программы на самых важных хостах.
    1. Обнаружение вирусов и троянских коней. Для максимальной эффективности они должны быть установлены на всех компьютерах в сети. На установку антивирусных программ на всех компьютерах и регулярное обновление антивирусных баз в них может уходить достаточно много времени - но иначе это средство не будет эффективным. Пользователей следует учить, как им самим делать эти обновления, но при этом нельзя полностью полагаться на них. Помимо обычной антивирусной программы на каждом компьютере мы необходимо сканирование приложений к электронным письмам на почтовом сервере. Таким образом можно обнаружить большинство вирусов до того, как они достигнут машин пользователей.
    2. Межсетевые экраны Межсетевые экраны - самое важное средство защиты сети организации. Они контролируют сетевой трафик, входящий в сеть и выходящий из нее. Межсетевой экран может блокировать передачу в сеть какого-либо вида трафика или выполнять те или иные проверки другого вида трафика. Хорошо сконфигуированный межсетевой экран в состоянии остановить большинство известных компьютерных атак.
    3. Вскрыватели паролей (Password Crackers) Хакеры часто используют малоизвестные уязвимые места в компьютерах для того, чтобы украсть файлы с зашифрованными паролями. Затем они используют специальные программы для вскрытия паролей, которые могут обнаружить слабые пароли в этих зашифрованных файлах. Хотя это средство используются злоумышленниками, оно будет также полезно и системным администраторам, чтобы своевременно обнаружить слабые пароли.
    4. Шифрование. Атакующие часто проникают в сети с помощью прослушивания сетевого трафика в наиболее важных местах и выделения из него имен пользователей и их паролей. Поэтому соединения с удаленными машинами, защищаемые с помощью пароля, должны быть зашифрованы. Это особенно важно в тех случаях, если соединение осуществляется по Интернет или с важным сервером. Имеется ряд коммерческих и бесплатных программ для шифрования трафика TCP/IP (наиболее известен SSH).
    5. Сканеры уязвимых мест. Это программы, которые сканируют сеть в поисках компьютеров, уязвимых к определенным видам атак. Сканеры имеют большую базу данных уязвимых мест, которую они используют при проверке того или иного компьютера на наличие у него уязвимых мест.
    6. Грамотное конфигурирование компьютеров в отношении безопасности.
    7. Средства для поиска подключенных модемов. Для поиска подключенных модемов атакующие могут использовать программы обзвонки большого числа телефонных номеров. Так как пользователи обычно конфигурируют свои компьютеры сами, они часто оказываются плохо защищенными и дают атакующему еще одну возможность для организации атаки на сеть. Системные администраторы должны регулярно использовать программы для проверки телефонных номеров своих пользователей и обнаружения сконфигурированных подобным образом компьютеров.
    8. Рекомендации по безопасности (security advisories) Рекомендации по безопасности - это предупреждения, публикуемые группами по борьбе с компьютерными преступлениями и производителями программ о недавно обнаруженных уязвимых местах. Рекомендации обычно описывают самые серьезные угрозы, возникающие из-за этих уязвимых мест и поэтому являются занимающими мало времени на чтение, но очень полезными. Они описывают угрозу и дают довольно конкретные советы о том, что нужно сделать для устранения данного уязвимого места. Двумя самыми полезными являются рекомендации, которые публикует группа по борьбе с компьютерными преступлениями CIAC и CERT
    9. Средства обнаружения атак (Intrusion Detection) Системы обнаружения атак оперативно обнаруживают компьютерные атаки. Они могут быть установлены за межсетевым экраном, чтобы обнаруживать атаки, организуемые изнутри сети. Или они могут быть установлены перед межсетевым экраном, чтобы обнаруживать атаки на межсетевой экран. Средства этого типа могут иметь разнообразные возможности.
    10. Средства выявления топологии сети и сканеры портов . Эти программы позволяют составить полную картину того, как устроена ваша сеть и какие компьютеры в ней работают, а также выявить все сервисы, которые работают на каждой машине. Атакующие используют эти средства для выявления уязвимых компьютеров и программ на них. Системные администраторы должны использовать эти средства для наблюдения за тем, какие программы и на каких компьютерах работают в их сети. С их помощью можно обнаружить неправильно сконфигурированные программы на компьютерах и установить исправления на них.
    11. Инструкции по действию в критических ситуациях. В каждой сети, независимо от того, насколько она безопасна, происходят какие-либо события, связанные с безопасностью (может быть даже ложные тревоги). Сотрудники организации должны заранее знать, что нужно делать в том или ином случае.
    12. Политики безопасности. Организации должны написать политику безопасности, в которой определялся бы ожидаемый уровень защиты, который должен быть везде единообразно реализован. Самым важным аспектом политики является выработка единых требований к тому, какой трафик должен пропускаться через межсетевые экраны сети. Также политика должна определять как и какие средства защиты (например, средства обнаружения атак или сканеры уязвимых мест) должны использоваться в сети. Для достижения единого уровня безопасности политика должна определять стандартные безопасные конфигурации для различных типов компьютеров.
    13. Тестирование межсетевых экранов и WWW-серверов на устойчивость к попыткам их блокирования. Атаки на блокирование компьютера распространены в Интернет. Атакующие постоянно выводят из строя WWW-сайты, перегружают компьютеры или переполняют сети бессмысленными пакетами. Сети, заботящиеся о безопасности, могут организовать атаки против себя сами, чтобы определить, какой ущерб может быть нанесен им.

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

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

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

Классификация уязвимостей

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

Источники возникновения уязвимостей

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

Другая часть уязвимостей возникает на этапе реализации (программирования). К таким уязвимостям относятся, например, ошибки программирования стека TCP/IP приводящие к отказу в обслуживании. Сюда следует отнести и ошибки при написании приложений, приводящие к переполнению буфера.

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

Классификация уязвимостей по уровню в инфраструктуре АС

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

К уровню сети относятся уязвимости сетевых протоколов - стека TCP/IP, протоколов NetBEUI , IPX / SPX .

Уровень операционной системы охватывает уязвимости Windows , UNIX , Novell и т. д., т.е. конкретной ОС.

На уровне баз данных находятся уязвимости конкретных СУБД - Oracle , MSSQL , Sybase . Этот уровень рассматривается отдельно, потому что базы данных, как правило, являются неотъемлемой частью любой компании.

К уровню приложений относятся уязвимости программного обеспечения WEB , SMTP серверов и т. п.

Классификация уязвимостей по степени риска

Этот вариант классификации достаточно условный, однако, если придерживаться взгляда компании Internet Security Systems , можно выделить три уровня риска:

Высокий уровень риска

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

Средний уровень риска

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

Низкий уровень риска

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

Информацию об известных обнаруженных уязвимостях можно найти на сайтах, таких как:

www.iss.net - компания Internet Security Systems (ISS); www.cert.org - координационный центр CERT;

www . sans . org - институт системного администрирования, сетевых технологий и защиты;

www . ciac . org - группа реагирования на инциденты в области компьютерной безопасности;

www . securityfocus . com - информация об обнаруженных уязвимостях с подробными пояснениями и группой новостей.

Примеры уязвимостей (база данных компании ISS ) Название: nt - getadmin - present

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

Уровень: ОС

Степень риска: высокая

Источник возникновения: ошибки реализации

Название : ip-fragment-reassembly-dos

Описание: посылка большого числа одинаковых фрагментов IP -датаграммы приводит к недоступности узла на время атаки

Уровень: сеть

Степень риска: средняя

Источник возникновения: ошибки реализации

Что такое CVE ?

Common Vulnerabilities and Exposures (CVE) - это список стандартных названий для общеизвестных уязвимостей. Основное назначение CVE - это согласование различных баз данных уязвимостей и инструментов, использующих такие базы данных. Например, одна и та же уязвимость может иметь различные названия в базе данных Internet Scanner и CyberCop Scanner . Появление CVE - это результат совместных усилий известных мировых лидеров в области информационной безопасности: институтов, производителей ПО и т.д. Поддержку CVE осуществляет MITRE Corporation (www . mitre . org).

Процесс получения индекса CVE (CVE entry) начинается с обнаружения уязвимости. Затем уязвимости присваивается статус кандидата CVE и соответствующий номер (CVE candidate number). После этого происходит обсуждение кандидатуры при помощи CVE Editorial Board и вынесение решения о получении или неполучении индекса CVE .

CVE кандидат

С кандидатом CVE ассоциируются номер, краткое описание и ссылки. Номер, также называемый именем, состоит из года и уникального индекса, например, CAN -1999-0067. После утверждения кандидатуры аббревиатура « CAN » заменяется на « CVE ».

CVE entry

После получения статуса CVE entry уязвимости присваиваются номер, краткое описание и ссылки, например, CVE -1999-0067. И затем она публикуется на сайте. Зная индекс CVE , можно быстро найти описание уязвимости и способы её устранения.

Примеры

CVE-1999-0005

Arbitrary command execution via IMAP buffer overflow in authenticate command.

Reference: CERT:CA-98.09.imapd Reference: SUN:00177. Reference: BID: 130 Reference: XF:imap-authenticate-bo

CVE-2000-0482

Check Point Firewall-1 allows remote attackers to cause a denial of service by sending a large number of malformed fragmented IP packets.

Reference: BUGTRAQ:20000605 FW-1 IP Fragmentation Vulnerability

Reference:CONFIRM:

http://www.checkpoint.com/techsupport/alerts/list_vun#IP_Fragmentation

Reference: BID: 1312

Reference: XF:fw1-packet-fragment-dos

Подробнее узнать о CVE и получить список CVE entry можно по адресу: http://cve .mitre .org /cve .

Array ( => Y => Y => Y => Y => presscenter => 23 => Array () => Array ( => Otype => linked_products => linked_service => linked_solutions) => /press-center/article/#ELEMENT_ID#/ => - => - => - => => 1 => N => 1 => 1 => d.m.Y => A => 3600 => Y => => Array ( => 1) => => 1 => Страница => => => 1 => 1 => 10023 => => /press-center/article/ => N => => => => => => /press-center/article/ => ACTIVE_FROM => DESC => ID => DESC [~DISPLAY_DATE] => Y [~DISPLAY_NAME] => Y [~DISPLAY_PICTURE] => Y [~DISPLAY_PREVIEW_TEXT] => Y [~IBLOCK_TYPE] => presscenter [~IBLOCK_ID] => 23 [~FIELD_CODE] => Array ( => =>) [~PROPERTY_CODE] => Array ( => Otype => linked_products => linked_service => linked_solutions) [~DETAIL_URL] => /press-center/article/#ELEMENT_ID#/ [~META_KEYWORDS] => - [~META_DESCRIPTION] => - [~BROWSER_TITLE] => - [~DISPLAY_PANEL] => [~SET_TITLE] => Y [~SET_STATUS_404] => N [~INCLUDE_IBLOCK_INTO_CHAIN] => Y [~ADD_SECTIONS_CHAIN] => Y [~ACTIVE_DATE_FORMAT] => d.m.Y [~CACHE_TYPE] => A [~CACHE_TIME] => 3600 [~CACHE_GROUPS] => Y [~USE_PERMISSIONS] => N [~GROUP_PERMISSIONS] => [~DISPLAY_TOP_PAGER] => N [~DISPLAY_BOTTOM_PAGER] => Y [~PAGER_TITLE] => Страница [~PAGER_SHOW_ALWAYS] => N [~PAGER_TEMPLATE] => [~PAGER_SHOW_ALL] => Y [~CHECK_DATES] => Y [~ELEMENT_ID] => 10023 [~ELEMENT_CODE] => [~IBLOCK_URL] => /press-center/article/ [~USE_SHARE] => N [~SHARE_HIDE] => [~SHARE_TEMPLATE] => [~SHARE_HANDLERS] => [~SHARE_SHORTEN_URL_LOGIN] => [~SHARE_SHORTEN_URL_KEY] => [~SEF_FOLDER] => /press-center/article/ [~SORT_BY1] => ACTIVE_FROM [~SORT_ORDER1] => DESC [~SORT_BY2] => ID [~SORT_ORDER2] => DESC =>)

Практические аспекты выявления уязвимостей программного обеспечения

Виктор Сердюк,
кандидат технических наук, CISSP,
Генеральный директор ЗАО «ДиалогНаука»

Издание «Information Security» №3 за 2013 год
www.itsec.ru

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

Ни для кого не секрет, что с каждым годом увеличивается количество уязвимостей, которые обнаруживаются в прикладном программном обеспечении (ПО). При этом растет не только их количество, но и их разновидность. Так, например, по данным компании Hewlett Packard на сегодняшний день можно выделить более 500 классов различных уязвимостей в ПО. Примерами таких уязвимостей являются «переполнение буфера» (buffer overflow), SQL injection, Cross Site Scripting и многие другие.

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

Наименование этапа разработки ПО Стоимость устранения уязвимости
1 Разработка технического задания $ 139
2 Проектирование ПО $ 455
3 Разработка ПО (программирование) $ 977
4 Тестирование ПО $ 7 136
5 Техническое сопровождение ПО $ 14 102

Стоимость устранения уязвимостей на различных этапах разработки ПО

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

Средства статического анализа

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

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

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

Процесс использования средства статического анализа безопасности ПО

Примерами систем, которые реализуют данный метод анализа, являются HP Fortify и IBM AppScan. Данные решения позволяют полностью автоматизировать процесс анализа исходного кода, интегрируются во все наиболее распространенные среды разработки ПО, а также позволяют идентифицировать конкретные участки кода, содержащие уязвимость, и предложить рекомендации по её устранению. В качестве рекомендаций приводятся примеры фрагментов исходного кода, в котором показано, как исправить ту или иную уязвимость. Как правило, решения подобного класса поддерживают возможность анализа исходного кода, написанного на различных языках программирования. Так, например, решение HP Fortify поддерживает более 20-ти различных видов языков программирования, начиная от COBOL, заканчивая C#.

Средства динамического анализа

Динамический анализ предполагает проведение тестирования уже скомпилированного ПО и функционирующего в определенной среде. Для решения данной задачи, в частности, могут использоваться специализированные сканеры безопасности, которые моделируют возможные атаки злоумышленников, а также анализируют конфигурационные файлы ПО. Динамический анализ позволяет выявлять не только технологические, но и эксплуатационные уязвимости, связанные с неправильной настройкой ПО. К таким уязвимостям можно отнести: использование слабых и нестойких к угадыванию паролей доступа, наличие неиспользуемых учетных записей, неправильно настроенные функции безопасности ПО и др. В качестве примеров продуктов, реализующих функционал динамического анализа, можно привести решения Max Patrol (компании Positive Technologies) и Qualis (компании Qualys, Inc.).

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

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

Комплексный подход

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

При этом анализ безопасности ПО, безусловно, должен стать частью комплексного подхода к обеспечению информационной безопасности компании в целом. Требования о необходимости проведения такого рода анализа уже прописаны в ряде стандартов по защите информации, в частности в PCI DSS и СТО БР ИББС. Это означает, что помимо использования инструментальных средств статического или динамического анализа необходимо также наличие документированных процедур, которые описывают процессы, связанные с разработкой безопасного ПО. За основу таких процедур можно взять рекомендации ведущих компаний-разработчиков ПО, таких как Microsoft или EMC, которые внедрили у себя и создали специальные рекомендации по организации процесса разработки безопасного ПО – SDL (Security Development Lifecycle). Эти рекомендации в том числе включают в себя процедуры повышения осведомленности разработчиков о проблемах, связанных с созданием небезопасного кода. Конечным результатом внедрения всех этих процедур должно являться повышение качества разрабатываемого кода, в том числе и с точки зрения информационной безопасности.

Заключение

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

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

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

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

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

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

Компьютерные системы являются несовершенными, они уязвимы для многих угроз, а ущерб от атак может оказаться значительным. Атаки бывают разнообразными: одни нарушают конфиденциальность или целостность данных, другие способны сделать систему недоступной для пользователей. Несмотря на снижение по сравнению с прошлым годом убытков от атак, величина их все еще остается значительной. Согласно данным Computer Security Institute, убытки от вирусов стоят на третьем месте с долей 13%, после кражи информации и атак, вызывающих отказ в обслуживании (DoS). Однако дать их точную оценку в сфере компьютерной безопасности невозможно, поскольку многие потери никогда не будут обнаружены, данные о других просто прячутся в дальний ящик стола и забываются или скрываются от руководства во избежание неприятностей.

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

Следующая задача, с которой сталкивается каждый сетевой администратор после обнаружения уязвимости, — это очередность установки заплаток, и она является сложнее предыдущей. Каждый раз существует риск несовместимости внесенного изменения с функционирующим ПО. Многообразие архитектур и рост корпоративных сетей повышают сложность этой задачи, требуя от компаний значительных средств и времени. Управление заплатками — часть большой главы "Управление конфигурациями" из библиотеки ITIL (IT Infrastructure Library) и, согласно исследованиям META Group, стоит на третьем месте в списке приоритетов ИТ-менеджеров (после мониторинга сети и распространения ПО на рабочие станции). Поиск уязвимостей — одна из задач аудита безопасности, куда также может входить тест на вторжение в систему. В свою очередь, и обнаруженные в результаты аудита уязвимости являются входными данными для оценки имеющихся рисков.

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

Часть отчета Nessus о найденных уязвимостях в Unix-системе

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

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

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

  1. Ложные срабатывания. Наиболее подходящее средство борьбы здесь — ручная проверка каждой найденной критической уязвимости путем инспекции индивидуальных систем, но она занимает длительное время. Использование нескольких анализаторов также уменьшит этот показатель. Вы получите разные результаты, если, например, попробуете сканировать сеть Windows с правами администратора или обычного пользователя.
  2. Пропуск уязвимостей. Лучший способ решить эту проблему — использовать последние версии программ с обновленными подключаемыми модулями и запустить два-три сканера. Ведь каждый из них может найти лишь то, что знает.
  3. Недостаточная интеллектуальность. Лучше всего полагаться на мнение аналитика безопасности для принятия окончательных решений, чем на кусок программного кода, который не может видеть и оценить глобально состояние защищенности вашей организации.

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

Активные сканеры

До нажатия кнопки Старт вам придется сделать несколько подготовительных шагов. В первую очередь необходимо ограничить число проверок самыми важными и имеющими отношение к вашей корпоративной сети. После нескольких итераций количество проверок уменьшится с тысяч до нескольких сотен. Опыт также вскоре научит вас, что некоторые проверки чаще дают ложное срабатывание в определенных ситуациях, чем другие. Здесь следует отметить один существенный момент — не стоит полагаться на результаты только автоматизированного сканирования как основы для отчета о результатах аудита. Обнаруженные уязвимости являются лишь исходными данными для проведения дальнейшего расследования путем дополнительного тестирования или непосредственного инспектирования индивидуальных систем. Здесь можно порекомендовать использование нескольких сканеров безопасности или других средств проверки, например бесплатной утилиты nmap для анализа открытых портов или MBSA и HFNETCHECK от Microsoft для среды Windows.

Мы начнем свой краткий обзор активных сканеров с самого популярного некоммерческого продукта — Nessus для ОС Unix— и NeWT (Nessus on Windows Technology) — его аналога для платформы Windows. Оба бесплатны, однако если требуется сканировать сеть размером больше, чем класс C, и при этом пользоваться технической поддержкой производителя, то лицензию NeWT придется оплатить. Nessus является воистину коллективным проектом — более 50 тыс. пользователей внесли в него те или иные модификации за всю историю его существования.

Nessus/NeWT имеют в своем арсенале такое количество опций для сканирования и конфигурации, что отпугивают многих. Оба продукта осуществляют почти 3 тыс. уникальных тестов, которые позволяют аналитику безопасности проверить самые разнообразные уязвимости, в частности backdoors, CGI-злоупотребления, DoS, RPC, SNMP, SMTP, получение доступа к удаленному компьютеру, в том числе и привилегированного, дыр в secure shell и Web-серверах. У обоих продуктов присутствует опция запрета выполнения опасных проверок, которые могут привести к сбоям тестируемых сервисов, зависанию и даже краху системы.

Несмотря на аналогичные технологии сканирования, продукты все же несколько разнятся. Nessus основана на клиент-серверной архитектуре, и пользователям доступна административная консоль, которая позволяет запускать на выполнение задачи сканирования, сохраняя при этом базы данных на других машинах, а не на сервере. Графическая консоль пользователя может базироваться на Java, Win32 или X11. NeWT хранит результаты проверок на той машине, где была установлена. Для получения более точной и детальной информации о системах в Windows-домене мы рекомендуем создать доменную группу и пользователя с привилегированными правами доступа к удаленному реестру, что позволит определить версию пакета обновлений (Service Pack) на удаленных системах и уязвимости Internet Explorer.

Результаты сканирования могут быть представлены в различных форматах (в виде HTML-файла для NeWT) и классифицируются по степеням опасности обнаруженных уязвимостей: высокая, средняя, низкая и информационное сообщение. Каждая уязвимость сопровождается текстом, объясняющим суть проблемы и описывающим способ ее устранения. Это дополняется ссылками на список Common Vulnerabilities and Exposures (CVE), и Microsoft TechNet , предлагая администраторам доступ к дополнительной информации и заплаткам.

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

Одним из главных конкурентов рассмотренных продуктов является Retina Network Security Scanner разработки компании eEye Digital Security. Это полнофункциональный сканер безопасности с набором разнообразных тестов для платформ Unix и Windows, он также включает возможности автоматической коррекции многих обнаруженных проблем и создания собственных задач аудита.

С помощью функции автоматической коррекции администраторы с соответствующими правами могут легко исправлять реестр и решать проблемы доступа на удаленных узлах в сети. Также впечатляет функция аудита, позволяющая разработать свои запросы об обнаруженных ранее уязвимостях, которые вы вынуждены временно оставить в вашей сети. Как и при работе с Nessus, есть возможность выбрать один из имеющихся в наборе аудитов или создавать свои для осуществления специфических проверок. Сканирование проходит очень быстро и достаточно аккуратно, однако результаты иногда противоречат друг другу. Например, порты, фигурирующие как открытые в одном сеансе сканирования, в другом могут быть определены как закрытые (при отсутствии каких-либо изменений), бывает, что устраненные проблемы возвращаются в отчетах как существующие. Справедливости ради следует отметить, что при этом ведется детальный журнал, помогающий определить, были ли установлены те или иные заплатки. Некоторые уязвимости могут быть проверены только в том случае, если попробовать реализовать угрозу посредством специальных программ (exploits), что несет в себе большой риск. Поэтому лучше использовать дополнительные средства для проверок, например утилиту nmap, которую Retina применяет для сканирования портов в своем движке. Замечено, что сканер выдает ряд ложных срабатываний, если пользователь имеет права доступа к определенной системе или является администратором домена в сетях Windows. Однако без аутентификации продукт предоставляет надежные результаты, что, возможно, связано с проверкой наличия определенных файлов в системе, а не проверкой работы соответствующих сервисов.

Retina представляет результаты сканирования в удобной для восприятия форме, по которой легко передвигаться, и предлагает ссылки на BugTrack, CVE и Microsoft Security bulletin для каждой из уязвимостей. Отчет также можно перекроить на свой лад — довольно редкая черта среди сканеров. Retina устанавливается только на платформе Windows.

C помощью GFI LANguard Network Security Scanner пользователи в состоянии решить задачу сканирования начального уровня. Этому продукту недостает ряда расширенных возможностей, как у Retina, и у него нет такого количества тестов и такой глубины проверки некоторых критичных мест и сервисов, как у Nessus/NeWT. Ложным срабатыванием болеют все сканеры, и GFI не исключение (например, по его мнению, проблема SNMP public community присуща любому сетевому устройству).

Подобно Retina, GFI группирует результаты по категориям и уязвимостям с рекомендацией по их устранению и ссылками на BugTrack, CVE и Microsoft Security bulletin. Генератор отчетов также позволяет создать и сформировать персональные отчеты и сравнить отчеты за два периода для определения изменений в найденных уязвимостях.

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

Такие сканеры, как SARA, SAINT, Netrecon, NetIQ Security Analyzer, xSpider, также заслуживают внимания, однако остались за пределами нашего обзора. Автору представляется наиболее перспективным применение комбинации Nessus/NeWT и Retina, что является выбором многих пользователей при необходимости сочетать эффективность с производительностью.

Пассивные сканеры

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

Пассивный сканер уязвимостей NeVO в действии
Взаимодействие IDS-сенсоров и пассивных сканеров

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

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

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

Другая важная задача, стоящая перед пассивными сканерами, — корреляция событий от IDS. Последние известны своими проблемами не меньше, чем своими успехами, а именно — ложными срабатываниями, которые в состоянии свести многих аналитиков безопасности с ума и вызывают желание отключить IDS вообще. Реакция производителей не заставила себя ждать. Новая технология сопоставляет приходящую информацию об атаках со знаниями о сетевой технологии, операционных системах и приложениях. Три компании —Internet Security Systems, Cisco и Tenable Network Security — вышли на рынок с продуктами, спроектированными для превращения IDS в более надежную и интеллектуальную технологию, минимизирующую число сигнатур и тревожных сообщений. Например, нет смысла генерировать тревожное сообщение об атаке на систему вируса/червя, против которого она защищена соответствующей заплаткой. Таким образом, фильтрация ненужных сообщений уменьшает время, необходимое на их проверку, с часов до минут ежедневно. Однако, как и всякая фильтрующая система, данная технология имеет свои собственные ложные срабатывания, иногда пропуская важную информацию. Вкратце опишем каждое из решений.

Tenable Lightning Console позволяет осуществлять корреляцию уязвимостей, обнаруженных активными (NeWT/Nessus) и пассивными (NeVO) сканерами, с событиями, которые генерируют системы IDS (Snort, Dragon, ISS, Intrushield и др.). Lightning Console классифицирует каждое событие как опасное или неопасное, что может привести к пропуску критической проблемы в том случае, если сканер безопасности отстает от IDS в сборе актуальной информации. Эта проблема значительно уменьшается при комбинировании активного и пассивного сканирований.

ISS Fusion — продукт, подавляющий или пропускающий тревожные сообщения от сенсоров IDS Proventia Appliance или RealSecure, основываясь на информации, собранной ISS Internet Scanner. Такое решение объединяет управление посредством консоли ISS Site Protector, которая контролирует сенсоры NIDS и HIDS и Internet Scanner. ISS Fusion, пользуясь информацией, полученной от Internet Scanner, пытается оценить возможность успешной атаки с высокой степенью вероятности. Программа классифицирует тревожные сообщения по четырем уровням — "Вероятность успеха", "Ве-роятность неудачи", "Атака провалилась" и "Не знаю". SiteProtector, располагая большим числом мощных фильтров, предлагает аналитику почти неограниченное число опций для работы с событиями.

Cisco Threat Response — самостоятельный продукт в линейке компании. Он может быть интегрирован с управляющей консолью IDS-сенсора и с другими продуктами класса VPN и Security Management Solution. Кроме сенсоров Cisco, также поддерживается ISS Real Secure. Главный недостаток CTR — совмещение поиска уязвимостей и управления в одной компьютерной системе, осложняющее сбор информации и сканирование в больших сетях, особенно разделенных на подсети с помощью брандмауэров и маршрутизаторов.

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

Все три продукта обеспечивают различные подходы к зарождающейся технологии target-based IDS. Fusion всецело зависит от периодического активного сканирования с использованием Internet Scanner, в отличие от CTR, сканирующего жертву после получения тревожного сообщения об атаке, и от Lightning Console, которая использует как пассивное, так и активное сканирование, работая близко к режиму реального времени и достигая наиболее оптимального соотношения скорость реакции/точность.

Скорее всего, в будущем нас ждут продукты, объединяющие технологии пассивного сканирования с технологией IDS/IPS в одной коробке и обеспечивающие более дешевое решение.

Выбор должен быть взвешенным

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

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

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

Небольшим компаниям может быть полезна автоматическая инсталляция заплаток, встроенная в сканеры, однако крупные фирмы предпочтут специализированные системы управления, такие как IBM Tivoli, Criston Precision, CA Unicenter.

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

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

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

Информационная безопасность. Лекция 14.

Выявление уязвимостей компьютерных сетей

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

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

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

Обнаруживать, блокировать и предотвращать атаки можно несколькими путями. Первый, и самый распространенный, способ - это обнаружение уже реализуемых атак. Этот способ применяется в "классических" системах обнаружения атак (например, RealSecure компании Internet Security Systems), межсетевых экранах и т.п. Однако, "недостаток" средств данного класса в том, что атаки могут быть реализованы повторно. Второй путь - предотвратить атаки еще до их реализации. Осуществляется это путем поиска уязвимостей, которые могут быть использованы для реализации атаки. И, наконец, третий путь - обнаружение уже совершенных атак и предотвращение их повторного осуществления. Таким образом, системы обнаружения атак могут быть классифицированы по этапам осуществления атаки (рис.1.):

    Системы, функционирующие на первом этапе осуществления атак и позволяющие обнаружить уязвимости информационной системы, используемые нарушителем для реализации атаки. Иначе средства этой категории называются системами анализа защищенности (security assessment systems) или сканерами безопасности (security scanners). Обычно системы анализа защищенности не принято относить к классу средств обнаружения атак, однако, если следовать описанным выше этапам осуществления атаки, то такое отнесение вполне логично.

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

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

Рисунок 1. Классификация систем обнаружения атак по этапу осуществления атаки

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

    Application IDS (Intrusion Detection System), обнаруживающие атаки на конкретные приложения;

    OS IDS, обнаруживающие атаки на операционные системы;

    DBMS IDS, обнаруживающие атаки на системы управления базами данных.

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

Можно заметить, что это деление соответствует уровням информационной системы предприятия.

Рисунок 2. Классификация систем обнаружения атак по принципу реализации

Системы контроля целостности

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

Обманные системы

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

    Сокрытие

    Камуфляж

    Дезинформация

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

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

Работа систем 2 и 3 их реализующих заключается в том, что эти системы эмулируют те или иные известные уязвимости, которых в реальности не существует. Использование средств (deception systems), реализующих камуфляж и дезинформацию, приводит к следующему:

1. Увеличение числа выполняемых нарушителем операций и действий. Так как заранее определить является ли обнаруженная нарушителем уязвимость истинной или нет, злоумышленнику приходится выполнять много дополнительных действий, чтобы выяснить это. И даже дополнительные действия не всегда помогают в этом. Например, попытка запустить программу подбора паролей (например, Crack для Unix или L0phtCrack(LC) для Windows) на сфальсифицированный и несуществующий в реальности файл, приведет к бесполезной трате времени без какого-либо видимого результата. Нападающий будет думать, что он не смог подобрать пароли, в то время как на самом деле программа "взлома" была просто обманута.

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

Например, в информационной системе используются от 5 до 10 зарезервированных портов (с номерами от 1 до 1024). К ним можно отнести порты, отвечающие за функционирование сервисов HTTP, FTP, SMTP, NNTP, NetBIOS, Echo, Telnet и т.д. Если обманные системы (например, RealSecure компании ISS) эмулируют использование еще 100 и более портов, то работа нападающего резко увеличивается и злоумышленник обнаружит не 5-10, а 100 открытых портов. При этом мало обнаружить открытый порт, надо еще попытаться использовать уязвимости, связанные с этим портом. И даже если нападающий автоматизирует эту работу путем использования соответствующих программных средств (Nmap, SATAN и т.д.), то число выполняемых им операций все равно существенно увеличивается, что приводит к быстрому снижению производительности его работы.

Средства анализа защищенности

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

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

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

Этапы жизненного цикла ИС

Проектирование ИС

Уязвимости проектирования

Реализация ИС

Уязвимости реализации

Эксплуатация ИС

Уязвимости конфигурации

Наиболее опасны уязвимости проектирования, которые обнаруживаются и устраняются с большим трудом. В этом случае, уязвимость свойственна проекту или алгоритму и, следовательно, даже совершенная его реализация (что в принципе невозможно) не избавит от заложенной в нем уязвимости. Например, уязвимость стека протоколов TCP/IP.

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

Последняя причина возникновения уязвимостей - ошибки конфигурации программного или аппаратного обеспечения. К их числу можно отнести, например, доступный, но не используемый на узле сервис Telnet, использование "слабых" паролей или паролей менее 6 символов, учетные записи (accounts) и пароли, остановленные по умолчанию (например, SYSADM или DBSNMP в СУБД Oracle), и т.д. Обнаружить и исправить такие уязвимости проще всего.

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

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

Системы имитации атак с одинаковым успехом обнаруживают не только уязвимости реализации, но и уязвимости эксплуатации. Функционировать системы анализа защищенности, в частности системы поиска уязвимостей реализации и эксплуатации, могут на всех уровнях информационной инфраструктуры любой компании, то есть на уровне сети, операционной системы, СУБД и прикладного программного обеспечения. Наибольшее распространение получили средства анализа защищенности сетевых сервисов и протоколов. Связано это, в первую очередь, с универсальностью используемых протоколов. Изученность и повсеместное использование таких стеков протоколов, как TCP/IP и т.п. позволяют с высокой степенью эффективности проверять защищенность корпоративной сети, работающей в данном сетевом окружении, независимо от того, какое программное обеспечение функционирует на более высоких уровнях. Примером такой системы является Internet Scanner компании ISS. Вторыми по распространенности являются средства анализа защищенности операционных систем. Связано это также с универсальностью и распространенностью некоторых операционных систем (например, UNIX и Windows). Однако, из-за того, что каждый производитель вносит в операционную систему свои изменения (ярким примером является множество разновидностей ОС UNIX), средства анализа защищенности ОС анализируют в первую очередь параметры, характерные для всего семейства одной ОС. И лишь для некоторых систем анализируются специфичные для нее параметры. Примером такой системы является System Scanner компании ISS.

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

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

    для оценки уровня безопасности организации;

    для контроля эффективности настройки сетевого, системного и прикладного программно-аппаратного обеспечения;

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

    для тестирования и сертификации того или иного программно-аппаратного обеспечения.

Таблица 2. Средства анализа защищенности.

Название

Производитель

Примечание

Internet Scanner

Internet Security Systems

На уровне сети

Первая система, получившая сертификат ГТК. По системе существует авторизованное обучение в России.

Internet Security Systems

На уровне ОС

Database Scanner

Internet Security Systems

На уровне СУБД

Cisco Secure Scanner

На уровне сети

CyberCop Scanner

Network Associates

На уровне сети

WebTrends Security Analyzer

WebTrends Corporation

На уровне сети

Security Manager

На уровне ОС

На уровне сети, ОС, СУБД

Свободно распространяется

Проведению экспериментального исследования компьютерных систем с целью выявления уязвимостей ПК-27 [РБ... Основы построения защищенных компьютерных сетей Основы построения защищенных... блочные шифры на основе сети Фейстеля. Современные требования к...

  • Программа дисциплины Электроника и схемотехника для специальности 090301. 65 «Компьютерная безопасность»

    Программа дисциплины

    К проведению экспериментального исследования компьютерных систем с целью выявления уязвимостей (ПК-27); способность... обеспечиваемых (последующих) дисциплин 1 2 3 4 5 6 7 8 1. Сети и системы передачи информации + + + + 2. Техническая защита...

  • «Компьютерная лингвистика и интеллектуальные технологии» (1)

    Документ

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

  • Курсовой проект по дисциплине основы менеджмента Риски в деятельности предприятия

    Курсовой проект

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



  • 
    Top