Можно ли взломать биткоин
Главная Аналитика, Хакеры, Криптовалюты

Небольшой экскурс в мир открытых кодов, смарт-контрактов и... уязвимостей.

Можно ли взломать биткоин? Любое программное обеспечение можно взломать, но в этом нет ничего плохого — взломы лишь усиливают безопасность криптовалют, ведь все, что не убивает нас, делает нас сильнее, так?

Безопасность биткоина: Парень из пузыря и канализационная крыса

На YouTube есть выступление Андреаса Антонопулоса под названием «Безопасность биткоина: Парень из пузыря и канализационная крыса» (Bitcoin Security: Bubble Boy and the Sewer Rat). В этой лекции он представляет централизованные системы как «пузыри», где безопасность обеспечивается за счет изоляции от внешних сил. Пребывание в изоляции не позволяет системе развить защитные механизмы, но рано или поздно пузырь лопается, оставляя ее беззащитной.

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

В конце выступления Антонопулос говорит:

«Любая криптография может быть взломана, и когда-нибудь это произойдет с любой из них. Биткоина это тоже касается. Это лишь вопрос времени. Мы ожидаем взлома, мы знаем, что в любой системе и подсистеме биткоина может быть найдена уязвимость, и нам важно, чтобы подобные уязвимости были локальными, и чтобы мы успевали их выявлять и исправлять, чтобы это не перерастало в системную проблему. А для этого нужно, чтобы среда была открытой, способствующей сотрудничеству, и тогда информация об этих потенциальных проблемах будет появляться достаточно рано».

Открытый код

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

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

Раскрытие уязвимости

В апреле 2018 года разработчик, работающий над кодом биткоина в проекте Digital Currency Initiative в MIT Media Lab, обнаружил уязвимость в Bitcoin Cash. Здесь нужно заметить, что сообщества биткоина и отделившегося от него Bitcoin Cash друг друга на дух не переносят.

Биткоин vs. Bitcoin Cash: История войны двух гигантов

Найденная уязвимость была очень серьезной и могла бы похоронить Bitcoin Cash, но программист повел себя достойно и сообщил разработчикам о проблеме. В итоге никто не успел воспользоваться ошибкой для взлома, она была исправлена, и 7 мая 2018 года было опубликовано соответствующее обновление.

Смарт-контракты (умные и не очень)

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

Таким образом, плохо спроектированный или реализованный код смарт-контракта может привести к огромным финансовым потерям, как это случилось в печально известной истории с DAO — в результате плохо написанного смарт-контракта.

Хакеры любят сложный код, потому что в нем больше ошибок. И наоборот, безопасность — это простота. Биткоин-сообщество разработало язык Bitcoin Script, специально упростив и ограничив его — во имя безопасности.

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

Смарт-контракты для чайников

Игры Capture The Flag (CTF) заключаются в поиске уязвимостей, и у компании Security Innovation есть бесплатная игра такого рода для смарт-контрактов — Blockchain CTF.

Программирование смарт-контрактов на Solidity под платформу Ethereum требует хорошей практики в области безопасности. Можно ли взломать Ethereum? Да, как и биткоин.

27 июля 2018 года ICO проекта KICKICO на платформе Ethereum было взломано и потеряло 7,7 млн долларов: хакеры получили секретный ключ проекта и взломали смарт-контракт. Справедливости ради, здесь дело было не в уязвимости в смарт-контракте, а в неправильной защите ключа.

Немного о кошельках

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

Онлайн-кошельки — зло

Хранение криптовалюты в онлайн-кошельке — это, практически, приглашение ко взлому.

Происходить это может так: сначала хакер узнает адрес электронной почты и телефон жертвы, — это обычно общедоступная информация, — а потом запрашивает сброс пароля для учетной записи и использует уязвимость в протоколе телефонии Signal System 7 (SS7), который используют в своих сетях, к примеру, крупнейшие американские сотовые операторы AT&T и Verizon. Так хакер перехватывает токен авторизации. Теперь у него есть доступ к кодам двухфакторной авторизации, отправляемым на телефон жертвы, и с их помощью они заходят в сервис кошелька, после чего делают с криптовалютой все, что хотят.

Уязвимость в Monero

Любопытно, что иногда уязвимости оборачиваются против самих хакеров.

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

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

Так можно ли взломать биткоин?

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

В декабре 2017 года проект NiceHash приостановил работу из-за взлома, в ходе которого было украдено 64 млн долларов. В компании утверждали, что атака была «высокопрофессиональной» и опиралась на «сложную социальную инженерию».

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

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

Читайте также:
Пожалуйста, опишите ошибку
Закрыть