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