Вредоносное ПО — это тип программного обеспечения, предназначенного для выполнения нежелательных функций, и вы можете возражать мне здесь, но факт в том, что это 50/50, потому что оно не предназначено для тех, кто видит последствия.
Одним из наиболее распространенных вредоносных программ, обнаруженных в Интернете, является старый знаменитый Virus, новсе типы вредоносных программ считаются вредоносными программами, на самом деле «Вредоносное ПО — это универсальный термин для любого типа вредоносного программного обеспечения, независимо от того, как оно работает, его намерения или способ его распространения».
В двух словах, вирус — это программа, которая может причинить вред системе, чтобы нажиться на злоумышленнике. У большинства из них есть две особенности, одна из них — способность размножаться и атаковать хосты.
Обе упомянутые функции можно разделить на несколько категорий. Вы можете слышать о троянах, червях, шпионском ПО, рекламном ПО и т. д.
Давайте представим их очень быстро.
Троян – это тип вредоносного ПО, которое выдает себя за легитимную программу, после того как попадает в систему и начинает причинять вред в зависимости от содержащейся в нем логики. Вместо этого червь — это тип вируса, который распространяется по сети без вмешательства пользователя.
Шпионское ПО — это тип вируса, который извлекает информацию о хосте в маркетинговых целях, это действительно вредоносное и очень навязчивое. И, конечно же, рекламное ПО, которое выводит всплывающую рекламу, в частности представляет ПНП или потенциально нежелательные программы, которые могут проникнуть во время установки другой программы.
На данный момент мы знаем, что вирусы распространяются во многих формах, но вредоносное ПО также может быть «статичным». Дело в том, что мы можем найти нераспространяющуюся функциональность, которую можно внедрить, она может быть загружена в вашу систему с помощью той или иной формы атаки. Скажем, исполняемые файлы, модули DLL, руткиты и многое другое.
Например, исполняемые файлы могут быть запущены вручную или включены во время запуска системы. Модули DLL могут присутствовать в существующих программах на вашем компьютере, поэтому они могут использовать привилегии программы и скрываться.
Руткиты – это тип вредоносного ПО, очень опасный благодаря определенному поведению. Он помещается в привилегированную область компонента ОС и работает скрытно. Их очень сложно отследить, и это может привести к тому, что вы станете бэкдором цели.
В общем случае, как только вредоносное ПО доставлено, его необходимо запустить. Это может быть щелчок по исполняемой вредоносной программе, удаленный запуск эксплойта для делегирования контроля над самой вредоносной программой или любой другой творческий способ выполнения. Это будет отличаться только во время выполнения. Вы можете запустить вредоносное ПО немедленно или, возможно, установить бэкдор, который останется скрытым для длительного использования. Это зависит от типа среды, которую вы пытаетесь сломать.
Этапы атаки вредоносного ПО
Концепция загрузчиков с точки зрения вредоносного ПО полностью связана с тем, как люди заражаются, по сути, с потенцией или универсальностью на трек с загрузчиками высок, в основном потому, что они незамечены.
Мы можем обобщить этапы атаки вредоносного ПО за 5 простых шагов.
- Вход: любой доступ к скомпрометированному веб-сайту.
- Распределение трафика: на этом этапе вы перенаправляетесь на определенный сайт, который отправляет вам определенный эксплойт для загрузки.
- Эксплойт: это что-то в системе, что мы позволяем заражать, если будет обнаружена какая-либо уязвимость, она попытается воспроизвести их и найти способ повысить привилегии.
- Заражение:попав в аппаратное обеспечение, вредоносное ПО будет запускать свою полезную нагрузку.
- Выполнение: в этот момент все запущено и работает на целевой машине, одновременно устанавливается соединение с сервером C2 и сообщается, что атака прошла успешно.
Загрузчики будут присутствовать и активно работать во время быстрых стадий Entry-Traffic-Exploit. Обозначенные части: консилер (прозрачность), репликатор (как он движется) и бомба (реальная операция).
Это компоненты вредоносных программ, которые скрытно загружают вредоносные файлы с удаленного сервера для обеспечения успешной атаки. Их можно считать репликационным компонентом вредоносных программ, которые отдельно загружают бомбу, а также являются первой стадией заражения, когда речь идет о выполнении жизненного цикла набора эксплойтов.
Покрытие
Известная цель — эффективная доставка вредоносного ПО, а эффективные средства — необнаружимые. Существует множество известных стратегий для покрытия вредоносного ПО.
Начнем с внедрения процесса. В двух словах, это распространенный способ самостоятельного захвата процесса путем установки DDL в путь, загруженный в память. APC-инъекция состоит из выполнения асинхронного вызова процедуры, как процессор вызывает и перенаправляет угрозу для выполнения вашего вредоносного пути.
В системах Windows каждый поток имеет прикрепленную к нему очередь, хитрость здесь заключается в том, чтобы подделать законный элемент для другого. Для этого существует два варианта: режим ядра, который обращается к самой системе или драйверу, и режим пользователя, который выполняет внедрение в приложение.
В качестве альтернативы существует метод Управление процессами, который перезаписывает пространство памяти запущенного процесса вредоносным ПО, для этого требуются определенные системные привилегии, и его особенно сложно воссоздать. Другим процессом является внедрение ловушек, которое перехватывает сообщения между приложениями и системами. Существуют перехватчики высокого уровня и низкого уровня, которые >DLL может подключиться к нему.
Вредоносное ПО, которое меняет
Наличие «динамического» вредоносного ПО может быть полезным в зависимости от сценария, над которым вы планируете работать. Проще говоря, говоря «динамический», он указывает только изменения в двоичном файле по мере их распространения.
Такое поведение можно обнаружить как полиморфное или метаморфное вредоносное ПО.
Полиморфное вредоносное ПО – это тип вредоносного ПО, которое постоянно меняет свои идентифицируемые характеристики, чтобы избежать обнаружения. Многие из распространенных форм вредоносных программ могут быть полиморфными, включая вирусы, черви, боты, трояны или клавиатурные шпионы. Он состоит из двух частей: деобфускатора, который в основном удаляет обфускацию (или шифрование), которая остается неизменной в каждой версии вредоносного ПО, и запутанного вредоносного ПО, которое буквально удерживает запутанные (зашифрованные) изменения вредоносного ПО.
Обфускация, применяемая к вредоносным программам, — это способ скрыть их истинные намерения, затрудняя поиск идентифицируемой информации, которая показывает их истинные намерения. Одним словом, это способность прятаться.
Ранние версии полиморфного вредоносного ПО использовали простой метод запутывания, заключавшийся в исключающем ИЛИ тела и выполнении того же процесса исключающего ИЛИ в начале выполнения для восстановления вредоносного ПО.
Теперь шифрование берет на себя полную роль, скрывая код тела и включая процедуру расшифровки, чтобы восстановить тело обратно в его первоначальную форму, чтобы вредоносное ПО могло выполняться. После выполнения он повторно запутывается с другим ключом перед распространением.
С другой стороны, метаморфическоевредоносное ПО обнаруживается, когда код изменяется при каждой итерации, что затрудняет распознавание различных итераций антивирусной программы на основе сигнатур и работу/запуск с одним и тем же вредоносная программа.
Внутри этот тип вредоносного ПО содержит изменяемую полезную нагрузку и механизм, который использует несколько методов преобразования для перезаписи кода, включая такие вещи, как размещение подпрограмм и разных мест, изменения реестра, перестановка кода, расширение кода, сжатие, сборка мусора и т. д.
Метаморфное вредоносное ПО может легко обойти традиционное обнаружение сигнатур, поскольку фактически морфирующее вредоносное ПО присутствует почти на 90% рынка вредоносных программ.
Упаковка вредоносных программ
Давайте определим, что такое упаковщики. По сути, это программное обеспечение, применяющее различные методы сжатия. Некоторые дополнительные функции современных упаковщиков включают защиту кода и выполнение через виртуальные среды.
Основная цель в контексте вредоносных программ — скрыть намерения и затруднить анализ образца.
Упаковщики существуют в виде самораспаковывающихся архивов, в POV вредоносного ПО он полностью запакован, он не может заразить компьютер, пока не будет распакован, поэтому разработчики вредоносных программ придумали рантайм-упаковщики, которые упаковывают только частичный набор программы. .
Структура примерно такая: [Packed Section] — [Packer] — [Unpacked section of the program]
.
Это также можно обнаружить, проанализировав исторические данные с помощью инструментов статического анализа или напрямую проверив PE-заголовки файла. С другой стороны, для вредоносных программ существует распаковка, которая может присутствовать во многих формах.
- Автоматические методы распаковки
- Вручную, с помощью отладчиков для трассировки скачков хвоста, выполняя ручные проверки, упреждая вызовы API или создавая аппаратные точки останова.
Методы сохранения
Устойчивость с точки зрения вредоносного ПО — это метод, используемый для обеспечения того, чтобы после заражения вредоносное ПО по-прежнему могло инициировать действия без взаимодействия с пользователем при изменении состояния компьютера.
В двух словах речь идет об обеспечении выполнения вредоносного ПО при запуске систем после перезагрузки.
Существует несколько методов, таких как создание реестров, взлом порядка поиска DDL, перехват ярлыков, ключи запуска и службы ОС.
Перехват порядка поиска DLL основан на изменении того, как ОС загружает DDL, когда файл .exe загружается, он выполняет поиск по определенному пути для DLL вредоносный может быть заменен или добавлен в тот же известный каталог. Если безопасный режим поиска DLL включен, ОС проверит, загружена ли уже DLL в память или нет. Это все часть известных ключей реестра.
Перехват ярлыков – еще один простой, но эффективный метод перехвата целевого атрибута значков ярлыков. В основном запустит файл, но вместо этого загрузит файл вредоносного ПО. Ключи запуска создаются путем размещения файлов вредоносного программного обеспечения в каталоге запуска. Любой ярлык, созданный для места, указанного в подразделе запуска, запустит службу во время выхода из системы или перезагрузки.
Запуск служб ОС в фоновом режиме — еще одна отличная утилита для активных вредоносных программ, это можно сделать вручную или автоматически.
Распространенная стойкость вредоносных программ в сценариях Windows
Отказ от ответственности: это основано на ОС Windows 7
В ОС Windows простым подходом к обеспечению постоянства является запись в реестры ОС, это автоматически запускает программы, расположенные в определенной области. В реестрах Windows есть два ключа верхнего уровня, которые обычно используются для вредоносных программ: HKEY_CURRENT_USER
(пользовательский контекст) и HKEY_LOCAL_MACHINE
, для которого требуются права администратора.
Я попытаюсь объяснить наиболее распространенные 4 места, идеально подходящие для сохранения вредоносного ПО.
Начнем с: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Это место Windows для поиска программ при запуске, это наиболее часто используемое место для этого типа действий.
Тогда у нас есть: Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Это почти то же самое, но вместо этого для пользовательского контекста.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager
содержит ключи, которые используются для запуска инструментов системного уровня, таких как autocheck
и booting.exe
, в качестве содержащих значения конфигурации.
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
Вот некоторые из найденных ключей автозапуска входа в Windows и оболочки, такие как explorer.exe
, shellinfrastructure
, которая запускает программу sihost.exe
и userinit.exe
. Таким образом, вредоносное ПО может изменить этот ключ для сохранения.
Все службы, которые запускаются при загрузке, расположены в Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs
, конечно, существует гораздо больше каталогов реестра, используемых для сохранения вредоносных программ, которые не так распространены и не видны автозапуску.
Что насчет руткитов? Как они сохраняются?
В двух словах, вредоносное ПО внедряется в любой реестр или стартовый код ОС, модифицирует главную загрузочную запись или раздел диска. Сложность здесь в том, что он выполняется перед любым другим кодом.
Но давайте немного контекстуализируем. Руткит соответствует полезной нагрузке (сам руткит), дропперу в качестве установочного файла и загрузчику. strong>, который фактически запускает вредоносное ПО.
В приведенном выше определении я сказал «любой реестр или код запуска ОС», но на самом деле это не на 100% верно. Руткиты могут присутствовать на многих уровнях программного обеспечения, начиная с программы и заканчивая системным драйвером вплоть до ядра ОС.
Существует несколько типов руткитов с определенными характеристиками.
- руткит пользовательского режима/приложения существует в установленных программах ОС, его можно обнаружить и поместить в карантин.
- Сложнее всего справиться с руткитом ядра, он пытается контролировать ОС и даже пытается модифицировать код ОС.
- Аппаратный/прошивочный руткит, очевидно, влияет конкретно на аппаратное обеспечение, он пытается перехватить диск и все остальное, для него нет ограничений
- Hypervisor/Virtualized Rootkit полностью против виртуальных машин и определенных функций хоста.
- Загрузчик или Bootkit подходит для MBR.
Есть еще несколько его версий.
Сохранение DLL?
Ну, да, это еще одна распространенная форма, называемая захватом вредоносных программ DLL, которая в основном DLL представляет себя как законную, поэтому DLL загружается, выясняя последовательность пути загрузки, и это место, куда вставляется вредоносное ПО.
Вот несколько рекомендаций/требований для этого.
- Основной исполняемый файл не может находиться в System32
- Вредоносная DLL не является известным объектом DLL
- И опять же, вредоносная DLL не может находиться в той же папке, что и ее основной исполняемый файл.
Вредоносное ПО – обширная тема, и если немного подумать, сначала ее не так просто понять. Что касается этого последнего раздела, мы можем сделать вывод, что вредоносное ПО может использовать ряд методов, чтобы сохраняться, поэтому в зависимости от того, какой тип программного обеспечения вы используете, для обнаружения любой формы сохраняемости требуются высококвалифицированные специалисты.
Еще одна интересная вещь заключается в том, что вредоносные программы могут присутствовать везде, даже в правительствах. Теперь вы можете узнать о различных типах вирусов, о том, как они действуют, как устроены и т. д.
Еще есть что рассказать, но это будет в другом посте.
Удачного кодирования :)