7 окт. 2022 г.

Как меня подвела народная мудрость

Все мы знаем главное программистское правило: если что-то работает -- не трогай, пусть работает. Вот и я, когда переносил нашего зарплатного бота с Windows сервера на облачный VPS думал также. Полностью сархивировал папку в одном месте и один-в-один запустил в другом. Всё. Дело сделано.

Сегодня утром меня поднял срочный email от облачного провайдера. Так и так, мол, мы прикрываем вашу лавочку, потому как вы не пользователь, а какой-то интернет террорист, который атакует с наших серверов пол Европы. Следом пришло автоматическое уведомление, что хотя они и выделяют нам канал на 400 MBit/sec это не значит, что мы должны использовать прямо так 400 Mbit все время.

В итоге VPS заблокирован. Доступа к нему нет. Хелп деск провайдера вежливый, но находится совсем отдельно от дата центра и технического персонала. Рекомендация звонить напрямую в дата центр звучит как писать на деревню дедушке.

Хорошо, что перенесенный сервер работал в тестовом режиме и у меня была исходная копия. Пришлось полностью снести VPS, переустановить с нуля Ubuntu и начать все с начала.

Что произошло?

Меня подвело следование главному программистскому принципу (см. выше). Я долго не обращал внимания, на то, что гитхаб шлет мне уведомления, что в библиотеках, которые использует наш софт, найдены критические уязвимости, позволяющие злоумышленнику получить контроль над машиной. Подвела и долгая жизнь на Windows серверах, которые в силу своей меньшей популярности вызывают и гораздо меньший интерес у хакеров. Очевидно, кто-то завладел нашей машиной через одну из дыр в сторонней библиотеке и начал атаковать другие сервера или спамить (а мог бы криптовалюту майнить за наш счет).

Вывод:

1. Всегда обновляйте библиотеки. Выделите на это регулярный день, например, утро понедельника.

2. Если проект стабильный, уже не развивается, тем не менее следите, что пишет гитхаб по поводу найденных в нем уязвимостей. И, если найдены с пометкой Critical или High -- сразу же обновляйте код.

3. Облачный сервер сегодня есть -- завтра его нет. И ни какие мольбы не помогут вернуть вам утраченные данные. Работать в облаке можно только при настроенной системе автоматического 100%-ного бэкапа с переносом данных на другой физический сервер, обязательно к другому провайдеру.