Текст дня. Responsible disclosure — это принцип в компьютерной безопасности, который гласит, что нашедший уязвимость в коде имеет ответственность дать время разработчикам исправить ошибку, прежде чем эксплоитить или делать её публичной. По сути, white hat.



25 апреля 2018 разработчик Bitcoin Core Cory Fields обнаружил критическую уязвимость в коде Bitcoin Cash. Проблема была в том, что разработчики (а скорее разработчик) Bitcoin Cash внося изменения в изначальный код биткоина забыли вернуть необходимую проверку конкретного бита в подписи, что позволило обычной транзакции инициировать разделение цепочки (chain split) и, соотвественно, сделать часть сети просто невалидной с точки зрения остальных нод.



В статье он описывает процесс через который пришлось пройти, чтобы донести информацию об этой уязвимости (он назвал ее SIGHASH_BUG, потому что проблема была как раз в отсутствии проверки SigHash, подробнее о проблеме здесь: https://github.com/mit-dci/cash-disclosure/blob/master/bitcoin-cash-disclosure-04252018.txt )



"Здоровый" способ был бы найти PGP ключ разработчиков, зашифровать сообщение о баге и отправить им, чтобы злоумышленники не смогли воспользоваться уязвимостью раньше. Однако, выяснилось, что у разрабов Bitcoin Cash такой информации нет ни в репо, ни на сервере ключей PGP. В итоге сделал новый анонимный аккаунт на GitHub и из-под Tor и создал пул реквест с просьбой предоставить конфиденциальный и анонимный способ связи с разработчиками. В конечном был получен ответ с публичным ключом, а спустя 48 часов уязвимость была исправлена.



Вся история со скриншотами и ссылками от автора: https://medium.com/@coryfields/http-coryfields-com-cash-48a99b85aad4