Альткоины

Десятилетняя ошибка в реестре XRP могла создать XRP из ниоткуда

Что на самом деле не работало?

Проблема заключалась в коде, отвечающем за расчет платежей на встроенной децентрализованной бирже (DEX) $XRP Ledger. Согласно официальному отчету о раскрытии уязвимости, опубликованному вчера, когда один платеж охватывал множество предложений, механизм суммировал суммы с использованием непроверенной 64-битной арифметики.

При достаточно большом увеличении этой суммы происходил «перенос», то есть переполнение целого числа. Гигантское число впоследствии превращалось в маленькое, и продавцы на другой стороне сделки получали полную оплату, но с покупателя списывалась только «перенесенная», крошечная сумма. Разница представляла собой $XRP, которых ранее не существовало.

В реестре действительно выполняется проверка безопасности, известная как «инвариант», которая должна подтверждать, что $XRP никогда не создаётся. Эта проверка использовала ту же непроверенную математику, поэтому она не смогла обнаружить именно ту ошибку, для выявления которой и была создана. В отчёте указывается, что источником уязвимости является текущий платежный движок, написанный в 2015 году.

Будьте в курсе
движения ваших монет

Алерты, котировки в реальном времени и новости рынка — в одном приложении

4,8 на основе 40 К оценок в App Store и Google Play

Насколько дешевой была бы такая атака?

Согласно отчету, затраты составили несколько сотен $XRP, заблокированных в качестве резервов (которые возвращаются после удаления объектов), плюс обычные комиссии за транзакции. Злоумышленнику потребовалось бы разместить сотни предложений с намеренно заниженной ценой, а затем пропустить через них один платеж.

Самым пугающим был потенциальный ущерб: в RippleX назвали эту ошибку критической, поскольку в рамках одной подтвержденной транзакции могло быть создано количество $XRP, превышающее общий объем предложения. Вся концепция $XRP основана на жестком ограничении в 100 миллиардов токенов, поэтому незаметное создание новых токенов подорвало бы основное обещание актива. Именно поэтому в таких публикациях, как пост от Whale Insider, эту уязвимость описывали как ошибку, которая могла бы привести к появлению «миллиардов» $XRP.

Кто обнаружил ошибку и как быстро её устранили?

Хронология событий была довольно краткой и выглядела следующим образом:

  • 22 сентября: Кейден Ляо и Veria AI представили свои выводы через программу XRPL Bug Bounty, присвоив им уровень «Major».
  • 23 сентября: RippleX воспроизвела ошибку, повысила её уровень до «критического», и исправление было внедрено.
  • 25 сентября: была выпущена версия Xrpld 3.4.1, и в тот же день на ней работали более 80% валидаторов из списка уникальных узлов (UNL) по умолчанию.
  • 9 октября: публичное раскрытие информации.

Патч не прошел обычное голосование по поправкам, а был выпущен в виде прямого изменения кода в версии 3.4.1 и вступил в силу по мере обновления каждого сервера. Исходный код был опубликован только после развертывания — это стандартный шаг, призванный не дать злоумышленникам «карту». С тех пор аккаунт XRPL Operations установил версию 3.4.1 в качестве минимально требуемой, добавив:

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

В том же релизе была исправлена вторая уязвимость, имеющая более низкий уровень серьезности. Она касалась способа формирования пакетных транзакций, и её исправление реализовано в поправке fixBatchV1_2, которая была запущена в Mainnet 9 октября одновременно с BatchV1_1. В отчёте указано, что в результате этой уязвимости средства также не были утрачены.

Это сообщение появилось в неблагоприятную для криптовалютной безопасности неделю, поскольку убытки от потери устройств Ledger, о которых сообщал Bitcoin.com News, достигли, по оценкам, 93,4 млн долларов. Наконец, компания Evernorth, поддерживаемая Ripple, готовится в понедельник начать торги на Nasdaq под тикером XRPN, имея на счетах примерно 473 млн $XRP. $XRP также расширяет своё присутствие в сфере децентрализованных финансов (DeFi): недавно Firelight активировала в сети функцию защиты хранилища.

Источник

Добавить комментарий

Кнопка «Наверх»
  • bitcoinBitcoin (BTC) $ 82,970.00
  • ethereumEthereum (ETH) $ 2,507.51
  • tetherTether (USDT) $ 0.999207
  • usd-coinUSDC (USDC) $ 0.999670
  • tronTRON (TRX) $ 0.330721
  • zcashZcash (ZEC) $ 1,223.24
  • dogecoinDogecoin (DOGE) $ 0.085850
  • chainlinkChainlink (LINK) $ 13.07
  • moneroMonero (XMR) $ 526.30
  • cardanoCardano (ADA) $ 0.252807
  • leo-tokenLEO Token (LEO) $ 8.81
  • stellarStellar (XLM) $ 0.197224
  • bitcoin-cashBitcoin Cash (BCH) $ 280.84
  • litecoinLitecoin (LTC) $ 63.93
  • daiDai (DAI) $ 0.999883
  • hedera-hashgraphHedera (HBAR) $ 0.092423
  • crypto-com-chainCronos (CRO) $ 0.060915
  • okbOKB (OKB) $ 125.71
  • ethereum-classicEthereum Classic (ETC) $ 8.40
  • algorandAlgorand (ALGO) $ 0.118883
  • kucoin-sharesKuCoin (KCS) $ 7.65
  • cosmosCosmos Hub (ATOM) $ 1.96
  • vechainVeChain (VET) $ 0.007847
  • dashDash (DASH) $ 51.40
  • true-usdTrueUSD (TUSD) $ 0.999229
  • tezosTezos (XTZ) $ 0.298506
  • decredDecred (DCR) $ 17.22
  • iotaIOTA (IOTA) $ 0.051485
  • basic-attention-tokenBasic Attention (BAT) $ 0.139682
  • neoNEO (NEO) $ 2.58
  • 0x0x Protocol (ZRX) $ 0.130780
  • qtumQtum (QTUM) $ 1.01
  • ontologyOntology (ONT) $ 0.062882
  • liskLisk (LSK) $ 0.240510
  • ravencoinRavencoin (RVN) $ 0.002152
  • wavesWaves (WAVES) $ 0.270478
  • paxos-standardPax Dollar (USDP) $ 0.997152
  • huobi-tokenHuobi (HT) $ 0.143360
  • iconICON (ICX) $ 0.013991
  • bitcoin-diamondBitcoin Diamond (BCD) $ 0.061182
  • monacoinMonaCoin (MONA) $ 0.074439
Закрыть
Закрыть