Разработчики программного обеспечения делают все возможное, чтобы в их продуктах не было ошибок, но человеческая природа дает о себе знать. Несколько вирусных эпидемий этого года наглядно демонстрируют актуальность средств оперативной установки исправлений — систем категории patch management
Впервые программа с названием patch появилась в 1984 году; ее автором был Ларри Уолл

Коммерческие и свободно распространяемые программные продукты по-прежнему имеют дефекты, которыми могут воспользоваться злоумышленники для нападения на отдельные компьютеры и на сети предприятий. В публикуемой официальной информации об обнаружении дефекта содержатся также сведения о том, как его исправить, однако далеко не все пользователи компьютеров и администраторы корпоративных сетей вовремя устанавливают необходимые исправления. Как правило, программные продукты обновляются лишь после того, как случается очередная эпидемия вирусов, но тогда уже можно подсчитывать убытки.

Необходимость

Обновления призваны исправлять дефекты в программном коде. Эти дефекты могут быть самых разнообразных типов — от неправильно переведенного интерфейса до сложных алгоритмических ошибок. Наиболее опасными считаются те из них, которые приводят к прекращению работы приложения или информационной системы в целом либо к нарушению политики безопасности.

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

Эпидемии вируса Sasser и нескольких последующих вирусов, которые использовали дефект сервиса аутентификации LSASS, еще раз продемонстрировали: лучший способ защиты — заранее установить обновления. Sasser прошел все стадии распределенной разработки вирусов: за пять дней до эпидемии появился эксплойт, который мог захватывать или выводить из строя Windows XP, за день до эпидемии — эксплойт для проникновения, а через 17 дней после публикации сообщения об ошибке — вирус. Таким образом, у пользователей было две с половиной недели на устранение дефекта; судя по размаху эпидемии, очень многим этого времени не хватило.

Обновления

Что такое исправления? Впервые программа с названием patch появилась в 1984 году; ее автором был Ларри Уолл. Программа предназначалась для внесения необходимых изменений в исходный код любых продуктов категории open source. В составе исправления поставляются только сами изменения, вычисленные посредством команды сравнения diff, поэтому они достаточно компактны. При выполнении операции наложения можно на всякий случай сохранять резервную копию старого варианта исходного кода.

Исправления публикуются и для коммерческих продуктов, но поскольку они распространяются не в исходных текстах, а в виде компилированных программ, то и размер файлов исправлений несколько больше. К исправлениям обычно прилагается программа установки, которая и вносит в систему все необходимые изменения.

Управление

Обновить один продукт на одном компьютере достаточно просто. Сегодня практически все массовые программы поставляются со встроенной системой обновлений, которая автоматизирует процесс наложения исправлений, вплоть до автоматического получения их из Internet.

Но как быть, если приложений много и они установлены на большом числе компьютеров? Здесь уже не обойтись без централизованной системы обновлений, позволяющей автоматизировать этот процесс.

В мире open source есть несколько подходов к обновлению. В частности, существуют системы наподобие CVS и Subversion, проверяющие актуальность исходных текстов и обновляющие их. Однако для практического использования более интересны системы распространения обновлений в уже откомпилированном виде — в пакетах RPM или deb, которые автоматизируют процесс установки и модернизации программного обеспечения для платформы Linux.

Впрочем, есть инструменты и для обновления самых разнообразных программных продуктов на различных платформах. Такие решения часто совмещают с системой инвентаризации, которая позволяет проследить, какие именно обновления и для каких приложений установлены. В этих системах наметилась тенденция интеграции с сервисами безопасности, и они постепенно находят свое место в системе корпоративной защиты.

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


Sasser и другие

8 октября 2003 года
Компания Eeye Digital Secuity обнаружила ошибку в сервисе LSASS и сообщила об этом в Microsoft

13 апреля 2004 года
Microsoft опубликовала бюллетень о выпуске исправлений для двух десятков найденных ошибок

25 апреля 2004 года
Опубликован эксплойт, который захватывал китайскую версию Windows XP, а для остальных версий выполнял DoS-атаку

29 апреля 2004 года
Разработчиком, подписавшимся houseofdabus, выпущен универсальный эксплойт для русской и английской версий Windows XP/Windows 2000

30 апреля 2004 года
Началось распространение червя Sasser

10 мая 2004 года
Опубликован эксплойт, использовавший для захвата компьютеров ошибку в FTP-сервере, который распространялся в составе Sasser