В этом совете я говорю только о технических моментах, опуская моральную и этическую сторону вопроса
В последние недели в разных айти‑продуктах начали появляться «политические диверсии». Например, обновление плагина на сайте могло поместить на все страницы банер с политическими манифестами и лозунгами.
В этом совете я говорю только о технических моментах, опуская моральную и этическую сторону вопроса
В другое время такой банер тянул бы лишь на неудачную шутку, но в текущей ситуации он представляет реальную опасность для сайта и его владельца — Роскомнадзор вряд ли будет разбираться, по чьей вине на сайте появились неугодные высказывания.
В последние дни диверсии стали злее и деструктивнее. Появились блокировщики доступа, шифровальщики данных, скрипты, которые вешают компьютеры пользователей намертво или используют их ресурсы для ДДОС‑атак на другие сайты.
Чем крупнее и функциональнее проект, тем тяжелее последствия попадания в него вредоносного кода. Диверсия может создать массу проблем даже в личном блоге, а тем более в крупном продукте с высокой посещаемостью и большими объёмами клиентских данных. И если банер из блога можно убрать относительно быстро, то зашифрованную файловую систему или базу данных восстановить гораздо сложнее. А ещё сложнее восстановить репутацию.
Вот пара простых, но важных советов в текущей ситуации.
Избегайте ненужного обновления программ и зависимостей
Сейчас не лучшее время для обновления библиотек, фреймворков, плагинов для сайтовых админок и других сторонних решений. Любые серьёзные миграции тем более лучше пока отложить — они неизбежно связаны с установкой кучи зависимостей.
Если система работает — не трогайте её без крайней нужды.
Будьте внимательны с пакетными менеджерами. Даже если в списке пакетов зафиксированы их версии, пакетный менеджер может неявно обновить зависимости пакетов и подтянуть таким образом вредоносный код. Чтобы избежать неявных обновлений, в современных пакетных менеджерах есть лок‑файлы, в которых фиксируется полное дерево версий всех пакетов и их зависимостей. Убедитесь, что в вашем проекте есть такой лок‑файл.
Отключите автоматические обновления
Системы автообновления зависимостей вроде Dependabot или Renovate так же могут протащить в проект вредоносный код. Поскольку эти системы автоматические, есть риск узнать о проблеме когда будет уже слишком поздно.
В текущей ситуации лучше отключить всю автоматику или переключить её на режим ручной проверки и подтверждения обновлений. Это касается не только обновлений зависимостей в проектах, но и программного обеспечения в целом.
Следите за айти‑новостями и делитесь знаниями
Мониторить новости круглые сутки сейчас вредно. А вот заглядывать раз в день на проверенные сайты не помешает, чтобы быть минимально в курсе происходящего в индустрии. Делитесь знаниями о подтверждённых опасностях с коллегами, клиентами и партнёрами.
Для мониторинга диверсий в опенсорсе есть обновляемая таблица «Техдирского клуба»:
Лично я бы вообще на пару месяцев включил режим параноика: не обновлял и не ставил никакие новые пакеты, плагины, расширения, библиотеки и так далее. Исключение — безотлагательные обновления безопасности, и то после ручной проверки их содержимого. Это тупейший, но очень надёжный подход.
Желаю всем нам сил.
P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.