Все новости от 18 октября 2002 г.
ZIP — и вас сцапали
![](/i/listhr.gif)
Вам, наверное, кажется, что то антивирусное ПО, на которое вы положились, способно вылавливать искаженные ZIP-файлы, вложенные в e-mail. Не тут то было. Этот формат, в котором недавно обнаружен опасный подводный камень, шлет вам большой привет.
Кому ни расскажешь об этой неприятной особенности имен ZIP-файлов, так и ждешь, что с его уст вот-вот сорвется что-нибудь непристойное. Почему? Да потому что при помощи таких файлов с очень длинными именами очень легко обмануть любые антивирусные сканеры. А код, который предоставляет такую возможность, скопирован и присвоен чуть ли каждой крупной софтверной компанией на Земле — не говоря уже о том, что он широко используется в системах обновления средств защиты информации.
Эту уязвимость обнаружили Марк Тесла (Mark Tesla) и Чад Лодер (Chad Loder) из Rapid7, компании, создавшей ZIP-файлы, которые проверяют, насколько успешно разнообразные программные продукты справляются с длинными именами файлов, допускаемыми спецификацией ZIP. Результаты оказались неутешительными. «Вжик! Спасибо за участие в игре Security Bingo. На этот раз не повезло компаниям Microsoft, Apple и IBM». Все они, как и многие другие, выпускают ПО, которое можно взломать при помощи ZIP-файлов. Все программисты допускают одну и ту же ошибку, игнорируя принцип работы формата ZIP, когда используют библиотеки и компоненты, воспринимающие имена файлов, не превышающие по длине максимально допустимую длину имен в операционной системе (для Windows, например, это 512 байт), хотя в спецификации ZIP предел составляет 64К.
Больше всего тревожит всеобщая уязвимость к e-mail-вирусам. Все проверенные Rapid7 антивирусные шлюзы электронной почты пропустили пробный вирус, помещенный в ZIP-файл с длинным именем, — сканеры вылавливают его лишь в том случае, если он находится в «стандартном» ZIP-файле с коротким именем.
Как ни странно, если сканерам не удается просканировать файл, они не считают его опасным, а помечают как проверенный и пропускают! Так что пользователь полагает, что шлюз просканировал файл, и, не колеблясь, его открывает.
Проблема относится не только к операционным системам и антивирусному ПО, а ко всему на свете. ZIP с длинным именем позволяет обойти защиту самых разных приложений, таких как Lotus Notes. Microsoft, которая очень неохотно называет поставщиков используемых ею компонентов, в данном случае может раскрыть свои карты, так как программисты Inner Media с гордостью сообщили, что Microsoft употребила их продукт DynaZip. Аналогично, Apple может свалить все на Alladin Systems. Тем не менее решать проблему все же придется Microsoft и Apple.
Я не собираюсь катить бочку на DynaZip и Alladin. Другие производители коммерческих библиотек, такие как Verity, не менее уязвимы, так же, как и инструменты open-source. Никто не застрахован от ошибок, и это самый наглядный тому пример. Игнорирование имен файлов, превышающих максимально допустимую в ОС длину, даже если формат этих файлов предусматривает более длинные имена, стало, похоже, нормой. Программисты IBM, например, взяли для Notes надежную ZIP-библиотеку и, тем не менее, напоролись на управление именами файлов.
Хуже всего то, что этот баг представляет собой довольно фундаментальную ошибку — усугубляемую многократным использованием вечно спешащими программистами кода ZIP-библиотек как «черного ящика». («Возьмите вот эту ZIP-библиотеку. Не думайте о том, как она работает: утром код должен быть у меня на столе».)
Болезненный урок уже был, но усваивается он медленно. Проблема — двойное выделение высвобождающейся памяти — часто служит свидетельством другой не так давно обнаруженной ошибки компрессии в open-source библиотеке zlib, концепции которой позаимствовали многочисленные пакеты ПО closed-source и код которой многократно использовался в других программах. Исправить эту ошибку в оригинальном исходном коде было легко, но поставщикам коммерческих продуктов пришлось изрядно попотеть. Компрессия в формате ZIP тоже применяется во многих коммерческих пакетах. Теперь придется выяснять, кто какие библиотеки использует и кто допустил подобную ошибку в собственном коде. Чтобы все это вычистить, потребуется время.
Но больше всего меня тревожат сервисы обновления системного ПО, антивирусных пакетов, систем обнаружения проникновений, брандмауэров и других важных для инфраструктуры систем, в каждой из которых применяются ZIP-архивы. Некоторые бесцеремонные сервисы автоматически, без вмешательства человека, устанавливают и разархивируют ZIP-файлы, поступившие из службы обновления по сети. Мне кажется, несколько крупных поставщиков должны немедленно предупредить пользователей и вплотную заняться этой проблемой.
Я надеюсь, что новость окажет двоякое влияние. Для производителей ПО самое время еще раз проанализировать код и найти уязвимые библиотеки, предложив пользователям обновления. А те, в свою очередь, должны побыстрее взять этот обезвреженный код и установить его на свои рабочие станции и серверы.
Мораль этой истории стара: особое тщание при разработке кода окупится сторицей и поможет избежать крупных потерь впоследствии. Этой очередной разновидности ошибок в ZIP-файлах, к сожалению, суждено стать наглядным воплощением данной истины.
Предыдущие публикации:
В продолжение темы:
![](/i/noavatar.gif) | glassy 23 Oct 2002 7:48 AM |
Комментарии? |
|
![](/i/noavatar.gif) | Bosch - bosch pisem.net 23 Oct 2002 9:14 AM |
А чего-то нет комментариев. Наверное потому, что роздали "всем сестрАм по серьгАм". Кроме Микрософта досталось и эпплам и опен-сурсу. Кто же полезет в такую тему? =) |
|
![](/i/noavatar.gif) | glassy 23 Oct 2002 4:03 PM |
Можно начать с того, что в лине tar.gz да tar.bz2, зипами не особо пахнет :) А вот мелкософтовцы опять продули, ламеры :) |
|
![](/i/noavatar.gif) | glassy 25 Oct 2002 7:26 AM |
2АТ: а смысл? |
|
![](/i/noavatar.gif) | DemonZla 25 Oct 2002 9:00 AM |
Пользуйтесь люди RARом... и всё вам будет.... |
|
![](/i/noavatar.gif) | glassy 25 Oct 2002 11:58 AM |
таром, таром :) |
|
|