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

Обновлено: 05.05.2024

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

  • наличие слабых, не стойких к угадыванию паролей доступа к ресурсам ИС. При активизации этой уязвимости нарушитель может получить несанкционированный доступ к ИС путём взлома пароля при помощи метода полного перебора или подбора по словарю;
  • наличие в системе незаблокированных встроенных учётных записей пользователей, при помощи которых потенциальный нарушитель может собрать дополнительную информацию, необходимую для проведения атаки . Примерами таких учётных записей являются запись " 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):

Жизненный цикл типовой атаки

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

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

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

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

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

Анализ необходимо проводить при каждой смене версии ПО. Поможем грамотного организовать данные работы на основе нашего огромного опыта.



Музалевский Фёдор Александрович

Ведущий эксперт компьютерно-технического направления

Задать вопрос эксперту: Музалевский Фёдор Александрович Задать вопрос эксперту Все эксперты


Кобец Дмитрий Андреевич

Эксперт в сфере информационной безопасности

Опыт: Профессиональный опыт в сфере информационных технологий и информационной безопасности с 2009 года

Задать вопрос эксперту: Кобец Дмитрий Андреевич Задать вопрос эксперту Все эксперты


Волокитин Сергей Анатольевич

Ведущий эксперт компьютерно-технического направления

Опыт: Профессиональный опыт в сфере информационных технологий и информационной безопасности с 2008 года

Задать вопрос эксперту: Волокитин Сергей Анатольевич Задать вопрос эксперту Все эксперты

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

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

Где содержится требование проводить оценку (анализ) уязвимостей ПО?

Где содержится требование проводить оценку уязвимостей ПО?

Требования проводить анализ уязвимостей ПО содержатся в следующих положениях Банка России:

Документами Банка России предусмотрено 2 варианта оценки уязвимостей:

Анализ необходимо проводить при каждой смене версии ПО.

Какое ПО нужно оценивать на уязвимости по 382-П и 683-П?

В 382-П указано на необходимость проведения:

Какое ПО нужно оценивать на уязвимости по 382-П?

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

ПО для оценки на уязвимости по 683-П и 684-П

683-П указывает на необходимость анализа уязвимостей в отношении:

В 684-П говорится, что НФО должны проводить анализ уязвимостей в отношении:

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

В случае с банками к таким системам относятся:

  • АБС
  • Интернет-банк
  • Мобильный банк

Элементы действий разработчика AVA_VAN.3.1D Разработчик должен представить объект оценки для тестирования
Элементы содержания и представления свидетельств AVA_VAN.3.1C Объект оценки должен быть пригоден для тестирования.
Элементы действий оценщика AVA_VAN.3.1E Оценщик должен подтвердить, что представленная информация удовлетворяет всем требованиям к содержанию и представлению свидетельств.
AVA_VAN.3.2E Оценщик должен выполнить поиск информации в общедоступных источниках, чтобы идентифицировать потенциальные уязвимости в объекте оценки.
AVA_VAN.3.3E Оценщик должен провести независимый анализ уязвимостей ОО с использованием документации руководств, функциональной спецификации, проекта, описания архитектуры безопасности и представления реализации, чтобы идентифицировать потенциальные уязвимости в объекте оценки.
AVA_VAN.3.4E Оценщик должен провести тестирование проникновения, основанное на идентифицированных уязвимостях, чтобы сделать заключение, что объект оценки является стойким к нападениям, выполняемым нарушителем, обладающим Усиленным базовым потенциалом нападения.

Более подробно работы по анализу уязвимостей регламентированы в ГОСТ Р 58143-2018. Данный стандарт описывает порядок действий оценщика при оценке компонента доверия AVA_VAN.3, а именно:

1) Разработать тесты для проверки наличия потенциальных уязвимостей с учетом соответствующего (AVA_VAN.3.4.E) потенциала нападения

2) Разработать тестовую документацию для тестов на проникновение для обеспечения воспроизводимости

3) Использовать шаги оценивания AVA_VAN.1-5 и AVA_VAN.1-6 в качестве основы для выполнения тестов

4) Зафиксировать результат тестирования

5) Привести в техническом отчете об оценке информацию, об усилиях оценщика по тестированию проникновения

6) Исследовать результаты тестирования и сделать отрицательное заключение по действию оценщика AVA_VAN.1.3.E, если результаты показали, что ПО не является стойким к нарушителю, обладающему базовым потенциалом нападения

7) Привести в техническом отчете об оценке информацию, обо всех пригодных для использования уязвимостях и остаточных уязвимостях

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

Важно! Приемлемым результатом работы оценщика является как обнаружение (выявление) уязвимостей, так и отсутствие выявленных уязвимостей

Отчет по анализу уязвимостей ПО

Результатом работы оценщика, таким образом, является:

  • Документация по тестированию программного обеспечения
  • Технический отчет об оценке (анализе) уязвимостей

Именно заключение, сделанное в данном отчете, дает право считать ПО соответствующим требованиям положений 382-П, 683-П или 684-П. В дальнейшем отчет используется для устранения уязвимостей, которые были выявлены в ходе аудита. По содержанию, в отчете от RTM Group в обязательном порядке содержится:

  1. Описание, предоставленного на исследование, программного обеспечения
  2. Описание хода исследования (процесса) выявления уязвимостей
  3. Методики и методы выявления уязвимостей
  4. Продукты и решения по анализу кода и анализу уязвимостей ПО, которые использовались при проведении исследования
  5. Список выявленных уязвимостей и дефектов программного продукта
  6. Описание выявленных уязвимостей и оценка их критичности
  7. Действия, которые необходимо предпринять для устранения выявленных уязвимостей
  8. Рекомендации по дальнейшим действиям

Дополнительные услуги по анализу уязвимостей

Внешние организации, являющиеся лицензиатами ФСТЭК России могут проводить следующие работы:

Читайте также: