среда, 20 января 2010 г.

Подробнее об уязвимости CVE-2010-0249 (codname: "Aurora")

Большой резонанс в СМИ вызвала уязвимость CVE-2010-0249, антивирусные компании не перестают смаковать факты об этом инциденте. Но на самом деле так ли опасна эта уязвимость?
Ведь атака heap spray, которая осуществляется в рамках обнаруженных боевых эксплойтов, не может корректно отработать при включенном DEP на IE7 и IE8. По умолчанию DEP активирован на:
· Internet Explorer 8 на Windows XP Service Pack 3
· Internet Explorer 8 на Windows Vista Service Pack 1 и выше
· Internet Explorer 8 на Windows Server 2008
· Internet Explorer 8 на Windows 7
Таким образом количество потенциально возможных жертв сильно сокращается, даже если они перейдут по вредоносной ссылке, то не факт, что эксплойт отработает как надо.
Судя по статистике посещений сервиса Яндекс.Метрика пользователи с IE этот блог не посещают, так что если вы читаете это сообщение можно считать, что вы защищены :)


Суть уязвимости CVE-2010-0249 заключается в неправильной обработки памяти в библиотеке mshtml.dll, а точнее там осталась "подвешенной" ссылка на объект. Злоумышленник может используя JS получить доступ к этому участку памяти следующим образом:
- При помощи вызова document.CreateEventObject() мы получаем доступ к уязвимому объекту
- После этого вызываем document.getElementById(), что убить в памяти бажный объект, но JS-engine от MS все еще дает возможность получить доступ к освобожденной памяти, пока она не занята
Эксплуатировать уязвимость получается из-за доступа к памяти srcElement, при помощи метода CEventObj::GenericGetElement из библиотеки mshtml.dll, которая пытается получить доступ к зачищенному объекту при помощи CElement:: GetDocPtr.

В сплойте это выглядит собственно так:
function ev1(evt)
{
event_obj = document.createEventObject(evt);
document.getElementById("sp1").innerHTML = "";
window.setInterval(ev2, 1);
}
Во всем виновато обращение к изображению:
id="sp1"
src="aurora.gif" onload="ev1(event)"

Посмотреть на эксплойт на питоне можно здесь

Update:
Virustotal показывает, что спустя неделю еще не все обнаруживают этот сплойт.
Кому интересно посмотреть на боевой, то он пока лежит здесь:
hxxp://xx222.8866.org:2988/dz/ie.html (exploit)
hxxp://xx222.8866.org:2988/dz/what.jpg (shellcode)

Update2:
Стало известно о появление переработанного эксплойта, умеющего обходить DEP на XP SP3 и успешно атаковать пользователей с IE 7/8. Но все же DEP+ASLR, пока еще являются серьезным препятствием.