Eleven signals. Weights you set. A fix for each failure.

Let a device's health count in your access rules, and tell people how to fix what fails. Eleven device signals, read by the Pramaan agent on Linux, Windows and macOS, become weighted risk labels when they fail; the score stays advisory until a rule uses it.

The signals, and where each applies

Illustrative
A device
Reports
Rules weigh it

The broker accepts agent posture reports only when their switch is on; until then no signal below reaches an access decision.

SignalLabel when it failsWhere it applies
Disk encryptiondisk_unencryptedLinux, Windows, macOS
Host firewallfirewall_offWindows, macOS; Linux reads ufw, firewalld or the kernel's own firewall rules
Screen lockscreenlock_offWindows, macOS; Linux reads GNOME only, other desktops read as off
OS security updatespatch_outdatedWindows, macOS; Linux reads apt only, otherwise not reported
Antivirus or EDRedr_absentWindows via Security Center; Linux, macOS from known agents; left out when undetermined
Secure Bootsecure_boot_offLinux, Windows; macOS on Apple Silicon only, Intel Macs read as off
TPM or Secure Enclaveno_tpmLinux, Windows; macOS on Apple Silicon only, Intel Macs read as absent
Automatic updatesauto_update_offWindows, macOS; Linux reads the apt upgrade timer only, otherwise off
Central managementunmanagedWindows, macOS; Linux reads only a realm join and never reports unmanaged
System Integrity Protectionsip_offmacOS only; not applicable elsewhere, at no cost
Gatekeepergatekeeper_offmacOS only; not applicable elsewhere, at no cost

Default weights

Illustrative
  • Disk
  • Firewall
  • Screen lock
  • Patches

Weights are defaults; administrators can retune every one; a disabled check costs nothing. Besides the signal labels, the seventeen include the score-only os_outdated label, for a device below an administrator's minimum OS version (it never drops the tier); and cve_critical, cve_high and cve_medium, from published vulnerability advisories matched to the packages the agent reports. The table shows the weights an unconfigured deployment scores with.

LabelDefault weight
cve_critical30
impossible_travel25
cve_high20
disk_unencrypted20
edr_absent15
firewall_off15
new_device15
os_outdated15
patch_outdated12
screenlock_off12
unmanaged12
auto_update_off10
cve_medium10
sip_off10
gatekeeper_off8
no_tpm8
secure_boot_off8

A fix for each failing check

The coach is deterministic, no model: fixed text and platform steps per failing check, its cost from the administrator's weights, and unknown for an unreported signal. It covers the eleven signals and os_outdated.

Engine output Break the device and watch which named check fails, what it costs, and the fix. sso-core posture_score.rs/posture_advice.rs · 8baa92c
Device posture testerA score ring: the tier, and the score left after failing checks. 100 trusted

What this does not show: a real device's report, tuned or disabled checks, or how the broker sets the tier; fixes are the coach's macOS steps, shown only where it has them.

Text version
  1. disk_unencrypted: Turn on FileVault: System Settings → Privacy & Security → FileVault → Turn On.
  2. screenlock_off: System Settings → Lock Screen → require a password after the screen starts, and turn on Hot Corners / short delay.
  3. firewall_off: System Settings → Network → Firewall → turn On.
  4. patch_outdated: System Settings → General → Software Update → install all available updates.
  5. edr_absent: Install and enable your organisation's endpoint protection / antivirus agent.
  6. auto_update_off: System Settings → General → Software Update → Automatic updates → turn everything on.
  7. secure_boot_off
  8. no_tpm
  9. unmanaged: Enrol in your organisation's MDM: install the management profile from IT (System Settings → General → Device Management).
  10. sip_off: Re-enable System Integrity Protection: reboot into Recovery (Apple Silicon: hold the power button; Intel: hold ⌘R), open Terminal, run `csrutil enable`, then restart.
  11. gatekeeper_off: Re-enable Gatekeeper: run `sudo spctl --master-enable`, or System Settings → Privacy & Security → set "Allow applications from" to App Store & identified developers.

Score starts at 100 / 60 / 30 by tier and loses each failing check's weight once; a rule may require a minimum.

Questions

Does a low score block access?

Only if a rule says so: the score is a presentation value, advisory unless a rule sets a minimum score or reads it.

What happens when a check cannot run?

A failed desktop probe usually reads as off and costs score. A signal with no value is not reported and costs nothing; unreported signals fail closed only on Deny/StepUp rules that name their label, with the switch on; it is off by default.

Does every signal apply on every operating system?

No. SIP and Gatekeeper are macOS checks, not applicable elsewhere at no cost; the table above lists each case.

Can a device lie about its posture?

A desktop can: its readings are self-reported, and a modified client could report a healthy device that is not.

Talk to us, or try it first

  1. Book a walkthrough

    Against your own apps, not slides.

  2. Run the lab

    It uses a demonstration account; none of your data is involved.

  3. See pricing

    Published floors, named-user bands and what every tier includes.