Взломанное программное обеспечение. 1 Понятие взлома программного обеспечения 6 2 Виды и методы взлома 7
Скачать 44.89 Kb.
|
Титульник Содержание Определения 3 Введение 4 1 Понятие взлома программного обеспечения 6 2 Виды и методы взлома 7 3 Принципы взлома программного обеспечения 10 4 Программы, использующиеся для взлома 11 5 Опасность взломанного программного обеспечения 13 Заключение 15 Список использованных источников 16 ОпределенияАссемблер— транслятор программы из текста на языке ассемблера, в программу на машинном языке; Вредоносный код - это компьютерный код или веб-скрипт, преднамеренно разработанный для создания уязвимостей в системе, с помощью которых он выполняет несанкционированные вредоносные действия, такие как кража информации и данных и другие потенциальные повреждения файлов и вычислительных систем; Дамп - информация, скопированная из памяти компьютера на выходное или записывающее устройство; Дизассемблер — транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера; Дизассемблирование - процесс и/или способ получения исходного текста программы на ассемблере из программы в машинных кодах; Машинный код— система команд (набор кодов операций) конкретной вычислительной машины, которая интерпретируется непосредственно процессором или микропрограммами этой вычислительной машины; Пиратское программное обеспечение – это контрафактное ПО, которое киберпреступники нелегально копируют и продают; Программное обеспечение — программа или множество программ, используемых для управления компьютером; Стиллер — тип вредоносного ПО, который находится на зараженном компьютере и собирает данные, чтобы отправить его злоумышленнику для использования; Утилита— вспомогательная компьютерная программа в составе общего программного обеспечения для выполнения специализированных типовых задач, связанных с работой оборудования и операционной системы. Введение20-25 лет назад, при монополии Windows 95/98 и знаменитом Intel Pentium, понятие "легальное программное обеспечение" даже не было известно отечественным пользователям ПК, так как все приложения распространялись и хранились на дисках (сначала еще дискетах), которые можно было приобрести только в специализированных магазинах. Никто не задумывался о том, что диски с программами или играми могут быть пиратскими. Как вы знаете, нет такой защиты, которую нельзя было бы сломить. Все программы рано или поздно будут взломаны. Затем в Сети появляются сомнительные серийные ключи, специальные исправления, иногда просто модифицированные файлы, которые позволяют программе работать без покупки у разработчика. Будьте уверены, существует не более сотни программ, которые никогда не взламывались, и то только потому, что они узкоспециализированы, надежно защищены, а та узкая специализация, которая спасает их от взлома, не является надежной защитой. Профессиональные программисты давно осознали важность безопасности кода. После выхода в 2001 году книги авторов, Виеги и Макгроу "построение безопасного программного обеспечения", уже был опубликован ряд книг, которые окончательно определяют безопасность как критический элемент программы. Конечной целью взлома системы является получение несанкционированного доступа к этой системе для кражи, изменения конфиденциальной информации или других преступлений, когда все секреты установленных программ уже раскрыты, и хакер имеет неограниченный доступ к оболочке. Взлом компьютера почти всегда осуществляется с помощью установленного программного обеспечения. Чаще всего атакованный компьютер не является обычной системой. Почти все современные компьютерные системы имеют собственную" ахиллесову пяту " программного обеспечения. В процессе своего развития программное обеспечение стало выходить за рамки технических средств и стало проникать в различные сферы человеческой деятельности. Использование программного обеспечения в бизнесе и армии стало почти обычным делом. Если в программах будут допущены ошибки, деловой мир понесет огромные убытки. Программное обеспечение управляет каналами поставок, обеспечивает доступ к глобальной информации, позволяет управлять заводами и фабриками и взаимодействовать с клиентами. Любой сбой такого программного обеспечения может привести к серьезным последствиям: предоставление конфиденциальной информации неавторизованным пользователям (в том числе хакерам); отказ и "замораживание" систем из-за предоставления неверных данных; возможность для хакера встраивать и выполнять код; выполнение привилегированных приказов хакера. Функции безопасности были добавлены в большинство программ, предназначенных для взаимодействия через сеть. Хотя стереотипы в фильмах, что "легко угадать пароль" в основном верен, пароли только иногда останавливают хакеров. Это относится только к злоумышленникам, которые "пытаются войти в парадную дверь". Проблема в том, что многие механизмы, предназначенные для защиты программного обеспечения от взлома, являются самой программой, которая может стать целью более сложной атаки. Поскольку большинство функций безопасности являются лишь частью программного обеспечения, эти проверки можно обойти. Хотя современные фильмы показывают, что хакеры изобретают пароли, в реальной жизни хакеры работают с более сложными функциями безопасности. В 1990-х годах были обнаружены и представлены широкой общественности десятки тысяч сбоев программного обеспечения, связанных с безопасностью. Наличие этих ошибок привело к распространению атакующих программ. На сегодняшний день в компьютерных сетях по всей планете созданы десятки тысяч так называемых "секретных ходов". Таковы последствия хакерского взрыва в конце XX века. Целью данной работы является детальное изучение концепции, принципов и методов взлома. Задачи: Рассмотреть понятие взлома программного обеспечения; Изучить методы и способы взлома; Выявить основные принципы взлома; Рассмотреть виды вспомогательных программ, которые используются при взломе программного обеспечения; Изучить чем опасно взломанное программное обеспечение. 1 Понятие взлома программного обеспеченияВзлом программного обеспечения — деятельность, направленная на устранение защиты программного обеспечения (ПО), заложенного разработчиками с целью ограничения функциональности. Последнее необходимо для того, чтобы стимулировать покупку такого проприетарного программного обеспечения, и тогда ограничения снимаются. Существуют разные цели взлома: от простого любопытства до желания денег. Специалисты по взлому обычно называются по-разному, в зависимости от используемых методов, например хакеры, реверс-инженеры, вирусные аналитики и т. д. Эти люди характеризуются развитой интуицией, программистским мышлением и творческими навыками, а также навыками программирования на многих языках и его теории. Специальные программы, используемые для взлома определенных программ, называются крэк. Крык (также искаженный кряк, очень редко крак) — это программа, которая позволяет взламывать программное обеспечение. Обычно предназначена для массового использования. По сути, крык является воплощением одного из видов взлома, как часто это обычный патч. В случае со словом крэк используются следующие эвфемизмы:" лекарство"," таблетки"," Аспирин " и т. д. Крекер - также искаженный крякер) - человек, создающий крэк. Программист, который пишет коды крэк для взлома программ, называют крэкером. Большинство крэкеров работают под управлением операционной системы Windows, поскольку в настоящее время она являются наиболее распространенной операционной системой, на них написано гораздо больше программ, чем на других операционных системах, таких как Linux или UNIX. В глобальной сети Интернет можно найти инструменты для взлома и примеры взлома программ. 2 Виды и методы взломаВ большинстве случаев тип взлома определяется типом защиты программного обеспечения. Защита программного обеспечения — это комплекс мер, направленных на защиту программного обеспечения от несанкционированное приобретение, использование, распространение, модификацию, изучение и воссоздание аналогов. В качестве мер защиты используется Локальная программная защита. Требование ввести серийный номер (ключ) во время установки/запуска. История этого метода началась, когда приложения распространялись только на физических носителях (таких как CD-ROM). В коробке на диске напечатан серийный номер, который соответствует только этой копии программы. Сетевая программная защита: локальная и глобальная. Для локальной защиты сетевое сканирование предотвращает одновременное выполнение двух программ с одним и тем же регистрационным ключом на двух компьютерах в одной локальной сети. Однако программа работает с централизованным сервером, не будучи бесполезной (например, игровые серверы онлайн, серверы обновления антивирусов). Она может переслать серийный номер на сервер, если номер неверен, сервер отказывается от услуги. Защита при помощи компакт-дисков. Программа может потребовать оригинальный компакт-диск. Долговечность такой защиты невелика из-за широкого спектра инструментов для удаления образов компакт-дисков. Защита с помощью электронных ключей. Электронный ключ (донгл), вставленный в компьютерный порт (USB, LPT или COM-интерфейс), содержит ключевые данные, также известные как лицензия, которые записываются разработчиком для параметров и активации компьютера. Привязка к параметрам компьютера и активация. Прикрепление к пользовательской информации серийным номерам компонентов компьютера и последующая активация программного обеспечения в настоящее время достаточно широко используются (например, операционная система Windows). Во время установки вычисляется код активации-управляющее значение, которое однозначно соответствует установленным компонентам компьютера и параметрам установленной операционной системы. Это значение передается программисту. На этом основании разработчик генерирует ключ активации, который может активировать приложение только на компьютере (копирование установленных исполняемых файлов на другой компьютер приведет к сбою программы). Защита кода от анализа. Здесь вы можете выбрать инструменты для защиты кода приложения от анализа и использования в других программах. В частности, используются обфускаторы — программы, необходимые для покрытия кода, чтобы защитить его от анализа, модификации, несанкционированного использования. Для одних защит могут использоваться различные виды взлома, для других — метод может быть единственным. Практически весь взлом ограничивается одним из следующих способов: Ввод серийного номера (регистрационного кода) (жарг. серийник) (англ. serial number, S/n) — взлом программы путем ввода правильного регистрационного ключа (или фразы), полученного незаконным путем. Ключ может быть сгенерирован любой информацией (имя владельца программного обеспечения, характеристики аппаратного обеспечения компьютера и т. д.) или имеет фиксированное значение. Для создания регистрационного ключа используется тот же алгоритм, что и в программе. Регистрационный код может распространяться в виде ключевого файла (файла лицензии), который обычно помещается в каталог установленной программы. Для массового взлома это часто генератор ключей (жарг. кейген) создается (а затем используется позже). генератор ключей — это программа, генерирующая регистрационные ключи. Этот вид взлома наиболее популярен (особенно если программа часто обновляется или рег. ключ производится на основе определенной информации и поэтому наиболее ценен). Как правило, это требует от злоумышленника больше навыков, чем другие виды взлома, но не всегда. Использование загрузчика (жарг. лоадер) (англ. loader) — это способ обхода определенных видов защиты программного обеспечения, имеющего внешние (навесных) системы защиты. Это означает изменение определенных фрагментов программы в оперативной памяти сразу после ее загрузки в память, но до ее запуска (то есть до выполнения кода в точке входа). Применение (бинарного) патча (часто жарг. крэк или кряк от англ. crack) (англ. byte patch) — способ, похожий на "загрузчик", но модификация производится статически в файлах программы. Обычно это один из самых простых и быстрых способов взлома программного обеспечения. Использование взломанной версии файла(ов) (англ. cracked) — этот метод заменяет исходные программные файлы файлами, которые уже были взломаны. Использование эмулятора ключа (англ. key emulator) — это метод, используемый для обмана системы безопасности с помощью электронного ключа (обычно подключенного к LPT или USB-порту вашего компьютера). Заключается в снятии дампа внутренней памяти ключа. Файл, содержащий память, подаётся на вход специальной программы — эмулятору, которая подключает свой фильтр драйверов к стеку драйверов, а затем имитирует защищенную программу, работающую с аппаратным ключом. Если программа имеет доступ к ключу аппаратного шифрования в разделе памяти, то этот метод используется в сочетании с методом Бинарный патч. Подмена на официальном сайте программ и / или соответствующее изменение настроек с целью обхода проверки ключа, если она была вынесена разработчиками на какой-либо интернет-источник (в абсолютном большинстве случаев — для предотвращения взлома, реже — для учета или ведения статистики, сбора информации). Чаще всего это делается на примитивном уровне путем изменения файла hosts и запуска различных эмуляторов, иногда с использованием различных программ (Denver) или с использованием реальных веб-ресурсов. Запрет доступа в интернет (жарг. заофлайнивание) — это комплекс мер, направленных на принудительный запрет доступа в интернет программы. Это происходит, когда программа требует активации лицензионного ключа через Интернет (обычно на официальном сайте разработчика) или когда программа связывается с сервером разработчика для обмена или обновления данных. Более примитивный метод-физическое отключение интернета. Это действие обычно выполняется после ввода ключа, сгенерированного кейгеном. Скачивание из интернета или с другого компьютера уже взломанной или купленной игры. Загрузка лицензионной копии игры с компьютера друга — это не взлом, но суть та же. Когда комплексная защита нарушена и когда необходимо добиться максимального эффекта, используется комбинация вышеперечисленных методов. В редких случаях это происходит, когда хакер не квалифицирован. Этот список не является исчерпывающим, а лишь указывает на наиболее распространенные методы взлома. 3 Принципы взлома программного обеспеченияРабота крэкера обычно основана на изучении ассемблерного кода, полученного из машинных инструкций, с помощью специально разработанной программы-дизассемблера. В зависимости от выбранного метода взлома результат исследования может быть использован, например, для создания генератора ключей или внесения необходимых изменений в исполняемый файл. Этот метод в большинстве случаев является самым простым, так как не требует изучения алгоритма проверки правильности ключа: часто при взломе проверяется несколько критериев (например, "заданное число является Эталонным Номером?") и замена таких условий безусловным переходом (goto, jmp) или реже наоборот (т. е. в данном примере " не равно ли заданное число Эталонному Номеру?"). Кроме того, вы можете изменить исполняемый файл (восстановить), отключить нежелательные действия в программе (например, напоминание о регистрации), уменьшить функциональность программы. В этих случаях соответствующие инструкции процессора часто заменяются байтовым значением 90h (шестнадцатеричная маркировка), которое соответствует общей сборке команды nop (no operation), то есть "пустой команде", которая не выполняет никаких действий. если таких команд много, то они используют безусловный переход (перепрыгивают через лишний код). Можно расширить возможности программы, написав дополнительный код, но это обычно слишком трудоемко, не оправдывает затраченного времени. Между тем патч обычно возможен, если исполняемый файл программы не защищен специальными "пакетами" и "протекторами" — программами, скрывающими истинный код исполняемого файла. для последнего типа программ часто используется наиболее интеллектуальная часть реверс-инжиниринга (англ. reverse engineering) - исследование кода отладчиком, создание генератора ключей, но возможны и другие варианты, например создание загрузчика. 4 Программы, использующиеся для взломаСуществует несколько программ, которые активно используются для взлома безопасности программы. Отладчики и дизассемблеры. Эти инструменты традиционно используются в парах, поскольку дизассемблер производит только "чистый код", хотя современные дизассемблеры способны распознавать вызовы стандартных функций, распределять локальные переменные в процедурах и предоставлять другие подобные услуги. Пользуясь дизассемблером, можно лишь догадываться, какие данные функция получает в качестве параметра, и что они значит. Чтобы узнать об этом, нужно чаще всего изучать если не всю программу, то довольно значительную ее часть. Отладчики выполняют в основном разные функции: они позволяют анализировать код во время работы, отслеживать и изменять состояние регистров, а также стека и редактировать код на ходу. С другой стороны, многие навыки анализа кода, порожденные "недостатком интеллекта" отладчика, редко выходят за рамки определения направления перехода. Декомпиляторы и узкоспециализированные отладчики. С ростом производительности компьютеров широкое распространение получили компиляторы, которые не создают "чистый" машинный код, а реализуют с помощью интерпретатора определенные условные инструкции. Интерпретатор может перевозиться отдельно или прикрепляться к самой программе. Практически все программы установки являются интерпретаторами (на основе интерпретатора скрипта установки, хотя процесс создания такого скрипта может быть скрыт визуальными средствами). Компиляция языков также может создавать код, но прямой анализ очень сложен. Для анализа таких программ используются специальные утилиты, которые переводят код, понятный только интерпретатору, в более удобную для человеческого понимания форму. Распаковщики и утилиты для дампинга процессов. Невозможно разобрать упакованную или зашифрованную программу, но, если вам нужен хотя бы один листинг, вы можете попробовать извлечь дамп программы из памяти компьютера во время работы. Этот дамп можно более или менее успешно демонтировать. Кроме того, дамп позволяет заново создать исполняемый файл программы, этот файл успешно загружается, запускается и работает. Именно на этом принципе и основана работа самых современных распаковщиков: подопытная программа запускается под управлением распаковщика; распаковщик ждет события, указывающего на то, что программа полностью распакована, немедленно "замораживает" программу и восстанавливает дамп на диск. Системы безопасности часто пытаются противостоять приходу рабочего дампа, манипулируя сегментами и таблицами импорта-экспорта. В этих случаях следует использовать PE-реконструкторы, то есть утилиты, которые обнаруживают неправильные ссылки на функции дампа и затем пытаются их восстановить. Утилиты анализа файлов. Часто необходимо узнать, каким упаковщиком или защитным софтом обработана та или иная программа, найти все текстовые строки в дампе памяти, просмотреть содержимое файла в виде таблицы записей, вывести в файл список импортируемых и экспортируемых программой функций и многое другое. Для всех этих целей существует огромное количество специальных утилит, позволяющих быстро анализировать файл на наличие тех или иных сигналов. Эти программы, как правило, не жизненно важные, но качественно, поможет сэкономить огромное количество времени, сил. Шестнадцатеричные редакторы и редакторы ресурсов. Это, несомненно, старые инструменты для программирования, восходящие к тому времени, когда программисты все еще могли читать, редактировать исполняемый код без использования демонтажей. В принципе, Редакторы ресурсов делают то же самое, но в отношении ресурсов, связанных с исполняемым файлом. С помощью редакторов ресурсов выполняется значительная часть работ по "самостоятельной" русификации программ и доработке интерфейсов. Помимо редакторов, используются всевозможные патчеры, позволяющие создать небольшой исполняемый файл, который автоматически изменяет исходный программный файл или программный код непосредственно в памяти. API-шпионы и другие утилиты наблюдения. Часто необходимо точно знать, какие действия выполняет программа, где она читает и записывает данные, какие стандартные функции и какие параметры вызывает. Получить эту информацию вам помогут утилиты администрирования. Их можно разделить на две большие группы: мониторинг возникновения событий, и который позволяют выявить один или несколько конкретных типов изменений в системе за определенный промежуток времени. Другие утилиты. Существует также огромное количество утилит, которые не подходят под описанные выше категории или попадают в несколько категорий одновременно. Поскольку крэкинг — это очень разносторонняя деятельность, инструменты, используемые для этого, также разнообразны. На самом деле некоторые утилиты, полезные для крэкера, были созданы для совершенно других целей (хорошим примером является программа GameWizard32, которая на самом деле предназначена для мошенничества в компьютерных играх, но была полезна при открытии программы, которая ограничивает максимальное количество введенных записей). Поскольку невозможно охватить огромное, невозможно описать все программы, которые используются для взлома. 5 Опасность взломанного программного обеспеченияВзломанные программы содержат в себе «логические бомбы». Большинство коммерческих программ защищено и поставляется вместе с электронными ключами. Многими пользователями ключи воспринимаются как инородное тело, призванное защищать программу от нелегального тиражирования и увеличивать доходы разработчиков. Поэтому у многих возникает соблазн использовать взломанные версии, распространяемые на пиратских дисках или через Интернет. Здесь то и кроется основные угрозы. Перед тем как попасть на пиратские диски, защищенный продукт должен быть взломан. Как уже известно, взламывают ПО множеством методов. Но поскольку корректно удалить защиту и очень сложно, то велик риск нарушения нормального функционирования ПО, что может проявиться в самые ответственные моменты. Кроме того, многие разработчики ставят для нелегальных пользователей специальные «закладки». Когда взломщик вскрывает новую версию программы, то часть защитных функций еще не активна и обнаружить их бывает очень сложно. Когда взломанная программа попадает к пользователям и ее начинают активно эксплуатировать, то по прошествии некоторого времени она начинает умышленно работать некорректно. Использование различных эмуляторов ключей не менее опасно. Эмуляторы содержат ошибки, приводящие к неустойчивой работе и к сбоям в системе, часто с потерей данных. Эмуляторы нарушают нормальное функционирование других программ. Если на машине когда-то использовался эмулятор, то даже после его удаления могут остаться следы, что опять же, приведет к некорректной работе. Но самая главная опасность заключается в том, что в пересобранные программы взломщики могут вживить вредоносный код, к примеру, программу-шпион или стиллер. Взломщики – это в первую очередь преступники и злоумышленники, а не меценаты, раздающие бесплатно платные продукты. Такие модули, как правило, знают множество форматов баз данных многих самых разнообразных систем. По прошествии некоторого времени они начинают незаметно отправлять личную информацию пользователей своим создателям. ЗаключениеВ нынешнее время правления Интернета вместе с популяризацией и широкой распространённостью торрент-клиентов взлом программного обеспечения является одной из важнейших проблем для безопасности пользователя. В данной работе мы рассмотрели, что такое взлом программного обеспечения, в чем его и суть, и принципы, какие методы и способы применяют взломщики для успешного взлома той или иной программы с разными типами защит, а также какие вспомогательные утилиты они при этом используют. Сам крэкинг — это палка о двух концах: хотя само по себе это действие незаконно, оно способствует развитию систем защиты, которые совершенствуются изо дня в день, а если изучать методы крэкинга и опробовать их на практике, то можно получить хороший опыт в написании систем защиты программ. Крэкеры делятся на три группы: на тех, для кого крэкинг — хобби, на тех, кто занимается этим в качестве самообразования, и на тех, кто зарабатывает на взломе защиты программ. Поскольку в России, как уже упоминалось, пиратство распространено широко, во многих случаях крэкинг обеспечивает неплохой доход. Если же рассматривать со стороны пользователя и потребителя взломанных программ, то плата за использование пиратских программ — это потенциальные и совсем не иллюзорные проблемы с безопасностью компьютера и пользовательской информацией. Пиратскую программу обычно сложно или невозможно обновить (скорее всего снова придётся посещать сомнительные сайты, искать там крэки, которые вполне могут занести в систему вирусы). Особую опасность представляет установка пиратских версий операционных систем. Конечно, если на компьютере не хранится какай-либо конфиденциальной информации, которую злоумышленники смогут использовать в корыстных целях (данные для доступа к банковским счетам, номера кредитных карт, пароли платёжных сервисов), то, возможно, проблем для беспокойства и нет. Однако если такая информация есть, то стоимость вероятных потерь может быть значительно выше стоимости лицензии на украденную программу. Список использованных источниковВзлом программ (крэкинг) [Электронный ресурс] / URL: https://it-black.ru/kreking/ (дата обращения 12.12.2020) Взлом программ, или Крэкинг [Электронный ресурс] / URL: https://compress.ru/article.aspx?id=17376 (дата обращения 12.12.2020) Гроувер, Д. Защита программного обеспечения / Д. Гроувер, Р. Сатер. - М.: Мир, 2015. - 283 c. Казарин, О. В. Методология защиты программного обеспечения. Научные проблемы безопасности и противодействия терроризму / О.В. Казарин. - М.: МЦНМО, 2009. - 464 c. Набор программ для взлома программ. Выбираем инструменты для реверса [Электронный ресурс] / URL: https://xakep.ru/2018/12/04/apps4hack/ (дата обращения 12.12.2020) Опасность пиратского и преимущества лицензионного ПО [Электронный ресурс] / URL: https://3dnews.ru/809151 (дата обращения 13.12.2020) Рассел, Д. Взлом программного обеспечения / Д. Рассел. - М.: VSD, 2012. - 190 c. Хогланд, Г. Взлом программного обеспечения. Анализ и использование кода / Г. Хогланд, Г. Мак-Гроу. – М.: Вильямс, 2005. – 396 с. |