encyklopedia.space

AppContainer

AppContainer – mechanizm izolacji aplikacji w systemach operacyjnych Microsoft Windows, wprowadzony w wersji Windows 8 (2012) i wykorzystywany przede wszystkim w aplikacjach Universal Windows Platform (UWP). System ten tworzy tzw. kontener aplikacji, czyli odizolowane środowisko, w którym uruchamiana jest aplikacja, ograniczając jej dostęp do zasobów systemowych i danych użytkownika.

Historia

  • Wprowadzony w 2012 roku jako część projektu Windows 8, mający na celu zwiększenie bezpieczeństwa i stabilności systemu.
  • Rozwinięty w kolejnych wersjach systemu: Windows 10 oraz Windows 11, gdzie stał się podstawą modelu zero‑trust dla aplikacji desktopowych i mobilnych.
  • Idea izolacji opiera się na wcześniejszych rozwiązaniach, takich jak sandbox w systemie macOS i kontenery Linux, lecz jest ściśle zintegrowana z architekturą Windows.

Architektura i zasady działania

AppContainer opiera się na następujących elementach:

  1. Token bezpieczeństwa – przydzielany aplikacji token z ograniczonymi uprawnieniami, nie zawierający praw administratora ani dostępu do krytycznych zasobów systemowych.
  2. Model przydzielania uprawnień – aplikacja musi zadeklarować potrzebne uprawnienia w pliku manifestu (Package.appxmanifest), które są weryfikowane w czasie instalacji.
  3. Kontrola dostępu do systemu plików – domyślnie aplikacja ma dostęp jedynie do własnego katalogu %LOCALAPPDATA%\Packages\<PackageFamilyName>\ oraz do wybranych folderów publicznych (np. Pictures, Music) po uzyskaniu odpowiednich zgód.
  4. Izolacja sieciowa – aplikacja działa w wirtualnym interfejsie sieciowym, co umożliwia ograniczenie połączeń przy pomocy Zapory Windows.
  5. Konteneryzacja zasobów – procesy uruchomione w AppContainer są odseparowane od procesów uruchomionych w tradycyjnym trybie systemu, co zapobiega wpływowi jednego procesu na drugi.

Porównanie z innymi technologiami

Technologia System operacyjny Poziom izolacji Typ aplikacji
AppContainer Windows 8/10/11 Średni – izolacja procesów i zasobów plikowych UWP, aplikacje Win32 w trybie Desktop Bridge
Sandbox (macOS) macOS Wysoki – wirtualny system plików i ograniczone API Aplikacje w App Store
Docker Linux, Windows, macOS Bardzo wysoki – pełne konteneryzowanie z własnym rdzeniem Usługi i mikroserwisy
VirtualBox Wieloplatformowy Pełna wirtualizacja sprzętowa Systemy operacyjne, testy

Typy aplikacji wykorzystujących AppContainer

  • Aplikacje UWP – domyślnie uruchamiane w AppContainer.
  • Aplikacje Win32 przekształcone przy pomocy Desktop Bridge (dawniej Project Centennial), które mogą być uruchamiane w kontenerze.
  • Aplikacje Microsoft Store, które wymagają deklaracji uprawnień w manifestach.

Bezpieczeństwo i ograniczenia

AppContainer wprowadza kilka istotnych mechanizmów podnoszących bezpieczeństwo:

  1. Least privilege – aplikacje otrzymują tylko te uprawnienia, które zostały im wyraźnie przyznane.
  2. Kontrola integracji – system weryfikuje zgodność manifestu z rzeczywistym użyciem API w trakcie instalacji i uruchamiania.
  3. Ochrona przed eskalacją uprawnień – proces w AppContainer nie może podnieść swoich uprawnień bez wyraźnej zgody użytkownika lub systemu.

Ograniczenia:

  • Brak dostępu do tradycyjnych interfejsów COM, które wymagają pełnych uprawnień.
  • Ograniczona możliwość modyfikacji rejestru HKEY_LOCAL_MACHINE.
  • Wymóg używania nowoczesnych API (np. WinRT) zamiast przestarzałych funkcji Win32, co może wymagać refaktoryzacji istniejącego kodu.

Implementacja w praktyce

Przykładowy fragment manifestu Package.appxmanifest deklarujący uprawnienia:

<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">
  <Capabilities>
    <Capability Name="internetClient"/>
    <Capability Name="picturesLibrary"/>
    <Capability Name="microphone"/>
  </Capabilities>
  <Applications>
    <Application Id="App">
      <uap:VisualElements ... />
    </Application>
  </Applications>
</Package>

Po zbudowaniu pakietu (.appx lub .msix) i jego instalacji w Microsoft Store, system przydziela aplikacji token AppContainer i uruchamia ją w izolowanym środowisku.

Powiązane pojęcia

Przyszłość

W kolejnych wersjach systemu Windows, Microsoft planuje dalsze rozszerzanie funkcjonalności AppContainer, m.in. integrację z Windows Subsystem for Linux (WSL) oraz usprawnienia w obszarze ochrony poświadczeń. Dzięki temu konteneryzacja aplikacji może stać się podstawowym modelem bezpieczeństwa nie tylko dla UWP, ale także dla tradycyjnych aplikacji desktopowych i serwerowych.