<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Policy on Le Site de François</title><link>https://lesitedefrancois.be/en/tags/policy/</link><description>Recent content in Policy on Le Site de François</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 François</copyright><atom:link href="https://lesitedefrancois.be/en/tags/policy/index.xml" rel="self" type="application/rss+xml"/><item><title>fapolicyd (File Access Policy Daemon)</title><link>https://lesitedefrancois.be/en/security/fapolicyd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/security/fapolicyd/</guid><description>&lt;p&gt;&lt;strong&gt;fapolicyd (File Access Policy Daemon)&lt;/strong&gt; is an application allowlisting framework for Linux, developed by Red Hat and shipped as a supported component of RHEL 8+. Its security premise is supply-chain integrity at the execution layer: only software that was installed through a trusted package manager (DNF/RPM) or explicitly declared as trusted by an administrator may execute on the system. An attacker who achieves a foothold and drops a new binary — a reverse shell, a lateral movement tool, a cryptominer — will find that binary blocked at execution time, because it is absent from the trust database, regardless of its Unix permissions or SELinux label. fapolicyd addresses a different dimension of access control than &lt;strong&gt;SELinux&lt;/strong&gt;: SELinux models how applications behave (what resources they may access); fapolicyd models whether applications are trusted at all (whether they may execute in the first place). The two are complementary: SELinux confines a trusted application&amp;rsquo;s behaviour; fapolicyd prevents untrusted applications from running.&lt;/p&gt;</description></item><item><title>Guardrails</title><link>https://lesitedefrancois.be/en/ai/guardrails/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/ai/guardrails/</guid><description>&lt;p&gt;&lt;strong&gt;Guardrails&lt;/strong&gt; are controls wrapped around &lt;strong&gt;LLM inference&lt;/strong&gt; to reduce harmful, non-compliant, or off-policy behavior without replacing the base model. Their objective is &lt;strong&gt;AI safety and governance&lt;/strong&gt; in production: block or rewrite prompts that attempt &lt;strong&gt;prompt injection&lt;/strong&gt; or jailbreaks, filter toxic or leaked &lt;strong&gt;PII&lt;/strong&gt; in outputs, enforce topic allowlists, validate structured tool calls, and log decisions for audit. Guardrails sit on the &lt;strong&gt;request path&lt;/strong&gt; (before tokens reach the model or after the model proposes a draft response), combining rule engines, classifiers, regex, and sometimes smaller models. They complement—not replace—application auth, network policy, and human review; enterprises treat them as mandatory for customer-facing and internal copilots.&lt;/p&gt;</description></item><item><title>PSA (Pod Security Admission)</title><link>https://lesitedefrancois.be/en/security/psa/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/security/psa/</guid><description>&lt;p&gt;&lt;strong&gt;Pod Security Admission (PSA)&lt;/strong&gt; is the built-in Kubernetes admission controller that enforces the &lt;strong&gt;Pod Security Standards (PSS)&lt;/strong&gt;, a set of predefined security profiles that constrain what a pod is allowed to do. It became stable in Kubernetes 1.25, at which point its predecessor &lt;strong&gt;PodSecurityPolicy (PSP)&lt;/strong&gt; was simultaneously removed. Where PSP was a complex, cluster-scoped object requiring deep RBAC wiring and prone to misconfiguration, PSA is deliberately simpler: it is always enabled, requires no CRDs or RBAC setup, and is configured entirely through namespace labels. The trade-off for that simplicity is that PSA is opinionated and coarse-grained — it enforces fixed profiles rather than arbitrary custom rules, and its granularity is the namespace rather than the individual workload or service account. Teams needing finer-grained policy beyond what PSA offers typically combine it with a policy engine such as Kyverno or OPA Gatekeeper.&lt;/p&gt;</description></item><item><title>SCC (Security Context Constraints)</title><link>https://lesitedefrancois.be/en/security/scc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/security/scc/</guid><description>&lt;p&gt;&lt;strong&gt;Security Context Constraints (SCCs)&lt;/strong&gt; are OpenShift&amp;rsquo;s mechanism for controlling and enforcing the security posture of pods at admission time. They predate and are more expressive than Kubernetes &lt;strong&gt;PSA&lt;/strong&gt;: where PSA validates a pod spec against a fixed profile and either admits or rejects it, an SCC acts as both a validator &lt;em&gt;and&lt;/em&gt; a mutator — it can inject missing fields into the pod spec (a UID from the namespace&amp;rsquo;s allocated range, an SELinux context, capability drops) so that a pod that did not specify its full security context in its manifest is brought into compliance automatically rather than rejected. SCCs are cluster-scoped resources, and access to them is controlled via RBAC: a service account must be granted &lt;code&gt;use&lt;/code&gt; of an SCC through a &lt;code&gt;Role&lt;/code&gt; or &lt;code&gt;ClusterRole&lt;/code&gt; binding before pods running under that service account can be admitted with the permissions that SCC grants.&lt;/p&gt;</description></item><item><title>USBGuard</title><link>https://lesitedefrancois.be/en/security/usbguard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/security/usbguard/</guid><description>&lt;p&gt;&lt;strong&gt;USBGuard&lt;/strong&gt; is a security framework for Linux that controls which USB devices are permitted to interact with the system. It sits above the kernel&amp;rsquo;s native USB authorisation subsystem — a per-device authorisation flag in the USB core that determines whether a device can be configured and begin sending data — and enforces a policy defined in a rule file against every device that connects or is present at startup. The threat model USBGuard addresses is both insider threat (unauthorised storage devices, data exfiltration) and hardware attack: &lt;strong&gt;BadUSB&lt;/strong&gt; devices — malicious firmware embedded in devices that present themselves as HID keyboards, network adapters, or other trusted classes — can be blocked by a sufficiently specific USBGuard policy that restricts which USB interface classes are permitted. A USB device that claims to be a keyboard (&lt;code&gt;03:01:01&lt;/code&gt;) but was not explicitly authorised cannot send keystrokes; a USB storage device plugged into a workstation with a policy that only allows a specific keyboard and mouse is blocked outright. USBGuard cannot protect against devices present at boot (before the daemon starts), so it is a defence-in-depth control for the running OS rather than a substitute for physical port security.&lt;/p&gt;</description></item></channel></rss>