Security Lab

Уязвимость в особенности Microsoft C++ против переполнения буфера

Дата публикации:15.02.2002
Всего просмотров:1282
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: Microsoft добавил новую особенность защиты к самому последнему компилятору C++, присутствующую в Visual C++.Net и Visual C++ 7, которая была выпущена 13-ого февраля. Эта особенность защиты, как предполагается, защищает потенциально уязвимый исходный текст автоматически от некоторых форм нападений переполнения буфера. Защита, предоставляемая новой особенностью, позволяет разработчикам продолжать использовать уязвимые строковые функции типа strcpy (), и при этом они будут защищены против некоторых форм разрушения стека. Новая особенность основана на изобретении StackGuard Криспина Коуана и как предполагается, используется при создании стандартного “родного” кода (упомянут как " управляемый код").

Обратите внимание, что новая особенность, как предполагается, защищает любую программу, откомпилированную с "защищенной" особенностью компилятора. Другими словами, идея состоит в том, что использование этой особенности должно помочь разработчикам строить более безопасное программное обеспечение. Однако, в его текущей форме, особенность Microsoft ведет к ложному смыслу защиты, потому что легко может быть обойдена.

Как оказалось, особенность защиты Microsoft самостоятельно уязвима для нападения. Нападающий может нападать против "защищенной" программы, напямую нанося поражение механизму защиты. Этот вид нападения не нов (см, например Phrack 56).

Существует несколько известных подходов, основанных не на StackGuard, которые производитель компилятора может использовать, чтобы нанести поражение нападениям переполнения буфера. Microsoft решил выбрать слабое решение скорее чем более здравое решение. Уязвимость - недостаток уровня дизайна, ведущая к очень серьезному набору потенциальных нападений против кода, откомпилированного с новым транслятором. Транслятор Microsoft таким образом в некотором смысле "поставщик уязвимостей”.

Ссылки: Microsoft Compiler Flaw Technical Note