Я работаю в сфере безопасности, и одна вещь, о которой я слышал много путаницы, - это некоторые из поколений новых инфекций и почему даже новейшие антивирусные решения на основе машинного обучения и искусственного интеллекта не могут обнаружить некоторые из этих инфекций. Я не стремлюсь полностью технически устранять любую из этих угроз, поскольку существуют лаборатории с лучшими ресурсами и более осведомленными людьми, которые могут выполнять гораздо лучшую работу, чем я мог надеяться на данный момент (существует огромное количество работа, направленная на разрушение инфекции). Короче говоря, это будет введение на высоком уровне в основы того, что я называю объектно-ориентированным вредоносным ПО из-за отсутствия лучшего термина, объясняющего, как оно работает и почему оно так эффективно преодолевает решения безопасности.

Что означает объектно-ориентированный подход?

Когда дело доходит до программирования, одним из самых популярных приемов является объектно-ориентированное программирование. Чтобы максимально упростить это (так что извините за любые технические детали, если вы программировали раньше), это в основном означает, что вы создаете объекты, которые содержат как данные, так и функции для указанных данных. Такие концепции, как инкапсуляция и полиморфизм, означают, что объекты могут инкапсулировать свои собственные данные и предоставлять или не предоставлять способы взаимодействия с внутренними данными, и что объекты могут быть определены как cat и dog, которые являются производными от animal, которые затем могут иметь общие функции, которые применяются по-разному в производном классе соответственно. По сути, объекты обеспечивают большую абстракцию и функциональность, чем традиционные методы, и позволяют сделать компоненты повторно используемыми и улучшить интерфейс на более высоком уровне.

Так при чем здесь вредоносное ПО?

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

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

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

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

Почему эти ускользают от обнаружения

Один из способов предотвратить обнаружение - не включать фиксированную полезную нагрузку или даже загрузчик в основной процесс. Обычно на этом этапе я вижу несколько процессов «загрузчика», которые служат для загрузки запутанных частей конечной полезной нагрузки. Вы можете увидеть разделение файла, вы можете увидеть несколько файлов, которые объединены некоторым алгоритмическим способом для создания полезной нагрузки. Существует так много уровней обфускации, что это может быть следствием заражения. Эти процессы также обычно передаются таким образом, чтобы усложнить судебную экспертизу без тестовой машины. Инфекция может запустить процесс определенным образом, проникнуть в процесс, а затем передать его другому процессу, который служит загрузчиком.

Также может быть задействован процесс скрытия полезной нагрузки. Этот процесс служит просто для того, чтобы скрыть происходящее или замести следы. Обычно он делает это без каких-либо вредоносных действий, если не был доставлен руткит, и в этом случае он все равно может делать что-то не вредоносное, но с чрезвычайно злым умыслом. Комбайнер полезной нагрузки, вероятно, также будет отдельно запущен, чтобы объединить полезную нагрузку, но это возможно, чтобы скрыть цель процесса. Что-то еще, вероятно, будет запущено аналогичным образом, чтобы фактически запустить полезную нагрузку. Еще одна вещь, о которой следует помнить, просто потому, что одна из них может дать сбой, не означает, что процесс потерпит неудачу. Смысл установления постоянства в том, чтобы иметь возможность перезагружать и перезапускать множество различных способов снова и снова, пока не будет достигнуто условие успеха.

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

Заключение

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