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

Информационная безопасность. Лекция 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)

    Документ

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

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

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

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

  • Технология анализа защищенности

    Технология анализа защищённости представляет собой совокупность методов обнаружения технологических и эксплуатационных уязвимостей ПО АС. Данная технология реализуется при помощи систем анализа защищённости (security assessment systems) или сканеров безопасности (security scanners) , представляющих собой специализированное ПО. Рассмотрим более подробно методы выявления технологических и эксплуатационных уязвимостей и проанализируем возможность использования существующих средств, реализующих эти методы, для выявления уязвимостей ПО узлов ГСПД и ЦУС. Выявление и своевременное устранение обнаруженных технологических и эксплуатационных уязвимостей в ПО узлов ГСПД и ЦУС позволит предотвратить следующие типы ВН:

    ВН, направленные на получение НСД к информационным ресурсам и инфраструктурам ЦУС и узлов ГСПД;

    ВН, направленные на нарушение работоспособности ЦУС и узлов ГСПД;

    ВН, направленные на активизацию «закладок», внедрённых в По узлов ГСПД и ЦУС.

    Процесс выявления технологических уязвимостей ПО АС может осуществляться при помощи одного из следующих методов:

    Путём анализа исходных текстов ПО АС;

    При помощи исполняемого кода ПО АС;

    Посредством имитации ВН на ПО АС.

    Обнаружение технологических уязвимостей ПО АС путём анализа исходных текстов ПО, как правило, осуществляется при помощи составления алгоритма работы программы и последующей проверки его правильности. Алгоритм работы программы АС может быть составлен в виде блок-схем или формализован при помощи различных математических аппаратов. Так, например, системы обнаружения уязвимостей АСТМА (Ассемблер - Тензорно-Множественный Аппарат) и СОТМА (Словесное Описание - Тензорно-Множественный Аппарат) , разработанные в пензенском филиале НТЦ «Атлас», в процессе анализа исходных текстов программы используют тензорно-множественный математический аппарат. Другим примером системы анализа защищённости такого типа является анализатор исходный текстов Си и Си++ программ (АИСТ-С) , разработанный в ЗАО «ЦБИ-Сервис». Главным недостатком данного метода обнаружения уязвимостей является высокая сложность его практической реализации, а также отсутствие чётко определённой методики анализа исходных текстов, позволявшей бы гарантировать отсутствие уязвимостей в анализируемом коде ПО АС.

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



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

    Существующие средства обнаружения технологических уязвимостей при помощи анализа исполняемого кода могут быть использованы только для анализа защищённости ПО ЦУС, поскольку оно базируется на стандартных ОС, таких как Windows и UNIX. В настоящее время на отечественном рынке ИБ отсутствуют средства анализа защищённости ПО узлов ГСПД, которые используют специализированные ОС (например, ОС Cisco IOS маршрутизаторов и коммутаторов компании Cisco).

    Последний способ обнаружения технологических уязвимостей заключается в имитации ВН на АС и анализе результатов моделирования этих ВН. В случае, если процесс моделирования ВН завершается успехом, то система делает вывод о наличии уязвимости в ПО тестируемой АС. Примерами систем анализа защищённости этого класса являются: анализатор уязвимостей «НКВД» (ООО «Кировский региональный центр деловой информации»), система анализа защищённости Cisco Secure Scanner (компания «Cisco Systems»), программный комплекс анализа защищённости Internet Scanner (компания «Internet Security Systems»), сканер безопасности Nessus (проект «Nessus Project») и др. К преимуществам этого метода обнаружения уязвимостей можно отнести простоту его реализации, а к недостаткам - невозможность обнаружения уязвимостей АС, которые отсутствуют в базе данных системы анализа защищённости.

    Рассмотренные выше средства анализа защищённости, функционирующие посредством имитации ВН, могут быть использованы для выявления уязвимостей ПО как узлов ГСПД, так и ЦУС. Тем не менее необходимо отметить, что в настоящее время системы этого класса, представленные на отечественном рынке ИБ, могут применяться только в ГСПД функционирующих на основе стека протоколов TCP/IP.

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

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

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

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

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

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

    Часть уязвимостей закладывается ещё на этапе проектирования. В качестве примера можно привести сервис 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 .

    IDENTIFICATION OF INFORMATION SYSTEMS VULNERABILITIES

    Sergei Konovalenko

    postgraduate of Krasnodar higher military school,

    Russia, Krasnodar

    Igor Korolev

    doctor of Engineering, Professor, Professor of the department of protected information technologies, Krasnodar higher military school,

    Russia, Krasnodar

    АННОТАЦИЯ

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

    ABSTRACT

    An assessment of existing tools for analyzing information systems security was performed. On the basis of the achieved results the models of detection, identification and evaluation of information systems vulnerabilities images were built. The main characteristics (elements) inherent to the images of the existing information systems vulnerabilities were defined.

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

    Keywords: detection; information system; identification; evaluation; description of the image; vulnerability.

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

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

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

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

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

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

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

    Таблица 1.

    Элементы различных типов образов уязвимостей ИС

    Характеристики образа уязвимости

    Элемент, присущий образу известной уязвимости

    Элемент, присущий образу уязвимости нулевого дня

    Элемент, присущий образу впервые выявленной уязвимости

    Место обнаружения (выявления) уязвимости в ИС.

    Способ обнаружения (выявления) уязвимости.

    Наименование уязвимости.

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

    • уровень прикладного программного обеспечения (далее по тексту – ПО), отвечающий за взаимодействие с пользователем;
    • уровень системы управления базами данных (далее по тексту – СУБД), отвечающий за хранение и обработку данных ИС;
    • уровень операционной системы (далее по тексту – ОС), отвечающий за обслуживание СУБД и прикладного ПО;
    • сетевой уровень, отвечающий за взаимодействие узлов ИС.

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

    Основными источниками возникновения уязвимостей ИС являются :

    • ошибки при разработке (проектировании) ИС (например, ошибки в ПО);
    • ошибки при реализации ИС (ошибки администратора ИС) (например, неправильная настройка или конфигурация ПО, не эффективная концепция политики безопасности и т. п.);
    • ошибки при использовании ИС (пользовательские ошибки) (например, слабые пароли, нарушение в политике безопасности и т. п.).

    Для выявления, идентификации и оценки уязвимостей ИС, а также формирования отчетов и устранения (нейтрализации) уязвимостей, используются средства анализа защищенности сети (далее по тексту – САЗ) (сканеры безопасности (далее по тексту – СБ)), которые можно разделить на два типа :

    • сетевые САЗ (СБ) (осуществляют удаленный анализ состояний контролируемых хостов на сетевом уровне);
    • САЗ (СБ) уровня ОС (осуществляют локальный анализ состояний контролируемых хостов, порой требуется установка специального агента на контролируемых хостах).

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

    Для систематизации работы специалиста в области обеспечения безопасности, контролируемой ИС и на основе проведенного анализа строится обобщенная модель выявления образов уязвимостей ИС (рисунок 1).

    Рисунок 1. Обобщенная модель выявления образов уязвимостей ИС

    Процесс выявления уязвимостей ИС строится посредствам выполнения пассивных проверок (сканирование – scan) и активных проверок (зондирование – probe) наличия уязвимостей контролируемой ИС.

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

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

    Результаты сканирования и зондирования поступают в БД уязвимостей, в которой хранятся образы уязвимостей контролируемой ИС. На основании процедуры сравнения образа обнаруженной уязвимости с образами уязвимостей контролируемой ИС САЗ формирует отчет об отсутствии или наличии совпадений в образах уязвимостей (обнаружение уязвимостей), который сохраняется в БД уязвимостей.

    Детализирует обобщенную модель выявления образов уязвимостей обобщенная модель идентификации и оценки образов уязвимостей ИС (рисунок 2).

    Рисунок 2. Обобщенная модель идентификации и оценки образов уязвимостей ИС

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

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

    Список литературы:

    1. Астахов А.С. Анализ защищенности корпоративных автоматизированных сетей // Информационный бюллетень Jet Info. – 2002. – № 7 (110). / – [Электронный ресурс]. – Режим доступа: URL: http://www.jetinfo.ru
    2. Горбатов В.С., Мещеряков А.А. Сравнительный анализ средств контроля защищенности вычислительной сети // Безопасность информационных технологий. – 2013. – № 1. / – [Электронный ресурс]. – Режим доступа: URL: http://www.bit.mephi.ru
    3. ГОСТ Р 56545-2015 «Защита информации. Уязвимости информационных систем. Правила описания уязвимостей». – М.: Стандартинформ, 2015.
    4. ГОСТ Р 56546-2015 «Защита информации. Уязвимости информационных систем. Классификация уязвимостей информационных систем». – М.: Стандартинформ, 2015.
    5. Лукацкий А.В. Как работает сканер безопасности? / – [Электронный ресурс]. – Режим доступа: http://www.citforum.ru/security/internet/scaner.shtml (Дата обращения: 14.09.2016).
    6. Лукацкий А.В. Обнаружение атак. – СПб. : Издательство «БВХ», 2001. – 624 с.
    7. Руководство пользователя программного комплекса «Средство анализа защищенности «Сканер-ВС». НПЭШ.00606-01. ЗАО «НПО «Эшелон», 2011.
    8. Сканер безопасности XSPider. Руководство администратора / – [Электронный ресурс]. – Режим доступа: http://www.ptsecurity.ru (Дата обращения: 15.09.2016).
    9. Сканер безопасности MaxPatrol. Система контроля защищенности / – [Электронный ресурс]. – Режим доступа: http://www.ptsecurity.ru (Дата обращения: 16.09.2016).
    10. Стивен Норткат, Джуди Новак. Обнаружение нарушений безопасности в сетях. 3-е изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2003. – С. 265–280.

    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% атак злоумышленников базируются на использовании уязвимостей в прикладном ПО. Своевременное выявление и устранение этих уязвимостей позволит предотвратить возможные атаки нарушителей. Для эффективного решения данной задачи рекомендуется использовать современные инструментальные средства анализа безопасности ПО, которые могут значительно автоматизировать процесс поиска и устранения слабых мест в ПО организации.



    
    Top