Скачиваний:
244
Добавлен:
02.05.2014
Размер:
396.29 Кб
Скачать

Глава 1. Введение в теорию обеспечения безопасности программного обеспечения 15

1.1. Зачем и от кого нужно защищать программное обеспечение компьютерных систем 15

1.2. Угрозы безопасности программного обеспечения 19

1.2.1. Разрушающие программные средства 19

1.2.2. Несанкционированное копирование, распространение и использование программ 22

1.3. Принятая аксиоматика и терминология 24

1.3.1. Основные предположения и ограничения 24

1.3.2. Используемая терминология 26

1.4. Жизненный цикл программного обеспечения компьютерных систем. Технологическая и эксплуатационная безопасность программ 28

1.5. Модели угроз безопасности программного обеспечения 30

1.5.1. Вводные замечания 30

1.5.2. Подходы к созданию модели угроз технологической безопасности ПО 30

1.5.3. Элементы модели угроз эксплуатационной безопасности ПО 31

ПРОЕКТИРОВАНИЕ 34

КОДИРОВАНИЕ 35

1.5.4. Модель разрушающего программного средства 41

1.6. Основные принципы обеспечения безопасности ПО 53

424

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

Предметный указатель 448

Предисловие

«Целью настоящего курса является углубление и развитие трудностей, лежащих в основе современной теории...»

А.А. Власов

Из кн. «Физики шутят». – М.: Мир, 1993.

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

www.kiev-security.org.ua

BEST rus DOC FOR FULL SECURITY

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

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

www.kiev-security.org.ua

BEST rus DOC FOR FULL SECURITY

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

В связи с этим, в гл. 1 рассмотрены методологические основы проблемы защиты программ различных объектов автоматизации. Описаны жизненный цикл современных программных комплексов, модели угроз и принципы обеспечения безопасности программного обеспечения.

В главах 2-10 рассмотрены современные методы обеспечения безопасности программ на этапе их разработки и испытаний. Важное место отводится методам создания алгоритмически безопасного программного обеспечения, позволяющим «игнорировать», а в ряде случаев и устранять, программные дефекты деструктивного характера. При этом в главах 2 и 3 рассматриваются методы высокоуровневой защиты программ от так называемых «программных закладок», а в главах 4 и 5 – теоретические основы защиты программ от компьютерных вирусов и от копирования. В главах 6-10 рассматриваются вопросы обеспечения технологической безопасности программ, реализуемые на этапах тестирования и испытания программных комплексов и методы защиты программ от генерации программных закладок инструментальными средствами.

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

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

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

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

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

С благодарностью, автор

Соседние файлы в папке Казарин О.В. Теория и практика защиты программ