Хьюстон, у нас проблемы... (часть 2, продолжение банкета)
Думаю, основная масса активных голосят помнит, как примерно год назад был красиво поломан аккаунт @romapush? Если нет - я напомню. Вернее, он был не совсем поломан, а вор тупо воспользовался технической ошибкой Ромы, который отправляя куда-то монеты, вместо примечания, по ошибке вставил в поле memo свой приватный активный ключ (этот тот, с помощью которого можно осуществлять финансовые операции). История была освещена и описана у Протея.
Пару недель назад у нас было снова продолжение банкета - был точно так же засвечен и попал в лапы вора аккаунт @leva64, правда вор не додумался создать мультисиг и полностью заблокировать доступ к аккаунту его хозяина, он просто вывел ликвидные токены, создал с помощью украденного же ключа новый акк @leva65.
и включил на него понижение:
Вполне успешно:
В обоих случаях проблема была разрулена, с случае Ромы с помощью @ksantoprotein, в случае @leva64 - с моей, аккаунты были восстановлены и возвращены хозяевам, но сама проблема никуда не делась и уязвимость остается, так что будьте осторожны.
Но как вор так быстро спалил ошибки хозяев этих аккаунтов, спросите вы? А все просто, идея давным давно не новая. То что на стимите уже давно переварилось и вышло с другой стороны - мы все еще едим. Как вам такая идея - прицепить к блокчейну бота, который бы отслеживал в мемо транзакций все, что хоть каким-то образом напоминает пароли или ключи? Ведь рано или поздно кто-то совершит такую ошибку, особенно если этот кто-то часто совершает транзакции - вероятность ошибки накапливается чисто статистически. К примеру сделать поиск по маске 5К..., Р5... или еще что-то похожее, с чего начинаются все пароли/ключи. Как только в мемо какой-то транзакции появляется хоть что-то похожее на пароль/ключ - бот уведомляет своего хозяина и тот идет грабить аккаунт.
До того момента мы все думали, что если мы не будем пользоваться основным паролем, а используем только ключи - наши аккаунты будут в безопасности.
Авотхрен!
В БЧ Голоса оказалась уязвимость, которая до сих пор не устранена. Уязвимость эта заключается в том, что понижение СГ можно включить на чужой аккаунт, чем легко может воспользоваться вор: создать свой аккаунт с уже нормальным паролем/ключами, после чего запустить на него вывод с ограбленного аккаунта.
А вот дальше начинается самое интересное: в случае утери основного пароля восстановить аккаунт можно только с помощью рикавери (аккаунта-регистратора). Если вы регистрировались через golos.io - аккаунт-регистратор у вас скорее всего будет @golosio или @reg-service, для восстановления аккаунта вам придется написать в техподдержку и еще вы должны помнить свой имейл и у вас должен быть доступ к номеру телефона, на который регистрировали акк. И с момента угона не должно пройти больше месяца.
Но даже это вам не особо поможет. Дело в том, что даже если вы восстановите доступ к своему аккаунту, смените пароль итд - все равно ваша СГ будет продолжать понижаться на аккаунт вора.
Почему так?
Все дело в параметре "withdraw_routes", который при включении понижения на сторонний аккаунт меняется с нуля на единицу, и вернуть его обратно надо ручками.
И до тех пор, пока не вернуть обратно "withdraw_routes": 0 - понижение будет идти на аккаунт вора. Стандартными средствами golos.io тут ничего сделать нельзя, хоть отменяй, хоть перезапускай понижение - кина не будет. Нужно только через golos-js отправлять операцию (причем, что меня удивило, техподдержка Голоса это сделать не в состоянии, наверное тупо не умеют), то есть обычному рядовому пользователю без навыков программирования и при неимении в друзьях лиц, такими навыками обладающих, остается просто 13 недель грустно созерцать, как его денежка уходит на аккаунт вора. Или просто смотреть на свой бесполезный аккаунт с которого невозможно вывести деньги, потому что при любой попытке они будут выводиться на аккаунт вора.
Что делать и как защититься от этого?
- Не светите свои ключи НИГДЕ.
- Если часто совершаете транзакции - делайте это не с основного аккаунта а с промежуточного, на который без мемо заводите необходимые суммы по мере надобности.
- Не переходите по незнакомым ссылкам, а если даже перешли - не вводите там никаких своих ключей/паролей - это вполне может быть фишинг, угоняющий ваши акаунты.
Что делать если вы все же засветили ключ и стали жертвой вора?
- В первую очередь восстановить ваш аккаунт либо через рикавери либо через техподдержку.
- Сменить пароль (ключи поменяются вместе с ним)
- Зайти на сервис Вика, с помощью которого убрать со своего аккаунта все возможные мультисиг-доступы, если есть подозрение, что они были прицеплены вором к вашему акку.
Далее - вернуть понижение с аккаунта вора на свой собственный аккаунт.
Для этого в блокчейн следует отправить следующую конструкцию:
golos.broadcast.setWithdrawVestingRoute(
'5****',
'ваш аккаунт, писать без @собаки',
'аккаунт вора, писать без @собаки' ,
0, false,
function(err, result) {
console.log(err, result);
});
где 5****
- ваш приватный активный ключ
В результате получаем вот такую операцию:
После которой вор отсосетполучит ноль, а вы будете получать нормальное понижение СГ на свой аккаунт.
Ну и предваряя вопросы, чтобы отправить операцию в блокчейн, следует воспользоваться сервисом Гороха, либо установить node-js и потом golos-js. Как это делается, я писала вот здесь. Пост несколько устарел, но переделывать лень, просто подставьте актуальные версии, хотя должно сработать и так как есть.
Всем удачи, хорошего профита на Голосе, и будьте осторожны. В этой жизни плохих людей намного больше, чем хороших.