◢Offset ZeroStart at the first byte · forensics, reverse engineering & detectionAuthor · 13shivam.com
The Psychological Baseline
~8 min readNo prerequisitesReviewed 2026-08-20
Every technical field carries a folklore — the stories it tells about what kind of person does this work, and why. Reverse engineering's folklore is older than most people assume, and it is worth knowing before you start, because it describes with some accuracy the shape of the obsession you are about to acquire.
Two texts define the poles. Both are linked below in full. Neither is reproduced here, and there is a reason for that which is worth stating plainly.
A note on rights
Anatomy of a Pirate is reproduced below in full. It is an orphan work — it circulated anonymously on BBSes from the early 1980s and no author has ever been identified. It is included here for commentary and historical preservation, attributed as accurately as it can be, and it is excluded from this guide's CC BY-SA licence (see the footer). If you hold rights to it, or know who does, please get in touch and it will be credited or removed on request.
The Tao of Programming is not reproduced. It is a commercially published book — InfoBooks, 1987, ISBN 0-931137-07-1 — still in print, still sold, and its author is alive and actively writing. Copies circulate online, including on university personal pages, but a mirror existing is not a licence being granted. It's linked below; it takes twenty minutes to read.
I. The Tao of Programming
Geoffrey James, 1987. A book of koans about software, written as a straight-faced parody of the Tao Te Ching — masters and novices, nine "books" of short anecdotes, and a joke structure carrying an argument that turns out to be serious.
Its central claim, and the reason it belongs at the front of a reverse engineering guide, is a genealogy: the Tao gives birth to machine language, machine language to the assembler, the assembler to the compiler, and thence to ten thousand languages. It is a joke about lineage. It is also a precise technical statement, and it is the entire premise of this discipline.
Because if each of those layers is a translation, then each of them can in principle be run backwards. Source becomes assembly becomes machine code, and the reverse engineer's whole job is walking that chain in the other direction, reconstructing what the compiler discarded. Every tool in the RE track — IDA, Ghidra, the decompilers, the lifters — is an attempt to invert a translation that was never designed to be inverted.
The book's other running theme is that programmers periodically need reminding that beneath the abstraction there is only logic, memory, and arithmetic. James puts it as a warning about experience: "Without software, hardware is useless" — and the converse, which the whole book circles, is that software without an understanding of hardware is a kind of faith.
That is the first failure mode this guide is built against: reverence for the abstraction. You learn a framework and mistake it for the machine. You know what the API call is for, but not what it does. It's why the Reverse Engineering track opens at bytes and registers rather than at tools, and why Phase 1 starts at silicon rather than at software.
II. Anatomy of a Pirate
Author unknown, circulating on BBSes from the early 1980s. A short, deliberately unkind character sketch of an early software cracker — sleepless, obsessive, indifferent to the programs he breaks, and driven by a single conviction: that whatever one person protected, another can unprotect. It is reproduced in full below.
Anatomy of a PirateAuthor unknown · c. 1983 · reproduced in full
His eyes are bloodshot; he doesn't sleep. His wife and children used to know him; they no longer do. At one time, he was a fairly nice, easy-going guy. He liked to tinker, so he bought a computer. His life will never be the same.
At night, he lurks in the shadows, seeking bad sectors, tearing them apart bit by bit, knowing that, soon, he will have broken the code and will have the world's first illegal copy of that diskette. He will keep his old car three more years, won't get his plumbing fixed, and will only survive on coffee and TV dinners, so that he may afford a third or fourth disk drive or the memory expansion he needs.
Decryption and un-protection are his only goals. He does not care what the disk contains or how useful the program may be; breaking the code is far more challenging to him that completing ZORK III. He broke the ZORK series, but never played them. His purpose in life has become all-encompassing. He will get sick from lack of rest; he will have marathon sessions trying to undo the last protection check in the program, and, when he finally has reached his goal, he will experience post-partum depression.
He is not after money, he is not after fame. He just wants to prove to himself that he is more intelligent that the one who devised the protection scheme in the first place.
He will relate his exploits to a very close circle of friends at the club, and, because they listened, he will give them copies.
His energy and imagination, if harnessed, could be used to create another LOTUS or WordStar. His mind, unfortunately, is single-tracked and lacks the visionary and creative qualities required.
He is not unlike a counterfeiter; an electronic safe-cracker who has amassed a wealth of technical knowledge and has invested thousands in tools, only to satisfy that one consuming obsession.
He knows he will never get caught. He knows that, in reality, the ever-increasing complaints of software manufacturers, and programmers whose wealth and luxury are threatened by his actions, are but a reflection on their inability to effectively protect their treasures. He knows that if one man can do it, another man can undo it. He knows that computers have rules that must be obeyed, and that all bootable disks must start the same way. That is enough of a crack for him to get through.
He hates unprotected disks; they offer no challenge. He will save enough to buy a new piece of software whose code hasn't been cracked, and sell it to the highest bidder at the first club meeting which follows his success.
In his public life, he is likely to be non-descript; an underdog who doesn't shine much at anything he does or says. He probably doesn't dress well, his physical appearance is of no importance to him. He doesn't have the charisma and moral fiber of a Long John Silver. His opinions aren't sought, his advice isn't followed. He isn't respected much, except by the freeloaders who depend on him. After all, he is giving something for nothing.
His darkest secret, however, is that he lives in constant fear that, some day, he will fail. He will not crack the code. He will realize that other club members were fair-weather friends and that he lost, in a single stroke of fate, the attention he was so eagerly seeking.
Like the rest of us, he will grow old, his priorities will change, his eagerness will die down. As he looks around him, he may realize that the best times of life have passed him by, and that there is no making up for the lost time. He will be bitter, having left an insignificant mark on the world, having wasted his time in pointless pursuits. No one will miss him.
To him, I dedicate this epitaph:
Here Lies a Pirate Who Never Sailed
Transcribed from copies circulating since the early 1980s BBS era; wording varies slightly between versions and minor transcription artefacts are preserved. Not covered by this guide's CC BY-SA licence — see footer.
The piece is satire, and it has aged into something stranger and more useful than satire. Its subject neglects his family, wrecks his health, spends money he doesn't have on more disk drives, and breaks the copy protection on games he then never plays. The famous detail is that he cracked an entire adventure game series and finished none of it — the puzzle was never the game, it was the protection.
The anonymous author's sharpest observation is about motive. The pirate isn't in it for money or for fame. He's in it to prove, to himself, that he is smarter than whoever designed the scheme. And the piece closes on an epitaph — "Here Lies a Pirate / Who Never Sailed" — which is the whole argument compressed into six words: enormous capability, pointed nowhere.
That is the second failure mode: obsession that has forgotten its purpose. The skill was real. The reason for having it evaporated somewhere along the way, and nobody noticed because the skill kept being fun.
III. Why both, and why here
These two texts bracket the discipline. One warns against knowing too little about the machine; the other warns against knowing a great deal and doing nothing worth doing with it. Between them sits the actual work.
Because the forensic analyst's job is the pirate's skill, pointed somewhere. You take apart software you didn't write, that actively resists being understood, and you determine exactly what it does. Then you write a detection, or a report, or testimony — and a hospital network stays up, or a prosecution holds together, or a family gets an answer. Same obsession. Same 3am. Entirely different output.
The honest version
You will lose evenings to this. You will go much further into a binary than the task required, because you wanted to know. That instinct is correct and this guide is built to feed it.
But keep hold of what the knowledge is for. The people who last in this field are the ones who can put the disassembler down — and the epitaph above is what happens to the ones who can't.
IV. The tradition you're joining
Before "reverse engineer" was a job title with a salary band, it was a hobby with a code of conduct. Fravia's Search Lore, Woodmann's board, the +ORC tutorials — these treated cracking as applied epistemology, and they were pedagogically serious in a way most modern security content isn't. They assumed you would work for the answer. They wrote for people who wanted to understand rather than to acquire.
They also had rules, mostly unwritten: you shared what you learned, you credited whoever taught you, you didn't sell your work, and you didn't punch down. Some of that was posturing. Some of it was genuinely a better culture than what replaced it.
Most of those sites are gone or exist only in archives. The disposition survives, and it is the one this guide is written in: the assumption that you would rather be shown how something works than handed a tool that does it for you — and that if you're going to acquire this particular obsession, you may as well point it at something that matters.
The Manifesto: A Message to the Initiate
~5 min readNo prerequisitesReviewed 2026-08-20
Are you reading this as a young nerd? A high-schooler who just discovered Linux? A college student who wants to be a "hacker"? Read carefully.
Right now, it is very easy to be a "Script Kiddie." You can download Kali Linux, fire up Metasploit, point it at an IP address, press Enter, and watch a shell pop up. It makes you feel powerful.
But you didn't do anything. The tool did the work. You are just the operator.
When that tool fails, or when a real defender patches the vulnerability, you will have no idea what to do next, because you don't actually understand how the computer works. You don't know C. You don't know Assembly. You don't know how memory is allocated on the motherboard.
The Problem with Modern Cybersecurity
The corporate world suffers from the exact same problem. They buy million-dollar tools—Endpoint Detection and Response (EDR), Firewalls, SIEMs—and train "analysts" just to watch dashboards and click "Resolve" when a red light flashes.
But what happens when an advanced nation-state hacker writes malware that completely bypasses the operating system? What happens when the malware alters the voltage of the RAM (Rowhammer), or hides inside the motherboard's firmware (UEFI Bootkit)?
The dashboard stays green. The "analyst" thinks everything is fine. The network burns down.
The Path to Mastery
This document is rebuilt around how forensic analysts actually use adversarial knowledge: to recognize, attribute, and respond. It shows you the absolute edge of human knowledge in cyber warfare and digital forensics as of 2026.
In the days of Woodmann's Board, Fravia's Search Lore, and +ORC, Reverse Engineering (RE) was treated as a high-art logic puzzle. Today, those exact same techniques are used to tear apart nation-state malware. To catch the apex predators of the internet, you cannot rely on a dashboard. You must understand the physics of the silicon, the math of the encryption, and the raw assembly code of the exploit.
Every single topic in this 6-Phase syllabus contains a Reverse Engineering Vector. It explains exactly how real, elite hackers and reverse engineers tear these exploits apart using tools like IDA Pro, Ghidra, and WinDbg.
Don't be a script kiddie. Proceed to Phase 1.
Phase 1: Deep-Tech Fundamentals for Forensic Readiness
~15 min readAdvancedReviewed 2026-08-20
Prerequisites: DFIR Core, and RE Tiers 0–1 for the Reverse Engineering Vectors to land. This phase sits at the hardware and firmware layer — the bottom of the stack.
CONCEPT: Preparing cryptographic infrastructure for "Q-Day" — the point at which a cryptographically relevant quantum computer could break RSA/ECC via Shor's Algorithm.
ATTACKER MINDSET: Adversaries practice "harvest-now-decrypt-later" (HNDL) — exfiltrating encrypted traffic today, betting they can decrypt it once quantum capability matures. This makes long-shelf-life data (health records, state secrets) a priority target now.
DETECTION: Build a Cryptographic Bill of Materials (CBOM) to inventory every algorithm in use. Track migration progress against NIST's finalized standards.
LATEST:Verified NIST finalized ML-KEM (FIPS 203), ML-DSA (FIPS 204) and SLH-DSA (FIPS 205) in 2024. On 22 June 2026 the White House signed Executive Order 14412, "Securing the Nation Against Advanced Cryptographic Attacks," setting hard federal deadlines: post-quantum key establishment by 31 Dec 2030 and post-quantum digital signatures by 31 Dec 2031, with contractors required to meet PQC FIPS by end of 2030. A companion order (EO 14413) covers quantum innovation. Agency migration plans were due to OMB by 22 Oct 2026.
WATCH THIS:Verified In July 2026 Anthropic reported that its Claude Mythos Preview model found a previously unknown weakness in HAWK, a lattice-based signature candidate under NIST consideration, in roughly 60 hours of work and about $100k of compute. The attack exploited a symmetry in HAWK's structure, cutting key recovery on the minimum parameter set from about 264 to 238 operations. HAWK had survived two years and two rounds of expert human review; its authors withdrew it from NIST consideration. A second result improved the best known attack on reduced-round (7-round) AES by 200–800×. Neither affects production systems — HAWK was never deployed and the AES work targets a deliberately weakened variant — but the implication for this syllabus is direct: the review process that certifies the crypto you will defend is now partly machine-driven, and its clock has sped up.
Search terms — click to filter, or use to dig deeper
2. eBPF & Kernel-Space Threat Detection
CONCEPT: Kernel-layer rootkits hide below where traditional user-space EDR looks.
ATTACKER MINDSET: A rootkit that hooks syscalls via eBPF doesn't spawn a new process — it just changes how existing ones behave, invisible to EDR.
LATEST:VerifiedVoidLink is the case study worth knowing. First documented by Check Point Research in January 2026 and analysed in depth by Elastic Security Labs in March 2026 after a source-code dump leaked, it is a cloud-native Linux framework written in Zig, attributed to a Chinese-speaking actor, with 30+ plugin modules and three interchangeable rootkit backends (LD_PRELOAD, LKM, eBPF) selected by target kernel version.
THE CLEVER PART: the LKM uses ftrace hooks on getdents64, vfs_read and do_send_sig_info for process/file hiding. Separately, an eBPF program hooks __sys_recvmsg and uses the bpf_probe_write_user() helper to rewrite Netlink socket-diagnostic responses in user memory — so ss simply never sees the hidden ports, without its output ever looking malformed. C2 rides on ICMP echo requests tagged with a magic ID (default 0xC0DE), single-byte XOR obfuscated, intercepted by Netfilter hooks — so there is no listening socket to find.
ALSO NOTABLE: Check Point presented evidence VoidLink was built largely through AI-assisted development by a single developer. Related in-the-wild eBPF rootkits include LinkPro and the Atomic Arch campaign; earlier research examples are TripleCross, Boopkit, and io_uring-based RingReaper.
DETECTION: treat BPF_PROG_LOAD as the highest-value telemetry point — a program's helper capabilities are knowable at load time, before it attaches and starts shaping what the host reports. Then cross-reference sources that should agree: ps vs /proc, ss vs /proc/net/tcp, lsmod vs /sys/module. Disagreement between two views of the same truth is the rootkit's signature. Enforce Secure Boot, kernel lockdown, and signed modules.
[ REVERSE ENGINEERING VECTOR ]
eBPF bytecode operates on a specific virtual machine architecture. Reversers dump the raw eBPF maps from memory using bpftool map dump. They then use tools like ebpf-disass or compile Ghidra plugins to disassemble the eBPF instructions, tracing how the rootkit manipulates the syscall return values to blind the OS.
Search terms — click to filter, or use to dig deeper
CONCEPT: Speculative-execution flaws (Spectre family) and DRAM physics flaws (Rowhammer) break security boundaries at the hardware level.
LATEST:Verified In September 2025, researchers at ETH Zürich and Google disclosed Phoenix (CVE-2025-6202, CVSS 7.1). They reverse-engineered SK Hynix's on-die Target Row Refresh (TRR) mitigation, then used that knowledge to build the first practical Rowhammer privilege-escalation exploit on a production DDR5 desktop — reaching root in about 109 seconds. All 15 tested SK Hynix modules manufactured between Jan 2021 and Dec 2024 were vulnerable, including modules with on-die ECC. The practical mitigation is tripling the DRAM refresh interval (tREFI), at a performance cost. A companion 2025 result, GPUHammer, demonstrated the same physics against GPU memory.
[ REVERSE ENGINEERING VECTOR ]
How do you RE an attack that leaves no software trace? Analysts extract physical RAM and use Volatility3 and Rekall to map the exact bit-error distribution, finding the physical "burn marks" left by Rowhammer. For side-channels, analysts use chip-red-pill to extract undocumented CPU microcode.
Search terms — click to filter, or use to dig deeper
4. Firmware (Ring -3) & UEFI Bootkits
CONCEPT: Unified Extensible Firmware Interface (UEFI) lives on the motherboard's SPI flash chip. Bootkits patch the OS bootloader in memory. If you format the hard drive, the malware survives because it lives on the motherboard.
[ REVERSE ENGINEERING VECTOR ]
The reverser must physically attach a hardware clip (CH341A SPI programmer) directly to the motherboard chip, and rip the raw code out of the silicon. They load the code into UEFITool and CHIPSEC, extract the raw executables, and map the assembly in IDA Pro to see exactly how the malware hooks the ExitBootServices event to hijack the Windows boot sequence.
Search terms — click to filter, or use to dig deeper
5. OT/ICS Incident Response & Air-Gap Integrity
CONCEPT: Cyber-physical attacks cross the IT/OT boundary to cause physical-world effects. Air-gaps create false security. Real intrusions cross them via compromised engineering workstations or edge devices.
LATEST:Verified Joint advisory AA26-097A (FBI, CISA, NSA, EPA, DOE, CNMF, Treasury) was published 7 April 2026 and substantially updated 22 July 2026. It documents Iranian-affiliated APT actors — publicly tied to CyberAv3ngers / IRGC Cyber Electronic Command — exploiting internet-exposed PLCs across US water and wastewater, energy, and government facilities. Originally Rockwell Automation/Allen-Bradley; the July update expanded scope to Schneider Electric and Siemens, and added a new exfiltration technique: using the vendors' own legitimate engineering software to steal PLC project files (ATT&CK T1041).
THE LESSON: no zero-day was required. The actors found PLCs directly reachable from the internet with default or absent credentials. At one confirmed US victim they modified ladder logic to disable safety shutdown and alarm functions, and manipulated what HMI and SCADA displays showed operators — so the control room believed the process was nominal while it was not. The attack targets the operator's picture of reality, not just the equipment. This is the most important idea in OT security and it generalises well beyond ICS.
DETECTION: PLC firmware and logic-baseline hashing stored offline (this is both detection and recovery), protocol-aware ICS monitoring (Modbus/DNP3-specific IDS), IEC 62443 zone-and-conduit segmentation, and independent instrumentation you can cross-check the HMI against.
CONCEPT: Baseline normal behavior — keystroke dynamics, login timing, spatio-temporal GPS drift. Stolen-but-valid credentials pass every authentication check; only behavior gives them away.
DETECTION: UEBA platforms score anomalies against peer groups rather than fixed thresholds, feeding risk-based alerting into the SIEM.
Search terms — click to filter, or use to dig deeper
2. ReBAC / Zanzibar-Style Authorization Auditing
CONCEPT: Large-scale systems (Google's internal Zanzibar system, OpenFGA, SpiceDB) express permissions as relationship graphs rather than static access-control lists.
FORENSICS: The audit question shifts from "who has a role" to "what access paths does the relationship graph actually permit" — investigators trace privilege-escalation paths through the graph and hunt for stale relationship tuples.
THE KEY PRIMITIVE: A relation tuple asserts 〈object〉#〈relation〉@〈user〉, and putting a userset (object#relation) in the user position is what makes groups, nesting, and inheritance fall out of a single mechanism. Investigation centres on Expand (why was this permitted?) and reverse lookup (what can this subject reach?).
GO DEEPER: The Zero Trust & Authorization track covers the Zanzibar design in full — userset rewrite rules, the new enemy problem and zookies, the Leopard index, the open-source descendants, and a complete auditing methodology.
Search terms — click to filter, or use to dig deeper
3. Insider Threat & Telemetry Exfiltration
CONCEPT: Internal tools with broad data access are a recurring vector (e.g., the historical Uber "God View" misuses). Detection relies on immutable audit logging on internal tools and JIT (Just-In-Time) access.
Search terms — click to filter, or use to dig deeper
4. Baseband & Hardware Root-of-Trust Auditing
CONCEPT: Cellular baseband processors run a separate, historically under-audited OS from the application processor, often with DMA access.
[ REVERSE ENGINEERING VECTOR ]
Reversing Baseband RTOS requires extracting firmware over JTAG or via OTA capture. Reversers load the binary into Ghidra (using custom modules via OsmocomBB) to hunt for backdoor AT commands that bypass the host OS entirely.
Search terms — click to filter, or use to dig deeper
5. EDR Evasion: Direct Syscalls & BYOVD
CONCEPT: EDRs inject DLLs to monitor Windows APIs. Modern malware dynamically resolves the Syscall ID (Hell's Gate) to bypass the API, or drops a signed but vulnerable driver (BYOVD) to gain Ring 0 access and kill the EDR callbacks.
[ REVERSE ENGINEERING VECTOR ]
Loading the malware in x64dbg. The reverser traces the malware walking the PEB to find `ntdll.dll`. The analyst observes the malware reading the export table to dynamically construct the syscall stub (mov r10, rcx; mov eax, [SyscallID]; syscall) in its own memory space to evade the EDR's `jmp` hooks.
Search terms — click to filter, or use to dig deeper
Prerequisites: basic familiarity with how neural networks are trained. Phase 1's Rowhammer material connects directly to the bit-flip backdoor research here.
1. Neural Backdoor Latency & Trojan Detection
CONCEPT: A backdoor hides inside a trained model's weights, utilizing neural backdoor latency to stay dormant through normal validation and activating only on a rare trigger pattern.
LATEST:Active research A line of research on bit-flip attacks shows that Rowhammer-induced flips in model weights can implant backdoor behaviour into an already-trained network, with no access to the training pipeline at all. This is the point where Phase 1's hardware content and Phase 3's ML content stop being separate subjects — verify the specific paper and its threat model before citing figures.
[ REVERSE ENGINEERING VECTOR ]
Machine Learning RE (ML-RE). The analyst extracts the .pt (PyTorch) model file. Using Netron, they map the computational graph. They deploy Neural Cleanse to reverse-engineer minimal trigger patterns, and write scripts to perform Weight Tensor Diffing, comparing the hacked AI against a clean AI, isolating the exact "neuron" where the trigger lives.
Search terms — click to filter, or use to dig deeper
2. Linguistic Steganalysis (Stochastic Forensic Steganography)
CONCEPT: Text steganography hides data by shifting next-token probability distributions during generation — utilizing stochastic variations in synonym choice and punctuation as a covert channel.
LATEST:Active research Recent work reports early signs that frontier language models can encode information steganographically without being explicitly trained to do so — see the arXiv paper linked in Resources, and treat the strength of the claim as contested rather than settled.
DETECTION: Uses LLMs themselves as detectors, comparing a suspect text's token-level probability distribution against what a clean model would generate in the same context.
Search terms — click to filter, or use to dig deeper
3. Data Poisoning Provenance & Supply-Chain Integrity
CONCEPT: Small corruptions introduced early in a training pipeline compound into systemic downstream failures — informally a "dragon tail" risk.
DETECTION: Data provenance/lineage tracking, influence functions (identifying which training points most affect a prediction), dataset versioning with hash-based integrity checks.
Search terms — click to filter, or use to dig deeper
CONCEPT: Perturbation tools like Fawkes and Nightshade subtly alter images so facial-recognition or classifier models misread them while looking normal to a human.
DETECTION: Investigators need to recognize when evidentiary images have been perturbed, since it affects the reliability of automated facial-recognition matches in casework.
Search terms — click to filter, or use to dig deeper
Humans can't read a million fake pathways, but math can. Reversers use SMT Solvers like angr or Z3. They translate the malware's assembly code into algebraic formulas. The SMT solver mathematically proves which path is the "real" one that holds the payload. They also use frameworks like Miasm or Triton to translate the mutated assembly into an Intermediate Representation (IR) to clean up the spaghetti code.
Search terms — click to filter, or use to dig deeper
2. Mobile/APK Integrity Verification
CONCEPT: Bytecode reordering and resource-alignment manipulation can alter an APK's internal structure without changing its apparent runtime behavior to encode persistent bitstreams.
DETECTION: Dalvik bytecode integrity hashing, reproducible-build verification against known-good hashes, and mobile threat defense (MTD) platforms.
Search terms — click to filter, or use to dig deeper
3. Video & Codec-Level Steganography
CONCEPT: Media files are the highest-capacity covert channel available on a normal network, and video is the richest of all — a single minute of 1080p carries enough redundancy to hide megabytes without a visible artifact. Data can be hidden in the container (unused MP4 atoms), in transform coefficients, in motion vectors, or in coding decisions the encoder makes thousands of times per second.
ATTACKER MINDSET: "Stegomalware" hides a payload inside an innocuous-looking media file so that neither the file's extension, its MIME type, nor a signature scan reveals anything. The file plays normally. Egress filtering sees a video upload, which is the single most unremarkable thing on a corporate network.
DETECTION: Container-level anomalies are cheap to spot (bitrate/duration/filesize mismatch, trailing data past the last atom). Codec-level embedding requires statistical steganalysis — see the dedicated STEGO_LAB track for the full treatment.
Search terms — click to filter, or use to dig deeper
4. Dynamic Binary Instrumentation (DBI)
CONCEPT: Advanced malware encrypts itself ("packing") so if you look at the file on the hard drive, it just looks like random garbage.
[ REVERSE ENGINEERING VECTOR ]
Instead of trying to manually decrypt the garbage, the reverser uses DBI tools like Frida or Intel Pin. They tell Frida to watch the computer's RAM. Because the malware has to decrypt itself in RAM to execute, the reverser waits for that exact millisecond and instantly dumps the decrypted code to their own hard drive.
Search terms — click to filter, or use to dig deeper
5. Covert Timing-Channel Detection
CONCEPT: Data can be encoded in inter-packet timing jitter or protocol-header patterns, designed to statistically blend with normal traffic baseline.
DETECTION: Statistical regularity tests on packet timing, entropy analysis of header fields, and JA3/JA4 TLS-handshake fingerprinting (using Zeek/Suricata).
Search terms — click to filter, or use to dig deeper
Phase 5: Zero Trust Failure Analysis & Verification
~7 min readIntermediateReviewed 2026-08-20
1. Where Zero Trust Architecture Actually Breaks
CONCEPT: Centralized policy-decision-point (PDP) bottlenecks, "authenticate once" assumptions, and static risk scoring create blind spots. A validated-but-malicious payload can walk straight through.
DETECTION: Continuous adaptive trust (CAT) models that re-score risk dynamically throughout a session, real-time risk engines, and active ZTA red-teaming.
THE DEEPER FAILURE: Every check can be perfect and still return yes for someone who should have lost access months ago, because the underlying permission was never revoked. Zero Trust verifies the requester rigorously, then asks the authorization model a question — and enforces whatever answer it gets.
GO DEEPER: The Zero Trust & Authorization track covers NIST SP 800-207's logical components, the CISA maturity model, each documented failure mode, and how relationship-based authorization supplies the structural half of the answer.
Search terms — click to filter, or use to dig deeper
CONCEPT: Trusted Execution Environments (Intel TDX, AMD SEV-SNP, ARM CCA), remote attestation, Zero-Knowledge Proofs (ZKPs), and Cryptographic Information Flow Control (CIFC) let you prove code ran correctly, preventing runtime memory scraping.
LATEST: Confidential computing is extending across the CPU-GPU boundary for AI workloads (e.g., AMD SEV-SNP confidential VMs paired with NVIDIA confidential GPU compute). The open research problem is "composite attestation" across multiple hardware vendors.
Search terms — click to filter, or use to dig deeper
Prerequisites: read Legal & Ethics before the OSINT material. The techniques here are genuinely dual-use.
1. Algorithmic Cognitive Warfare & CIB Detection
CONCEPT: Coordinated Inauthentic Behavior (CIB) where bot and sockpuppet networks manipulate platform recommendation algorithms through synchronized, non-organic engagement to achieve narrative distortion.
DETECTION: Individual account analysis is obsolete. Analysts construct similarity-network graphs, track cross-platform coordination (X, Telegram, TikTok), and map graph-neural-network anomalies.
Search terms — click to filter, or use to dig deeper
2. Dark Web OSINT & "Medusa-Class" AI Web Mining
CONCEPT: Advanced defensive and intelligence teams deploy multi-threaded reconnaissance frameworks to navigate and parse the deep/dark web. Tools like the MEDÚSA suite act as active, cutting-edge AI-driven web mining platforms. They crawl, extract data, run automated facial recognition, and convert chaotic spaces into structured profiles.
DETECTION: Utilizing commercial dark-web monitoring platforms, enterprise credential-leak monitoring, and OSINT collection under chain-of-custody standards.
Search terms — click to filter, or use to dig deeper
3. Chinese APT SOHO Botnets (Volt Typhoon)
CONCEPT: To hide their origin and preposition inside critical infrastructure, Chinese APTs compromise thousands of Small Office/Home Office (SOHO) routers. They route their attacks through domestic internet connections to look like local traffic.
[ REVERSE ENGINEERING VECTOR ]
Extracting the MIPS/ARM ELF binaries from the compromised routers. Loading them into Ghidra to reverse the C2 beaconing protocol. The reverser writes a custom decrypter for the malware's string obfuscation routines, extracting the hardcoded IPs of the true nation-state infrastructure. JARM is used to fingerprint the remote TLS configuration.
Search terms — click to filter, or use to dig deeper
4. Weaponized Extortion & OSINT Without Borders (Medusa Syndicate)
CONCEPT: Medusa is an active Ransomware-as-a-Service (RaaS) operation. They moved beyond simple encryption by running their own weaponized public intelligence node called "OSINT Without Borders" to broadcast exfiltrated target profiles, weaponizing OSINT principles against the victim to force payment.
DETECTION: Map observed activity to MITRE ATT&CK using the CISA/FBI #StopRansomware advisory (AA25-071A) IOCs. Forensics focuses on offline/immutable backups and tracking the specific unpatched-software vectors the syndicate relies on.
Search terms — click to filter, or use to dig deeper
5. Russian APTs & Satellite IP Hijacking (Turla/GRU)
CONCEPT: Turla exploits unencrypted DVB-S (Digital Video Broadcasting—Satellite) links. They spoof the IP address of a legitimate satellite internet user in a remote location to hide C2 servers.
DETECTION: Law enforcement and threat hunters must trace BGP routing anomalies and physical signal triangulation, rather than relying on standard IP blocklists.
Search terms — click to filter, or use to dig deeper
Reverse Engineering Mastery: Foundations to Apex
~25 min readBeginner → AdvancedReviewed 2026-08-20
Prerequisites: a working lab (Lab Setup) and some programming experience in any language. Tier 0 assumes nothing else.
Every Phase in this guide references a Reverse Engineering Vector — a two- or three-sentence pointer to how an analyst would actually tear a given technique apart. This is the track that turns those pointers into an actual skill. It runs from "what is a byte" to full malware-analysis methodology, in the same order most working reverse engineers picked it up, and every tier is something you can start practicing today in a disposable VM.
TIER 0
Foundations
TIER 1
Beginner
TIER 2
Intermediate
TIER 3
Advanced
TIER 4
Practice Range
Tier 0 Foundations You Need Before Opening IDA
1. Data Representation & Number Systems
CONCEPT: Binary, hexadecimal, and why hex is the reverser's native language — one hex digit is exactly four bits, so a byte is always two clean hex characters. Two's complement for signed integers. Endianness: little-endian (x86/x64, ARM in its usual mode) stores the least-significant byte first; big-endian does the opposite.
Bytes 0x00–0x01 are the "MZ" magic number (0x5A4D) that opens every Windows PE file — the first thing a reverser checks in a hex editor to confirm what they're actually looking at.
WHY IT MATTERS: every address, opcode, and immediate value you will ever see in a disassembler is hex. Misreading endianness is the single most common beginner mistake when reconstructing a struct or an IP address by hand from raw bytes.
Search terms — click to filter, or use to dig deeper
2. From Source to Silicon: The Build Pipeline
CONCEPT: Preprocessor → compiler (source to assembly) → assembler (assembly to machine code/object files) → linker (object files + libraries → final executable). Static linking folds library code directly into the binary; dynamic linking leaves it to be resolved at load time via the import table.
WHY IT MATTERS: a decompiler's output never looks like the original C because information is destroyed at every stage — variable names, comments, and type information don't survive compilation. Reverse engineering is, fundamentally, the business of reconstructing what the build pipeline threw away.
Search terms — click to filter, or use to dig deeper
3. CPU Architecture, Registers & The Stack
CONCEPT: General-purpose registers (RAX/RBX/RCX/RDX/RSI/RDI/RBP/RSP plus R8–R15 on x64), the instruction pointer (RIP), and the EFLAGS/RFLAGS condition bits that drive every conditional jump. The stack grows downward and is strictly LIFO; a function's prologue (push rbp; mov rbp, rsp; sub rsp, N) and epilogue define its stack frame.
CALLING CONVENTIONS: legacy 32-bit Windows used cdecl/stdcall/fastcall; modern 64-bit code uses the System V AMD64 ABI on Linux/macOS (arguments in RDI, RSI, RDX, RCX, R8, R9) or the Microsoft x64 convention on Windows (RCX, RDX, R8, R9). Knowing the convention lets you read a function's arguments straight off the registers before a single line of decompiled pseudocode exists.
Search terms — click to filter, or use to dig deeper
4. Executable File Formats: PE, ELF & Mach-O
PE (Windows): DOS header/stub → NT headers (COFF file header + optional header) → section table (.text/.data/.rdata/.rsrc) → Import Address Table (IAT) → export table.
ELF (Linux): ELF header → program headers (how the loader maps segments into memory) → section headers (symbols, relocations) → the dynamic section (.dynsym/.dynstr) used to resolve shared libraries at runtime.
MACH-O (macOS/iOS): load commands describing segments, and the LC_MAIN command marking the entry point — structurally different from PE/ELF but serving the same purpose.
WHY IT MATTERS: the import table alone tells you what a program can do before you disassemble a single instruction. A binary importing CreateRemoteThread and WriteProcessMemory is telling on itself.
Search terms — click to filter, or use to dig deeper
Tier 1 Beginner: Static Analysis & Tool Fluency
1. Triage Before You Touch a Disassembler
CONCEPT:file to identify the format, strings -n 8 to surface hardcoded URLs/IOCs/error messages, hashing (MD5/SHA-256) to cross-reference against VirusTotal or MalwareBazaar, and signature scanners like Detect It Easy (DIE) to fingerprint the compiler and check for a packer before you invest hours in deeper analysis.
WHY IT MATTERS: most "what is this file" questions get answered in the first five minutes, before a disassembler is ever opened. Triage is a discipline, not a shortcut — skipping it is how analysts waste a day reversing something that a hash lookup would have identified in seconds.
filestringsDetect It EasyVirusTotalexiftool
Search terms — click to filter, or use to dig deeper
2. Hex Editors: Reading the Raw Bytes
CONCEPT: HxD (Windows, free), 010 Editor (paid, template-driven structure parsing), and ImHex (free, open-source, with a live pattern language for parsing binary formats as you scroll). A hex editor is where you internalize that "everything is bytes" — a JPEG header, a PE header, and an encrypted blob are indistinguishable to a computer except by the meaning a format spec assigns to the byte patterns.
PRACTICE: in a disposable copy of a binary inside an isolated analysis VM, use a hex editor to flip a single conditional-jump opcode byte (0x74 JE ↔ 0x75 JNE) and observe how the patched behavior changes — the smallest possible demonstration of what "patching" means.
HxD010 EditorImHex
Search terms — click to filter, or use to dig deeper
3. Your First Disassembly
CONCEPT: a disassembler maps raw opcode bytes back to assembly mnemonics. Linear sweep disassembly reads bytes straight through and breaks the moment it hits embedded data misread as code; recursive descent disassembly follows actual control flow (branches, calls) the way IDA and Ghidra do, which is far more accurate but still fooled by indirect jumps computed at runtime.
WHY IT MATTERS: perfect disassembly is undecidable in the general case — this is exactly why modern tools are interactive rather than fully automatic, and why the human in the loop (you) is still the most important part of the pipeline.
Search terms — click to filter, or use to dig deeper
4. IDA Pro & IDA Free — The Interface
CONCEPT: the Functions window for navigating everything IDA has identified; Graph view (control-flow blocks and arrows) versus Text view (linear listing) of the same function; the Hex View pane synced to your cursor; the Strings window; and Xrefs — cross-references answering "who calls this function" or "who references this string," the single most-used feature for navigating a large unfamiliar binary. FLIRT signatures automatically recognize statically-linked standard-library functions so you never waste time reversing memcpy.
WORKFLOW HABIT: rename functions and variables the moment you understand what they do — sub_401020 becomes decrypt_config_blob — so your future self (and anyone reading your notes) inherits the work instead of re-deriving it.
IDA FreeIDA ProHex-Rays Decompiler
Search terms — click to filter, or use to dig deeper
5. Ghidra — The Free, Open-Source Alternative
CONCEPT: developed by the NSA and released under Apache-2.0, Ghidra centers on the CodeBrowser workspace and ships a built-in decompiler that rivals Hex-Rays for many architectures at zero cost. Version Tracking supports diffing binaries across builds, and the whole tool is scriptable via Python or Java.
GHIDRA VS. IDA: because it's free and scriptable, Ghidra is the default starting point for most students and the tool most CTFs assume you already have. IDA Pro tends to take over for professional work once decompiler polish and processor-module coverage start to matter for the job.
GhidraCodeBrowserVersion Tracking
Search terms — click to filter, or use to dig deeper
6. Practice: Your First Crackmes
CONCEPT: a "crackme" is a small program deliberately built to be reverse-engineered — almost always a serial-number or password check with no real-world payload. Start with unpacked, non-obfuscated 32-bit crackmes on crackmes.one, picoCTF's Reverse Engineering category, and Root Me's beginner track.
GOAL AT THIS TIER: locate the comparison, understand what input makes it succeed, and explain why in your own words. You are reading code, not writing exploits — that distinction is what keeps this tier squarely educational.
Search terms — click to filter, or use to dig deeper
CONCEPT: x64dbg (Windows, free, user-mode, spiritual successor to OllyDbg), WinDbg (Microsoft's kernel- and user-mode debugger with symbol-server integration for resolving Windows internals), gdb extended with pwndbg or GEF on Linux, and lldb on macOS. Breakpoints can be software (an injected INT3) or hardware (CPU debug registers, harder for a target to detect); stepping can go into or over calls; conditional breakpoints let you skip past thousands of loop iterations to the one that matters.
x64dbgWinDbggdb + pwndbg/GEFlldb
Search terms — click to filter, or use to dig deeper
2. Reading Decompiler Output
CONCEPT: Hex-Rays and Ghidra's decompiler both reconstruct C-like pseudocode from assembly — a reconstruction, not the original source. Learning to retype variables and structures (turning a1 + 0x18 into packet->header.length) is most of the actual skill. Recognize common compiler patterns: switch-statement jump tables, loop unrolling, stack-canary checks (__security_cookie), and tail-call optimization that can make control flow look deceptively linear.
Search terms — click to filter, or use to dig deeper
3. Scripting Your Analysis: IDAPython & Ghidra Scripting
CONCEPT: both tools expose their full object model to a scripting API — IDAPython for IDA, a Python/Jython or Java API for Ghidra. Common uses: batch-renaming thousands of functions from a symbol list, walking every string in a binary to auto-extract IOC-shaped data, or diffing the function list between two samples.
WHY IT MATTERS: the moment you're analyzing more than one sample of a family, scripting the repetitive parts is what separates a manual reverser from an efficient one.
Search terms — click to filter, or use to dig deeper
4. Binary Diffing: Finding What Changed
CONCEPT: BinDiff (Google, free) and Diaphora compare two binaries function-by-function using structural and graph-based matching rather than a byte-for-byte comparison.
[ REVERSE ENGINEERING VECTOR ]
Two classic uses. N-day research: diffing a patched DLL against its pre-patch version reveals exactly what a vendor's security bulletin fixed, function by function. Family tracking: diffing a new malware sample against a known family baseline shows precisely what the operators changed between campaigns — new anti-analysis checks, a swapped encryption routine, an added persistence method.
BinDiffDiaphora
Search terms — click to filter, or use to dig deeper
5. Basic Unpacking
CONCEPT: a "packer" compresses or encrypts the real code and wraps it in a small stub that reconstructs it in memory at runtime — which is why the file on disk looks like noise (high entropy) even though it runs fine. UPX is the classic teaching packer because it's unencrypted and trivially reversible (upx -d), which makes it ideal for learning the underlying concept before facing custom packers.
METHOD: find the Original Entry Point (OEP) — the address execution jumps to once the real code is unpacked — by breakpointing on suspicious memory-write patterns, then dump the unpacked process image with Process Hacker or Scylla once you're sitting at OEP in a debugger.
Search terms — click to filter, or use to dig deeper
CONCEPT: protected software checks whether it's being watched — IsDebuggerPresent/CheckRemoteDebuggerPresent, timing checks around RDTSC (code runs suspiciously slowly under a debugger), CPUID-based hypervisor-bit checks, and VM-specific artifacts (registry keys, MAC OUI ranges, driver names).
ANALYST'S JOB: recognize that a check is happening and where it branches, so you can patch the single conditional jump or adjust a register value in your own debugger and keep analysis moving — strictly inside a lab environment you control. This is analysis tradecraft for getting past a target's defenses during legitimate research, not a technique for use outside that context.
Search terms — click to filter, or use to dig deeper
CONCEPT: opaque predicates (branches whose outcome is always the same but isn't obvious to a machine), control-flow flattening (collapsing normal structure into a giant switch-driven state machine), and full binary virtualization (VMProtect, Themida) that translates the original code into a custom bytecode run by an embedded VM interpreter.
CONNECTS TO: the SMT-solver and IR-lifting techniques from Phase 4 — angr/Z3 for resolving opaque predicates, Miasm/Triton for lifting mutated assembly into a reasoning-friendly intermediate representation. IDA Pro's built-in gooMBA plugin targets this exact class of problem for Mixed Boolean-Arithmetic obfuscation.
Search terms — click to filter, or use to dig deeper
3. Dynamic Binary Instrumentation at Scale
CONCEPT: Frida (scriptable, cross-platform, huge community), Intel Pin, and DynamoRIO inject instrumentation into a running process without modifying the binary on disk. Used for automated unpacking (dump memory the instant a decrypt routine finishes), full API-call tracing across an execution, and building repeatable analysis pipelines that don't need a human driving a debugger for every single sample.
FridaIntel PinDynamoRIO
Search terms — click to filter, or use to dig deeper
4. Symbolic & Concolic Execution
CONCEPT: angr and Triton represent a program's execution as symbolic formulas instead of concrete values, letting an SMT solver like Z3 answer questions such as "what input reaches this code path" mathematically, across thousands of paths a human could never manually trace. The same machinery introduced for homoglyph/opaque-predicate deobfuscation in Phase 4 generalizes into a core advanced-tier skill here.
Search terms — click to filter, or use to dig deeper
5. Firmware & Embedded Targets
CONCEPT: connects directly to Phase 1's Ring -3/UEFI work and Phase 2's baseband auditing — JTAG/SWD for hardware debug access, Ghidra's processor modules covering MIPS/ARM/Xtensa/PowerPC (the architectures firmware actually runs on), and binwalk for carving filesystems and compressed blobs out of a raw firmware dump before anything gets loaded into a disassembler.
binwalkGhidra processor modulesJTAG/SWD
Search terms — click to filter, or use to dig deeper
6. End-to-End Methodology
CONCEPT: how it comes together in a real workflow — sandbox detonation (CAPEv2 or Cuckoo Sandbox for automated behavioral reports) to triage volume quickly, manual static and dynamic analysis reserved for whatever the sandbox can't explain, YARA rule authoring to generalize a finding into a reusable detection signature, and reporting mapped to MITRE ATT&CK technique IDs so the work is actually consumable by a SOC.
THE LOOP: automate the easy 90%, reverse the hard 10% by hand, turn every finding into a detection. That loop is the actual day-to-day job.
Search terms — click to filter, or use to dig deeper
Tier 4 The Practice Range
Skills atrophy without repetition. This is where the tiers above turn into muscle memory — all on legal, purpose-built targets.
Platform
Level
Cost
Focus
crackmes.one
Beginner → Advanced
Free
Huge tagged/rated library of classic crackmes
picoCTF (Carnegie Mellon)
Beginner
Free
Year-round, gentle on-ramp into RE + broader security
OpenSecurityTraining2
Beginner → Advanced
Free
Structured, university-style video courses, x86 asm through rootkits
pwn.college (Arizona State University)
Beginner → Advanced
Free
Auto-graded "dojo" modules, built by the angr framework team
Root Me
Beginner → Advanced
Free tier
Hundreds of RE/cracking challenges across difficulty bands
pwnable.kr / pwnable.tw
Intermediate → Advanced
Free
RE leaning into binary exploitation
Flare-On (Mandiant, annual)
Advanced → Expert
Free
The toughest widely-run public RE CTF; past years stay published
MalwareBazaar / Any.Run / CAPE public reports
All levels
Free
Study real-world behavioral reports without sourcing live samples
Lab hygiene, restated: everything above happens inside an isolated VM you can snapshot and revert — host-only networking, no shared folders, no personal or production systems. This is the same rule the Resources page states for the rest of this guide; it applies doubly here, since this is the track where you're running unfamiliar code.
Media Steganography & Steganalysis
~20 min readIntermediateReviewed 2026-08-20
Prerequisites: Phase 4 topic 3 for context. Video sections assume no codec knowledge — the internals are explained as needed.
Cryptography makes a message unreadable. Steganography makes the existence of the message undetectable — and that is a fundamentally different forensic problem. Encrypted traffic announces itself; a stego payload's entire design goal is that nothing in your telemetry ever fires. This track covers where data actually gets hidden in modern media, and how a forensic analyst detects it.
Framing note. Everything below is written from the steganalysis side — what an analyst looks for, what statistical trace each embedding domain leaves, and which detectors and datasets exist. The embedding techniques are described at the level needed to understand their detectable artifacts, which is exactly the level the academic literature treats them at.
Foundations The Model
1. The Model: Cover, Payload, Stego-Object
CONCEPT: Simmons' Prisoners' Problem is the canonical framing: two prisoners plan an escape through messages that a warden reads. If the warden merely observes, they are a passive warden; if they alter messages in transit to destroy any hidden content, they are an active warden. The cover is the innocent carrier, the payload is the hidden data, the stego-object is the result.
THE TRADE-OFF TRIANGLE: capacity, imperceptibility, and robustness are in direct tension — you cannot maximize all three. Push capacity up and statistical detectability rises with it. Add robustness against re-encoding and you burn capacity on redundancy. Every real scheme picks a corner, and which corner it picked is itself a forensic clue.
WHY IT MATTERS: Kerckhoffs's principle applies here too — security must rest on the stegokey, not on the secrecy of the algorithm. Any scheme whose only defence is that you haven't heard of it fails the moment an analyst does.
Search terms — click to filter, or use to dig deeper
Domain 1 Images
1. Image Steganography: Spatial and Transform Domains
SPATIAL DOMAIN: LSB substitution replaces the least-significant bit of pixel values; LSB matching (±1 embedding) increments or decrements instead, which avoids the structural pairing artifact that made naive LSB trivially detectable in the early 2000s.
TRANSFORM DOMAIN: in JPEG, embedding targets quantized DCT coefficients rather than pixels, since the pixels don't survive compression. JSteg, F5 (matrix encoding to reduce the number of changes) and OutGuess are the historically important schemes, and remain the standard teaching examples.
MODERN / CONTENT-ADAPTIVE: current schemes (HUGO, WOW, S-UNIWARD, HILL) assign a cost to changing each pixel and concentrate embedding in texturally complex regions where change is statistically cheap — edges, noise, foliage — while avoiding smooth gradients like skies where any modification screams. Syndrome-trellis codes (STC) then minimize total distortion for a given payload. This is the real state of the art, and why "just check the LSBs" stopped working two decades ago.
Search terms — click to filter, or use to dig deeper
2. Image Steganalysis: How It's Actually Detected
STRUCTURAL / STATISTICAL: the chi-square attack detects the frequency-histogram flattening caused by sequential LSB embedding; RS analysis and sample-pair analysis estimate the embedding rate rather than just flagging presence.
FEATURE-BASED (the workhorse era): SPAM features and the Spatial Rich Model (SRM) extract thousands of noise-residual co-occurrence features, then train an ensemble classifier to separate cover from stego. This is still a strong, interpretable baseline.
DEEP LEARNING: purpose-built CNNs — XuNet, YeNet, SRNet, ZhuNet — learn residual features directly and now dominate benchmark performance. The ALASKA2 competition brought this into the open in a realistic multi-source setting.
THE HARD PROBLEM:cover-source mismatch. A detector trained on one camera's sensor noise, one processing pipeline, or one JPEG quality factor degrades badly on another. This is the single biggest obstacle to deploying steganalysis operationally, and the reason academic accuracy figures rarely survive contact with real casework.
Search terms — click to filter, or use to dig deeper
Domain 2 Video — The Deep End
1. Video Steganography: Why Video Is the Richest Cover
CONCEPT: video offers everything an attacker wants in a cover medium: enormous raw capacity, heavy spatial and temporal redundancy, and total ubiquity — video uploads are the least suspicious traffic on any modern network. It also offers something images don't: an entire layer of encoder decisions (motion estimation, partitioning, mode selection) that carry information yet have no single "correct" value, making them ideal places to hide data.
THE KEY INSIGHT: a video codec is a lossy compressor making millions of near-tie decisions per file. Whenever an encoder faces two nearly-equal-cost choices, a steganographic scheme can pick the one that encodes a bit. Detection therefore reduces to a sharp question: did this encoder make the choices a normal encoder would have made?
Search terms — click to filter, or use to dig deeper
2. Where Data Hides: The Embedding Stack
Video hiding happens at four distinct levels, in increasing order of sophistication and decreasing order of detectability by simple tooling:
Container / WrapperUnused MP4/ISO-BMFF boxes (free, skip), data appended past the last atom, Matroska Void elements, polyglot files. Doesn't touch the video at all.Trivial to detect
Spatial / Pre-encodeModify raw frames before encoding (image steganography applied per-frame). Simple, but lossy compression destroys most of it.Fragile
Transform / IntraQuantized DCT/DST coefficients in I-frames, quantization-parameter modulation, intra-prediction mode selection (H.264 has 9 luma 4×4 modes; HEVC has 35).Statistically detectable
Inter / MotionMotion vector modulation, MVD and MVP-index selection, CU quadtree partition depth. The current research frontier.Requires dedicated steganalysis
Search terms — click to filter, or use to dig deeper
3. Container-Level Hiding & Fast Triage
CONCEPT: the crudest and by far the most common approach in the wild — append a payload after the final atom, or stuff it into a free/skip box the demuxer is contractually obliged to ignore. The video plays perfectly because no decoder ever reads those bytes.
DETECTION: this is a five-minute check and should be the first thing any analyst does. Parse the atom tree and confirm the sum of declared box sizes equals the actual file size; anything beyond the last atom is unaccounted-for data. Cross-check declared duration × bitrate against real filesize. Run binwalk for embedded archive/executable signatures and exiftool for metadata inconsistencies.
WHY IT STILL WORKS: because most detection stacks never parse container structure at all — they check extension, MIME type, and an AV signature, all three of which pass cleanly.
Search terms — click to filter, or use to dig deeper
4. Intra-Frame & Transform-Domain Embedding
CONCEPT: I-frames are compressed much like JPEGs, so transform-domain image steganography carries over directly — embed in quantized DCT (H.264) or DCT/DST (HEVC) residual coefficients. Two codec-specific variants have no image equivalent: intra-prediction mode embedding, which encodes bits in the choice among directional prediction modes, and QP modulation, which encodes in per-block quantization parameter selection.
DETECTION: the distribution of prediction modes in natural video follows strong content-dependent regularities — mode selection correlates with actual edge orientation in the block. Embedding perturbs that correlation. Feature sets built on mode-transition statistics and coefficient histograms feed a trained classifier.
Search terms — click to filter, or use to dig deeper
5. Motion Vector & Inter-Frame Embedding
CONCEPT: the most-researched video steganography domain. Inter-predicted blocks reference a region of a previous frame via a motion vector; because the encoder's search is a heuristic rate-distortion optimization rather than an exact solution, a slightly different MV is often almost as good. Schemes embed in MV components, in the motion vector difference (MVD), or — in HEVC — in the MVP index selected from the AMVP candidate list. Related approaches embed in CU quadtree partition depth.
[ THE DETECTION INSIGHT: LOCAL OPTIMALITY ]
This is the elegant part, and the core idea worth internalizing. In an unmodified video, the encoder chose each motion vector because it was locally rate-distortion optimal — by construction, no neighboring candidate scored better. So if you re-evaluate every MV in a suspect file against its neighbors and find vectors that are not locally optimal, something modified them after the encoder ran.
Recent HEVC steganalysis formalizes this against the AMVP mechanism: embedding via MVP index or MVD disturbs the local optimality of motion vector prediction, and the optimal rate of MVP becomes a steganalysis feature. Published results report the optimal rate sitting at 100% for cover videos while stego videos fall below it — a remarkably clean separator, achievable with a feature of dimension one.
Steganography research has since pushed back with schemes explicitly designed to preserve local optimality while embedding. This is a live cat-and-mouse cycle, which makes it good thesis territory.
Search terms — click to filter, or use to dig deeper
6. Entropy-Coding & Bitstream-Level Tricks
CONCEPT: below the codec's semantic layer sits the entropy coder (CABAC in H.264/HEVC main profiles, CAVLC in baseline). Data can ride in syntax-element choices, in optional SEI (Supplemental Enhancement Information) messages the decoder ignores, or in slice-header padding. Capacity is low and the techniques are tightly format-specific.
DETECTION: parse the bitstream and validate every NAL unit against the specification — unexpected SEI payload types, non-canonical padding, and emulation-prevention-byte anomalies are all directly observable without any statistical modelling.
Search terms — click to filter, or use to dig deeper
7. Video Steganalysis: The Analyst's Toolkit
CALIBRATION: the workhorse technique across all media. Re-encode the suspect file under known-good settings to produce an estimate of what the "clean" statistics should look like, then measure the divergence between suspect and calibrated reference.
FEATURE-BASED: MV local-optimality rates, MVD-domain features, prediction-mode transition statistics, CU partition-depth distributions — fed into an ensemble classifier.
DEEP LEARNING: selection-channel-aware networks that focus capacity on the regions most likely to carry payload, and detectors operating in MVD feature space.
THE ATTACKER'S REAL ENEMY: transcoding. Any platform that re-encodes on upload (which is nearly all of them) destroys codec-level payloads outright. This forces attackers toward container-level hiding or direct file transfer — which is precisely why the cheap triage in topic 3 catches so much real-world activity.
Search terms — click to filter, or use to dig deeper
8. Practical Forensic Triage Workflow
ORDER OF OPERATIONS: work cheapest-first — most real cases resolve long before you reach statistical steganalysis.
Container integrity — parse the atom/element tree; reconcile declared sizes against actual filesize; flag trailing data.
Metadata — exiftool and ffprobe for encoder strings inconsistent with the claimed source device or a re-encode that shouldn't have happened.
Signature carving — binwalk for embedded archives, executables, or filesystem headers.
Bitrate sanity — filesize wildly out of line with duration × resolution × codec efficiency.
Entropy profile — uniformly high entropy in regions that should be structured suggests appended encrypted data.
Statistical steganalysis — only once the above come back clean and suspicion remains.
Context — the strongest signal is often behavioral, not statistical: who sent a 400 MB video to an endpoint that has never handled video before?
Search terms — click to filter, or use to dig deeper
Domain 3 Audio, Filesystem & Protocol
1. Audio Steganography
CONCEPT: LSB embedding in PCM samples; echo hiding (encoding bits in imperceptible echo delays); phase coding (exploiting human insensitivity to absolute phase); spread-spectrum embedding across the frequency band; and compressed-domain schemes such as MP3Stego operating during encoding.
DETECTION: spectrogram inspection catches a surprising amount — deliberately drawn spectrogram images and abrupt high-frequency energy bands are visible by eye in Audacity or Sonic Visualiser. Beyond that: statistical analysis of sample distributions, and format-specific detectors for known tools.
Search terms — click to filter, or use to dig deeper
2. Filesystem & Protocol Steganography
CONCEPT: NTFS alternate data streams, file slack space, and polyglot files (a single file that is validly both a JPEG and a ZIP, for instance) hide data at the storage layer rather than inside media content.
NETWORK: covert channels in protocol header fields, TCP initial sequence numbers, IPv6 extension headers, and DNS query patterns. Timing-based variants are covered in Phase 4; the storage-based ones here are a standard part of dead-box forensics.
Search terms — click to filter, or use to dig deeper
Practice Datasets & Hands-On
1. Building a Steganalysis Practice
DATASETS: BOSSbase and BOWS2 are the standard image steganalysis corpora; ALASKA2 (from the Kaggle competition) provides a realistic multi-source JPEG set specifically designed to expose cover-source mismatch; StegoAppDB covers mobile-app-generated stego images.
TOOLS: Aletheia (modern steganalysis toolkit), StegExpose (LSB detection), zsteg (PNG/BMP), StegSeek, stegsolve, plus the general-purpose binwalk / exiftool / ffprobe trio for triage.
CTF ON-RAMP: almost every CTF has a forensics/stego category, and the challenges are legal, purpose-built, and come with published writeups — the fastest way to build intuition for what "something is off about this file" actually feels like.
THESIS ANGLE: if you need a research topic, video steganalysis is unusually well-suited — the cat-and-mouse between local-optimality detectors and optimality-preserving embedding is active, the datasets are public, and the codec internals are fully specified in the H.264/H.265 standards.
Search terms — click to filter, or use to dig deeper
Start Here
Most security education stops at the tool. This guide doesn't. It goes from "what is a byte" to reversing nation-state firmware implants, and it is free, open, and written for people who would rather understand something than be handed a dashboard that claims to understand it for them.
There are two ways in. Pick honestly — nobody is watching.
Search everything. The bar at the top filters the whole guide. Every topic ends with clickable search terms — tap one to filter, or paste it into a search engine to go deeper. Those tags are the "dig here" markers.
Track your progress. Tick the box on any topic to mark it done. It's stored in your browser only — nothing is sent anywhere.
Read all of it at once with [READ_ALL], then print or save as PDF — there's a print stylesheet that strips the interface.
Link to anything. Every section has its own URL, so you can bookmark or share a specific page.
Press Esc to clear a search.
What this is not
Scope
This is a defensive and educational resource. It explains attacker techniques at the depth needed to detect, analyse, and respond to them — the same depth any malware analysis course or academic paper uses. It does not provide working exploits, operational attack tooling, or step-by-step intrusion guidance, and it will not.
Everything here assumes systems you own or are explicitly authorised to test. Read Legal & Ethics before you touch anything you didn't build.
On accuracy
Security writing rots fast. Claims here carry confidence markers — Verified means checked against a primary source, Active research means real but contested or evolving, and Established means textbook-stable. Every page shows when it was last reviewed. If you find something wrong, please open an issue. Corrections are the most valuable contribution you can make to a document like this.
Why this exists
Security education has a gap in the middle. There is an enormous amount of beginner content that teaches you to run tools, and there is primary research that assumes you already have a doctorate. The path between them is mostly undocumented, and people fall off it constantly — not because they lack ability, but because nobody told them what order to learn things in.
This guide is an attempt at that middle. It goes from number systems to symbolic execution, from write blockers to firmware implants, in the order the material actually builds. Everything is free. Nothing is gated. There is no course to buy at the end.
How it's built
One HTML file. No build step, no framework, no dependencies. Save it and it works offline, forever, on anything with a browser.
No tracking. No analytics, no cookies, no third-party requests — not even a web font. Progress tracking uses your browser's local storage and never leaves your device.
Free and open. Prose under CC BY-SA 4.0, code under MIT. Fork it, translate it, teach from it, print it and put it in a binder.
If it helps one person
If this gets one person past the script-kiddie ceiling — past the point where the tool fails and you have no idea what to do next — it did its job. That's the whole ambition.
Build the Lab
~14 min readDo this firstReviewed 2026-08-20
Read this part properly
Every other page in this guide assumes you have somewhere safe to run things. That place is not your laptop. Malware does not care that you are "just looking," ransomware encrypts mapped network drives and cloud-sync folders, and an infostealer will take the browser session you're reading this in.
The rule is simple and has no exceptions: unknown code runs only inside a disposable VM you can destroy, on a network it cannot escape.
Choosing a hypervisor
1. Hypervisor Selection
VIRTUALBOX: free, cross-platform, fine for learning. Snapshots work well. Downside: its guest additions and device fingerprints are trivially detectable, so evasive malware will notice and may refuse to run.
VMWARE WORKSTATION PRO / FUSION: free for personal use since 2024. Better performance and better snapshot handling. Same detectability caveat, but broadly what most analysis courses assume.
PROXMOX / KVM: if you have spare hardware, a dedicated bare-metal hypervisor is the cleanest option — total network control, no host OS sharing a kernel with your analysis VMs.
WHAT TO AVOID: WSL, Docker on your daily driver, or "I'll just be careful." Containers share the host kernel; that is not an isolation boundary you want between you and a kernel rootkit.
Common beginner mistake
Using the same VM for analysis and for tooling/notes. Keep them separate. The analysis VM is disposable by design; the moment you care about something stored inside it, you will stop reverting it, and the whole model collapses.
Search terms — click to filter, or use to dig deeper
2. Network Isolation — The Part People Get Wrong
DEFAULT POSTURE: host-only or internal networking. No NAT, no bridged adapter. The VM must not be able to reach your LAN, your router's admin page, your NAS, or the internet.
WHY NOT JUST NAT: NAT gives the sample real internet access. It will phone home, potentially attributing your IP to a threat actor's telemetry, pulling second-stage payloads, or joining a botnet from your home connection.
SIMULATED INTERNET: this is the trick that makes dynamic analysis actually work. Run INetSim (on REMnux) or FakeNet-NG to answer DNS for everything and serve plausible responses on common ports. The malware believes it has connectivity, beacons happily, and you capture the entire C2 conversation — while nothing leaves the lab.
ALSO DISABLE: shared folders, shared clipboard, drag-and-drop, and USB passthrough. These are guest-to-host bridges. Ransomware has historically encrypted host files through shared folders left mounted.
# REMnux: simulated internet services, listening on the isolated segment
sudo inetsim --bind-address 10.0.0.1
# Confirm from the analysis VM that DNS resolves everything to the sim
nslookup totally-fake-c2-domain.test 10.0.0.1
Search terms — click to filter, or use to dig deeper
3. Snapshot Discipline
THE LOOP: build the VM → install tooling → update → snapshot clean → detonate → observe → revert to clean. Never analyse a second sample in a VM that has already run a first one; you will not be able to tell which artifacts came from which.
NAME SNAPSHOTS PROPERLY:clean-win10-flarevm-2026-08 beats Snapshot 3 when you come back in six weeks.
KEEP THE BASE OFFLINE: take the clean snapshot before the VM has ever touched a sample, and treat it as read-only ground truth.
Common beginner mistake
Reverting after copying findings out via shared folder. Get your notes out over the isolated network (a simple HTTP listener) or by screenshotting from the host — not by mounting a host directory inside a compromised guest.
Search terms — click to filter, or use to dig deeper
The two standard distributions
4. FLARE-VM (Windows Analysis)
WHAT IT IS: Mandiant's script that turns a clean Windows VM into a fully-equipped reverse engineering workstation — IDA Free, Ghidra, x64dbg, PEStudio, Detect It Easy, dnSpy, Wireshark, Sysinternals, and a few hundred more, installed and pathed.
INSTALL SHAPE: fresh Windows 10/11 VM, Windows Defender and Windows Update disabled (they will otherwise delete your samples and reboot mid-analysis), snapshot, then run the installer. It takes a while and reboots repeatedly. Snapshot again when finished — that is your clean base.
Disabling Defender
This is correct inside an isolated analysis VM and nowhere else. If you find yourself disabling AV on a machine with network access or personal data, stop — you've drifted out of the lab.
Search terms — click to filter, or use to dig deeper
5. REMnux (Linux Analysis)
WHAT IT IS: Lenny Zeltser's Ubuntu-based distribution preloaded for malware analysis — INetSim, Volatility, YARA, oletools, pdf-parser, radare2, Ghidra, network capture tooling, and document/script analysis utilities.
THE CLASSIC PAIRING: REMnux as the network-services and analysis host on one virtual segment, a Windows FLARE-VM as the detonation target on the same segment, host-only. REMnux plays "the internet"; the Windows VM plays the victim; you watch everything.
Exercise
Build the pair. Then verify isolation before you ever download a sample: from the Windows VM, try to ping your home router, load a real website, and reach your NAS. All three must fail. If any succeeds, your lab is not isolated — fix it before continuing.
Search terms — click to filter, or use to dig deeper
Getting samples legally
6. Where Samples Come From
MALWAREBAZAAR (abuse.ch): free, no-cost registration, well-tagged, API access. The standard starting point.
MALSHARE / VIRUSSHARE: large corpora; VirusShare requires requesting an account.
VX-UNDERGROUND: vast collection including source code and papers. Note that some material there is genuinely destructive.
THEZOO: curated teaching repository on GitHub, deliberately small and organised by family — good for a first sample.
SAFEST OF ALL: for learning workflow rather than analysing live threats, use purpose-built targets — crackmes.one, CTF binaries, the Practical Malware Analysis lab files, and the Volatility Foundation's public memory images. You get the skill without the risk.
Handling rules
Keep samples in password-protected archives (the convention is infected) so scanners and sync clients don't grab or quarantine them. Never store them in a cloud-synced folder. Never email them. Check whether your jurisdiction or institution restricts possession of malicious code — students in particular should confirm their university's acceptable-use policy first.
Search terms — click to filter, or use to dig deeper
Optional: hardware
7. A Physical Lab on a Budget
WHY BOTHER: Phase 1's firmware work and Tier 3's embedded targets need real hardware. Virtualisation cannot give you an SPI flash chip.
CHEAP AND USEFUL: a CH341A SPI programmer with a SOIC-8 clip (for reading BIOS/router flash), a USB-to-UART adapter (serial consoles on routers and IoT devices), a second-hand router you are willing to brick, and an old laptop for bare-metal work. This is a small amount of money for a large amount of capability.
NEXT TIER: a logic analyser, a JTAG/SWD debug probe, and a Raspberry Pi as a controllable network gateway.
Buy the router first
A £10 second-hand home router is the single best hardware purchase for this field. It has a UART header, a flash chip, a MIPS or ARM CPU, and firmware you can dump, unpack with binwalk, and reverse in Ghidra — the entire Tier 3 embedded workflow on one cheap device you cannot break in any way that matters.
Search terms — click to filter, or use to dig deeper
Check yourself
Why is host-only networking preferred over NAT for malware analysis?
NAT gives the sample genuine internet access — it can beacon to real C2 (attributing your IP), download second-stage payloads, or join a botnet. Host-only keeps traffic contained; pair it with INetSim/FakeNet-NG so the sample still believes it has connectivity and reveals its full network behaviour.
You've finished analysing a sample and want your notes. What's the wrong way to get them out?
A shared folder mounted to the host. That's a guest-to-host bridge and ransomware has historically encrypted host files through exactly that path. Use the isolated network (an HTTP listener on the analysis host) or screenshot from the host side.
Why disable Windows Defender and Windows Update on a FLARE-VM?
Defender will quarantine or delete your samples and tooling; Update will reboot the VM mid-analysis and change the baseline you're measuring against. This is correct only inside an isolated analysis VM — never on a networked machine.
What single cheap piece of hardware unlocks the most of Tier 3?
A second-hand home router. UART header, SPI flash chip, MIPS/ARM CPU, dumpable firmware — the complete embedded RE workflow on a device you don't mind destroying.
DFIR Core: The Actual Job
~20 min readFoundationalReviewed 2026-08-20
Prerequisites: a working lab (see Lab Setup). Familiarity with a command line. No prior forensics knowledge assumed.
The Phases in this guide cover the exotic end of the field. This page covers what forensic work actually looks like most days — and what a digital forensics degree will actually examine you on. If you can image a disk, capture memory, build a timeline, and explain what you did to someone who wasn't there, you are employable. Everything else is specialisation.
Part 1 Acquisition
1. Order of Volatility
CONCEPT: evidence disappears at different rates. RFC 3227 formalises the ordering, and it drives every decision at a scene: CPU registers and cache → RAM → network state and running processes → disk → remote logs → physical config and archival media.
THE PRACTICAL CONSEQUENCE:capture memory before you pull the plug. Encryption keys, injected code, unpacked malware, network connections, and clipboard contents exist only in RAM. Pulling power to "preserve" the disk destroys all of it — and against fileless malware, RAM was the entire case.
THE TENSION: acquiring memory from a live system changes that system (your tool loads into the memory you're capturing). This is unavoidable and accepted — you document it. Document what you ran, when, and with what version. Defensible process beats an impossible standard of purity.
Search terms — click to filter, or use to dig deeper
2. Disk Imaging & Write Blockers
WRITE BLOCKERS: hardware devices that physically permit reads and refuse writes. Mounting evidence without one updates access timestamps and can trigger filesystem journal replay — you have altered evidence before you started. Software write-blocking exists but hardware is the defensible choice.
FORMATS: raw/dd (exact bytes, large, universally readable), E01/EWF (compressed, with embedded case metadata and per-block checksums — the forensic standard), and AFF4 for very large or cloud-scale acquisitions.
HASH BEFORE AND AFTER: hash the source, image it, hash the image, confirm they match, and record all of it. This is what lets you assert in a report — or in court — that the image is what you say it is. An image without a verified hash is an anecdote.
# Raw image with hashing in one pass
sudo dcfldd if=/dev/sdb of=evidence.dd hash=sha256 hashlog=evidence.hash bs=4M
# Forensic container with metadata and compression
sudo ewfacquire -t evidence -d sha256 /dev/sdb
# Verify afterwards
ewfverify evidence.E01
Common beginner mistake
Imaging to a destination on the same physical disk, or filling the destination mid-acquisition. Check free space first — a truncated image discovered three hours in is a bad afternoon.
Search terms — click to filter, or use to dig deeper
3. Memory Acquisition
TOOLS:WinPMEM (Windows), AVML (Microsoft's Linux acquisition tool, works across kernels without compilation), LiME (Linux kernel module, needs matching headers). On a VM, pausing and copying the memory file is the cleanest capture available — zero footprint on the guest.
HIBERNATION AND SWAP:hiberfil.sys, pagefile.sys, and crash dumps contain memory contents too. On Linux, check swap. These persist across reboots and are frequently overlooked.
Exercise
Snapshot your analysis VM while a browser is open with a distinctive string typed into a text box. Capture the memory file, then run strings against it and find your string. This single exercise makes memory forensics click permanently.
Search terms — click to filter, or use to dig deeper
Part 2 Memory Forensics
4. The Volatility 3 Workflow
CONCEPT: a memory image is an unstructured blob until a framework imposes structure on it using knowledge of OS internals. Volatility walks kernel structures to reconstruct the process list, network connections, loaded modules, and injected regions.
THE CORE SEQUENCE: list processes, then scan for processes, then compare the two. pslist walks the kernel's linked list; psscan scans memory for process structure signatures. A process appearing in psscan but not pslist has been unlinked — that is Direct Kernel Object Manipulation, and it is a rootkit's fingerprint.
# Processes: the list, then the scan, then the difference
python3 vol.py -f mem.raw windows.pslist
python3 vol.py -f mem.raw windows.psscan
python3 vol.py -f mem.raw windows.psxview # cross-view, does the diff for you# Injected / unbacked executable memory - the highest-yield single plugin
python3 vol.py -f mem.raw windows.malfind
# Network state at capture time
python3 vol.py -f mem.raw windows.netscan
# Parent-child relationships, and command lines
python3 vol.py -f mem.raw windows.pstree
python3 vol.py -f mem.raw windows.cmdline
# Linux
python3 vol.py -f mem.lime linux.pslist linux.bash linux.check_syscall
WHAT MALFIND ACTUALLY FINDS: memory regions that are executable, writable, and not backed by a file on disk. Legitimate code is normally mapped from a file. Anything executing from anonymous RW memory is either a JIT compiler or something injected — and you can tell which by looking at what's there.
The mental model that matters
Almost all rootkit detection is cross-view comparison: ask the same question two different ways and look for disagreement. pslist vs psscan. ps vs /proc. ss vs /proc/net/tcp. lsmod vs /sys/module. The rootkit can lie to one interface; lying consistently to all of them is much harder. This is the same principle behind the VoidLink detection guidance in Phase 1 and the local-optimality steganalysis in the Stego Lab — find the thing that should agree and doesn't.
Search terms — click to filter, or use to dig deeper
Part 3 Filesystem & Artifacts
5. Filesystem Forensics
NTFS: the $MFT is the master index — one record per file, holding four timestamps (created, modified, accessed, MFT-modified) in two attributes, $STANDARD_INFORMATION and $FILE_NAME. Timestomping tools typically alter only the first. Disagreement between $SI and $FN timestamps is a direct anti-forensics indicator.$LogFile and $UsnJrnl record filesystem transactions, often recovering deleted-file history.
EXT4: inodes carry crtime, mtime, atime, ctime. The journal can yield recently-overwritten metadata. Deleted-file recovery is harder than NTFS because extent pointers are zeroed.
APFS: copy-on-write with snapshots — snapshots are often a forensic gift, preserving prior states of the whole volume.
SLACK AND UNALLOCATED: file slack (between logical file end and cluster end) and unallocated space hold remnants. Carving tools (photorec, scalpel, foremost) recover files by header/footer signature with no filesystem metadata at all.
Search terms — click to filter, or use to dig deeper
6. Windows Artifacts — Proving Execution
THE CLASSIC QUESTION: "did this program run on this machine, and when?" Several independent artifacts answer it, and the strength of a finding comes from how many of them agree.
PREFETCH (C:\Windows\Prefetch) — records execution, run count, and last-run timestamps for up to the last 8 runs. Strong execution evidence.
AMCACHE / SHIMCACHE — application compatibility data. Shimcache records presence and path (execution is not guaranteed); Amcache adds SHA-1 hashes. Read the semantics carefully; this trips up beginners constantly.
REGISTRY — SYSTEM, SOFTWARE, NTUSER.DAT: Run keys and Services for persistence, UserAssist for GUI program launches, ShellBags for folder access, MRU lists, USB device history in USBSTOR.
EVENT LOGS (.evtx) — 4624/4625 logon success/failure with logon type, 4688 process creation (with command line, if enabled), 7045 service installation, 1102 log cleared. That last one is a finding in itself.
ALSO: LNK files and Jump Lists (file access, including from removable media that is long gone), SRUM (per-application network usage), Recycle Bin $I/$R pairs, browser history and cache.
Common beginner mistake
Treating Shimcache as proof of execution. It records that the OS saw a binary — a directory listing can populate it. Prefetch, Amcache, and 4688 events are the stronger execution evidence. Getting this distinction wrong in a report is how findings get torn apart.
Search terms — click to filter, or use to dig deeper
7. Linux & macOS Artifacts
LINUX:/var/log/auth.log and secure for authentication; journalctl for systemd; auditd if configured (and it should be); ~/.bash_history (unreliable — trivially cleared, often not flushed); cron, systemd timers and units, /etc/rc.local, and ~/.bashrc for persistence; /proc on a live system for anything hiding.
MACOS: Unified Logs (dense, and log show has a steep learning curve), FSEvents for filesystem change history, LaunchAgents/LaunchDaemons for persistence, Spotlight metadata, quarantine extended attributes recording download provenance.
Search terms — click to filter, or use to dig deeper
8. Timeline Analysis — Where It All Comes Together
CONCEPT: individual artifacts are data points; a super timeline merges every timestamped artifact from every source into one chronological view. This is where an intrusion narrative actually appears — phishing email at 09:14, macro execution 09:15, service installed 09:17, lateral movement 09:41.
TOOLING:log2timeline/Plaso to parse and normalise, psort to filter and output, Timesketch for collaborative visual analysis.
THE PIVOT TECHNIQUE: find one confirmed malicious event, then examine everything within a tight window around it. Activity clusters. What happened in the sixty seconds either side of a known-bad event is nearly always the rest of the story.
# Parse everything in an image into a Plaso storage file
log2timeline.py --storage_file case.plaso evidence.E01
# Narrow to a window around a known-bad event and export
psort.py -o dynamic -w timeline.csv case.plaso \
"date > '2026-08-01 09:00:00' AND date < '2026-08-01 10:00:00'"
Search terms — click to filter, or use to dig deeper
9. The Tooling Landscape
OPEN SOURCE: Autopsy / The Sleuth Kit (full GUI examiner), Volatility 3, Plaso, Velociraptor (endpoint visibility and hunting at fleet scale — increasingly the centre of open-source DFIR), KAPE (fast targeted collection), Eric Zimmerman's tools (the reference parsers for most Windows artifacts).
COMMERCIAL: EnCase, Magnet AXIOM, X-Ways, Cellebrite. You will meet these in industry; you do not need them to learn.
PRACTICE DATA: Digital Corpora, NIST CFReDS reference sets, the Volatility Foundation's sample images, DFIR CTFs (Magnet, DFRWS). Real images, no legal risk, published answers.
Search terms — click to filter, or use to dig deeper
Check yourself
A process appears in psscan but not pslist. What does that mean?
The process object exists in memory but has been unlinked from the kernel's active process list — Direct Kernel Object Manipulation. It's a strong rootkit indicator, and it's found by cross-view comparison rather than by any single query.
Why is capturing RAM before powering off a system so important?
Encryption keys, injected code, unpacked malware, active network connections, and clipboard contents exist only in volatile memory. Against fileless malware, RAM may be the only evidence there is — pulling power destroys the case.
$STANDARD_INFORMATION and $FILE_NAME timestamps disagree. So?
Likely timestomping. Most anti-forensic tools alter only $SI, leaving $FN inconsistent. The disagreement is itself the finding.
Why is Shimcache weak evidence of execution?
It records that Windows encountered a binary — which a directory listing can cause — not that the binary ran. Prefetch, Amcache, and Event ID 4688 are the stronger execution artifacts.
Legal, Ethics & Evidence Handling
~12 min readRead before touching anythingReviewed 2026-08-20
Not legal advice
This is orientation written by a practitioner's-eye view, not by a lawyer. Computer crime law varies enormously by country and changes often. If you are facing a real situation — a disclosure decision, a request to test something, a subpoena — talk to an actual lawyer in your jurisdiction. What follows tells you which questions to ask.
This is the page most technical guides skip, and the omission is telling. The difference between a security researcher and a defendant is frequently not skill — it is authorisation, documentation, and knowing where the line sits before you get near it.
Authorisation
1. The Only Question That Matters First
THE RULE: do you have documented, specific, current permission from someone with the authority to grant it? If any of those four words is missing, you do not have authorisation.
WHAT DOESN'T COUNT: a verbal "yeah, go ahead" from someone who doesn't own the system. A bug bounty scope you skimmed. "It was publicly accessible." "I didn't cause damage." "I was going to report it." Curiosity is not a legal defence and courts have consistently declined to treat it as one.
WHAT GOOD AUTHORISATION LOOKS LIKE: written scope naming the specific systems, IP ranges, and domains; a defined time window; named contacts on both sides; an explicit statement of permitted techniques; and an agreed procedure for when something breaks. In pentesting this is often called a "get out of jail free letter," which is glib but conveys the point — carry it.
Where students get caught
Scanning or testing your university's network, your employer's systems, or a service you use — without written permission — because it seemed harmless and educational. It is the most common way promising careers end before they start. Your institution's acceptable-use policy is a binding agreement you already signed.
Search terms — click to filter, or use to dig deeper
2. Know Your Jurisdiction
UNITED STATES: the Computer Fraud and Abuse Act (CFAA) turns on "without authorization" or "exceeding authorized access." Van Buren v. United States (2021) narrowed the second clause meaningfully, and DOJ policy since 2022 has said good-faith security research shouldn't be charged — but policy is not law, and state statutes apply independently. The DMCA §1201 anti-circumvention provisions matter for reverse engineering; there is a security-research exemption, renewed periodically, with conditions.
UNITED KINGDOM: the Computer Misuse Act 1990 criminalises unauthorised access with no statutory public-interest defence — a gap the UK security community has campaigned to change for years.
EUROPEAN UNION: the Directive on attacks against information systems, implemented variously by member states; Germany's §202c has historically raised concerns about tool possession. GDPR applies to any personal data in your evidence, including data you collected incidentally.
INDIA: the Information Technology Act 2000, particularly §43 (unauthorised access, damage) and §66 (computer-related offences), with §65 covering source code tampering.
THE PRACTICAL POINT: these differ substantially in whether intent matters, whether harm is required, and whether research is a defence. If you work across borders — and internet research always does — the strictest applicable law is the one that binds you.
Search terms — click to filter, or use to dig deeper
Evidence handling
3. Chain of Custody
CONCEPT: an unbroken, documented record of who had the evidence, when, what they did to it, and how it was secured — from seizure to presentation. Its purpose is to let anyone verify the evidence is what you claim, unaltered.
EACH ENTRY RECORDS: item identifier and description; date and time (with timezone — always with timezone); person receiving and person releasing, with signatures; reason for transfer; storage location and security; hash values at each handoff.
WHAT BREAKS IT: gaps in time, unlogged access, unsealed storage, missing hashes, and undocumented tool use. A defence expert's job includes finding exactly these gaps, and a single unexplained one can render an otherwise sound examination worthless.
Build the habit on practice data
Keep a contemporaneous log even when working CTF images at home — timestamp, action, tool and version, hash, result. It feels pointless on a practice file. It becomes automatic, and automatic is exactly what you want the first time it's real. It also happens to make your write-ups dramatically better.
Search terms — click to filter, or use to dig deeper
4. Admissibility & Expert Testimony
US FEDERAL (DAUBERT): the court acts as gatekeeper for expert evidence, weighing whether the technique is testable and tested, peer-reviewed, has a known error rate, has standards controlling its operation, and is generally accepted. Some state courts still apply the older Frye "general acceptance" test.
WHY THIS SHAPES YOUR WORK: it is why you use validated tools, document versions, and prefer methods that another examiner could independently reproduce. "I wrote a script and it said so" is not a finding; a reproducible process with a documented error mode is.
REPORT WRITING: state what you did, what you found, and what it means — kept strictly separate. Distinguish observation ("the file was created at 09:14 UTC") from inference ("this is consistent with the macro executing"). Note limitations and alternative explanations. Write for an intelligent reader who is not technical, because that is who decides.
ON THE STAND: your job is to be accurate, not persuasive. "I don't know" is a complete and professional answer. Overclaiming is how expert witnesses are destroyed in cross-examination, and how findings that were actually correct get thrown out.
Search terms — click to filter, or use to dig deeper
Ethics in practice
5. Responsible Disclosure
THE NORM: report privately to the vendor, agree a remediation window (90 days is the common default, from Project Zero's influence), coordinate publication, and credit fairly. CVD — coordinated vulnerability disclosure — is the formal name.
WHERE IT GETS HARD: unresponsive vendors, vendors who threaten legal action, active exploitation in the wild that argues for early warning, and safety-critical systems where a patch cycle is measured in years. There is no clean rule; there is judgement, and there is documenting your reasoning as you go.
PROTECT YOURSELF: use a vendor's published security contact or a bounty platform where one exists (that establishes authorisation), keep everything in writing, don't access more data than needed to demonstrate the issue, and never suggest payment in exchange for silence — that reads as extortion regardless of intent.
Search terms — click to filter, or use to dig deeper
6. OSINT and the Privacy Line
THE PROBLEM: Phase 6 covers OSINT techniques that are genuinely dual-use. The same capability that maps a threat actor's infrastructure maps a private individual's life. "It's all public" is a description of the data, not a justification for what you do with it.
QUESTIONS TO ASK: is the subject a legitimate investigative target or a private person? Would aggregating these public facts create a capability — a location pattern, a routine — that none of them held separately? Am I acting under an authorised engagement, or because I can? Would I be comfortable explaining this to the subject?
DATA PROTECTION: collecting personal data engages GDPR and similar regimes even when the source is public. Minimise, define retention, secure it, and be able to justify the purpose.
The line, stated plainly
Compiling a dossier on a private individual is stalking, whatever tooling you use and whatever you call it. This is the point where "learning OSINT" stops being a defence. If a technique's most natural application is to a specific person who hasn't consented, stop.
Search terms — click to filter, or use to dig deeper
7. Dual-Use and Personal Responsibility
THE UNCOMFORTABLE TRUTH: essentially everything in this guide is dual-use. Understanding a UEFI bootkit to detect it is the same understanding needed to write one. The field cannot resolve this, and it does not pretend to — what it does instead is rely on norms, on documented purpose, and on people choosing.
WHAT THAT ASKS OF YOU: be able to state why you are learning something and what you intend to do with it. Keep your work inside authorised boundaries. Don't build things whose only use is harm. Don't sell capability to people who will use it against people who cannot defend themselves. These sound obvious in the abstract and are genuinely harder in a specific moment with a specific paycheque attached.
CODES WORTH READING: the ACM Code of Ethics, the IEEE Code of Ethics, and (ISC)²'s canons. They are short, non-binding, and more useful than their reputation suggests — mostly for giving you language when you need to explain a refusal.
Search terms — click to filter, or use to dig deeper
Check yourself
What four properties does real authorisation need?
Documented, specific, current, and granted by someone with actual authority over the system. Missing any one means you don't have it.
Why record timezone in every chain-of-custody entry?
Because evidence, systems, and examiners routinely span timezones, and an ambiguous timestamp is an attackable gap. Timeline correlation across sources is impossible if you can't normalise time confidently.
In a report, what's the difference between observation and inference?
Observation is what the evidence directly shows ("the file was created at 09:14 UTC"). Inference is what you conclude from it ("this is consistent with the macro executing"). Keeping them visibly separate is what makes a report survive cross-examination.
Cloud & Container Forensics
~16 min readIntermediateReviewed 2026-08-20
Prerequisites: DFIR Core. Basic familiarity with Linux and at least one cloud provider's console.
Classic forensics assumes a machine you can seize. Cloud breaks that assumption completely, and most forensics curricula still haven't caught up — which makes this one of the highest-value gaps you can fill.
1. Why Everything You Just Learned Half-Applies
EPHEMERALITY: the container that was compromised was destroyed and rescheduled four minutes later. There is no disk to image because there is no disk, and no host you're permitted to touch.
SHARED RESPONSIBILITY: you cannot image the hypervisor. The provider controls the layer beneath your workload, and their logs are your only visibility into it. Where that boundary sits is contractual, and you should know exactly where it is before an incident.
LOGS ARE THE PRIMARY EVIDENCE: in cloud, control-plane logs replace disk as the centre of an investigation. They are also on a retention clock — the default windows are shorter than most incidents take to discover. Preserving logs is the first action, not a later step.
SCALE AND API-DRIVEN CHANGE: an attacker with credentials doesn't move laterally through machines, they call APIs. The intrusion is a sequence of authorised-looking API calls, which is why identity is the real perimeter here.
The shift in mindset
On-prem you ask "what happened on this box." In cloud you ask "what did this identity do, everywhere, and what did it become?" Privilege escalation in cloud is usually a chain of role assumptions, not a kernel exploit.
Search terms — click to filter, or use to dig deeper
2. AWS — Evidence Sources
CLOUDTRAIL: the spine of any AWS investigation — every API call, with identity, source IP, user agent, parameters, and response. Management events are on by default; data events (S3 object access, Lambda invocations) usually are not, and their absence is a common and painful discovery mid-incident.
VPC FLOW LOGS: network metadata (no payload). Enough to establish who talked to what, when, and how much left.
GUARDDUTY: managed detection producing findings worth pivoting from — particularly credential-exfiltration and crypto-mining detections.
EBS SNAPSHOT FORENSICS: the closest thing to classic imaging. Snapshot the volume, create a copy in an isolated forensics account, attach it read-only to a purpose-built analysis instance, then work it like a disk image. Snapshot before terminating anything.
IMDS: the instance metadata service at 169.254.169.254 serves role credentials to whatever can reach it — which historically meant any SSRF became credential theft. IMDSv2 requires a session token and hardens this substantially; check which version is enforced, because v1 still exists in plenty of estates.
# What did a compromised identity do? Start here.
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=Username,AttributeValue=suspect-user \
--start-time 2026-08-01T00:00:00Z
# Preserve first: snapshot the volume before anything is terminated
aws ec2 create-snapshot --volume-id vol-0abc123 \
--description "IR-2026-014 preservation $(date -u +%FT%TZ)"
Search terms — click to filter, or use to dig deeper
3. Azure & GCP — Equivalents
AZURE: Activity Log (control plane), Entra ID sign-in and audit logs (identity — the critical one), Microsoft Defender for Cloud, and NSG flow logs. Entra sign-in logs are where token theft, impossible-travel, and consent-phishing show up.
GCP: Cloud Audit Logs split into Admin Activity (always on), Data Access (mostly off by default), System Event, and Policy Denied. Security Command Center aggregates findings. VPC Flow Logs mirror AWS.
CROSS-CUTTING: in every provider the highest-value questions are the same — which identities exist, what can they assume, what did they actually do, and what changed in the last 30 days that nobody approved.
Search terms — click to filter, or use to dig deeper
4. Container Forensics
IMAGE LAYERS: a container image is a stack of read-only layers plus a writable layer at runtime. docker diff shows what changed in the writable layer — often exactly the attacker's payload, cleanly separated from the base image. This is a genuine forensic advantage over a traditional host.
SUPPLY CHAIN: inspect image provenance — base image, registry, digest, and whether it matches the build you think you deployed. Malicious layers and typosquatted base images are a live problem.
RUNTIME CAPTURE: if the container still exists, docker commit or ctr/crictl to snapshot state, and capture process memory from the host side (containers are just namespaced processes — /proc/<pid> on the host still sees everything).
EPHEMERAL REALITY: if it's gone, you have logs, the image, the orchestrator's records, and whatever runtime security tooling captured. This is why runtime detection (Falco, Tetragon) is not optional in container estates — it is the only witness.
# What changed at runtime vs the image?
docker diff <container_id>
# Freeze the current state for analysis
docker commit <container_id> ir-preserved:case-014
# Containers are namespaced processes - inspect from the host
sudo ls -l /proc/<host_pid>/root/
sudo cat /proc/<host_pid>/environ | tr '\0' '\n'
Search terms — click to filter, or use to dig deeper
5. Kubernetes
AUDIT LOGS: the K8s API server audit log is the CloudTrail of the cluster — every request, with user, verb, resource and response. Frequently not enabled at an adequate level, which is the first thing to check and the first thing to fix.
SERVICE ACCOUNT TOKENS: mounted into pods by default. A compromised pod yields a token; what that token can do is an RBAC question. Over-permissive RBAC is the single most common path from one pod to cluster-wide compromise.
ETCD: holds all cluster state, including Secrets — base64-encoded, which is encoding, not encryption. Unencrypted etcd is game over.
INVESTIGATION SEQUENCE: audit log for the offending request → which identity → what RBAC permitted → which pods and nodes were reachable → what secrets were exposed.
Search terms — click to filter, or use to dig deeper
6. Container Escape & Its Traces
THE COMMON PATHS: privileged containers (--privileged essentially removes the boundary), a mounted Docker socket (/var/run/docker.sock — control of the socket is control of the host), excessive capabilities (CAP_SYS_ADMIN), host namespace sharing (hostPID, hostNetwork), writable hostPath mounts, and kernel exploits — because the kernel is shared, a kernel vulnerability is a container escape.
FORENSIC TRACES: unexpected mount events, processes with host PIDs originating in a container cgroup, cgroup writes, and unusual syscalls (mount, unshare, setns, pivot_root) from workload containers.
CONNECTS TO: Phase 1's eBPF material directly — VoidLink was explicitly cloud-native, detecting Docker/Kubernetes and adapting. Kernel-level rootkits and container escape are the same problem viewed from two directions.
Search terms — click to filter, or use to dig deeper
7. Serverless — The Hardest Case
THE PROBLEM: a Lambda or Cloud Function executes for milliseconds in an environment you cannot access, and then it is gone. There is no disk, no persistence, and often no memory capture path.
WHAT YOU ACTUALLY HAVE: invocation logs, the deployed function code and its version history, the execution role's permissions, environment variables (check for secrets), and downstream effects — what the function touched.
THE PRACTICAL POSTURE: for serverless, detection and prevention carry almost the entire load, because post-hoc investigation has so little to work with. Instrument heavily, log verbosely, keep function permissions minimal.
Search terms — click to filter, or use to dig deeper
8. Cloud IR Playbook
1. PRESERVE FIRST: export logs before retention expires. Snapshot volumes before anything is terminated. This is irreversible if skipped and reversible if over-done.
2. CONTAIN IDENTITY, NOT JUST COMPUTE: revoke sessions, rotate keys, and disable the role. Killing an instance while the credentials remain valid achieves nothing — the attacker just calls the API from somewhere else.
3. ISOLATE: move the workload to a quarantine security group with no egress rather than terminating it, so you keep the evidence and stop the bleeding at once.
4. SCOPE VIA THE CONTROL PLANE: reconstruct everything the identity did across every service and region. Attackers create persistence in regions nobody looks at.
5. HUNT FOR PERSISTENCE: new IAM users, access keys, roles with trust policies pointing at external accounts, Lambda functions, scheduled tasks, modified security groups, altered logging configuration.
Common beginner mistake
Terminating the compromised instance immediately. It feels decisive and it destroys the evidence while leaving the actual access — the credentials — fully intact. Isolate, preserve, then remediate identity.
Search terms — click to filter, or use to dig deeper
Check yourself
Why is terminating a compromised cloud instance usually the wrong first move?
It destroys evidence while leaving the attacker's actual access — the credentials and role — working. Isolate with a no-egress security group, snapshot for preservation, then revoke sessions and rotate keys.
What does docker diff give you forensically?
Everything that changed in the container's writable layer versus the immutable base image — frequently isolating the attacker's payload cleanly. It's an advantage traditional hosts don't offer.
Why does IMDSv1 turn an SSRF into a critical finding?
IMDSv1 serves instance role credentials to any request reaching 169.254.169.254 with no token required, so a server-side request forgery becomes credential theft and full role compromise. IMDSv2's session-token requirement closes it.
Detection Engineering, Network Forensics & IR
~18 min readIntermediateReviewed 2026-08-20
Prerequisites: DFIR Core. The Phases describe detections constantly — this page is where you learn to actually write them.
Every topic in this guide ends with a DETECTION line. This page closes the loop: how detections are written, tested, and made to survive contact with an adversary who is actively trying to evade them.
Part 1 Writing Detections
1. The Pyramid of Pain
CONCEPT: David Bianco's model ranks indicators by how much it costs an adversary when you detect on them. Hash values — trivial to change, recompile and it's a new hash. IP addresses — cheap, rotate the VPS. Domain names — slightly annoying. Network/host artifacts — annoying. Tools — challenging. TTPs — genuinely painful, because changing them means changing how the adversary operates.
WHY IT'S THE FOUNDATION: it explains why hash-based blocklists are near-worthless against a motivated actor, and why detecting behaviour ("a Word process spawned a PowerShell child that made a network connection") survives when indicators don't. Aim as high up the pyramid as you can afford to.
Search terms — click to filter, or use to dig deeper
2. YARA — Pattern Matching for Files
CONCEPT: YARA rules describe files by strings, byte patterns, and structural conditions. It's the standard for classifying malware families and hunting across a corpus.
ANATOMY: a meta block (author, date, reference — always fill this in, your future self needs it), a strings block defining patterns, and a condition combining them with boolean and structural logic.
// Behaviour and structure, not just a hash
rule Suspicious_Injector_Pattern
{
meta:
author = "analyst"
date = "2026-08-20"
description = "PE importing the classic remote-injection trio"
reference = "internal case IR-2026-014"
strings:
$api1 = "VirtualAllocEx" ascii
$api2 = "WriteProcessMemory" ascii
$api3 = "CreateRemoteThread" ascii
$ua = "Mozilla/4.0 (compatible; MSIE 6.0)" ascii // stale UA - a real signal
condition:
uint16(0) == 0x5A4D // MZ: it is a PE
and filesize < 2MB
and all of ($api*)
and $ua
}
WRITING GOOD RULES: anchor on things the author cannot trivially change — algorithmic constants, distinctive structures, unusual API combinations, encryption tables. Avoid compiler boilerplate and library strings (they match everything). Test against a clean corpus for false positives before deploying, always.
Common beginner mistake
Writing rules that match one sample perfectly. That's a hash with extra steps. A good rule matches the family — including the variant compiled next week. Test it against samples you didn't write it on.
Search terms — click to filter, or use to dig deeper
3. Sigma — Portable Log Detection
CONCEPT: Sigma is to logs what YARA is to files — a vendor-neutral YAML format for log-based detections, compiled to Splunk SPL, Elastic queries, KQL, or whatever your SIEM speaks. Write once, deploy anywhere, and share with the community.
title: Office Application Spawning a Shell
id: 8f1a2b3c-0000-4d5e-9f01-abcdef123456
status: experimental
description: Classic macro-execution pattern - Office spawns a script interpreter
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith:
- '\WINWORD.EXE'
- '\EXCEL.EXE'
- '\POWERPNT.EXE'
Image|endswith:
- '\powershell.exe'
- '\cmd.exe'
- '\wscript.exe'
- '\mshta.exe'
condition: selection
falsepositives:
- Legitimate templates or add-ins that shell out (baseline before enabling)
level: high
tags:
- attack.execution
- attack.t1059
THE FALSEPOSITIVES FIELD MATTERS: it isn't documentation garnish. A rule shipped without knowing its noise profile is how SOCs end up ignoring alerts, and an ignored alert is worse than no alert.
Search terms — click to filter, or use to dig deeper
4. Detection-as-Code
CONCEPT: treat detections as software — version controlled, peer reviewed, tested in CI, deployed through a pipeline. A rule change without review is a production change without review.
TESTING:Atomic Red Team provides small, safe, ATT&CK-mapped tests that execute a single technique so you can verify your detection actually fires. Caldera and Prelude automate longer adversary emulation chains.
THE DISCIPLINE: for every detection, know which ATT&CK technique it covers, what its false-positive rate is, what data source it needs, and whether it has ever actually fired on something real. Detections that have never fired are either perfect or broken, and you should find out which.
Exercise
Write the Sigma rule above into your lab SIEM, then run the corresponding Atomic Red Team test for T1059. If it doesn't fire, work out why — missing data source, wrong field name, or logging not enabled. That debugging loop is detection engineering.
Search terms — click to filter, or use to dig deeper
Part 2 Network Forensics
5. PCAP Analysis & Wireshark
CAPTURE:tcpdump or dumpcap for acquisition; capture to rotating files rather than one enormous one. Full packet capture is expensive to store, which is why most organisations keep metadata longer than payload.
DISPLAY FILTERS WORTH MEMORISING: the difference between struggling and being fast in Wireshark is knowing about six filters cold.
# Follow one conversation
ip.addr == 10.0.0.5 && tcp.port == 443
# DNS queries only - fastest route to C2 domains
dns.flags.response == 0
# HTTP requests, with the URI visible
http.request
# TLS handshakes and the server name being requested
tls.handshake.type == 1
# Anything not on a normal port - find the odd one out
!(tcp.port in {80 443 22 53})
THE WORKFLOW: Statistics → Conversations to find the heaviest or strangest talkers; Statistics → Protocol Hierarchy to spot protocols that shouldn't be there; then filter down and follow the stream.
Search terms — click to filter, or use to dig deeper
6. Zeek — The Real Workhorse
CONCEPT: Zeek turns raw traffic into structured, queryable logs — conn.log, dns.log, http.log, ssl.log, files.log, notice.log. Instead of scrolling packets you query a dataset, which is the only approach that scales.
WHY ANALYSTS PREFER IT: "show me every TLS certificate with a validity under 7 days" is one command against ssl.log and effectively impossible by hand in Wireshark.
# Process a capture into Zeek logs
zeek -r capture.pcap
# Top talkers by bytes - zeek-cut extracts named fields
cat conn.log | zeek-cut id.orig_h id.resp_h orig_bytes resp_bytes \
| sort -k4 -nr | head -20
# Rare domains: long tail is where C2 lives
cat dns.log | zeek-cut query | sort | uniq -c | sort -n | head -40
Search terms — click to filter, or use to dig deeper
7. Encrypted Traffic Analysis
THE PROBLEM: you usually cannot decrypt, and increasingly should not try. Analysis has moved to metadata and handshake characteristics.
JA3 / JA4: fingerprints computed from the TLS Client Hello — cipher suites, extensions, and their ordering. Different TLS stacks produce different fingerprints, so a client claiming to be Chrome while presenting a Python-requests fingerprint is lying. JA4 is the newer, more robust successor and is worth learning directly.
CERTIFICATE ANOMALIES: self-signed certificates, absurd validity windows, default fields left as "Internet Widgits Pty Ltd," and mismatched SNI are all cheap, high-value signals.
CONNECTS TO: Phase 6's Volt Typhoon material — JARM fingerprinting the C2 server side is the mirror of JA3/JA4 on the client side.
Search terms — click to filter, or use to dig deeper
8. Beacon Detection
CONCEPT: C2 implants check in on a schedule. Even with jitter, the timing distribution of machine-generated callbacks differs measurably from human browsing — humans are bursty and irregular; beacons are not, no matter how much randomness is added.
SIGNALS: low variance in inter-arrival times, consistent payload sizes, long-lived connections to a single destination with little data, and traffic continuing outside working hours to an endpoint with no other activity.
TOOLING:RITA (Real Intelligence Threat Analytics) consumes Zeek logs and scores beacon likelihood directly. This connects straight to Phase 4's covert timing channels — same statistics, opposite goal.
Search terms — click to filter, or use to dig deeper
9. DNS — Where Everything Shows Up
TUNNELING: data exfiltrated in query names. Signals: abnormally long subdomains, high entropy in labels, unusual record types (TXT, NULL) in volume, and one domain receiving vastly more unique queries than anything else.
DGA: algorithmically generated domains produce characteristic entropy and n-gram distributions, plus a distinctive burst of NXDOMAIN responses as the malware walks candidates looking for the registered one. That NXDOMAIN pattern is often the easiest catch in the whole kill chain.
NEWLY REGISTERED DOMAINS: traffic to a domain registered in the last 30 days is disproportionately malicious. It's a cheap enrichment with an excellent signal-to-noise ratio.
Search terms — click to filter, or use to dig deeper
Part 3 Incident Response
10. The IR Lifecycle
NIST SP 800-61: Preparation → Detection & Analysis → Containment, Eradication & Recovery → Post-Incident Activity. SANS teaches essentially the same thing as PICERL (Preparation, Identification, Containment, Eradication, Recovery, Lessons Learned).
PREPARATION IS MOST OF IT: the phase that determines how an incident goes is the one that happens beforehand — logging enabled and retained, an asset inventory that's accurate, tested backups, contact lists, and people who have rehearsed. You cannot investigate what you never logged.
THE CONTAINMENT TENSION: isolate immediately and you stop damage but lose visibility into scope, and tip the adversary off. Observe longer and you learn the full extent but accept ongoing risk. There is no universally right answer — it depends on what's at stake and how confident you are that you've found everything. What matters is that it's a conscious decision, made by someone with authority to make it, and written down.
Search terms — click to filter, or use to dig deeper
11. Playbooks & Tabletops
PLAYBOOKS: pre-written procedures for recurring scenarios — ransomware, BEC, credential compromise, insider data theft. They exist so that decisions get made calmly in advance rather than at 3am by someone who has been awake for twenty hours.
TABLETOPS: discussion-based walkthroughs of a scenario. Their real value is surfacing the unglamorous gaps: nobody knows who can authorise disconnecting the production network; the out-of-hours contact list is two years stale; the backups have never actually been restored from.
BLAMELESS POST-INCIDENT REVIEW: the goal is systemic improvement, not attribution of fault. If people fear the review, they will withhold the information that would prevent the next one. This is borrowed from aviation safety culture and it works for the same reasons.
Search terms — click to filter, or use to dig deeper
12. Threat Intelligence & Frameworks
MITRE ATT&CK: a catalogue of adversary tactics (the why) and techniques (the how), with sub-techniques. Its real utility is as shared vocabulary and as a coverage map — ATT&CK Navigator lets you visualise what you can and cannot currently detect.
KILL CHAIN vs DIAMOND MODEL: the Lockheed Martin Kill Chain is linear and good for describing progression. The Diamond Model (adversary, capability, infrastructure, victim) is relational and better for pivoting during analysis — find one vertex, pivot to the others. They answer different questions; use both.
ATTRIBUTION: genuinely hard, frequently overclaimed, and easy to get wrong. False flags are a documented technique. Use calibrated confidence language ("assessed with moderate confidence") and be explicit about what the assessment rests on. Attribution is usually less operationally useful than people expect — the detection matters more than the name.
SHARING: MISP and OpenCTI for platforms, STIX/TAXII for formats, sector ISACs for community.
Search terms — click to filter, or use to dig deeper
Check yourself
Why is a YARA rule built on a file hash near-worthless?
It's at the bottom of the Pyramid of Pain — a single recompile produces a new hash and evades it entirely, at zero cost to the adversary. Rules should target family-level structure and behaviour that's expensive to change.
How can you flag malicious TLS traffic you cannot decrypt?
JA3/JA4 fingerprinting of the Client Hello reveals the actual TLS stack, exposing clients whose fingerprint contradicts their claimed identity. Combine with certificate anomalies, beacon timing analysis, and destination reputation.
What's the containment tension, and what makes it resolvable?
Isolating immediately stops damage but destroys visibility into scope and alerts the adversary; observing longer maps the full intrusion but accepts ongoing risk. It's resolved not by a rule but by a conscious, documented decision from someone with the authority to weigh the business risk.
Why does a burst of NXDOMAIN responses matter?
It's the signature of DGA malware walking through algorithmically generated candidate domains looking for the one the operator registered. Most fail to resolve — and that failure pattern is often the easiest detection in the entire kill chain.
Glossary
254 termsReferenceReviewed 2026-08-31
Every acronym and term of art used in this guide, plus the surrounding vocabulary you'll meet in papers, advisories, and job descriptions. Use the search bar to filter, or jump by letter.
A
ABAC
Attribute-Based Access Control. Decisions evaluated from attributes of subject, object, action and environment. Expressive, but “who can access this?” becomes a search rather than a lookup.
Acquisition
Obtaining a forensic copy of evidence. Physical (bit-for-bit), logical (files only), or targeted (selected artifacts).
AEAD
Authenticated Encryption with Associated Data. Provides confidentiality and integrity together (AES-GCM, ChaCha20-Poly1305). Unauthenticated encryption is malleable.
AES
Advanced Encryption Standard. The dominant symmetric cipher. Attacks on reduced-round variants don't affect the full cipher.
AFF4
Advanced Forensic Format 4. Container designed for very large and cloud-scale acquisitions.
AFU
After First Unlock. A phone unlocked at least once since boot, so many decryption keys are resident in memory — far more extractable than BFU.
AiTM
Adversary-in-the-Middle. Phishing that proxies the genuine login page, capturing the session cookie after real authentication — defeating MFA without breaking it.
Alert fatigue
Degraded response caused by too many low-value alerts. A noisy detection is often worse than none.
Amcache
Windows registry hive recording application presence with SHA-1 hashes. Stronger execution evidence than Shimcache.
AMVP
Advanced Motion Vector Prediction. HEVC's mechanism for predicting a block's motion vector from neighbours. Because the encoder picks the locally optimal candidate, deviations from optimality expose steganographic embedding.
angr
Binary analysis framework using symbolic execution and SMT solving to reason about which inputs reach which code paths.
Anti-forensics
Techniques to frustrate investigation — timestomping, log wiping, encryption, secure deletion. The absence of expected artifacts is itself a signal.
APT
Advanced Persistent Threat. A well-resourced actor, usually state-linked, that maintains long-term access rather than smashing and grabbing.
Artifact
Any trace a system leaves as a byproduct of normal operation. Forensics is mostly the study of byproducts nobody designed to be evidence.
ASLR
Address Space Layout Randomisation. Randomises memory layout so attackers can't rely on fixed addresses.
Library of small, safe, ATT&CK-mapped tests for verifying that your detections actually fire.
ATT&CK
MITRE's catalogue of adversary tactics and techniques. The shared vocabulary of detection engineering, and a coverage map via ATT&CK Navigator.
Attack surface
The total set of points where an attacker could interact with a system. Reducing it is cheaper than defending it.
Autopsy
Open-source graphical forensic examiner built on The Sleuth Kit.
AVML
Acquire Volatile Memory for Linux. Microsoft's tool for capturing Linux RAM across kernel versions without compiling anything.
B
Backdoor
Covert access mechanism bypassing normal authentication.
Base64
Binary-to-text encoding. Encoding, not encryption — a distinction that matters when someone calls a Kubernetes Secret "encoded".
Basic block
A straight-line instruction sequence with one entry and one exit. The unit control-flow graphs are built from.
Beaconing
Regular check-ins from an implant to its C2. Even jittered, the timing distribution differs measurably from human traffic.
BEC
Business Email Compromise. Fraud via impersonation of a trusted party. Consistently among the costliest attack categories.
BeyondCorp
Google's zero trust implementation, published from 2014 after Operation Aurora. The first large-scale demonstration of an enterprise running with no privileged internal network.
BFU
Before First Unlock. A phone not unlocked since boot; most data remains encrypted with keys not yet in memory.
Binary Ninja
Commercial reverse engineering platform with a strong API and intermediate language stack.
BinDiff
Free tool comparing two binaries function-by-function by structure rather than bytes. Core to n-day research.
Blue team
Defensive security — detection, response, hardening. Red team attacks; purple team runs both together deliberately.
BLUF
Bottom Line Up Front. State the assessment and recommendation in the first paragraph. The difference between intelligence that gets read and intelligence that doesn't.
Bootkit
Malware infecting the boot process, loading before the OS and its defences. UEFI bootkits survive disk formatting.
Botnet
A network of compromised machines under common control.
BYOVD
Bring Your Own Vulnerable Driver. Dropping a legitimately signed but flawed driver to obtain kernel privileges and disable EDR from below it.
C
C2
Command and Control. The infrastructure an attacker uses to direct compromised hosts.
CABAC
Context-Adaptive Binary Arithmetic Coding. The entropy coder in H.264/HEVC main profiles; its syntax elements are a low-capacity steganographic channel.
CAPEv2
Open-source automated malware analysis sandbox, notable for automatic config and payload extraction.
Capstone
Lightweight multi-architecture disassembly framework, widely embedded in other tools.
Carving
Recovering files from raw data by header/footer signature alone, with no filesystem metadata. Tools: photorec, scalpel, foremost.
CBOM
Cryptographic Bill of Materials. An inventory of every cryptographic algorithm in use; the prerequisite for any post-quantum migration.
CFAA
Computer Fraud and Abuse Act. The primary US federal computer crime statute, turning on access 'without authorization'.
CFG
Control Flow Graph. Basic blocks as nodes, branches as edges — what a disassembler's graph view displays.
Chain of custody
The documented, unbroken record of who held evidence, when, and what they did to it. Gaps are what defence experts attack.
checkm8
Unpatchable BootROM exploit affecting Apple A5–A11 devices. Enables code execution for forensic acquisition; does not itself defeat encryption.
CIB
Coordinated Inauthentic Behavior. Networks of fake accounts acting in concert to manipulate platform algorithms and distort narratives.
CloudTrail
AWS service logging every API call with identity, source IP, and parameters. The spine of AWS investigations.
Cover-source mismatch
The core practical obstacle in steganalysis: a detector trained on one camera or pipeline degrades badly on another, so lab accuracy rarely survives real casework.
CoW
Copy-on-Write. Filesystems like APFS and ZFS write changes to new blocks, often preserving prior states that are forensically valuable.
Cuckoo Sandbox
The long-standing open-source automated malware analysis sandbox; ancestor of most modern equivalents.
CVD
Coordinated Vulnerability Disclosure. Reporting privately to a vendor, agreeing a remediation window, then publishing together.
D
Daubert
US federal standard for admitting expert testimony, weighing testability, peer review, error rate, standards, and general acceptance.
DBI
Dynamic Binary Instrumentation. Injecting analysis code into a running process (Frida, Intel Pin, DynamoRIO) without modifying the file on disk.
Dead-box forensics
Analysis of a powered-off system. The opposite of live response — and it forfeits everything that lived only in RAM.
Decompiler
Reconstructs C-like pseudocode from machine code. A reconstruction, never the original source.
Defence in depth
Layering independent controls so no single failure is fatal.
DEP
Data Execution Prevention. Marks memory non-executable so injected data can't run as code.
Detection as code
Managing detection rules like software: version controlled, peer reviewed, tested in CI, deployed via pipeline.
Detonation
Deliberately executing malware in an instrumented, isolated environment to observe behaviour.
DFIR
Digital Forensics and Incident Response. The combined discipline of investigating what happened and stopping it.
DGA
Domain Generation Algorithm. Malware algorithmically generates candidate C2 domains; the resulting NXDOMAIN burst is a strong detection signal.
Diamond Model
Intrusion analysis framework with four vertices — adversary, capability, infrastructure, victim — used for pivoting between related events.
Disassembler
Translates machine code back into assembly mnemonics. Perfect disassembly is undecidable in the general case.
DKIM
DomainKeys Identified Mail. Cryptographic signature over headers and body, verified against a DNS public key.
DKOM
Direct Kernel Object Manipulation. Unlinking objects (typically processes) from kernel lists to hide them. Found by cross-view comparison.
DMARC
Ties SPF and DKIM to the visible From address via alignment, and publishes a policy. What actually closes display-address spoofing.
DMCA §1201
US anti-circumvention provision restricting bypass of technical protection measures. A periodically renewed security-research exemption exists, with conditions.
Dropper
First-stage malware whose only job is retrieving and executing the real payload.
E
E01
EnCase Evidence File format. Compressed forensic image with embedded case metadata and per-block checksums.
eBPF
Extended Berkeley Packet Filter. Sandboxed programs running in the Linux kernel. Powers modern observability and, increasingly, modern rootkits.
ECB
Electronic Codebook. Encrypts each block independently, so identical plaintext yields identical ciphertext. The “ECB penguin” is visible through its own encryption. Never use it.
ECC
Elliptic Curve Cryptography. Public-key crypto with smaller keys than RSA — and equally broken by a sufficiently large quantum computer.
EDR
Endpoint Detection and Response. Host agent monitoring behaviour; the thing modern malware is specifically engineered to evade.
ELF
Executable and Linkable Format. The standard binary format on Linux and most Unix-likes.
Emulation
Executing code for one architecture on another. QEMU and Unicorn let you run firmware you have no hardware for.
Entropy
A measure of randomness. High, uniform entropy in a binary usually means compression or encryption — the classic packer signal.
etcd
Distributed key-value store holding all Kubernetes cluster state, including Secrets — which are base64-encoded, not encrypted.
ETW
Event Tracing for Windows. A core telemetry source; 'ETW patching' disables it in-process to blind defenders.
Exfiltration
Unauthorised transfer of data out of an environment. ATT&CK tactic TA0010.
Expand (Zanzibar)
API returning the effective ACL tree for an object. The key forensic primitive — it answers why access was permitted, not merely whether.
F
Fair use
US doctrine permitting limited unlicensed use for purposes such as commentary and criticism. Fact-specific, decided case by case, and not a blanket permission.
FakeNet-NG
Tool that intercepts and simulates network services so malware believes it has connectivity while nothing leaves the lab.
Falco
Open-source runtime security tool for containers and Linux, built on kernel event streams.
FBE
File-Based Encryption. Android's per-file encryption from version 7, with Credential Encrypted and Device Encrypted classes.
FLARE-VM
Mandiant's installer that converts a clean Windows VM into a fully equipped reverse engineering workstation.
FLIRT
Fast Library Identification and Recognition Technology. IDA's signatures for recognising statically linked library functions automatically.
Forward secrecy
Ephemeral key exchange ensuring past traffic stays secret even if long-term keys are later compromised. Why HNDL adversaries target key establishment.
Frida
Scriptable dynamic instrumentation toolkit. Hooks functions in running processes without touching the file on disk.
FTK Imager
Widely used free acquisition tool for creating and previewing forensic images.
Fuzzing
Feeding malformed input to find crashes. AFL++ and libFuzzer are the standard tools; adjacent to RE rather than part of it.
G
Gadget chain
A sequence of existing code fragments strung together to achieve execution without injecting new code. Central to deserialisation attacks and ROP.
Ghidra
NSA's free, open-source reverse engineering suite, including a decompiler competitive with commercial tools.
Golden SAML
Forging SAML assertions using a stolen token-signing key. Produces cryptographically valid authentication events, so downstream services cannot detect it.
Grover's algorithm
Quantum algorithm giving a quadratic speedup against symmetric crypto. Mitigated by doubling key length — far less alarming than Shor's.
GTFOBins
Curated list of Unix binaries abusable to bypass restrictions. The Linux counterpart to LOLBAS.
H
Hashing
Computing a fixed-length digest (MD5, SHA-1, SHA-256) to prove data hasn't changed. Hash before, hash after, record both.
HEVC
High Efficiency Video Coding (H.265). Successor to H.264; its 35 intra prediction modes and AMVP mechanism are active steganography research targets.
HMAC
Hash-based Message Authentication Code. Proves both integrity and authenticity using a shared secret.
HNDL
Harvest Now, Decrypt Later. Capturing encrypted traffic today to decrypt once quantum capability matures. The reason PQC deadlines exist.
Honeypot
A deliberately exposed system or credential whose only purpose is to be touched by an attacker, generating a high-fidelity alert.
Hooking
Redirecting execution to your own code by patching a call, import, or syscall path. Used by EDR and by rootkits, identically.
Hypervisor
Software creating and running virtual machines. Type 1 runs on bare metal; type 2 runs on a host OS.
I
IAT
Import Address Table. The PE structure listing external functions a binary calls — often the fastest read on a binary's capabilities.
IDOR
Insecure Direct Object Reference. Changing an identifier in a request to access another user's data. Authenticated, well-formed, and invisible to signature-based defences.
IMDS
Instance Metadata Service. Cloud endpoint at 169.254.169.254 serving role credentials. IMDSv1's lack of authentication turned SSRF into credential theft.
INetSim
Internet Services Simulation suite. Answers DNS for everything and serves plausible responses — the standard fake internet for analysis labs.
Infostealer
Malware harvesting credentials, cookies, session tokens, and wallets. The dominant commodity threat, and the reason session tokens are the new password.
Intelligence cycle
Direction, Collection, Processing, Analysis, Dissemination, Feedback. Skipping Direction is why most “threat intelligence” goes unread.
IOC
Indicator of Compromise. An observable artifact of intrusion. Low on the Pyramid of Pain — cheap for adversaries to change.
IR
Two meanings by context: Incident Response (the process), or Intermediate Representation (an architecture-neutral form used for deobfuscation).
J
JA3 / JA4
Fingerprints derived from the TLS Client Hello. Reveal the real client stack regardless of what the client claims to be. JA4 is the newer successor.
JARM
Active TLS server fingerprinting. The server-side counterpart to JA3/JA4, useful for finding C2 infrastructure.
K
KAPE
Kroll Artifact Parser and Extractor. Fast targeted collection and parsing of forensic artifacts.
KDF
Key Derivation Function. Stretches a password into a key deliberately slowly (Argon2, scrypt, PBKDF2) to resist brute force.
Kerckhoffs's principle
A system must stay secure even if everything about it except the key is public. Security through obscurity fails this test.
KEV
CISA's Known Exploited Vulnerabilities catalogue — flaws confirmed exploited in the wild. Patch these first.
Kill chain
Lockheed Martin's linear model of intrusion phases, from reconnaissance to actions on objectives.
L
Lateral movement
Moving from an initially compromised host to others. In cloud, usually role assumption rather than host-to-host.
Least privilege
Granting only the minimum access needed. The single most effective control against lateral movement.
Leopard
Zanzibar's index that denormalises group-to-group relationships into a transitive closure, turning deep membership checks into set intersections with skip-list seeks.
LiME
Linux Memory Extractor. Kernel module for RAM acquisition; needs headers matching the running kernel.
Live response
Collecting evidence from a running system, accepting that your tooling alters what you're measuring. Document the alteration.
LKM
Loadable Kernel Module. Linux kernel extension mechanism, and a classic rootkit delivery vector.
LOLBAS
Living Off The Land Binaries and Scripts. Reference list of signed Windows binaries abusable for attacker purposes.
LOTL
Living Off The Land. Using legitimate system tools rather than custom malware, defeating file-based detection entirely.
M
MACB
Modified, Accessed, Changed, Birth — the four timestamps forensic timelines are built from.
Magic number
Bytes at a file's start identifying its format — MZ for PE, \x7fELF for ELF, %PDF for PDF.
MalwareBazaar
abuse.ch's free, well-tagged malware sample repository with API access. The usual starting point for legal samples.
Mark-of-the-Web
NTFS alternate data stream flagging a file as internet-sourced. Drives Office macro blocking — and container formats that didn't propagate it became the workaround.
MFT
Master File Table. NTFS's index. Each record holds two timestamp sets ($SI and $FN); disagreement between them indicates timestomping.
Motion Vector Difference. The residual after motion vector prediction in video coding, and a primary steganographic embedding domain.
N
N-day
A vulnerability that is publicly known and patched but still unpatched somewhere. Most real intrusions use n-days, not zero-days.
NAL unit
Network Abstraction Layer unit. The packetisation structure of H.264/HEVC bitstreams.
Namespace
Linux kernel feature isolating a process's view of system resources. One of the primitives containers are built from.
Namespace (Linux)
Kernel isolation of a process's view of resources — PID, mount, network, user. A container is a normal process with a restricted view.
NetFlow
Network metadata records (who talked to whom, when, how much) without packet payload. Cheap to retain at scale.
New enemy problem
Where stale authorization snapshots apply an old ACL to new content, or miss a revocation that preceded a content update. The problem zookies exist to solve.
Nonce
Number used once. Reusing one breaks many otherwise-sound schemes catastrophically.
Nop
No-operation instruction (0x90 on x86). "Nopping out" a check replaces it with instructions that do nothing.
NXDOMAIN
DNS response meaning the domain doesn't exist. Bursts of them are a hallmark of DGA malware hunting for its live domain.
O
Obfuscation
Deliberately making code hard to analyse without changing behaviour — opaque predicates, flattening, virtualisation.
OEP
Original Entry Point. Where execution transfers once a packer has finished unpacking — the moment to dump memory.
Olympic Destroyer
2018 attack containing deliberately forged artifacts implicating multiple unrelated groups. The standing case study for false-flag attribution.
Opcode
The byte(s) encoding which instruction a CPU should execute.
OpenFGA
CNCF relationship-based authorization engine derived from Auth0/Okta FGA. Zanzibar-inspired, with a friendly modelling DSL.
Orphan work
A work still under copyright whose rights holder cannot be identified or found. Unknown authorship does not mean public domain.
OSINT
Open Source Intelligence. Collection from publicly available sources. Genuinely dual-use; see Legal & Ethics.
P
Packer
Compresses or encrypts a binary, wrapping it in a stub that reconstructs the original in memory at runtime.
Pagefile
Windows virtual memory backing file. Holds fragments of process memory and survives reboot; frequently overlooked.
Patching
Modifying bytes in a binary to change behaviour — flipping a conditional jump, nopping a check.
PDP
Policy Decision Point. In NIST SP 800-207, the Policy Engine and Policy Administrator together — what decides and then executes an access decision.
PE
Portable Executable. The Windows binary format. Begins with the 'MZ' magic bytes (0x5A4D).
PEB
Process Environment Block. Windows per-process structure. Malware walks it to resolve ntdll and build syscall stubs, bypassing EDR hooks.
PEP
Policy Enforcement Point. The in-path component that enables, monitors and terminates connections to a resource. The thing that actually says no.
Deceiving a person into disclosing credentials or executing code. Still the most common initial access vector.
PIP
Policy Information Point. A data source the policy engine reasons over — identity provider, device management, SIEM, threat intelligence, PKI.
Pivot
To move from one foothold to another, or in analysis, from one indicator to related ones.
Plaso
The framework behind log2timeline; parses many artifact types into a unified super timeline.
PLC
Programmable Logic Controller. The industrial computer that runs physical processes. Internet-exposed PLCs are a live critical-infrastructure crisis.
PQC
Post-Quantum Cryptography. Algorithms designed to resist quantum attack. US federal deadlines set by EO 14412: key establishment 2030, signatures 2031.
Prefetch
Windows files recording program execution, run counts, and timestamps. Strong evidence a binary actually ran.
Privilege escalation
Gaining higher permissions than initially held. Vertical: user to admin. Horizontal: one user to another.
Prototype pollution
JavaScript vulnerability where injecting __proto__ properties alters the prototype chain, changing behaviour of objects elsewhere in the program.
Purple team
Red and blue operating together — attack, observe whether detection fires, fix, repeat.
Pyramid of Pain
Bianco's model ranking indicators by the cost imposed on an adversary when detected. Hashes are trivial to change; TTPs are not.
R
Race condition
A bug where behaviour depends on unpredictable event ordering. TOCTOU (time-of-check to time-of-use) is the security-relevant form.
radare2
Open-source reverse engineering framework and CLI. Steep learning curve, very capable; rizin is a friendlier fork.
Ransomware
Malware encrypting data for extortion. Modern operations add data theft (double extortion) so backups alone don't save you.
RAT
Remote Access Trojan/Tool. Malware granting interactive control of a compromised host.
RBAC
Role-Based Access Control. In Kubernetes, over-permissive RBAC is the usual path from one compromised pod to the whole cluster.
ReBAC
Relationship-Based Access Control. Permissions as a graph rather than static lists (Zanzibar, OpenFGA, SpiceDB).
Register
Small, fast storage inside the CPU. On x64: RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP, R8–R15, plus RIP and RFLAGS.
Relation tuple
Zanzibar's single data primitive, asserting ⟨object⟩#⟨relation⟩@⟨user⟩. Everything else in the model is built from it.
REMnux
Ubuntu-based Linux distribution preloaded for malware analysis; commonly paired with FLARE-VM as the simulated internet host.
RITA
Real Intelligence Threat Analytics. Consumes Zeek logs and scores beacon likelihood.
Rootkit
Malware that hides itself and other artifacts by subverting the system's own reporting. Found via cross-view comparison.
Rowhammer
Repeatedly activating DRAM rows to induce bit flips in neighbours. Phoenix (CVE-2025-6202) defeated DDR5 TRR protections.
RSA
Public-key cryptosystem based on integer factorisation. Broken in polynomial time by Shor's algorithm on a sufficient quantum computer.
S
Sandbox
Isolated execution environment for observing untrusted code. Also what malware checks for before deciding whether to behave.
SASE
Secure Access Service Edge. Bundles ZTNA, secure web gateway, CASB and networking delivered from the cloud edge. SSE is the security subset.
SDP
Software-Defined Perimeter. Design pattern underlying ZTNA, often using single-packet authorisation so services are invisible to unauthenticated clients.
Secure Enclave
Apple coprocessor holding key material and enforcing passcode attempt limits. Why brute force is impractical on current iOS hardware.
SEI
Supplemental Enhancement Information. Optional H.264/HEVC bitstream messages decoders may ignore — therefore a hiding place.
Serverless
Compute where the provider manages all infrastructure. Forensically the hardest case: no disk, no persistence, milliseconds of execution.
Shared responsibility
The division of security duties between cloud provider and customer. Where the line sits determines what you can investigate.
Shellcode
Position-independent machine code, historically to spawn a shell. In analysis, the injected payload you have to read by hand.
Shimcache
Windows application compatibility cache. Records that the OS saw a binary — NOT proof it executed. A frequent source of wrong findings.
Shor's algorithm
Quantum algorithm factoring integers and solving discrete logs efficiently — breaking RSA and ECC. The entire reason PQC exists.
SIEM
Security Information and Event Management. Centralised log aggregation, correlation, and alerting.
Sigma
Vendor-neutral YAML format for log-based detection rules, compiled to whatever query language your SIEM uses.
Slack space
Unused bytes between a file's logical end and the end of its allocated cluster. Often holds remnants of whatever was there before.
Sleuth Kit
Open-source library and CLI tools for filesystem forensics; the engine underneath Autopsy.
SOAR
Security Orchestration, Automation and Response. Automates repetitive response actions.
SOC
Security Operations Centre. The team monitoring and responding to alerts — and the dashboard this guide is named against.
SPF
Sender Policy Framework. DNS record listing authorised sending servers. Validates the envelope sender, not the visible From — which is the gap DMARC closes.
SpiceDB
AuthZed's open-source Zanzibar implementation, with an explicit schema language, ZedTokens, and per-request consistency levels.
Spoliation
Destruction or alteration of evidence, whether deliberate or careless. Can carry legal consequences independent of the underlying case.
SQLite WAL
Write-Ahead Log. Holds recent transactions before checkpointing. Copying a .db without its -wal and -shm companions silently loses recent activity.
SRM
Spatial Rich Model. Feature set extracting thousands of noise residuals for image steganalysis; the pre-deep-learning workhorse.
SRUM
System Resource Usage Monitor. Windows database recording per-application network and resource use — excellent for proving exfiltration volume.
SSRF
Server-Side Request Forgery. The server fetches an attacker-controlled URL, issuing requests from inside the network with its own identity. Critical in cloud because of IMDS.
Stack
LIFO memory region holding local variables, arguments, and return addresses. Grows downward on x86/x64.
Steganalysis
Detecting the presence of hidden data. The defensive counterpart to steganography.
Steganography
Hiding the existence of a message, as distinct from cryptography, which hides only its content.
Stegomalware
Malware concealing its payload inside innocuous-looking media files to defeat signature and content inspection.
strings
The first command anyone runs on an unknown binary. Extracts printable sequences, often revealing URLs, paths and error messages.
Super timeline
A merged chronological view of every timestamped artifact from every source. Where an intrusion narrative actually becomes visible.
Supply chain attack
Compromising a trusted upstream dependency, vendor, or update channel to reach many downstream targets at once.
Suricata
Open-source IDS/IPS with signature matching and protocol analysis.
Symbol
A name bound to an address — function or variable. Stripped binaries have none, which is most of why RE is hard.
Syscall
The boundary crossing from user space into the kernel. Malware invokes it directly to bypass hooked user-mode APIs.
T
TEE
Trusted Execution Environment. Hardware-isolated enclave (Intel TDX, AMD SEV-SNP, ARM CCA) protecting code from a compromised host.
Tetragon
eBPF-based runtime security and observability tool from the Cilium project.
Threat hunting
Proactively searching for compromise on the hypothesis that detection has already failed, rather than waiting for an alert.
Threat model
A structured account of who might attack a system, how, and what matters most. Without one, security work is guesswork.
Timesketch
Open-source collaborative timeline analysis platform, typically fed by Plaso.
Timestomping
Falsifying file timestamps. On NTFS, most tools alter only $STANDARD_INFORMATION, leaving $FILE_NAME inconsistent — which is the tell.
TLP
Traffic Light Protocol. Governs redistribution of shared intelligence: CLEAR, GREEN, AMBER, AMBER+STRICT, RED. Treat as binding.
Token (Windows)
Structure describing a process's security context — user SID, groups, integrity level, privileges. Windows privilege boundaries are token boundaries.
TRR
Target Row Refresh. In-DRAM Rowhammer mitigation, reverse-engineered and defeated by the Phoenix attack.
True positive
An alert that correctly identifies real malicious activity. False positive: benign flagged as malicious. False negative: the miss that matters most.
TTP
Tactics, Techniques and Procedures. How an adversary operates — the top of the Pyramid of Pain and the most durable detection target.
U
UAC
User Account Control. Elevation from Medium to High integrity. “UAC bypass” is therefore distinct from privilege escalation proper.
UAF
Use-After-Free. Accessing memory after release — a foundational memory-corruption bug class.
UEBA
User and Entity Behavior Analytics. Detecting anomalies against behavioural baselines rather than fixed rules.
UEFI
Unified Extensible Firmware Interface. Firmware on the motherboard's SPI flash. A bootkit here survives disk formatting entirely.
Unicorn
Lightweight CPU emulator framework, often used to run isolated functions during analysis.
Unpacking
Recovering the original code from a packed binary, usually by letting it decrypt itself in memory and dumping at OEP.
Userset
An object#relation pair used in the user position of a relation tuple. The idea that makes groups, nesting and inheritance emerge from one primitive.
Userset rewrite
Zanzibar rules computing relations rather than storing them — union, intersection, exclusion, and tuple_to_userset for inheritance.
UsnJrnl
NTFS Update Sequence Number Journal. Records filesystem changes; frequently recovers evidence of deleted files.
V
Velociraptor
Open-source endpoint visibility and hunting platform; increasingly central to open-source DFIR at scale.
Virtual address
An address in a process's own address space, translated to physical memory by the MMU.
Volatility
The standard open-source memory forensics framework. Reconstructs processes, connections and injected code from a RAM image.
VPC Flow Logs
AWS network metadata logs. No payload, but enough to establish who talked to what, when, and how much left.
W
Warrant
Judicial authorisation for search or seizure. Requirements and exceptions vary enormously by jurisdiction.
Web shell
Script planted in a web root giving an attacker command execution through HTTP. The most common web-server persistence.
WinDbg
Microsoft's debugger, covering user and kernel mode, with symbol-server integration and time-travel debugging.
WinPMEM
Open-source Windows memory acquisition tool.
Wiper
Malware designed to destroy data irrecoverably. Often disguised as ransomware to delay attribution.
WMI
Windows Management Instrumentation. Management interface and a fileless persistence mechanism via event subscriptions stored in the WMI repository.
Write blocker
Hardware permitting reads while physically preventing writes to evidence media. The defensible way to acquire a disk.
X
x64dbg
Free, open-source Windows user-mode debugger. The practical successor to OllyDbg.
Y
YARA
Pattern-matching language for classifying and hunting files by strings, byte patterns and structural conditions.
ysoserial
Tool and catalogue of Java deserialisation gadget chains — reaching code execution using only classes already present.
Z
Zanzibar
Google's global authorization system (USENIX ATC 2019), backing Drive, Calendar, Cloud, Maps, Photos and YouTube. Progenitor of modern ReBAC systems.
Zeek
Network security monitor converting traffic into structured, queryable logs. The scalable alternative to reading packets by hand.
Zero Trust
Architecture assuming no implicit trust from network location. NIST SP 800-207; breaks down around 'authenticate once' assumptions.
Zero-day
A vulnerability with no available patch at time of exploitation.
Zookie
An opaque byte sequence encoding a globally meaningful timestamp, with at-least-as-fresh semantics. A consistency mechanism — not, despite common claims, an authenticity one.
ZTMM
CISA's Zero Trust Maturity Model. Five pillars, three cross-cutting capabilities, four stages. Version 2.0 (April 2023) is current.
ZTNA
Zero Trust Network Access. Brokers a request to one specific application rather than placing a device on a network. The practical VPN replacement.
Windows & Linux Internals
~18 min readFoundationalReviewed 2026-08-20
Why this page exists: Phases 1–2 and Reverse Engineering Tier 2 assume you know what the PEB is, what a token does, and why /proc matters. This is the page that stops assuming.
Almost every technique in this guide is an OS internals fact wearing a costume. Process injection is a fact about how Windows lets one process touch another's memory. Container escape is a fact about namespaces. EDR evasion is a fact about where the user/kernel boundary sits. Learn the internals once and half the "advanced" material stops being advanced.
Part 1 Windows
1. Processes, Threads & the PEB
CONCEPT: a process is a container for resources — an address space, handles, a token. A thread is what actually executes. A process with no threads is inert. This distinction is why "process injection" works: you can put code in one process and have a thread run it.
PEB / TEB: the Process Environment Block sits in user-space memory and holds the module list, heap pointers, and the BeingDebugged flag. The Thread Environment Block holds per-thread state and, at a fixed offset, a pointer back to the PEB — GS:[0x60] on x64.
WHY MALWARE CARES: because the PEB is reachable without calling any API. Malware walks PEB → Ldr → InMemoryOrderModuleList to find ntdll.dll's base address, parses its export table by hand, and resolves functions without ever touching GetProcAddress — which EDR is watching. This is exactly the technique in Phase 2's Hell's Gate material; it is just PEB traversal.
The pattern to notice
Every EDR evasion technique is "find a way to do X without calling the API that does X." Once you know the data structures the API reads, you can read them yourself. Internals knowledge is the evasion — and equally, it's the detection.
Search terms — click to filter, or use to dig deeper
2. Handles, Objects & the Object Manager
CONCEPT: Windows is object-based underneath. Files, processes, threads, mutexes, registry keys, and events are all kernel objects in a namespace you can browse (WinObj shows it). A handle is a per-process index into a table pointing at one of these objects, carrying an access mask.
FORENSIC VALUE: handles are enormously informative. A process holding a handle to another process with PROCESS_VM_WRITE is preparing to inject. Malware families frequently create a named mutex to avoid double-infecting a host — and that mutex name becomes a superb host-based IOC, because it must stay stable across the campaign.
TOOLING: Process Explorer and Process Hacker show handles live; Volatility's windows.handles recovers them from a memory image.
Search terms — click to filter, or use to dig deeper
3. Tokens, SIDs & Privileges
CONCEPT: every process carries an access token describing who it runs as: a user SID, group SIDs, an integrity level, and a privilege list. Access decisions compare the token against an object's security descriptor.
PRIVILEGES THAT MATTER:SeDebugPrivilege (open any process — the key to most injection), SeBackupPrivilege and SeRestorePrivilege (read or write any file regardless of ACL), SeImpersonatePrivilege (the basis of the entire "Potato" escalation family), SeLoadDriverPrivilege (load kernel code).
TOKEN THEFT: a process running as SYSTEM can duplicate its token and spawn a process as another user. This is what "token impersonation" means in post-exploitation tooling, and it's why privilege boundaries in Windows are token boundaries rather than process boundaries.
INTEGRITY LEVELS: Low / Medium / High / System. A Medium-integrity process cannot write to a High-integrity one. UAC elevation is a jump from Medium to High — which is why "UAC bypass" is a distinct technique category from privilege escalation proper.
Search terms — click to filter, or use to dig deeper
4. DLLs, the Loader & Search Order
CONCEPT: the Windows loader resolves imports at load time by searching a defined sequence of directories. If a required DLL isn't found where expected, an attacker who can write to an earlier directory in that order gets their code loaded into a trusted process.
THE ATTACK FAMILY:DLL search order hijacking (plant a DLL earlier in the path), DLL side-loading (ship a legitimate signed EXE alongside a malicious DLL it will load — extremely common in APT tradecraft because the running binary is genuinely signed), and phantom DLL hijacking (supply a DLL the program looks for but which doesn't exist).
DETECTION: a signed binary loading an unsigned DLL from a user-writable directory is the signature. Sysmon Event ID 7 (image loaded) is the telemetry; correlate signer status with load path.
Search terms — click to filter, or use to dig deeper
5. The Registry as a Filesystem
CONCEPT: the registry is a hierarchical database stored in hive files on disk — SYSTEM, SOFTWARE, SAM, SECURITY in config\, and NTUSER.DAT per user. The familiar HKLM/HKCU roots are views assembled from these.
FORENSIC KEYS:Run/RunOnce and Services for persistence; UserAssist for GUI launches (ROT13-encoded, which surprises people); ShellBags for folder access, including folders that no longer exist; USBSTOR for device history; AppCompatCache for binary presence.
KEY TIMESTAMPS: registry keys carry a LastWrite timestamp; values do not. This means you can date the last modification of a key but not tell which value changed — a limitation worth stating explicitly in a report.
Search terms — click to filter, or use to dig deeper
6. ETW, WMI & the Telemetry Layer
ETW: Event Tracing for Windows is the kernel's high-performance telemetry bus, and it's what most EDR products consume. Because providers can be manipulated in-process, ETW patching (overwriting EtwEventWrite with a return instruction) silently blinds a large amount of monitoring — the process keeps running, the events simply stop.
WMI: a management interface that is also a persistence mechanism. WMI event subscriptions (filter + consumer + binding) trigger code on system events and survive reboot while living in the WMI repository rather than as a file. Classic APT persistence and easy to miss.
AMSI: the Antimalware Scan Interface lets script engines submit content for scanning before execution. Patching it in-memory is the standard PowerShell evasion, which is why AMSI bypass attempts are themselves a high-value detection.
Search terms — click to filter, or use to dig deeper
Part 2 Linux
7. /proc — The Kernel as Files
CONCEPT:/proc is a virtual filesystem exposing kernel state as readable files. It is the single most useful directory on a live Linux system under investigation.
# The binary behind a PID - survives deletion of the on-disk file
ls -l /proc/<pid>/exe
# Full command line and environment (often holds credentials)
tr '\0' ' ' < /proc/<pid>/cmdline
tr '\0' '\n' < /proc/<pid>/environ
# Open files, sockets, and deleted-but-held files
ls -l /proc/<pid>/fd | grep deleted
# Memory map - look for rwx anonymous regions
cat /proc/<pid>/maps
THE DELETED-BINARY TRICK: malware commonly unlinks its own executable after starting. The file is gone from the filesystem but /proc/<pid>/exe still points to the inode — so you can recover the binary by copying that symlink target while the process lives. Do this before you kill anything.
Search terms — click to filter, or use to dig deeper
8. Namespaces, cgroups & Capabilities
NAMESPACES: isolate a process's view of resources — PID, mount, network, UTS, IPC, user, cgroup. A container is a normal process with a restricted view. This is why the host can see everything inside a container via /proc, but not vice versa.
CGROUPS: limit resource consumption. Namespaces control what you see; cgroups control what you can use. Together they are what "containerisation" actually means — there is no container object in the kernel.
CAPABILITIES: root's powers split into discrete units. CAP_SYS_ADMIN is so broad it's called "the new root"; CAP_SYS_PTRACE allows inspecting other processes; CAP_NET_RAW allows raw sockets. A container granted CAP_SYS_ADMIN is barely contained at all, which is the root of most escape paths in the Cloud track.
Search terms — click to filter, or use to dig deeper
9. ELF Loading, LD_PRELOAD & Dynamic Linking
CONCEPT: the dynamic linker (ld.so) resolves shared library symbols at load time, usually lazily via the PLT/GOT indirection tables. Understanding this is what makes userland rootkits comprehensible.
LD_PRELOAD: forces a library to load before all others, so its symbols win resolution. Override readdir() and files vanish from every program that lists directories; override open() and you control what everything reads. This is the classic userland rootkit, and it's the third backend VoidLink ships (see Phase 1).
DETECTION: check /etc/ld.so.preload, inspect each process's environment for LD_PRELOAD, and compare a statically linked busybox's view of the filesystem against the system tools' view. Static binaries don't use the dynamic linker, so they can't be preloaded — that asymmetry is your cross-view check.
Search terms — click to filter, or use to dig deeper
10. Persistence Surfaces on Linux
THE INVENTORY: systemd units (including user units in ~/.config/systemd/user/) and timers; cron and /etc/cron.d; shell rc files (.bashrc, .profile); /etc/ld.so.preload; kernel modules and /etc/modules-load.d; SSH authorized_keys; PAM modules; udev rules; and atd jobs.
MODERN ADDITIONS:io_uring based implants avoid conventional syscalls entirely, which defeats syscall-hooking monitors — the RingReaper research is the reference example. eBPF programs persist as pinned objects under /sys/fs/bpf/.
AUDITING:systemctl list-timers, systemctl --user list-units, crontab -l for every user, bpftool prog list, and lsmod compared against /sys/module.
Search terms — click to filter, or use to dig deeper
Check yourself
Why does malware walk the PEB instead of calling GetProcAddress?
Because EDR hooks the API. The PEB is plain user-space memory containing the loaded-module list, so malware can find ntdll and parse its export table itself — obtaining the same information with no monitored call. Internals knowledge is what makes the bypass possible.
A container has CAP_SYS_ADMIN. Why is that close to game over?
CAP_SYS_ADMIN covers such a broad range of privileged operations — mounting filesystems, manipulating namespaces — that it provides multiple documented routes to escape. It's widely described as "the new root."
Malware deleted its own binary. Can you still recover it?
Yes, while the process lives: /proc/<pid>/exe still references the inode, so copying the symlink target recovers the executable. Do it before killing the process — once the last reference closes, the inode is freed.
Why is a signed EXE loading an unsigned DLL from a user-writable path suspicious?
It's the signature of DLL side-loading — a genuinely signed binary is used as a trusted host for attacker code, so signature checks on the running process pass. Sysmon Event ID 7 plus signer/path correlation catches it.
Anti-Forensics
~14 min readIntermediateReviewed 2026-08-20
Prerequisites: DFIR Core. This page is its mirror image — what an adversary does to make that work fail, and how you notice.
DFIR Core taught you to read artifacts. This page is about what happens when someone has been actively working to make sure there aren't any. The central lesson is counter-intuitive and worth holding onto: anti-forensics rarely erases evidence. It substitutes one kind of evidence for another. A tampered artifact and a missing artifact are both findings.
The governing idea
Systems are enormously redundant. The same event is recorded by the filesystem, the registry, the event log, the prefetch file, the journal, and often the network. An adversary must find and neutralise all of them; you need to find one survivor, or notice that the others disagree. That asymmetry is on your side, and it is why anti-forensics usually fails against a patient examiner.
1. Timestomping & Timeline Attacks
TECHNIQUE: falsifying file timestamps so malicious files blend into the OS install date, or so a timeline shows a misleading order of events.
WHY IT USUALLY FAILS ON NTFS: every file has two timestamp sets — $STANDARD_INFORMATION (what tools display and what the common APIs modify) and $FILE_NAME (maintained by the kernel, much harder to set). Most tooling alters only $SI. Disagreement between $SI and $FN is a direct tampering indicator, and so is a timestamp with zeroed sub-second precision, since genuine NTFS timestamps carry 100-nanosecond granularity while forged ones frequently land on a whole second.
OTHER SURVIVORS:$UsnJrnl and $LogFile record the change activity independently, and the MFT record number itself roughly correlates with creation order — a file claiming to be from 2019 sitting in a high MFT entry surrounded by last-week's files is lying.
Search terms — click to filter, or use to dig deeper
2. Log Manipulation & Its Traces
TECHNIQUE: clearing event logs, selectively deleting records, stopping the logging service, or disabling telemetry providers.
WHAT IT LEAVES: clearing a Windows log generates Event ID 1102 (Security) or 104 (System) — the act of erasure is itself logged. Selective record deletion breaks the monotonic record-number sequence, leaving a gap that is trivially detectable. Stopping a service generates its own events. On Linux, journald sequence numbers and the systemd journal's FSS (Forward Secure Sealing), where enabled, serve the same role.
THE STRONGEST DEFENCE: ship logs off-host in real time. An adversary can control the endpoint; they cannot retroactively edit what already left it. This single control defeats most log tampering outright.
DETECTION SIGNAL: a silent interval. A host that normally emits a steady event rate and then produces nothing for forty minutes has told you exactly where to look, even though the logs from that window are gone.
Search terms — click to filter, or use to dig deeper
3. Secure Deletion & What Survives It
TECHNIQUE: overwriting file contents rather than unlinking them — shred, sdelete, or a purpose-built wiper.
WHAT SURVIVES ANYWAY: filesystem metadata frequently outlives file content. The MFT entry, journal records, LNK files, Jump Lists, prefetch, registry MRU lists, and thumbnail caches all reference a file that no longer exists. You may not recover the document, but you can often prove it existed, when it was accessed, and what it was called.
SSD COMPLICATION: wear levelling and TRIM mean the physical blocks holding old data may be inaccessible to overwriting and to recovery. On SSDs, secure deletion is less reliable for the adversary and recovery is less reliable for you — the flash translation layer sits between both of you and the actual cells.
CLOUD & BACKUP: the most common failure of secure deletion is that the data was synced, backed up, or emailed. Deletion is local; copies are not.
Search terms — click to filter, or use to dig deeper
4. Living Off The Land as Anti-Forensics
CONCEPT: the most effective anti-forensics isn't destroying evidence — it's never generating distinctive evidence in the first place. Using certutil, bitsadmin, rundll32, mshta, PowerShell, WMI, or (on Linux) curl, base64, and bash means every binary on disk is legitimate and signed.
WHY IT DEFEATS FILE-BASED DETECTION: there is no malicious file to hash, quarantine, or write a YARA rule against. The malice is entirely in the arguments and the sequence.
DETECTION: this is precisely where command-line logging earns its cost. Event ID 4688 with command line enabled, or Sysmon Event ID 1, turns invisible activity into a clean detection — certutil -urlcache -f http://... file.exe is unmistakable. Reference lists: LOLBAS for Windows, GTFOBins for Unix.
CONNECTS TO: Phase 6's Volt Typhoon material, which is LOTL applied at nation-state scale.
Search terms — click to filter, or use to dig deeper
5. Fileless & Memory-Only Execution
TECHNIQUE: never writing the payload to disk — reflective DLL loading, process hollowing, .NET assembly loading from memory, PowerShell downloading and executing in-process, or persistence stored in the registry or a WMI subscription rather than a file.
THE COUNTER: memory forensics, which is why DFIR Core insists on capturing RAM first. malfind locating executable-writable-unbacked memory regions is the direct answer to this entire category.
AND THE LIMIT: fileless malware still has to survive reboot somehow, and every persistence mechanism touches something durable — a registry value, a WMI binding, a scheduled task. "Fileless" describes the payload, not the foothold. Hunt the foothold.
Search terms — click to filter, or use to dig deeper
6. Encryption, Packing & Obfuscation
TECHNIQUE: full-disk encryption to defeat dead-box acquisition; packed or virtualised payloads to defeat static analysis; encrypted C2 to defeat network inspection.
RESPONSE: against FDE, the decisive factor is capturing the system while running — keys live in RAM, and this is a large part of why order of volatility matters so much. Against packing, the Reverse Engineering track's unpacking material applies directly. Against encrypted C2, metadata analysis (JA3/JA4, beacon timing, volume) works without decryption.
THE HIGH-ENTROPY TELL: encryption and packing produce a statistically distinctive uniform entropy. A "document" with the entropy profile of random data is a finding in itself, even before you know what it contains.
Search terms — click to filter, or use to dig deeper
7. Data Hiding & Steganography
TECHNIQUE: NTFS alternate data streams, file slack, unallocated space, hidden partitions and volumes, polyglot files, and media steganography.
DETECTION: ADS are enumerable (dir /R, Get-Item -Stream *); slack and unallocated space are carved as a routine step; container/partition arithmetic exposes hidden volumes when declared sizes don't reconcile with physical capacity.
SEE ALSO: the Stego Lab track covers the media side in depth — and note that the cheap container-level triage there catches far more real-world activity than statistical steganalysis does.
Search terms — click to filter, or use to dig deeper
8. Attacking the Investigator
CONCEPT: the most sophisticated tier targets the analysis process itself — sandbox detection and delayed execution, anti-VM and anti-debug checks, forensic-tool-specific evasion, deliberate false flags (planted foreign-language strings, borrowed code, timezone manipulation) to misdirect attribution, and log poisoning to create a plausible innocent narrative.
THE DISCIPLINE THIS DEMANDS: hold hypotheses loosely. Corroborate across independent artifact sources. Be explicit in reports about what is observed versus inferred, and use calibrated confidence language. An adversary who knows how you think can feed you a story — and a confident, well-written, wrong report does more damage than an uncertain one.
On attribution specifically
Language artifacts, compile timestamps, and code reuse are the easiest things in the entire discipline to fake deliberately. Treat them as weak signals requiring corroboration, never as conclusions. The Olympic Destroyer case remains the canonical example of false flags that fooled experienced teams.
Search terms — click to filter, or use to dig deeper
Check yourself
Someone timestomped a file. Name three independent ways you might still catch it.
(1) $SI and $FN timestamp disagreement in the MFT; (2) zeroed sub-second precision, since genuine NTFS timestamps have 100ns granularity; (3) $UsnJrnl/$LogFile records of the change, or an MFT record number inconsistent with the claimed age.
Why is shipping logs off-host the strongest single anti-tampering control?
An adversary with endpoint control can edit or clear local logs, but cannot retroactively alter records that already left the machine. It converts log tampering from a successful technique into a detectable gap.
"Fileless malware leaves no evidence." What's wrong with that?
Two things. It's in memory, so memory forensics finds it — malfind targets exactly this. And it must persist somehow across reboot, and every persistence mechanism touches something durable: a registry value, a WMI subscription, a scheduled task. "Fileless" describes the payload, not the foothold.
Your sample contains Cyrillic strings and compiles to Moscow business hours. What do you conclude?
Very little on its own. Language artifacts and compile timestamps are trivially forged and are a documented false-flag technique. Treat as weak signals needing independent corroboration, and use calibrated confidence language in any report.
Threat Intelligence & Attribution
~14 min readIntermediateReviewed 2026-08-20
Prerequisites: Detection Engineering for the frameworks; Anti-Forensics for why attribution is hard.
Threat intelligence is the discipline of turning observations about adversaries into decisions. Most of what gets sold as threat intelligence is a list of IP addresses, which is data, not intelligence. The difference is whether it changes what you do.
1. The Intelligence Cycle
THE LOOP: Direction (what do we need to know, and who's asking) → Collection → Processing → Analysis → Dissemination → Feedback. Borrowed wholesale from traditional intelligence practice, and the first step is the one most often skipped.
WHY DIRECTION MATTERS: intelligence without a consumer and a question is a hobby. "Which ransomware groups target mid-size healthcare in our region, and what initial access do they use" is a requirement. "Send me threat feeds" is not.
THE THREE TIERS:strategic (board-level: risk trends, geopolitics, sector targeting), operational (campaign-level: who is targeting us, how, and when), tactical (analyst-level: IOCs, TTPs, detection content). They serve different readers and shouldn't be mixed in one document.
Search terms — click to filter, or use to dig deeper
2. The Diamond Model
CONCEPT: every intrusion event has four vertices — adversary, capability (their malware/tooling), infrastructure (C2, domains, hosting), and victim — connected by edges. Meta-features add timestamp, phase, result, and confidence.
WHY IT'S USEFUL: it formalises pivoting. Know the infrastructure, pivot to other victims sharing it. Know the capability, pivot to other infrastructure that malware family calls home. Each vertex is a query against your data and against public sources.
VS. KILL CHAIN: the Kill Chain is linear and describes progression through an intrusion. The Diamond Model is relational and describes connection between events. They answer different questions — use the Kill Chain to explain what happened, the Diamond Model to find what else is related.
Search terms — click to filter, or use to dig deeper
3. ATT&CK as Structure, Not Decoration
CONCEPT: tactics are the adversary's goals (Initial Access, Persistence, Exfiltration); techniques are how they achieve them; sub-techniques are specific variants. Also included: groups, software, campaigns, and mitigations.
THE REAL USE — COVERAGE MAPPING: ATT&CK Navigator lets you colour the matrix by detection coverage. The output is an honest picture of where you are blind, which is far more actionable than a list of what you can catch.
THE COMMON MISUSE: tagging a report with technique IDs after the fact and calling it "ATT&CK-mapped." That's labelling, not analysis. The value comes from using the framework to ask what else an adversary at this stage typically does next, and whether you'd see it.
Common mistake
Treating technique count as a security metric. Covering 200 techniques badly is worse than covering 40 well. Coverage without validation (see Atomic Red Team in Detection Engineering) is an assumption, not a measurement.
Search terms — click to filter, or use to dig deeper
4. Attribution — Why It's Hard and Frequently Wrong
THE LAYERS: attribution to a cluster of activity is achievable and useful. Attribution to an organisation is harder. Attribution to a named individual is generally beyond private-sector capability and usually requires signals intelligence or law enforcement powers.
WHAT ANALYSTS USE: code reuse and shared development artifacts, infrastructure overlap, operational patterns (working hours, holidays observed), targeting consistent with a state's interests, language and encoding artifacts, and OPSEC failures.
WHY EACH IS WEAK ALONE: code is stolen, leaked, and shared between groups. Infrastructure is rented and reused. Working hours are trivially shifted. Language artifacts are the easiest thing in the world to plant deliberately — see Anti-Forensics.
CONFIDENCE LANGUAGE: use calibrated terms and mean them: low / moderate / high confidence, with an explicit statement of what the assessment rests on and what would change it. "We assess with moderate confidence, based on infrastructure overlap with previously reported activity, that…" is a defensible sentence. "This was Russia" is not.
Olympic Destroyer
The 2018 Winter Olympics attack included deliberately forged artifacts designed to implicate multiple unrelated groups, including a fabricated header resembling a known North Korean toolkit. It fooled experienced teams for weeks. It remains the standing argument for why technical attribution needs corroboration and humility.
Search terms — click to filter, or use to dig deeper
5. Naming Chaos
THE PROBLEM: every vendor names groups differently. The same activity may be APT29, Cozy Bear, Midnight Blizzard, Nobelium, UNC2452, and The Dukes, depending on who is writing. Names also don't map cleanly — vendors cluster on different evidence, so two "equivalent" names may cover overlapping but non-identical activity.
CONVENTIONS: CrowdStrike uses animal suffixes by nation (Bear=Russia, Panda=China, Kitten=Iran); Microsoft uses weather (Blizzard=Russia, Typhoon=China, Sandstorm=Iran); Mandiant uses APT/UNC/FIN numbers, where UNC means "uncategorised" — a cluster not yet promoted to a named group.
PRACTICAL ADVICE: track the behaviour, not the name. When writing, give the name you use plus common aliases once, then be consistent. Never assume two vendor reports about "the same group" describe the same intrusion set.
Search terms — click to filter, or use to dig deeper
6. Sharing: MISP, STIX/TAXII & ISACs
MISP: open-source threat intelligence platform for storing, correlating, and sharing indicators and events. Correlation across submissions is its real strength.
STIX / TAXII: STIX is the structured data format for describing threat information; TAXII is the transport protocol for exchanging it. Together they make machine-to-machine sharing possible.
TLP: the Traffic Light Protocol governs redistribution — CLEAR (public), GREEN (community), AMBER (organisation, need-to-know), AMBER+STRICT (organisation only), RED (named recipients only). Violating TLP is how organisations get removed from sharing groups; treat it as binding.
ISACs: sector-specific sharing communities (FS-ISAC for finance, H-ISAC for health, WaterISAC, and so on). Often the fastest route to relevant, contextual warning — the AA26-097A advisory in Phase 1 reached water utilities through exactly this channel.
Search terms — click to filter, or use to dig deeper
7. Writing Intelligence People Actually Use
BLUF: Bottom Line Up Front. State the assessment and the recommended action in the first paragraph. Analysts who bury the conclusion on page four are writing for themselves.
SEPARATE THE LAYERS: what was observed, what is assessed, and what is recommended, clearly delineated. A reader must be able to accept your observations while disagreeing with your assessment.
MAKE IT ACTIONABLE: every report should answer "so what do I do differently on Monday?" — a detection to deploy, a configuration to change, a system to prioritise for patching. Intelligence that ends in "stay vigilant" has failed.
STATE YOUR GAPS: explicitly note what you couldn't determine and what evidence would resolve it. This is what distinguishes analysis from marketing.
Search terms — click to filter, or use to dig deeper
Check yourself
When would you reach for the Diamond Model over the Kill Chain?
When you want to pivot rather than narrate. The Diamond Model's four vertices give you queryable relationships — find other victims via shared infrastructure, other infrastructure via shared capability. The Kill Chain is better for describing how an intrusion progressed.
Why is "we found Cyrillic strings, so it's Russian" a bad conclusion?
Language artifacts are among the easiest things to plant deliberately, and doing so is a documented false-flag technique — Olympic Destroyer being the canonical case. It's a weak signal requiring independent corroboration, expressed with calibrated confidence.
You receive TLP:AMBER intelligence. Can you post the IOCs publicly?
No. AMBER restricts sharing to your organisation on a need-to-know basis. Publishing would breach the protocol and typically results in losing access to the sharing community.
Mobile Forensics
~13 min readIntermediateReviewed 2026-08-20
Prerequisites: DFIR Core, and Legal & Ethics — phones carry more sensitive personal data than any other device class, and the legal thresholds for searching them are correspondingly higher in most jurisdictions.
Phones are the highest-value evidence source in most modern investigations and the hardest to acquire from. Modern iOS and Android are, from a forensic standpoint, hardened appliances with full-disk encryption, hardware-backed keys, and no supported way in.
1. Acquisition Tiers
MANUAL: scrolling through the device and photographing what's on screen. Sounds primitive; is sometimes all you have, and is legitimate if documented properly.
LOGICAL: what the device's own backup/sync APIs will hand over — an iTunes/Finder backup, or Android ADB backup. Fast and well-supported, but it only contains what the OS chooses to export. Missing: deleted records, most app sandboxes, and system logs.
FILESYSTEM: a fuller copy of the file tree, typically requiring an exploit, an agent, or a developer/jailbroken state. Includes app sandbox data and SQLite write-ahead logs — which is where deleted records survive.
PHYSICAL: a bit-for-bit image of flash storage. Largely historical on modern devices: even with the image, the data is encrypted with hardware-bound keys, so without those keys you have a very large file of noise.
The key insight
On modern phones, acquisition difficulty is a function of lock state, not storage. BFU (Before First Unlock) means most data remains encrypted with keys not yet in memory. AFU (After First Unlock) means many keys are resident and far more is extractable. A phone seized powered-on and unlocked-since-boot is a different evidentiary proposition from one seized cold — which is why "do not power it off" is standard seizure guidance.
Search terms — click to filter, or use to dig deeper
2. iOS Specifics
DATA PROTECTION: files are assigned protection classes determining when their keys are available — some only after first unlock, some whenever the device is booted. This granularity is why AFU extraction yields substantially more than BFU.
SECURE ENCLAVE: a separate coprocessor holding key material and enforcing passcode attempt limits with escalating delays. It is the reason brute force is impractical on current hardware.
CHECKM8: a BootROM vulnerability affecting A5–A11 devices (roughly iPhone 4S through X). Because it's in read-only boot code it cannot be patched by software update, making those devices permanently more accessible. It does not defeat encryption — it enables code execution to attack the passcode, which still takes time.
ARTIFACTS OF INTEREST:KnowledgeC.db and the biome/segb stores (device usage, app launches, connections), CallHistory.storedata, sms.db, Photos.sqlite, Health data (a surprisingly good movement timeline), and the Unified Logs.
Search terms — click to filter, or use to dig deeper
3. Android Specifics
FRAGMENTATION: the defining difficulty. Hundreds of vendors, chipsets, and Android versions, each with different bootloaders, recovery implementations, and exploit availability. There is no single Android procedure.
ENCRYPTION: File-Based Encryption (FBE) replaced Full-Disk Encryption from Android 7, with Credential Encrypted and Device Encrypted storage classes — the direct analogue of iOS protection classes and the same BFU/AFU consequence.
ROUTES IN: ADB with USB debugging (rarely enabled); vendor download/recovery modes such as EDL on Qualcomm, sometimes requiring signed programmer files; bootloader unlocking, which on most devices triggers a factory reset and therefore destroys the evidence you came for.
ARTIFACTS:/data/data/<package>/ app sandboxes, /data/system/, usagestats, logcat while live, and the Wi-Fi/Bluetooth connection history.
Search terms — click to filter, or use to dig deeper
4. SQLite Forensics — The Core Skill
WHY IT DOMINATES: almost every app on both platforms stores its data in SQLite. Messages, call logs, browser history, location caches, app state — SQLite. If you can only learn one mobile skill, learn this one.
WHERE DELETED DATA LIVES: deleting a row typically marks it free rather than overwriting it. Recoverable from: freelist pages, unallocated space within pages, the WAL (write-ahead log) holding recent transactions not yet checkpointed, and the journal file. A logical extraction that copies only the .db and omits -wal and -shm loses recent activity — a genuinely common and costly mistake.
# Always collect the companion files alongside the database
ls -l messages.db messages.db-wal messages.db-shm
# Inspect structure before querying
sqlite3 messages.db ".schema"
# Apple epoch (seconds since 2001-01-01) vs Unix epoch - a classic trap
sqlite3 sms.db "SELECT datetime(date/1000000000 + 978307200,'unixepoch'), text FROM message LIMIT 5;"
TIMESTAMP TRAPS: Unix seconds, Unix milliseconds, Apple Cocoa epoch (2001-01-01), Mac absolute time, Chrome/WebKit epoch (1601-01-01), and Android's mixture of all of the above. Misreading an epoch shifts a timeline by three decades. Always validate against a known event.
Search terms — click to filter, or use to dig deeper
5. Cloud as the Practical Route
THE PRAGMATIC TRUTH: when the device is locked and unexploitable, the data is often obtainable elsewhere. iCloud and Google account backups, with lawful process or documented consent, frequently contain messages, photos, location history, and device backups.
CAVEATS: coverage varies by what the user enabled; end-to-end encrypted categories (iCloud Advanced Data Protection, for instance) are not accessible to the provider; and retention windows are finite. Preserve early.
LEGAL WEIGHT: this is squarely a legal-process question, not a technical one. Cross-border cloud data raises jurisdictional issues that are well beyond what any technical guide can resolve — involve counsel.
Search terms — click to filter, or use to dig deeper
6. Commercial Tooling & Its Controversies
THE LANDSCAPE: Cellebrite, Magnet GRAYKEY, and MSAB dominate law enforcement mobile forensics, relying on undisclosed exploit chains and priced accordingly.
OPEN ALTERNATIVES: ALEAPP and iLEAPP (artifact parsers for Android and iOS), libimobiledevice, Andriller, and plain SQLite tooling. These parse what you already have rather than obtaining it — but parsing is most of the analysis.
THE ETHICAL DIMENSION: the same capability that solves serious crime has been sold to states that use it against journalists and dissidents, and commercial spyware (Pegasus and its successors) has repeatedly been found on the phones of civil-society targets. If you work in this area, you will eventually face a question about who your capability serves. Read the Legal & Ethics page before you need it.
Search terms — click to filter, or use to dig deeper
Check yourself
Why does BFU vs AFU matter more than storage size?
Because modern phones encrypt at rest with hardware-bound keys. Before First Unlock, most decryption keys aren't in memory and the data stays opaque. After First Unlock, many keys are resident and far more is extractable — which is why seizure guidance says don't power the device off.
You copied messages.db from an extraction. What did you likely miss?
The -wal and -shm companion files. Recent transactions live in the write-ahead log before checkpointing, along with much recoverable deleted content. Copying the .db alone silently loses the most recent activity.
Why is unlocking the bootloader usually the wrong move on Android?
On most devices it triggers a factory reset by design, destroying the user data you're trying to acquire.
Web & Application Security
~15 min readIntermediateReviewed 2026-08-20
Why it's here: the Cloud track references SSRF and IMDS credential theft without explaining either. Web is also the most common initial access vector in real intrusions, so a forensics guide that skips it has a hole in the front door.
This page covers the vulnerability classes you need to recognise in logs and code — how each one looks after the fact, and what it leaves behind. It is written for the defender and the incident responder, not as an exploitation walkthrough.
1. Injection — The Root Pattern
THE UNDERLYING BUG: data crosses into a context where it is interpreted as instructions. SQL injection, command injection, LDAP injection, XPath injection, and template injection are all the same mistake in different interpreters.
THE FIX (always the same shape): keep data and code in separate channels. Parameterised queries for SQL; argument arrays rather than shell strings for commands. Escaping is a fallback, not a strategy — every escaping scheme eventually meets an encoding it didn't anticipate.
FORENSIC SIGNATURE: in web logs, look for SQL keywords, quote characters, comment markers (--, /*), UNION SELECT, and time-delay functions (SLEEP, WAITFOR) in parameters. Blind injection shows as many near-identical requests with small variations and, for time-based variants, a distinctive response-time pattern.
WHAT AN ATTACKER DOES NEXT: enumerate schema, dump credentials, then attempt file write or command execution. If you find injection in logs, assume data access occurred and scope accordingly.
Search terms — click to filter, or use to dig deeper
2. SSRF — The Cloud Killer
CONCEPT: Server-Side Request Forgery: the application fetches a URL an attacker controls, so requests originate from inside the network with the server's identity and network position.
WHY IT'S CRITICAL IN CLOUD: the instance metadata service at 169.254.169.254 serves role credentials to anything that can reach it. Under IMDSv1 no authentication was required, so SSRF became direct credential theft — this is the mechanism behind several of the largest cloud breaches on record. IMDSv2's session-token requirement closes it, which is why the Cloud track tells you to check which version is enforced.
DEFENCES: enforce IMDSv2, allowlist outbound destinations rather than blocklisting, resolve and validate the destination IP after DNS resolution (to defeat DNS rebinding), and block link-local ranges at the egress layer.
FORENSIC SIGNATURE: outbound requests from application servers to internal RFC1918 or link-local addresses; parameters containing URLs, especially with file://, gopher://, or decimal/octal-encoded IPs.
Search terms — click to filter, or use to dig deeper
3. Broken Access Control
CONCEPT: consistently ranked the number one web risk. The application checks who you are but not whether you may touch this object.
VARIANTS: IDOR (change the ID in the request and get someone else's record), forced browsing to admin endpoints, method tampering, and mass assignment (send role=admin in a JSON body the model binds blindly).
WHY IT'S HARD TO CATCH: the requests are perfectly well-formed and authenticated. There's no payload, no anomaly at the WAF, nothing to signature. This is where the ReBAC/Zanzibar material in Phase 2 becomes relevant — the question shifts to whether the authorisation graph actually permits the path taken.
FORENSIC SIGNATURE: one session enumerating sequential object IDs; a user accessing an unusual volume or breadth of records. This is a UEBA problem, not a signature problem.
Search terms — click to filter, or use to dig deeper
4. Deserialisation & Prototype Pollution
CONCEPT: deserialising attacker-controlled data can instantiate arbitrary objects and, via "gadget chains" of existing library code, reach code execution — without the attacker supplying any code at all.
WHERE IT BITES: Java (ObjectInputStream, and the ysoserial gadget catalogue), .NET (BinaryFormatter, now deprecated for this reason), Python pickle (never unpickle untrusted data — it's documented as unsafe), PHP unserialize().
PROTOTYPE POLLUTION: the JavaScript analogue — injecting __proto__ properties modifies the prototype chain and thereby the behaviour of objects elsewhere in the program. Escalates to XSS or RCE depending on what consumes the polluted property.
FORENSIC SIGNATURE: base64 blobs beginning rO0 (Java) or AAEAAAD (.NET) in parameters, cookies, or headers.
Search terms — click to filter, or use to dig deeper
5. XSS, CSRF & the Browser Trust Model
XSS: attacker script executes in the victim's browser under the site's origin. Stored (persisted server-side), reflected (in the response to a crafted request), and DOM-based (entirely client-side, so it may never appear in server logs at all — worth remembering during investigation).
IMPACT: session token theft, request forgery as the user, and credential capture via injected forms. HttpOnly cookies mitigate theft but not action.
CSRF: the attacker's site causes the victim's browser to make an authenticated request to yours. Mitigated by anti-CSRF tokens and SameSite cookie attributes.
DEFENCE IN DEPTH: Content Security Policy, output encoding appropriate to context, HttpOnly + Secure + SameSite cookies, and Subresource Integrity for third-party scripts.
Search terms — click to filter, or use to dig deeper
6. Authentication & Session Failures
THE MODERN REALITY: attackers no longer need your password. Session token theft — via infostealer malware, XSS, or an adversary-in-the-middle phishing kit like Evilginx — bypasses MFA entirely, because a stolen valid session was already authenticated.
JWT PITFALLS:alg: none acceptance, algorithm confusion (RS256 verified as HS256 using the public key as the HMAC secret), missing expiry validation, and secrets that are guessable.
DEFENCES THAT ACTUALLY HELP: phishing-resistant MFA (FIDO2/WebAuthn, which binds to origin and cannot be relayed), token binding, short-lived tokens with refresh, and re-authentication for sensitive actions.
FORENSIC SIGNATURE: the same session token presenting from a new IP, ASN, or device fingerprint; impossible travel; a successful login with no preceding MFA challenge event.
Search terms — click to filter, or use to dig deeper
7. Supply Chain & Dependencies
THE SURFACE: a typical application is mostly other people's code. Typosquatted packages, dependency confusion (a public package shadowing an internal name), compromised maintainer accounts, and malicious post-install scripts are all live, recurring problems.
DEFENCES: lockfiles with integrity hashes, an internal registry proxy with explicit allowlisting, SBOM generation, and dependency scanning in CI. Pin versions; audit before upgrading.
CONNECTS TO: the AUR/Atomic Arch incident in Phase 1 and the data-poisoning material in Phase 3 — same attack shape, different artifact.
Search terms — click to filter, or use to dig deeper
8. Web Log Forensics
WHAT TO PULL: access logs (URI, status, bytes, referrer, user-agent), application logs, WAF logs, and reverse-proxy logs. Correlate on timestamp, source IP, and session identifier.
PATTERNS THAT MATTER: a burst of 404s (directory enumeration) followed by a 200 on something unusual; 500s clustered on one parameter (injection probing); a single large 200 response after many small ones (data extraction); requests to .php/.jsp in an upload directory (web shell); and unusual user-agents, though these are trivially spoofed.
WEB SHELLS: the most common post-exploitation persistence on web servers. Hunt for recently modified files in web roots, files whose timestamps differ from their siblings, high-entropy PHP/ASPX, and the classic dangerous functions (eval, system, passthru, base64_decode chains).
Practise legally
PortSwigger Web Security Academy (free, excellent, with working labs), OWASP Juice Shop, and DVWA are purpose-built targets. Never test these techniques against systems you don't own or have written authorisation for — see Legal & Ethics.
Search terms — click to filter, or use to dig deeper
Check yourself
Why is SSRF disproportionately dangerous in cloud environments?
Because the instance metadata service at 169.254.169.254 hands out role credentials to anything that can reach it. Under IMDSv1 that required no authentication, so SSRF became direct credential theft and full role compromise.
Why is broken access control so hard to detect at the WAF?
The requests are well-formed, authenticated, and contain no malicious payload — there's nothing to signature. Detection has to come from behaviour: one session enumerating sequential IDs, or a user touching an anomalous volume or breadth of records.
MFA is enabled and an attacker still has the account. How?
Most likely session token theft — via infostealer malware or an AiTM phishing proxy. A stolen valid session was already authenticated, so MFA is never re-evaluated. Phishing-resistant FIDO2/WebAuthn and token binding are the real mitigations.
Cryptography Fundamentals
~13 min readFoundationalReviewed 2026-08-20
Why it's here: Phase 1 opens on post-quantum migration and the Stego Lab distinguishes hiding from encrypting. Both assume this page. You do not need mathematics beyond arithmetic to read it.
You will not implement cryptography — nobody should. What you need is to recognise what a system is using, judge whether that's appropriate, and spot the failure modes, because in practice crypto almost never breaks mathematically. It breaks through implementation and key management.
1. The Three Properties
CONFIDENTIALITY: only the intended party can read it. Encryption provides this.
INTEGRITY: tampering is detectable. Hashes and MACs provide this.
AUTHENTICITY: it genuinely came from who it claims. Signatures and MACs provide this.
THE CLASSIC ERROR: assuming encryption gives you all three. It does not. Unauthenticated encryption is malleable — an attacker who cannot read your ciphertext may still be able to modify it predictably. This is why modern practice uses AEAD modes (AES-GCM, ChaCha20-Poly1305) that provide confidentiality and integrity together, and why CBC without a MAC is a persistent source of vulnerabilities.
Search terms — click to filter, or use to dig deeper
2. Symmetric Encryption
CONCEPT: one shared key encrypts and decrypts. Fast, and what actually protects bulk data everywhere.
THE STANDARD: AES (128/192/256-bit keys). ChaCha20 is the leading alternative, notably faster on hardware without AES acceleration.
MODES MATTER MORE THAN THE CIPHER:ECB encrypts each block independently, so identical plaintext blocks produce identical ciphertext — the famous "ECB penguin" remains visible through its own encryption. Never use it. CBC chains blocks and needs a random IV, and without a MAC is vulnerable to padding-oracle attacks. GCM is authenticated and the current default — but never reuse a nonce with the same key, which breaks it catastrophically rather than gracefully.
FORENSIC RELEVANCE: in a memory image, AES key schedules have recognisable structure. Tools such as aeskeyfind and Volatility plugins exploit this — another argument for capturing RAM before shutdown.
Search terms — click to filter, or use to dig deeper
3. Asymmetric Encryption & Signatures
CONCEPT: a keypair — public key shared freely, private key kept secret. Encrypt to the public key, decrypt with the private. Sign with the private, verify with the public.
RSA: security rests on the difficulty of factoring large integers. Simple to understand, easy to implement badly (padding is where it goes wrong — use OAEP, not PKCS#1 v1.5).
ELLIPTIC CURVE: equivalent security with far smaller keys (a 256-bit EC key roughly matches 3072-bit RSA). Ed25519 for signatures and X25519 for key exchange are the modern defaults.
THE PERFORMANCE REALITY: asymmetric crypto is slow, so it is almost never used on bulk data. TLS uses it to agree a symmetric key, then switches to AES. Understanding this hybrid structure explains most of what a TLS handshake is doing.
WHY QUANTUM BREAKS IT: Shor's algorithm solves both factoring and discrete logarithms efficiently — so RSA and ECC fall together. Symmetric crypto only faces Grover's algorithm, a quadratic speedup answered by doubling key length. This asymmetry is the entire reason PQC targets key exchange and signatures rather than AES.
Search terms — click to filter, or use to dig deeper
4. Hashing
PROPERTIES: deterministic, fixed output, fast, preimage-resistant (can't invert), and collision-resistant (can't find two inputs with the same output).
STATUS: MD5 and SHA-1 are broken for collision resistance — chosen-prefix collisions are practical. They remain acceptable as non-security file identifiers in forensics (and are still standard in tooling for that reason), but never for signatures or integrity against an adversary. Use SHA-256 or SHA-3.
PASSWORDS ARE DIFFERENT: fast hashing is exactly wrong for passwords. Use a deliberately slow, memory-hard KDF — Argon2id preferred, then scrypt, bcrypt, or PBKDF2 with a high iteration count — always with a unique random salt per password. Finding unsalted SHA-256 password hashes in a codebase is a finding.
FUZZY HASHING: ssdeep and TLSH produce similar outputs for similar inputs, which is what makes them useful for clustering malware variants where cryptographic hashes are useless by design.
Search terms — click to filter, or use to dig deeper
5. Key Management — Where It Actually Breaks
THE PATTERN: in almost every real incident, the mathematics held perfectly and the key handling did not.
THE RECURRING FAILURES: keys committed to source control (search any large organisation's history and you will find some); hardcoded keys in mobile apps and firmware, recoverable by anyone who reverses the binary; keys in environment variables readable by any process; no rotation, ever; the same key across every environment; and secrets in CI logs.
DOING IT PROPERLY: dedicated secret managers (Vault, AWS KMS, Azure Key Vault), hardware security modules for high-value keys, short-lived credentials over long-lived ones, and automated rotation. Pre-commit secret scanning catches the most common mistake before it becomes permanent.
RANDOMNESS: use the OS CSPRNG (/dev/urandom, getrandom(), CryptGenRandom). Never rand(), never a time-seeded PRNG. Weak randomness has broken real key generation at scale, including in embedded devices that generated keys before they had entropy available.
Search terms — click to filter, or use to dig deeper
6. TLS in Practice
THE HANDSHAKE, BRIEFLY: negotiate parameters, authenticate the server via its certificate chain, agree a shared secret (ephemeral Diffie-Hellman for forward secrecy), then switch to symmetric encryption. TLS 1.3 removed most legacy options and cut the round trips.
FORWARD SECRECY: ephemeral keys mean recording today's traffic doesn't allow decryption later even if the server's long-term key is stolen. This is why HNDL adversaries target the key exchange — and why PQC key establishment has an earlier deadline than PQC signatures in EO 14412.
CERTIFICATES: a chain from a leaf to a trusted root. Validation checks signature, validity dates, hostname match, and revocation. Certificate Transparency logs are publicly searchable — genuinely useful for defenders finding certificates issued for lookalike domains targeting them.
WHAT YOU CAN SEE WITHOUT DECRYPTING: SNI, certificate details, JA3/JA4 fingerprints, timing, and volume. The Detection Engineering page covers this; the point is that "it's encrypted" does not mean "it's invisible."
Search terms — click to filter, or use to dig deeper
7. Recognising Crypto in Binaries
CONSTANTS: most algorithms carry distinctive magic values — AES S-boxes, SHA-256's initial hash values (0x6a09e667…), MD5's sine-derived table, the CRC32 polynomial. Spotting one identifies the algorithm instantly.
TOOLING: FindCrypt and signsrch (as IDA/Ghidra plugins), or YARA rules built on the constants.
STRUCTURAL TELLS: tight loops with XOR and rotate operations; 16-, 32-, or 64-byte block handling; key-schedule expansion loops. Home-rolled "encryption" in malware is very often a repeating-key XOR — which is why VoidLink's single-byte XOR C2 obfuscation in Phase 1 is a realistic detail rather than an unusual one.
Exercise
Take any binary that does HTTPS, load it in Ghidra, and search for the byte sequence 67 e6 09 6a (SHA-256's first initialisation constant, little-endian). Then trace its cross-references. This is how algorithm identification actually works in practice.
Search terms — click to filter, or use to dig deeper
Check yourself
Why does a quantum computer break RSA and ECC but not AES-256?
Shor's algorithm efficiently solves factoring and discrete logarithms, which is exactly what RSA and ECC rest on. Symmetric ciphers only face Grover's quadratic speedup, which doubling the key length answers. That's why PQC standardisation targets key exchange and signatures.
You find SHA-256 password hashes with no salt. What's wrong?
Two things. No salt means identical passwords produce identical hashes and rainbow tables apply. And SHA-256 is fast by design — exactly wrong for passwords. Use Argon2id (or scrypt/bcrypt/PBKDF2) with a unique random salt.
Why must you never reuse a nonce with the same key in AES-GCM?
Nonce reuse in GCM allows recovery of the authentication key, breaking integrity entirely and permitting forged messages. It fails catastrophically rather than gracefully — the mode assumes uniqueness as a hard precondition.
Email & Document Forensics
~13 min readBeginner → IntermediateReviewed 2026-08-20
Prerequisites: a working lab. Malicious documents must be opened in isolation — see Lab Setup.
Phishing remains the most common initial access vector, and a malicious attachment is still the most common payload delivery. This is the highest-frequency analysis task in most SOCs, and it's the one most likely to land on a junior analyst's desk on day one.
Part 1 Email
1. Reading Headers
CONCEPT: headers record the message's path. Received: lines are added by each hop and read bottom-up — the earliest is at the bottom. Everything above the last trusted hop can be forged, so trust decreases as you read upward.
KEY FIELDS:Return-Path (envelope sender, used for bounces), From (display — freely forgeable), Reply-To (the classic BEC tell when it differs from From), Message-ID (often reveals the originating system), and X-Originating-IP where present.
THE BEC PATTERN: display name matches an executive, From is a lookalike domain or free webmail, Reply-To points somewhere the attacker controls. Check display name against actual address on every suspicious message — most clients show only the former.
Search terms — click to filter, or use to dig deeper
2. SPF, DKIM & DMARC
SPF: a DNS record listing which servers may send for a domain. Validates the envelope sender, not the visible From — which is precisely the gap attackers use.
DKIM: a cryptographic signature over selected headers and body, verifiable against a public key in DNS. Proves the message wasn't altered in transit and genuinely originated from a signing domain.
DMARC: ties the two together by requiring alignment — that the SPF or DKIM domain matches the visible From — and publishes a policy (none, quarantine, reject) plus a reporting address. DMARC is what actually closes the display-address spoofing gap.
READING THE RESULT:Authentication-Results carries the verdict. A message can pass SPF and still be malicious — the attacker's own domain has a valid SPF record. Pass means "this really came from that domain," not "this is safe." That distinction trips up beginners constantly.
Search terms — click to filter, or use to dig deeper
3. Phishing Analysis Workflow
ORDER OF WORK: preserve the original (.eml/.msg, never a forwarded copy — forwarding destroys headers); parse headers; check authentication results; extract URLs without visiting them; detonate attachments in the lab; then pivot on indicators.
URL HANDLING: defang when recording (hxxp://, [.]) so nobody clicks by accident. Expand shorteners with a service rather than a browser. Watch for homoglyph domains — connects directly to the Unicode confusables material in Phase 4.
AiTM PHISHING: modern kits (Evilginx and similar) proxy the real login page, so the victim authenticates genuinely and the attacker captures the session cookie. MFA is completed and bypassed simultaneously. The detection signal is a valid session appearing from new infrastructure — see the Web & AppSec page.
# Parse an .eml safely - structure and headers, no rendering
python3 -c "import email,sys;m=email.message_from_file(open(sys.argv[1]));[print(k,':',v) for k,v in m.items()]" msg.eml
# List attachments and their types without opening them
python3 -c "import email,sys;m=email.message_from_file(open(sys.argv[1]));[print(p.get_content_type(), p.get_filename()) for p in m.walk()]" msg.eml
Search terms — click to filter, or use to dig deeper
Part 2 Documents
4. Office Documents & Macros
STRUCTURE: modern formats (.docx, .xlsx) are ZIP archives of XML — unzip and read them. Legacy formats (.doc, .xls) use OLE2 compound file structure and need dedicated parsers. Macro-enabled variants (.docm, .xlsm) store VBA in a stream.
TOOLING:oleid for a quick risk summary, olevba to extract and deobfuscate VBA, oledump.py for stream-level inspection, msoffcrypto-tool for the password-protected documents attackers use to defeat gateway scanning (the password is helpfully supplied in the email body).
WHAT MACROS ACTUALLY DO: almost always download and execute a second stage. Look for AutoOpen/Document_Open, Shell, WScript, string concatenation obfuscation, and base64 blobs.
POST-2022 SHIFT: Microsoft began blocking macros in files marked with Mark-of-the-Web by default, and attackers largely moved to container formats — ISO, IMG, and archives — which historically did not propagate MOTW to their contents. Also watch for LNK files, OneNote embeds, and HTML smuggling. The technique moved; the objective didn't.
Search terms — click to filter, or use to dig deeper
5. PDF Analysis
STRUCTURE: objects, a cross-reference table, and a trailer. Content may be compressed in streams, which is where things hide.
SUSPICIOUS ELEMENTS:/OpenAction and /AA (automatic execution on open), /JavaScript and /JS, /Launch, /EmbeddedFile, and /URI. Most malicious PDFs today are simply phishing lures with a link — less exotic than the exploit-laden era, and considerably more effective.
TOOLING: Didier Stevens' pdfid.py (element counts) and pdf-parser.py (object inspection), plus peepdf. Note the pdf-reading guidance: don't just render it and look.
# Triage: which risky elements are present, and how many?
python3 pdfid.py suspicious.pdf
# Inspect a specific object, decompressing streams
python3 pdf-parser.py -o 12 -f suspicious.pdf
Search terms — click to filter, or use to dig deeper
6. Metadata & Provenance
WHAT DOCUMENTS CARRY: author, organisation, creation and modification times, editing duration, template path, and the software and version used. Office documents retain revision identifiers; PDFs record the producing application.
FORENSIC VALUE: metadata links documents to authors and machines, and clusters campaigns — the same template path or author string across otherwise unrelated samples is strong linkage evidence. It has resolved real cases, and it has burned real operators.
CAVEAT: it's also trivially editable, so treat it as investigative lead rather than proof. See the Anti-Forensics page on false flags.
TOOLING:exiftool handles nearly every format and should be the first thing you run.
Search terms — click to filter, or use to dig deeper
7. Reporting the Verdict
WHAT A GOOD PHISH REPORT CONTAINS: the verdict and confidence up front; sender and authentication results; defanged URLs and file hashes; observed behaviour on detonation; ATT&CK technique mapping; scope (who else received it, who clicked); and the containment actions taken.
SCOPE IS THE PART PEOPLE FORGET: one reported phish means a campaign. Search the mail gateway for the same sender, subject pattern, URL, and attachment hash across all mailboxes, then check proxy logs for who reached the destination. The analysis is the easy half.
Search terms — click to filter, or use to dig deeper
Check yourself
A phishing email passes SPF and DKIM. How?
Because it genuinely was sent from a domain the attacker controls, with correctly configured records. Authentication proves origin, not intent. DMARC alignment is what prevents spoofing of your domain — it says nothing about a lookalike domain the attacker owns outright.
Why forward the .eml as an attachment rather than forwarding the message?
Forwarding rewrites the headers, destroying the Received chain, authentication results, and original Message-ID — the entire evidentiary value. Always preserve the original .eml or .msg.
Why did attackers move to ISO and IMG attachments?
Microsoft's default blocking of macros in MOTW-marked files. Container formats historically didn't propagate Mark-of-the-Web to their contents, so a file extracted from a mounted ISO wasn't treated as internet-sourced.
Zero Trust & Authorization at Scale
~22 min readIntermediate → AdvancedReviewed 2026-08-31
Prerequisites: OS Internals for the token material, Cloud & Container for the identity-as-perimeter framing. Phase 2 and Phase 5 introduce these topics briefly; this page is the full treatment.
Two ideas dominate modern access control, and they are usually taught separately even though they answer the same question from opposite ends. Zero Trust asks "should this request be allowed right now?" — a runtime, contextual question. Relationship-based authorization asks "does this subject actually have a path to this object?" — a structural, graph question. A real system needs both, and most breaches live in the gap between them.
The single sentence that connects them
Zero Trust says never trust, always verify — but it is almost silent on what you verify against. The policy decision point has to consult something, and that something is your authorization model. A world-class ZTA sitting on top of a permission model nobody can reason about will confidently and continuously enforce the wrong answer.
Part 1 Zero Trust Architecture
1. Where It Came From, and What It Replaced
THE OLD MODEL: the castle-and-moat. A hardened perimeter, and implicit trust for anything inside it. Get through the firewall — via a phished user, a VPN credential, a compromised vendor — and you inherit the trust of everything on that network segment. Lateral movement was effectively free.
ORIGIN: John Kindervag coined "Zero Trust" at Forrester in 2010. Google independently reached the same conclusion after Operation Aurora and built BeyondCorp, publishing the design from 2014 — the first large-scale proof that an enterprise could run with no privileged internal network at all.
THE CORE INVERSION: trust stops being a property of network location and becomes a property of the request — who, on what device, in what context, to what resource, right now. Being on the corporate LAN grants you nothing.
THREE OPERATING PRINCIPLES: verify explicitly; grant least privilege; assume breach. That last one is the load-bearing one, and it is what makes ZTA a containment strategy rather than a prevention strategy. The design assumption is that something is already compromised.
Search terms — click to filter, or use to dig deeper
2. NIST SP 800-207: The Logical Components
THE STANDARD: NIST SP 800-207 (August 2020) is the reference architecture and the only definition worth arguing from — "zero trust" is otherwise so vendor-abused as to be meaningless.
POLICY ENGINE (PE): makes the decision. Consumes identity, device posture, threat intelligence, behavioural analytics, and the access policy, then returns grant/deny/revoke.
POLICY ADMINISTRATOR (PA): executes the decision — establishes or tears down the session, issues credentials or tokens to the enforcement point.
POLICY DECISION POINT (PDP): the PE and PA together.
POLICY ENFORCEMENT POINT (PEP): sits in the data path, in front of the resource. Enables, monitors, and terminates connections. This is the proxy, gateway, or agent that actually says no.
POLICY INFORMATION POINTS (PIPs): the feeds the PE reasons over — the identity provider, device management, SIEM, CDM systems, PKI, activity logs, and the compliance and threat-intelligence sources.
# The request path, conceptually
subject + device + context
│
▼
[ PEP ] ──── asks ────► [ PDP ] ◄──── reads ──── PIPs
in-path PE + PA (IdP, MDM, SIEM,
enforcement decide + execute threat intel)
│
▼
resource # session, not a one-time gate
THE PART PEOPLE MISS: 800-207 describes a session, not a doorway. Trust is meant to be re-evaluated continuously as context changes. Almost every failed ZTA deployment authenticates once at the front door and then behaves exactly like the perimeter model it replaced.
Search terms — click to filter, or use to dig deeper
3. The CISA Maturity Model — How Progress Is Measured
CURRENT VERSION:Verified CISA's Zero Trust Maturity Model v2.0, published April 2023, remains the current release as of 2026. It aligns to OMB M-22-09, which followed Executive Order 14028.
FIVE PILLARS: Identity, Devices, Networks, Applications & Workloads, Data.
THREE CROSS-CUTTING CAPABILITIES: Visibility & Analytics, Automation & Orchestration, Governance. These mature alongside all five pillars rather than being pillars themselves.
FOUR STAGES: Traditional (siloed, manual, static, implicit trust) → Initial (some automation, beginning cross-pillar integration) → Advanced (automated controls, policy driven by real-time signals) → Optimal (fully dynamic enforcement, continuous validation, minimal standing access). The "Initial" stage was added in v2.0 precisely because the jump from Traditional to Advanced was too large to be useful.
WHY THE MODEL MATTERS MORE THAN THE BUZZWORD: it lets you score each pillar independently and say something falsifiable. "We are Initial on Identity and Traditional on Data" is an engineering statement. "We have Zero Trust" is a marketing one. Most real environments score Traditional or Initial across the board, with Data consistently the weakest pillar.
Search terms — click to filter, or use to dig deeper
4. Where Zero Trust Actually Breaks
This is the part vendor material omits. Each of these is a real, observed failure mode.
AUTHENTICATE-ONCE DRIFT: the session is established after a rigorous check and then never re-evaluated. Token lifetime becomes the real security boundary. This is the single most common gap, and it is why session token theft (see Web & AppSec) defeats otherwise well-built deployments — the stolen artifact was already through the door.
THE PDP AS A CHOKEPOINT: a centralised decision point is a performance bottleneck, an availability risk, and a very high-value target. Compromise the policy engine and you don't bypass the controls — you become them. Fail-open configurations under load are a related and underappreciated risk: what does your PEP do when the PDP times out?
IDENTITY PROVIDER COMPROMISE: ZTA makes the IdP the root of trust, which concentrates risk enormously. Golden SAML — forging assertions with a stolen token-signing key — produces authentication events that look perfect because they are cryptographically valid. Nothing downstream can detect it. Federation trust is transitive, and few organisations map their full trust graph.
VALID-BUT-MALICIOUS: ZTA authorises the request, not the intent. A correctly authenticated user on a compliant device with a legitimate token, exfiltrating records one API call at a time, passes every check. This is precisely where Phase 2's UEBA material has to take over — behavioural analysis is the only remaining control.
NON-HUMAN IDENTITY: service accounts, CI runners, workload identities, and API keys now vastly outnumber human users, frequently hold standing privilege, rarely rotate, and are often exempted from conditional-access policy "because it breaks automation." This is the largest unaddressed gap in most deployments.
RESIDUAL IMPLICIT TRUST: east-west traffic inside a segment, legacy protocols that cannot be brokered, hypervisor and management planes, and the monitoring infrastructure itself. Segmentation projects reliably stall at the boundary of whatever is hardest to instrument.
The stale-permission problem
Here is the failure that connects Part 1 to Part 2. Every check can be perfect — strong MFA, verified device, fresh token, continuous evaluation — and still return yes for someone who should have lost access three months ago, because the underlying permission was never revoked. Zero Trust verifies the requester rigorously and then asks the permission model a question. If the model's answer is wrong, ZTA enforces the wrong answer with total confidence.
Search terms — click to filter, or use to dig deeper
5. ZTNA, SASE & What the Acronyms Actually Mean
ZTNA: Zero Trust Network Access — the practical replacement for the VPN. Instead of placing a device on the network, a broker authenticates the request and proxies it to one specific application. The resource is never network-reachable; there is nothing to port-scan. Compare a VPN, which grants a subnet.
SDP: Software-Defined Perimeter, the design pattern underneath most ZTNA products, including single-packet authorisation so services are dark to unauthenticated clients.
SASE / SSE: Secure Access Service Edge bundles ZTNA with SWG, CASB, and network functions delivered from the cloud edge. SSE is the security subset without the networking. Largely a packaging and procurement distinction rather than an architectural one — useful to know so you can read vendor material without being misled.
MICROSEGMENTATION: enforcing policy between workloads rather than at the network edge, so a compromised host cannot reach its neighbours. This is the control that most directly limits blast radius, and it is also the one organisations most often abandon halfway through.
Exercise
Score your own environment (or a lab) against CISA ZTMM v2.0. Pick one pillar — Identity is the usual starting point — and write one honest sentence per maturity function. The value is in discovering which pillar you cannot assess at all, because that is the one with no visibility.
Search terms — click to filter, or use to dig deeper
Part 2 Authorization: RBAC → ABAC → ReBAC
6. Why Roles Stopped Working
RBAC: permissions attach to roles, users get roles. Simple, auditable, and it fails at scale through role explosion — every new combination of scope and capability needs a new role, so organisations end up with more roles than users. It also cannot naturally express per-object permissions, which is what every modern application actually needs.
ABAC: decisions evaluated from attributes of subject, object, action, and environment. Far more expressive, but two questions become genuinely hard: "who can access this document?" requires evaluating the policy against every user, and "what can this user reach?" requires the reverse. Neither is a lookup. Auditing suffers accordingly.
REBAC: permissions derive from relationships in a graph. Not "Alice has the editor role" but "Alice is an editor of this document, and this document is in a folder Alice's team owns." It matches how people actually reason about sharing — and critically, both audit questions become graph traversals.
THE PRACTICAL POINT: these are not rivals. Production systems combine them — ReBAC for object relationships, ABAC-style conditions for context (time, IP, device posture), RBAC for coarse organisational roles.
Search terms — click to filter, or use to dig deeper
7. Google Zanzibar: The Design
WHAT IT IS:Verified Zanzibar is Google's global authorization system, described in a 2019 USENIX ATC paper (Pang et al.). It backs Drive, Calendar, Cloud, Maps, Photos, and YouTube — effectively one system answering "may this user do this?" for products with entirely different permission semantics.
THE RELATION TUPLE: the entire data model is one primitive. A tuple asserts that a user has a relation to an object:
# ⟨object⟩#⟨relation⟩@⟨user⟩
doc:readme#owner@user:alice # Alice owns readme
doc:readme#viewer@group:eng#member # every member of eng can view
folder:specs#parent@doc:readme # readme lives in the specs folder# The second form is a USERSET: object#relation used in the user position.
# This is what makes groups, nesting, and inheritance fall out of one primitive.
NAMESPACE CONFIGURATION: clients configure a namespace before writing tuples. It declares each relation by name (viewer, editor) with a relation config, plus storage parameters including sharding and object-ID encoding.
USERSET REWRITE RULES: where the expressiveness lives. Relations can be computed rather than stored — union, intersection, exclusion, and tuple_to_userset. That last one implements inheritance: "viewers of this document include viewers of its parent folder," expressed once in config rather than materialised as tuples per document. Editors implying viewers, owners implying editors, folder permissions cascading — all rewrite rules.
THE API:Check (may this user do this?), Read (return tuples), Expand (return the effective ACL tree — the audit primitive), Write, and Watch (stream tuple changes). Expand is the one forensics cares about: it answers "why was this permitted?" rather than merely "was it?"
Search terms — click to filter, or use to dig deeper
8. The New Enemy Problem & Zookies
THE PROBLEM: this is the genuinely interesting part of the paper, and the part most summaries get wrong. Authorization data is replicated globally and read from stale snapshots for latency. That creates two dangerous orderings:
CASE 1 — NEGLECTING ACL UPDATE ORDER: Alice removes Bob from a document's ACL, then adds sensitive content. A check evaluated against a stale snapshot still sees Bob as a viewer, and Bob reads the new content. Access was revoked before the content existed, and the system still granted it.
CASE 2 — MISAPPLYING OLD ACL TO NEW CONTENT: Alice removes sensitive content from a document, then opens the ACL to a wider audience. A check against a stale snapshot applies the new, permissive ACL to the old, sensitive content.
THE FIX — ZOOKIES:Verified a zookie is an opaque byte sequence encoding a globally meaningful timestamp reflecting an ACL write, a content version, or a read snapshot. The client stores it alongside content and presents it on subsequent checks. The semantics are at-least-as-fresh: Zanzibar may evaluate at any timestamp fresher than the zookie's, but never older. That preserves causal ordering between content and ACL updates while leaving the system free to serve most checks from already-replicated data at default staleness — and to quantise timestamps to avoid hot spots.
A widespread misconception
A number of blog posts describe zookies as carrying digital signatures or authentication tokens, or as defending against injected tuples. That is wrong. A zookie is a consistency mechanism, not an authenticity one — an opaque encoded timestamp, deliberately opaque so clients cannot pick arbitrary values. If you cite this in coursework, cite the USENIX paper rather than the secondary write-ups.
FOUNDATION: the whole scheme rests on Spanner and TrueTime, whose externally consistent, globally meaningful commit timestamps are what make "fresher than this token" a coherent statement across datacentres.
Search terms — click to filter, or use to dig deeper
9. Making It Fast: Leopard, Caching & Quantisation
THE ARCHITECTURE:aclservers are the main server type, organised in clusters, serving Check, Read, Expand, and Write. A request arriving at any server in a cluster may fan out to peers for sub-problems.
THE DEEP-NESTING PROBLEM: groups containing groups containing groups. Evaluating membership by walking the graph at request time is unbounded work — and deeply nested structures are exactly what large organisations produce.
LEOPARD: a specialised indexing system that denormalises group-to-group relationships into a transitive closure, so a membership check becomes a set intersection rather than a traversal. It uses skip lists, giving O(min(|A|,|B|)) seeks, is sharded by element ID, and shards are usually served entirely from memory. It stays current by continuously ingesting the Watch stream of tuple changes.
HOT SPOTS: a viral document can produce enormous request concentration. Zanzibar quantises evaluation timestamps into discrete buckets so many concurrent requests share a snapshot and therefore share cache entries, and distributes work across a cluster by forwarding key.
WHY THIS MATTERS TO YOU: you will almost certainly never operate at this scale. But the shape of the problem — correctness under replication, transitive closure over relationship graphs, cache-safe consistency tokens — recurs in every system that adopts the model, including the open-source ones you might actually deploy.
Search terms — click to filter, or use to dig deeper
10. The Open-Source Descendants
SPICEDB (AuthZed): the most faithful reimplementation, with an explicit schema language, ZedTokens as the zookie analogue, and configurable consistency levels per request — minimize_latency, at_least_as_fresh, at_exact_snapshot, fully_consistent. Choosing these correctly is the security decision.
OPENFGA: a CNCF project originating from Auth0/Okta FGA. Friendlier modelling DSL, large community, good language SDKs.
# OpenFGA-style model - inheritance without materialising tuples
model
schema 1.1
type user
type group
relations
define member: [user, group#member]
type folder
relations
define owner: [user]
define viewer: [user, group#member] or owner
type document
relations
define parent: [folder]
define owner: [user]
define editor: [user, group#member] or owner
define viewer: [user, group#member] or editor or viewer from parent
# "viewer from parent" is tuple_to_userset: folder permissions cascade.
# One line replaces a tuple per document per inherited user.
THE MODELLING DISCIPLINE: define the relations people actually talk about ("owner", "member of the team that owns the folder"), then derive permissions from them. Modelling permissions directly recreates role explosion inside a system designed to eliminate it.
Search terms — click to filter, or use to dig deeper
Part 3 Auditing & Forensics
11. Investigating a Relationship-Based System
THE QUESTION CHANGES: classic access auditing asks "who holds this role?" In a ReBAC system the right question is "what access paths does the graph actually permit, and why?" A user may hold no direct tuple to an object and still have access through four hops of group nesting and folder inheritance.
THE THREE INVESTIGATIVE PRIMITIVES:
Expand — given an object, return the effective ACL tree. This is your "why was this allowed" answer, and it is the single most valuable API for an investigator.
Reverse lookup (ListObjects) — given a subject, enumerate everything reachable. This is the blast-radius calculation after a credential compromise, and it is the question RBAC systems answer badly.
Watch / changelog — the tuple write history. Who granted what, when, and under whose authority. Treat it as an audit log and ship it off-host, per Anti-Forensics.
WHAT TO HUNT FOR:stale tuples (relationships surviving role changes and departures — the leading cause of over-permission); privilege paths (unintended routes created by combining individually reasonable grants); self-grant patterns (a subject writing a tuple that increases its own access — always a finding); orphaned objects whose owner no longer exists; and wildcard or public tuples granting access to everyone.
The write-authorisation trap
An authorization system is only as strong as the control over who may write tuples. If application code can create arbitrary relationships without its own check, an IDOR in a sharing endpoint becomes total authorization bypass — the attacker simply grants themselves the relation. Audit the write path as carefully as the read path; it is routinely overlooked because the permission system "handles authorization."
Search terms — click to filter, or use to dig deeper
12. Failure Modes Worth Detecting
CONSISTENCY MISCONFIGURATION: a team sets every check to the fastest, most stale setting for latency, reintroducing the new enemy problem wholesale. Revocations then take effect eventually rather than immediately — which is precisely the window an offboarded insider needs. Check the configured consistency level; it is a security control masquerading as a performance tunable.
FAIL-OPEN: what does the application do when the authorization service is unreachable? Under load or partial outage, some implementations default to allow. Test this deliberately.
MODEL DRIFT: schemas accrete relations over years. Nobody removes any, because nobody can prove a relation is unused. Periodically diff granted-vs-exercised permissions and prune.
CACHE POISONING AND TTLs: application-level caching of authorization decisions is where correct systems are made incorrect. A five-minute decision cache is a five-minute revocation delay, however good the underlying system is.
DETECTION SIGNALS: a spike in tuple writes by one principal; grants outside change windows; permission changes immediately preceding bulk reads (the classic exfiltration prelude); and any subject appearing in a reverse lookup with a reachable-object count far outside its peer group — which is Phase 2's UEBA applied to the authorization graph rather than to logins.
Search terms — click to filter, or use to dig deeper
13. Bringing the Two Together
THE COMPLETE PICTURE: ZTA supplies the runtime context — is this identity verified, is the device compliant, is the behaviour normal, is the session still trustworthy. ReBAC supplies the structural answer — does a permission path exist at all. The PDP needs both, and evaluating either alone produces a characteristic failure.
CONTEXT WITHOUT STRUCTURE: rigorous continuous verification of a user who should never have had access. Perfect enforcement of a wrong answer.
STRUCTURE WITHOUT CONTEXT: a correct permission graph consulted once at login, with a stolen token used for the following eight hours.
WHAT GOOD LOOKS LIKE: permissions modelled as relationships and continuously auditable; decisions evaluated per-request with fresh context; consistency configured deliberately rather than for benchmark numbers; the tuple write path authorised as strictly as the read path; and the full decision trail logged off-host so an investigator can reconstruct not just what was allowed, but why.
Search terms — click to filter, or use to dig deeper
Check yourself
Zero Trust is fully deployed and a user still exfiltrates records. What failed?
Probably nothing in the ZTA itself. Zero Trust authorises the request, not the intent — an authenticated user on a compliant device with a valid token passes every check. The gaps are behavioural detection (UEBA) and the underlying permission model, which may be granting access that should have been revoked.
Explain the new enemy problem in one sentence, and what solves it.
Stale authorization snapshots can apply an old ACL to new content, or miss a revocation that preceded a content update, so access is granted that causal ordering should have prevented. Zookies solve it: opaque encoded timestamps with at-least-as-fresh semantics that preserve causal ordering while still permitting stale reads.
Why is a userset (object#relation) the key idea in Zanzibar's data model?
Because putting a userset in the user position means groups, nested groups, and inherited permissions all fall out of a single primitive rather than needing separate mechanisms. Combined with userset rewrite rules like tuple_to_userset, it expresses inheritance without materialising a tuple per object.
You're investigating over-permission in a ReBAC system. Which API do you reach for first, and why?
Expand — it returns the effective ACL tree for an object, answering why access was permitted rather than just whether it was. Then reverse lookup (ListObjects) on the compromised subject to compute blast radius.
A team sets all authorization checks to minimum-staleness for latency. What have they done?
Turned a security control into a performance tunable and reintroduced the new enemy problem. Revocations now take effect eventually rather than immediately — exactly the window a departing insider or compromised account needs.
arXiv — Towards Next-Generation Steganalysis (LLM-based detection): Read Paper
arXiv — Early Signs of Steganographic Capabilities in Frontier LLMs: Read Paper
arXiv — Detection and Characterization of Coordinated Online Behavior (Survey): Read Paper
Courses, Certifications & Reading List
~8 min readReferenceReviewed 2026-08-20
The Reverse Engineering track teaches you the skills; this page maps them onto real courses, books, and certifications so you can plan an actual program of study instead of wandering between random tutorials.
Start Here: Free & Self-Study
Everything in this section costs nothing and is enough, on its own, to carry you through all four tiers of the Reverse Engineering track. None of it is a trial or a lead-capture funnel.
OpenSecurityTraining2 (OST2)
Community / Xeno Kovah et al.
University-style video courses spanning x86/x64 assembly, introductory RE, and on through rootkits and firmware. The closest thing to a complete free RE degree curriculum that exists online.
FreeTier 0 → 3
pwn.college
Arizona State University
Auto-graded "dojo" modules covering program analysis, reverse engineering, and binary exploitation — built by the ASU group behind the angr framework. Immediate feedback, no instructor needed.
FreeTier 0 → 3
Ghidra Official Course Material
NSA / Ghidra Project
The class exercises and slide decks published alongside the tool itself. The fastest route to Ghidra fluency, written by the people who built the decompiler.
FreeTier 1 → 2
RE101 & RE102 Workshops
Malware Unicorn (Amanda Rousseau)
Self-paced malware RE workshops with supplied samples and a documented lab setup. Widely used as the free stand-in for a paid introductory malware analysis course.
FreeTier 1 → 2
Modern Binary Exploitation
RPISEC (Rensselaer Polytechnic)
A real university course released in full on GitHub — lectures, labs, and challenge binaries covering RE fundamentals through exploitation. Dated in places, still excellent on fundamentals.
FreeTier 1 → 3
Azeria Labs ARM Assembly
Maria Markstedter
The standard free reference for ARM assembly and exploitation — essential once you move past x86 into mobile, IoT, and firmware targets in Tier 3.
FreeTier 3
LiveOverflow — Binary Hacking
YouTube series
A long-running video series that shows the thought process, not just the answer — particularly good for building intuition about how an experienced reverser approaches an unknown binary.
FreeTier 0 → 2
MalwareTech Beginner Challenges
Marcus Hutchins
Small, purpose-built RE challenges with a gentle difficulty curve, aimed squarely at people making the jump from tutorials to solving things unaided.
FreeTier 1
Instructor-Led & Certification Track
Read this before the list below. These are the courses and certifications the industry benchmarks against, and hiring managers recognize the acronyms — which is the only reason they are documented here. They are also priced for corporate training budgets, frequently running into several thousand dollars per course. None of them is a prerequisite for competence. Plenty of working reverse engineers have never taken one. Treat this section as a map of what exists and what employers may fund later, not as a shopping list for a student.
FOR610 — Reverse-Engineering Malware
SANS Institute
"Malware Analysis Tools and Techniques." The most widely recognized instructor-led on-ramp into professional malware RE. Its syllabus is a useful free reference even if you never take it — the topic ordering is a sanity check on your own study plan.
Employer-fundedTier 1 → 2
FOR710 — Advanced Code Analysis
SANS Institute
The follow-on: sophisticated 32/64-bit Windows malware, obfuscation algorithms, and automation to analyze samples at scale rather than one at a time.
Employer-fundedTier 3
GREM
GIAC
The proctored, lab-based ("CyberLive") certification exam paired with FOR610. Notably, it can be attempted without buying the course — a route worth knowing if you have built the skills independently.
Paid examTier 2
EXP-301 / OSED
OffSec
"Windows User Mode Exploit Development." Assumes strong RE fluency going in and pushes toward vulnerability research — the natural direction if Tiers 0–3 start feeling easy.
Employer-fundedTier 3+
Core Reading List
Practical Malware Analysis — Michael Sikorski & Andrew Honig. The de facto starting textbook, and the single highest-value purchase on this page. Its labs are self-contained, so it works as a full course on its own.
The IDA Pro Book — Chris Eagle. Still the deepest single reference on the tool itself, from FLIRT signatures to scripting.
The Ghidra Book — Chris Eagle & Kara Nance. The Ghidra equivalent, covering the decompiler internals and scripting API.
Practical Reverse Engineering — Bruce Dang, Alexandre Gazet & Elias Bachaalany. Covers x86/x64, ARM, and Windows kernel RE in one volume.
Reversing: Secrets of Reverse Engineering — Eldad Eilam. Older, but still the clearest explanation of why decompilation loses information in the first place.
The Art of Software Security Assessment — Dowd, McDonald & Schuh. For once RE skills start feeding into vulnerability research.
Steganography & Media Forensics Reading
Steganography in Digital Media — Jessica Fridrich. The standard academic text; Fridrich's group produced much of the rich-model steganalysis this field runs on.
Digital Video Concepts, Methods, and Metrics — Shahriar Akramullah. Codec internals background you need before HEVC-level steganalysis makes sense.
The H.264/AVC and H.265/HEVC specifications themselves — free from ITU-T, and the ground truth for what a "normal" encoder decision looks like.
Search the IH&MMSec (ACM Information Hiding and Multimedia Security) proceedings for current work — it is the main venue for this research.
Where This Fits in an MS Cybersecurity Program
Most MS Cybersecurity and Digital Forensics programs run a dedicated elective — often titled something like "Malware Analysis," "Software Reverse Engineering," or "Advanced Digital Forensics" — built around exactly this stack: IDA/Ghidra, x86/x64 assembly, and unpacking. If your program's syllabus is thinner than Tiers 0–3 of the Reverse Engineering track, the free platforms above (OST2, pwn.college, crackmes.one) are the fastest way to close the gap before an internship, a CTF season, or the GREM exam.