InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте



Автопистон krepauto.ru/katalog/plastikoviy-krepezh/.



Размещение сквозной ссылки

 

Ошибка переполнения буфера в MS Outlook


Subfire, HackZone


Никто не застрахован от атаки и не может быть абсолютно надежной защиты. Это лишний раз доказывает обнаружение новой дыры в распространенном пакете для работы с электронной почтой Microsoft Outlook.

Как это происходит


Что из себя представляет ошибка переполнения буфера? Для начала поясним значение слова "буфер", так как, возможно, люди не связанные с программированием не понимают правильного значения этого термина. Буфер - область памяти(хранения) в пределах программы, хранилище информации для операций ввода-вывода или специальных обработок информации. Если давать более точное определение, то

БУФЕР [buffer]


Рабочая область памяти при пересылке данных; область основной памяти, предназначенная для временного хранения данных при выполнении одной операции обмена с целью согласования скорости обмена между устройствами ввода-вывода и основной памятью.

Соответственно буфер, о котором мы говорим в данном случае, принадлежит программе - MS Outlook и располагается в ее области памяти.

Схематично это можно представить в таком виде:

Естественно, что буфер имеет какую-то конечную длину. Перед попыткой записи в буфер важно гарантировать, что данные фактически впишутся в буфер. В нормальном случае, при переполнении буфера должна срабатывать некая процедура обработки переполнения, однако в нашем случае этого нет, и при записи в буфер блока, длина которого превышает N, информация из этого блока попадает в область тела программы. Соответственно имеет место неконтролируемый (непроверяемый) буфер (unchecked buffer):

Таким образом, часть буфера, попав в тело программы, становится как бы частью программы, то есть может быть выполнена. Соответственно, если знать об этой ошибке и знать размер буфера, то можно послать в буфер блок таким образом, что в тело программы попадет часть исполняемого кода вируса, трояна и т. д.

А что мы имеем?


Уязвимость MS Outlook заключается в том, компонент, используемый и программой содержит непроверяемый буфер в модуле, который интерпретирует поля заголовка (header) электронная почты, когда некоторые протоколы почта используют, чтобы загрузить почту из сервера почты. Это позволяет хакеру посылать такое письмо, что, когда оно загрузится с сервера, начнет выполнятся некоторый код на компьютере получателя. Эту ошибку обнаружила одна Аргентинская фирма, занимающаяся компьютерной безопасностью.

Серверы Почты и клиенты нуждаются в информации, которая сообщает им, как обработать приходящие и исходящие сообщения. Эта информация содержится в полях заголовка письма. Полях заголовка почты включают адреса отправителя и получателя, время, в которое почта была выслана, и имя сервера почты, который получил почту.

Ошибка возникает при обработке поля имени временной зоны в модуле inetcomm.dll. При слишком длинном поле времени, вроде
Date: 14:55:43 +0300XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
возникает переполнение буфера с записью кода в тело программы. Этот код (программа) может проделать на компьютере все, что может сделать текущий зарегистрированный в системе пользователь. Т.е. возможно заражение компьютера вирусом, трояном, уничтожение и изменение данных, и даже вплоть до форматирования винчестера.

Особая опасность в том, что уязвимость имеет место в момент загрузки сообщения с сервера, т.е. даже до появления его в папке Входящие (Inbox).

Т.е. даже если в заголовке не содержится никакого кода, а просто набор символов, программа зависнет, и придется делать или Kill Process или полный Reset. Но письмо все еще в почтовом ящике, а не у вас на компе, соответственно при попытке снова получить почту происходит второй дубль. И вам приходится удалять письмо другими средствами или же обращаться к админу вашего почтового сервера.

Данная проблема никак не сказывается на работу на Mail-серверов.

Какие версии уязвимы


Вы неуязвимы, если:

  • Вы выполнили, default установку Internet Explorer 5.01 Service Pack 1.
  • Вы выполнили default инсталляцию Internet Explorer 5.5 на вашей системе, и ваша система - не Windows 2000 (в IE 5.5, входящем в поставку W2K эта проблема еще не была устранена).
  • Вы установили patch MS00-045 или MS00-046.

Если ни одно из вышеперечисленного неверно, и вы пользуетесь программами MS Outlook Express или MS Outlook, то ваша система уязвима для атаки на переполнение и я настоятельно рекомендую поставить патч MS00-046 или установить MS Outlook SP1.

Новая дыра в Netscape Navigator


Много людей кричат про то, что MS Explorer медленный, неудобный и дырявый, а вот Netscape !!!!!!!

Ну что же, по скорости не вижу разницы (по крайней мере если брать последние версии обоих продуктов). Интерфейс Netscap'а наводит на меня уныние. А вот про недырявость его - так это сказки. Дыры есть и в нем, и довольно солидные.

Хотелось бы, чтобы у вас не создалось впечатление, что я хочу обругать Netscape, и разрекламировать Explorer. В конце концов, плюсы и минусы есть у обоих продуктов, и каждый из них имеет право на существование и у него есть куча поклонников. И вообще спорить о вкусах это пустой. Но так или иначе, представляю вашему вниманию очередную дыру.

Детали уязвимости


JPEG потоки формата обмена состоят из упорядоченной совокупности маркеров, параметров, и entropy-coded сегмента данных. Большинство маркеров начинаются в marker segments, которые состоят из маркера, сопровождаемого последовательностью связанных параметров. Сегменты маркера имеют переменную длину, с первым параметром, являющимся длиной (первые два байта).

Кодируемая длина непосредственно включена в параметр длины.

Таким образом, длины меньшее чем 2 всегда недопустимы.

Netscape броузер использует библиотеку декодера Independent JPEG Group's (Независимой JPEG Группы) для JPEG File Interchange Format (JFIF) файлов. Однако, они устанавливают специальный обработчик для обработки COM (комментария) маркер, который хранит комментарий в памяти. К сожалению, новый обработчик не проверяет, является ли область длины допустимой, и вычитает 2 от кодируемой длины, чтобы вычислить длину комментария. Далее выделяет память для комментария (с одним дополнительным байтом для его NUL завершения) и идет в цикл, чтобы читать комментарий в память.

Устанавливая область длины в 1, можно гарантировать, что запрос распределения памяти (0 байтов) будет выполнен. Поскольку расчетная длина комментария объявлена без знака, это будет скорее огромное положительное значение, чем маленькое отрицательное, так что цикл не будет заканчиваться до конца JPEG потока. JPEG поток будет читаться в кучу, возможно записываясь поверх других динамически распределенных буферов Netscape. Эксплуатация этой уязвимости в выполнение произвольного кода нетривиальна, но возможна на некоторых платформах.

Является ли это недостатком в проверке ошибок кода? Да, это ошибка программиста.

Проблема связана с выбором языка программирования, который не предлагает проверку переполнения и с компиляторами, которые традиционно не предлагают связанную проверку? Частично.

Данная дыра имеется в продуктах Netscape , с версии 3.0 и до 4.73. В Netscape 4.74 эта проблема устранена. Ошибка присутствует в броузере и в пакете электронной почте, соответственно источником потенциальной опасности являются как письма, новости так и html документы.

Вскоре появится больше информации на http://www.nhp.newmail.ru/

Subfire//[NHP]
subfire@mailru.com
nhp_2000@mail.ru


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua