Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении что нового
Обновлено: 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-П указано на необходимость проведения:
- анализа уязвимостей прикладного программного обеспечения автоматизированных систем и приложений, которые используются для осуществления переводов денежных средств
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 в обязательном порядке содержится:
- Описание, предоставленного на исследование, программного обеспечения
- Описание хода исследования (процесса) выявления уязвимостей
- Методики и методы выявления уязвимостей
- Продукты и решения по анализу кода и анализу уязвимостей ПО, которые использовались при проведении исследования
- Список выявленных уязвимостей и дефектов программного продукта
- Описание выявленных уязвимостей и оценка их критичности
- Действия, которые необходимо предпринять для устранения выявленных уязвимостей
- Рекомендации по дальнейшим действиям
Дополнительные услуги по анализу уязвимостей
Внешние организации, являющиеся лицензиатами ФСТЭК России могут проводить следующие работы:
Читайте также: