Антивзломное программное обеспечение — это программное обеспечение, которое затрудняет его изменение злоумышленником. Применяемые меры могут быть пассивными, такими как обфускация для затруднения обратного проектирования , или активными методами обнаружения взлома, которые направлены на то, чтобы программа работала со сбоями или вообще не работала в случае изменения. [1] По сути, это защита от взлома, реализованная в области программного обеспечения. Она имеет некоторые общие аспекты, но также отличается от смежных технологий, таких как защита от копирования и доверенное оборудование, хотя часто используется в сочетании с ними. Технология защиты от взлома обычно несколько увеличивает размер программного обеспечения, а также влияет на производительность. Не существует доказуемо безопасных методов защиты от взлома программного обеспечения; таким образом, эта область представляет собой гонку вооружений между злоумышленниками и технологиями защиты от взлома программного обеспечения. [2]
Вмешательство может быть вредоносным, чтобы получить контроль над некоторыми аспектами программного обеспечения с помощью несанкционированной модификации, которая изменяет код и поведение компьютерной программы . Примеры включают установку руткитов и бэкдоров , отключение мониторинга безопасности, подрыв аутентификации, внедрение вредоносного кода с целью кражи данных или достижения более высоких привилегий пользователя, изменение потока управления и связи, обход лицензионного кода с целью пиратства программного обеспечения , вмешательство в код для извлечения данных или алгоритмов [3] и подделку. Программные приложения уязвимы к последствиям вмешательства и изменения кода на протяжении всего их жизненного цикла от разработки и развертывания до эксплуатации и обслуживания. [ необходима цитата ]
Защита от несанкционированного доступа может применяться как внутри, так и снаружи защищаемого приложения. Внешняя защита от несанкционированного доступа обычно осуществляется путем мониторинга программного обеспечения для обнаружения несанкционированного доступа. Этот тип защиты обычно выражается в виде сканеров вредоносных программ и антивирусных приложений . Внутренняя защита от несанкционированного доступа используется для превращения приложения в его собственную систему безопасности и обычно выполняется с помощью специального кода в программном обеспечении, который будет обнаруживать несанкционированный доступ по мере его возникновения. Этот тип защиты от несанкционированного доступа может принимать форму проверок целостности во время выполнения, таких как контрольные суммы циклического избыточного кода , [4] мер по борьбе с отладкой , шифрования или обфускации . [5] Выполнение внутри виртуальной машины стало распространенным методом защиты от несанкционированного доступа, используемым в последние годы для коммерческого программного обеспечения; например, он используется в StarForce и SecuROM . [6] Некоторое программное обеспечение для защиты от несанкционированного доступа использует криптографию «белого ящика» , поэтому криптографические ключи не раскрываются даже при детальном наблюдении за криптографическими вычислениями в отладчике. [7] Более поздняя тенденция исследований — это программное обеспечение, устойчивое к взлому, которое направлено на исправление последствий взлома и позволяет программе продолжать работу, как будто она не была изменена. [2] Простая (и легко обманываемая) схема такого рода использовалась в видеоигре Diablo II , которая хранила критически важные данные игрока в двух копиях в разных местах памяти, и если одна из них была изменена извне, игра использовала меньшее значение. [8]
Анти-тамперное программное обеспечение используется во многих типах программных продуктов, включая: встроенные системы, финансовые приложения, программное обеспечение для мобильных устройств, сетевые системы, анти-чит в играх , военные, [9] программное обеспечение для управления лицензиями и системы управления цифровыми правами (DRM). Были разработаны некоторые пакеты общего назначения, которые могут обернуть существующий код с минимальными усилиями по программированию; например, SecuROM и аналогичные наборы, используемые в игровой индустрии, хотя у них есть недостаток в том, что для противодействия им также существуют полууниверсальные инструменты атаки. [10] Вредоносное программное обеспечение само по себе может и было замечено с использованием методов анти-тампинга, например, ботнет Mariposa . [11]