Ізоляція програм Win32 — це чудова функція безпеки, яку Microsoft представила в Windows 11 минулого місяця. Ось як вона працює.
На своїй щорічній конференції Build минулого місяця Microsoft оголосила про можливість ізольовано запускати програми Win32 у Windows 11. У своєму початковому дописі в блозі компанія не вдавалась у подробиці, але підкреслила можливість запуску Win32 програми в середовищі ізольованого програмного середовища, щоб решта операційної системи була захищена від потенційно шкідливих програм програмне забезпечення. Тепер він розкрив більше інформації про цю конкретну можливість, зокрема про те, як вона працює та вписується в решту інфраструктури безпеки Windows.
Віце-президент Microsoft з безпеки ОС і підприємства Девід Вестон написав довгий матеріал публікація в блозі, пояснюючи природу ізоляції програми Win32. Ця функція є ще одним варіантом безпеки пісочниці Пісочниця Windows і Microsoft Defender Application Guard, але він базується на AppContainers, а не на програмному забезпеченні на основі віртуалізації, як два інших засоби безпеки. Для тих, хто не знає, AppContainers служать способом керування виконанням процесу, інкапсулюючи його та гарантуючи, що він працює на дуже низьких рівнях привілеїв і цілісності.
Microsoft наполегливо рекомендує використовувати Smart App Control (SAC) і ізоляція програм Win32 у тандемі, одночасно захищаючи ваше середовище Windows від ненадійних програм, які використовують уразливості 0-денного періоду. Перший механізм безпеки зупиняє атаки, встановлюючи лише надійні програми, тоді як другий може бути використовується для запуску програм в ізольованому та безпечному середовищі, щоб обмежити потенційну шкоду та захистити користувача конфіденційність. Це пояснюється тим, що програма Win32, яка працює ізольовано, не має того самого рівня привілеїв, що й користувач системи.
Технічна компанія Redmond визначила кілька ключових цілей ізоляції додатків Win32. По-перше, це обмежує вплив скомпрометованої програми, оскільки зловмисники мають низькі привілеї доступу до частини операційної системи, і їм потрібно буде здійснити складну багатоетапну атаку, щоб зламати їхню пісочницю. Навіть якщо вони досягли успіху, це також дає більше розуміння їхнього процесу, що значно пришвидшує впровадження та доставку виправлень пом’якшення.
Це працює так, що програма спочатку запускається на низьких рівнях цілісності через AppContainer, що означає що вони мають доступ до вибраних API Windows і не можуть виконувати зловмисний код, який потребує вищих привілеїв рівнях. На наступному й останньому кроці принципи найменших привілеїв застосовуються шляхом надання програмі авторизованого доступу до захищених об’єктів Windows, що еквівалентно реалізації Дискреційний список контролю доступу (DACL) на Windows.
Ще однією перевагою ізоляції додатків Win32 є зменшення зусиль розробників, оскільки творці додатків можуть використовувати Application Capability Profiler (ACP), доступний на GitHub щоб зрозуміти, які саме дозволи їм потрібні. Вони можуть увімкнути ACP і запустити свою програму в «режимі навчання» в ізоляції програми Win32, щоб отримати журнали про додаткові можливості, необхідні для запуску програмного забезпечення. ACP працює на базі рівня даних Windows Performance Analyzer (WPA) і журналах трасування подій (ETL). Інформацію з журналів, згенерованих цим процесом, можна просто додати до файлу маніфесту пакета програми.
Нарешті, ізоляція додатків Win32 має на меті запропонувати безперебійну роботу користувача. Ізоляція програми Win32 полегшує це, вимагаючи від програм використання можливості «isolatedWin32-promptForAccess». щоб запитати користувача, якщо йому потрібен доступ до його даних, таких як бібліотеки .NET і захищений реєстр ключі. Підказка має бути значущою для користувача, від якого отримано згоду. Щойно доступ до ресурсу надано, далі відбувається ось що:
Коли користувач дає згоду на певний файл для ізольованої програми, ізольована програма взаємодіє з Windows Посередницька файлова система (BFS) і надає доступ до файлів через міні-драйвер фільтра. BFS просто відкриває файл і служить інтерфейсом між ізольованою програмою та BFS.
Віртуалізація файлів і реєстру допомагає гарантувати, що програми продовжуватимуть працювати, не оновлюючи базовий файл або реєстр. Це також мінімізує будь-які проблеми з користувачем, зберігаючи сумісність програм. Захищені простори імен створюються, щоб дозволити доступ лише до програми та не потребують згоди користувача. Наприклад, можна надати доступ до папки, властивість якої відома лише програмі Win32 і потрібна для сумісності програми.
Корпорація Майкрософт підкреслила, що для того, щоб мати паритет між ізольованими та неізольованими Програми Win32, перші можуть взаємодіяти з файловою системою та іншими API Windows, використовуючи Windows BFS. Крім того, записи в маніфесті програми також гарантують, що програма може безпечно взаємодіяти з елементами Windows, такими як сповіщення оболонки та піктограми в системному лотку. Ти можеш дізнайтеся більше про ініціативу на GitHub тут.