В OSINT и безопас­ности час­то нуж­ны инс­тру­мен­ты ана­лиза крип­товалют: надо понимать, кто сто­ит за адре­сами, куда ухо­дят средс­тва и как отсле­дить активность. Сегод­ня пос­мотрим, как устро­ены адре­са в раз­ных блок­чей­нах, как работа­ет пар­синг, какие есть спо­собы иден­тифика­ции и про­вер­ки.
 

Что такое криптовалютный адрес

В блок­чей­не крип­товалют­ный адрес — про­изводная от пуб­лично­го клю­ча. Он появ­ляет­ся пос­ле крип­тогра­фичес­ких опе­раций с парой зак­рытого и откры­того клю­чей: откры­тый ключ хеширу­ется, а получен­ную стро­ку пуб­лику­ют, что­бы дру­гие учас­тни­ки мог­ли отправ­лять средс­тва на этот адрес.

info

Под­робнее об основных прин­ципах работы крип­товалют читай в статье «Крип­та с нуля. Выяс­няем, как устро­ен блок­чейн».

В бит­коине адре­са могут начинать­ся с 1 (P2PKH), 3 (P2SH) или bc1 (Bech32). В Ethereum все адре­са начина­ются с 0x и сос­тоят ров­но из 42 сим­волов. В некото­рых крип­товалю­тах, нап­ример Monero и Zcash в shielded-режиме, адре­са скры­ты или сна­ружи выг­лядят нечита­емы­ми, поэто­му отсле­живать их нам­ного слож­нее. Если заранее знать струк­туру адре­са, авто­мати­чес­кий поиск ста­новит­ся про­ще. Нап­ример, что­бы най­ти на форуме все Ethereum-адре­са, дос­таточ­но задать регуляр­ку вида 0x[a-fA-F0-9]{40}. Но даль­ше все слож­нее.

 

Где ищут адреса

Ад­реса мож­но дос­тавать из блок­чей­на, внеш­них источни­ков или объ­еди­нен­ных баз. В блок­чей­не адре­са пря­мо ука­заны в тран­закци­ях: в Bitcoin лежат в выходах, а в Ethereum — в логах и вызовах кон­трак­тов. Если запус­тить пол­ный узел и прой­тись по бло­кам, мож­но соб­рать всю исто­рию появ­ления адре­сов и прос­ледить их активность.

От­дель­ная важ­ная тема при отсле­жива­нии тран­закций — вре­мен­ные и слу­чай­ные адре­са. В ходе обыч­ной тран­закции в бит­коинах кошелек час­то авто­мати­чес­ки соз­дает новый слу­чай­ный адрес для сда­чи из той же сид‑фра­зы. Так про­исхо­дит из‑за модели UTXO: если у тебя есть вход на 1 BTC, а ты отправ­ляешь 0,3 BTC, оставши­еся 0,7 BTC дол­жны куда‑то вер­нуть­ся. Это усложня­ет ана­лиз: один поль­зователь может за корот­кое вре­мя задей­ство­вать десят­ки свя­зан­ных адре­сов.

В Ethereum тоже хва­тает проб­лем. Там нет понятия сда­чи, зато при вза­имо­дей­ствии со смарт‑кон­трак­тами час­то появ­ляют­ся новые адре­са: нап­ример, через опко­ды CREATE и CREATE2 или прос­то как новые адре­са EOA. Плюс зло­умыш­ленни­ки активно исполь­зуют собс­твен­ные кон­трак­ты, что­бы скры­вать сле­ды. Нап­ример, они могут раз­вернуть про­межу­точ­ный кон­тракт, который при­нима­ет средс­тва и сра­зу перево­дит их даль­ше, на дру­гой адрес.

Во внеш­них источни­ках адре­са час­то встре­чают­ся в тек­сто­вом виде. Вот нес­коль­ко реаль­ных кей­сов:

  • На форумах вро­де BitcoinTalk поль­зовате­ли добав­ляют адре­са в под­писи, что­бы при­нимать донаты.
  • На GitHub адре­са встре­чают­ся в ком­мента­риях к ком­митам, тес­тах и фай­лах README. Иног­да это реаль­ные адре­са, которые оста­вили раз­работ­чики.
  • В Telegram-каналах с фишин­гом и псев­дорозыг­рышами час­то ука­зыва­ют адрес, куда яко­бы нуж­но перевес­ти крип­ту, что­бы «получить обратно в десять раз боль­ше».
  • На Pastebin и в сли­тых логах час­то пуб­лику­ют кошель­ки, которые исполь­зуют в скам‑схе­мах.
  • На дар­кнет‑пло­щад­ках адре­са раз­меща­ют на стра­ницах опла­ты. Иног­да они обновля­ются авто­мати­чес­ки, но шаб­лоны оста­ются преж­ними, и по ним мож­но иден­тифици­ровать пло­щад­ку.
  • В базах дан­ных адре­са появ­ляют­ся пос­ле пар­синга и агре­гации. При­меры: WalletExplorer, Chainalysis, Crystal Blockchain. Эти сер­висы стро­ят про­фили адре­сов, отме­чают свя­зи с бир­жами и дру­гими сер­висами, а затем клас­сифици­руют их: бир­жа, мик­сер, скам, хак, дар­кмар­кет и так далее.
 

Парсинг

Са­мый прос­той вари­ант — поиск по шаб­лонам. Сна­чала сис­тема опре­деля­ет, к какой сети отно­сит­ся адрес: у каж­дой сети свой фор­мат. Для такой про­вер­ки под­ходят регуляр­ные выраже­ния.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии