В этом посте анализируется атака на Ledger как пример того, как целенаправленный фишинг привел к атаке цепочки поставок программного обеспечения (SSC) на инструмент программного обеспечения Connect-Kit, который использовался в аппаратных кошельках компании, что позволило злоумышленнику похитить деньги на сумму как минимум 600,000 XNUMX долларов.
Эта атака произошла в конце года и сопровождалась инцидентами в цепочке поставок. В этом посте мы анализируем атаку, ее последствия, способы борьбы с ней и какие уроки можно извлечь.
Леджер и пользователи его аппаратного кошелька являются очевидными мишенями для киберпреступников. Злоумышленники атаковали пользователей Ledger с помощью попыток фишинга на интерфейсах криптоприложений, и преступникам необходимо знать координаты пользователей для проведения фишинговых кампаний. У Леджера был утечка данных к июлю 2023 г. а также быть частью Кража данных в сентябре 2020 г. в их электронной коммерции Shopify, инцидент имел большие последствия. Пост «Обновление: усилия по защите ваших данных и привлечению к ответственности спамеровпоказывает, насколько глубоки были эти нарушения.
Ledger необходимо серьезно относиться к безопасности (это ключевая часть их бизнеса), имея внутреннюю исследовательскую лабораторию (держать) умение обращаться сертификация безопасности устройства, чтобы ошибка баунти программа, бюллетени безопасности и моделирование угроз. Все идет нормально …
Как была совершена атака
Ledger обнаружил эксплойт с помощью Ledger's Комплект подключения к децентрализованному приложению в четверг, 14 декабря 2023 года. Этот эксплойт внедрял вредоносный код в децентрализованные приложения (DApps) на базе Ethereum, которые использовали Ledger Connect Kit, обманным путем заставляя пользователей подписывать транзакции, которые опустошают их кошельки.
Эксплойт был быстро обнаружен, и вскоре после этого было принято решение. Тем временем небольшое количество пользователей подверглось атаке и подписало транзакции, истощившие их кошелек.
Атака началась, когда бывший сотрудник Ledger стал жертвой фишинговой атаки, которая получила доступ к его/ее учетной записи NPM через токен сеанса. Злоумышленники опубликовали вредоносные версии @ledgerhq/connect-kit (1.1.5, 1.1.6 и 1.1.7, сейчас удалены). Злоумышленники могут запускать произвольный код с тем же уровнем разрешений, что и приложение-кошелек: злоумышленники могут немедленно и без взаимодействия сливать средства пользователей, распространять многочисленные фишинговые ссылки для обмана пользователей или использовать панику пользователей, убеждая их перевести активы на новый адрес. , что приводит к потере активов из-за загрузки поддельного кошелька.
Интерфейсы кошельков (dApps) обычно использовали загрузчик комплекта подключения пакет из Ledger для загрузки Connect Kit во время выполнения из JavaScript CDN (jsDelivr). К сожалению, URL-адрес https://cdn.jsdelivr.net/npm/@ledgerhq/connect-kit@1 не закреплял точную версию (1.1.4 на тот момент), поэтому, когда вредоносные версии были загружены, они обслуживались (и кэшировались) CDN. И никакая контрольная сумма не использовалась, чтобы гарантировать, что загруженный ресурс из CDN действительно был ожидаемым (что и следует использовать при распространении кода из CDN). Эта схема, основанная на контрольной сумме, называется Подресурсная целостность (НИИ).
Внедренный код, вероятно, манипулировал данными транзакций, обманывая пользователей, заставляя их подтверждать манипулируемые платежи. Например, пользователь, одобряющий платеж токеном для включения функциональности приложения, вместо этого мог увидеть одобрение платежа на адрес хакера. Независимо от того, насколько безопасен аппаратный кошелек, деньги были слиты.
Открытие и расследование
Различные пользователи начали публиковать сообщения в X (он же Twitter) о том, что интерфейс Zapper «был взломан». Заслуга принадлежит Мэтью Лилли, техническому директору криптотрейдера Sushi, который первым предупредил в Twitter пост что «обычно используемый коннектор Web3» был скомпрометирован. Позже он указал на LedgerHQ/подключаемый комплект как скомпрометированную библиотеку, и дал первую оценку, несколько резко:
Что случилось?
— Я Программное обеспечение 🦇🔊 (@MatthewLilley) 14 декабря 2023
Короче говоря, @Леджер совершил цепочку ужасных ошибок.
1. Они загружают JS из CDN.
2. Они не блокируют версию загруженного JS.
3. Их CDN был скомпрометирован.
Я бы избегал использования ЛЮБЫХ децентрализованных приложений до тех пор, пока их команды не подтвердят, что они смягчили атаку. https://t.co/a3brXNQSx9
Пользователь 0xViva открыл тикет в репозитории проекта GitHub: [СРОЧНО] В этом репозитории используется вредоносная версия пакета npm @ledgerhq/connect-kit, 1.1.7..
15 декабря 2023 года форма безопасности блокчейна SlowMost опубликовала аналитический пост предоставление полной информации о вредоносных версиях.
Аппаратный кошелек Ledger не был взломан, только Ledger Connect Kit. Однако, поскольку многие приложения используют эту библиотеку, например SushiSwap, Zapper, MetalSwap, Harvest Finance, Revoke.cash и т. д., масштаб воздействия был значительным. В соответствии с bittrace.io, некоторые жертвы в панике пытались перевести активы на новый адрес, но скачали поддельное приложение-кошелек!
В тот же день Джеймсон Лопп точно чирикнул о недостатках, которые позволили атаке увенчаться успехом:
Похоже, сегодняшний инцидент с безопасностью стал кульминацией трех отдельных сбоев в Ledger:
- Джеймсон Лопп (@lopp) 14 декабря 2023
1. Слепая загрузка кода без закрепления конкретной версии и контрольной суммы.
2. Несоблюдение «правил двух человек» при проверке и развертывании кода.
3. Не отзывать доступ бывшим сотрудникам.
Как разрешился инцидент
В тот же день, когда произошла атака, генеральный директор Ledger Паскаль Готье опубликовал письмо с раскрытием информации дать более подробную информацию об инциденте, что, безусловно, хорошо: прятать голову в песок, как страус, — худший способ справиться с любым инцидентом в области кибербезопасности.
Интересна структура письма: в нем сразу признали существование вредоносных версий библиотеки, выкачивающих деньги, и это хорошо (отрицать реальность — нонсенс):
«Сегодня мы столкнулись с эксплойтом в Ledger Connect Kit, библиотеке Javascript, которая реализует кнопку, позволяющую пользователям подключать свое устройство Ledger к сторонним DApps (веб-сайтам, подключенным к кошельку).
Этот эксплойт стал результатом того, что бывший сотрудник стал жертвой фишинговой атаки, которая позволила злоумышленнику загрузить вредоносный файл в NPMJS Ledger (менеджер пакетов для кода Javascript, совместно используемого приложениями).
Вместе с нашим партнером WalletConnect мы быстро поработали над устранением эксплойта, обновив NPMJS для удаления и деактивации вредоносного кода в течение 40 минут после обнаружения. Это хороший пример того, как отрасль быстро работает вместе для решения проблем безопасности».
Что? Разве у бывшего сотрудника с издательскими правами не отозвали полномочия в НПМ?
Далее генеральный директор перечислил существующие меры безопасности, но намекнул, что с доступом к NPM что-то не так:
«Теперь я хотел бы рассказать, почему это произошло, как мы будем совершенствовать наши методы обеспечения безопасности, чтобы снизить этот конкретный риск в будущем, и поделиться нашими рекомендациями с отраслью, чтобы вместе мы могли стать сильнее.
Команда standard Практика в Ledger такова, что ни один человек не может развернуть код без проверки несколькими сторонами. У нас есть строгий контроль доступа, внутренние проверки и многоподписи кода, когда дело касается большинства частей нашей разработки. Это касается 99% наших внутренних систем. Любой сотрудник, который покидает компанию, лишается доступа к каждой системе Ledger.
Это был досадный единичный инцидент. Это напоминание о том, что безопасность не является статичной, и Ledger должен постоянно совершенствовать наши системы и процессы безопасности. В этой области Ledger внедрит более строгие меры безопасности, подключив нашу сборку pipeline который реализует строгие software supply chain security в канал распространения NPM.
Что ж, казалось, что учетная запись NPM с разрешениями на публикацию новых версий библиотеки имела менее строгий контроль безопасности, чем другие части их программной инфраструктуры. Изолированный инцидент из-за невезения?
Концовка письма более standard раздел взаимодействия с властями, «заявление под контролем» и извинения:
«Леджер сотрудничает с властями и делает все возможное, чтобы помочь в ходе расследования. Ledger будет поддерживать пострадавших пользователей, помогая найти злоумышленника, привлечь его к ответственности, отслеживать средства и сотрудничать с правоохранительными органами, чтобы помочь вернуть украденные хакером активы. Мы глубоко сожалеем о событиях, которые произошли сегодня для пострадавших людей.
Сейчас ситуация находится под контролем, угроза миновала. Мы понимаем панику, которую это вызвало для сообщества и экосистемы в целом».
К письму прилагается временная шкала, которая очень полезна для пользователей, чтобы понять, как был обнаружен инцидент, какие конкретные действия по сдерживанию и устранению были приняты, и как будет возмещен/компенсирован ущерб, нанесенный пострадавшим пользователям. Это наиболее специфичная для монеты часть:
«Сегодня утром по центральноевропейскому времени бывший сотрудник Ledger стал жертвой фишинговой атаки, которая получила доступ к его учетной записи NPMJS. Злоумышленник опубликовал вредоносную версию Ledger Connect Kit (затрагивает версии 1.1.5, 1.1.6 и 1.1.7). Вредоносный код использовал мошеннический проект WalletConnect для перенаправления средств на хакерский кошелек. Команды технологий и безопасности Ledger были предупреждены, и исправление было внедрено в течение 40 минут после того, как Ledger узнал об этом. Вредоносный файл существовал около 5 часов, однако мы полагаем, что период, в течение которого были слиты средства, был ограничен периодом менее двух часов.. Ledger координировал свои действия с WalletConnect, которые быстро отключили мошеннический проект. Подлинный и проверенный комплект Ledger Connect Kit версии 1.1.8 сейчас распространяется и безопасен в использовании.
Для разработчиков, которые разрабатывают код Ledger Connect Kit и взаимодействуют с ним: команда разработчиков Connect-Kit в проекте NPM теперь доступна только для чтения и не может напрямую распространять пакет NPM по соображениям безопасности. Мы произвели внутреннюю ротацию секретов и опубликовали их на GitHub Ledger. Разработчики, пожалуйста, проверьте еще раз, что вы используете последнюю версию — 1.1.8.
Леджер вместе с Подключить кошелек и наши партнеры сообщили адрес кошелька злоумышленника. Теперь адрес виден на Chainalysis. Tether заморозил USDT злоумышленника».
Согласно этому, сдерживание было быстрым, поскольку мошеннический проект WalletConnect по перенаправлению средств был быстро отключен. Но даже при этом некоторые кошельки были опустошены.
Последствия: как отреагировала отрасль
Некоторые пользователи выразили гнев на Ledger за то, что он не смог предотвратить компрометацию, в то время как другие предостерегали от опасности использования сторонних библиотек.
В индустрии кибербезопасности есть ниша кибермонет. Хорошо известны кампании по сливу кошельков, в которых в основном используются фишинговые сайты для обмана конечных пользователей. В обычном SaaS-бизнесе (Scam-as-a-Service) есть специализированные субъекты для выкачивания кошелька, например поставщик мошеннических услуг. Адский осушитель , которые объявили о прекращении деятельности в ноябре 2023 года. В любом случае, судя по недавним действиям, замеченным в Dune, это ложный флаг. @scamsniffer. Схема, которой они следуют, была объяснена в этом сообщении Group-IB:
Некоторые аналитики намекнули, что не сделало атаку возможной. Этот комментарий пользователя brianddk в билете репозитория проекта дает нам представление об основной причине:
A комментарий другого пользователя, ГенриQW, указал на вторую вещь, которая позволила вредоносным версиям распространяться через CDN:
Пока еще слишком рано говорить о долгосрочных инициативах по повышению устойчивости криптокошельков к фишинговым атакам. Похоже, что требуется соблюдение standard похоже на то, что PA-DSS для поставщиков программного обеспечения платежных приложений могут быть приветствованы в криптоиндустрии.
А теперь извлеченные уроки!
Удивительно, как аппаратный кошелек, воплощение криптобезопасности, был взломан просто путем предоставления доступа к учетным данным NPM «бывшего сотрудника» Ledger (вероятно, имя пользователя/пароль без защиты 2FA или токен доступа). Этот инцидент служит ярким напоминанием о том, что, когда вы находитесь под огнем, ваша программная инфраструктура должна быть защищена так же тщательно, как и ваши программные или аппаратные продукты.
Большинство атак на цепочку поставок ПО начинаются с компрометации внутренней учетной записи (часто для разработчика или инженера DevOps). Затем злоумышленники либо двигаются вбок, чтобы взломать внутренние системы в инфраструктуре ПО, например CI/CD система или инструменты развертывания, или умудряются добавлять вредоносную логику в репозитории исходного кода, что может быть обнаружено при правильной обработке изменений с защитой ветвей и обзорами кода. Но злоумышленникам не нужно идти так глубоко, когда целью является популярная библиотека, опубликованная в публичном реестре, особенно если они могут получить доступ к учетным данным публикации (записи). И вот что произошло в этой атаке.
Аутентификация 2FA, в частности, использование надежных элементов, таких как ключи безопасности, ограничивает риск при интерактивных операциях. Для CI/CD pipelines, токены доступа с ограниченным доступом, хранящиеся как CI/CD secret — это обычный способ (и токен доступа не должен быть раскрыт). К сожалению, похоже, что у сотрудника не было надежного набора 2FA. NPM позволяет организации, обеспечивающие соблюдение 2FA (но это необязательно, а не по умолчанию), что, вероятно, и должно быть в Ledger. И не забудьте добавить соответствующее отзыв учетных данных процедуры для бывших сотрудников, особенно с доступом к столь важным ресурсам, как объем NPM, принадлежащий организации.
Закрепление версии для зависимостей с проверенными версиями — это практика, уменьшающая распространение вредоносных зависимостей. В контексте инцидента с Ledger версии библиотеки, которые загрузчик комплекта подключения взятые из CDN, должны были быть закреплены и «не доверять всему, что выдает CDN». Иметь проверка контрольной суммы например, через SRI (или даже схему цифровой подписи, также аутентифицирующую источник) следует использовать при извлечении из CDN для динамической загрузки кода.
Остальное — это история.
Что касается более традиционных фишинговых кампаний, направленных на пользователей кошельков, возникает вопрос: что заставляет пользователей попадать в ловушки, расставленные преступниками, и подтверждать транзакции, которые они никогда не собирались совершать? Фишинговые сайты в этом домене хорошо спроектированы и убедительны, имитируя популярные криптовалютные бренды; а также они предлагают бесплатные жетоны, чеканка NFT и другие награды. Не допустить попадания пользователей в такие ловушки — проблема, требующая решения.
И чтобы не забыть связанной криптохакинг атаки, более общая угроза, когда злоумышленники захватывают облачную инфраструктуру для запуска майнеров криптовалюты, часто конфиденциальных монет, таких как Monero XMR и Zcash, со скрытой историей транзакций. Криптоджекинг актуален, поскольку он может затронуть ЛЮБУЮ организацию, и хотя прибыль злоумышленника может быть низкой, цена для жертвы может быть большой (Sysdig упоминается в настоящем докладе что организации-жертве придется заплатить 53 доллара за каждый доллар, добытый злоумышленнику).
Рекомендации
- Билет "[СРОЧНО] В этом репозитории используется вредоносная версия пакета npm @ledgerhq/connect-kit, 1.1.7.» в репозитории Github.
- Письмо генерального директора Ledger об инциденте, 14 декабря 2023 г.
- Отчет об инциденте безопасности, Ledger, 20 декабря 2023 г.
- Эксплойт Ledger ставит под угрозу DeFi; Sushi говорит: «Не взаимодействуйте ни с какими децентрализованными приложениями», опубликовать в CoinDesk Оливер Найт, 14 Dec 2023.
- Атака цепочки поставок на Ledger Connect Kit: анализ последствий и превентивные меры. Сообщение SlowMist об атаке, декабрь 2023 г.
- Концепции безопасности Web3: слив кошелька, автор Джаммел Уивер, в Rektify AI, июль 2023 г.
Посмотрите наше видео-демо