Криптовалюта и блокчейн — это замечательно. Это будущее. Но в каждом светлом начинании есть и тёмные силы. О них и начнём разговор. Но зачем?
Во-первых, чтобы научиться этим атакам противостоять со стороны пользователя. Во-вторых, чтобы лучше разбираться в Web 3.0 системах: само знание — ваш лучший щит. В-третьих, чтобы выстроить собственную систему риск- & time-менеджмента, которая поможет вам в управлении крипто-активами.
Содержание всех частей
-Часть I. Общие атаки и предпосылки
-Часть II. Атаки на DeFi/DEXs/мосты
-Часть III. Атаки на NFTs
-Часть IV. Будущее атак и DAOs
-Часть V. Нетривиальные атаки: сборная солянка
Вводные
Во-первых, отмечу, что атаки бывают разные:
1.Сугубо технические: пример;
- Социальные:
- Такие как фишинг (социальные + технические);
- Социальная инженерия;
2.Организационные;
3.Иные подобные;
4.Экономические;
5.Прочие.
Меня в первую очередь интересуют технические атаки, но рассматривать придётся все, поскольку “чистых” атак и их векторов фактически нет и/или они используются крайне редко.
Ниже представлены разные типы (виды) атак, а в последней части предпринята попытка их полной (хотя и открытой) классификации.
Глава I. Общее об атаках
Подглава №01. Простейшие
01.01. DDoS
До сих пор не все понимают, что BTC — монета, которая имеет внутри сети несколько явно выраженных функций:
1.Оплата труда DAO Bitcoin (майнеров);
2.Внутренняя ценность сети Биткоин.
Поэтому, когда вам говорят, что в какой-то сети возможны “быстрые и дешёвые” транзакции — не верьте: быстрые и дешёвые транзакции всегда кто-то оплачивает. В Web 2.0 — пользователь за счёт своих персональных данных, связок с разным ритейлом и т.д. В Web 3.0 — валидаторы, энтузиасты и т.д.
В любом случае DDoS — фактически нулевой шаг атак, который потом помогает организовать:
- Атаку 51 (для соблюдения условия двойной траты);
- Разные виды атаки Сивиллы;
- Любые атаки на исключения (и в мире шардинга это будет заметно: и пусть вас не смущает п. 2: данный аспект сильно шире, поэтому пока просто выделю отдельно его);
- Прочие.
01.02. Фишинг
Для начала: фишинг — такая атака, когда создаётся ресурс, похожий на оригинал для того, чтобы выманить у пользователя приватный ключ, seed-фразу, логин/пароль и/или другие значимые данные.
При этом фишинговым ресурсом может быть как app (приложение), так и dApp (децентрализованное приложение). Примеры:
- Сайт;
- Мобильное приложение;
- Письмо (email);
- Прочее.
Среди “прочего” отмечу поддельные расширения для браузеров, которые умеют подделывать данные на лету.
В качестве общего примера приведу “случай, когда мошенники создали сайт, на котором предлагали до 10 NFT Bull & Ape. При этом когда пользователь пытался получить 10 NFTs, у него запрашивали сид-фразу”.
И потому противостоять таким атакам можно по нескольким векторам:
1.Технически:
1)Установить приложения/аддоны для браузеров для проверки посещаемых сайтов: безусловно, здесь также возможна атака на самое приложение, поэтому полного доверия ему нет;
2) Использовать максимально “чистый” браузер со строго ограниченным числом разрешённых/доступных аддонов;
3)Устанавливать приложения только через Google.Store/AppStore, если только вы не продвинутый пользователь, который понимает, зачем нужна хеш-сумма в разном ПО и как её проверить, а равно — как сделать установку от доверенных разработчиков же и что такое загрузка через командную строку и гит;
4)Использовать проверенный антивирус (ещё расскажу, что антивирусные компании сами часто грешат в крипто-мире) и, что важнее, файрволл с понятными вам правилами;
5)Конечно же, следовать правилам общей безопасности: обновлять вовремя ОС и ПО и т.п. Об этом читайте подробно в части первой и второй материала, посвящённого защите, а сегодня, всё же, говорим о нападении.
2.Организационно:
1)Очень важно научиться не заходить на ресурсы без https:// и уметь читать сертификаты, потому как фишинговые ресурсы всё чаще устанавливают разного рода бесплатные сертификаты, чтобы больше сбить с толку;
2)Выучить наизусть 10-15 ресурсов, на которые заходите, чтобы избежать явной подмены адресов;
3)Стараться не заходить через поиск (особенно — Google/Yandex, где есть реклама) на популярные сайты, поскольку один из векторов фишинга — покупка рекламы для зловредного ресурса и вывод его в искусственный ТОП;
4)Необходимо тренироваться проверять все данные при вводе/выводе средств. Для этого можно:
- Добавить в Метамаск “железный” кошелёк Trezor/Ledger/etc.;
- Проводить транзакции, сверяясь с табло Trezor/Ledger;
- Научиться сверять: первые 3-4, последние 3-4 знака в каждом аккаунте/операции, а также 2-4 запасные цифры в центре, потому как одна из атак (см. ниже) — создание похожих кошельков и вставка их через связки кейлоггер+троян и т.п.;
- Обязательно делать скриншот до операции и во время, чтобы зафиксировать любые аномалии;
3.Экономически:
- Не хранить яйца в одной корзине: распределять всё между “холодным” и “тёплым” хранением;
- Не проводить транзакции в заданный период (скажем, с 21:00 до 07:30; в праздники и т.п.);
- Не участвовать во всём подряд на кошельках, где есть хоть что-то.
Последний пункт поясню. Отдельно.
Часто фишинг строится на жадности. Простейший пример — псевдо-форки. Так, скажем, и у Эфира, и у Биткоина были форки, которые создавались для одной цели — чтобы вы отдали свою seed-фразу. Ведь обычно как бывает:
- Чтобы открыть кошелёк в новой сети — нужен какой-то клиент: скажем, кошелёк;
- Для нового форка ничего найти не можете и идёте на сайт “производителя”, где скачиваете “официальный” валет;
- Затем — вводите там seed-фразу, вам даже могут сделать “начисление” какого-нибудь Ethereum Anti Classic, а потом — все деньги просто уйдут в закат.
Фишинг имеет массу форм и имплементаций, но в целом он сводится к трём примитивам:
- Главная задача, как и в любых фокусах, отвлечь ваше внимание и потому позднее время, жадность, эмоциональные покупки и прочее — работают не вам, а мошенникам на пользу, отсюда — не отвлекайтесь;
- Далее важно сделать качественную, хотя бы внешне, копию: сайта, письма, приложения, прочего, поэтому там, где можете что-то кастомизировать во внешнем виде (фон в почтовом клиенте, обои рабочего стола, личный кабинет кошелька, прочее) — кастомизируйте;
- Наконец, самое главное — это не понимание пользователем всех процессов. Поэтому хорошо бы разобраться, что такое приватный ключ, seed-фраза, где их можно и нельзя использовать и т.п. — не торопитесь.
Вот примеры сложных атак, где фишинг сыграл важную роль:
Кстати, последние (централизованные биржи) из упомянутых могут многому научить в противостоянии фишингу:
- Обращайте внимание на https:// и проверяйте сертификат;
- Не торопитесь: никогда;
- Используйте виртуальную клавиатуру везде, где возможно;
- Не говорите вслух пароли;
- Научитесь кастомизировать страницы сайтов и прочих (d)Apps: от email до личных кабинетов;
- Старайтесь усложнить процесс первичной авторизации (сложный пароль >14 символов; Oauth 2.0; ограничение по IP; код для транзакций и т.п.).
При этом стоит помнить, что к фишингу относится и реклама фейковых обменников, бирж, IDO и прочего всё ещё проскальзывает в Google, хотя нормальные при этом блокируются при рекламе. Совпадение ли тот факт, что “одним можно, а другим нельзя”? Не думаю. Помните и об этом тоже.
Что же касается fake airdrop: пожалуй, эта атака сейчас стала даже популярней, чем в хайп 2016-2018 гг. Вот пример: говорящее название Fake_Phishing4953? как по мне — да. Не спешите выводить средства за счёт ввода приватного ключа (и тем более — seed-фразы). и всегда лучше подождите: хочется скинуть быстро? возможно, у вас просто нет сил заниматься этим рынком. это же касается фейковых форков: их проще отследить по массовости, но тоже попадаются многие до сих пор.
Наконец, примитивы в письмах: тот же фишинг — вид сбоку. точнее так: одно дело, если переходите на подставной сайт — там всё понятно. другое дело — продвинутый спуфинг, но третье — это открытие .pdf- и даже .doc(x)-файлов: зачем это делать? начиная от уродливых макросов и заканчивая продвинутым вшитием в тело документа — механик нападения через доки — множество. вам оно надо? сделайте белый список email-адресов (да, даже если их будет 1000 — заодно проверите: на кой чёрт вам столько?) и не принимайте файлы от неизвестных.
Подглава №02. Атаки на L1
Обычно начинаю с L0, но, поскольку атаки на атомарные свопы и подобные структуры схожи с атаками на DeFi, но куда сложнее, то вынесу этот аспект в отдельную главу. Плюс — для понимания L0-атак важно разобраться в архитектуре L1.
PoW-семейство
Тут будем рассматривать атаку 51 и связанные с ней; эгоистичный майнинг; атаки на полные ноды; прочие.
PoS-семейство
Здесь см. трилогию: атак довольно много и на примерах Polygon, Avalanche, Near, Solana (особенно), BSC разберём и их.
А пока — буду закругляться: вопросов ещё очень много, но
До!