Захист від 0-day в Internet Explorer, Безпека ПЗ, Security & Hack, статті

Як простій людині захистити себе?


Якщо ви не комп’ютерний гуру і не читаєте перед сном SecurityLab, можете сміливо виконати інструкції з цього розділу і спокійно працювати. Для виконання одного із запропонованих рішень необхідно завантажити файл solutions.zip та / або oledb32.zip і слідувати нижчеперелічених інструкцій.


Для швидкого вирішення проблеми виконайте інструкції, описані в рішенні # 4.


Інформація про вразливість


Уразливість “нульового дня” була виявлена ​​в Internet Explorer 7, і, за результатами досліджень присутня в інших версіях Internet Explorer. Зловмисник може виконати довільний код у вразливою системі і встановити шкідливі програми на комп’ютер при перегляді Web-сайту.


Уразливість існує через пошкодження пам’яті при обробці зв’язування DHTML даних (DHTML Data Binding) в Internet Explorer. Уразливість поширюється на всі підтримувані в даний час версії Internet Explorer. Спеціально сформований HTML код, який використовує цю вразливість, призводить до того, що IE створює масив з об’єкта зв’язування даних. Шкідливий код призводить до того, що IE посилається на об’єкт, який був раніше инициализирован. Цей клас уразливості експлуатується шляхом підготовки динамічної пам’яті, яка містить контрольовані зловмисником дані (“heap spray”), до разименованія некоректного покажчика.


В даний час уразливість активно використовується для установки шкідливого програмного забезпечення через зламані сайти (посилання).


Яке тимчасове рішення слід використовувати?


Зараз повідомлення Microsoft містить 8 різних варіантів блокування уразливості. Microsoft додала додаткові способи вирішення проблеми в останній версії повідомлення, щоб дати користувачам більше можливостей для усунення вразливості. Тільки в IE8 існує можливість повністю відключити механізм зв’язування даних. Якщо ви не використовуєте IE8, вам знадобиться наступне:



  1. заблокувати доступ до уразливому коду в бібліотеці MSHTML.dll через OLEDB, що дозволяє блокувати поточні вектори використання уразливості

  2. застосувати найбезпечнішу конфігурацію, що блокує проблемний код проти цієї уразливості

Опціональний варіант (C) може застосовуватися для ускладнення контролю зловмисника над динамічною пам’яттю.























































Тимчасове рішення

A

B

C

1. Установити зони безпеки Internet і Local в значення “High”. Це дозволить виводити вікно із запитом на виконання / заборона AсtiveX компонентів і Active Scripting в цих зонах для кожного сайту.

 

X

X

2. Налаштуйте Internet Explorer на запитував перед запуском Active Scripting або вимкніть Active Scripting в зонах безпеки Internet і Local.

 

X

X

3. Заборонити Internet Explorerіспользовать OLEDB32.dll за допомогою Integrity Level ACL

X

 

 

4. Заборонити функціонал Row Position в OLEDB32.dll

X

 

 

5. Скасувати реєстрацію OLEDB32.DLL

X

 

 

6. Використовувати ACL для заборони OLEDB32.DLL

X

 

 

7. Заборонити функціонал XML Island

X

 

 

8. Включити DEP для Internet Explorer на Windows Vista і Windows Server 2008

 

 

X

9. Відключити підтримку зв’язування даних в Internet Explorer 8

X

X

 


Застосування тимчасового рішення з колонки (A) допоможе захиститися від справжніх атак. Для повноцінного захисту від вразливості ми також рекомендує застосувати рішення з колонки (B).


Навіщо перераховувати 4 види опцій для захисту від вектора атаки, використовує провайдер OLEDB даних?


Давайте коротко обговоримо тимчасові рішення 3-5, кожен з яких описує спосіб захисту від вектора атаки на провайдер OLEDB.


5 & ​​6-скасувати реєстрацію або відключити OLEDB 32.DLL через ACL (списки контролю доступу)


Microsoft перерахувала ці рішення у вчорашньому повідомленні, і вони залишаються дійсними. У цього рішення є побічна дія. Всі додатки, що використовують будь-яку частину бібліотеки, не будуть функціонувати.


Рішення № 5


Скасування реєстрації OLEDB32.DLL


Для 32-бітної системи (Windows 2000, XP, 2003, Vista, 2008) виконайте команду:


Regsvr32.exe /u “%ProgramFiles%Common FilesSystemOle DBoledb32.dll”


Для 64-бітної системи (Windows 2000, XP, 2003, Vista, 2008) виконайте команди:


Regsvr32.exe /u “%ProgramFiles%Common FilesSystemOle DBoledb32.dll”
Regsvr32.exe /u “%ProgramFiles(x86)%Common FilesSystemOle DBoledb32.dll”


Повторна реєстрація (скасування тимчасового рішення) OLEDB32.DLL в системі


Для 32-бітових систем виконайте команду:


Regsvr32.exe “%ProgramFiles%Common FilesSystemOle DBoledb32.dll”


Для 64-бітових систем виконайте команди:


Regsvr32.exe “%ProgramFiles%Common FilesSystemOle DBoledb32.dll”
Regsvr32.exe “%ProgramFiles(x86)%Common FilesSystemOle DBoledb32.dll”


Рішення # 6


Відключення OLEDB 32.DLL за допомогою ACL


Скачайте архів solutions.zip і виконайте відповідний файл:


Для 32-бітних ОС Windows 2000, XP, 2003


DisableACL-32bit.cmd


Для 64-бітних Windows XP і 2003


DisableACL-64bit.cmd


Для 32-бітних Windows Vista і Windows 2008


DisableACL-Vista-32bit.cmd


Для 64-бітних Windows Vista і Windows 2008


DisableACL-Vista-64bit.cmd


Для скасування тимчасового рішення з відключення OLEDB32.DLL за допомогою ACL і виконайте відповідний файл:


Для 32-бітних ОС Windows 2000, XP, 2003


EnableACL -32bit.cmd


Для 64-бітних Windows XP і 2003


EnableACL-64bit.cmd


Для 32-бітних Windows Vista і Windows 2008


EnableACL-Vista-32bit.cmd


Для 64-бітних Windows Vista і Windows 2008


EnableACL-Vista-64bit.cmd



4 – Відключити функціонал Row Position в OLEDB 32.dll


За нашими даними, відключення одного COM об’єкта OLEDB32 достатньо для блокування доступу до вразливою частини коду. Хоча ми і вказуємо рішення 5 і 6 в повідомленні, але рішення # 4 більш переважно, тому що також ефективно як рішення 5 і 6, але менш помітно.


Для відключення COM об’єкта OLEDB32 необхідно виконати наступний reg файл:


DisableRowPosition.reg


Для скасування тимчасового рішення виконайте файл:


UndoDisableRowPosition.reg


3 – Заборонити Internet Explorer використовувати OLEDB 32.dll за допомогою Integrity Level ACL


Це ще одне рішення для блокування доступу до провайдера OLEDB даних. Великий плюс цього рішення – доступ блокується тільки для Internet Explorer і не торкнеться інші додатки. Застосування цього рішення можливо тільки, коли включені UAC і IE Protected Mode (по замовчуванню на Windows Vista і Windows Server 2008). Ми більш детально опишемо це рішення, тому що воно досить хороше.


Подробиці рішення з IntegrityLevelACL


Увага, це рішення стосується тільки для ОС Windows Vista і вище


Для впровадження цього типу захисту, наше рішення базується на тому факті, що за замовчуванням Internet Explorer запускається з включеним Protected Mode. Це означає, що процес iexplore.exe запускається на низькому рівні цілісності. Подробиці роботи цього режиму можна знайти за адресою: http://msdn.microsoft.com/en-us/library/bb250462.aspx. Як написано в статті, механізм цілісності дозволяє заблокувати процесу можливість запису даних в захищені об’єкти (наприклад, файли), що мають більш високий рівень цілісності. Але в статті не вказується, що також можливо заборонити процесу читати і виконувати захищені об’єкти з більш високим рівнем цілісності. Це здійснюється шляхом застосування спеціального запису ACL для об’єкта. Нижче, ми розповімо, як це здійснити для OLEDB32.DLL.


Перед реалізацією рішення необхідно створити тимчасову директорію і скопіювати в неї inf файл з архіву oledb32.zip. Для 32-бітної системи використовуйте BlockAccess_x86.inf, для 64-бітної – BlockAccess_x64.inf. Запустіть командний рядок з привілеями адміністратора, перейдіть в створену вами директорію і виконайте наступну команду:


> SecEdit / configure / db BlockAccess.sdb / cfg <файл.inf>


При успішному виконанні команди буде виданий наступний результат:

    The task has completed successfully.
    See log %windir%securitylogsscesrv.log for detail info.

SecEdit також створить файл BlockAccess.sdb в поточній директорії. Його можна буде видалити разом з inf файлом.


Перевірка працездатності тимчасового рішення


Для 32-бітної системи досить виконати команду:


icacls “%ProgramFiles%Common FilesSystemOle DBoledb32.dll”


Для 64-бітної системи буде потрібно виконати команду icacls двічі:


icacls “%ProgramFiles%Common FilesSystemOle DBoledb32.dll”
icacls “%ProgramFiles(x86)%Common FilesSystemOle DBoledb32.dll”


Наявність наступного рядка у висновку команди icacls свідчить про успішне застосування тимчасового рішення:


Mandatory LabelMedium Mandatory Level:(NW,NR,NX)


Значення NR і NX свідчать про успішне виконання команди, відсутність рядка або одного з значень (NR або NX) говорить про неуспішне виконаної операції.


Відключення тимчасового рішення


Для скасування тимчасового рішення необхідно скопіювати з архіву inf файл (для 32-бітної системи UnblockAccess_x86.inf, і UnblockAccess_x64.inf для 64-бітної), і виконати команду:


SecEdit / configure / db UnblockAccess.sdb / cfg <файл.inf>

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*