Use the structured threat-modeling process to document who your adversaries are and what controls would stop them before building a new system.
Apply the least-privilege and fail-safe-defaults principles to audit access controls in an existing web application or API.
Use the curated reading list to build a systematic self-study plan for security engineering covering software, physical, and organizational systems.
This repository is a written guide to security engineering, the practice of designing systems that are hard to attack or compromise. Unlike most security tutorials that focus on specific tools or code, this guide treats security as a general discipline that applies to anything from computer networks to physical buildings to casinos to medieval castles. The author's argument is that the underlying principles for making something secure are the same regardless of what you are trying to protect. The guide walks through a structured process. It starts with understanding who your adversaries are and what they are capable of, because a system that is secure against one type of attacker may be completely open to another. From there, it covers writing down your security goals in plain language, then choosing specific mechanisms and controls that meet those goals. The README distinguishes between preventing attacks, detecting them as they happen, and responding after the fact. Several core ideas run through the guide. One is minimizing attack surface, meaning the fewer ways in to a system, the fewer ways an attacker can exploit it. Another is giving each part of a system only the access it actually needs, and no more. The guide also covers fail-safe defaults, meaning a system should block access unless it has explicitly been granted, rather than allow access unless explicitly blocked. The repository includes notes on how specific real-world systems have been secured, covering topics like nuclear command and control, bank bookkeeping, web browsers, voting systems, prisons, museums, and zero-trust corporate networks. It also contains reading lists pointing to books and academic papers for readers who want to go deeper. This is a reference document, not a coding project. There is no software to install. The content is written in Markdown and lives in a single README with linked notes. The full README is longer than what was shown.
← veeral-patel on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.