X64: інтернет по вищому розряду?, Безпека ПЗ, Security & Hack, статті

Випустивши дві версії операційної системи Windows для архітектури x64 (іноді її також називають “AMD64”), Microsoft відкрила всім бажаючим шлях в світ недорогих 64-розрядних обчислювальних систем. У 2005 році на конференції, організованій журналом Virus Bulletin, я представив статтю про архітектуру x64, в якій йшлося про те, як з нею взаємодіють відомі на той момент 32-розрядні віруси і руткіти.


Після презентації мені задали з аудиторії кілька цікавих питань. Ймовірно, найцікавіше запитання було поставлене фахівцем з Європейського дослідницького центру компанії Symantec. Він стосувався роботи Internet Explorer (IE) у системі Windows x64 і того, як об’єкти ActiveX і BHO (Browser Helper Objects), до сих пір колишні виключно 32-розрядними, працюють (або не працюють) в середовищі Windows x64. Це важливо передусім тому, що численні програми класів spyware і adware потрапляють на комп’ютери користувачів з інтернету і встановлюються на них, використовуючи уразливості в Internet Explorer, за допомогою технології ActiveX або Java-додатків.


Мета цієї статті-дати відповідь на це питання.


Знайомтеся: Internet Explorer x64


Оскільки всі системні програми в Windows x64 – це 64-розрядні PE-файли, можна припустити, що Internet Explorer також був скомпільований як 64-розрядний додаток Windows (тобто native application). Наше припущення виявилося правильним: 64-розрядна версія Internet Explorer (версія 6.0.3790) входить до складу новітнього релізу Windows XP для платформи x64. Її діалог “About” показаний на рис. 1:



Рис. 1: 64-розрядна версія Internet Explorer.

Як це не дивно, в меню Start доступна не тільки 64-розрядна, але і 32-розрядна версія Internet Explorer (див. рис. 2). При запуску 32-розрядної версії IE виглядає точно так само, як її 64-розрядний близнюк, проте, щоб зрозуміти, що ми маємо справу з 32-розрядним процесом достатньо подивитися на “Диспетчер завдань”.



Рис. 2: 32-розрядна версія того ж продукту доступна з меню “Start”.

Виходить, розробники Windows вирішили дати користувачам можливість самостійно вибрати, якою версією Internet Explorer користуватися. На перший погляд такий підхід може здатися дивним, але в його користь є один прекрасний аргумент – сумісність.


В системі Windows x64 64-розрядні додатки можуть використовувати взаємодія процесів (IPC) для звернення до 32-розрядному коду, точно так само як в 32-розрядних версіях Windows 32-розрядні програми використовують шлюзування (thunking) для звернення до 16-розрядним бібліотекам DLL. Проте звернення 64-розрядних додатків до 32-розрядному коду пов’язане з певними проблемами, основні з яких – швидкість і безпеку.


Втім, теоретично 64-розрядна версія Internet Explorer все ж могла б використовувати 32-розрядні об’єкти ActiveX і плагіни. Для чого ж тоді Microsoft включила 32-розрядну версію Internet Explorer до складу Windows XP x64?


Однією з ймовірних причин такого рішення є суттєва технічна складність створення такого механізму: щоб змусити 32-розрядні об’єкти ActiveX працювати в 64-розрядному Internet Explorer, IE довелося б відкривати 32-розрядну віртуальну машину, завантажувати в ній 32-розрядний COM-об’єкт і взаємодіяти з ним. Однак для такої великої компанії, як Microsoft, Це, звичайно, не могло бути серйозною перешкодою, тому нам видається більш вірогідним інше пояснення.


Проблема полягає в тому, що дозвіл на використання 32-розрядних об’єктів ActiveX в 64-bit версії Internet Explorer відкриває двері численним загрозам безпеки, багато років залишаються лихом інтернету. Воно також вимагатиме створення спеціального шлюзу додатків – 64-розрядної оболонки для об’єктів ActiveX, що зменшує дистанцію між 64 – і 32-розрядними світами в Windows x64. Це важливо, наприклад, тому, що 64-розрядні і 32-розрядні програми “бачать” різні версії реєстру, можуть мати різні настройки і, відповідно, по-різному себе вести.


Незалежно від того, вірно перше, друге або ще якесь пояснення, в Windows x64 є дві версії Internet Explorer. Розглянемо, яким чином вони працюють з елементами ActiveX.


Технологія ActiveX


ActiveX – це загальна назва, що використовується для позначення набору технологій, розроблених для забезпечення обміну інформацією між додатками. ActiveX – технологія споріднена COM і OLE, але найчастіше під ActiveX розуміють “елементи управління ActiveX”. В даному випадку мова йде про технології, розрахованої на використання в браузері.


Багато років тому, коли стало можливе використання ActiveX в Internet Explorer, вважалася, що ця технологія безпосередньо конкурує з Java. Проте жоден з наявних на ринку браузерів окрім майкрософтовського Internet Explorer її не підтримував. Один з головних аргументів проти ActiveX полягав у тому, що ця технологія була призначена тільки для архітектури x86, і використовувати її на інших процесорах, таких як PowerPC або Sparc було дуже складно. Через це можливості компаній, які писали багатоплатформні програми, були обмежені використанням майкрософтовського браузера, причому тільки на Intel-сумісних персональних комп’ютерах.


У результаті Microsoft потрапила в нею ж розставлену пастку, оскільки використання Internet Explorer не тотожне наявності середовища, що підтримує ActiveX! Наприклад, Internet Explorer для MacOS (остання версія: 5.2.3), звичайно ж, нездатна завантажувати і виконувати елементи ActiveX. У той час як Java дозволяла використовувати для виконання додатків різноманітні операційні системи та варіанти апаратної архітектури, ActiveX обмежувала можливості виконання коду комп’ютерами з 32-розрядними процесорами Intel x86 з операційною системою Windows.


Тепер же, з появою Windows x64 розробникам ActiveX доведеться працювати ще з однією платформою – елементами управління ActiveX для 64-розрядної версії Internet Explorer.


Особливості роботи 32-розрядної і 64-розрядної версії Internet Explorer в Windows x64


У Windows x64 64-розрядна версія програми знаходиться в папці Program Files, окремо від 32-розрядної версії програми. Вона підтримує використання плагінів і, що дивно, здатна завантажувати і виконувати 64-розрядні елементи керування ActiveX.


Цікаво, що в більшості випадків за замовчуванням в Windows x64 використовується 32-розрядна версія Internet Explorer. Зокрема, 32-розрядна версія IE викликається з панелі швидкого запуску, при запуску утиліти оновлення Windows в меню Start і ярликом IE на робочому столі. При цьому якщо набрати адресу в адресному рядку Windows Explorer (який є 64-розрядним додатком), то відповідна веб-сторінка буде відкрита в 64-розрядної версії браузера.


Цікаво також поведінка утиліти Windows Update під Windows x64. Як згадувалося в попередньому абзаці, пункт Windows Update в меню Start запускає 32-розрядну версію Internet Explorer, яка завантажує всі елементи управління завантаженням оновлень, які становлять 32-розрядні додатки. А от якщо відкрити сторінку Windows Update в 64-розрядної версії Internet Explorer, буде виведено повідомлення, показане на Рис. 3.



Рис. 3. Відкриття веб-сайту Windows Update в 64-розрядної версії Internet Explorer

На жаль, у мене немає під рукою машини з процесором Itanium IA64, щоб перевірити, чи є у програми оновлення Windows розроблений спеціально для IA64 елемент управління ActiveX або ж це 32-розрядна програма, яка запускається в режимі емуляції. А отримати таку інформацію, звичайно, було б непогано.


Ще одна особливість роботи 32-розрядної і 64-розрядної версії Internet Explorer під Windows x64 полягає в тому, що обидві версії використовують одні й ті ж папки Temporary Internet Files (за замовчуванням Documents and Settings \% Username% Local SettingsTemporary Internet Files), History та Favorites.


Починаючи з версії IE 6 SP2, Microsoft стала використовувати дуже корисну функцію – засіб управління додатковими модулями Internet Explorer (IE Add-ons Manager). Вона доступна через меню Tools: Tools -> Manage Add-ons. Засіб управління додатковими модулями можна використовувати для відключення або підключення елементів управління ActiveX або розширень браузера (Browser Extensions), але, на жаль, деінсталювати їх за допомогою цієї функції неможливо. Засіб управління додатковими модулями спрощує для користувача отримання інформації про використовувані розширеннях Internet Explorer, надаючи також деякі можливості управління ними.


64-розрядні плагіни для Internet Explorer


Жодна з двох версій Internet Explorer, наявних в Windows x64, не підтримує Java за замовчуванням, тому користувачеві доведеться завантажити і встановити підтримку Java окремо для кожної з версій браузера. Для 32-розрядної версії, звичайно, можна встановити останню версію середовища виконання Java від Sun (J2SE Runtime Environment 5.0 Update 5), однак на сайті Sun ви не знайдете інформації про підтримку Windows для платформи AMD64. У попередньому оновленні (Update 4), яке можна отримати від Sun, є версія J2SE Runtime Environment 5.0, що підтримує AMD64, але під Windows XP x64 вона, судячи з усього, не працює. При установці повідомлення про помилки не виводяться, але в Internet Explorer середу виконання Java відсутня в списку завантажених додаткових модулів, а аплети Java на веб-сторінках не виконуються.


Не існує також і призначених для Windows x64 версій Flash Player від Macromedia, Acrobat Reader від Adobe та підтримки перегляду в браузері роликів у форматі QuickTime від Apple. Більш того, на момент написання цієї статті мені не вдалося знайти взагалі жодного плагіна для 64-розрядної версії Internet Explorer і жодного 64-розрядного елементу управління ActiveX від сторонніх компаній.


Це означає, що (поки що) 64-розрядна версія Internet Explorer не підтримує аплети Java, Shockwave і PDF-файли, що зменшує практичну цінність цієї версії настільки, що для багатьох користувачів вона взагалі втрачає сенс. Якщо, звичайно не вважати, що відсутність підтримки для цих видів контенту – саме те, що їм потрібно.


Атаки шкідливих програм


Завдяки нездатності 64-розрядної версії Internet Explorer звертатися до 32-розрядному коду для платформи x86, можливості для атак з використанням існуючих 32-розрядних шкідливих програм вельми невеликі. На практиці, жоден з використовуваних нині способів доставки шкідливих програм за допомогою веб-сторінок не діє, якщо не вважати програм, що завантажуються і запускаються безпосередньо користувачем.


Це не відноситься до 32-розрядної версії Internet Explorer під Windows x64, що не дивно. Я перевірив кілька шкідливих програм, що завантажуються з різних веб-сторінок, у тому числі (назви дані по класифікації, використовуваної в Лабораторії Касперського):



Всі ці програми завантажуються з веб-сторінок за допомогою тих чи інших експлойтів для Internet Explorer (в Windows XP x64 використана версія IE6 до встановлених оновленнями, і в ній ці експлойти не працюють) та елементів ActiveX. Деякі з них приховують свою присутність в системі за допомогою руткітів режиму ядра для 32-розрядної версії Windows (які не діють в Windows x64), а деякі використовують для цієї мети руткіти користувацького режиму, які в Windows XP x64 ефективні по відношенню до інших 32-розрядним додатків, але не діють по відношенню до 64-розрядним додатків.


Погана новина полягає в тому, що всі ці програми не тільки успішно заражають систему (при тому, що всі вони встановлюються тільки після користувацького підтвердження), а й працюють без проблем під WOW64. Вони переносять перезавантаження, навіть якщо перед нею відключити Browser Helper Objects в Internet Explorer, причому позбутися їх без повноцінного 64-розрядного антивіруса непросто.


На жаль, без 64-розрядного антивіруса (вибір яких на сьогоднішній день дуже обмежений) позбутися 32-розрядного шкідливого ПЗ в системі Windows x64 недосвідченому користувачеві буде непросто. Досвідчений користувач, звичайно, може завершити всі 32-розрядні процеси в диспетчері завдань, а потім за допомогою звичайного 32-розрядного антивіруса вилікувати або видалити всі заражені файли, але через поділ 32-розрядних процесів в Windows x64 32-розрядному антивірусу буде складно видалити деякі з вищезгаданих шкідливих програм, поки вони активні.


Висновки


У складі Windows x64 Microsoft, мабуть, нарешті запропонувала версію Internet Explorer, досить добре захищену від атак сучасного шкідливого ПО, орієнтованого на цей браузер – я, звичайно, маю на увазі 64-розрядну версію Internet Explorer. Біда в тому, що ця захищеність – не наслідок нових досягнень Microsoft в області безпеки, а результат повної відсутності в цій версії браузера підтримки Java, 32-розрядних елементів управління ActiveX, контенту Shockwave і PDF-документів. Через це багато користувачів просто скористаються 32-розрядною версією браузера, яка, як ми бачили, “Підтримує” шкідливе ПЗ в тій же мірі, що і будь-яка інша версія Internet Explorer в 32-розрядної системі Windows XP.


Тим не менш, при наявності своєчасно оновити 64-розрядного антивіруса з активним антивірусним монітором (on-access component) у більшості користувачів не виникне проблем з 32-розрядним шкідливим ПО. Справитися з ним буде навіть простіше завдяки гарному поділу 64-розрядного і 32-розрядного світу в Windows x64. В такому випадку користувачі Windows x64 напевно зіткнуться з меншою кількістю проблем з шкідливими програмами, ніж їхні колеги, які використовують 32-розрядну версію Windows.


Так, звичайно, буде, поки 64-розрядні шкідливі програми не отримають широкого поширення.

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


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

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

Ваш отзыв

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

*

*