Разделы портала

Онлайн-тренинги

.
Вариант определения понятий защищённости и безопасности программных продуктов
29.09.2008 13:48

Автор: Полаженко Сергей, ведущий проекта «Тестирование безопасности»

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

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

  • лёгкость, простота копирования и тиражирования как самого ПП, так и его составных частей. Программный продукт, в отличие от АС, легко подвержен угрозам нелегального копирования и тиражирования, как следствие — масштабы современного пиратского рынка;
  • количество ПП и их копий по всему миру не сравнимо больше аналогичного числа для АС, т.е. популярность и распространённость ПП носит гораздо более массовый характер, что определяет актуальность вопросов обеспечения безопасности и защищённости ПП, отдельно от проблемы «безопасности АС»;
  • доступ к АС, как правило, регламентирован, в то время как для ПП наиболее распространённая практика — публикация ПП в сети Интернет, а также свободное распространение ПП по файлообменным сетям. В результате ПП никоим образом не контролируется его разработчиком, в то время как злоумышленник имеет неограниченные по времени, методам и средствам возможности анализа ПП;
  • лёгкость модификации ПП — возможность использовать ПП, как основу для распространения вирусов;
  • богатство выбора инструментариев для анализа ПП и его механизмов защиты (отладчики, редакторы ресурсов, дизассемблеры и т.д.);
  • доступность баз данных с уязвимостями и вариантами их эксплуатации для наиболее популярных ПП (такие базы, как например, osvdb .org, securityfocus .com и прочие).

Другая, проблема, которая затрагивается в этой статье, заключается в том, что некоторые авторы в своих работах определяют понятия безопасности и защищённости ПП, как синонимы, в результате чего вместо двух терминов реально используется только один. Например, в работе [1] может быть найдено следующее определение.

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

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

Для начала следует определиться, с тем, что следует понимать под понятием «программный продукт». Международный стандарт ISO / IEC 14598-1-6:1998-2001 « Software engineering — Product evaluation » даёт следующее определение этого термина.

Программный продукт (ПП) — множество компьютерных программ, процедур вместе с соответствующей документацией и данными.

Понятие «компьютерной программы» в данном стандарте не раскрывается, однако определение может быть найдено в ГОСТ 19781-90 «Программное обеспечение систем обработки информации. Термины и определения».

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

Рассмотрим несколько примеров определений терминов, имеющих отношение к вопросам обеспечения безопасности и защищённости ПП.

В работе [2] можно найти следующие определения:

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

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

Эксплуатационная безопасность — свойство ПО и информации не быть несанкционированно искаженными (измененными) на этапе эксплуатации КС.

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

Недостатками этих определений можно назвать:

  • игнорирование таких проблем, как нелегальное использование, копирование, тиражирование ПП, его компонент и данных;
  • игнорирование проблемы защиты информации, передаваемой ПП по локальным вычислительным сетям (ЛВС);
  • ограниченность рамками КС, в которой исполняется ПП, в то время как при помощи ПП, может быть нанесён ущерб пользователю, не причиняя при этом какого-либо вреда самой КС или её владельцу.

В стандартах ISO/ IEC 9126 «Software engineering — Product quality» можно найти следующие определения понятий защищённости и безопасности ПП.

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

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

Следует отметить в качестве достоинства определений то, что:

  • стандарт вводит понятие безопасности ПП, как характеристику качества в использовании (что подразумевает то, что безопасность ПП зависит от особенностей применения ПП), а защищённость, как характеристику внутреннего и внешнего качества ПП (подробности в [3]).
  • определения охватывают также вопросы защиты информации, передаваемой по ЛВС;
  • определение безопасности ПП не ограничивается рамками КС, где исполняется ПП, а рассматривает также угрозы жизни, здоровья человека, экологии и т.п. Что естественно, в виду широкого распространения ПП и использования их во всех сферах производства (в медицинском оборудовании, в системах управления автоматизированных линий заводов, в системах управления атомных электростанций и т.д.);
  • определение безопасности ПП вводит понятие риска. Известно, что абсолютной безопасности не бывает, каждый метод (способ) защиты информации имеет свои ограничения и недостатки, в результате – безопасность ПП может быть обеспечена только с определенной долей вероятности, которая наиболее часто выражается в некотором значении риска реализации той или иной угрозы.

Под понятием риска в этой статье понимается — сочетание вероятности события и его последствий. Под понятием угроза – потенциальная причина нежелательного инцидента, который может приводить к нанесению вреда системе или организации (определения из ГОСТ Р 51897-2002 «Менеджмент риска. Термины и определения»).

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

В качестве недостатков определения «безопасности ПП» можно выделить то, что в определении игнорируется тот факт, что при помощи ПП могут быть нарушены права пользователей (например, широко известные spyware- и adware-программы могут быть использованы в качестве инструментов для вторжения в личную жизнь пользователя, нарушения его права на частную жизнь [4]).

В результате следует отметить, что ни одно из определений не позволяет в достаточной мере описать проблемы безопасности и защищённости ПП и возникает необходимость их корректировки.

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

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

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

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

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

Предложенные варианты определений не идеальны, однако, по мнению автора, более адекватно отражают понятия защищённости и безопасности ПП.

Список использованных источников