Поиск по сайту:
Найти



Народные блоги

Добавить ленту статей сайта в свой iGoogle
Последние публикации
майкрософт   віста   перехід на вісту

Про нову систему Віста. Питання безпеки.

Юрій Ващишин | 23.08.2007 14:10

3
Рейтинг
3


Голосов "за"
5

Голосов "против"
2

Обговорення доцільності переходу на вісту абсолютно безпідставно. Неначе у нас є вибір – переходити або не переходити. Такі рішення ухвалюються на високому корпоративному рівні і не нами, а за нас.

Неминучість переходу на вісту в історичній перспективі абсолютно очевидна. Пройде зовсім трохи часу, і Microsoft припинить підтримку XP (підтримка w2k ще не припинена, але легальним шляхом її вже не добути), з'являться програми і устаткування, що працюють тільки на вісті, а сама віста виявиться передвстановленою на мільйонах комп'ютерів. Ми можемо лише затягнути перехід вісту, але запобігти йому не в силах.

ОСНОВНІ ВИЗНАЧНІ ВЛАСТИВОСТІ ВІСТИ

1. Завищені вимоги до устаткування;

2. Оптимізація файлу підкачки (на системах, страждаючих склерозом пам'яті);

3. Оптимізація під багатопроцесорні системи (від 2-ядерних цп і вище);

4. Менша вірогідність втрати даних у разі збоїв або відключення живлення;

5. Новий призначений для користувача інтерфейс з купою спецефектів, реалізований на.NET'і;

6. Відчутні гальма і втрата продуктивності унаслідок двох попередніх пунктів;

7. Переписаний з нуля мережевий стек містить купу дірок, що роблять вісту небезпечноюї;

8. Підтримка нового заліза (зокрема: acpi 2.0, pci express, hybrid-носіїв і т.д.);

9. Підтримка старого заліза і програмного забезпечення значно погіршена.

Microsoft радикально оптимізувала ядро, проте велика частина поліпшень відноситься до багатопроцесорних машин (двохядерні процесори не в рахунок) і менеджера файлу підкачки (при нинішніх цінах на пам'ять згадувати про підкачку просто смішно, маючи всього лише 512 Мбайт на W2K/XP від неї можна повністю відмовитися). Решта механізмів оптимізації проявляє себе лише при роботі з додатками, жадібними до пам'яті, або інтенсивному дисковому введенні/виводі, що типово для серверів, і зовсім нетипово для робочих станцій. Але навіть цей виграш "компенсується" гальмами, породженими посиленим захистом реєстру і файлової системи від ненавмисного руйнування, що знову-таки більше корисно для серверів, чим для робочих станцій.

Платформа.Net, натягнута на ядро:

0 рівень: -РС Hardware

1 рівень: Windows (Windows XP, Windows Server 2003/R2 VISTA/LONGHORN)

2 рівень:.Net 2.0 CLR.NET 2.0 BCL, ASP.NET 2.0, ADO.NET 2.0, WinForms 2.0

3 рівень (NTDLL): WCF (Indigo), WPF (Avalon), WCS (Infocard), WWF (Workflow)

4 рівень:.Net 3.0 Applications, .Net Development Tools

Поверх ядра Microsoft понакладала безліч нових служб, у тому числі і платформу.NET (що представляє по суті той же самий Visual Basic, тільки в іншому вигляді) і "аеродинамічний" інтерфейс з купою спецефектів, що пожирають оперативну пам'ять і процесорні такти в неймовірних кількостях. Тобто, замість обіцяного прискорення, ми отримуємо конкретні гальма.

Гаразд, бог з нею, з продуктивністю. Microsoft вже привчила нас, що кожна новіша версія Windows працює повільніше попередньої і вимагає набагато могутнішого заліза. Основне кредо вісти – це безпека, точніше – повна відсутність такої. Формально, розробники зробили цілий комплекс "протитанкових" мір (тобто мiр, направлених проти тих, хто в танку): рандомізацію адресного простору, контроль цілісності службових структур динамічної пам'яті з шифровкою магічним словом по XOR, ізоляцію нульової сесії від призначених для користувача застосувань, пониження рівня привілеїв деяких мережевих сервісів і т.д., і т.п. (повний перелік міститься в офіційному документі: http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/kernel-en.doc). Але, по-перше, все це вже давно було реалізовано сторонніми розробниками в тому ж захисному комплексі BufferShield, тільки тепер користувач отримує a-la BufferShield в одній коробці з Windows без можливості його відключення (навіть якщо він йому не потрібний), а, по-друге (і це найважливіше!), розробники поховали старий мережевий стек, переписавши його з нуля, і один хвіст знає, скільки нових помилок допустили при цьому.

Корпорація Symantec провела своє власне розслідування (звіт можна знайти на www.symantec.com/avcenter/reference/ATR-VistaAttackSurface.pdf), в результаті якого прийшла до вельми невтішних висновків: якість реалізації далеко від ідеалу і по ступеню захищеності новий мережевий стек значно поступається старому стеку з XP. А тут ще як на гріх у вересні 2006 хакер Johnny Cache відкрив принципово новий тип віддалених атак, заснований на помилках синхронізації потоків і допускає захоплення управління з ядерними привілеями. Загроза розповсюджується на всі комп'ютери, оснащені мережевими пристроями, які оброблюють асинхронні запити (бездротові і ІЧ-Адаптери (інфрачервоні), DSL-модеми, блакитні зуби (Blue Tooth) і т. д.).

Не дивлячись на надані нею дампи пам'яті, які підтверджують успішну дію на регістр EIP, Microsoft ніяк не відреагувала на те, що відбувається, переклавши провину на розробників драйверів, в яких і була виявлена помилка. Адже помилки подібного типу носять повсюдний характер (в даному випадку вони виявилися в драйверах від вельми некволої контори на ім'я Intel), і операційна система не надає ніяких засобів захисту і чи навряд надасть їх надалі, оскільки руйнування даних синхронізації, що відбуваються при "зриві", носять вельми специфічний характер.

Хакерська думка не стоїть на місці, а неухильно рухається вперед. Microsoft же, тим часом, додає у вісту нові методи синхронізації, що спрощують програмування драйверів і що ліквідовують частину проблем, але ні сьогодні, ні завтра писати драйвера спеціально під вісту ніхто не буде (навіть такий гігант, як Intel), оскільки ринкова частка w2k, XP і Server 2003 дуже велика для того, щоб розробник міг використовувати API, присутні в одній лише вісті.

ВЕРСІЇ ВІСТИ

Операційна система Windows NT 6.0 існує в двох версіях, відомих під торговими марками Windows Vista і Windows Server Longhorn, кожна з яких представлена в двох редакціях – під 32-бітова (x86) і 64-бітова (x86-64) платформи. Якщо різниця між сервером і робочою станцією очевидна і не вимагає додаткових коментарів, то переваги і недоліки 64-бітової редакції заслуговують розгорненого пояснення.

Мільйони програм і мегатонни устаткування, що працюють на x86 версії NT, не дозволили Microsoft'у грунтовно перетрусити ядро без втрати зворотної сумісності. І хоча сумісність все-таки постраждала, але все таки не так радикально, як в 64-бітовій версії, спроектованій з чистого листа, не оглядаючись на сумісність, оскільки ні устаткування, ні програмного забезпечення під неї ще не існувало.

Скориставшись "подарунком" від AMD, Microsoft перенесла NT на платформу x86-64, перетворивши систему на справжню в'язницю (хоча реклама запевняє нас, що це – фортеця). Саме у 64-бітовій редакції NT реалізований захист ядерних функцій від перехоплення (без яких немислиме створення якісних антивірусів, брандмауерів і інших програм подібного типу), саме тут цифровий підпис драйверів є обов'язковим, а прикладного програмного забезпечення – бажаною.

Все це зроблено ради двох цілей: монополізації ринку системного програмування в руках Microsoft і позиціонування своєї системи як захищеною від грабежу premium content'а, що дуже подобається Голлівуду і іншим медіа-магнатам. Боротьба з малвар'ю (malware (malicious-logic software) програми, що виконує дії над файлами скритно від користувача, загальне ім'я вірусів) – всього лише прикриття!

Залишається сподіватися, що ринкова частка x86-64 ніколи не виявиться настільки значною, щоб Microsoft змогла поховати 32-версію Windows, позбавивши нас можливості вибору, а вибирати слід саме x86, тим паче, що Intel випустила вдалу лінійку двохядерних процесорів Pentium 4D (втім, на приильників продукції AMD цей заклик не розповсюджується- тобто і на мене).

vista x86-64 – nightmare edition (нічний жах).

У 64-розрядній редакції вісти (що працює на платформі AMD x86-64) з'явилася безліч "поліпшень", відсутніх в 32-бітовій версії. Microsoft повністю переглянула політику безпеки, надійно захистивши ядро від... легальних користувачів системи, у тому числі і адміністраторів, при цьому залишивши достатню кількість лазівок для малварів.

Ось дві ключові технології, що вперше з'явилися ще в XP/Server 2003 SP1, але анонсовані тільки з приходом вісти: контроль цілісності ядра і обов'язкова вимога цифрового підпису для всіх драйверів.

Почнемо з контролю цілісності ядра, – для легітимної взаємодії з яким Microsoft надала безліч документованих (і ще більше недокументованих) API-функцій. Модифікувати ядро, втручаючись в його внутрішні структури, украй небажано. Щонайменша недбалість проектування і/або реалізації веде до нестабільної роботи системи, блакитним екранами смерті (BSOD), діркам в системі безпеки, а в деяких випадках і до втрати всіх даних. Проаналізувавши звіти про помилки, Microsoft прийшла до висновку, що в більшості збоїв Windows винна зовсім не вона, а програмне забезпечення, створене сторонніми розробниками, що модифікують ядро "піонерськими" способами, тобто без прорахунку наслідків всіх можливих ситуацій.

Технологія Patch-Guard, реалізована на x86-64 системах, покликана покласти край цьому неподобству раз і назавжди. 32-бітову версію Microsoft вирішила не чіпати, оскільки інакше величезна кількість програм тут же відмовили б в роботі. Як відомо, операційні системи сімейства NT використовують два кільця захисту з чотирьох, що надаються процесорами сімейства x86. Чому? Річ у тому, що NT спочатку проектувалася як переносима система, а деякі з процесорів, на які її планувалося перенести, містили тільки два кільця, вимушуючи розробників орієнтуватися на найбільш "спартанську" конфігурацію.

При перенесенні системи на платформу x86-64 у Microsoft з'явився реальний шанс 'забити' на "спартанські" конфігурації давно померлих процесорів і "розвести" ядро, драйвера і прикладний код по трьом різним кільцям, захистивши ядро від згубних дій драйверів на апаратному рівні на всі 100%. Проте Microsoft пішла своїм шляхом, – обмежилася періодичною перевіркою цілісності основних структур, викликаючи "сторожову" процедуру приблизно один раз в 5-10 секунд. Хороший вийшов захист, нічого сказати... Малвар буквально ридає від щастя. 5 секунд – це ж ціла вічність для процесора, який виконає за цей час мільйони машинних команд, з легкістю відключаючих Patch-Guard, оскільки захист і шкідливий код володіють однаковими привілеями. Отже на хакерів цей захист не розповсюджується (опис техніки обходу Patch-Guard'а можна знайти в статті "Bypassing PatchGuard on Windows x64" – http://uninformed.org/index.cgi?v=3&a=3&t=sumry, і в презентації Жанни Рутковської (USA) "Rootkit Hunting vs. Compromise Detection", підготовленою для федеральної конференції Black Hat: invisiblethings.org/papers/rutkowska_bheurope2006.ppt.

А ось легальним розробникам антивірусів, брандмауерів і інших програм подібного роду доводиться або згортати свій бізнес, або падати в коліна Microsoft і просити надати їм "ручку" у вигляді відповідного виклику API, а в ідеалі – інтегрувати їх продукт в ядро (але розробників багато, а інтегрувати можна тільки одного, і зовсім не факт, що він буде кращим з тих, що всіх є). Власне кажучи, деякі API для цього з'явилося ще в NT, і всякий охочий міг встановити свій власний фільтр, контролюючий мережевий трафік або вміст файлів, що відкриваються. Чому ж тоді розробники Windows вирішили віддати перевагу модифікуванню ядра системи? Та тому, що це надійніше! Легкість установки легального фільтру компенсується легкістю його зняття, не говорячи вже про те, що фільтри, що все є на даний момент, працюють на досить високому рівні, що дозволяє шкідливим програмам легко обходити їх! Гаразд би Microsoft закрила ядро окремим кільцем, захистивши його і від "хороших", і від "поганих" програм. Але ж ні! Легальні програми вимушені або відключати Patch-Guard, що може мати наслідки, що далеко йдуть, або стають жертвою rootkit'ів.

Щоб ніякий шкідливий код не зміг пробитися на рівень ядра, Microsoft заблокувала завантаження драйверів без цифрового підпису. Навіть володіючи адміністраторськими правами, власник системи не може завантажити непідписаний драйвер. Зняти блокування можна трьома шляхами: підключити ядерний відладчик, при старті системи натиснути або відредагувати опції завантаження в boot.ini Стоп! У вісті вже немає boot.ini, і опції завантаження зберігаються в бінарному форматі, маніпулювати яким можна штатною утилітою BCDedit. Так само до складу SDK входить тестовий цифровий підпис, що містить слово "test" і призначена виключно для налагоджувальних цілей. Жоден з цих способів для комерційних продуктів, зрозуміло, не придатний, і фінальна версія драйвера повинна бути підписана повноцінним цифровим підписом, який в справжній момент уповноважена видавати тільки одна компанія, – Verisign. Сертифікат початкового рівня коштує $500 і видається тільки американським фірмам або фірмам, що мають своє представництво в США.

Логіка Microsoft така: не буде сертифікату – не буде і підпису, а раз не буде підпису, хакер не зможе завантажити шкідливий драйвер, що модифікує ядро і встановлюючий rootkit, приховуючий малвар від очей адміністратора. Насправді, боротьба з малвар'ю ніколи не піднімалася на такий високий рівень, та і процедура сертифікації носить чисто формальний характер, порочність якого вже була продемонстрована компонентами ACTIVE X (Там було- "Ви довіряєте фірмі "ВасяПупкін" з містечка "Чевоне Дишло"? – я сам не міг зрозуміти, що за компонент і чи він потрібний взагалі).

Просто Microsoft хоче зміцнити свої позиції на ринку, витісняючи сторонніх розробників і позиціонуючи свою платформу як ідеальний засіб для проглядання premium media content'а наступного покоління. Фактично, всі зміни у вісті крутяться навколо DRM (Digital Rights Management – Управління Цифровими Правами). Microsoft гарантує, що зашифрований цифровий медіа-потік даних ніде не буде перехоплений злісними піратами. Нісенітниця, звичайно. Зграбити (grab) його – проста справа (і такі утиліти вже написані), а ось у легальних користувачів системи з'являються величезні проблеми. Навіть якщо вони не дивляться фільми, і не слухають музику, все одно вони вимушені змиритися з численними обмеженнями, що накладаються цими технологіями.

Віста – це перша система, в який адміністратор не бог, а, образно кажучи, ув'язнений. Нехай, навіть самий старший серед всіх увязнених. Що це міняє? Свобода в обмін на... ей, хто там сказав "безпеку"?! Відсутність важелів управління робить адміністратора безвладним і нездібним виявити присутність чогось стороннього, тим більше що і побачити його нічим. Всі захисні засоби (антивіруси, брандмауери) вимушені працювати на високому рівні через мізерний набір API-функцій, і шкідливому вірусу нічого не варто "підпірнути" під них і як слід замаскуватися. Нічого не нагадує? Ти (адміністратор) бачиш бабака? Ось і я (антивірус) не бачу. Але ж він то є!

Пробитися на рівень ядра можна і без цифрового підпису, що наочно продемонструвала на американській конференції Black Hat Жанна Рутковська (USA), скориставшись тим, що файл підкачки доступний на посекторному рівні через пристрій "\.\C:", заздалегідь запустивши програму, що "з'їла" всю доступну пам'ять і що примусила операційну систему витіснити код драйверів на диск: www.invisiblethings.org/papers/joanna%20rutkowska%20-%20subverting%20vista%20kernel.ppt.

І хоча реакція Microsoft була на подив спокійною (подумаєш, підломили бету!), хакери вже потирають руки і згортають штопором хвіст в передчутті нової серії атак, а виробники заліза і розробники драйверів п'ють гірку, матюкаючись всіма словами, які тільки знають (а заразом винаходять багато нових слів), прикидаючи, в що їм обійдеться перенесення і сертифікація вже відладжених кодів на нову систему. Багато системних програмістів опиняться видавленими з ринку. Користувачам доведеться обновити залізо, а разом з ним і значну частину своїх улюблених програм, багато хто з яких вже давно покинуті і не підтримуються- (тобто треба купувати/освоювати) нові програми.

ось така, значить, напружена ситуація.

Звичайно, з часом всі ці проблеми обходитимуть всіма можливими шляхами. У Мережі з'явиться безліч програм, що відключають непотрібні захисні механізми і що повертають адміністраторові всі необхідні права. Продуктивність заліза через декілька років зросте настільки, що системним вимогам вісти задовольнятиме навіть найдешевший комп'ютер. До того ж технології віртуалізації, що вже з'явилися в процесорах Intel Pentium (Vanderpool) /AMD Athlon (Pacifica) і підтримувані, зокрема, VM Ware 5.5, збільшують швидкість апаратної емуляції у багато разів, дозволяючи запускати декілька операційних систем одночасно. Це знімає проблему сумісності/несумісності програмного забезпечення, але залишає машину уразливою перед мережевими атаками.

Особисто для себе я вирішив (як і Кріс Касперський aka мыщъх), що сидітиму на WinXP стільки, скільки це взагалі можливо, після чого мігрую на Linux чи FreeBSD, де панує повна свобода, де рішення ухвалюю я, а не хлопці з Реймонда. Я і зараз проводжу третину часу в Ubuntu.

ЦІЛІ MICROSOFT:

- ЗАХИСТ ВІД МАЛВАР'ів (ПРИКРИТТЯ);

- ЗМІЦНЕННЯ СВОЇХ ПОЗИЦІЙ І ВИТІСНЕННЯ СТОРОННІХ РОЗРОБНИКІВ З РИНКУ;

- ПОЗИЦІОНУВАННЯ СВОЄЇ СИСТЕМИ ЯК ЗАХИЩЕНОЮ ВІД ГРАБАННЯ PREMIUM CONTENT'А.

генеалогія вісти.

Анатомічно віста є злегка "допрацьованим" ядром Server 2003 SP1 (чим, власне, і пояснюється її яскраво виражена серверна орієнтація) з переписаним мережевим стеком, новим призначеним для користувача інтерфейсом і купою викинутих речей, зокрема: зник "просунутий призначений для користувача інтерфейс", тепер є тільки один тип інтерфейсу – "для дебілів"; Windows Messenger був видалений без якої-небудь заміни; цю ж долю розділив NetMeeting, витиснений Windows Meeting Space; ще Microsoft нарешті відокремила Internet Explorer, і тепер він вже не частина системи, а окремий компонент, за який, мабуть, доведеться платити конкретні гроші; популярна тема "Luna" виявилася засудженою до розстрілу без пояснення причин і без жодного слідства (ну кому вона, насправді, заважала?! Або на DVD місця не вистачило?). Протокол MS-CHAP v1 більш не підтримується, як не підтримуються материнські плати без ACPI і оберемка іншого "морально застарілого заліза".

Іншими словами, віста – це гібрид, отриманий шляхом схрещування знівеченого Server 2003 S1 з урізаною і покаліченою XP. Повний перелік відсутніх фіч можна знайти в безкоштовній енциклопедії wikipedia: http://en.wikipedia.org/wiki/Features_new_to_Windows_Vista#XP_features_excluded.

А ось обіцяна і широко розрекламована файлова система WIN FS, на щастя, так і не була реалізована ("на щастя" тому, що інакше ми б втрачали сотні гігабайтів даних тільки тому, що когось не навчили програмувати), докладніше дивися: http://en.wikipedia.org/wiki/WinFS

Інша, трохи менш розрекламована фіча під назвою NGSCB (Next-Generation Secure Computing Base – Комп'ютерна База Безпеки Нового Покоління) розділила ту ж долю: http://en.wikipedia.org/wiki/Next-Generation_Secure_Computing_Base.

Встановивши вісту на свій комп'ютер (адже ти все одно встановиш її, вірно?), не звертай увагу на те, як вона гальмує. Це йде індексація всіх файлів для швидкого пошуку, так що її низька продуктивність у цей момент – не показник. Після завершення індексації з системою буде можна цілком комфортно працювати навіть на однопроцесорній машині, хоча, кластер, звичайно, не перешкодив би .

CopyLeft Yuri Vaschishin aka Brontozaurus (vashch@mail.ru), розпоширення вітається при посилці на автора. (підсумовано по результах досліджень Кріс Касперський aka мыщъх, Жанни Рутковської, Пол Грем (Paul Graham), Джоел Сполські) (то скорочена версія статті, повну можете отримати, пославши мейл)

Комментарии









© 2007 - 2020, Народная правда
© 2007, УРА-Интернет – дизайн и программирование

Перепечатка материалов разрешена только со ссылкой на "Народную правду" и указанием автора. Использование фотоматериалов раздела "Фото" — только по согласованию с автором.
"Народная правда" не несет ответственности за содержание материалов, опубликованых авторами.

Техническая поддержка: techsupport@pravda.com.ua