Методика выявления уязвимостей информационных систем. Выявление уязвимостей в программном коде

13.04.2019

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.
уязвимости нарушитель может получить несанкционированный доступ к ИС путём взлома пароля при помощи метода полного перебора или подбора по словарю;
  • наличие в системе незаблокированных встроенных учётных записей пользователей, при помощи которых потенциальный нарушитель может собрать дополнительную информацию, необходимую для проведения атаки . Примерами таких учётных записей являются запись " Guest " в операционных системах или запись " Anonymous " в FTP -серверах;
  • неправильным образом установленные права доступа пользователей к информационным ресурсам ИС. В случае если в результате ошибки администратора пользователи, работающие с системой, имеют больше прав доступа, чем это необходимо для выполнения их функциональных обязанностей, то это может привести к несанкционированному использованию дополнительных полномочий для проведения атак. Например, если пользователи будут иметь права доступа на чтение содержимого исходных текстов серверных сценариев, выполняемых на стороне Web -сервера, то этим может воспользоваться потенциальный нарушитель для изучения алгоритмов работы механизмов защиты Web -приложений и поиска в них уязвимых мест;
  • наличие в ИС неиспользуемых, но потенциально опасных сетевых служб и программных компонентов . Так, например, большая часть сетевых серверных служб, таких как Web -серверы и серверы СУБД поставляются вместе с примерами программ, которые демонстрируют функциональные возможности этих продуктов. В некоторых случаях эти программы имеют высокий уровень привилегий в системе или содержат уязвимости , использование которых злоумышленником может привести к системы. Примерами таких программ являются образцы CGI -модулей, которые поставляются вместе с Web -приложениями, а также примеры хранимых процедур в серверах СУБД.
  • Методы выявления и устранения уязвимостей

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

    Выявление уязвимостей типа " buffer overflow ", " SQL Injection " и " format string " возможно либо путём анализа исходных текстов потенциально уязвимой программы, либо при помощи поведения анализа безопасности уже работающей программы. Первый способ предполагает экспертный анализ исходных текстов программы с целью поиска и исправления ошибок, которые были допущены на этапе её разработки. В большинстве случае для устранения выявленных уязвимостей необходимо добавление новых функций, обеспечивающих проверку корректности входных данных , поступающих в программу. Так, например, для исправления уязвимостей типа " buffer overflow " необходимо добавить процедуру проверки, которая должна следить за тем, чтобы объём входных данных не превышал максимальный размер переменной, для которой они предназначаются. Исправление уязвимости " SQL Injection " возможно путём защиты от вставки символа """, который в большинстве случаев и позволяет модифицировать исходный SQL - запрос . Для устранения уязвимостей типа " format string " необходимо использовать такой формат вызова функций, в котором форматирующая строка задаётся в явном виде разработчиком программы. Как правило, метод анализа исходных текстов отличается высокой трудоёмкостью и используется только в компаниях, которые занимаются разработкой ПО .

    Второй метод выявления уязвимостей используется для анализа защищённости ПО , которое уже установлено и функционирует в ИС. Метод предполагает использование специализированных программных средств - так называемых сканеров безопасности или систем анализа защищённости. Эти средства позволяют обнаруживать уязвимости на основе активного и пассивного методов. При помощи пассивного метода осуществляется сбор информации о настройках ПО , присутствующего в ИС и на основе этих данных делается вывод о наличии или отсутствии в системе уязвимостей . Так, например, если будет выявлено наличие ОС без установленного модуля Service Pack , то это означает, что она подвержена ряду уязвимостей . Активные методы анализа защищённости приложений имитируют информационные атаки и затем на основе анализа результатов делается вывод о наличии уязвимостей в системе. Совместное использование пассивных и активных методов анализа защищённости приложений ИС позволяет выявить не только уязвимости " buffer overflow ", " SQL Injection " и " format string ", но и эксплуатационные уязвимости конфигурации ПО . Устранение уязвимост ей в этом случае возможно путём установки соответствующих модулей обновления ( service packs , hotfixes , patches и др.) или изменения настроек используемого ПО . Рассмотренные активные и пассивные методы наиболее часто используются для анализа защищённости ПО , на основе которых функционируют ИС организаций.

    Что такое информационная атака?

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

    1. стадия рекогносцировки. На этой стадии нарушитель старается получить как можно больше информации об объекте атаки , на основе которой планируется дальнейшие этапы атаки . Примерами таких данных являются: тип и версия операционной системы, установленной на хостах ИС, список пользователей, зарегистрированных в системе, сведения об используемом прикладном программном обеспечении и др.;
    2. стадия вторжения в ИС. На этом этапе нарушитель получает несанкционированный доступ к ресурсам тех хостов, на которые совершается атака ;
    3. стадия атакующего воздействия на ИС. Данная стадия атаки направлена на достижение нарушителем тех целей, для которых и предпринималась атака . Примерами таких действий могут являться нарушение работоспособности ИС, кража конфиденциальной информации , хранимой в системе, удаление или модификация данных системы и др. При этом атакующий может также осуществлять действия, которые могут быть направлены на удаление следов его присутствия в ИС;
    4. стадия дальнейшего развития атаки . На этом этапе выполняются действия, которые необходимы для продолжения атаки на другие объекты ИС.


    Рис. 23.5.

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

    • информация о структуре и топологии ИС. Для получения информации этого типа нарушитель может воспользоваться стандартными утилитами типа " traceroute ", входящими в состав практически любой операционной системы (ОС). Эти утилиты позволяют сформировать список IP-адресов маршрутизаторов , через которые проходят пакеты от компьютера нарушителя до хоста, который выступает в роли объекта нападения. Злоумышленник также может получить необходимую ему информацию о структуре ИС путём обращения к DNS -серверу, на котором могут храниться данные о хостах ИС;
    • информация о типе ОС, установленной в ИС. Один из наиболее распространённых методов определения типа ОС основан на том факте, что разные системы по-разному реализуют требования стандартов RFC , в которых определены правила взаимодействия на основе различных сетевых протоколов . Таким образом, при формировании одних и тех же сетевых запросов разные ОС в ответ отправляют отличные друг от друга данные, на основе которых можно с большой долей вероятности определить характеристики используемой ОС. Данный метод также позволяет определить тип аппаратной платформы, на основе которой функционирует та или иная ОС;
    • информация о типе прикладных сервисов, присутствующих в ИС. Нарушитель может определить какие

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

    Документ

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

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

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

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

  • Защита от хакеров корпоративных сетей Автор неизвестен

    Методы тестирования уязвимостей

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

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

    Доказательство возможности нападения

    Общепризнанный метод, используемый сообществом безопасности, получил название доказательство возможности нападения (proof of concep). Про доказательство возможности нападения можно сказать, не вдаваясь в излишние подробности, что это изученный со всех сторон надежный метод тестирования систем на уязвимости. Обычно он применяется разработчиком программы или аналитиком по безопасности в форме максимально гласной дискуссии.

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

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

    Написание программ, демонстрирующих проблему

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

    Написание программ, демонстрирующих проблему, может быть отнесено к доказательству возможности нападения, поскольку в результате на практике демонстрируется существование уязвимости и детали атаки на нее. Программа может быть написана на разных языках: например, C, Perl или ассемблер.

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

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

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

    Автоматизированный инструментарий безопасности

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

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

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

    Различные производители выпускают различные средства автоматизированного тестирования. Среди них можно выделить CyberCop Security Scanner, выпущенный Network Associates, NetRecon компании Symantec и Internet Scanner – производитель Internet Security Systems. Свободно распространяется Nessus от Nessus Project. Более подробно с ними можно познакомиться в главе 17 книги.

    Контроль версий

    Контроль версий (versioning) – отказоустойчивый метод тестирования систем на наличие уязвимостей. По сравнению с ранее упомянутыми методами его не так часто используют, но он приводит к надежным результатам.

    Контроль версий заключается в определении версии или редакции используемого программного обеспечения. Это может оказаться сложным, поэтому большинство программного обеспечения различается версиями, как, например, Windows 2000 Professional или Solaris 8, а многие из пакетов, помимо своей версии, характеризуются еще и версиями включаемых программ, например wget версии 1.7. На практике это часто приводит к необходимости решения сложных проблем, как, например, кошмар с дистрибутивом Linux, который является сборищем различных версий разного программного обеспечения.

    Контроль версий осуществляется во время анализа ассортимента предлагаемых программ. Идея очень проста – ищутся версии программ с известными уязвимостями. Поиск выполняется различными способами. Один из способов состоит в выдаче команды отображения версии проверяемой программы, например команды uname, как это показано на рис. 3.7.

    Рис. 3.7. Определение редакции ядра Linux с помощью команды uname-a

    Другой метод использует предоставляемые производителем средства определения на вашей машине последней редакции системы (см. рис. 3.8).

    Рис. 3.8. Проверка редакции Sun Solaris System при помощи команды showrev-p

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

    Стандартные методы исследования

    Уже говорилось о том, что 97 % злоумышленников – это неопытные пользователи-недоумки. Действительно опасные – остальные 3 %. У этой группы есть чему поучиться, при условии что полученные знания не будут использованы для достижения зловредных целей. Ланс Спитзнер (Lance Spitzner), один из наиболее хорошо подготовленных специалистов по вопросам безопасности (и вообще всесторонне развитый человек), некоторое время назад написал несколько работ, в которых все расставил по своим местам. Заимствуя принцип Сан Цзу (Sun Tzu) из его книги «Искусство войны», работы Спицнера были озаглавлены «Узнай своего врага». Они доступны по адресу http:// project.honeynet.org.

    В первую очередь следует обратить внимание на интеллектуальные нападения. Нападение – акт агрессии, а интеллектуальность предполагает твердые навыки познавательной деятельности. При подготовке интеллектуальной атаки осуществляется сбор информации либо с использованием утечки информации, либо при помощи доступных ресурсов Интернета. Рассмотрим некоторые методы, основанные на использовании базы данных Whois, службы имен доменов (DNS – Domain Name System), программы Nmap и индексирования Web.

    База данных Whois Whois – это общедоступная база данных, содержащая информацию о владельцах сетевых ресурсов. База данных Whois подразделяется на базы данных Whois доменов. com, biz и базу данных Американского регистра Интернет-адресов (ARIN – American Registry of Internet Numbers), которые содержат сведения об именах служб и сетях.

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

    elliptic@ellipse:~$ whois cipherpunks.com

    Whois Server Version 1.3

    Domain names in the .com, .net, and .org domains can now be

    with many different competing registrars. Go to http://

    www.internic.net

    for detailed information.

    Domain Name: CIPHERPUNKS.COM

    Registrar: ENOM, INC.

    Whois Server: whois.enom.com

    Referral URL: http://www.enom.com

    Name Server: DNS1.ENOM.COM

    Name Server: DNS2.ENOM.COM

    Name Server: DNS3.ENOM.COM

    Name Server: DNS4.ENOM.COM

    The Registry database contains ONLY .COM, .NET, .ORG, .EDU

    domains and Registrars.

    Found InterNIC referral to whois.enom.com.

    Access to eNom’s Whois information is for informational

    purposes only. eNom makes this information available “ as is,”

    and does not guarantee its accuracy. The compilation,

    repackaging, dissemination or other use of eNom’s Whois

    information in its entirety, or a substantial portion

    thereof, is expressly prohibited without the prior written

    consent of eNom, Inc. By accessing and using our Whois

    information, you agree to these terms.

    Domain name: cipherpunks.com

    FAX: 770-393-1078

    Montgomery, AL 36121

    Elliptic Cipher ([email protected])

    FAX: 770-393-1078

    Montgomery, AL 36121

    Elliptic Cipher ([email protected])

    FAX: 770-393-1078

    Montgomery, AL 36121

    Elliptic Cipher ([email protected])

    FAX: 770-393-1078

    Montgomery, AL 36121

    DOMAIN CREATED: 2000-11-12 23:57:56

    DOMAIN EXPIRES: 2002-11-12 23:57:56

    DNS4.ENOM.COM

    Из примера видно, как можно узнать регистрационные сведения владельца домена Cipherpunks.com: его имя, адрес, контактные номера телефонов и факса.

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

    В последнее время регулярно наблюдаются попытки злоумышленников использовать почтовые адреса лиц, зарегистрировавших домен. Для этого, в случае одновременного администрирования одного домена несколькими людьми, могут быть применены методы социотехники. Наиболее часто добытые таким способом сведения используются для распространения спама. Такие компании, как Network Solutions, даже продают подобную информацию фирмам «направленного маркетинга» (метод маркетинга, при котором компании рассылают образцы своей продукции потенциальным заказчикам), прославившимся распространением спама. Эти фирмы в буквальном смысле слова захламляют почтовый ящик жертвы различным мусором. То, как это происходит, описано в статье Newsbytes «ICANN To Gauge Privacy Concerns Over "Whois" Database», доступной в Интернете по адресу www.newsbytes.com/news/01/166711.html.

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

    elliptic@ellipse:~$ whois -h whois.arin.net 66.38.151.10

    GT Group Telecom Services Corp. (NETBLK-GROUPTELECOM-BLK-

    3) GROUPTELECOM-BLK-3

    66.38.128.0 – 66.38.255.255

    Security Focus (NETBLK-GT-66-38-151-0) GT-66-38-151-0

    66.38.151.0 – 66.38.151.63

    To single out one record, look it up with “!xxx”, where xxx

    is the handle, shown in parenthesis following the name,

    which comes first.

    The ARIN Registration Services Host contains ONLY Internet

    Network Information: Networks, ASN’s, and related POC’s.

    Please use the whois server at rs.internic.net for DOMAIN

    related Information and whois.nic.mil for NIPRNET

    Information.

    Как можно заметить, адреса Интернет от 66.38.151.0 до 66.38.151.63 закреплены за SecurityFocus. Кроме того, эти адреса принадлежат GT Group Telecom.

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

    Служба имен доменов

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

    Источник уязвимостей был обнаружен в широко распространенной программе разрешения имен в Интернете BIND. Служба доменных имен в сети Интернет или BIND (Berkley Internet Name Domain – программа для поддержки сервера имен доменов, первоначально написанная для UNIX, в настоящее время является наиболее популярной реализацией DNS и перенесена практически на все платформы. BIND задает структуру баз данных, функции DNS и конфигурационные файлы, требующиеся для установки и функционирования сервера имен) ранее имела ряд уязвимостей, которые позволяли злоумышленнику получать удаленный административный доступ. Также известна уязвимость в старших версиях программы, при помощи которой можно подменять содержимое кэш DNS, дурача клиентов. Подмена состояла в изменении занесенного в кэш соответствия между доменом и его адресом. В результате пользователь вместо желаемого сайта мог попасть куда угодно. Далее рассмотрим методы определения уязвимостей, возникающие при работе DNS.

    Утилита dig

    dig – легкодоступный инструментарий, тесно связанный с программой BIND. В утилите предусмотрен как интерактивный режима запуска, так и удобный режим командной строки, позволяющий собирать сведения о DNS-сервере. Утилита dig выполняется под управлением многих свободно распространяемых операционных систем и может поставляться консорциумом программного обеспечения Интернет (Internet Software Consortium) совместно с BIND.

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

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

    Проанализируйте следующий пример использования утилиты dig:

    elliptic@ellipse:~$ dig @pi.cipherpunks.com TXT CHAOS

    ; <<>> DiG 8.2 <<>> @pi.cipherpunks.com TXT CHAOS

    ; (1 server found)

    ;; res options: init recurs defnam dnsrch

    ;; ->>HEADER<<– opcode: QUERY, status: NOERROR, id: 6

    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0,

    ;; QUERY SECTION:

    ;; version.bind, type = TXT, class = CHAOS

    ;; ANSWER SECTION:

    VERSION.BIND. 0S CHAOS TXT “8.2.1”

    ;; Total query time: 172 msec

    ;; FROM: ellipse to SERVER: pi.cipherpunks.com 192.168.1.252

    ;; WHEN: Mon Dec 10 07:53:27 2001

    ;; MSG SIZE sent: 30 rcvd: 60

    Из отчета можно определить версию BIND, установленную на pi в домене cipherpunks.com. А также то, что на pi запущена версия BIND, уязвимая для многих атак, одна из которых – переполнение NXT-буфера, известная с 1999 года и позволяющая злоумышленнику получить удаленный доступ к системе с правами программы BIND (обычно выполняющейся с правами привилегированного пользователя root). Сервисы преобразования имен зачастую могут сообщать больше информации, чем ожидается. Утилиты типа dig могут выполнять и иные DNS-сервисы, например передачу зоны. DNS использует передачу зоны для распределения записей преобразования имен между остальными хостами. Инициировав вручную передачу зоны, злоумышленник может получить ценную информацию о системах и преобразовании адресов серверами DNS.

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

    Группа системного тестирования Группа системного тестирования представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за планирование и выполнение независимого системного тестирования ПО, проводимого в

    Из книги Разгони свой сайт автора Мациевский Николай

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

    Из книги Пакеты программ. Требования к качеству и тестирование автора Автор неизвестен

    4.3 Протоколы тестирования Протоколы по каждому тесту должны содержать информацию, достаточную для повторения теста (Руководство ИСО/МЭК 25 ). Данная информация должна включать:- план тестирования или технические требования (спецификацию) к тестированию, содержащие

    Из книги ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ. Общие требования к разработке и документированию автора Госстандарт России

    Из книги Защити свой компьютер на 100% от вирусов и хакеров автора Бойцев Олег Михайлович

    Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

    Из книги Защита от хакеров корпоративных сетей автора Автор неизвестен

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

    Из книги Как тестируют в Google автора Уиттакер Джеймс

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

    Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

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

    Из книги автора

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

    Из книги автора

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

    Из книги автора

    Будущее инфраструктуры тестирования Инфраструктура тестирования в Google все еще клиентская. Множество тестов Selenium и WebDriver, написанных на Java или Python, хранится в репозитории, собирается и разворачивается на выделенных виртуальных машинах с помощью shell-скриптов.

    Из книги автора

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

    Из книги автора

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

    Из книги автора

    Рекомендуемые области для тестирования В тур международных звонков для Chrome входят:- Операционные системы: Windows, Mac и Linux.- Уровни доступа: высокие и низкие уровни привилегий.- Языки: сложные языки, системы письменности справа налево.- Сетевые настройки: прокси-сервер,

    Из книги автора

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

    12.12.2005 Алексей Марков, Сергей Миронов, Валентин Цирлов

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

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

    Проблемой защиты программ занимаются испытательные лаборатории Минобороны, ФСБ и ФСТЭК России, которые в своей работе опираются на Руководящий документ (РД) Гостехкомиссии России по контролю над недекларированными возможностями . Однако опыт выявления авторами более 20 закладок и тысяч некорректностей кода показал, что большинство из них обнаружены не только не в соответствии с указанным документом, но и порой вопреки ему. Существующая нормативная, методическая и инструментальная база выявления недекларированных возможностей в программном обеспечении не позволяет эффективно обеспечивать безопасность программ.

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

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

    Сертификационные испытания

    Ограничения Руководящего документа

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

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

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

    Инструментальная база испытаний

    Чтобы получить аттестат аккредитации ФСТЭК по выявлению недекларированных возможностей, испытательная лаборатория должна иметь сертифицированные инструментальные средства («АИСТ», EMU). Здесь возникают два вопроса.

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

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

    Скажем, для анализа кода на языке Си рекомендуется программа «АИСТ-С» (непререкаемый «авторитет» в области анализа кода на наличие недекларированных возможностей). Однако, несмотря на ее очевидные достоинства, установлено, что она некорректно обрабатывает структуры объектно-ориентированных программ, например не анализирует конструктор и деструктор. Не анализируются и исходные тексты, подключаемые директивами #include - лишь проверяется исходный текст программы. Мало того, нормальная работа анализатора возможна, только если объем исходных текстов не превышает нескольких мегабайт: блок-схемы программ строятся некорректно уже для программ объемом более нескольких килобайт. Те же ограничения относятся к построению матрицы связей по информации, да и отчеты не в полной мере соответствуют требованиям РД по недекларированным возможностям. Но главное отставание от реалий дня состоит в том, что это средство вообще не имеет базы сигнатур и умеет анализировать лишь программы на языке Cи/C++.

    Организационные проблемы сертификации

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

    Способы выявления уязвимостей

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

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

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

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

    Литература

    1. Руководящий документ. Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей. М.: Гостехкомиссия России, 1998.
    2. Калайда И.А. Недекларированные возможности в программном обеспечении средств защиты информации. Jet Info, 2000, № 8.
    3. Марков А.С., Щербина С.А. Испытания и контроль программных ресурсов. InformationSecurity, 2003, № 6.
    4. Дастин Э., Рэшке Д., Пол Д. Автоматизированное тестирование программного обеспечения: внедрение, управление, эксплуатация. М.: Лори, 2003.
    5. ГОСТ Р ИСО/МЭК 15408-2002. Информационная технология. Методы и средства обеспечения безопасности. Критерии оценки безопасности информационных технологий. Части 1, 2, 3. М.: ИПК «Изд-во стандартов», 2002.
    6. Методическое руководство по оценке качества функционирования информационных систем. М.: Изд-во 3 ЦНИИ МО РФ, 2003.
    7. ГОСТ РВ 51719-2001. Испытания программной продукции. М.: ИПК «Изд-во стандартов», 2001.
    8. Руководящий документ. Безопасность информационных технологий. Критерии оценки безопасности информационных технологий. Части 1, 2, 3. - М.: Гостехкомиссия России, 2002.
    9. Скрытые каналы, // Jet Info, 2002, № 11.
    10. Хогланд Г., Мак-Гроу Г. Взлом программного обеспечения: анализ и использование кода. М.: Вильямс, 2005.

    Алексей Марков ([email protected] , [email protected] ), Сергей Миронов, Валентин Цирлов - сотрудники Испытательного центра НПП «БИТ», (Москва).

    Примеры выявленных программных закладок

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