В течени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 изложены
и другие рекомендации по защите -
http://www.us-cert.gov/current/index.html#dns_implementations_vulnerable_to_cache