Боты – порождение Интернета. В то время как вирусы использовали асинхронный обмен данными с конца 1980-х до конца 1990-х годов – сначала путём обмена данными, а затем путем кратковременного обмена «электронной почтой» в Интернете, боты зависят от почти постоянного подключения к Интернету. С одной стороны, они постоянно запрашивают команды у своего «хозяина», с другой стороны, многие действия ботов направлены на выполнение задач с низкой скоростью передачи данных, но высокой эффективностью.
Что такое бот-сеть?
Ботнет (также известный как бот-сеть) состоит как минимум из трёх компонентов, которые, в идеальном случае (для операторов и разработчиков ботнета, а не для тех, кто подвергается непреднамеренному воздействию), являются максимально взаимозаменяемыми:
- программа-червь, обеспечивающая распространение с компьютера на компьютер (или с устройства на устройство)
- программа управления и контроля на сервере
- компонент, который пытается выполнить загруженную задачу максимально незаметным образом
В некоторых случаях (например, ботнет Mirai), компоненты можно объединять или разделять. Однако, это не меняет принципиальную зависимость от интернет-соединений, которые необходимы для выполнения работы (выполнения «полезной нагрузки») и дальнейшего распространения ботнета с помощью компонента-червя.
Для многих ботнетов также характерно, что они «спят» в течение нескольких дней, недель или даже месяцев, прежде чем начнут действовать. Основная причина этого заключается в том, что, с точки зрения оператора ботнета, гораздо эффективнее позволить начать свою работу крупному ботнету, чем столкнуться с контрмерами против нескольких сотен «участников».
Другая причина часто заключается в том, что таким образом могут быть добавлены другие типы распространения – компонент-червь может пройти первые этапы эволюции до того, как появится компонент, несущий полезную нагрузку.
Оставаться незаметным
Три основные задачи бот-сетей – это рассылка спама, проведение атак типа «отказ в обслуживании» и добыча различных криптовалют, таких как биткойн (реже) или ethereum (чаще).
Во всех трёх случаях разумно запрограммированные боты пытаются вести себя незаметно: например, бот-сеть, состоящая из сотен тысяч спам-ботов, может относительно незаметно рассылать большие объёмы спама, если каждый отдельный участник отправляет только небольшое количество спамовых писем в день.
В случае атак типа отказа в обслуживании (DoS), а точнее распределенного отказа в обслуживании (DDoS), то есть парализации служб, достаточно, например, от каждого отдельного компьютера открыть несколько десятков TCP-соединений и использовать их для очень медленной загрузки данных. Каждый отдельный участник ботнета не замечает используемую полосу пропускания (крошечную долю от DSL-соединения), а также нет никакой опасности достичь предела количества TCP-соединений.
Боты для майнинга пытаются снизить нагрузку на систему, когда обнаруживают, что пользователь в данный момент взаимодействует с системой или, например, ноутбук работает от батареи.
Верный признак заражения: когда вы подходите к своему компьютеру, а он громко шумит вентиляторами, вы задаётесь вопросом, что вызывает высокую нагрузку, и сразу после входа в систему обнаруживаете, что всё в порядке, а вентиляторы уже затихли – обычно вы забываете поискать причину, а бот может майнить криптовалюты в течение недель или месяцев, что вызывает довольно заметные затраты на электроэнергию.
Ещё одним шагом к большей незаметности является установка с обычными правами пользователя (не с правами администратора): ни спам-боты, ни DDoS-боты не требуют повышенных прав. Часто бывает достаточно запустить программное обеспечение через автозапуск реестра. Особенно с программами для майнинга криптовалют, нет никакой разницы между законным (то есть для вашего собственного кошелька) и незаконным инструментом для программного обеспечения безопасности.
Веб-майнинг в бот-сети
Интересное решение распространилось за последний год – майнинг криптовалют в веб-браузере. Есть некоторые эфириум-добытчики на JavaScript, которые устанавливаются на сайтах вместо рекламы (или в дополнение): в то время как вы смотрите какой-то фильм (который идеально декодируется в h.264 аппаратными средствами) и требует всего внимания зрителя, код на JavaScript в фоновом режиме добывает криптовалюту. Если закрыть вкладку, майнинг закончится.
С появлением высокопроизводительных компьютеров проблема только усугубляется. Некоторым находчивым веб-разработчикам удаётся открывать всплывающие окна, в которых добываются крипто-деньги, и размещать их под всеми другими окнами и часами в Windows.
Если вас беспокоит постоянно высокая загрузка системы после закрытия всех окон браузера, вам следует попробовать переместить панель задач в другое место.
Экономика ботнета
Интересным аспектом ботнетов является то, что над созданием сетей работают разные группы, и это разделение труда оплачивается деньгами: инициатор ботнета покупает знания о пробелах в безопасности или готовый код, который их использует. Во многих случаях, например, он покупает услуги хостинга в виде взломанных блогов или форумов, чтобы распространять своё программное обеспечение путём прямой загрузки.
Если ботнет будет достаточно большим, оператор начнет предлагать свои мощности на подпольных торговых площадках. Он может рекламировать гибкость ботнетов, которые могут нести различную полезную нагрузку, или, например, выделять высокую пропускную способность или множество хорошо подключенных клиентов в чистых от спама или DDoS-атак сетях.
Оплата обычно производится в биткойнах. Другими популярными способами оплаты являются карты Paysafe, предоплаченные дебетовые карты или ваучеры крупных интернет-магазинов, таких как Amazon или iTunes. Такие ваучерные карты можно легко обменять на обычную валюту, например, через онлайн-аукционы.
Обнаружение бот-сетей: Sysinternals Process Explorer может намного больше, чем диспетчер задач Windows, и, таким образом, лучше помогает в поиске подозрительных процессов.
Многие антивирусные сканеры сталкиваются с трудностями при обнаружении ботов или часто поздно добавляют новых ботов в списки сигнатур и поведенческую эвристику. Основная причина этого – низкая активность многих ботов. Бот, который вообще ничего не делает в течение нескольких недель, например, и имеет в своём коде жестко запрограммированную дату для первого подключения к серверу управления и контроля, вряд ли будет своевременно замечен, чтобы его отправили производителю антивирусного программного обеспечения для анализа.
Кроме того, набор функций часто минимален: в качестве минимального бот-кода достаточно установить соединение с командным сервером, загрузить полезную нагрузку и выполнить её. В конце концов, зачастую легче отследить полезную нагрузку и определить её функцию, чем самого бота. Это может привести к ситуации, когда сам бот остается незамеченным, но загруженные данные иногда распознаются и обезвреживаются.
Вторая проблема – это проблема легитимности: почтовый сервер для рассылки спама трудно отличить от почтового сервера для отправки (законных) информационных бюллетеней только на основе поведенческой эвристики – и, как уже упоминалось: легитимные и незаконные программы практически неотличимы.
IoT-устройства – новая проблема
Не каждая компьютерная система в доме содержит сканер вирусов: в современном доме вы легко найдёте больше десятка устройств на базе Linux и процессоров ARM или MIPS, – телевизоры, работающие под управлением смарт-систем, сетевые устройства, такие как точки доступа и адаптеры Powerline, интернет-радио и Raspberry Pi.
Многие из этих, так называемых, устройств IoT (сокращенно от «Интернет вещей») редко получают обновления, часто работают месяцами и, следовательно, становятся привлекательными целями для злоумышленников.
Отсутствие программного обеспечения безопасности и, в частности, отсутствие мер безопасности, интегрированных в Linux, повышают привлекательность. Поскольку вредоносное ПО обычно запускается и удаляется, то есть исчезает после перезапуска, ни анализ образа операционной системы, ни проверка существующих файлов не помогают.
Сеть вместо анализа файлов
Зараженные устройства Интернета вещей обычно можно найти через сеть. Прежде всего, вы можете использовать OpenVAS для выполнения сканирования уязвимостей по всей сети и, таким образом, отслеживания уязвимых устройств и проведения инвентаризации «забытых» устройств.
С помощью Snort – системы обнаружения вторжений (IDS) – вы можете автоматически анализировать сетевой трафик, так что можно, например, обнаружить установление соединения с определенными C&C серверами и подать сигнал тревоги.
Наконец, с помощью Wireshark вы можете записывать весь трафик отдельных компьютеров и детально анализировать их. Прежде всего, вы можете отслеживать уязвимые устройства и проводить инвентаризацию «забытых».
Некоторые производители DSL-маршрутизаторов начинают отслеживать определенные запросы и обнаруживать доступ к C&C серверам – не полноценная IDS, но шаг в правильном направлении.