что такое бэкдор вирус
Что такое Backdoor и какой вред он может нанести?
Backdoor — это метод, используемый для обхода требований аутентификации или шифрования и создания секретного доступа к компьютеру с целью управления устройством без ведома пользователя. Иногда бэкдоры могут быть установлены добровольно для предоставления доступа удаленным пользователям. Однако, когда этот термин применяется к вредоносному ПО, это означает, что хакеры используют его для доступа к функциям компьютера в скрытом виде, например, в фоновом режиме. Бэкдорные вирусы действительно представляют собой комбинацию различных угроз безопасности, некоторые из которых могут управляться удаленно.
Как распространяются Backdoor?
Бэкдоры часто внедряются в системы благодаря другим вредоносным программам, таким как трояны, вирусы или с помощью шпионских программ. Им удается получить доступ без ведома администраторов, а затем заразить сеансы всех пользователей скомпрометированной сети. Некоторые угрозы внедряются пользователями с привилегиями, чтобы получить доступ позднее.
Бэкдоры также интегрируются в определенные приложения. Иногда легитимные программы могут иметь уязвимости и разрешают удаленный доступ. В таких случаях злоумышленникам по-прежнему необходимы некоторые средства связи со взломанным компьютером для получения несанкционированного доступа к системе.
Пользователи сами могут непреднамеренно устанавливать на свои компьютеры бэкдоры. Такой вирус обычно прикрепляется к файлообменным приложениям или электронной почте. Методы scareware и вирусы-вымогатели при этом не применяются.
Некоторые бэкдоры используют определенные уязвимости в удаленных системах, либо на компьютерах, либо в сети.
Какой вред могут нанести Backdoor?
Вирусы, которые проникают через бэкдоры, часто имеют возможность делать скриншоты, вести запись в журналах регистрации ключей или заражать и шифровать файлы. Бэкдор помогает злоумышленнику создавать, переименовывать, удалять, а также редактировать документы или копировать абсолютно любой файл, выполнять простые и сложные команды, изменять системные настройки, удалять записи реестра Windows, без проблем запускать, контролировать и завершать работу приложений или устанавливать новые вредоносные программы.
Аналогичным образом, они могут позволить злоумышленникам взять под контроль аппаратные устройства, изменить соответствующие настройки, перезагрузить или выключить компьютер без разрешения и украсть конфиденциальные данные, пароли, данные для входа в систему, личную информацию и другие важные документы.
Бэкдорные атаки приносят прибыли от записей перемещений пользователей в интернете, заражения файлов, повреждения системы и порчи приложений.
Примеры атак Backdoor
Одним из таких примеров являются Sticky Attacks. В этом случае, злоумышленники используют «атаку грубой силы» на сервер с включенным протоколом удаленного рабочего стола (RDP) и могут получить учетные данные для доступа к компьютеру. Затем киберпреступники используют скрипты и инструменты операционной системы, чтобы остаться незамеченными и установить простой бэкдор.
Даже если жертвы понимают, что были скомпрометированы и меняют пароли, злоумышленники тогда применяют Sticky Keys для доступа к компьютеру без необходимости повторно вводить учетные данные.
Еще одним примером является DoublePulsar, инструмент для внедрения бэкдоров, который часто используется хакерскими группами. Он может заразить сразу несколько тысяч компьютеров под управлением Microsoft Windows всего за несколько дней и активно используется для атак с 2017 года.
Распознать и обезвредить. Поиск неортодоксальных бэкдоров
Согласно нашим подсчетам, в 72% зараженных сайтов использованы программы скрытого удаленного администрирования — бэкдоры. С их помощью мошенники получают удаленный доступ к вашему сайту, и понятное дело, чем это грозит владельцу: получение и передачи конфиденциальных данных пользователей, запуск вредоносных программ, уничтожения информации и тд.
Время от времени приходится сталкиваться с уникальными бэкдорами, которые не включают обычные функции PHP, такие как eval, create_function, preg_replace, assert, base64_decode и т.п.
Такие бэкдоры часто выглядят как исходный код без какой-либо обфускаций, нет зашифрованных строк, конкатенации строк, форматирования кода программы, изменения его структуры. Однако эти бэкдоры по-прежнему позволяют злоумышленнику запускать на вашем сервере произвольный код.
Бэкдор и Shutdown Function
Давайте начнем с простого. Комментарий в файле говорит, что это @package win.error.Libraries с функцией:
register_shutdown_function регистрирует функцию, которая выполнится по завершении работы скрипта. Потому, независимо от кода, который вы видите в скрипте, после его завершения будет выполнена функция обратного вызова из функции register_shutdown_function.
Функция, выполняемая после скрипта, будет выглядеть так:
В любом случае, код выглядит загадочным. Взглянем на него глазами хакера и предположим, что им был активирован скрипт со следующими параметрами POST:
d = create_function
е = base64_decode
с = some_base64_encoded_malicious_PHP_code
Теперь это выглядит как обычный бэкдор. Этот код не требует дополнительного вызова, так как register_shutdown_function регистрирует функцию обратного вызова, которая автоматом выполнится после завершения работы скрипта.
Бэкдор и Stream Wrapper
Теперь немного усложним задание по распознаванию бэкдоров.
Перед нами комментарий — @package Stream.ksn.Libraries, а значит, файл содержит класс Stream и функцию для работы с потоками stream_wrapper_register, которая регистрирует обертку по ksn протоколу.
А теперь, по порядку. Для владельцев сайта и некоторых вебмастеров этот код выглядит вполне законно — типичные файлы в системах управления контентом или сторонних плагинах — возможно, не совсем понятно за чем он и что делает, но если есть — видимо нужен и полезен. А кто-нибудь знает, что такое ksn потоки?
Но погодите — мы видим, что в коде присутствуют POST-данные. А вот это уже вызывает подозрение, так как параметры POST могут контролироваться злоумышленниками. Пока не совсем ясно, какие данные POST используются в этом коде. Поиграем в криптографов и используем технику декодирования, заменим буквы в фразе.
Начнем с этой части кода из функции stream_open:
Сомневаюемся, что доменное имя может содержать исполняемый PHP-код… верно?
Функция stream_wrapper_register регистрирует протокол ksn и класс Stream, который будет работать с этим протоколом. Класс Stream следует условию прототипа streamWrapper, а именно streamWrapper::stream_open — открывает файл или URL, и будет вызваться сразу же после инициализации протокола.
В нашем случае fopen открывает URL-адрес ksn: //:
Это создаст URL, в котором часть хоста — исполняемый зловредный PHP код.
Можно ли создать доменное имя или IP-адрес, который будет в действительности полноценным PHP-кодом для атаки веб-сайтов? Функция parse_url не проверяет URL-адреса на корректность, а просто разбивает их на части. Все от: // до первой косой черты (/) или двоеточия (:) считается основной частью URL адреса.
Например, если вы задаете parse_url function: ksn: // eval (base64_decode ($ _POST [«code»])); возвращена будет основная часть URL: eval (base64_decode ($ _ POST [«code»]));
Следуя логике бэкдора, получим следующие параметры POST:
е = base64_decode
с = some_base64_encoded_malicious_PHP_code
В этом случае формулировка fopen выглядит так:
Теперь, вернемся к stream_open function, это будет последним фрагментом головоломки. Теперь известно, какой URL-адрес можно передать файлу функции fopen:
И брюки превращаются, превращаются брюки — в элегантную строку:
Следующая строка просто выполняет бэкдор-код:
Другими словами, все, что требуется для выполнения бэкдор-кода, — это вызвать функцию fopen () с созданным URL-адресом ksn: //.
Выше был показан пример, как злоумышленники могут использовать менее известные функции PHP для создания уязвимостей. Учитывая, что на типичном веб-сайте есть тысячи PHP-файлов, вряд ли можно тщательно проверить каждый файл. Потому поиск вредоносного ПО на сайте — задача не совсем простая. Нельзя полагаться лишь на ручную проверку кода и простые скрипты, которые сканируют известные шаблоны вредоносных программ.
Бэкдоры (backdoors)
Бэкдорами (backdoors) называют одну из разновидностей вредоносных программ, а также утилиты скрытого доступа к компьютеру, специально созданные разработчиками какого-либо программного обеспечения для выполнения несанкционированных или недокументированных действий. Термин произошел от англоязычного словосочетания back door, которое переводится как «задняя дверь» или «черный ход». С точки зрения традиций русской орфографии уместнее писать «бекдор» (так же, как «хеш» или «тег» вместо «хэш», «тэг»), но такой вариант пока не приобрел большого распространения.
Получив доступ к системе, злоумышленник устанавливает бэкдоры для повторного или резервного подключения к ней с целью реализации задуманного.
Бэкдоры выполняют две основные функции: оперативное получение доступа к данным и удаленное управление компьютером. Их умения обширны. Backdoor позволяет злоумышленнику делать на компьютере жертвы то же, что и владелец, только удаленно. Например, появляется возможность копировать или загружать файлы, внедрять вредоносные и нежелательные программы, считывать личные данные, перезагружать компьютер, делать скриншоты и т.д. Бэкдоры помогают преступникам взламывать сети, проводить атаки с зараженного компьютера.
Бэкдор трудно обнаружить в системе, он может никак не проявлять себя, поэтому пользователь часто не догадывается о его присутствии. Впрочем, даже если бэкдор удастся выявить, пользователь не сможет определить, кто его внедрил и какая информация похищена. При обнаружении «тайного хода» в легитимной программе разработчик может скрыть свои намерения, легко выдав его за случайную ошибку.
Бэкдоры (backdoors) имеют много общего со средствами удаленного администрирования и троянскими программами. Они работают по схожему принципу, но имеют более опасные и сложные нагрузки. Из-за этого их и выделили в отдельную категорию.
Классификация бэкдоров
Бэкдоры можно классифицировать по месту встраивания. С этой точки зрения они бывают программными и аппаратными.
Вредоносные объекты аппаратного типа, называемые также аппаратными имплантами, могут быть внедрены непосредственными изготовителями оборудования на одном из производственных этапов. Такие бэкдоры не исчезают при замене или обновлении ПО, не обнаруживаются при сканировании кода, при проверке антивирусной программой.
Бэкдоры программного типа могут также попасть в систему от компании-изготовителя (программные импланты), но чаще это происходит при прямом участии пользователя. Владелец ПК может неосознанно установить их из прикрепленного к письму файла или вместе с загружаемыми данными из файлообменника. Угрозу маскируют с помощью внушающих доверие названий и текстов, которые побуждают жертву открыть и запустить зараженный объект. Кроме того, программные бэкдоры могут быть установлены в компьютер вручную или другими вредоносными программами, опять же незаметно для владельца устройства.
Существуют бэкдоры, интегрированные в определенные программы и приложения. Файл связывается с компьютерным устройством через инсталляцию такого приложения и получает мгновенный доступ к системе либо контролирует эту программу. Часть бэкдоров проникает в вычислительные машины, используя уязвимости. Подобно червям, эти вредоносные образцы тайно распространяются по всей информационной системе; при этом нет ни предупреждений, ни диалоговых окон, вызывающих подозрение пользователя.
Попав в систему, бэкдоры передают злоумышленнику желаемые данные, а также предоставляют возможность управлять машиной. Такое взаимодействие может происходить тремя способами:
Если говорить о функциональности, то с этой точки зрения бэкдоры весьма разнообразны. Например, FinSpy помогает киберпреступнику загружать и запускать любые файлы, взятые из интернета. Программа Tixanbot дает злоумышленнику полный доступ к машине, разрешая осуществлять любые операции. Бэкдор Briba нарушает стабильность работы и конфиденциальность системы, создает точку скрытого удаленного доступа, который можно применять для внедрения других вредоносных программ.
Объект воздействия
Объекты внедрения бэкдоров — такие же, как и у других вредоносных программ. Злоумышленникам интересны компьютеры рядовых пользователей, коммерческих структур, государственных учреждений, предприятий и т.п. Бэкдоры (backdoors) трудно обнаруживаются, они могут присутствовать в системе месяцы и годы, позволяя наблюдать за пользователем, красть его данные, выполнять с его компьютера преступные действия, воровать конфиденциальные сведения, загружать и распространять спам и вредоносные программы.
Получив доступ к системе, злоумышленник может полностью изучить личность пользователя и использовать эту информацию в корыстных или преступных целях. С компьютеров могут быть похищены секретные документы, ноу-хау, объекты коммерческой тайны, которые будут использованы для выгоды другой (своей) компании или для продажи. Такая же ситуация складывается с базами данных, банковскими счетами, телефонами, электронными адресами и прочей полезной и ликвидной на черном рынке информацией.
Бэкдоры страшны и своей разрушительной силой. После выполнения задачи или в случае, когда не получилось извлечь что-то ценное из компьютера жертвы, киберпреступник может удалить все файлы, полностью отформатировать жесткие диски.
Источник угрозы
Откуда может прийти угроза? Бэкдор должен каким-то способом попасть на целевую машину. Как говорилось выше, в ряде случаев он загружается владельцем компьютера вместе с каким-либо файлом. Некоторые вредоносные объекты могут быть интегрированными в программу или приложение, проникать в систему при их установке и активироваться при запуске.
От кого может исходить угроза? От лиц, имеющих непосредственный доступ к компьютеру. Возможны и неосторожные действия, ведущие к заражению, и преднамеренное внедрение вредоносной программы. Также источником угрозы являются хулиганы, запускающие бэкдоры с целью развлечения, мошенники, желающие получить персональные данные, и другие типы злоумышленников.
Случается, что программисты специально оставляют бэкдоры в ПО для осуществления диагностики и последующего устранения недочетов. Но в большинстве случаев «лазейку» в компьютерную систему ищут киберпреступники, имея конкретные цели, ведущие к собственной выгоде или материальному обогащению.
Анализ риска
Практически все компьютеры могут стать жертвой киберпреступников. С каждым днем появляются новые бэкдоры, позволяющие злоумышленникам контролировать систему, нарушать ее работу, управлять разными процессами. Например, в 2017 году была обнаружена новая угроза под названием Proton. Этот инструмент может дать преступнику контроль над вычислительной машиной в полном объеме, позволит выполнять ряд других операций, о которых подробнее говорится в статье «Новый вредонос под macOS использует уязвимость нулевого дня».
Защитить свой компьютер от проникновения вредоносных объектов можно, если использовать сетевой экран, анализировать подозрительную активность, проводить аудит системы. Необходимо обновлять операционную систему и ПО, пользоваться антивирусными программами от известных разработчиков, проверять компьютер на вирусы дополнительными утилитами.
Знай своего врага: создаём Node.js-бэкдор
Бэкдор в собственном коде, который может незаметно взаимодействовать с операционной системой, это один из самых страшных кошмаров любого разработчика. В настоящий момент в npm имеется более 1.2 миллиона общедоступных пакетов. За последние три года зависимости проектов превратились в идеальную цель для киберпреступников. Экосистема npm может оказаться на удивление хрупкой в том случае, если сообщество разработчиков не обратит пристальное внимание на безопасность. В качестве доказательств этой мысли достаточно вспомнить о тайпсквоттинге и об инциденте с npm-пакетом event-stream.
Автор статьи, перевод которой мы сегодня публикуем, хочет, в образовательных целях, рассказать о том, как создавать бэкдоры для платформы Node.js.
Что такое бэкдор?
Вот какое определение понятия «бэкдор» («backdoor») даётся на ресурсе Malwarebytes: «В сфере кибербезопасности бэкдором называют любой метод, пользуясь которым авторизованные и неавторизованные пользователи могут обойти обычные меры безопасности и получить высокоуровневый доступ (root-права) к компьютерной системе, сети, приложению. После получения подобного доступа к системе киберпреступники могут использовать бэкдор для кражи персональных и финансовых данных, установки дополнительных вредоносных программ, взлома устройств».
Бэкдор состоит из двух основных частей:
Для того чтобы создать упрощённый вариант программы, реализующей вышеописанную атаку, мы будем, для выполнения кода, использовать стандартный модуль child_process. Для организации связи с бэкдором задействуем HTTP-сервер. Я посоветовал бы использовать в данном случае фреймворк Express, известный своими огромными возможностями, но то, о чём пойдёт речь, можно реализовать и с использованием любых других подходящих инструментов.
Зачем нам child_process?
Выполнение процесса и его взаимосвязь со стандартными потоками ввода, вывода и ошибок, играющих роль входных и выходных потоков для запущенного системного процесса
Как объединить функцию exec с HTTP-сервером?
Я разработал простой, невинно выглядящий пакет промежуточного слоя browser-redirect, предназначенный для Express-приложений. Он перенаправляет пользователей, работающих не в Chrome, на browsehappy.com. Вредоносный код я включу в этот пакет.
Код пакета будет примерно таким:
Жертве достаточно установить пакет и воспользоваться им в Express-приложении так же, как пользуются любым пакетом промежуточного слоя:
Вредоносный код
Реализация вредоносного кода весьма проста:
Как работает наш бэкдор? Для ответа на этот вопрос нужно учесть следующее:
Способы распространения бэкдора
Теперь, когда код бэкдора готов, нужно подумать о том, как распространять вредоносный пакет.
Первый шаг — публикация пакета. Я опубликовал пакет browser-redirect@1.0.2 в npm. Но если взглянуть на GitHub-репозиторий проекта, то вредоносного кода там не будет. Убедитесь в этом сами — взгляните на ветку проекта master и на релиз 1.0.2. Это возможно благодаря тому, что npm не сверяет код публикуемых пакетов с кодом, опубликованным в некоей системе, предназначенной для работы с исходным кодом.
Хотя пакет и опубликован в npm, его шансы на распространение пока очень низки, так как потенциальным жертвам ещё нужно найти его и установить.
Ещё один способ распространения пакета заключается в добавлении вредоносного модуля в качестве зависимости для других пакетов. Если у злоумышленника есть доступ к учётной записи с правами публикации какого-нибудь важного пакета, он может опубликовать новую версию такого пакета. В состав зависимостей новой версии пакета будет входить и бэкдор. В результате речь идёт о прямом включении вредоносного пакета в состав зависимостей популярного проекта (взгляните на анализ инцидента, произошедшего с event-stream). В качестве альтернативы злоумышленник может попытаться сделать PR в некий проект, внеся в lock-файл соответствующие изменения. Почитать об этом можно здесь.
Ещё один важный фактор, который нужно принимать во внимание, это наличие у атакующего доступа к учётным данным (имени пользователя и паролю) кого-то, кто занимается поддержкой некоего популярного проекта. Если у злоумышленника такие данные есть, он легко может выпустить новую версию пакета — так же, как это случилось с eslint.
Но если даже тот, кто занимается поддержкой проекта, использует для его публикации двухфакторную аутентификацию, он всё равно рискует. А когда для развёртывания новых версий проекта используется система непрерывной интеграции, то двухфакторную аутентификацию нужно выключать. В результате, если атакующий может украсть рабочий npm-токен для системы непрерывной интеграции (например, из логов, случайно попавших в общий доступ, из утечек данных, и из прочих подобных источников), то у него появляется возможность развёртывания новых релизов, содержащих вредоносный код.
Обратите внимание на то, что выпущен новый API (находящийся пока в статусе private beta), который позволяет узнать о том, был ли пакет опубликован с использованием IP-адреса сети TOR, и о том, была ли при публикации использована двухфакторная аутентификация.
Более того, злоумышленники могут настроить вредоносный код так, чтобы он запускался бы в виде скрипта, выполняемого перед установкой или после установки любого npm-пакета. Существуют стандартные хуки жизненного цикла npm-пакетов, которые позволяют выполнять код на компьютере пользователя в определённое время. Например, система для организации тестирования проектов в браузере, Puppeteer, использует эти хуки для установки Chromium в хост-системе.
Райан Даль уже говорил об этих уязвимостях на JSConf EU 2018. Платформа Node.js нуждается в более высоком уровне защиты для предотвращения этого и других векторов атак.
Вот некоторые выводы, сделанные по результатам исследования безопасности опенсорсного ПО:
Итоги: как защититься от бэкдоров?
Контролировать зависимости не всегда легко, но в этом деле вам могут помочь несколько советов:
С чёрного входа: смысл термина Backdoor
В английском языке бэкдор (Backdoor — чёрный вход, задняя дверь) термин очень, так сказать, выразительный, неплохо описывающий возможные последствия эксплуатации данного типа угроз. Он, однако, не даёт сколько-нибудь очевидного объяснения,
В английском языке бэкдор (Backdoor — чёрный вход, задняя дверь) термин очень, так сказать, выразительный, неплохо описывающий возможные последствия эксплуатации данного типа угроз. Он, однако, не даёт сколько-нибудь очевидного объяснения, что такое бэкдор с технической точки зрения. Что ж, мы попытаемся разъяснить. Во-первых, бэкдор — это прежде всего метод, а не конкретная вредоносная программа. Из бюллетеней по безопасности складывается впечатление, что это просто один из типов зловредов: «Этот троянец устанавливает бэкдор…». Но по существу — это именно метод обхода надлежащей авторизации, который позволяет получать скрытый удалённый доступ к компьютеру. «Скрыты» не означает «необнаружимый», хотя, конечно, преступники предпочли бы, чтобы это было именно так.
Бэкдоры нужны для незаметного проникновения.
История бэкдоров начинается где-то в конце 1960-х, когда, согласно Wikipedia, широко распространились многопользовательские системы, связанные в сети. В исследовательской работе, опубликованной в протоколах конференции AIPS в 1967 году, упоминается угроза, получившая название «люк» (trapdoor), описывающая «точки проникновения» в ПО, которые позволяли обходить надлежащую авторизацию; сегодня для описания этой угрозы используется термин «бэкдор».
Примеры бэкдоров встречаются и в популярной культуре. Например, в фильме 1983 года WarGames («Военные игры«) разработчик военного суперкомпьютера WORP вписал в код пароль (имя своего умершего сына), который обеспечивал пользователю доступ к системе и её незадокументированным функциям (в частности, симуляции, похожей на видеоигру, и прямой доступ к искусственному интеллекту).
Ранее мы уже упоминали о телесериале «В поле зрения», где речь идёт об искусственном интеллекте — «Машине», чьи создатели обеспечили себе доступ через «бэкдор», чтоб получать информацию о людях, которым угрожает опасность — и это отправная точка всего сюжета.
«Установить бэкдор» означает, как правило, не установку собственно вредоносного ПО, но, скорее, внесение изменений в легитимный программный пакет с целью как минимум частичного обхода средств защиты и обеспечения скрытого доступа к интересующим злоумышленников данным. Возможно, это прозвучит странно, но «дефолтные» пароли к программам и устройствам сами по себе могут представлять бэкдоры. Особенно, если их не сменить. Как бы там ни было, существуют и зловреды, именуемые бэкдорами и троянцами-бэкдорами: это програмные модули, обеспечивающие их операторам несанкционированный доступ в заражённую систему с вероятной целью вывода информации на регулярной основе либо же превращения этой системы в часть ботнета, который будет распространять спам в огромных количествах или использоваться для DDoS-атак.
Бэкдоры также позволяют творить всё что угодно на инфицированных компьютерах: отправлять и принимать файлы, запускать их или удалять, выводить сообщения, стирать данные, перезагружать систему, и т.д.
Многие компьютерные черви прошлого (Sobig, Mydoom и другие) устанавливали бэкдоры на заражённые ими компьютеры. Аналогично, многие сегодняшние троянцы обладают такими же функциями. Бэкдор-троянцы, на самом деле, вообще самый распространённый тип троянцев. И
менно бэкдоры, позволяющие выводить данные из заражённых машин, являются ключевой функциональностью крупномасштабных APT, таких как Flame и Miniduke, обнаруженных «Лабораторией Касперского».
Бэкдоры устанавливаются там, где защита «легко рвётся».
Бэкдоры (троянцы), как правило, устанавливают на скомпрометированных системах те или иные серверные компоненты. Те открывают определённые порты или сервисы, обеспечивая атакующим возможность входа при посредстве клиентского ПО бэкдора. Таким образом, компьютер — или программный пакет — оказывается под контролем злоумышленника без ведома пользователя.
Данная проблема затрагивает не только персональные компьютеры и локальный софт. Простой PHP-скрипт позволяет создавать в системе управления контентом WordPress администраторские аккаунты; троянцам-бэкдорам под мобильную ОС Android так и вообще нет счёту. Как с ними бороться? — С помощью ПО для защиты информации и базовой информационной гигиены. Большая часть вредоносного ПО требует как минимум некоторой степени кооперации со стороны пользователя. Другими словами, злоумышленникам требуется обманом заставить юзеров установить троянцы самостоятельно — и для этого используется социальная инженерия и прочие способы усыпления бдительности.