Обновления: почему их нельзя отключать
Обновления раздражают: ставятся долго, вечно невовремя, иногда ещё и ломают что-то рабочее. Поэтому многие их просто отключают — и это большая ошибка. Разберём, почему софт дырявый по своей природе, что такое окно опасности и как обновляться без сюрпризов для рабочих процессов.
«Опять обновления. Отключу — и пусть не мешают»
Знакомая картина: компьютер некстати предлагает перезагрузиться ради обновлений, они ставятся полчаса, да ещё и в разгар работы. Раздражает — и человек отключает их совсем.
Обновления и правда бывают неудобными: ставятся долго, выскакивают невовремя, изредка после них что-то перестаёт работать как раньше. Поэтому очень многие принимают «волевое решение» и отключают их вообще — и на своём компьютере, и на сервере. А это большая ошибка.
Потому что обновления — это не каприз разработчиков и не способ вас помучить. Это латание дыр в безопасности. И чтобы понять, почему их нельзя отключать, нужно сначала принять одну простую вещь: любой софт дырявый по своей природе.
И это не значит, что программисты плохие. Просто современная программа — это миллионы строк кода, и ошибки в нём неизбежны. Часть этих ошибок — уязвимости: дыры, через которые в систему можно залезть. Их постоянно находят — и в Windows, и в 1С, и в роутерах, и вообще везде. Это нормально. А ненормально — оставлять их незакрытыми.
Почему отключать обновления — плохая идея
Обновления долго ставятся, требуют перезагрузки невовремя, иногда меняют поведение рабочего софта. Реакция предсказуемая — их отключают совсем. И на станциях, и на серверах.
Неудобство реальное, спорить не будем. Но отключить обновления — значит сознательно оставить в системе известные дыры. И чтобы понять масштаб, нужно принять базовый факт: любой софт содержит уязвимости по своей природе.
Дело не в качестве работы разработчиков. Современное ПО — это миллионы строк кода и множество зависимостей, и ошибки в такой массе неизбежны. Часть ошибок — уязвимости, то есть дыры, пригодные для проникновения или повышения прав. Их находят постоянно во всём: в ОС, прикладном софте, прошивках, библиотеках.
Само наличие уязвимостей — это норма, с этим живёт вся индустрия. И проблема здесь не в том, что дыры есть. Проблема в том, что их не закрывают вовремя. Дальше — как устроен этот процесс и где возникает риск.
Откуда берётся окно опасности
У любой дыры есть жизненный цикл. И один из самых обидных моментов в нём — когда патч уже вышел, но вы его ещё не поставили: защита уже существует, а вы ею не воспользовались.
Звучит парадоксально, но выход обновления резко повышает риск для тех, кто его не поставил. Дело в том, что по самому патчу можно понять, что именно чинили — и по этому описанию злоумышленники быстро мастерят инструменты, чтобы атаковать тех, кто ещё не обновился. (Бывает и наоборот — когда дыру начинают использовать ещё до выхода патча, но это отдельная история.)
Вот почему «поставлю обновления потом, когда будет время» работает против вас. Каждый день промедления — это день, когда ваша дыра уже описана и закрыта у того, кто обновился вовремя, а у вас всё ещё открыта.
Жизненный цикл дыры и окно опасности
У уязвимости есть стадии — от скрытого существования до закрытия патчем. Одна из самых критичных для вас — промежуток между выходом обновления и его установкой (эксплуатация известных, но не закрытых уязвимостей, так называемые N-day).
Контринтуитивный момент: для необновлённых систем публикация патча повышает риск. До раскрытия дыра, если она не 0-day, чаще всего вообще не используется. После выхода исправления его анализируют, восстанавливают суть уязвимости и выкатывают массовые автоматические эксплойты под тех, кто ещё не поставил обновление. Это и есть N-day-эксплуатация — основной массовый вектор, в отличие от дорогих и точечных 0-day.
Поэтому отсрочка обновления только кажется нейтральным «поставлю позже». А на деле окно опасности расширяется ровно настолько, насколько откладывается установка. Для систем, доступных извне, этот интервал критичен вдвойне — их находят автоматическим сканированием по известным CVE. Здоровый ориентир — приоритизировать патчи по критичности и закрывать известные уязвимости раньше, чем под них появится готовый эксплойт.
«У нас антивирус есть» — здесь он не поможет
Антивирус ищет вредоносные файлы. А взлом через уязвимость — это вообще не про файл. Это использование дыры в обычной программе.
Мы про это уже говорили в главе об антивирусе: он отлично ловит заражённые файлы, но против эксплойта уязвимости часто бессилен. Злоумышленник тут не подсовывает вирус. Вместо этого он обращается к вашей легальной программе — например, к тому же серверу — и использует её собственную ошибку. А с точки зрения антивируса ничего подозрительного не происходит: обычная программа делает обычные вещи.
Поэтому антивирус и обновления — это две разные линии защиты, и одна не заменяет другую. Антивирус закрывает вредоносные файлы, обновления закрывают дыры в софте. Нужно и то, и другое.
Антивирус эту дыру не закрывает
Антивирус работает с вредоносными файлами. Эксплуатация уязвимости — это вообще не файл, а обращение к легальному сервису через его же ошибку.
Как разбирали в главе про антивирус: сигнатурно-поведенческая защита ориентирована на вредоносные объекты. Эксплойт же не обязательно содержит «вирусный» файл — это валидный с точки зрения протокола запрос к уязвимому сервису, который из-за ошибки в коде приводит к выполнению чужих команд или повышению прав. Для антивируса это часто выглядит как штатная работа легального процесса.
Отсюда вывод: антивирус и управление обновлениями — разные, не взаимозаменяемые слои. Первый закрывает вредоносное ПО, второй — известные уязвимости. Отсутствие любого из них оставляет соответствующий класс атак открытым.
Когда обновлений больше не будет
Отдельная история — системы, которые производитель перестал поддерживать. Windows 7, старые серверные ОС, древние прошивки. Для них обновления не выходят уже никогда.
Это называется EOL — «конец поддержки». И с этого момента, даже если в системе найдут новую дыру, патча для неё не будет. Дыра останется открытой навсегда. А злоумышленники это прекрасно знают: старые системы — любимая мишень, потому что чинить их уже нечем.
А самое коварное тут — что такая система обычно прекрасно работает. Windows 7 запускается, программы открываются, всех всё устраивает. «Работает — не трогай», верно? Нет. «Работает» и «безопасно» — это совсем разные вещи. Снаружи машина выглядит живой, а внутри — решето, которое уже не залатать.
Что с этим делать: по возможности переходить на поддерживаемую версию. А если совсем нельзя — например, на старом железе крутится программа, которая нигде больше не работает, — такую систему как минимум изолируют: отрезают от интернета и от остальной сети, чтобы дыра в ней не стала входом ко всему остальному.
EOL-системы — уязвимости без шанса на патч
Системы, снятые с поддержки (Windows 7, устаревшие серверные ОС, старые прошивки), обновлений безопасности больше не получают. Любая новая уязвимость в них остаётся незакрываемой.
EOL (end-of-life) — прекращение выпуска обновлений вендором. После этой даты новые найденные уязвимости не патчатся в принципе — окно опасности по ним не закрывается никогда. Такие системы — приоритетная цель: известные эксплойты работают бесконечно.
Ловушка в том, что работоспособность не равна защищённости. EOL-система функционирует штатно, и именно это создаёт ложное ощущение, что «всё в порядке». По факту это накапливающийся набор незакрываемых дыр.
Стратегия — миграция на поддерживаемую версию. Где это технически невозможно (legacy-софт, привязка к старому окружению) — компенсирующие меры: сетевая изоляция узла (отдельный сегмент, отрезание от интернета и смежных систем), жёсткое ограничение доступа. Цель — чтобы непатченная дыра не стала точкой входа в остальную инфраструктуру.
Громкие истории, которых могло не быть
Это не страшилки — реальные массовые заражения, попавшие в мировые новости. И у всех общая черта: патч уже существовал, а обновившиеся не пострадали.
И во всех этих историях дело не в каком-то невиданном супервирусе. Дыры были известны, исправления — выпущены. Пострадали те, кто не успел или не захотел обновиться вовремя. Ровно тот самый «поставлю потом», только в масштабе целых стран и корпораций.
Массовые инциденты на известных уязвимостях
Хрестоматийные примеры N-day-эксплуатации: уязвимость известна, патч выпущен, но не установлен. Во всех случаях пропатченные системы не пострадали.
А объединяет их не сложность атак. Объединяет разрыв между выходом патча и его установкой. Все эти уязвимости имели идентификатор CVE и готовое исправление ещё до момента массовой эксплуатации. Это и есть окно опасности из начала главы — реализованное в промышленном масштабе.
Это не только про Windows
Когда говорят «обновления», все думают про Windows. Но дыры есть во всём софте — и про многое забывают напрочь.
И ещё важно: далеко не каждая программа обновляется сама. Windows и браузеры напоминают, а остальное молчит — поставил и пользуешься годами. Так забывают и про софт (даже в архиваторах вроде WinRAR и 7-Zip не раз находили серьёзные дыры), и про CMS сайта, роутеры, хранилища, прошивки. А ведь роутер стоит на границе сети, и дыра в его прошивке — это вход внутрь прямо из интернета. Обновлять нужно весь зоопарк, а не только компьютеры сотрудников.
Обновлять нужно весь стек
Обновлять нужно не только Windows на компьютерах. Дыры находят во всём софте, и часть компонентов стабильно остаётся без внимания.
Первая засада — далеко не каждый софт обновляется сам. ОС и браузеры обновляются штатно, а остальное часто остаётся на исходной версии, пока не обновят вручную. Так из поля зрения выпадает и прикладной софт (в тех же WinRAR и 7-Zip неоднократно находили серьёзные уязвимости вплоть до RCE, эксплуатировавшиеся как 0-day), и инфраструктурный слой: CMS и её плагины, прошивки роутеров и коммутаторов, NAS, гипервизоры, IP-камеры. Сетевое оборудование к тому же стоит на периметре — уязвимость в прошивке роутера эксплуатируется напрямую извне. Полноценный патч-менеджмент охватывает весь стек: ОС, прикладной софт, веб-приложения и прошивки.
Обновления под контролем
Вернёмся к началу: обновления раздражают, потому что приходят невовремя и иногда ломают рабочее. А правильный процесс убирает ровно эти две проблемы.
И вот в чём фокус: претензии из начала главы — «невовремя» и «сломалось» — убирает нормальная организация процесса. Обновления всё так же ставятся, но в удобное время, с проверкой и с возможностью откатиться. Раздражение уходит, а защита остаётся.
Управление обновлениями как процесс
Боль из начала главы («невовремя», «ломается») устраняется не заморозкой обновлений, а выстроенным процессом патч-менеджмента.
Суть в том, что обновления никуда не деваются — меняется способ их установки. Централизация, тестирование, окно обслуживания и учёт EOL превращают хаотичные раздражающие апдейты в управляемую рутину. И это ответ на «работает — не трогай»: трогать нужно, просто по правилам.
Наши принципы — применительно к обновлениям
Обновления — это те же четыре принципа, просто про закрытие дыр в софте.
Четыре принципа — применительно к обновлениям
Патч-менеджмент через те же базовые принципы.
«А что насчёт …?»
Вопросы про обновления, которые задают чаще всего.
Риск, что обновление что-то сломает, действительно есть. Но решается он аккуратным процессом. На критичные системы — сервер, 1С — обновления сначала проверяют, ставят в выходные или ночью, и обязательно с возможностью откатиться, если что-то пойдёт не так.
А вот цена обратного решения несопоставима: сломавшееся обновление чинится за пару часов, а взлом через открытую дыру — это шифровальщик, простой и потеря данных. Поэтому правильный ответ звучит просто: обновлять по-человечески. А «работает — не трогай» ответом тут не является. Разница принципиальная.
И ещё важный момент: «ничего не трогать» не значит «ничего не меняется». Программы стареют, снимаются с поддержки, накапливают известные дыры — и система, которую «не трогают», со временем становится только опаснее, даже если внешне работает как прежде. То есть отказ от обновлений только выглядит как стабильность, а на деле это медленное накопление риска.
Частично — да, и это правильно. Для браузеров и обычных рабочих компьютеров автообновление — то, что нужно: ставится тихо, фоном, без участия человека.
А вот на серверах и критичном софте — 1С, базы данных — автоматический накат без проверки опасен: обновление может прилететь в разгар рабочего дня и что-то уронить. Там обновления ставят контролируемо: проверили, выбрали время, сделали бэкап. Так что ответ такой — авто там, где безопасно, и под контролем там, где критично.
Да, и именно про них забывают чаще всего. Кажется, что роутер «просто работает» — а он стоит на самой границе сети, и дыра в его прошивке — это вход в вашу сеть прямо из интернета. То же с сетевыми хранилищами и камерами.
Но тут есть нюанс: обновление прошивки рискованнее обычного апдейта — неудачная прошивка может «окирпичить» устройство. Поэтому прошивки обновляют осознанно: с пониманием, зачем, и с планом на случай сбоя. Это работа для того, кто понимает, что делает.
Чаще всего — нет, и это отдельная серьёзная проблема. Пиратские версии нередко вообще не получают обновлений, а попытка обновиться ломает «таблетку» и слетает активация. В итоге система остаётся с открытыми дырами навсегда.
Более того, во взломанный софт нередко уже зашито что-то вредоносное — вы ставите программу вместе с сюрпризом. Так что скрытая цена пиратства — это не только юридический риск, но и вечно дырявые, потенциально заражённые системы. Это ещё один весомый аргумент за лицензионный софт.
Отдельная беда — что такие программы обычно качают с сомнительных сайтов и торрентов. И даже если конкретная сборка оказалась «чистой», обновлять её неоткуда: официальный механизм отключён, а идти за новой версией на тот же сомнительный сайт — значит снова играть в рулетку. В результате пиратский софт почти всегда застывает на той версии, на которой его поставили.
Особенно опасно это для того, что смотрит в интернет или работает с чужими файлами — взломанные офисные пакеты, редакторы, та же 1С. Одна непропатченная дыра в такой программе — и все разговоры про антивирусы, бэкапы и VPN теряют смысл, потому что злоумышленник заходит через заранее открытую дверь. Поэтому на рабочих машинах лицензионный софт нужен вовсе не ради формальностей — это вопрос безопасности.
Тут на помощь приходят пакетные менеджеры — такие «магазины приложений» для ИТ-специалистов. Они есть и для Windows, и умеют ставить и обновлять обычные программы централизованно, по списку, а не руками на каждом компьютере. Это сильно упрощает поддержку парка машин.
У себя для этого мы используем собственные скрипты: они централизованно обновляют программы сразу на всех клиентских компьютерах, без обхода каждого рабочего места вручную. Правда, остаётся софт, который иначе как руками не обновишь — такие программы приходится держать на отдельном контроле и обновлять по графику.
Что это даёт на практике: когда выходит важное обновление безопасности, его можно быстро раскатать на все машины разом, а не надеяться, что каждый сотрудник сам нажмёт «обновить». Именно так окно опасности из начала главы и закрывается — быстро и для всего парка сразу, а не точечно и когда-нибудь потом.
Частые вопросы и уточнения
Что чаще всего уточняют по обновлениям и уязвимостям.
Да, обновление иногда что-то ломает — но лечится это процессом, а не отказом обновляться. На критичное (сервер, 1С) сначала проверяем патч на контрольной машине или в тестовой среде, ставим в согласованное окно (ночь, выходные) и всегда так, чтобы можно было откатиться — со снимком или бэкапом перед накатом.
Сравните цену ошибки в обе стороны: откатить неудачный патч — это десятки минут, а разгрести взлом через незакрытую дыру — это шифровальщик, простой и потеря данных. Так что разумнее один раз выстроить нормальный процесс установки, чем замораживать обновления.
И ещё: «заморозить и не трогать» не удерживает риск на месте — он растёт сам собой. Со временем версия уходит в EOL, по ней набегает всё больше публично известных дыр (CVE), и готовых эксплойтов под них тоже становится больше. То есть нетронутая система становится опаснее даже без ваших действий — просто потому, что известных дыр в ней копится всё больше.
Частично — да, так и надо. Для рабочих компьютеров и браузеров автообновление — то, что нужно: ставится фоном, почти никогда ничего не ломает, и от человека ничего не требуется.
А вот на серверах и важном софте (1С, базы данных) пускать обновления на автомат опасно: апдейт может прилететь в разгар рабочего дня и что-нибудь сломать. Тут нужен контроль: проверили, выбрали время, подстраховались откатом. Получается простое правило — авто там, где риск мелкий, и руками там, где сбой дорого обходится.
Да, и про них вспоминают в последнюю очередь. А ведь роутер стоит на границе сети — дыру в его прошивке ломают прямо из интернета. NAS и IP-камеры со старой прошивкой — постоянная мишень массовых атак, их пачками сгоняют в ботнеты.
Только есть нюанс: прошивку обновлять рискованнее обычного софта — неудачное обновление может «окирпичить» устройство. Поэтому делают это с головой: проверяют, та ли версия, держат план на случай сбоя и по возможности не в рабочее время. Это не то, что накатывают на автомате между делом.
Как правило, нет. Пиратские сборки либо вообще не обновляются, либо обновление ломает «таблетку» — и софт навсегда застревает на уязвимой версии. По сути вы сами отказываетесь от патчей безопасности.
Плюс сам дистрибутив часто уже заражён: во взломанные сборки нередко вшивают вредонос, так что зараза приезжает прямо при установке. В сумме выходит дорого — и юридические проблемы, и вечно дырявые, возможно уже взломанные машины. По безопасности лицензионному софту тут просто нет альтернативы.
Усугубляет всё то, откуда это берут: сомнительные сайты и торренты, где никто не проверял, что внутри. Но даже если конкретная сборка оказалась чистой, обновлять её неоткуда — версия застывает на моменте установки, а идти за новой на тот же сайт — снова играть в рулетку.
Опаснее всего это для софта, который открывает чужие файлы или торчит в сеть — офисные пакеты, просмотрщики, серверные штуки, та же 1С. Одна незакрытая дыра в такой программе обесценивает всё остальное — и антивирус, и бэкапы, и VPN, потому что злоумышленник заходит через заранее открытую дверь. Так что лицензионный софт на рабочих машинах — это про безопасность, а не про бумажки.
Через пакетные менеджеры. Для Windows это, например, winget или Chocolatey — с ними программы ставятся и обновляются по единому списку, одной командой, а не руками на каждой машине. Так закрывается большая часть софта, у которого нет своего автообновления.
У себя для этого мы используем собственные скрипты — они обновляют клиентские машины централизованно, так что видно, что и куда раскатано. Но честно скажем: остаётся софт, который не берёт ни автообновление, ни пакетный менеджер — только руками. Такие программы держим отдельным списком и обновляем по графику.
Что это даёт на деле — скорость и охват: важный патч безопасности прилетает на все машины разом и предсказуемо, а не зависит от того, нажал ли сотрудник «обновить». Так и закрывается то самое окно опасности — разрыв между выходом патча и тем, когда он реально встанет на всех машинах.
Возьмём обновления под контроль
Настроим централизованное обновление всего парка, проверку патчей перед накатом на критичное, окно обслуживания для серверов и контроль за системами, у которых заканчивается поддержка. Обновления перестанут и мешать, и оставлять дыры.
Патч-менеджмент как процесс
Выстроим управление обновлениями: централизованная раскатка по политике, тестирование на критичных системах, окна обслуживания с точками отката, инвентаризация и контроль EOL для ОС, прикладного софта и прошивок оборудования.