Обфуксация подразумевает затруднение понимания чего-либо. Программный код часто запутывают, чтобы защитить интеллектуальную собственность или коммерческую тайну, а также не дать злоумышленнику провести обратный инжиниринг платной программы.
Шифрование части или всего кода программы является одним из методов обфускации. Другие подходы включают удаление потенциально раскрывающих метаданных, замену имен классов и переменных бессмысленными метками и добавление неиспользуемого или бессмысленного кода в сценарий приложения. Инструмент, называемый обфускатором, автоматически преобразует простой исходный код в программу, которая работает так же, но ее сложнее читать и понимать.
К сожалению, авторы вредоносного кода также используют эти методы, чтобы предотвратить обнаружение механизмов атаки средствами защиты от вредоносных программ. Атака SolarWinds 2020 года является примером того, как хакеры используют обфуксацию для обхода защиты.
Деобфускации можно использовать для обратного проектирования или отмены обфускации. Эти методы включают в себя нарезку программы, которая предполагает сужение программного кода до соответствующих операторов в определенной точке программы. Оптимизация компилятора и синтез программы — два других метода деобфускации. Обфускация направлена на то, чтобы затруднить обратное проектирование и сделать это не стоящим усилий.
Обфускация компьютерного кода использует сложные обходные фразы и избыточную логику, что затрудняет понимание кода читателем. Цель состоит в том, чтобы отвлечь читателя сложным синтаксисом того, что он читает, и затруднить ему определение истинного содержания сообщения.
Читателем компьютерного кода может быть человек, вычислительное устройство или другая программа. Обфускация также используется для обмана антивирусных инструментов и других программ, которые в значительной степени полагаются на цифровые подписи для интерпретации кода. Декомпиляторы доступны для Java, операционных систем Android и iOS, и платформ разработки NET. Они могут автоматически реконструировать исходный код; цель обфускации – затруднить декомпиляцию этих программ.
Обфускация кода заключается не в изменении содержимого исходного кода программы, а в том, чтобы сделать способ доставки и представление этого кода более запутанным. Обфускация не меняет работу программы или ее конечный результат.
Эту запутанную версию практически невозможно проследить человеческим глазом.
Обфускация включает в себя несколько различных методов. Часто для создания многослойного эффекта используются несколько техник.
Программы, написанные на компилируемых языках программного обеспечения C# и Java, легче запутать. Это связано с тем, что они создают инструкции промежуточного уровня, которые обычно легче читать. Напротив, C++ сложнее запутать, поскольку он компилируется в машинный код, с которым людям труднее работать.
Некоторые распространенные методы запутывания включают в себя следующее:
Успех методов запутывания можно измерить с помощью следующих критериев:
Основные преимущества обфускации заключаются в следующем:
Недостатки обфускации
Одним из основных недостатков обфускации является то, что она также используется во вредоносных программах. Авторы вредоносных программ используют его, чтобы обойти антивирусные программы, сканирующие код на наличие определенных функций. Скрывая эти функции, вредоносное ПО кажется антивирусному программному обеспечению легитимным.
Общие методы, которые используют авторы вредоносных программ, включают:
С помощью запутывания вместо разработки новых вредоносных программ авторы переупаковывают широко используемые методы атак, чтобы замаскировать их особенности. В некоторых случаях злоумышленники используют методы, специфичные для конкретного поставщика.
Еще одним недостатком обфускации является то, что она может затруднить чтение кода. Например, код, использующий метод обфускации шифрования строк, требует расшифровки строк во время выполнения, что снижает производительность.
Атака на SolarWinds, производителя программного обеспечения для управления и мониторинга ИТ в Остине, штат Техас, которая, как полагают, началась еще в сентябре 2019 года, привела к взлому множества других компаний и правительственных учреждений. Атака была обнаружена в декабре 2020 года и приписывается российским хакерам. Первоначально он скомпрометировал платформу управления ИТ Orion компании SolarWinds.
Злоумышленники использовали вредоносное ПО Sunburst, которое сочетало в себе запутывание, машинное обучение и методы искусственного интеллекта для установки бэкдора в обновлениях программного обеспечения для платформы Orion . Чтобы замаскировать свои усилия и обойти защиту, они изменяли журналы аудита, удаляли файлы и программы после использования и имитировали активность, чтобы они выглядели как законные приложения в сети.
Примечательно, что эта атака на цепочку поставок оставалась незамеченной более года. Вредоносное ПО, вставленное в код Orion, бездействовало и было скрыто до тех пор, пока пользователи не загрузили зараженные обновления. Затем он незамеченным распространился по сети и заразил длинный список организаций, использующих Orion.
Интересно? Поделись с друзьями!
Другие вопросы