блог об информационных технологиях: софт, железо, интернет, услуги, советы

Скрытый майнинг: страшная киберугроза или бессмысленный миф?

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

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

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

Для начала проясним вопрос с используемой терминологией. Поскольку слово "майнер" является многозначным, в статье оно будет использоваться в значении человек, занимающийся майнингом. А софт, который непосредственно чеканит криптовалюту на компьютере, будет именоваться далее как программа-майнер. Существуют ещё хардварные майнеры - устройства, предназначенные для майнинга определённой криптовалюты, они же асики, но в данной статье они рассматриваться не будут, так как никак не связаны с темой скрытого майнинга.

Далее разберёмся с тем, что же собой представляет сам майнинг. Для этого вспомним, чем является блокчейн - как следует из названия, он является цепочкой блоков, внутри которых находится история транзакций. Тут закономерно возникает вопрос - а как решается проблема добавления новых блоков в цепочку? Ответ на него разработчики первых криптовалют подсмотрели в анти-спамовых технологиях: прежде, чем получить возможность послать email, отправитель должен доказать, что он решил некоторую сложную задачу (Proof-of-Work). Принцип Proof-of-Work применительно к криптовалютам приобрёл такой вид - новый блок в цепочку добавит тот майнер, который быстрее других решит некоторую сложную задачу; и за это он получит приз в виде определённого количества криптомонет.

Чем же является сложная задача для майнера? Майнер должен захешировать новый кусок истории транзакций, т.е. получить хеш - некоторый набор символов, в который превратится набор новых транзакций после совершения над ним определённых криптографических преобразований. Но сам по себе хеш сгенерировать относительно легко - чтобы эта задача стала по-настоящему сложной, новый хеш должен соответствовать определённым условиям. Например, "первые 5 символов нового хеша должны быть a1b2c" или "первые 7 символов хеша должны быть a1b2c3d". Эти условия обычно принято называть уровнем сложности. Дело в том, что невозможно предугадать значение и порядок символов в новом хеше. Поэтому у программы-майнера не остаётся другого выбора, кроме как поставить генерацию хешей на поток и постоянно проверять, какие из решений в потоке будут соответствовать уровню сложности.

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

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

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

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

Какие ресурсы может использовать вредоносная программа-майнер в случае несанкционированного проникновения на хост пользователя? Только видеокарты (GPU) и процессор (CPU). Те, кто запускал майнинг на GPU наверняка знают, какой гул от вентиляторов видеокарт при этом поднимается - будто на них запускается непрерывное стресс-тестирование. Не заметить такое просто невозможно. А майнинг на CPU давно стал пережитком прошлого - CPU очень сильно уступают GPU в организации параллельных вычислений, поэтому даже у самого мощного CPU хешрейт крайне мал для более-менее регулярного преодоления порога сложности в сетях популярных криптовалют.

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

Как видно, майнинг можно назвать каким угодно, но только не скрытым. Тут обычно следует такое предположение - а если злоумышленники попытаются скрыть майнинговую активность путём понижения её интенсивности? Или же они будут пытаться как-то определять периоды неактивности пользователя, чтобы не выдать себя. Или пытаться как-то маскироваться, например, запуская GPU-майнинг в моменты просмотров пользователем youtube, но опять же на пониженной интенсивности, чтобы не создать пользователю неудобств. Все эти предположения можно назвать извращённым майнингом - попытки как-то скрыться за счёт искусственного понижения хешрейта подобны выходу на старт беговых соревнований со связанными ногами: участвовать никто не запретит, публика будет в восторге, но о победе можно сразу забыть.

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

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

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


 

Комментарии