Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

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

Определение 1

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

Уязвимости программного обеспечения

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

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

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

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

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

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

«Выявление уязвимостей программного обеспечения» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

К числу достоинств документа можно причислить:

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

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

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

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

На сегодняшний день используются следующие основные подходы к определению уязвимостей кода:

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

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

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

Замечание 1

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

Дата написания статьи: 26.05.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot