DFIM — Deterministic Firmware Integrity Matrix

IEC 62443 firmware integrity enforcement suite

View the Project on GitHub Ahmadsi70/DFIM

DFIM Enterprise Enforcement Policy

Document ID: DFIM-SEC-POL-2026-V1.0
Normative source: security/phase0-policy.json

1. Deployment profile

The approved production profile is protected-scope, not global executable allowlisting.

2. Linux enforcement architecture

2.1 IMA appraisal

Linux production deployments use IMA appraisal as the authoritative current-content enforcement mechanism. It must appraise the file selected for execution or module loading at the kernel boundary.

The existing DFIM_IMAGES eBPF snapshot is useful for bounded validation experiments but is not accepted as proof that the bytes currently on disk are the bytes being executed.

2.2 eBPF role

The eBPF LSM layer is retained for:

It must not duplicate full-image storage in BPF maps for production enforcement.

2.3 DFIM_CONFIG contract

DFIM_CONFIG must become a versioned structure consumed by the probe. At minimum it carries:

For protected assets, a missing, malformed, unsupported, or unresolved DFIM_CONFIG state is fail-closed. For unprotected assets, the same condition does not create a global outage.

3. Decision matrix

  1. Unprotected asset + no DFIM metadata: allow DFIM decision; normal OS controls still apply.
  2. Protected asset + valid current appraisal: allow and optionally emit success telemetry.
  3. Protected asset + content mismatch: deny and emit critical dfim.integrity.failure.
  4. Protected asset + missing/malformed metadata: deny and emit high/critical metadata event.
  5. Protected asset + stale release counter: deny as rollback.
  6. Protected asset + unknown policy/config: deny protected asset and emit policy failure.
  7. Monitor profile + failure: alert-only is allowed only when explicitly configured outside production.

4. Startup and lifecycle rules

5. Windows and UEFI policy

6. Metadata and key policy

7. Audit requirements

Every deny, policy downgrade request, rollback attempt, trust-anchor failure, and recovery action records:

Audit delivery failure must not change an integrity deny into an allow.

8. Phase-1 implementation boundary

Phase 1 is complete only when P0-C1, P0-C2, and P0-C3 are implemented and the corresponding AT-01 through AT-04 tests pass on a supported Linux kernel. Sidecar v2, TPM quotes, and recovery automation remain later gated phases and must not be claimed as implemented during Phase 1.