бэкдор что это в программировании

Знай своего врага: создаём 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

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

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

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

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

Поиск

Продукты для дома

Наши передовые решения помогают защитить то, что для вас ценно. Узнайте больше о нашей удостоенной наград защите.

Бесплатные утилиты

Наши бесплатные утилиты помогают обеспечить защиту ваших устройств на базе Windows, Mac и Android.

О компании

Узнайте больше о том, кто мы, как мы работаем и почему наша главная цель – сделать цифровой мир безопасным для всех.

Пробные версии

Попробуйте наши решения. Всего за несколько кликов вы можете скачать бесплатные пробные версии нашего продукта и проверить их в действии.

Связаться с нами

Наша главная цель – обеспечить вашу безопасность. Мы всегда готовы ответить на ваши вопросы и оказать техническую поддержку.

Источник

С чёрного входа: смысл термина Backdoor

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

бэкдор что это в программировании. Смотреть фото бэкдор что это в программировании. Смотреть картинку бэкдор что это в программировании. Картинка про бэкдор что это в программировании. Фото бэкдор что это в программировании

бэкдор что это в программировании. Смотреть фото бэкдор что это в программировании. Смотреть картинку бэкдор что это в программировании. Картинка про бэкдор что это в программировании. Фото бэкдор что это в программировании

В английском языке бэкдор (Backdoor — чёрный вход, задняя дверь) термин очень, так сказать, выразительный, неплохо описывающий возможные последствия эксплуатации данного типа угроз. Он, однако, не даёт сколько-нибудь очевидного объяснения, что такое бэкдор с технической точки зрения. Что ж, мы попытаемся разъяснить. Во-первых, бэкдор — это прежде всего метод, а не конкретная вредоносная программа. Из бюллетеней по безопасности складывается впечатление, что это просто один из типов зловредов: «Этот троянец устанавливает бэкдор…». Но по существу — это именно метод обхода надлежащей авторизации, который позволяет получать скрытый удалённый доступ к компьютеру. «Скрыты» не означает «необнаружимый», хотя, конечно, преступники предпочли бы, чтобы это было именно так.

Бэкдоры нужны для незаметного проникновения.

История бэкдоров начинается где-то в конце 1960-х, когда, согласно Wikipedia, широко распространились многопользовательские системы, связанные в сети. В исследовательской работе, опубликованной в протоколах конференции AIPS в 1967 году, упоминается угроза, получившая название «люк» (trapdoor), описывающая «точки проникновения» в ПО, которые позволяли обходить надлежащую авторизацию; сегодня для описания этой угрозы используется термин «бэкдор».

Примеры бэкдоров встречаются и в популярной культуре. Например, в фильме 1983 года WarGames («Военные игры«) разработчик военного суперкомпьютера WORP вписал в код пароль (имя своего умершего сына), который обеспечивал пользователю доступ к системе и её незадокументированным функциям (в частности, симуляции, похожей на видеоигру, и прямой доступ к искусственному интеллекту).

Ранее мы уже упоминали о телесериале «В поле зрения», где речь идёт об искусственном интеллекте — «Машине», чьи создатели обеспечили себе доступ через «бэкдор», чтоб получать информацию о людях, которым угрожает опасность — и это отправная точка всего сюжета.

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

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

Многие компьютерные черви прошлого (Sobig, Mydoom и другие) устанавливали бэкдоры на заражённые ими компьютеры. Аналогично, многие сегодняшние троянцы обладают такими же функциями. Бэкдор-троянцы, на самом деле, вообще самый распространённый тип троянцев. И

менно бэкдоры, позволяющие выводить данные из заражённых машин, являются ключевой функциональностью крупномасштабных APT, таких как Flame и Miniduke, обнаруженных «Лабораторией Касперского».

Бэкдоры устанавливаются там, где защита «легко рвётся».

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

Данная проблема затрагивает не только персональные компьютеры и локальный софт. Простой PHP-скрипт позволяет создавать в системе управления контентом WordPress администраторские аккаунты; троянцам-бэкдорам под мобильную ОС Android так и вообще нет счёту. Как с ними бороться? — С помощью ПО для защиты информации и базовой информационной гигиены. Большая часть вредоносного ПО требует как минимум некоторой степени кооперации со стороны пользователя. Другими словами, злоумышленникам требуется обманом заставить юзеров установить троянцы самостоятельно — и для этого используется социальная инженерия и прочие способы усыпления бдительности.

Источник

Что такое Backdoor и какой вред он может нанести?

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

Как распространяются Backdoor?

Бэкдоры часто внедряются в системы благодаря другим вредоносным программам, таким как трояны, вирусы или с помощью шпионских программ. Им удается получить доступ без ведома администраторов, а затем заразить сеансы всех пользователей скомпрометированной сети. Некоторые угрозы внедряются пользователями с привилегиями, чтобы получить доступ позднее.

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

Пользователи сами могут непреднамеренно устанавливать на свои компьютеры бэкдоры. Такой вирус обычно прикрепляется к файлообменным приложениям или электронной почте. Методы scareware и вирусы-вымогатели при этом не применяются.

Некоторые бэкдоры используют определенные уязвимости в удаленных системах, либо на компьютерах, либо в сети.

Какой вред могут нанести Backdoor?

Вирусы, которые проникают через бэкдоры, часто имеют возможность делать скриншоты, вести запись в журналах регистрации ключей или заражать и шифровать файлы. Бэкдор помогает злоумышленнику создавать, переименовывать, удалять, а также редактировать документы или копировать абсолютно любой файл, выполнять простые и сложные команды, изменять системные настройки, удалять записи реестра Windows, без проблем запускать, контролировать и завершать работу приложений или устанавливать новые вредоносные программы.

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

Бэкдорные атаки приносят прибыли от записей перемещений пользователей в интернете, заражения файлов, повреждения системы и порчи приложений.

Примеры атак Backdoor

Одним из таких примеров являются Sticky Attacks. В этом случае, злоумышленники используют «атаку грубой силы» на сервер с включенным протоколом удаленного рабочего стола (RDP) и могут получить учетные данные для доступа к компьютеру. Затем киберпреступники используют скрипты и инструменты операционной системы, чтобы остаться незамеченными и установить простой бэкдор.

Даже если жертвы понимают, что были скомпрометированы и меняют пароли, злоумышленники тогда применяют Sticky Keys для доступа к компьютеру без необходимости повторно вводить учетные данные.

Еще одним примером является DoublePulsar, инструмент для внедрения бэкдоров, который часто используется хакерскими группами. Он может заразить сразу несколько тысяч компьютеров под управлением Microsoft Windows всего за несколько дней и активно используется для атак с 2017 года.

Источник

бэкдор что это в программировании. Смотреть фото бэкдор что это в программировании. Смотреть картинку бэкдор что это в программировании. Картинка про бэкдор что это в программировании. Фото бэкдор что это в программировании

Многие системы, хранящие информацию в облаке, не могут обеспечить точные меры безопасности. Если в облаке подключено много систем, хакеры могут получить доступ ко всем другим платформам через наиболее уязвимую систему.

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

СОДЕРЖАНИЕ

Обзор

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

Политика и атрибуция

При распределении ответственности необходимо учитывать ряд важных факторов.

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

В общем, длинные цепочки зависимостей в современной высокоспециализированной технологической экономике и бесчисленное количество точек управления процессами, состоящими из человеческих элементов, затрудняют окончательное определение ответственности в то время, когда открывается скрытый бэкдор.

Даже прямое признание ответственности должно быть тщательно изучено, если исповедующая сторона обязана другим влиятельным интересам.

Примеры

черви

бэкдор что это в программировании. Смотреть фото бэкдор что это в программировании. Смотреть картинку бэкдор что это в программировании. Картинка про бэкдор что это в программировании. Фото бэкдор что это в программировании

Бэкдоры объектного кода

Асимметричные бэкдоры

Существует экспериментальный асимметричный бэкдор в генерации ключей RSA. Этот бэкдор OpenSSL RSA, разработанный Янгом и Юнгом, использует витую пару эллиптических кривых и стал доступным.

Бэкдоры компилятора

Вхождения

Версия Томпсона официально никогда не выпускалась в свет. Однако считается, что версия была распространена на BBN и было зарегистрировано как минимум одно использование бэкдора. В последующие годы появляются отдельные анекдотические сообщения о таких бэкдорах.

Контрмеры

Общий метод противодействия атакам на доверительные отношения называется Diverse Double-Compiling (DDC). Для этого метода требуется другой компилятор и исходный код тестируемого компилятора. Этот источник, скомпилированный обоими компиляторами, приводит к созданию двух разных компиляторов стадии 1, которые, однако, должны иметь одинаковое поведение. Таким образом, один и тот же исходный код, скомпилированный обоими компиляторами стадии 1, должен затем привести к двум идентичным компиляторам стадии 2. Приводится формальное доказательство того, что последнее сравнение гарантирует соответствие предполагаемого исходного кода и исполняемого файла тестируемого компилятора при некоторых предположениях. Этот метод был применен его автором для проверки того, что компилятор C пакета GCC (v. 3.0.4) не содержит трояна, используя icc (v. 11.0) в качестве другого компилятора.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *