Благодарю за курсовую по информационной безопасности, выполнено по всем требованиям и в срок))
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
Жизнь без компьютерных систем, гаджетов, программ, которые за нас все решают, сейчас мы и представить себе не сможем. Человечество очень быстро углубляется в мир технологий, нынешним поколениям уже довольно трудно представить свою жизнь без помощи технических разработок. Старательно пытаясь их улучшить, усовершенствовать. Но есть один нюанс: компьютерные коды – вещь открытая, и защитить этот код от исследования остаётся вопросом первостепенной важности. Многие направления науки и техники, имеющие отношение к получению, обработке, хранению и передаче информации, в значительной степени ориентируются на развитие современных компьютерных систем.
Цели данной работы: рассмотреть существующие компьютерные программы, их принцип действия, так же , способы и методы защиты исходных кодов от исследования, и предложить усовершенствованный и более эффективный способ.
Проблема защиты программного обеспечения от обратной разработки всегда была актуальна и повсеместна. Разработчик (или IT-компания) хочет обеспечить защиту своего продукта от копирования или предотвратить кражу интеллектуальной собственности, например, созданных алгоритмов. Тем не менее злоумышленники или недобросовестные программисты также имеют желание обратно разработать успешные чужие программные продукты, например, для их использования в собственных решениях или для поиска уязвимостей в программных системах для их последующего взлома.
1.1 Обфускация и деобфускация. Динамический анализ предполагает исследование программы во время её работы. При этом подходе изучаются обращения программы к памяти, потоки данных, которыми обмениваются процессы программы в ходе её работы, и любая другая необходимая информация, используется режим отладки, трассировка или логирование каких-либо интересных исследователю действий программы. Популярным методом защиты от статического и динамического анализа является обфускация программ, одним из самых эффективных подходов которой является обфускация с помощью виртуальной машины.
Обфускация, или запутывание кода, это приведение исходного кода программ к виду, трудному для программного анализа и человеческого понимания. Концепция, которой следует подход обфускации, заключается в безопасности через неясность. Символьная обфускация может проводится , когда происходит замена имен матаданных (имен классов, функций, переменных) или обфускация потока управления приложения.
Деобфускация – это процесс анализа обфусцированного кода с целью понять принципы его работы, иными словами, обратная разработка обфусцированных программ.
Давая пользователям доступ к установочным файлам программ, мы неизбежно раскрываем свои профессиональные секреты и наработки, и ничто не может останавить конкурентов от открытого копирования и воровства чужих алгоритмов. Обратим внимание и на другой пример, это важные обновления, исправляющие ошибки в операционных системах. Почти мгновенно очередное обновление анализируется хакерами, они выявляют проблему которую это обновление чинит, и атакуют несчастных, не успевших вовремя обновиться, пользователей. Написанная человеком программа может быть человеком же и понята, проанализирована, разобрана. А что если существовал бы алгоритм, который бы мог до неузнаваемости, необратимо переделать программу при этом сохраняя ее функциональность? Так чтобы программу совершенно невозможно было бы понять, но при этом она работала бы ничуть не хуже исходной? Такой алгоритм и называется «обфусцирующий» или «обфускатор».
Формально, если дана программа 𝑃, состоящая из объектов исходного кода {𝑆1, . . , 𝑆𝑘} (классы, методы, переменные, структуры данных, и т.д.), преобразование 𝑇 = {𝑇1, . . , 𝑇𝑛}, то программа 𝑃’ = 𝑇(𝑃) будет являться обфусцированной программой 𝑃, если:
1) Р’ имеет то же видимое поведение (так называемые динамические свойства), что и Р, то есть преобразование Т сохраняет семантику;
2) неясность 𝑃’ максимизирована, то есть понимание и обратная разработка Р’ занимает больше времени, чем обратная разработка Р, при использовании одних и тех же подходов к обратной разработке;
3) эффективность преобразования 𝑇𝑖(𝑆𝑖) максимизирована, то есть крайне трудно разработать автоматический инструмент для отмены преобразования или использование такого инструмента крайне времязатратно;
4) схожесть статических свойств 𝑇𝑖(𝑆𝑖) и 𝑆𝑖 максимизирована;
5) отличие производительностей 𝑃’ и Р минимизировано.
В распоряжении разработчиков на данный момент не существует хороших обфускаторов, а те обфускаторы, которые широко используются сегодня, весьма примитивны — они могут переставлять инструкции, заменять имена переменных, вставлять куски кода, которые на самом деле имеют нулевой эффект и делать аналогичные вещи, которые в целом можно назвать «безопасность через непонятность».
Предметом исследования в данной работе будут: дисассемблер, в котором мы рассмотрим принцип его воздействия на программу и сам машинный код. Обфусксация и деобфускация, Основные подходы к обфускации, метод её применения на практике, а так же принцип её действия. Защиту кода по средством отладчика и возможность противодействия данным методом. Разработку подхода для защиты кода, обфусцированного посредством виртуальных машин. А также юридическую сторону защиты исходного кода. Работа на оценку 5, оригинальность от 60%.
.Moy, R. (2000). A Case Against Software Patents. Santa Clara High Technology Law Journal, pp. 72-73.
2. Christian Collberg, C. T. (2000). Watermarking, Tamper-Proofing, and Obfuscation - Tools for Software Protection. University of Arizona Computer Science Technical Report, pp. 5.
3. Kevin Coogan, G. L. (2011). Deobfuscation of virtualization-obfuscated software: a semantics-based approach. Proceedings of the 18th ACM conference on Computer and communications security, pp. 1.
4.О методах деобфускации программ (Ш.Ф. Курмангалеев, К.Ю. Долгорукова, В.В. Савченко, А.Р. Нурмухаметов, Р.А. Матевосян, В.П. Корчагин)
5. Анализ запутывающих преобразований программ. Чернов А. В.,Труды Института Системного программирования РАН [электронный ресурс]
6. IT Pool «Заметки от первого лица об IT, новостях и старостях технологий...» Блог.
7. Сик, Ли, Ламсдэйн, C++ Boost Graph Library. Библиотека программиста / Пер.с английского Сузи Р. – СПб.: Питер,2006.- 304с. ил. ISBN 5-469-00352-3
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
Жизнь без компьютерных систем, гаджетов, программ, которые за нас все решают, сейчас мы и представить себе не сможем. Человечество очень быстро углубляется в мир технологий, нынешним поколениям уже довольно трудно представить свою жизнь без помощи технических разработок. Старательно пытаясь их улучшить, усовершенствовать. Но есть один нюанс: компьютерные коды – вещь открытая, и защитить этот код от исследования остаётся вопросом первостепенной важности. Многие направления науки и техники, имеющие отношение к получению, обработке, хранению и передаче информации, в значительной степени ориентируются на развитие современных компьютерных систем.
Цели данной работы: рассмотреть существующие компьютерные программы, их принцип действия, так же , способы и методы защиты исходных кодов от исследования, и предложить усовершенствованный и более эффективный способ.
Проблема защиты программного обеспечения от обратной разработки всегда была актуальна и повсеместна. Разработчик (или IT-компания) хочет обеспечить защиту своего продукта от копирования или предотвратить кражу интеллектуальной собственности, например, созданных алгоритмов. Тем не менее злоумышленники или недобросовестные программисты также имеют желание обратно разработать успешные чужие программные продукты, например, для их использования в собственных решениях или для поиска уязвимостей в программных системах для их последующего взлома.
1.1 Обфускация и деобфускация. Динамический анализ предполагает исследование программы во время её работы. При этом подходе изучаются обращения программы к памяти, потоки данных, которыми обмениваются процессы программы в ходе её работы, и любая другая необходимая информация, используется режим отладки, трассировка или логирование каких-либо интересных исследователю действий программы. Популярным методом защиты от статического и динамического анализа является обфускация программ, одним из самых эффективных подходов которой является обфускация с помощью виртуальной машины.
Обфускация, или запутывание кода, это приведение исходного кода программ к виду, трудному для программного анализа и человеческого понимания. Концепция, которой следует подход обфускации, заключается в безопасности через неясность. Символьная обфускация может проводится , когда происходит замена имен матаданных (имен классов, функций, переменных) или обфускация потока управления приложения.
Деобфускация – это процесс анализа обфусцированного кода с целью понять принципы его работы, иными словами, обратная разработка обфусцированных программ.
Давая пользователям доступ к установочным файлам программ, мы неизбежно раскрываем свои профессиональные секреты и наработки, и ничто не может останавить конкурентов от открытого копирования и воровства чужих алгоритмов. Обратим внимание и на другой пример, это важные обновления, исправляющие ошибки в операционных системах. Почти мгновенно очередное обновление анализируется хакерами, они выявляют проблему которую это обновление чинит, и атакуют несчастных, не успевших вовремя обновиться, пользователей. Написанная человеком программа может быть человеком же и понята, проанализирована, разобрана. А что если существовал бы алгоритм, который бы мог до неузнаваемости, необратимо переделать программу при этом сохраняя ее функциональность? Так чтобы программу совершенно невозможно было бы понять, но при этом она работала бы ничуть не хуже исходной? Такой алгоритм и называется «обфусцирующий» или «обфускатор».
Формально, если дана программа 𝑃, состоящая из объектов исходного кода {𝑆1, . . , 𝑆𝑘} (классы, методы, переменные, структуры данных, и т.д.), преобразование 𝑇 = {𝑇1, . . , 𝑇𝑛}, то программа 𝑃’ = 𝑇(𝑃) будет являться обфусцированной программой 𝑃, если:
1) Р’ имеет то же видимое поведение (так называемые динамические свойства), что и Р, то есть преобразование Т сохраняет семантику;
2) неясность 𝑃’ максимизирована, то есть понимание и обратная разработка Р’ занимает больше времени, чем обратная разработка Р, при использовании одних и тех же подходов к обратной разработке;
3) эффективность преобразования 𝑇𝑖(𝑆𝑖) максимизирована, то есть крайне трудно разработать автоматический инструмент для отмены преобразования или использование такого инструмента крайне времязатратно;
4) схожесть статических свойств 𝑇𝑖(𝑆𝑖) и 𝑆𝑖 максимизирована;
5) отличие производительностей 𝑃’ и Р минимизировано.
В распоряжении разработчиков на данный момент не существует хороших обфускаторов, а те обфускаторы, которые широко используются сегодня, весьма примитивны — они могут переставлять инструкции, заменять имена переменных, вставлять куски кода, которые на самом деле имеют нулевой эффект и делать аналогичные вещи, которые в целом можно назвать «безопасность через непонятность».
Предметом исследования в данной работе будут: дисассемблер, в котором мы рассмотрим принцип его воздействия на программу и сам машинный код. Обфусксация и деобфускация, Основные подходы к обфускации, метод её применения на практике, а так же принцип её действия. Защиту кода по средством отладчика и возможность противодействия данным методом. Разработку подхода для защиты кода, обфусцированного посредством виртуальных машин. А также юридическую сторону защиты исходного кода. Работа на оценку 5, оригинальность от 60%.
.Moy, R. (2000). A Case Against Software Patents. Santa Clara High Technology Law Journal, pp. 72-73.
2. Christian Collberg, C. T. (2000). Watermarking, Tamper-Proofing, and Obfuscation - Tools for Software Protection. University of Arizona Computer Science Technical Report, pp. 5.
3. Kevin Coogan, G. L. (2011). Deobfuscation of virtualization-obfuscated software: a semantics-based approach. Proceedings of the 18th ACM conference on Computer and communications security, pp. 1.
4.О методах деобфускации программ (Ш.Ф. Курмангалеев, К.Ю. Долгорукова, В.В. Савченко, А.Р. Нурмухаметов, Р.А. Матевосян, В.П. Корчагин)
5. Анализ запутывающих преобразований программ. Чернов А. В.,Труды Института Системного программирования РАН [электронный ресурс]
6. IT Pool «Заметки от первого лица об IT, новостях и старостях технологий...» Блог.
7. Сик, Ли, Ламсдэйн, C++ Boost Graph Library. Библиотека программиста / Пер.с английского Сузи Р. – СПб.: Питер,2006.- 304с. ил. ISBN 5-469-00352-3
Купить эту работу vs Заказать новую | ||
---|---|---|
0 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
730 ₽ | Цена | от 500 ₽ |
Не подошла эта работа?
В нашей базе 150498 Курсовых работ — поможем найти подходящую