Пока пользователи коллекционируют NFT, NFT могут коллекционировать данные пользователей.
По словам исследователей из Convex Labs и специалистов протокола OMNIA, NFT-маркетплейс OpenSea и браузерный кошелек Metamask зарегистрировали случаи утечки IP-адресов, связанные с передачей невзаимозаменяемых токенов (NFT). Но нарушение конфиденциальности - это только одна из возможных проблем.
Данные NFT, размещенных на OpenSea, могут храниться небезопасно
Первым забил тревогу Ник Бакс, руководитель отдела исследований организации NFT Convex Labs. Бакс решил проверить, как торговые площадки NFT вроде OpenSea, хранят информацию, и не угрожает ли это данным пользователей.
Оказалось, что платформа фиксирует лишь метаданные и не заботится о способе хранения самих данных NFT, поэтому, если NFT используют централизованную платформу, это позволяют поставщикам NFT или злоумышленникам собирать IP-адреса и делать другие нехорошие вещи.
Бакс продемонстрировал это, создав собственный логгер IP адресов в виде NFT на OpenSea. Он поместил в этот NFT изображение Симпсонов и Южного парка с подписью: «Я просто щелкнул правой кнопкой мыши + сохранил ваш IP-адрес», чтобы доказать, что при просмотре списка NFT он загружает собственный код, который регистрирует IP-адрес зрителя и делится им с продавцом.
Результатами своего эксперимента Бакс поделился в твиттере, опубликовав серию твитов, в которых признал, что «не считает уязвимостью регистрацию IP-адресов OpenSea NFT», потому что «это просто так работает».
Важно помнить, что NFT по своей сути являются частью программного кода или цифровых данных, которые можно передавать или извлекать с использованием блокчейна. Из-за ограничений на объем данных и высокой стоимости хранения фактические данные (будь то изображение, аудио, видео или любой другой тип данных) хранятся на удаленном сервере, в то время как в блокчейне находятся только URL-адрес актива. Когда NFT передается на адрес блокчейна, принимающий крипто-кошелек получает лишь мета-данные, а сами данные извлекает, например, в виде файла изображения по обычному URL-адресу, указанному в NFT.
Позже Бакс объяснил технические детали в сообщении Convex Labs на Medium. По его словам, OpenSea дает возможность создателям NFT добавлять дополнительные метаданные, которые позволяют использовать расширения файлов для HTML-страниц. Если метаданные хранятся в виде файла json в децентрализованной сети хранения, такой как IPFS, или на удаленных централизованных облачных серверах, то OpenSea может загрузить изображение, а также регистратор пикселей «невидимого изображения» и разместить его на своем собственном сервере. Таким образом, когда потенциальный покупатель просматривает NFT на OpenSea, он загружает HTML-страницу и извлекает невидимый пиксель, который показывает IP-адрес пользователя и другие данные, такие как геолокация, версия браузера и операционная система.
Самое удивительное в этом – тот факт, что для сбора IP-адресов даже не обязательно использовать платформу вроде OpenSea. NFT могут это делать сами по себе, если пользователь, например, использует Metamask.
Проблемы конфиденциальности Metamask также связаны с централизованным хранением
Аналитик Алекс Лупаску, соучредитель сервиса узлов конфиденциальности OMNIA Protocol, провел собственное исследование с мобильным приложением Metamask с аналогичными результатами. Он обнаружил способ, который позволяет поставщику отправлять NFT в кошелек Metamask и получать IP-адрес пользователя. Он создал свой собственный NFT на OpenSea, передал право собственности на NFT через airdrop на свой кошелек Metamask и пришел к выводу, что обнаружил «критическую уязвимость конфиденциальности».
В сообщении на Medium Лупаску описал потенциальные последствия того, как «злоумышленник может создать NFT с удаленным изображением, размещенным на его сервере, а затем отправить этот предмет коллекционирования на адрес блокчейна (жертвы) и получить его IP-адрес».
Он также выразил озабоченность тем, что использование централизованных хранилищ открывает двери для злонамеренных действий. Например, если злоумышленник соберет коллекцию NFT, направит их все на один URL-адрес и разошлет их по миллионам кошельков, это может привести к крупномасштабной распределенной атаке типа «отказ в обслуживании» или DDoS-атаке. По словам Лупаску, утечка личных данных также может привести к похищению людей.
Он также предположил, что потенциальное решение может потребовать явного согласия пользователя, когда дело доходит до получения удаленного образа NFT: Metamask или любой другой кошелек подскажет пользователю, что кто-то на OpenSea или другой бирже получает удаленный образ NFT, и проинформирует пользователя о том, что его IP-адрес может быть раскрыт.
Дэн Финлей, генеральный директор Metamask, ответил Лупаску в Твиттере, заявив, что, несмотря на то, что «проблема известна давно», сейчас они начинают работу по ее устранению и повышению безопасности и конфиденциальности пользователей.
В тот же день даже Виталик Бутерин признал проблемы конфиденциальности при взаимодействии с данными вне сети в Web3. В одном из выпусков подкаста UpOnly Бутерин сказал, что «борьба за большую конфиденциальность является важной задачей. Люди недооценивают риски отсутствия конфиденциальности», добавив, что «чем более крипто- все становится», тем больше мы уязвимы.
Красная линия
Безопасность и конфиденциальность пользовательских данных - это то, для чего в принципе нужна децентрализация. Поэтому наследование проблем, которые существуют в централизованных системах, противоречит смыслу NFT.
Фактически получается, что NFT хранят децентрализованным образом лишь метаданные, а сами данные NFT зачастую хранятся на централизованных серверах, что не только открывает двери для сбора данных, но и создает вектор атаки для злонамеренных действий.
Централизованное хранение должно находиться за красной линией и стать табу для NFT. В истинно децентрализованной сети данные NFT должны храниться более безопасным способом, где пользователь полностью контролирует все свои взаимодействия с данными и сценарии их использования.
DeNet предлагает именно такой слой хранения, где главными принципами являются децентрализация и полный контроль данных на стороне пользователя.
Первые способы взаимодействия с хранилищем данных NFT уже тестируются разработчиками DeNet. Предполагается, что для повышения безопасности и конфиденциальности для доступа к данным NFT в DeNet будет использоваться собственный протокол и браузерный плагин, который проверяет и удостоверяет данные. Таким образом пользователь сможет быть уверен, что получает именно те данные, которые он запрашивает.
Это также дает пользователю больше контроля над данными его NFT. Он сможет управлять доступом к этим данным подобно тому, как управляют доступом к файлу в любой другой развитой сетевой файловой системе.
«Использование децентрализованной сети DeNet для хранения данных NFT не только устраняет проблемы конфиденциальности и делает невозможным несанкционированный сбор IP-адресов, но и снимает другие риски централизованных систем. Например, становится невозможной упомянутая выше атака на отказ в обслуживании. Если некий файл хранится в децентрализованной сети, то массовые запросы этого файла приведут к тому, что больше узлов начнут раздавать этот файл. То есть атакующим узлам будет противостоять не отдельный централизованный сервер, а целая сеть узлов, и тогда атака теряет смысл», - поясняют разработчики DeNet.
Более того, использование экономических стимулов делает бессмысленным также применение децентрализованного хранилища для атаки на централизованные сервера, так как для этого потенциальному хакеру придется сначала заплатить за извлечение контента нужным количеством пользователей, в то время как проще и выгоднее было бы просто подключиться к сети и оказывать услуги хранения.
О том, как правильно хранить NFT и как зарабатывать в экосистеме децентрализованного хранения читайте в следующих публикациях DeNet.