Обфускация кода: двойной агент в мире информационной безопасности

Обфускация кода: двойной агент в мире информационной безопасности

Чего здесь больше – пользы или рисков? Разбираемся, как защитить свои цифровые активы.

image

В наше время, когда информационная безопасность играет ключевую роль в каждой крупной компании, обфускация стала мощным инструментом в арсенале как защитников, так и злоумышленников.

Эта техника, позволяющая сделать код или данные трудными для восприятия, служит двойственной цели: с одной стороны, она защищает интеллектуальную собственность и усложняет работу хакеров, а с другой — может использоваться для маскировки вредоносного ПО.

В этой статье мы разберём, что вообще такое обфускация, рассмотрим её особенности, многогранное влияние на безопасность, а также обсудим способы защитить свои системы, если она используется в злонамеренных целях.

Что такое обфускация?

Обфускация — это техника намеренного усложнения информации для чтения, особенно в компьютерном коде. Одним из частых вариаций её использования является такая обфускация, при которой конфиденциальные данные делаются нераспознаваемыми, чтобы защитить их от несанкционированного доступа.

Обфускация может быть самых разных видов. Например, отображение последних четырёх цифр номера кредитной карты, когда остальные цифры заменяются на иксы или звёздочки — тоже является обфускацией.

Однако в мире программного обеспечения наиболее распространённым вариантом обфускации является полное шифрование данных в нечитабельный вид. Лишь дешифровка при помощи специального ключа может вернуть такой информации исходную форму.

Обфускация в коде

При обфускации компьютерного кода используются сложные языковые конструкции и избыточная логика, чтобы сделать код трудным для понимания. В процессе обфускации определённые части кода шифруются, метаданные удаляются, а осмысленные элементы заменяются бессмысленными. Вставка неиспользуемого или даже мусорного кода также является распространённой практикой для маскировки реального содержимого.

Специальные программы-обфускаторы могут автоматизировать эти процессы и в два клика изменить исходный код так, чтобы он по-прежнему работал, но стал гораздо труднее для восприятия и понимания. Другие методы обфускации включают сжатие всей программы, что делает код нечитаемым, а также изменение потока управления для создания неструктурированной, сложной в обслуживании логики.

Зачастую при обфускации используется комбинация из сразу нескольких техник для достижения многоуровневого эффекта и повышения безопасности кода.

Обратная сторона обфускации

К сожалению, обфускация — это не только защита, но ещё и большой вызов для ИБ-специалистов, так как её используют не только легитимные разработчики программного обеспечения, но и авторы вредоносных программ.

Цель злонамеренной обфускации — анонимизировать киберпреступников, снизить риск обнаружения и скрыть вредоносное ПО, изменяя общую сигнатуру и отпечаток вредоносного кода, даже если полезная нагрузка является уже известной угрозой и хорошо определяется антивирусными решениями.

Фактически, сигнатура — это хэш, уникальное буквенно-цифровое представление элемента вредоносного ПО. Однако уже известный хэш станет совсем иным, если добавить в код обфускацию. Именно поэтому вместо попыток создать новую сигнатуру путём модификации вредоносного ПО, злоумышленники просто многократно обфусцируют один и тот же код, каждый раз отличными друг от друга способами.

Разнообразные методы обфускации, используемые хакерами

Во время злонамеренной обфускации киберпреступники зачастую комбинируют различные техники для сокрытия вредоносного ПО и создания нескольких слоёв маскировки. Одна из таких техник — использование упаковщиков, программных пакетов, которые сжимают вредоносное ПО, чтобы скрыть его присутствие и сделать оригинальный код нечитаемым.

Затем в ход идут криптографы, которые шифруют вредоносное ПО или определённые его части, чтобы ограничить доступ к коду, который могли бы засечь антивирусные программы.

Другой метод — вставка мёртвого кода. То есть применение абсолютно бесполезного набора символов для визуальной маскировки реального кода. Атакующие также могут использовать модификацию команд, которая включает изменение командных кодов в программах вредоносного ПО. Это также меняет внешний вид кода, но не его поведение.

Обфускация коммуникаций

Обфускация в коде — это лишь первый шаг длительного процесса маскировки. Независимо от того, сколько времени и сил хакер потратил на реализацию обхода EDR, вредоносное ПО как-то должно общаться и с внешним миром для обмена командами и информацией с C2-сервером. Значит и эти коммуникации также должны быть обфусцированы.

Если раньше киберпреступники никак себя не ограничивали в сканировании сетей и выгрузке больших объёмов данных, то сейчас, с появлением специализированных средств защиты, они стараются сделать всю коммуникацию максимально «тихой» и незаметной, чтобы не создать в целевой сети видимых аномалий.

Яркие примеры атак с обфускацией из прошлого

  • Известным примером обфускации является громкая атака на SolarWinds в 2020 году. Тогда хакеры использовали обфускацию для обхода защиты и сокрытия своих действий.
  • Ещё один пример — знаменитая фишинговая атака XLS.HTML. В ней хакеры использовали сложные техники обфускации для сокрытия своей вредоносной деятельности. Они меняли свои методы шифрования как минимум десять раз в течение года, чтобы избежать обнаружения. Их тактика включала простой текст, экранирующее кодирование, кодирование Base64 и даже азбуку Морзе.
  • В другой вредоносной кампании атакующие эксплуатировали уязвимости в ThinkPHP для выполнения удалённого кода на серверах. Они установили обфусцированную веб-оболочку «Dama», которая давала хакерам постоянный доступ и возможность для дальнейших атак.

Почему при защите не стоит полагаться на одни лишь сигнатуры?

Обнаружение на основе сигнатур довольно надёжно, когда дело касается известных угроз. Однако, если речь идёт о новых, неизвестных угрозах, оно может не принести никаких результатов. Кроме того, как мы уже выяснили выше, хакеры легко могут генерировать новый хэш при каждом новом процессе обфускации, не меняя при этом ни единой строчки вредоносного кода.

Авторы вредоносных программ по своей сути — настоящие «мастера игры в прятки». Они используют изощрённые техники для маскировки своих вредоносных программ. Кроме того, нельзя забывать также и про полиморфное и метаморфное вредоносное ПО, способное гибко менять свою структуру и код, сводя на нет все усилия сигнатурного сканирования.

Эксплойты нулевого дня также неподвластны системам на основе сигнатур, так как банально не содержатся в базе. Помимо всего вышеперечисленного, когда решение на основе сигнатур возвращает слишком много ложных срабатываний, оно становится неэффективным. Всё потому, что бесконечный поток ложных оповещений напрямую влияет на работу команды безопасности, попусту растрачивая её драгоценные ресурсы.

В двух словах, обнаружение по сигнатурам, например, в EDR, — полезный инструмент, но самого по себе его недостаточно для отражения всех типов угроз. Именно поэтому и необходима более комплексная стратегия безопасности, которая также включает поведенческий анализ, машинное обучение и другие современные техники обнаружения.

NDR-инструменты как универсальный способ борьбы с большинством угроз

Популярные нынче IDS-решения (Intrusion Detection System) на основе аномалий — подобны детективам, которые следят за нормальным поведением системы и поднимают тревогу, едва учуяв необычную активность.

Однако NDR-инструменты (Network Detection and Response) идут ещё дальше: они постоянно адаптируются, чтобы оставаться на шаг впереди меняющегося ландшафта киберугроз, и предлагают значительно более высокий уровень безопасности, чем традиционные подходы на основе сигнатур, благодаря своему продвинутому анализу и интеграции. Они способны обнаруживать как известные, так и неизвестные угрозы, эффективно защищая от них ваш бизнес.

Преимущества NDR-инструментов

NDR-решения, о которых мы, кстати, когда-то делали отдельную большую статью, обладают обширным перечнем преимуществ, среди которых:

  • Поведенческий анализ. NDR-инструменты отслеживают сетевой трафик и тщательно анализируют его поведение. Они быстро обнаруживают необычные паттерны, такие как нерегулярные передачи данных, которые могут указывать на тайную C2-коммуникацию.
  • Мониторинг протоколов. NDR-решения исследуют HTTP-запросы, DNS-трафик и другие протоколы для обнаружения подозрительного поведения или коммуникации, которые могут быть связаны с обфусцированным вредоносным ПО.
  • Анализ метаданных. NDR-инструменты анализируют метаданные для обнаружения необычных паттернов, указывающих на подозрительную активность. Модели машинного обучения помогают идентифицировать типичные техники обфускации, которые видны через подозрительное поведение в сетевом трафике.
  • Долгосрочный мониторинг коммуникаций. Хакеры всё чаще используют медленные и скрытные техники для обхода систем обнаружения. В ответ на это, инструменты NDR анализируют сетевой трафик за длительные периоды времени, например, до 3 дней, что позволяет выявлять аномалии и нерегулярности в поведении сети, которые могут указывать на атаку. При этом NDR-решения не ограничивается только долгосрочным анализом и способны проводить и быстрые проверки, выполняя пакетные запуски за считанные минуты. Такой комплексный подход позволяет избежать ложных срабатываний, которые могли бы возникнуть при постоянном мониторинге в режиме реального времени.
  • Mitre ATT&CK и Эти протоколы предоставляют ценную информацию об угрозах, использующих обфускацию. Их интеграция с решениями NDR значительно улучшает возможности по обнаружению угроз.
  • Обмен данными об угрозах. NDR-инструменты обмениваются данными об угрозах с другими решениями безопасности. Это позволяет быстрее обнаруживать известные техники обфускации и подозрительное поведение. Интеграция с инструментами EDR позволяет им коррелировать подозрительную активность на конечных точках с сетевым трафиком, что значительно улучшает анализ безопасности.

Заключение

В эпоху цифровой трансформации обфускация стала не просто техническим приёмом, а ключевым элементом в сложной игре между защитниками и атакующими. Она символизирует постоянную эволюцию методов киберпреступности и защиты от неё, напоминая нам о необходимости непрерывного обучения и адаптации.

Будущее кибербезопасности лежит не столько в создании непроницаемых цифровых стен, сколько в развитии «умной» экосистемы защиты, способной к самообучению и прогнозированию угроз.

Инструменты вроде NDR — лишь первый шаг к созданию по-настоящему адаптивных систем безопасности, которые смогут не только реагировать на атаки, но и предугадывать их, формируя проактивную стратегию защиты.

В конечном счёте, защитники должны не просто огородить организации от угроз, но и создать цифровую среду, где безопасность станет естественным состоянием. Достижение этой цели требует не только технологических инноваций, но и принципиально нового мышления в области кибербезопасности, где каждый элемент системы будет частью общей стратегии защиты.

Наш канал горячее, чем поверхность Солнца!

5778 К? Пф! У нас градус знаний зашкаливает!

Подпишитесь и воспламените свой разум