Skip to main content

Security Engineering

Design complete systems that keep stated security properties under faults, misuse, and deliberate attack.

The engineering problem

Security engineering builds systems that continue to meet stated protection needs when components fail, people make mistakes, and capable adversaries act against them. It covers requirements, architecture, implementation, operation, evidence, and recovery. It is not a final security feature that a team adds after functional design.

A useful security claim names the system, environment, protected property, adverse condition, and acceptable result. "Only an approved administrator can change policy through the managed interface" is testable. "The service is secure" is not.

Complete-system reasoning

The control is only one part of the system. Identity sources, networks, clients, clocks, keys, caches, operators, applications, logs, and recovery procedures can change the result. A strong component cannot correct an unprotected alternate path or a false input that the design treats as trusted.

Start with the real protection need. Define the system boundary and assumptions. Map normal and adverse flows. Derive requirements and invariants. Select mechanisms. Test them. Monitor the evidence. Reassess the design when dependencies or threats change.

Claims, mechanisms, and evidence

A policy is a statement of the allowed result. A mechanism makes or enforces a decision. Evidence supports the claim that the mechanism works in the deployed system. Keep these three objects separate. A configuration file can express intent without proving that every route uses it.

Failure and residual risk

Security engineering cannot remove all risk. Models omit detail, requirements can be wrong, and evidence can miss a failure. Record assumptions and residual risk with owners and review triggers. Design bounded failure and recovery instead of assuming perfect prevention.

Pomerium boundary

Pomerium can authenticate access sessions, evaluate route policy, enforce a route decision, and record access events. The deployment must prevent direct upstream access. The application must enforce object and action permissions that depend on application state. The operator owns identity quality, dependency behavior, evidence retention, and recovery.

Evaluation checklist

  • Is each security claim scoped to a system, property, and adverse condition?
  • Does the model include all paths and dependencies that can change the result?
  • Are policy, mechanism, and evidence separate artifacts?
  • Has the team tested a negative path and a dependency failure?
  • Does each accepted residual risk have an owner and review trigger?

Sources and further reading

Keep learning

Security Engineering Foundations

Security Properties

Distinguish confidentiality, integrity, availability, authenticity, accountability, and privacy in a system claim.

Learn this term

Get a Personalized Demo

Schedule a Call with a Pomerium Engineer

Get a Demo