Создать модуль для вирусов
В основе работы почти всех применяемых сегодня песочниц для изоляции приложений, будь то песочницы Firejail, песочницы iOS, Android или даже системы Docker, лежит один простой принцип: запереть приложение в его каталоге и отрезать ему доступ к информации об остальной части системы и ее API. Как это реализуется — с помощью chroot, пространств имен и seccomp-bpf, как в большинстве песочниц Linux, или с помощью запуска каждого приложения с правaми созданного специально для него юзера и своей собственной системы ограничения прав, как в Android, — неважно. А важно то, что в каждом из этих случаев за изоляцию приложений отвечает ядро ОС, общее для всех них.
Благодаря использованию встроенных в ядро механизмов изоляции такие песочницы очень дешевы в создании и обслуживании, они не приводят к существенному увеличению расхода оперативной памяти, не съедают место на диске и вообще отличаются высокой эффективностью. Однако платить, как известно, приходится за все, и в данном случае расплата бьет по тому самому месту, которое песочницы и призваны охранять, — безопасности основной системы.
Запуская софт в пeсочнице, мы рассчитываем оградить его от других песочниц и операционной системы, просто для того, чтобы взлом этой софтины или наличие в ней малвари не привели к компрометации всех остальных данных. И в большинстве случаев это работает, но ровно до тех пор, пока взломщик не найдет способ из нее выбраться. А способ этот в грамотно спроектированной песочнице обычно один — уязвимость в ядре ОС. Почти вся малвaрь для Android, способная получить права root, и большинство джейлбрейков iOS эксплуатируют дыры в ядре. А ядро настольного Linux почти ничем не отличается от ядра того же Android. И дыры в нем находят хоть и чуть реже (благодаря меньшему количеству блобов от производителей железа), но регулярно.
Разработчикам песочниц и операционных систем, запускающих софт в песочницах, это хорошо известно, как и последствия. Поэтому Apple и Google, все операционки которых используют идею песочниц, борются с этой угрозой при помощи апдейтов: появилась информация о дыре — быстро ее исправляем и выкатываем обновление. У Apple это получается хорошо, у Google плoхо, но в любом случае, если информации о дыре нет, не будет исправления. И если на твоем смартфоне оно не так уж и важно, то в Linux-системе, где хранится твой Bitcoin-кошелек и куча другой конфиденциальной информации, взлом системы через запущенный в песочнице браузер может привести к очень печальным последствиям.
Один из способов борьбы с 0day-уязвимостями в ядре — виртуальная машина, такая как VirtualBox, QEMU или Parallels. Запускаем небезопасное приложение внутри виртуальной машины вместо классической песочницы, и вуаля — взлом самого приложения и возможный взлом ядра никак не затрагивают основную ОС. В таком подходе уязвимым местом оказывается не ядро, а гипервизор и код, эмулирующий различные железные подсистемы: сетевую карту, USB- и SATA-контроллеры. И еcли посмотреть на статистику уязвимостей того же VirtualBox, то становится ясно, что в целом критических уязвимостей здeсь намного меньше, чем, например, в ядре Linux. Но что более интереcно: почти все из них находят именно в коде эмуляции железа.
И здесь мы подходим к самoму интересному вопросу: а можно ли создать настолько простую виртуальную машину (в идеале вообще без кода эмуляции железа), чтобы она была практически неуязвима, но тем не менее способна запускать стандартный пользовательский софт?
Несмотря на то что Cappsule использует в своей работе механизмы виртуализации Intel VT-x и EPT, назвать ее полноценной виртуальнoй машиной крайне сложно. Это система изоляции, построенная на технологиях виртуализации. Она использует простой и компактный гипервизор (всего 15 тысяч строк кода), позволяющий запустить копию ядра Linux основной ОС и выбранное приложение внутри виртуального окружения с полной интеграцией приложения в текущий графический интерфейс.
Cappsule не эмулирует железо и не оперирует полноценными виртуальными машинами с собственным ядром, виртуальными дисками, сетевой картой и другими кoмпонентами обычного ПК, как это делает VirtualBox или QEMU. Она действует намного хитрее: сразу после своей загрузки загружает в ядро текущей ОС модуль с гипервизором и отдает ему управление. Гипервизор в свою очередь создает новое виртуальное окружение и размещает внутри него текущую ОС. Этот метод называется Blue Pill (он был описан Йоанной Рутковской в 2006 году) и нужен для того, чтобы получить контроль над исполнением текущей ОС.
После этого гипервизор Cappsule останавливает исполнение ядра ОС, переводит в офлайн все ядра процессора, кроме текущего, делает снимок пaмяти, занимаемой ядром ОС, затем возвращает ядру управление. Позднее, получив запрос на запуск приложения в песочнице, гипервизор создает еще одно виртуальное окружение с копией памяти ядра, запускает в нем несколько служебных процессов и указанное приложение.
Для приложения такая виртуальнaя система выглядит настоящей. Оно может работать с файловой системой, выполнять сетевые запросы, выводить на экран картинку и выполнять системные вызовы ядра. Но так как Cappsule не эмулирует железные компоненты классической виртуальной машины и не предоставляет доступ к реальному железу (фактически запрещены любые операции ввода-вывода), для того чтобы дать приложению возможность доступа к файловой системе, сетевому адаптеру и GUI-подсистеме, Cappsule запускает внутри виртуального окружения три специальных процесса:
Fsclient для проброса файловой системы (точнeе, иерархии) основной системы внутрь виртуальной. Fsclient имеет клиент-серверную архитектуру и общается с демоном fsserver, запущенным в хост-системе. При доступе к тому или иному файлу fsclient отправляет запрос fsserver, а тот в ответ выдает результат запроса или ошибку доступа, если доступ к этому файлу запрещен в настройках. Естественно, виртуальное окружение может выполнять запись файлов, поэтому, чтобы не скомпрометировать хост-систему, fsserver модифицирует файлы в режиме copy-on-write (для этого он использует технологию OverlayFS ядра Linux, ту же, на которой построена система слоев в Docker). Другими словами, все модификации файлов из виртуального окружения будут уникальны только для этого виртуального окружения; изменить файлы напрямую оно не может.
Netclient для проброса внутрь виртуального окружения сетевого интеpфейса. В этом случае используется схожая схема: netclient создает внутри виртуального окружения сетевой интеpфейс tun0, все операции чтения и записи в который отправляются демону netserver, работающему в хоcт-системе. С помощью настроек брандмауэра netserver перенаправляeт эти данные на реальный физический сетевой интерфейс машины, опять же консультируясь с настройками.
Guiclient для доступа приложения к графической подсистеме хоста. Принцип работы примерно тот же. Guiclient запускает внутри окружения виртуальный X-сервер, запросы к которому перенаправляются в guiserver на хост-системе, а тот, в свою очередь, перенаправляет эти запpосы настоящему X-серверу. Guiclient создан на базе графической подсистемы операционной системы Qubes OS и так же, как последняя, позволяет бесшовно вписать окно запущенного внутри песочницы приложения в графический интерфейс хост-системы.
Один из положительных аспектов сотрудничества с разработчиками, которые предоставляют решения безопасности для SOHO и рынка Enterprise — это доступ к информации об атаках и вредоносном ПО. Из полученных данных эксперты лаборатории узнают, что угрозы, отправляющиеся по протоколам HTTP и HTTPS с использованием техники скрытых загрузок, являются очень распространенной в последнее время проблемой. Продукты Avira заблокировали более 3 миллионов вредоносных ссылок за последние 12 месяцев.
С другой стороны, от сообщества “Лаборатории Касперского” специалисты AVLab узнали, что за период с января по октябрь 2018 года, количество атак и вредоносных файлов, заблокированных модулем веб-защиты, встроенным в продукты Касперского насчитывает более половины миллиарда в мире и 18 миллионов в Польше. Статистика связана с анонимными телеметрическими данными, собираемыми с конечных устройств, поэтому чем больше сообщество пользователей, тем более точные данные можно получить.
Статистика угроз в Польше и в мире
Подробная информация по типам атак была предоставлена компанией Check Point. Вендор зарегистрировал 325 и 458 HTTP и HTTPS кибератак, совершающихся каждый день на организации в Польше и в мире, соответственно. В Польше около 68% атак представляют собой заблокированные попытки взаимодействия между вредоносными программами и командными серверами. Каждая третья атака (30%) отвечает за эксплуатацию уязвимости в приложениях или операционной системе. Остальные 2% касаются вредоносных веб-сайтов.
Лаборатория AVLab систематически получает информацию об увеличении числа атак по Интернет протоколам, поэтому было решено провести тестирование расширений, доступных в Интернет-магазине Chrome. Эксперты понимают, что многие пользователи не имеют адекватной защиты или используют продукты без фильтрации вредоносных ссылок в веб-браузерах. В связи с этим, выбор пал на тестирование расширений для веб-браузеров, которые перехватывают и фильтруют весь сетевой трафик, блокируя вредоносный контент и приложения.
Тестирование продолжалось с 10 по 23 октября 2018 года. В течение данного периода времени был проверен уровень защиты следующих расширений в браузере Chrome с помощью тестовой коллекции, состоящей из 1870 уникальных образцов угроз:
* Решение “Check Point Sandblast Agent for Browser” доступно в двух вариантах. Бесплатная версия защищает только от фишинг-атак. Коммерческая версия также защищает от загрузки вредоносных файлов за счет использования технологии моделирования угрозы в защищенной среде. Использование Threat Extraction analyzer (TEX) позволяет воссоздать версию файла, который лишен, предположим, вредоносных макрокоманд. Данный файл можно запустить без каких-либо последствий, что гарантирует отличную защиту от угроз нулевого дня.
** Использовались списки: Malvertising filter list by Disconnect, Malware Domain List, Malware domains, Spam404
Расширение Check Point Sandblast Agent for Browser должно быть подключено к устройству SandBlast или эквиваленту в облачном пространстве – в сервисах SandBlast Cloud, в которых обрабатываются неизвестные файлы. Подобные файлы представляют потенциальную опасность для организаций. Расширение можно настроить таким образом, чтобы анализируемый файл не скачивался и не запускался в автоматическом режиме или вручную пользователем, пока не будет выполнена его проверка в качестве результата скрытой загрузки. Расширение было специально разработано для интеграции с популярными сервисами Check Point, которые обеспечивают безопасность сети за счет блокировки обнаруженных вредоносных программ. Бесплатная версия расширения не занимается сканированием загруженных угроз, поэтому была протестирована коммерческая версия по просьбе компании-разработчика.
Для тестирования использовался следующий алгоритм.
Задача системы тестирования – автоматизация управления решением безопасности, настроенной рабочей станции и перехват вредоносных образцов с атак на специальные сетевые приманки. Основа проекта построена на базе дистрибутива Ubuntu 16 LTS, а тестовая система под названием PERUN была оснащена различными модулями для анализа образцов вирусов, сопоставления и парсинга собранных журналов, а также управления системами Windows 10. Система PERUN создана с помощью комбинации скриптов на языках программирования NodeJS и Python. Данное решение позволит делегировать самую время затратную работу вычислительным мощностям рабочих станций, позволяя представить результаты антивирусной защиты из двух областей: против угроз в реальном мире и против новых технологий обхода мер безопасности.
Идеальный источник образцов должен предоставлять новые и различные типы вредоносных программ. В данном случае “свежесть” собранных образцов является очень важным фактором, потому что она позволяет получить наиболее релевантную информацию о защите против реальных угроз в сети. Образцы, используемые в тесте, были перехвачены с сетевых приманок, которые являются очень важным инструментом для специалистов по безопасности. Основная задача ловушек для угроз – прикинутся “жертвой” (с точки зрения систем, сервисов и протоколов) и сохранить журналы атак, включая вредоносное ПО. AVLab использует ловушки низкого и высокого уровня интерактивности, которые эмулируют различные службы: SSH, HTTP, HTTPS, SMB, FTP, TFTP, MYSQL и SMTP.
Вредоносные программы, собранные на одной из приманок
Выше приведены локализации приманок, которые использовались для получения образцов вредоносных программ: Канада, США, Бразилия, Великобритания, Нидерланды, Франция, Италия, Чехия, Польша, Россия, Индия, Сингапур, Япония, Австралия, Южная Африка
Тест, который воспроизводит действия реального пользователя, является наилучшим с точки зрения пользователей и разработчиков. Новые коллекции вирусов ежедневно захватываются с помощью приманок. Прежде чем образец будет помещен на тестовую машину, он проходит стадию тщательного анализа. Эксперты должны убедиться, что тестовую коллекцию попадут только 100%-ные зловреды. Ситуация, когда вирус не работает в системе, потому что он запрограммирован для другого региона, никогда не встречается в тестах AVLab. В связи с этим, пользователи и разработчики могут быть уверены, что используемое в тестах вредоносное ПО действительно может серьезно заразить операционную систему, независимо от того, из какой части мира оно поступает.
После анализа каждого вредоносного приложения, журналы вредоносной активности вводятся в системный журнал событий. Данное решение помогает экспортировать необходимую информацию из системного журнала в файлы CSV. Основываясь на собранных данных, специальные алгоритмы определяют, является ли конкретный образец, злонамеренным. AVLab часто публикует частичную информацию из каждого анализа на веб-сайте CheckLab в удобном для пользователя формате. Детали предоставляются производителям и, по запросу, дистрибьюторам.
Примеры параметров политики аудита. Windows 10 предоставляет доступ к очень подробной информации о системных событиях
Можно с уверенностью установить, смог ли продукт остановить угрозы с помощью сигнатурных или проактивных компонентов защиты. Анализ журналов является очень трудоемким процессом, поэтому разработаны алгоритмы, автоматизирующие данный процесс.
Примеры журналов, собранных программным обеспечением Bitdefender
Примеры журналов, собранных в результате активности шифровальщиков
Журналы событий, содержащие данные об изменении файловой структуры, системного реестра, запланированных заданий, входов в систему и обменных сетевых процессов, а также информацию о сетевых коммуникациях, позволяют предоставить полную информацию об изменениях, внесенных вредоносной программой. Например, если будет запущен зараженный документ Word с несколькими сценариями (visual basic, cmd, powershell), затем будет загружен, сохранен в %TEMP%, а впоследствии запущен вредоносный объект, то соответствующая информация появится в журналах событий. В результате будет зарегистрирована даже малейшая модификация, выполняемая вредоносным программным обеспечением. Является ли это угроза кейлоггером, бэкдором, руткитом, трояном, макровирусом или шифровальщиком уже неважно – журнал системных событий записывает все действия.
В данном тесте алгоритм ограничивался проверкой того, была ли вредоносная программа загружена в систему. Если не была, то это означает, что угроза была заблокирована в браузере тестируемым продуктом.
- Система PERUN каждое утро запускала рабочие станции с установленными продуктами. Затем выполнялось обновление баз сигнатур и файлов тестируемого решения в течение 30 минут.
- Убедившись, что рабочие станции с установленными продуктами готовы к тестированию, были сделаны снимки системы.
- Запускались все операционные системы с установленными продуктами, которые были запущены.
- Образец вредоносного ПО, отобранный для тестирования, был загружен веб-браузером Google Chrome на всех рабочих станциях.
- Если вредоносная программа была заблокирована на ранней стадии, она была отмечена в базе данных специальным идентификатором.
- На последнем этапе система тестирования ожидала завершения анализа на всех рабочих станциях, а затем возвращалась к предыдущим пунктам для анализа следующего образца вируса.
Потребность в бесплатных решениях защиты ПК является очень высокой, поэтому лаборатория AVLab не могла пропустить данный тип средств безопасности. У большинства протестированных решений результат отличался незначительно, что является свидетельством того факта, что многие разработчики делятся информацией об угрозах. Однако, нет сомнений в том, что расширение Check Point SandBlast Agent для браузера заняло лидирующие позиции (напомним, что бесплатная версия защищает только от фишинга).
Сертификаты присваивались в зависимости от полученных баллов:
Блокировка угроз на уровне 95-100% является очень хорошим результатом, но иная интерпретация результатов показывает другую сторону монеты.
Возьмем для примера Avira Online Security – решение заблокировало 1797 образцов, но проигнорировало 77 потенциальных попыток запуска вредоносного кода. Защита на уровне браузера очень важна, поскольку она позволяет отфильтровать известные типы вирусов и вредоносные веб-приложения, которые загружают дополнительные вредоносные компоненты в операционную систему.
Установленный активный антивирусный агент необходим для защиты от современных векторов распространения вредоносных программ. Важно помнить, что в распространении угроз задействованы не только протоколы HTTP / HTTPS. Большое количество атак совершается на учетные записи протоколов электронной почты (IMAP, POP3), совместное использование файлов, а также сетевые службы IIS для Windows Server, которые можно удаленно атаковать с использованием эксплойтов, введя вредоносную нагрузку в операционную систему.
Обеспечение безопасности всех потенциальных областей в операционной системе имеет решающее значение, поэтому браузерные расширения безопасности являются недостаточными средствами защиты, но в то же время необходимы, если они дополняются локальной защитой.
Полиморфик-генераторы, как и конструкторы вирусов, не являются вирусами в прямом смысле этого слова, поскольку в их алгоритм не закладываются функции размножения, т.е. открытия, закрытия и записи в файлы, чтения и записи секторов и т.д. Главной функцией подобного рода программ является шифрование тела вируса и генерация соответствующего расшифровщика. Обычно полиморфные генераторы распространяются их авторами без ограничений в виде файла-архива. Основным файлом в архиве любого генератора является объектный модуль, содержащий этот генератор. Во всех встречавшихся генераторах этот модуль содержит внешнюю (external) функцию - вызов программы генератора.
Таким образом автору вируса, если он желает создать настоящий полиморфик-вирус, не приходится корпеть над кодами собственного за/расшифровщика. При желании он может подключить к своему вирусу любой известный полиморфик-генератор и вызывать его из кодов вируса. Физически это достигается следующим образом: объектный файл вируса линкуется с объектным файлом генератора, а в исходный текст вируса перед командами его записи в файл вставляется вызов полиморфик-генератора, который создает коды расшифровщика и шифрует тело вируса.
Virus Creation Laboratory
Помимо того, что этот конструктор был первым, он имел несколько замечательных черт, таких как :
- Дистрибутив поставляется с неплохим инсталлятором и подробной документацией и примерами использования. Также устанавливается .pif и .ico файлы для MS Windows.
- Дружественный пользовательский интерфейс, по типу TurboVision сред (a la Borland). Наличие контестной подсказки и поддержка мышки. Автор даже утверждает, что его среда является CUA-совместимой. :-)
- Разнообразие типов генерируемого кода :
- Overwriting вирусы
- Appending вирусы
- Companion (spawning) вирусы
- Код для создания троянцев и логических бомб
- Возможность задания свойств генерируемого кода. Код даже слегка оптимизируется. При желании можно добавить в него анти-отладочные и анти-дизассемблерные вставки.
- Настраиваемость среды. Настраиваемые цвета, пополняемая библиотека процедур (эффектов/условий срабатывания).
Другим его недостатком было довольно невысокое качество ассемблерного кода. Зачастую антиотладочные вставки просто не работали и завешивали систему, а иногда ассемблерный код вообще не компилировался. Тем не менее автор Nowhere Man анонсировал выход VCL for Windows и VCL II. Насколько мне известно, VCL for Windows никогда не был выпущен, хотя и существует оболочка от VCL for Windows, получившего название Scare Project. VCL II был практически написан, но в связи с распадом NuKE в целом так и не был отлажен и выпущен.
Прикол из документации: Nowhere Man объявил код сгенерированный VCL своей собственностью и запретил антивирусным производителям использовать участки этого кода в своих продуктах. Мдаа. Как обычно Copyright не сработал. :-)
В апреле 1994 года Firecracker (затем вступивший в NuKE) выпустил VCL Mutator, заменяющий характерные участки кода VCL-вирусов на аналогичные, не обнаруживаемые (тогда) антивирусами.
Известные мне на данный момент версии: (Если еще существует человек, знающий ASM, но не знающий пароля к инсталятору VCL, то вот он: Chiba City )
Phalcon-Skism Mass Produced Code Generator
PS-MPS является намного более мощным и качественным продуктом, нежели VLC. Одной из его отличительных черт является полное отсутствие красивого интерфейса. Иделогия P/S 'Настоящий профессионал работает с командной строкой'. Конфигурация создаваемого вирусного кода задается посредством текстового конфигурационного файла.
С помощью PS-MPC можно создавать полноценные вирусы со следующими свойствами:
- поражение COM и EXE файлов
- резидентый и нерезидентный код
- два разных алгоритма обхода для нерезидентных вирусов
- три способа размещения в памяти резидентного кода
- исключение COMMAND.COM из поражаемых файов
- генерируемый обработчик критических ошибок
- случайно генерируемый алгоритм шифрования кода вируса
- компактный, чуть лучше (чем в VCL) оптимизированный код
- исходники замечательно откомментированы
Примечательной особенностью этого конструктора было то, что он распространялся в исходных кодах (Turbo C), что было побуждением для многих авторов выпустить свои, измененные версии компилятора. Это привело к еще большему увеличению числа вирусов, произведенных с помощью этого компилятора.
Известные мне на данный момент версии:
G2 в работе очень напоминает PS-MPC, но на самом деле он более мощный инструмент в создании вирусного кода. Dark Angel вынес логику генерации кода во внешний файл G2.DAT и декларировал, что будет выпускать новые версии G2 путем замены этого файла на новый. К сожалению, мне неизвестны усовершенствованные варианты G2.DAT. Отличительная черта G2 - это встроенный модификатор кода, позволяющий при каждом запуске компилятора создавать слегка отличающийся код. G2 совместим снизу вверх с PS-MPC по формату конфигурационных файлов. С помощью G2 создано несколько десятков реальных вирусов.
Известные мне на данный момент версии:
Biological Warfare
Генерируемые вирусы имеют следующие характеристики:
- Резидентные / не резидентные
- Поражение EXE/COM файлов
- Шифрование - как простое так и с помощью BWME (см.ниже)
- Анти-трассировочные приемы
- Поражение COMMAND.COM - опционально
- Обработчик Int24 (критической ошибки DOS)
- Два уровня Stealth
- Прочие : способ обхода каталогов, проверка оверлеев, итд.
Опять же если кто-то не знает пароля - ' frea '.
Известные мне на данный момент версии:
NuKE Randomic Life Generator
Компилятор позволяет задать набор свойств вируса, среди которых противодействие резидентным антивирусов, уничтожение файлов контрольных сумм, процедуру шифровки/дешифровки. Помимо этого NRGL предлагает набор деструктивных функций, которые можно внедрить в код создаваемого вируса, таких как уничтожение MBR, файлов и случайных секторов. Код, генерируемый NRGL не отличается читабельностью, хотя человек неплохо знающий ассемблер, может в нем разобраться.
Известные мне на данный момент версии:
Virus Construction Set
Выпущенная в конце 1990 года группой, название которой переводится как 'Ассоциация Любителей Вирусов', VCS не отличается особой изощренностью. VCS запрашивает текст, появляющийся в теле вируса и количество поколений вируса, после которого наступает активация. Затем VCS создает файл Virus.Com, содержащий вирусный код. Вирусы, созданные этим компилятором, имеют одинаковые характеристики :
- Поражение только COM-файлов
- Количество поражаемых файлов фиксировано
- Алгоритм активации : уничтожение Autoexec.bat и Config.sys и вывод заданного при генерации текста
Известные мне на данный момент версии:
Virus Creation 2000
Известные мне на данный момент версии:
VICE ('Virogen's Irregular Code Engine')
VICE (Virogen's Irregular Code Engine) -это очереднойполиморфик-генератор, см. MtE и TPE.Существуют несколько версийгенератора, они содержат строки:
[VICE v0.1с, by _irogen]
[_iCE v0.5, by _iro
Несколько вирусов на базе VICEраспространяются вместе с самимгенератором. Это неопасныерезидентные вирусы. Ониперехватывает INT 21h и записываются вконец запускаемых COM- и EXE-файлов.
Amber
IVP ('Instant Virus Production Kit')
IVP ('INSTANT VIRUS PRODUCTION KIT') являетсяутилитой для создания вирусов IVPгенерирует исходные ассемблерныетексты вирусов различных типов,характеристики которыхописываются в конфигурационномфайле. К таким характеристикамотносятся: заражение COM, EXE или обоихтипов; самошифрующийся вирус илинет; перехват INT 24h или нет;заражение COMMAND.COM; встроенныеэффекты и т.д.
Генератор IVP в значительнойстепени повторяет генератор PS-MPS и ,скорее всего, является егоуменьшенной версией.
Автор : Youngsters Against McAffe (USA)
MME (MiMe) является очереднымполиморфик-генератором.
"MME.WhoNoName" - опасныйнерезидентный вирус. При запускеищет .COM-файлы и записывается в ихконец. Часто зараженные файлы виснут при исполнении.
Вируссодержит строки:
[This is WhoNoName V2.1 Virus By Dark Tommy]
The WhoNoName V2.1 Virus Make With MiMe v1.0
Конструктор TPE
Bizatch
CPE-APE
Конструктор UCF (TCHK)
Конструктор TSR-TB
Конструктор VLC
Создан 03-03-1995 г.
Авторы: Trixter & White Cracker.
Virus Lab Creations.Конструктор вирусов на языке C++.Большое количество опций.
Описания нет.
Хакерский мир можно условно разделить на три группы атакующих:
Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.
Зачем ИБ-персоналу эти сомнительные навыки?
Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.
Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.
Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.
Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:
Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:
Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:
Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.
Умный кейлогер
Погодите, а есть ли смысл пытаться снимать всю подряд информацию со всех приложений?
Код выше тянет сырой ввод с клавиатуры с любого окна и поля ввода, на котором сейчас фокус. Если ваша цель – номера кредитных карт и пароли, то такой подход не очень эффективен. Для сценариев из реального мира, когда такие кейлогеры выполняются на сотнях или тысячах машин, последующий парсинг данных может стать очень долгим и по итогу потерять смысл, т.к. ценная для взломщика информация может к тому времени устареть.
Вторая версия кода:
Еще более умный кейлогер
Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.
Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:
Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.
Для C# это выглядит так:
Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.
Бесплатно и полностью не обнаружим
В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.
Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?
В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой странице вы можете ознакомиться с полным анализом.
Основная цель этой статьи – показать, что используя одни только антивирусы вы не сможете полностью обеспечить безопасность на предприятии. Нужен более глубинная оценка действий всех пользователей и даже сервисов, чтобы выявить потенциально вредоносные действия.
В следующих статья я покажу, как сделать действительно не обнаружимую версию такого ПО.
Читайте также: