Ошибка в библиотеке компрессии данных zlib делает уязвимыми для атак многие системы на базе Linux. 14 марта обнаружилось также, что по крайней мере девять важных приложений Microsoft, в том числе Microsoft Office, Internet Explorer, DirectX, Messenger и Front Page, содержат код, позаимствованный из этой библиотеки, и, следовательно, тоже могут содержать аналогичную дыру.
По словам представителей Microsoft, служба информационной безопасности софтверного гиганта изучает баг zlib, и некоторые приложения Microsoft действительно используют код из этой библиотеки. Однако служба пока не установила, в каких именно приложениях применяется библиотека и делает ли это их уязвимыми.
Библиотека zlib почти десять лет является фундаментальным компонентом ПО open-source и присутствует почти в каждой системе Linux и Unix. Это означает, что обнаруженный в ней так называемый баг "повторного освобождения" делает уязвимыми значительную часть таких систем. Вот и Microsoft, позаимствовав часть этого кода, тоже может оказаться в числе пострадавших.
Члены проекта open-source Gzip опубликовали список, содержащий почти 600 приложений, использующих код zlib. В этом списке девять программ Microsoft: Microsoft DirectX 8, FrontPage, Graphics Device Interface, InstallShield, Internet Explorer, Office, NetShow, Visual Studio и Messenger. Graphics Device Interface нового поколения входит в Windows XP, так что и эта операционная система может оказаться уязвимой.
Программа, при помощи которой выявлялось наличие в приложениях кода zlib, использует три сигнатурные цепочки, присутствующие в этом коде, и еще несколько для углубленного поиска. Она обнаруживала, присутствуют ли в анализируемой программе функции данной библиотеки. Например, Microsoft Direct X содержит 18 сообщений об ошибках, идентичных имеющимся в zlib. "ПО Microsoft затронуто, но это необязательно делает его уязвимым", - говорит Жан-Лу Гайли (Jean-loup Gailly), главный архитектор ПО компании Vision IQ и один из создателей библиотеки zlib. Это зависит от того, как написаны другие библиотеки, с которыми взаимодействует zlib.
По словам аналитика IDC Дэна Кузнецки (Dan Kusnetzky), компании, использующие код, разработанный сообществом open-source, обязательно должны изучать его на наличие подобных уязвимостей. Ошибка "повторного освобождения" библиотеки zlib показывает, что даже хорошо протестированное ПО все же может пасть жертвой скрытых проблем безопасности.
Лицензия, по которой распространяется библиотека zlib, позволяет любой компании использовать код любым способом. В отличие от лицензии GNU General Public License, она не требует, чтобы компания в ответ на это публиковала свой собственный код. И все же инцидент, похоже, доказывает, что Microsoft, которая публично порицает движение open-source, все же включает чужое ПО в свои собственные продукты.
Софтверный гигант не впервые использует код из open-source источников. Некоторые программисты утверждают, что технология GS flag, которую Microsoft добавила в свой новейший компилятор для предотвращения распространенной ошибки "переполнения буфера", на самом деле использует код из проекта open-source StackGuard.
Прошлым летом были обнаружены свидетельства того, что некоторые сетевые утилиты и, возможно, часть стека TCP/IP в операционной системе Windows позаимствованы из FreeBSD. Тео Дераад (Theo de Raadt), основатель и руководитель проекта другого варианта Unix, OpenBSD, отмечает, однако, что бесспорных свидетельств этому нет.
Microsoft никогда не отрицала, что ее программисты могут использовать код open-source, но только не тот, что распространяется по лицензии GNU General Public License, вынуждающей компанию публиковать собственный исходный код. Лицензия, по которой распространяется библиотека zlib, требует только одного: чтобы в программе open-source, если она будет опубликована, присутствовало уведомление об авторском праве. Microsoft, которая редко публикует исходный код, не нужно включать уведомление в свои программы, однако Гайли, создатель zlib, хочет получить от софтверного гиганта дань уважения. "Мне не нравится, что они удалили строку о копирайте zlib из некоторых двоичных версий", - сказал он. Новые версии библиотеки, по его словам, будут, по всей видимости, включать такое требование, сообщает "ZDNet".