Проблема безопасности программного обеспечения

Автор работы: Пользователь скрыл имя, 23 Января 2013 в 01:15, лекция

Описание

Неизбежное следствие этого - резкое увеличение объемов и сложности программных средств, используемых в ЭВМ, системах оружия, автоматизированных системах боевого управления и связи, вспомогательных и обеспечивающих системах военного назначения. В докладе комиссии конгресса США по "ключевым технологиям военного назначения" (май 1991 года) отмечено, что при разработке образцов "умного оружия" (при дальнейшей компьютеризации и интеллектуализации систем военного назначения) неизбежен парадокс, заключающийся в том, что "фундаментальный источник технологического прогресса одновременно является и растущим источником технологической уязвимости"

Работа состоит из  1 файл

лекция 1.doc

— 290.00 Кб (Скачать документ)


Проблемы безопасности программного обеспечения. 

Проблема безопасности ПО

Неизбежное следствие  этого - резкое увеличение объемов и  сложности программных средств, используемых в ЭВМ, системах оружия, автоматизированных системах боевого управления и связи, вспомогательных и обеспечивающих системах военного назначения. В докладе комиссии конгресса США по "ключевым технологиям военного назначения" (май 1991 года) отмечено, что при разработке образцов "умного оружия" (при дальнейшей компьютеризации и интеллектуализации систем военного назначения) неизбежен парадокс, заключающийся в том, что "фундаментальный источник технологического прогресса одновременно является и растущим источником технологической уязвимости". Кроме военных систем, к критическим системам относятся вычислительные системы, отказ которых или отступление от задаваемых ограничений может повлечь за собой серьезные последствия, например, вычислительные системы банков, атомных, химических и других опасных производств, связи и транспорта, здравоохранения, а также другие системы реального времени и встроенные вычислительные системы. Зависимость критических систем от программных средств порождает необходимость придания применяемым в них программным средствам заданных свойств безопасности и способности противостоять разрушению, нарушениям функционирования системы, сбоям, преднамеренным воздействиям злоумышленников и ошибкам различных видов при выполнении критической системой основной целевой функции. По всем оценкам иностранных экспертов, к настоящему времени сложилась ситуация, когда боевые возможности и устойчивость систем современного оружия определяются показателями качества и надежности программных средств (в большей степени по сравнению с аппаратными средствами). Программное обеспечение становится источником уязвимости современных оборонных систем, а использование программных средств в составе систем оружия, боевого управления и связи, а также других критических систем порождает новую проблему - обеспечение технологической безопасности программных средств военного назначения. В качестве примера можно привести нарушения штатных режимов работы ракетных комплексов, вызванных дефектами бортового программного обеспечения, входящего в состав системы боевого управления стратегическими силами. Они могут стать детонаторами ядерного конфликта. Общеизвестны факты сбоев в американской системе предупреждения о ракетном нападении "Бимьюс" из-за программных дефектов. Поэтому программное обеспечение становится новым источником уязвимости современных оборонных систем, других критических систем. Использование программных средств в составе таких систем порождает новую проблему - обеспечение технологической безопасности этих средств. Впервые такая проблема возникла в середине бО-х годов. В то время специалисты, создававшие системы обработки информации и управления, столкнулись с новым явлением. Оказалось, что надежность работы этих систем зависит от программ, которые выполняются в данный момент на ЭВМ. Доработка или замена программ позволяла ликвидировать некоторые отказы, однако могла привести и к появлению отказов другого вида. Сейчас опасность программного обеспечения сложных систем (в первую очередь военного назначения) связана с возможностью внесения в программные средства преднамеренных дефектов, именуемых "программными закладками", которые служат для целенаправленного скрытого воздействия на техническую или информационную систему. Вероятно, "программные закладки" являются логическим продолжением так называемых "электронных закладок" (скрытых технических устройств), публикации о которых часто появлялись в прессе во времена "холодной войны", а также результатом осмысления аналогичных возможностей использования программных средств. Иностранные эксперты отмечают, что "программные закладки" могут быть достаточно эффективно применены в военных целях в качестве активного элемента информационно-кибернетического противодействия. При этом они подчеркивают, что чем выше степень компьютеризации и интеллектуализации систем военного назначения, тем больше вероятность появления "закладок". Поэтому одной из современных особенностей проектирования и разработки программного обеспечения военного назначения является необходимость обеспечения его технологической безопасности.

Разработчик "программной закладки" (алгоритмист, программист или системотехник) может осуществлять такие действия либо случайно, либо преднамеренно. Последнее  вызывает особую озабоченность соответствующих  спецслужб за рубежом. По мнению западных специалистов, "программная закладка" может быть реализована в виде нескольких команд и иметь достаточно сложный и "тонкий" механизм активизации, "настроенный" на условия реального боевого применения системы оружия либо на строго определенную комбинацию входных данных. "Закладка" может быть включена в состав как общего программного обеспечения вычислительной установки, так и специальных (прикладных) программных средств, реализующих алгоритм преобразования информации. В зарубежной технической литературе "'программные закладки" разделяются на автоматические и управляемые. Первые, как правило, имеют механизм срабатывании, заранее настроенный ~прямо или косвенно) на условия реального боевого применения систем оружия либо боевого управления, а вторые имеют механизм их активизации, контролируемый извне (например, посредством "электронной закладки"). Выявить наличие "программной закладки" в программном обеспечении большого объема и сложности весьма затруднительно, так как она может быть замаскирована под реально существующий алгоритм или его часть. Положение усугубляется полным незнанием условий и момента срабатывания "программной закладки", а также отсутствием прямых и косвенных признаков ее наличия в составе программного обеспечения. Мнение специалистов и разработчиков однозначно: "программные закладки" (по сравнению с широко применяемыми "злектронными закладками") являются более изощренными и трудно идентифицируемыми объектами. Последствием активизации "программных закладок" может быть полное или частичное нарушение работоспособности системы, несанкционированный доступ к защищенной конфиденциальной информации : (минуя комплекс средств защиты и разграничения доступа), потеря или искажение информации в специальных банках данных и т.д. Наибольшую опасность они представляют для систем оружия одноразового боевого применения, например ракетных комплексов стратегического назначения, а также для систем 6оевого управления, имеющих логическое разделение каналов 6оевого и дежурного режимов. Эксперты ряда стран, анализируя вероятные последствия применения "программных закладок", выявили, что одним из них может быть блокирование возможности боевого применения системы оружия определенного класса или информационной системы военного назначения. Другими словами, это означает, что, о6ладая мощным оружием для сдерживания потенциального противника, можно фактически оказаться безоружным. В иностранной прессе в качестве иллюстрации такой ситуации приводится военный конфликт в Персидском заливе. Система ПВО Ирака оказалась заблокированной по неизвестной причине во время проведения операции "Буря в пустыне". В результате иракская сторона была вынуждена оставить без ответа бомбовые удары по своей территории. Несмотря на отсутствие исчерпывающей информации, многие иностранные специалисты высказывают предположение, что закупленные Ираком у Франции ЭВМ, входящие в комплекс технических средств системы ПВО, содержали специальные управляемые "электронные закладки", блокировавшие работу вычислительной системы.

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

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

Термины и определения

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

Реализацией недекларированных возможностей, в частности, являются программные закладки.

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

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

В качестве функциональных объектов могут выступать процедуры, функции, ветви, операторы и т.п.

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

2.5. Маршрут выполнения функциональных объектов — определенная алгоритмом последовательность выполняемых функциональных объектов.

2.6. Фактический маршрут выполнения функциональных объектов — последовательность фактически выполняемых функциональных объектов при определённых условиях (входных данных).

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

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

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

Угрозы безопасности автоматизированным информационным системам (программные злоупотребления)

Программные злоупотребления могут быть разделены по своему назначению на два больших класса: тактические и стратегические (рис. 2) [28]. Тактические программные злоупотребления предназначаются для достижения ближайших целей: получения паролей, несанкционированного доступа, ра6зрушения информации и других действий. Тактические программные злоупотребления обычно используются для подготовки и реализации стратегических злоупотреблений. Стратегические программные злоупотребления направлены на реализацию далеко идущих целей и связаны с большими финансовыми потерями для АИС и объекта управления.

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

1. Программы получения паролей — это две большие группы программ, которые предназначены для получения идентификаторов и паролей пользователей. В [17] с данным злоупотреблением связывается термин "взлом системы".

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

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

2. "Люки" или "trap door" — не описанные в документации возможности работы с программным продуктом [17, 29 и др.]. В [29] автор приравнивает программы открытия паролей к так называемым "люкам", которые на сегодняшний день формируются в самостоятельную группу злоупотреблений.

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

Люки могут появиться в программном продукте следующими путями:

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

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

Информация о работе Проблема безопасности программного обеспечения