DLL
Злоумышленники могут злоупотреблять файлами библиотек динамической компоновки (DLL) для достижения закрепления, повышения привилегий и уклонения от защиты. DLL — это библиотеки, содержащие код и данные, которые могут одновременно использоваться несколькими программами. Хотя DLL по своей природе не являются вредоносными, ими можно злоупотреблять с помощью таких механизмов, как побочная загрузка, перехват порядка поиска и перехват фантомных DLL. Конкретные способы злоупотребления DLL злоумышленниками включают: ### Побочная загрузка DLL Злоумышленники могут выполнять свои собственные вредоносные полезные нагрузки путем побочной загрузки DLL. Побочная загрузка включает перехват того, какую DLL загружает программа, путем размещения, а затем вызова законного приложения, которое выполняет их полезные нагрузки. Побочная загрузка размещает как приложение жертвы, так и вредоносные полезные нагрузки рядом друг с другом. Злоумышленники, вероятно, используют побочную загрузку как средство маскировки действий, которые они выполняют под законным, доверенным и потенциально повышенным системным или программным процессом. Безобидные исполняемые файлы, используемые для побочной загрузки полезных нагрузок, могут не быть помечены во время доставки и/или выполнения. Полезные нагрузки злоумышленника также могут быть зашифрованы/упакованы или иным образом обфусцированы до загрузки в память доверенного процесса. Злоумышленники также могут выполнять побочную загрузку других пакетов, таких как BPL (библиотека пакетов Borland). Злоумышленники могут связывать побочную загрузку DLL несколько раз, чтобы фрагментировать функциональность, затрудняя анализ. Злоумышленники, использующие несколько файлов DLL, могут разделить функции загрузчика по разным DLL, при этом основная DLL загружает отдельные экспортируемые функции. Распределение функций загрузчика по нескольким DLL усложняет анализ, поскольку для полного понимания поведения вредоносного ПО необходимо собрать все файлы. Другой метод реализует "загрузчик для загрузчика", где единственная роль вредоносной DLL — загрузить вторую DLL (или цепочку DLL), которые содержат реальную полезную нагрузку. ### Перехват порядка поиска DLL Злоумышленники могут выполнять свои собственные вредоносные полезные нагрузки, перехватывая порядок поиска, который Windows использует для загрузки DLL. Этот порядок поиска представляет собой последовательность специальных и стандартных мест поиска, которые программа проверяет при загрузке DLL. Злоумышленник может разместить троянскую DLL в каталоге, который будет иметь приоритет в порядке поиска DLL над расположением законной библиотеки. Это приведет к тому, что Windows загрузит вредоносную DLL при ее вызове программой жертвы. ### Перенаправление DLL Злоумышленники могут напрямую изменять порядок поиска через перенаправление DLL, которое после включения (в реестре или путем создания файла перенаправления) может привести к тому, что программа загрузит DLL из другого местоположения. ### Перехват фантомных DLL Злоумышленники могут использовать перехват фантомных DLL, нацеливаясь на ссылки на несуществующие файлы DLL. Они могут загрузить свою собственную вредоносную DLL, разместив её с правильным именем в местоположении отсутствующего модуля. ### Подмена DLL Злоумышленники могут нацеливаться на существующие, действительные файлы DLL и заменять их своими собственными вредоносными DLL, размещая их с тем же именем и в том же местоположении, что и действительный файл DLL. Программы, ставшие жертвами перехвата DLL, могут вести себя нормально, поскольку вредоносные DLL могут быть настроены на загрузку законных DLL, которые они должны были заменить, уклоняясь от защиты. Удаленный перехват DLL может произойти, когда программа устанавливает свой текущий каталог в удаленное местоположение, например веб-ресурс, перед загрузкой DLL. Если действительная DLL настроена на запуск с более высоким уровнем привилегий, то контролируемая злоумышленником DLL, которая загружается, также будет выполняться на более высоком уровне. В этом случае техника может использоваться для повышения привилегий.