Само оборудование работает с помощью прошивки. Прошивка – это в основном программы, реализованные в кремниевых чипах, или, как я люблю говорить, «сложное для обновления программное обеспечение». Специалисты по ИБ должны следить за тем, чтобы их оборудование, прошивка, BIOSы и устройства были пропатчены вместе с ПО.
Если бы использовать патчи было легко, это не стало бы проблемой, каковой является сегодня. В следующих разделах мы познакомимся с некоторыми проблемами, связанными с патчами.
Независимо от того, какую программу вы запускаете для проверки существующих патчей, она пропустит некоторый процент устройств. Это не всегда вина программы управления патчами. Компьютерные устройства представляют собой сложные машины с большим количеством проблемных частей, и любая из них может остановить верификацию патча. Кроме того, пользователи могут использовать устройства или версии, которые не поддерживаются программой проверки патчей или могут мешать границам сетевой безопасности. Есть еще немало причин, по которым статус проверки патчей может быть неточным, но достаточно сказать, что он никогда не бывает точным на 100 %. И если вы не в состоянии обнаружить патч, то не сможете применить его.
Sun (и теперь Oracle) Java долгое время была самой взламываемой программой, и, к сожалению, ее оставляли без патчей в течение почти двух десятилетий. Программисты Java последовательно пишут свои программы (неправильно), полагаясь на определенные версии и функции Java, а обновление могло сломать программы, основанные на определенной версии. По этой причине большинство предприятий знали, что у них высокий процент незакрепленных программ Java и что Java больше остальных подвергалась успешным эксплойтам, но они все равно не были в состоянии выпустить патчи для Java.
Как и при проверке отсутствующих патчей, на некотором небольшом проценте компьютеров никогда не будут применены рекомендованные патчи. Опираясь на свой опыт, могу сказать, что это количество устройств составляет в среднем около 1–2 %, но иногда оно возрастает до 15–20 %, в зависимости от сложности патча и задействованных устройств. Отличный способ победить проблемы патчей – это уделять большое внимание компьютерам, которые с трудом ищут обновления.
Вендоры изо всех сил стараются уменьшить количество операционных проблем, вызванных определенным патчем, но нельзя ожидать, что они будут тестировать его на каждой уникальной комбинации оборудования и программного обеспечения, к которым тот может быть применен. Иногда применение очень надежного и безопасного патча может быть отменено ранее не обнаруженным вредоносным ПО или непроверенной сторонней программой. Большинство компаний сломаны одним или несколькими патчами, что привело к значительному прерыванию работы, и впредь они станут избегать патчей, если, конечно, те не будут хорошо протестированы (на что у вендоров часто нет времени или ресурсов). Из-за страха перед непреднамеренными операционными проблемами, они либо никогда не применяют патчи, либо не используют их своевременно. Я понимаю этот страх, но риск несвоевременного применения критических патчей безопасности выше, чем возможные и менее вероятные операционные проблемы. Если вас беспокоят операционные вопросы, просто подождите несколько дней. Если у патча обнаружатся серьезные последствия, поставщик очень быстро исправит это, и вы сможете применить патч уже без риска.
Патч выпускается для того, чтобы закрыть уязвимость безопасности; если о ней еще не было публично известно, то с выпуском патча об этом узнают все. Авторы вредоносных программ быстро изучают любое вышедшее исправление (патч) и перепроектируют его, чтобы узнать, как использовать уязвимость. Так как требуется минимум несколько дней, чтобы все пропатчили уязвимость, каждый недавно выпущенный патч – еще один вероятный путь для эксплуатации.
Некоторые вендоры крадут патчи высокой критичности, которые устраняют другие проблемы и не объявляют об ошибке. Позже они официально рассказывают об уязвимости и выпускают патч. К тому времени, благодаря более раннему патчу, ошибка уже исправлена на большинстве компьютеров. Один очень популярный поставщик ОС однажды создал критическое исправление за несколько месяцев до других патчей. Для реверсивных инженеров это выглядело как необъяснимые сегменты кода, но как только трехмесячные патчи были применены, они закрыли огромную дыру, оставив клиентов счастливыми, а хакеров – разочарованными.
В конце концов, хорошее управление патчами означает одно: своевременное и последовательное исправление наиболее часто используемых программ. Это легко сказать, но трудно сделать. Мой совет – включить все автоматические патчи или использовать авторитетную программу управления ими, которая может обрабатывать все ваши потребности обновления ПО (и оборудования тоже, если это возможно); и пусть критические исправления безопасности будут применяться в течение нескольких дней. Если вы исправите уязвимость за пару дней, то станете одним из самых защищенных в Интернете. Идеальный патч может быть нелегким, но исправление критических уязвимостей наиболее часто используемых программ необходимо на любом компьютере. Не делать этого значит буквально просить хакеров атаковать вас.
В следующей главе представлен профиль Уиндоу Снайдер, женщины, ответственной за помощь некоторым из крупнейших компаний в мире по исправлению уязвимостей.