это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
ID (номер) заказа
3757763
Ознакомительный фрагмент работы:
Введение
В настоящее время значительное внимание уделяется проблеме возможного наличия в программном обеспечении (ПО) функциональных возможностей, способных привести к последствиям и тем самым нанести ущерб правообладателю или потребителю. Особую актуальность данная проблема приобретает для ПО, используемого для обработки информации, к которой предъявляются требования по безопасности. Одним из наиболее значимых факторов угрозы нарушения безопасности информации, является наличие уязвимостей в ПО, реализующем процессы обработки информации. Под уязвимостью понимается программный код, выполнение которого может нарушить безопасность обрабатываемой информации при появлении определенных условий. При этом наличие уязвимости может быть обусловлено как ошибками разработчика, так и его умышленными действиями. В связи с этим серьезные усилия специалистов сосредоточены на разработке и совершенствовании подходов к исследованиям ПО на предмет отсутствия в нем уязвимостей. Оценка влияния информационных воздействий на ПО является важнейшей частью общего процесса выявления уязвимостей и выделена в отдельное направление.Оценка защищенности информационных технологий определяется, в первую очередь, наличием законодательных актов и нормативно-технических документов по обеспечению безопасности информационных технологий. Критерии оценки безопасности информационных технологий занимают среди них особое место. Только стандартизованные критерии позволяют проводить сравнительный анализ и сопоставимую оценку изделий информационных технологий.1 Защита программного обеспеченияПроблемы защиты программного обеспечение в области контроля над его использованием и дальнейшим распространением в настоящее время принято решать при помощи программно-технических средств - систем защиты ПО. В то же время для обхода и отключения подобных систем защиты существует множество инструментальных средств. Возникает задача сопоставить возможности средств защиты ПО с возможностями средств их преодоления. Результаты такого анализа будут полезны для оценки рисков при производстве программных продуктов, а так же планировании и оценке уровня стойкости систем защиты ПО.У системы защиты ПО существуют ряд основных проблем, с которыми она должна справляться:- кража интеллектуальной собственности или конфиденциальных данных содержащихся в программе (в том числе восстановление логики работы программы);- несанкционированное использование либо распространение ПО (кража, копирование, пиратство);- несанкционированная модификация ПО;Рассмотрим подробнее эти методы атаки на программное обеспечение.Пиратство - вид деятельности, связанный с неправомерным распространением или использованием ПО. Существует множество способов проведения таких атак, среди которых (но не ограничиваясь ими) можно выделить следующие:- неправомерное копирование - перенос программы на другой компьютер и ее выполнение на нем в случае, если это не разрешено лицензией. Следует отметить, что для противодействия этой атаке важно сделать невозможным не столько копирование программы, сколько ее выполнение на другом компьютере. Этот вид атаки мало распространен в связи с несовместимостью с современной бизнес-моделью распространения ПО;- неправомерное использование - выполнение программы (либо использование ее результатов) пользователем, которому автор или владелец не предоставил разрешения на выполнение;- нарушение требований лицензии на ПО;- перепродажа программного продукта от своего имени.Незаконное копирование и перепродажа ПО, а также несанкционированное его использование лицами, которые не имеют на это права, ежегодно обходится производителям, по разным оценкам, потерями от 10 до 12 млрд. долларов. По данным Business Software Alliance, 36% всего используемого в мире ПО является пиратским. Можно утверждать, что пиратство - основная проблема для разработчиков и распространителей коммерческого ПО. Это подтверждается и обилием решений для противостояния пиратству. За всю историю коммерческого ПО были придуманы тысячи способов (как программных, так и аппаратных) защиты ПО от нелегального использования и распространения.Кража интеллектуальной собственности или конфиденциальных данных - это целенаправленный процесс анализа кода ПО с целью извлечения из него определенных функциональных возможностей, а также раскрытия алгоритмов или данных, используемых в программе, которые могут представлять интерес для атакующего. Анализируя извлеченные из программы данные, атакующий (называемый также обратным проектировщиком, или реверс - инженером) может получить доступ к алгоритмам программы. Возможно, некоторые из этих алгоритмов защищены патентами или просто должны сохраняться в секрете (например, по причине манипулирования секретными ключами).Основными инструментами реверс-инженера являются дизассемблер и отладчик (большинство современных реализаций объединяют эти инструменты в одном продукте). Дизассемблер позволяет по выполняемому коду восстановить исходный код программы в виде инструкций на языке ассемблера, а в некоторых случаях - и в виде программы на языке более высокого уровня (например, С). Отладчик позволяет загрузить программу «внутрь себя» и контролировать ход ее выполнения (выполнять инструкции программы «по шагам», предоставлять доступ к ее адресному пространству, отслеживать обращения к разным участкам памяти). Следует отметить, что реверс-инженер может обойтись и без этих средств, просто рассматривая программу как «черный ящик», подавая ей на вход специальным образом сформированные данные и анализируя выходные данные. Однако анализ по методу «черного ящика» крайне неэффективен ввиду его малой производительности. Поскольку этот метод практически не используется при взломе программ, вопрос противодействия ему не будем рассматривать.Стоить отметить, что обратный анализ программ, написанных на языках, которые компилируются в промежуточный интерпретируемый код (например, Java, C# и другие CLR-языки), на порядок проще программ, написанных на языках, компилирующихся в машинный код, поскольку в исполняемый код таких программ записывается информация про их семантическую структуру (об их классах, полях, методах и т.д.). В связи с возросшей популярностью таких языков программирования (и, в частности, .NET Framework) задача защиты программ, написанных с их использованием, становится все более актуальной.Модификация кода программы – преднамеренное или непреднамеренное изменение выполняемого кода программы, приводящее к отклонениям программы от нормального хода выполнения. Например, атакующий может изменить процедуру проверки лицензионного ключа так, чтобы для любого переданного значения она возвращала TRUE, и, таким образом, программа бы считала любое значение лицензионного ключа корректным. Кроме того, атакующий может добавить в программу - жертву код, отсылающий конфиденциальную информацию об окружении, в котором она выполняется, на его компьютер. Способность программы определять, что она была изменена, очень важна, так как изменения, внесенные в программу, могут привести к самым печальным последствиям (например, в случае, если программа обслуживает больницу, электростанцию или другую критическую службу). Отдельно стоит отметить, что подобные атаки могут быть выполнены компьютерными вирусами, заражающими исполняемый код. Если программа сумеет противостоять заражению (или определить, что она была заражена), это сможет существенно снизить темпы распространения вирусной эпидемии.Следует отметить, что вышеперечисленные виды атак не являются независимыми друг от друга. Скорее, даже наоборот - они очень тесно переплетены между собой. Так, проблема создания генератора ключей (пиратство) опирается на исследование, каким образом в программе выполняется проверка лицензионного ключа (реверс-инженерию); еще один подход софтверных пиратов - удаление из программы кода проверки лицензионного ключа - связан с модификацией кода. Поэтому рассматривать атаки независимо друг от друга не имеет смысла, нужно сконцентрироваться на методах, обеспечивающих максимальное противодействие всем видам атак одновременно.Угрозы безопасности информации и программного обеспечения возникают как в процессе их эксплуатации, так и при создании этих систем, что особенно характерно для процесса разработки ПО.При решении проблемы повышения уровня защищенности информационных ресурсов необходимо исходить из того, что наиболее вероятным информационным объектом воздействия будет выступать программное обеспечение, составляющее основу комплекса средств получения, семантической переработки, распределения и хранения данных.Построение надежной защиты компьютерной системы невозможно без предварительного анализа возможных угроз безопасности системы. Этот анализ должен включать в себя:- выявление характера хранящейся в системе информации, выделение наиболее опасных угроз (несанкционированное чтение, несанкционированное изменение и т.д.);- оценку затрат времени и средств на вскрытие системы, допустимых для злоумышленников;- оценку ценности информации, хранящейся в системе;- построение модели злоумышленника (другими словами, определение того, от кого нужно защищаться - от постороннего лица, пользователя системы, администратора и т.д.);- оценку допустимых затрат времени, средств и ресурсов системы на организацию ее защиты.2 Методы защиты программ от исследованияДля защиты программ от исследования необходимо применять методы защиты от исследования файла с ее исполняемым кодом, хранящемся на внешнем носителе, а также методы защиты исполняемого кода, загружаемого в оперативную память для выполнения этой программы.В первом случае защита может быть основана на шифровании секретной части программы, а во втором - на блокировании доступа к исполняемому коду программы в оперативной памяти со стороны отладчиков. Кроме того, перед завершением работы защищаемой программы должен обнуляться весь ее код в оперативной памяти. Это предотвратит возможность несанкционированного копирования из оперативной памяти дешифрованного исполняемого кода после выполнения защищаемой программы.Таким образом, защищаемая от исследования программа должна включать следующие компоненты:- инициализатор;- зашифрованную секретную часть;- деструктор (деициниализатор).Инициализатор должен обеспечивать выполнение следующих функций:- сохранение параметров операционной среды функционирования (векторов прерываний, содержимого регистров процессора и т.д.);- запрет всех внутренних и внешних прерываний, обработка которых не может быть запротоколирована в защищаемой программе;- загрузка в оперативную память и дешифрование кода секретной части программы;- передача управления секретной части программы.Секретная часть программы предназначена для выполнения основныхцелевых функций программы и защищается шифрованием для предупреждения внесения в нее программной закладки.Деструктор после выполнения секретной части программы должен выполнить следующие действия:- обнуление секретного кода программы в оперативной памяти;- восстановление параметров операционной системы (векторов прерываний, содержимого регистров процессора и т.д.), которые были установлены до запрета неконтролируемых прерываний;- выполнение операций, которые невозможно было выполнить при запрете неконтролируемых прерываний;- освобождение всех незадействованных ресурсов компьютера и завершение работы программы.Для большей надежности инициализатор может быть частично зашифрован и по мере выполнения может дешифровать сам себя. Дешифроваться по мере выполнения может и секретная часть программы. Такое дешифрование называется динамическим дешифрованием исполняемого кода. В этом случае очередные участки программ перед непосредственным исполнением расшифровываются, а после исполнения сразу уничтожаются.Для повышения эффективности защиты программ от исследования необходимо внесение в программу дополнительных функций безопасности, направленных на защиту от трассировки. К таким функциям можно отнести:- периодический подсчет контрольной суммы области оперативной памяти, занимаемой защищаемым исходным кодом; сравнение текущей контрольной суммы с предварительно сформированной эталонной и принятие необходимых мер в случае несовпадения;- проверку количества занимаемой защищаемой программой оперативной памяти; сравнение с объемом, к которому программа адаптирована, и принятие необходимых мер в случае несоответствия;- контроль времени выполнения отдельных частей программы;- блокировку клавиатуры на время отработки особо секретных алгоритмов.Для защиты программ от исследования с помощью дизассемблеров можно использовать и такой способ, как усложнение структуры самой программы с целью запутывания злоумышленника, который дизассемблирует эту программу. Например, можно использовать разные сегменты адреса для обращения к одной и той же области памяти. В этом случае злоумышленнику будет трудно догадаться, что на самом деле программа работает с одной и той же областью памяти.
Заключение
Количество и уровень деструктивности угроз безопасности для программных комплексов компьютерных систем как со стороны внешних, так и со стороны внутренних источников угроз постоянно возрастает. Это объясняется стремительным развитием компьютерных и телекоммуникационных средств, глобальных информационных систем, необходимостью разработки для них сложного программного обеспечения с применение современных средств автоматизации процесса проектирования программ. Кроме того, это объясняется значительным или даже резким повышением в последнее время активности деятельности хакеров и групп хакеров, атакующих компьютерные системы, криминальных групп компьютерных взломщиков, различных специальных подразделений и служб, осуществляющих свою деятельность в области создания средств воздействия на критически уязвимые объекты информатизации.Необходимой составляющей проблемы обеспечения информационной безопасности программного обеспечения является общегосударственная система стандартов и других нормативных и методических документов по безопасности информации (ознакомиться с большей их частью можно в главе 4), а также международные стандарты и рекомендации по управлению качеством программного обеспечения, которые позволяет предъявить к создаваемым и эксплуатируемым программных комплексам требуемый уровень реализации защитных функций.
Список использованной литературы
1. Девянин П. Н. и др. Теоретические основы компьютерной безопасности: Учеб. пособие для вузов. - М.: Радио и связь, 2000. - 192 с. 2. Белкин П.Ю. Новое поколение вирусов принципы работы и методы защиты// Защита информации. - 1997.- №2.-С.35-40.3.Ефимов А.И., Пальчун Б.П. О технологической безопасности компьютерной инфосферы// Вопросы защиты информации. - 1995.- №3(30).4. Касперски К, Техника и философия хакерских атак. Изд.2. - М.: Солон-Р, 2005.5. Мирошниченко Е. А. Технологии программирования: учебное пособие / Е. А. Мирошниченко. - 2-е изд., испр. и доп. - Томск: Изд-во Томского политехнического университета, 2008. - 128 с.6. Тимченко А.А., Колесников К.В., Шадхин В.Е. Системный анализ критериев и параметров проектирования системы защиты – 2006. – №2. – С.63-65.7. Цивин СВ. Методы защиты программных средств вне доверенной вы-числительной среды: Автореф. дисс. к.т.н. - Пенза, 2000. - 21 с.8. NET и Microsoft Windows. - М.: «Русская редакция», 2004. - 736 с.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Составить рисковый проект (проектирование объекта по управлению рисками)
Контрольная, Проектный менеджмент
Срок сдачи к 8 дек.
Написать реферат по теме: «Государство всеобщего благоденствия»: концепция К. Мюрдаля.
Реферат, Политические и правовые учения
Срок сдачи к 8 дек.
Административно-правовое регулирования в сфере профилактики правонарушений несовершеннолетних
Диплом, Юриспруденция
Срок сдачи к 5 дек.
Конституционные основы статуса иностранцев и лиц без гражданства в России.
Курсовая, Конституционное право
Срок сдачи к 12 дек.
Физическая культура и спорт в высшем учебном заведении.
Реферат, Физическая культура
Срок сдачи к 6 дек.
Тенденции развития института участия прокурора в арбитражном судопроизводстве.
Курсовая, Прокурорский надзор
Срок сдачи к 15 дек.
Описание задания в файле, необходимо выполнить 6 вариант
Курсовая, Схемотехника
Срок сдачи к 20 янв.
Аристотель, 15 страниц, не менее 5 источников и ссылки указывающие на...
Реферат, Философия
Срок сдачи к 12 дек.
Нужен реферат на 10 листов
Реферат, Математическое Моделирование Водных Экосистем
Срок сдачи к 11 дек.
Финансовый анализ компании Wildberries - участие компании на рынке ценных бумаг и использование компанией деривативов и валюты в рамках своей деятельности
Доклад, Финансы
Срок сдачи к 11 дек.
Заполните форму и узнайте цену на индивидуальную работу!