Вот уже неделю длится история с новообнаруженной уязвимостью в программе BIND 9. BIND, на минутку, это один из краеугольных камней Сети, а точнее самый популярный DNS-сервер, транслирующий имена интернет-сайтов в цифровые IP-адреса. Популярность повышает его статус в глазах киберзлоумышленников, которые активно ищут ошибки в коде и пытаются их эксплуатировать. В недавнем прошлом ситуация с безопасностью была настолько тяжёлой, что разработчики BIND даже предпочли полностью переписать продукт — и именно так появилась на свет девятая версия.
Но даже полная переработка не спасла от атак, печальным подтверждением чему — неожиданный массовый падёж BIND-инсталляций, случившийся в середине ноября. Судя по всему, неизвестные взломщики отыскали в программе очередную «дыру» и через неё попытались проникнуть, в частности, на десятки университетских систем США. К настоящему моменту разработчики BIND выпустили промежуточную заплатку, устраняющую последствия, но не причину: решить проблему полностью можно будет только когда станет известно, где именно спрятана слабость, которой воспользовались взломщики.
Случившееся с BIND, в общем, достаточно интересно, чтобы стать сюжетом для самостоятельной истории. Но вместе с тем, это всего лишь ещё один пример старой как компьютерный мир драмы, главную роль в которой играют так называемые zero-day vulnerabilities, уязвимости нулевого дня. Если попросту, каждая 0-day или ZDV, как их сокращённо называют, представляет собой ошибку в отдельно взятой программе, возможно опасную, но главное — никому, кроме обнаружившего её человека, ещё неизвестную. Как говорится, в стране слепых и одноглазый король — и обладатель ZDV может таким королём стать: в зависимости от того, как сильно распространена уязвимая программа, в его власти оказываются от нескольких тысяч до сотен миллионов компьютеров.
Первым случаем использования ZDV, вероятно, следует считать эпидемию червя Морриса, случившуюся в ноябре 1988 года. Тогда вирус, написанный студентом MIT Робертом Моррисом, используя несколько ошибок в популярных серверных программах, инфицировал и на время вывел из строя значительную часть подключенных к Интернету систем. С тех времён, конечно, многое поменялось. От баловства и чистого любопытства — тот же Моррис и не думал причинять вред — чёрные хакеры перешли к коммерции (см. «Как Касперский и Microsoft свалили бот-сеть Kelihos»). Написание эксплоитов — утилит для использования уязвимостей — автоматизировано (см. проект Metasploit).
Наконец, опасность, исходящая от уязвимостей нулевого дня, выросла до невообразимых ещё десять лет назад размеров. В мире, где всё контролируется компьютерами — от учёта электроэнергии в вашем ТСЖ и насосных станций, снабжающих города водой, до урановых центрифуг в сверхсекретных промышленных центрах — ZDV ничем не хуже настоящего оружия, причём оружия нового, о котором противник не знает и сопротивляться которому по определению не в состоянии.
Проблема в том, что несмотря на всю значимость, феномен ZDV как и четверть века назад остаётся уделом экспериментаторов и энтузиастов, отношение к нему со стороны софтверной индустрии и общественности неоднозначное.
Этический аспект в данном случае чрезвычайно важен. Поставьте себя на место исследователя, обнаружившего опасную уязвимость в популярном программном продукте. Кому первому вы о ней сообщите? Разработчикам? Но опыт показывает, что это плохая идея: особенно когда речь идёт о проприетарном софте (исходные тексты закрыты, разработкой занимается только компания-производитель), на устранение уязвимости могут уйти недели и даже месяцы. За это время «дыру» найдёт кто-нибудь ещё или сведения о ней просочатся каким-то иным образом, и миллионы пользователей окажутся под ударом (вспомните, когда обнаружили вирус Stuxnet, сколько латала задействованные в нём уязвимости Microsoft).
Значит, первыми следует поставить в известность пользователей? Но для подавляющего большинства из них информация такого рода будет бесполезной: найти и исправить ошибку сами они не смогут, а пока разработчики (очень громко скрепя зубами: ведь о дыре знают все, необходимо поторапливаться) трудятся над «заплаткой», злоумышленники, узнавшие о ZDV вместе с прочей публикой, применят её для атак.
Единственное, что по силам рядовому юзеру — временно прекратить пользование ущербной программой, но и это не всегда возможно, поскольку уязвимости часто прячутся в ядре операционной системы. Через такие «дыры» проникали на компьютеры, в частности, уже упомянутый Stuxnet и его наследник Duqu (см. «Вирус Duqu и государственный терроризм»).
Прибавьте к этому многочисленные запреты на изучение внутреннего устройства проприетарных программ, и вы поймёте, почему профессионально поиском уязвимостей занимается только киберкриминал, тогда как софтверная индустрия довольствуется случайными находками энтузиастов. Впрочем, кое-что всё же изменилось в лучшую сторону, если сравнивать с началом нулевых, когда ZDV искали только ради поднятия престижа (вспомните знаменитого в те времена бездомного белого хакера Адриана Ламо: см. «Шутки в сторону» и «Последние дни WikiLeaks»). Сегодня первооткрыватели уязвимостей могут рассчитывать на весомый денежный гонорар.
Производителю всегда дешевле выкупить информацию об уязвимости, нежели пускать дело на самотёк. Ведь каждая новая ZDV бьёт софтверных вендоров не только напрямую (затраты на разработку и выпуск патчей и т.п.), но и косвенно, оборачиваясь потерей престижа. Apple отобрала лицензию у Миллера ещё и потому, что он дал повод публике усомниться в идеальной защищённости iOS. Так почему не предложить исследователям премию за ценные находки? Такой — белый — рынок ZDV в настоящее время в общих чертах уже оформился и цены варьируются от нескольких сотен до нескольких тысяч долларов за действительно опасную уязвимость в популярных программных продуктах. Но эксперты уверены, что параллельно существует и чёрный рынок, сформированный криминальными и государственными структурами, готовыми платить на порядок больше.
Таким образом уязвимости в программах, всегда оценивавшиеся только по причинённому ущербу, обзавелись подобием рыночной цены. Теперь предстоит сделать следующий шаг: превратить рынок в конкурентный, привести на него максимальное количество участников.
Сегодня денежное вознаграждение за ZDV предлагают от силы два десятка производителей, следствием чего, по-видимому, и является десятикратный разрыв в величине предлагаемых сумм с полулегальным чёрным рынком. Ситуация может измениться, когда специалисты по ИТ-безопасности возьмут на себя роль посредников между разработчиками программ и вольными хакерами, ищущими ошибки (так уже поступила, к примеру, Secunia).
Пора, наконец, признать, что ни призывы работать лучше или думать иначе, ни морализаторство, ни свободные принципы разработки софта не в состоянии изжить проблему уязвимостей в массовом программном обеспечении. Только сделав уязвимости нулевого дня предметом торга, цифровым товаром за который назначена справедливая цена, можно надеяться, что информация о свежих ZDV будет передаваться разработчикам программ и учитываться максимально быстро.
А до тех пор истории, подобные случившейся с BIND, будут повторяться снова и снова.