← All posts

Sideloaded MSIX and AppX: the app-security blind spot on Windows

Line-of-business sideloading and unrestricted AppX installs quietly widen your attack surface. Here is what to audit and how WinSentinel flags it.

Most Windows hardening advice obsesses over EXEs and MSIs — SmartScreen, AppLocker publisher rules, code-signing. But there is a whole parallel install path that a lot of endpoint audits never look at: MSIX and AppX packages. These are the modern packaging format behind the Microsoft Store, and — crucially — behind sideloading, where a package is installed straight from a file or an internal server without going through the Store at all.

Sideloading is legitimate and common. Line-of-business apps ship as signed .msix/.appx bundles; IT deploys them with Add-AppxPackage or Intune. The problem is that the machinery which allows sideloading is also a quiet way for an attacker or a careless user to install packaged software that never touches the Store's review pipeline. If you are not auditing it, you have a blind spot.

Why sideloaded packages slip past your controls

What to actually audit

Four settings and one inventory give you 90% of the visibility:

  1. Sideloading / developer-mode policy. Check AllowAllTrustedApps and AllowDevelopmentWithoutDevLicense under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock. Developer mode enabled on a production endpoint is a red flag.
  2. AppLocker packaged-app rules. Confirm the Appx rule collection exists and is in Enforce mode, not Audit only and not absent.
  3. Store auto-update. AutoDownload under HKLM\SOFTWARE\Policies\Microsoft\WindowsStore. If updates are disabled, you need a compensating patch process for LOB packages.
  4. Installed / provisioned inventory. Enumerate with Get-AppxPackage -AllUsers and Get-AppxProvisionedPackage -Online, then flag any publisher outside Microsoft and the Store.
  5. Signer trust. Cross-reference the signing cert of each non-Store package against the machine's trusted stores — a package trusted only because someone added its cert deserves a second look.

A quick manual pass looks like this:

# Non-Microsoft packaged apps installed for any user
Get-AppxPackage -AllUsers |
  Where-Object { $_.Publisher -notmatch 'CN=Microsoft' } |
  Select-Object Name, Publisher, Version, PackageFullName

# Is sideloading / dev mode unlocked?
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock' `
  -Name AllowAllTrustedApps, AllowDevelopmentWithoutDevLicense -ErrorAction SilentlyContinue

How WinSentinel handles it

WinSentinel's Application Security module rolls all of this into scored findings — no PowerShell spelunking required. It enumerates installed and provisioned packages, isolates the non-Store publishers, reads the sideloading and dev-mode unlock keys, and checks the Store auto-update policy. Each finding comes with severity, an explanation of the risk, and (where safe to automate) a one-click fix — for example re-locking developer mode or moving the AppLocker packaged-app collection into enforce mode.

All of this runs locally on a single machine and is part of the free, open-source tier — install with dotnet tool install --global WinSentinel.Cli and run winsentinel --audit. If you manage more than a handful of endpoints, WinSentinel Pro rolls these package inventories up across your whole fleet so you can answer "which machines have developer mode unlocked?" in one query instead of one login at a time.

The Store made packaged apps feel safe. Sideloading is where that assumption quietly breaks — so audit the install path, not just the app.