Опасно ли аппрувить что-либо на PancakeSwap? Учимся обходить скам: Часть 3

Опасно ли аппрувить что-либо на PancakeSwap? Учимся обходить скам: Часть 3

Оглавление

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

Опасно ли аппрувить что-либо на PancakeSwap? Учимся обходить скам: Часть 3

Поэтому в данной работе многие понятия сознательно сокращены (впрочем без потери их адекватности и применимости) для лучшего усвоения материала без излишних технических подробностей.

Введение

Последнее время в различных чатах все больше стало историй про то как:

Как это ни странно, но 90% случаев, связанных с кражей денег с аккаунтов, можно объяснить скорее небрежностью самих пользователей, чем происками злобных хакеров.

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

Замечание: Для лучшего понимания материала рекомендую прочитать первую часть методички “Как не прое..ся на скамах”, которую можно найти в закрепах канала “IDO Research”

Немного про аккаунты, сид фразу и где же хранятся наши токены

Аккаунты

Сид-Фраза -> Приватный ключ -> Публичный ключ -> Адрес

И это превращение совершенно однозначное. Из одной и той же сид фразы вы всегда получите один и тот же адрес со своим балансом.

Пара слов про Метамаск

О транзакциях

А где же наши токены?

В BSC scan эта таблица отображается на вкладке “HOLDERS”

***

Итак:

Подключение кошелька к сайту. Это опасно? Что же делать?

Уже довольно давно (2018) в был принят стандарт (eip-1102), который требует от приложения явным образом запросить доступ к вашему кошельку через вызов функции (eth_requestAccounts), а от пользователя явным образом дать свое разрешение на соединение для того, чтобы сайт или приложение могло:

Собственно  это  все,  что  может  делать  приложение  (сайт)  с  вашим  кошельком  после аппрува на подсоединение.

***

Итак:

Насколько опасен аппрув токена на Панкейке? Мой кошелек в безопасности?

Давайте  вкратце  вспомним,  что  же  происходит  при  аппруве  токена.  (для  более полного объяснения читайте полностью первую часть методички “Как не прое..ся на скамах”).

Transfer (КОМУ, СКОЛЬКО) – выполняется с нашего кошелька

TransferFrom(ОТ КОГО, КОМУ, СКОЛЬКО) – выполняется с ЛЮБОГО адреса КОМУ для которого адрес ОТ КОГО предварительно сделал АППРУВ.

В случае с панкейком мы, конечно, можем сами переслать ему ХХ токенов, но он нам  не  то,  чтобы  не  доверяет  (мы  все  тут  джентльмены),  но  слегка  опасается, поэтому  вместо  того,  чтобы  нам  переслать  токены  ему  напрямую  делается  две транзакции:

С НАШЕГО КОШЕЛЬКА : <Смарт-контракт токена>.approve(ПАНКЕЙК, XX)

// разрешили панкейку снять ХХ токенов с нашего аккаунта

ПАНКЕЙК: <Смарт-контракт токена>.transfer_from(НАШ АДРЕС, ПАНКЕЙК, XX)

// переводит ХХ токенов с нашего кошелька на свой

**********************************

Итак (если говорить о добросовестных сайтах/приложениях типа Панкейка):

Что происходит внутри сайта после нажатия кнопки

Немного   теории   –   когда   мы  нажимаем  на  каком-то  сайте  кнопку  с  какой-то надписью,   внутри   сайта   выполняется   код,   привязанный   к   этой   кнопке.   Он   может выполняться во фронтенде (javascript) или в бекенде (python, …). Что программист заложил в этот код, то и выполнится.

В легитимном сайте нажатие кнопки “APPROVE” делает ровно то, что написано, на скамерском сайте – все, что программист захочет. Включая перевод всех с вашего кошелька на свой адрес.

!!! НО !!! В ЛЮБОМ СЛУЧАЕ ПОТРЕБУЕТСЯ ПОДТВЕРЖДЕНИЕ ТРАНЗАКЦИИ ПОЛЬЗОВАТЕЛЕМ В МЕТАМАСКЕ. САЙТ НЕ МОЖЕТ НЕЗАМЕТНО ОТ ПОЛЬЗОВАТЕЛЯ ПРОВЕСТИ КАКУЮ-ЛИБО ТРАНЗАКЦИЮ ОТ ЕГО ИМЕНИ.

// Мы считаем, что сайт не знает (и это логично) секретный ключ аккаунта

Почему нельзя ничего нажимать на всяких левых сайтах

Множество скамовских монет, последнее время периодически залетающих к вам в кошелек (VERA, EVER, BSCTOKEN, …) требуют от пользователя перейти на их сайт для (якобы) разблокировки токенов, получения реварда и т.д.

Пользователь   радостно   переходит,   нажимает   на   кнопку   “UNLOCK   ”, подтверждает  несколько  раз  в  метамаске  запрошенные  сайтом  транзакции,  а  потом удивленно смотрит на пустой баланс.

Что   же   происходит?   После  нажатия  на  кнопку  сайт  сначала  запрашивает  у пользователя доступ к просмотру аккаунта, а потом, например, что-то из этого:

send(ВСЕ БНБ НА КОШЕЛЬКЕ, АДРЕС ХАКЕРА)

Или

<CONTRACT BUSD>.approve(АДРЕС ХАКЕРА, FFFFFF)

В этом случае дальше сайт от своего имени проводит транзакцию

<CONTRACT BUSD>.transfer_from(ВАШ АДРЕС, АДРЕС ХАКЕРА, ВСЕ BUSD)

И все BUSD с баланса переводятся на хакерский кошелек

***

Итак:

Как же могут украсть ваши деньги?


Полезные советы от капитана очевидность ):

Приложение: А что там с токеном UNIH и RUNE?

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

Вкратце  как  это  стало  возможным.  В  контракте  RUNE  есть  функция  transferTO, которая   переводит   весь   баланс   адреса   TX.ORIGIN   (вместо  MSG.SENDER)  любому получателю без проверки легитимно это или нет.

Напомню, что TX.ORIGIN хранит адрес ИНИЦИАТОРА ТРАНЗАКЦИИ, т.е. Кошелька пользователя. Что же происходило:

Полезные ссылки

Заключение

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

Надеюсь, что она дала Вам немного новой и полезной информации.

Всем профита!

Источник: whattonews.ru

Exit mobile version