Хакер #305. Многошаговые SQL-инъекции
Еще в 2018 году ИБ-специалист и инженер Брейдон Фуллер (Braydon Fuller) обнаружил опасную проблему в Bitcoin Core (версий 0.16.0 и 0.16.1). Проблема появилась в 2017 году и получила имя INVDoS. Вскоре после обнаружения CVE-2018-17145 была тихо устранена, а Фуллер два года хранил свою находку в секрете, опасаясь активности со стороны злоумышленников, которые могли заинтересоваться багом.
Однако теперь технически детали уязвимости были обнародованы, так как эта проблема была повторно обнаружена другими специалистами и угрожала другой криптовалюте, которая базируется на старой версии кода Bitcoin.
Проблема INVDoS, по сути, представляет собой классическую атаку на отказ в обслуживании (DoS). И хотя зачастую DoS-атаки практически безвредны, они могут представлять серьезную угрозу для доступных через интернет систем, которые занимаются обработкой транзакций и должны работать стабильно и безотказно.
Фуллер обнаружил, что атакующий может генерировать специальные транзакции, обработка которых нодами может привести к «бесконтрольному расходованию ресурсов», а в конечном итоге к полному отказу уязвимой системы.
Исследователь отмечает, что на момент обнаружения бага перед INVDoS были уязвимы более 50% Bitcoin-нодов и, скорее всего, множество майнеров и бирж. Более того, под угрозой оказались не только ноды Bitcoin, работающие с Bitcoin Core, но также ноды, работающие с Bcoin и Btcd, и другие криптовалюты, основанные на оригинальном протоколе Bitcoin, в том числе Litecoin и Namecoin.
Исследователь пишет, что эксплуатация этой проблемы могла повлечь за собой потерю средств или доходов:
«[Ущерб] мог возникнуть из-за потерянного времени майнинга или расхода электроэнергии, возникшего вследствие отключения нодов, задержки блоков или временного разделения сети. Также это могло вызвать перебои и задержки срочных контрактов или воспрепятствовать экономической деятельности. [Проблема] могла повлиять на торговлю, биржи, атомарные свопы, escrow и платежные каналы HTLC в Lightning Network».
Как уже было сказано выше, в 2020 году уязвимость была обнаружена повторно другим ИБ-экспертом. Проблему «снова нашел» разработчик протокола Handshake Джавед Хан (Javed Khan), когда занимался поиском уязвимостей в криптовалюте Decred.
Хан официально сообщил об ошибке в рамках bug bounty программы Decred, и в итоге информация о ней наконец стала достоянием общественности. Теперь детальная информация о баге опубликована на специальном сайте.