С появлением технологии блокчейн онлайн-платежи стали храниться в зашифрованном и более безопасном виде. Эта цифровая база данных всё больше обретает популярность в разных сферах — от промышленности до здравоохранения, а консалтинговая компания Gartner прогнозирует, что уже через пару лет коммерческая стоимость технологии вырастет до 176 миллиардов долларов.
Вместе с тем, растет спрос на специалистов по кибербезопасности — за исправление уязвимостей в приложениях компании уже сейчас готовы платить суммы в несколько десятков тысяч долларов. Павел Анохин, специалист по безопасности технологии блокчейн, помог крупной IT-компании спасти больше половины средств клиентов, за что получил крупное вознаграждение. В интервью «АиФ» он рассказал, как начал карьеру в блокчейн-безопасности, нашёл первых клиентов и какие суммы готовы платить крупные корпорации за аудит своих систем.
— Павел, основная сфера вашей работы — программирование, кроме того, Вы ещё со времён учёбы и защиты кандидатской проявляете интерес к высшей математике. Как пришли к кибербезопасности?
— В 2020 году во время бума децентрализованных приложений на блокчейне я заинтересовался техническими тонкостями этих проектов, начал разбираться, и технология мне понравилась. Особенно увлекательно было изучать различные блокчейн-проекты, многие из которых предлагали инновационные решения, порой очень смелые и интересные. Часто мне с моим опытом программирования и математики были сразу видны потенциальные проблемы, чаще всего лежащие как раз на стыке программирования, математики и финансов. К моему удивлению, большинство как пользователей, так и разработчиков этих проектов не видели и не понимали этих проблем. Я понял, что мои навыки позволяют быстро находить ошибки, которые другие разработчики и специалисты по безопасности не замечают, даже с учетом того, что я никогда информационной безопасностью до этого не занимался. Позже узнал о программах поиска ошибок, по которым платят очень большие деньги (порой больше миллиона долларов за одну ошибку). Так я стал более подробно изучать эту область, быстро освоил многие тонкости работы специалистов по безопасности в блокчейне, и чем больше погружался, тем больше мне это нравилось.
— Успешно применяя эти знания и навыки, Вы начали находить в проектах критические ошибки, получая за них большие выплаты, что связано прежде всего с особенностями самих договоров на блокчейне. Расскажите, в чем плюсы и минусы таких контрактов?
— Приложения в блокчейне также называются умными контрактами. Это договор между сторонами, исполнение которого контролируется и гарантируется приложением, код которого записан в блокчейне. При этом вам не надо доверять никому из сторон договора, все договоренности контролируются приложением, так что при всем желании возможности обмануть ни у кого нет. Приложение же записано в блокчейне, и изменить его также никто не может, так как одно из свойств блокчейна — это финальность. Обратная сторона этого — если в результате ошибки программы какие-то активы окажутся украденными или заблокированными, то никто и никогда не сможет их вернуть. Учитывая, что под управлением таких умных контрактов находятся огромные активы, одной единственной ошибки в приложении может быть достаточно, чтобы пользователи потеряли миллионы и миллиарды долларов. Этим как раз объясняется безопасность приложений на блокчейне, которая существенно важнее, чем в других аналогичных технологиях.
— Всего за одну обнаруженную ошибку вам платили более сотни тысяч долларов. Какой сейчас спрос на рынке на услуги аудитов?
— Практически все более-менее крупные проекты проводят независимый аудит безопасности своих приложений перед их публичным запуском. В ходе аудита специалисты проверяют код приложения на наличие уязвимостей, составляют отчет о найденных проблемах, рекомендациях по устранению, а затем перепроверяют наличие проблем после их устранения командой разработчиков. Последние несколько лет спрос на услуги аудита стабильно превышает предложение, так как специалистов по безопасности блокчейн приложений не хватает, это одна из самых востребованных и высокооплачиваемых специальностей в блокчейне. Желающим провести аудит безопасности своего приложения приходится обычно ждать по полгода своей очереди.
— Давайте разберём всё это на примерах. Один из ваших первых крупных проектов, в котором Вы нашли критическую ошибку — проект Frax. В эту устойчивую криптовалюту вложено больше миллиарда долларов. Как Вы начали работать с такими крупными заказами?
— Я изучал различные приложения: логику их работы, исходный код, настройки и так далее. В некоторых приложениях находил ошибки, составлял отчет, писал программы, демонстрирующие уязвимость, связывался с командой разработчиков, сообщал об ошибках, помогал их исправлять. После нескольких отчетов и исправлений ошибок оказалось, что мир блокчейна довольно тесен — одни и те же разработчики, наставники, помощники работают или участвуют одновременно в нескольких проектах, меня уже стали узнавать. Таким образом обо мне узнавало все больше людей, и ко мне стали обращаться напрямую для проведения аудитов.
— Довольно показательный пример — работа с Integral — Вы нашли критическую ошибку в приложении, которая предотвратила потерю более половины средств клиентов. Что это была за ошибка?
— Их приложения — это децентрализованные биржи обмена. То есть кто угодно может обменять одну криптовалюту на другую по довольно выгодной цене, особенно для крупных клиентов, и среди клиентов — многие известные крупные блокчейн проекты. На момент, когда я обнаружил ошибку в приложениях, в них было вложено пять миллионов долларов. Это именно тот случай, когда ошибка лежала на стыке программирования, математики, статистики и финансов, и специалиста, объединяющего все эти навыки, у них не было. Ошибка была связана с тем, что с помощью одной лазейки пользователь мог выбирать выгодные и невыгодные обмены и отменять только невыгодные. Так пользователь мог зарабатывать с каждого обмена около 0,2% от вложенной суммы, а в день можно было заработать огромную сумму, фактически украв у протокола около половины вложенных средств.
— Как вам удалось разрешить эту проблему?
— Решение проблемы было сложным, так как включало в себя существенные изменения в коде контракта, но позволяло убрать все возможности отмены обменов пользователем. Команда ответственно отнеслась к найденной ошибке, они моментально остановили свое приложение, чтобы избежать потерю средств пользователей. Исправление ошибки заняло больше месяца, однако в результате приложение стало более защищенным. В некоторых случаях Вы спасаете не только компанию, но и их клиентов.
— В работе с известной биржей Hubble Exchange, Вы обнаружили ошибку, которая позволяла за одну транзакцию украсть почти все средства, вложенные в проект, а это 3,7 миллиона долларов. В итоге ваше сотрудничество с биржей стало постоянным. Расскажите, как проходила ваша работа с биржей и само решение ошибок?
— В коде биржи нашлось несколько небольших ошибок, благодаря сочетанию которых удалось получить рабочий пример кражи почти всех средств пользователей за одну транзакцию. Естественно, демонстрацию кражи всех средств пользователей я делал не на реальном блокчейне, а на его локальной копии, которая полностью идентична основному блокчейну, но существует только на моем компьютере. Написание программы такой демонстрации взлома является особенно важной частью работы блокчейн эксперта: ведь команда проекта получает порой десятки отчетов об ошибках каждый день, однако почти все они не представляют интереса или являются неверными. У меня большой опыт создания таких программ демонстрации взлома, поэтому все мои отчеты составлены профессионально, легко понимаются, и команда имеет возможность быстро проверить истинность моих утверждений, а также подсчитать реальный возможный ущерб, ведь обычно именно исходя из потенциального ущерба и рассчитывается размер вознаграждения за отчеты о таких ошибках. После отчета команда быстро подтвердила, что такая ошибка существует, оперативно изменила настройки, которые временно сделали такой взлом невозможным, а позже с моей помощью исправили ошибку, после чего я проверил исправление и биржа выпустила более защищенное обновление своего приложения. Команда биржи была впечатлена моей профессиональностью и помощью в исправлении, предложив проводить дальнейшие аудиты их приложений уже на постоянной основе.
— Вы чаще всего работаете самостоятельно, без большого штата разработчиков. Как Вам удаётся выстраивать работу так, чтобы справляться в одиночку?
— Самостоятельность позволяет максимально комфортно и удобно распределять собственное время, работая не тогда, когда нужно, а тогда, когда есть желание и интерес. Это позволяет сбалансировать работу и жизнь, уделяя много времени семье и отдыху. В области безопасности блокчейн приложений решающим фактором являются талант, опыт и авторитет. Одному было очень легко нарабатывать и опыт, и авторитет. В дальнейшем же есть планы собрать и обучить команду аудиторов, чтобы была возможность масштабировать бизнес и оказать более существенное влияние на улучшение безопасности всей отрасли блокчейн приложений.
— Вы и сейчас занимаетесь обучением программистов в компаниях, которые заказывают у Вас аудит. Это необходимо, чтобы они могли в будущем находить ошибки, которые Вы распознаёте раньше других благодаря вашему опыту. Как всё это устроено в работе с клиентами?
— Большую часть моего взаимодействия с клиентами составляет именно объяснение сути ошибки. Бывают редкие приятные исключения, когда команда клиента сразу понимает суть и серьезно воспринимает ошибку, исправляя ее. Но чаще приходится тратить порой не один месяц, чтобы обучить команду тому новому классу ошибок, которые я нахожу, чтобы в дальнейшем они учитывали и эти ошибки тоже. Чаще всего это получается, и очередное приложение становится более защищенным. К сожалению, бывает и неудачный опыт: например, после моих объяснений команда проекта Gains Network приняла мои доводы, но посчитала, что это не является ошибкой, и не стала ее исправлять. Через несколько месяцев они потеряли больше миллиона долларов именно из-за этой ошибки. После этого они были вынуждены исправить эту ошибку тем методом, который я им рекомендовал.
— Еще один формат аудита в сфере блокчейн — международные соревнования, в которых участвуют специалисты со всего мира. Известный блокчейн проект ENS проводил онлайн-аудит своего нового приложения. Вы в нем участвовали и забрали третье место, заработав восемь тысяч долларов. Расскажите, как устроены эти соревнования?
— Соревнования обычно занимают от трех дней до месяца, в зависимости от сложности кода приложения с призовым фондом от тридцати тысяч до миллиона долларов. В них могут участвовать все желающие в режиме онлайн, регистрируясь для участия и получая код приложения, в котором нужно искать уязвимости. Все найденные уязвимости участники документируют, обязательно снабжая описание уязвимости примером программы, которая демонстрирует эту ошибку. Таким образом несмотря на то, что участвовать могут все желающие, на практике же составить отчет об уязвимости смогут только эксперты по безопасности блокчейн приложений. Оценивает участников компетентное жюри, которое состоит из специалистов в области безопасности и из участников прошлых соревнований, завоевавших призовые места.
— Вы смогли войти в тройку лучших, при том, что участников было больше сотни. Как Вы считаете, что позволило вам обойти других?
— Искать ошибки в коде без аудита существенно проще, чем в коде после аудита. Поэтому после опыта найденных серьезных ошибок в работающих приложениях с уже пройденными аудитами, находить уязвимости в ходе такого соревнования было достаточно легко. Это как решать школьные задачи после участия в международной олимпиаде: удивляешься, насколько простые ошибки бывают в коде.
— Одновременно с этими соревнованиями Вы участвовали в других, где заняли четвертое место. Это соревнования-аудит новой версии финансового приложения Swivel. Расскажите, чем вообще ценны такие события для профессионалов вашего уровня?
— У всех соревнований аудиторов две основные цели. Во-первых, защитить приложение спонсора, исправив в нем все найденные уязвимости. В отличие от традиционных аудитов во время соревнования десятки и сотни специалистов ищут в приложении уязвимости, что позволяет заметить больше ошибок. Вторая цель — дать возможность практикующим аудиторам проявить свой талант. Высокие места в этих соревнованиях однозначно говорят о высоком уровне профессионализма, что позволяет командам блокчейн приложений нанимать индивидуальных аудиторов.
— Прежде чем дойти до крупных заказов и международных соревнований важно, как Вы и сказали ранее, заработать авторитет. Как новичку войти в эту перспективную область информационной безопасности, с чего начать?
— Аудиторы в области блокчейн имеют существенное отличие от обычных специалистов по безопасности — намного больше внимания нужно уделять именно ошибкам в приложениях. Поэтому наилучшим входом в отрасль будет изучение программирования, особенно программирования приложений на блокчейн. Только опыт разработки различных приложений позволяет понимать, где обычно возникают ошибки, где и как их надо искать. Затем можно читать множество доступных руководств по аудиту, существует много различных разборов основных уязвимостей и практических заданий по поиску уязвимостей: все это позволит получить необходимый опыт для начала проведения аудитов.