Security Posture — Understanding Your System's Defenses
tags: [general]
Security Posture — Understanding Your System’s Defenses
Section titled “Security Posture — Understanding Your System’s Defenses”This guide explains how to check and interpret your Syn_OS system’s security posture. You’ll learn what each defense mechanism does and how to verify it’s working.
tags: [general]
Quick Overview
Section titled “Quick Overview”Syn_OS includes multiple layers of defense:
- Mandatory Access Control (AppArmor) — restricts what processes can do
- Kernel Hardening — hardens kernel behavior against exploitation
- Module Signing Enforcement — verifies kernel modules are signed before loading
- Post-Quantum Supply Chain Verification — fail-closed package verification
- Firewall — controls network traffic
- Secure Boot — verifies boot components (when available)
You check these with a single command:
synos-posturetags: [general]
Understanding synos-posture Output
Section titled “Understanding synos-posture Output”Run the Command
Section titled “Run the Command”synos-postureExample Output (Master Node)
Section titled “Example Output (Master Node)”╔══════════════════════════════════════════════════════╗║ Syn_OS SECURITY POSTURE ║╚══════════════════════════════════════════════════════╝ ● AppArmor MAC module enabled, 7 profiles in enforce mode ● Kernel lockdown mode: integrity (kprobes enabled for telemetry) ○ Module sig enforce sig_enforce=N (modules are signed but not enforced) – Secure Boot state unknown (VM/UEFI firmware limitation) ● PQ supply chain enforcing, fail-closed, 1 signer enrolled ○ Host firewall no active firewall ● Kernel hardening 3/3 sysctls set (ASLR, DEP, kptr_restrict)
GRADE B+ (72/90 · 80%)Understanding the Symbols
Section titled “Understanding the Symbols”- ● (filled circle) = WORKING / ENFORCING ✓ — This defense is active
- ○ (empty circle) = AVAILABLE BUT NOT ENFORCED — Present but in informational/permissive mode
- – (dash) = NOT AVAILABLE / UNKNOWN — Either not applicable to your hardware (VMs), or firmware doesn’t expose the setting
Understanding Each Field
Section titled “Understanding Each Field”AppArmor MAC (Mandatory Access Control)
Section titled “AppArmor MAC (Mandatory Access Control)”● AppArmor MAC module enabled, 7 profiles in enforce modeWhat it does: Restricts what processes can access — even if a process gets compromised, AppArmor limits its reach.
● means:
- AppArmor is loaded
- 7 application profiles are in enforce mode (actively restricting: ALFRED, GRIMOIRE, security tools)
- Violations are logged and blocked
If it shows ○ (permissive): Violations are logged but not blocked (warning-only mode). Master node should show ●.
Check the details:
sudo apparmor_statusOutput shows:
- Number of profiles loaded
- How many are in enforce vs. complain vs. unconfined mode
- Which processes are currently confined
Example good state:
apparmor module is loaded.7 profiles are loaded.7 profiles are in enforce mode.0 profiles are in complain mode.1 processes have profiles defined.1 processes are in enforce mode. /opt/synos/alfred/bin/alfred (1234)tags: [general]
Kernel Lockdown
Section titled “Kernel Lockdown”● Kernel lockdown mode: integrity (kprobes enabled for telemetry)What it does: Locks down privileged kernel features to prevent tampering. On integrity mode, kprobes (used for real-time system monitoring) are allowed but immutable.
● means: Lockdown is active.
Modes:
integrity= preferred — allows telemetry via kprobes, blocks privileged loadconfidentiality= strict; blocks even kprobes (rarely used)none= lockdown off (not recommended on master)
If it shows – (unknown): Likely a VM without lockdown kernel support. This is non-critical on non-production systems.
Verify:
cat /sys/kernel/security/lockdownExpected: integrity
tags: [general]
Module Signature Enforcement
Section titled “Module Signature Enforcement”○ Module sig enforce sig_enforce=N (modules are signed but not enforced)What it does: Verifies kernel modules are signed before loading them. This prevents loading malicious or tampered kernel code.
What you’re seeing: Modules ARE signed (the build enforces this), but the kernel is not enforcing verification at load time yet.
Why ○, not ●? The enforce flag (module.sig_enforce=1) is typically set in release builds for production. On development/test systems, it’s off for flexibility.
Check the boot parameter:
cat /proc/cmdline | grep sig_enforceOutput:
module.sig_enforce=0or empty = not enforced (●would show as ○)module.sig_enforce=1= enforced (shows as ●)
On master production node, this should be 1 and show as ●.
tags: [general]
Secure Boot
Section titled “Secure Boot”– Secure Boot state unknown (VM/UEFI firmware limitation)What it does: UEFI firmware verifies the bootloader and kernel haven’t been tampered with before handing control to the OS.
Why –? Most common reasons:
- Running in a virtual machine (QEMU/Hyper-V don’t expose Secure Boot status to the OS)
- BIOS mode (not UEFI) — Secure Boot is a UEFI feature
- Firmware doesn’t support UEFI Secure Boot
On physical hardware with UEFI firmware, you can enable it:
- Reboot and enter BIOS/UEFI settings (usually
F2orDelat boot) - Find Security → Secure Boot
- Set to Enabled
- Save and exit
After reboot, synos-posture should show it as ● or ○ depending on enrollment status.
tags: [general]
Post-Quantum Supply Chain
Section titled “Post-Quantum Supply Chain”● PQ supply chain enforcing, fail-closed, 1 signer enrolledWhat it does: Verifies package signatures using post-quantum cryptography. If a signer is enrolled, package verification is fail-closed — installation fails unless the package is signed correctly.
● means: PQ verification is active and a signer is enrolled.
What it tracks:
synos-pq-trust listOutput:
trust roster: /etc/synos/pq-trust [ENFORCED] synos-master-pq-2026-08 (both keys present — signatures required)This shows:
[ENFORCED]= verification is fail-closed for this signersynos-master-pq-2026-08= the signer’s identity (timestamp indicates key rotation cycle)both keys present= ML-DSA (signing key) + ML-KEM (encryption key) both enrolled
Adding a signer (advanced):
synos-pq-trust add /path/to/pubkey.pem# Now packages from that key's signer MUST be signed or installation failsRemoving a signer:
synos-pq-trust remove synos-master-pq-2026-08tags: [general]
Host Firewall
Section titled “Host Firewall”○ Host firewall no active firewallWhat it does: Controls inbound/outbound network traffic using iptables/nftables rules.
Why ○? No systemwide firewall is actively running. However:
- GRIMOIRE labs have isolated networking (Docker/firecracker)
- SSH is open (needed for operator access)
- GRIMOIRE port 8090 is open (local-only by default)
Check the firewall ruleset (nftables — ufw is intentionally inactive):
sudo nft list rulesetOutput might show:
Status: inactiveIf you want to enable it (advanced):
sudo ufw enablesudo ufw default deny incomingsudo ufw default allow outgoingsudo ufw allow sshsudo ufw allow 8090 # GRIMOIRE daemonsudo ufw show addedtags: [general]
Kernel Hardening
Section titled “Kernel Hardening”● Kernel hardening 3/3 sysctls set (ASLR, DEP, kptr_restrict)What it does: Enables Linux kernel security hardening settings that make exploitation harder.
● means all 3 are set:
- ASLR (Address Space Layout Randomization) = randomizes memory layout
- DEP (Data Execution Prevention) = prevents executing code in data regions
- kptr_restrict = hides kernel pointer values from user processes
Verify manually:
# Check ASLRcat /proc/sys/kernel/randomize_va_space# Output: 2 = full ASLR (good)
# Check DEP (usually kernel compile-time)cat /proc/sys/kernel/kptr_restrict# Output: 2 = most restrictive (good)tags: [general]
Understanding GRADE
Section titled “Understanding GRADE”GRADE B+ (72/90 · 80%)The grade is calculated as a percentage of security hardening features enabled:
| Grade | Percentage | What it means |
|---|---|---|
| A | 90–100% | Excellent — all defenses active |
| B | 80–89% | Good — most defenses active, minor gaps |
| C | 70–79% | Fair — some defenses missing or in permissive mode |
| D | 60–69% | Weak — multiple key defenses disabled |
| F | <60% | Critical — significant gaps |
B+ (72/90) = Good state — ALFRED, GRIMOIRE, and kernel hardening are active. The “missing” 20 points typically come from:
- No active host firewall (○)
- Secure Boot unknown (–)
- Module signature enforcement not enforced (○)
These are acceptable gaps on a test/dev system but should be addressed on production master nodes.
tags: [general]
Advanced: Checking Individual Subsystems
Section titled “Advanced: Checking Individual Subsystems”AppArmor Violations and Denials
Section titled “AppArmor Violations and Denials”If an AppArmor profile is too restrictive and blocking legitimate activity, denials are logged:
sudo grep -i apparmor /var/log/audit/audit.log | tail -20# orsudo dmesg | grep apparmor | tail -20If you see DENIED messages for legitimate tools, the profile may need adjustment (contact the security team).
Checking Kernel Module Loading
Section titled “Checking Kernel Module Loading”Verify that kernel modules are being verified:
sudo dmesg | grep -i "signature verification"Or, monitor live module loading:
sudo modprobe <module_name> # loads a modulesudo dmesg | grep -i "signature\|module" | tail -5NATS Message Bus (GRIMOIRE comms)
Section titled “NATS Message Bus (GRIMOIRE comms)”Verify the NATS server is running:
systemctl --user status nats-server# orsudo systemctl status nats-server # system-wide on some profilestags: [general]
Troubleshooting Low Security Scores
Section titled “Troubleshooting Low Security Scores”If your grade drops below C (70%), investigate:
-
Check which defenses are missing:
Terminal window synos-posture -
For AppArmor issues:
Terminal window sudo systemctl status apparmorsudo journalctl -u apparmor -n 50 -
For kernel hardening issues:
Terminal window cat /proc/cmdline # check boot parameterssysctl -a | grep security # check all sysctl settings -
If you made a change and want to revert:
Terminal window # Most hardening is read-only at runtime# You'd need to reboot with proper kernel cmdline / sysctl defaultssudo sysctl kernel.dmesg_restrict=1 # example re-enable
tags: [general]
Best Practices
Section titled “Best Practices”-
Run
synos-posturemonthly to track your security posture over time. -
Escalate GRADE drops — if your grade falls more than 5 points, investigate immediately.
-
Don’t disable AppArmor — even if a profile seems restrictive. Instead, report the issue so it can be fixed.
-
Keep kernel module signature enforcement on production — set
module.sig_enforce=1in the boot cmdline for production master nodes. -
Use the PQ trust roster carefully — once you add a signer, all packages from unknown signers will be rejected. Only add trusted signers.
tags: [general]
Reference: Security Profiles
Section titled “Reference: Security Profiles”Different Syn_OS profiles have different security baselines:
| Profile | AppArmor | Firewall | PQ Trust | Grade |
|---|---|---|---|---|
| Master | 7 enforce | Optional | Enrolled | B+ |
| GRIMOIRE | 5 enforce | Optional | Enrolled | B |
| GoodLife | 3 enforce | Disabled | Disabled | C |
The master profile (v111) maintains B+ posture by default. All profiles support upgrading their posture.
tags: [general]
Verified On
Section titled “Verified On”- Syn_OS v111.0.0 “Last Light”
- Profile: Master
- Reference node: a representative Syn_OS v111 master install
- Date: 2026-08-05
Last verified: 2026-08-05