В течениe минувших суток в системе интернет-адресации была ликвидирована фундаментальная ошибка, эксплуатация которой позволяла злоумышленникам подделывать адреса веб-сайтов. Данная ошибка касалась общей реализации системы доменных имен, а потому потребовала скоординированного действия всех разработчиков серверного программного обеспечения.
Владельцы Winodows-, Linux-, Unix- и Mac-серверов уже могли обратить внимание на то, что для их систем cо вчерашнего вечера доступна новая версия используемого DNS-сервера (например Bind). Выпустили обновления и крупные вендоры сетевого оборудования, такие как Cisco.
Ошибка, в результате которой пришлось "пропатчить интернет", на техническом сленге именуется, как "отравление DNS-кэша". На практике она позволяет подменить ряд записей в DNS-серерверах таким образом, что бы при наборе какого-либо привычного адреса сайта, например www.cybersecurity.ru, пользователь отправлялся прямиком на сайт хакеров. Та же опасность касается и трафика электронной почты. Ситуация осложняется тем, что данный баг является в чистом виде серверным, а потому как-либо защититься от него с рабочего компьютера невозможно.
Данная фундаментальная уязвимость была обнаружена еще в прошлом году экспертом компании IO Active Дэном Камински, однако ввиду ее особой опасности сам Камински и IO Active предоставили данные о ней только легитимным разработчикам софта, а широкая общественность лишь знала о факте некой "серьезной" уязвимости в DNS.
На практике при помощи данной ошибки злоумышленник, при наличии определенных знаний и сноровки мог перенаправить весь трафик с какого-либо домена, например google.com, на сторонние серверы, в результате чего все закрытые данные, передаваемые легальному сайту, оказывались в полном распоряжении злоумышленников.
Сам Дэн Камински рассказывает, что когда ему удалось обнаружить указанную уязвимость, то вначале он сообщил об этом в листы рассылки US CERT (U.S. Computer Emergency Readiness Team), а также в несколько крупных компаний, производящих системное программное обеспечение. Понимая серьезность ситуации, все осведомленные стороны согласились держать имеющиеся у них данные в секрете. В итоге в марте этого года в штаб-квартире Microsoft состоялась встреча 16 ведущих мировых вендоров, где был выработан план по исправлению ошибки, а также утвержден график выпуска патчей или новых версий серверного ПО.
Вчера вечером Microsoft вместе с традиционным ежемесячным набором исправлений, выпускаемым в первый вторник каждого месяца, обновила систему управления доменными именами в серверных Windows. Свои патчи получили и пользователи оборудования Cisco. Также вчера на сайте Internet Systems Consortium была опубликована и новая версия системы Bind, одновременно с этим вышли новые версии этого пакета для крупнейших Linux-систем: Red Hat, Suse, Mandriva, Ubuntu и других.
Сам Камински говорит, что несмотря на серьезность ошибки, ему не удалось обнаружить в сети случаи использования данной проблемы. "Вендоры достигли соглашения, по которому изменения, внесенные с серверы, практически не затрагивают работу существующих инфраструктур, но минимизируют возможность использования уязвимости", - говорит он.
Несколько поясним суть ошибки. Вся работа глобальной сети фактически зависит от работы доменной системы. Основная задача системы доменных имен (DNS) заключается в преобразовании буквенных доменов в их числовые аналоги или ip-адреса. Система фактически работает в две стороны - то есть транслирует домены в ip-адреса и наоборот. В глобальной сети существуют около 200 000 средних и крупных DNS-серверов, обслуживающих миллионы пользователей однако вся доменная архитектура организована по цепочке, то есть разрешение имен идет от корневых серверов, но каждый DNS-сервер имеет свой головной сервер, с которого он получает необходимые для работы данные о доменах и ip-адресах.
Вот в этом-то механизме и кроется ошибка. Механизм передачи доменной информации и ее идентификация являются слабым звеном всей системы DNS. Подчиненный сервер не может определить, являются выданные на его запросы DNS-разрешения легальными данным с авторитативного сервера или это сгенерированные хакером поддельная информация. Для идентификации DNS-пакеты используют случайные идентификационные номера, но проблема в том, что этих "случайных" номеров, используемых как идентификаторы, всего 65 000. Более того, у каждого сервера есть определенная последовательность создания "случайных" запросов, поэтому злоумышленник может подделать "случайный номер" и подать DNS-серверу неверную информацию о доменах и соответствующих им адресах.
Старший программный менеджер Internet Systems Consortium Джоа Дамас говорит, что разработчикам DNS-серверов пришлось пересмотреть механизм генерации "случайных номеров", чтобы снять лимит в 65 000 последовательностей, а кроме того, добавить защитные механизмы, позволяющие серверу быстро "забыть" некорректные данные. Помимо этого, на сайте US CERT изложены и другие рекомендации по защите.