В современном мире взлом крипторесурсов не редкость, и не мало статей на просторах интерната по этому поводу.
В данной статье мы не будем рассматривать нашумевшие способы атак на крипторесурсы. Наше внимание привлекло мнение бывшего эксперта аналитического агентства "Fitch Ratings" Эрика Боумана. По мнению Эрика, треть атак на крипторесурсы совершается при помощи программного обеспечения известного в хакерском мире как "bitcoin one-armed bandits". Как утверждает Эрик, злоумышленники используют "bitcoin one-armed bandits", а беспомощным службам безопасности крипторесурсов ничего не остается, как выдать эту атаку за "фишинг", либо что-то другое.
Нам стало интересно разобраться что же такое "bitcoin one-armed bandits" и с чем его едят. Заручившись поддержкой нескольких IT-специалистов, имеющих доступ к закрытым разделам хакерских сообществ и другим информационным ресурсам, мы начали собственное расследование на просторах даркнета. Не имеет смысла описывать весь процесс поиска дабы не растягивать статью на 2 тома. Спустя некоторое время нам удалось выйти на продавца "bitcoin one-armed bandits", побеседовать с ним и взять демоверсию программы.
Вот тут начинается самое интересное, но обо всем по порядку.
Для начала осветим часть переписки с продавцом (на момент переписки мы уже имели общее представление о программе), переписка велась на английском поэтому в статье будет литературный перевод:
- Здравствуйте, меня интересует программное обеспечение "bitcoin one-armed bandits"
- 7000 $
- Не могли бы вы дать технические характеристики и краткое описание продукта
- Обычно обращаются те, кто владеют информацией о продукте. Подождите минуту.
"Bitcoin one-armed bandits" – это программное обеспечение, основанное на технологии майнинга. Оно состоит из 2 подпрограмм: первая формирует базу данных адресов с ненулевым балансом из блокчейна, вторая подпрограмма генерирует закрытые ключи и сравнивает их с базой данных. В случае совпадения у Вас будет закрытый ключ и адрес с балансом.
- С какой криптовалютой я смогу работать, какие скорости генерации закрытых ключей я получу?
- Абсолютно с любой криптовалютой, скорость генерации зависит от вашего оборудования.
- У меня ферма из 4 1080 TI
- одна видеокарта 1080 TI генерирует и сравнивает около 70 миллионов ключей в секунду, но в вычислениях учувствует и центральный процессор.
- У меня старенький 2 ядерный целерон.
- На таком оборудовании Вы получите суммарную мощность порядка 180-200 миллионов ключей в секунду.
- Ваше ПО чем-то напоминает "Биткоин колайдер".
- Разработчики "Биткоин колайдер" – дилетанты.
- В чем принципиальное отличие от их программы?
- В принципе генерации ключа. Вы можете самостоятельно задать начальную точку и любой алгоритм (шаг) перебора закрытого ключа.
- Как я могу убедится, что Ваш "bitcoin one-armed bandits" соответствует заявленному.
- Я предоставлю демо версию - это примерно как "Биткоин колайдер", она может считать только прямым перебором, то есть с шагом +1.
Для теста вам останется только взять свой закрытый ключ с балансом выставить точку старта, которая математически предшествует вашему ключу и "bitcoin one-armed bandits" найдет и выдаст вам его. Более подробная информация по эксплуатации будет в техническом разделе.
- Почему программа называется "bitcoin one-armed bandits"?
- Разработчики прикололись) Вся вычислительная мощность, которая генерирует ключи не нуждается в сети интернет. К интернету подключается только одно устройство которое скачивает блокчейн, строит базу данных и передает её по локальной сети на ферму. Тем самым Вы получаете собственное казино, не выходя в сеть интернет. А насколько Вам повезет зависит от мощности оборудования, точки старта, заданного алгоритма перебора и удачи).
После такого общения начинаешь понимать, о чем говорил Эрик Боуман. Ничего взламывать не надо, генерируй ключи сравнивай и обналичивай, а биржа там попалась или какой другой ресурс, либо пользователь – не имеет значения.
По логике такой способ взлома крипторесурсов возможен, но что будет на практике нас заинтересовало еще больше.
Несколько лет назад была информация о "Биткоин колайдере" и аналогичной возможности взлома криптовалют, но протестировать данную технологию, кроме разработчиков самого "Биткоин колайдера" никто не мог.
Сейчас такая возможность появилась.
Проанализировав все данные возникло три вопроса:
1 Работоспособность программы "bitcoin one-armed bandits" и конкретные технические характеристики.
2 Заявленные разработчиками криптовалют 2 в 256 степени вариантов возможных закрытых ключей (что в несколько раз больше чем частиц в видимой вселенной) и способы их перебора с точки зрения математики.
3 Стоит ли заморачиваться с генерацией закрытых ключей и насколько безопасны вложения в криптовалюту с учетом этой генерации.
На первые два вопроса ответ был найден в течении нескольких дней по ходу изучения технической документации и тестирования программы. Максимально коротко постараемся описать процесс тестирования программы.
Для теста использовалось два "фермерских хозяйства" и простенький ноутбук:
1) 4шт. видеокарты NVIDA 1080 TI 11gb, на базе материнской платы H81 Pro BTC R2.0 c процессором intel Celeron G1840 2.80GHz, ОЗУ 8gb.
2) 4шт. видеокарты AMD rx470 8gb, на базе материнской платы H81 Pro BTC R2.0 c процессором intel Celeron G1840 2.80GHz, ОЗУ 8gb.
В качестве криптовалюты был выбран биткоин. На ноутбук была установлена операционная система линукс, bitcoin-core и 1-я часть "bitcoin one-armed bandits". На фермах операционная система Windows 10 и 2-я часть "bitcoin one-armed bandits", согласно технической документации. Вообще весь процесс настройки оборудования достаточно прост для среднестатистического пользователя, и занял порядка 2-х часов. Чего не скажешь о синхронизации в Bitcoin-core, скачивание блоков с транзакциями заняло около суток.
На адрес Bitcoin-core была сделана транзакция в размере 0,001 BTC после её подтверждения и внесения в блок был запущен парсер блоков. Через 5 минут 250 гигабайтов блокчейна превратилось в 370 мегабайт базы данных со всеми адресами, содержащими положительный баланс. Нужно отметить, что парсер имеет калибровку и можно выставить ограничения. К примеру, если запустить с ограничением в 0.01 BTC, то база данных получится порядка 170 мегабайт, что увеличит скорость сравнения на 20-30 %.
К слову заметим, что полная база адресов с балансом биткоина размером в 370 мб содержит порядка 18 миллионов адресов (если верить векипедии, то маловато на 7 миллиардов человек, для системы, претендующей на резервную валюту).
Далее из Bitcoin-core был импортирован закрытый ключ от нашего тестового адреса, и при помощи программки декодер (программа входит в комплект) был переведен в 64 разрядное число в шестнадцатеричной системе счисления.
Надо пояснить, что закрытый ключ для компьютера это 64 разрядное число в 16 системе счисления или 256 битное в двоичной к примеру: 801B64FC4D7EC973C070D8F0CBAD51BF5315482DBB32880FF09330ED579A2B8A, а для простоты восприятия человеком его переводят примерно в такой вид L1WjXzbj5QnCzMFVtA4Pz2cYHe4gZVVxK4fGxWhssDf7MjpTgnp6, что и считается среди обывателя закрытым ключом. Можно самостоятельно при помощи онлайн сервиса https://www.bitaddress.org сгенерировать адрес и закрытый ключ и использовать данный сервис в качестве декодера.
О технологии формирования ключей поговорим чуть позже, а пока вернемся к нашему тесту.
В полученном числе последние восемь цифр были заменены на нули (мы взяли число математически меньшее, чем наш тестовый ключ) и запустили "фермы" в демо режиме +1. Меньше чем за минуту обе "фермы" нашли наш тестовый закрытый ключ, при этом первая ферма показала среднюю скорость в 190 миллионов ключей в секунду, а вторая 160. Далее проводили кучу разных мелких экспериментов. Запускали по 1 карте на ферме, по 2,3,4 с замерами скоростей и т.д. Ферма на NVIDA 1080 TI и целероне выдавала:
1 видеокарта - 70 млн.к сек
2 видеокарты - 135 млн.к сек
3 видеокарты - 170 млн.к сек
4 видеокарты - 190 млн.к сек
При этом уже на 2 картах процессор был загружен на 100 %
На следующий день было принято решение на первую ферму подключить другую материнскую плату с более мощным процессором и посмотреть скорость генерации закрытых ключей. С материнской платой и процессором первая ферма выдала порядка
280 миллионов ключей в секунду. Так как фермы были взяты на тест у знакомого майнера, а качество сборки оставляло желать лучшего, то со второй фермой экспериментировать не стали. Параллельно запустили код на ПК со стареньким процессором I7 третей серии и видео картой NVIDA 1030 получив скорость в 7,5 миллионов ключей в секунду.
Пришло время подвести итоги и ответить на первый вопрос:
1 Программа работоспособна.
2 Заявленные продавцом скорости с небольшими погрешностями достигнуты, не до конца понятна роль процессора в вычислениях, и на каких принципах подобрать материнскую плату с процессором под "ферму», какое максимальное количество видеокарт можно вешать на 1 процессор. Хотя понятно, что чем выше частота и больше количество ядер центрального процессора, тем больше производительность видеокарт. Подытожим цифры 280+160 = 440 миллионов ключей в секунду 440000000х60х60х24= 3,8016х10 в 13-й степени ключей в сутки, с учетом используемого оборудования число впечатляет.
Что касается второго вопроса, тут не все так однозначно. Изучив техническую документацию по формированию закрытых, открытых ключей и адреса мы пришли к выводу, что весь диапазон ключей 2 в 256 степени условно можно разделить на 2 категории.
Первую категорию мы условно обозначили как "полный диапазон", вторую как "вероятно возможный диапазон".
"Полный диапазон" - это полный диапазон от 1 и до 2 в 256-й степени, в котором любой пользователь может самостоятельно создать пару закрытый-открытый ключ. К примеру, с помощью того же онлайн сервиса https://www.bitaddress.org, если в качестве ключа выбрать первое число диапазона (шестнадцатеричная система счисления) 0000000000000000000000000000000000000000000000000000000000000001, то мы получим закрытый ключ KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn и адрес 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH (сжатый формат).
"Вероятно возможный диапазон" - это диапазон ГПСЧ (генератор псевдослучайных чисел), который берет некую энтропию, хеширует ее, потом солит, настаивает на дрожжах и выдает число пользователю, для создания ключа. Путем элементарной математической логики понятно, что ГПСЧ не выдаст число, приведенное в примере выше, если конечно ГПСЧ не написан первоклашкой или студентом недоучкой. Если более глубоко задастся вопросом какие еще варианты мы можем поставить в разряд мало вероятных и вычесть их из "полного диапазона", то картинка резко меняется, как и диапазон генерируемых чисел. Важно то, что компьютер пользуется "вероятно возможным диапазоном", а программа «one-armed bandits» позволяет задать любой шаг или прогрессию перебора, так как основана на принципе «32 разрядной «виртуализированной шины».
На третий вопрос рекомендуем ответить себе самостоятельно, с учетом приведенных выше данных.
Данная статья носит информационный характер, не претендует на звание кандидатской или докторской работы в области криптовалют, написана в свободном стиле и является интеллектуальной собственностью всего интернет сообщества.
В ближайшее время будет предоставлен видео отчет о тесте «bitcoin one-armed bandits» с Уважением команда исследователей криптотехнологий.
Сылка на тестовую версию программы:
https://yadi.sk/d/elVgWgCyk-wrQw
Сайт на аналогичной программе