Part 5: Appendices¶
Back to Handbook contents | Series index
This part collects the reference material the rest of the handbook assumes you already have to hand. Appendix A fixes the vocabulary so a term like drainer-as-a-service means the same thing in Chapter 5 as it does in Chapter 14. Appendix B condenses the six layer chapters of Part II into one scannable table. Appendices C and D turn the two external references this handbook is built on, the OWASP Web3 Attack Vectors Top 15 and the Smart Contract Weakness Enumeration (SCWE), into quick lookups, and Appendix E points to the full bibliography.
16. Appendix A: Glossary¶
Entries group by the part of the stack where the term does the most work, not strict alphabetical order: a reader triaging a wallet-drain report and a reader mapping a contract finding to SCWE reach for different clusters of vocabulary. Within each group, entries run alphabetically, acronyms expand on first appearance, and each entry names the chapter with the fuller treatment.
16.1 Frameworks, Standards, and Modeling Terms¶
These terms describe the reference frameworks this handbook maps every technique onto, introduced in Chapter 1.
- MITRE AADAPT (Adversarial Actions in Digital Asset Payment Technologies): a MITRE knowledge base, launched in 2025 and built to complement ATT&CK, cataloging adversary tactics specific to digital asset and payment systems. See the MITRE fact sheet, the public repository, and Chapter 1.3.
- MITRE ATT&CK: a globally accessible knowledge base of adversary tactics and techniques drawn from real-world observations, structured as tactics, techniques, and sub-techniques across Enterprise, Mobile, and ICS domains. See attack.mitre.org and Chapter 1.2.
- SC Top 10 (Smart Contract Top 10): OWASP's ranked list of the ten most critical on-chain vulnerability classes, currently the 2026 edition (SC01 through SC10). See scs.owasp.org/sctop10 and Chapter 1.4.
- SCSVS and SCSTG: the Smart Contract Security Verification Standard and its companion Testing Guide; this handbook extends their coverage to wallet, front-end, and infrastructure layers neither reaches. See scs.owasp.org and Chapter 1.4.
- SCWE (Smart Contract Weakness Enumeration): OWASP's catalog of on-chain weakness classes, past 150 entries across eleven SCSVS domains, mapped in Appendix D. See scs.owasp.org/SCWE and Chapter 1.4.
- STRIDE: a threat-modeling mnemonic (spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege) introduced by Loren Kohnfelder and Praerit Garg at Microsoft in 1999. See Microsoft's documentation and Chapter 3.2.
- TTP (tactic, technique, and procedure): the tiered ATT&CK vocabulary this handbook borrows: tactic is the adversary's objective, technique the general method, procedure the specific observed case. See Chapter 1.2.
- Web3 Attack Vectors Top 15: OWASP's awareness list of the fifteen most significant non-smart-contract Web3 risks (WA01 through WA15), an alternate companion to the SC Top 10. See scs.owasp.org/sctop10/Web3-Attack-Vectors-Top15 and Appendix C.
16.2 User, Wallet, and Social Engineering Terms¶
These terms describe the path from a human decision to a signed, irreversible transaction, the surface covered in Chapters 4 and 5.
- Approval phishing: tricking a user into granting a token
approveorsetApprovalForAllallowance to an attacker address, letting the attacker sweep the balance later without a further signature. Central to WA06. - Blind signing: approving a transaction on a wallet that cannot decode and display its actual effect, forcing trust in the requesting front end's claim of what it does. See the UX Security Handbook (09).
- Drainer-as-a-service (DaaS): a commercial criminal toolkit that automates sweeping a victim's approved balances after one malicious signature. Underlies WA04.
- EIP-712: an Ethereum Improvement Proposal standardizing hashed, typed structured data signing, so a wallet can render a request in human-readable fields instead of opaque hex. See the EIP-712 specification.
- Multisig (multi-signature wallet): a wallet requiring several independent keys to sign before execution; Safe{Wallet} (formerly Gnosis Safe) is the most widely deployed implementation. See Chapter 5.1.
- Pig butchering: a long-con romance or social fraud that builds a fabricated relationship before steering the victim into a fraudulent crypto-investment platform, a pattern the FBI and Treasury's FinCEN both track and which frequently traces to forced-labor scam compounds in Southeast Asia. See background and Chapter 4.1.3.
- Wrench attack: a physical-coercion attack against a crypto holder, named for the xkcd "security" comic observing that a five-dollar wrench defeats cryptography. Tracked incidents rose sharply through 2024 and 2025, including the January 2025 kidnapping of a Ledger co-founder. See the physical-attack tracker and Chapter 4.1.4.
16.3 dApp, Infrastructure, and Supply Chain Terms¶
These terms describe the delivery and networking layers a Web3 application depends on, covered in Chapters 6, 8, and 9.
- Dependency confusion and typosquatting: package-manager and domain attacks that trick a build or a user into resolving to an attacker-published or attacker-registered lookalike. Covered in depth in the CDN and Front-End Supply Chain Security Handbook (01); see Chapter 6.1.1.
- DNS hijacking: taking control of a domain's resolution, through registrar takeover, cache poisoning, or route hijacking, silently redirecting users to attacker infrastructure. Central to WA13. See the DNS and Hosting Security Handbook (02).
- RPC (remote procedure call) node: the server a wallet or dApp queries to read chain state and broadcast transactions; a spoofed endpoint can return falsified balances or simulation results. See Chapter 8.1.
- Rug pull and token impersonation: a token deployer draining value through an undisclosed privileged function, or a contract cloning a legitimate project's name and metadata to deceive holders and aggregators. Central to WA10. See Chapter 6.1.3.
- Sequencer: the component of a rollup or Layer 2 network that orders and batches transactions before settlement to the base chain; its compromise or centralization is a distinct node-layer risk. See Chapter 8.2.
16.4 Contract-Layer and Threat-Actor Terms¶
These terms describe the on-chain logic risks Chapter 7 maps onto SCWE and SC Top 10, and the organized adversaries behind Chapters 9 and 15.
- Flash loan: an uncollateralized loan borrowed and repaid within a single transaction, used to fund temporary price or governance-weight manipulation. Maps to SC04:2026.
- Insider threat: harm from a person with legitimate, authorized access, through deliberate collusive abuse or access that outlived its purpose. Central to WA12. See the Employee Lifecycle Security Handbook (03).
- Lazarus Group: a North Korean state-sponsored actor publicly attributed by the FBI to the February 2025 Bybit theft (roughly $1.4 to $1.5 billion in ether, the largest crypto theft on record). See background and Chapter 9.1.
- Oracle manipulation and reentrancy: skewing a thin-liquidity price feed within one transaction, or calling out to an external address before a state update finishes so the callee re-enters against stale state. Map to SC03:2026 and SC08:2026 respectively. See Chapter 7.2.
- TraderTraitor: the activity-cluster name US authorities use for DPRK-linked operations combining trojanized crypto applications with fake-recruiter social engineering, tracked jointly by CISA, the FBI, and Treasury. See the CISA advisory and Chapter 9.1.4.
- DPRK IT worker fraud: North Korean operatives obtaining remote developer roles under fabricated identities, often at crypto firms, to generate sanctioned revenue and, in a subset of cases, plant backdoors. Underlies WA15. See Chapter 9.1.4.
17. Appendix B: TTP Quick Reference Table¶
Part II builds one technique catalog per layer, each closing with a "Technique Catalog and TTP IDs" section (Chapters 4.4, 5.5, 6.5, 7.4, 8.3, and 9.5). This appendix pulls every entry into a single table so a reader threat-modeling a system, or triaging a live alert, does not have to page through six chapters to find the row that matches what they are looking at. TTP IDs follow a fixed pattern: a three-letter layer prefix (USR, WAL, APP, CON, NOD, INF) and a sequential two-digit number, matching the layer each entry's parent chapter covers. The Tactic column uses ATT&CK-style objective names (Chapter 1.2) so the table composes cleanly with any ATT&CK or AADAPT navigator you already run.
flowchart TD
Start[You are threat-modeling a system or triaging an alert] --> Q1{Which layer produced the signal?}
Q1 -->|A person, message, or call| L1[USR rows: User and Social]
Q1 -->|A wallet or signing prompt| L2[WAL rows: Wallet and Key Management]
Q1 -->|A web page or client app| L3[APP rows: dApp and Front-End]
Q1 -->|A deployed contract| L4[CON rows: Smart Contract and Protocol]
Q1 -->|An RPC response or block| L5[NOD rows: Node and RPC]
Q1 -->|Exchange, cloud, or personnel| L6[INF rows: Infrastructure]
L1 --> Match[Match Technique column to observed behavior]
L2 --> Match
L3 --> Match
L4 --> Match
L5 --> Match
L6 --> Match
Match --> Use[Apply Detection signal and Mitigation from the matched row]
Figure 1. Layer-first lookup path through the TTP quick reference table. Most real incidents touch two or more layers; start from where the signal first surfaced, then read the Chapter cross-reference for the full write-up.
| TTP ID | Layer | Tactic | Technique (summary) | WA / SC Ref | Detection Signal | Primary Mitigation | Chapter |
|---|---|---|---|---|---|---|---|
| USR-01 | User and Social | Initial Access | Fake recruiter runs a video-call or "test task" that drops a loader disguised as meeting or build software | WA05 | Unsigned installer downloaded right after a call; outbound to non-corporate infra | Sandboxed interviews; verify recruiters via a second channel | 4.1.1 |
| USR-02 | User and Social | Initial Access | Lookalike-domain or compromised support-channel phishing harvests credentials or seed phrases | WA08 | Domain-similarity monitoring; help-desk impersonation reports | Phishing-resistant MFA (FIDO2/WebAuthn); never request a seed phrase | 4.1.2 |
| USR-03 | User and Social | Initial Access, Impact | Long-con relationship building steers a victim into a fraudulent investment platform (pig butchering) | WA09 | Deposit-velocity anomalies from dating/social-app-referred accounts | User education; exchange-side deposit and off-ramp coordination | 4.1.3 |
| USR-04 | User and Social | Impact | Physical targeting and coercion of a known or presumed holder (wrench attack) | WA11 | OSINT exposure monitoring; physical-security incident reports | Operational security discipline; duress wallets; time-locked withdrawals | 4.1.4 |
| WAL-01 | Wallet and Key Mgmt | Execution, Impact | Malicious calldata substituted into a multisig UI so signers approve a different transaction than they see | WA01 | Calldata decoding mismatches across independent signer devices | Hardware-wallet clear-signing; out-of-band hash confirmation | 5.1.1 |
| WAL-02 | Wallet and Key Mgmt | Credential Access | Keyloggers, clipboard hijackers, or weak entropy expose a raw private key | WA03 | Endpoint anomaly detection; clipboard-malware signatures | Hardware wallets; key sharding or MPC custody; entropy audits | 5.1.2 |
| WAL-03 | Wallet and Key Mgmt | Impact | A drainer-as-a-service kit auto-sweeps every approved balance after one malicious signature | WA04 | Simulation flags a mass approve or setApprovalForAll call |
Wallet-side simulation; routine approval revocation | 5.1.3 |
| WAL-04 | Wallet and Key Mgmt | Persistence | A malicious or compromised browser extension intercepts the signing flow | WA14 | Extension permission audits; unexpected out-of-store updates | Extension allowlisting; hardware-wallet independent display | 5.1.5 |
| APP-01 | dApp and Front-End | Initial Access | A typosquatted or maintainer-compromised OSS package injects wallet-draining code into the dependency tree | WA02 | SBOM diffing on install; OSV/npm audit findings | Lockfile pinning; SRI; signed build provenance (Handbook 01) | 6.1.1 |
| APP-02 | dApp and Front-End | Defense Evasion | A cloned or compromised front end swaps the recipient, spender, or amount mid-transaction (WA06's front-end face) | WA06 | CSP violation reports; DOM-integrity monitoring | Subresource Integrity; strict-dynamic CSP; wallet-side simulation | 6.1.2 |
| APP-03 | dApp and Front-End | Impact | A token contract with a hidden mint, pause, or blacklist function drains value post-launch | WA10 | Bytecode diffing against verified source; honeypot scanners | Contract-verification requirements; liquidity-lock proof | 6.1.3 |
| APP-04 | dApp and Front-End | Initial Access | Registrar takeover or route hijack redirects a dApp's domain to attacker infrastructure | WA13 | DNSSEC validation failures; certificate-transparency alerts | Registry lock; DNSSEC; CAA records (Handbook 02) | 6.1.4 |
| CON-01 | Smart Contract | Execution | An external call fires before the caller's own state update completes (reentrancy) | SC08:2026 | Static-analyzer findings; invariant-fuzzing violations | Checks-effects-interactions ordering; reentrancy guards | 7.2 |
| CON-02 | Smart Contract | Impact | A flash-loan-funded trade moves a thin-liquidity price feeding an unprotected oracle | SC03/04:2026 | TWAP deviation alerts; oracle staleness checks | Time-weighted or multi-source oracles; circuit breakers | 7.2, 7.3 |
| CON-03 | Smart Contract | Privilege Escalation | A missing or misconfigured access modifier leaves a privileged function callable by anyone | SC01:2026 | Access-control matrix review; role-coverage tests | Explicit RBAC; least privilege; timelocked admin actions | 7.2 |
| NOD-01 | Node and RPC | Collection, Impact | A spoofed RPC endpoint returns falsified balance or simulation data | infra | Multi-provider response cross-checking | Independent RPC providers; light-client verification | 8.1 |
| NOD-02 | Node and RPC | Impact | A compromised validator or sequencer key enables censorship or double-signing | infra | Slashing-condition monitoring; consensus-divergence alerts | HSM-backed keys; redundant client software | 8.2 |
| INF-01 | Infrastructure | Initial Access | Compromise of an exchange's back-office or cloud infrastructure enables unauthorized withdrawal | WA07 | Privileged-access anomaly detection; withdrawal-pattern alerts | Cold-storage segregation; multi-party withdrawal approval | 9.1.1 |
| INF-02 | Infrastructure | Collection, Exfiltration | A privileged insider abuses legitimate access to exfiltrate keys or approve fraud | WA12 | User/entity behavior analytics; dual-control audit gaps | Least privilege; separation of duties; strict offboarding (Handbook 03) | 9.1.2 |
| INF-03 | Infrastructure | Initial Access, Persistence | A state-linked operative obtains a developer role under a false identity, or backdoors a dependency | WA15 | Identity-verification gaps; anomalous contributor/payroll patterns | Enhanced identity checks (Handbook 05); sanctions screening | 9.1.4 |
Row APP-04 and the DNS-hijacking angle of infrastructure overlap deliberately: WA13 spans both the domain a dApp resolves to (dApp layer) and the registrar or routing infrastructure behind it (infrastructure layer). Treat a WA13 finding as two rows to check, not one.
18. Appendix C: OWASP Web3 Attack Vectors Top 15 (WA01–WA15) Summary Table¶
18.1 Full Vector List and Primary Targets¶
Use this table as the fast lookup for "which chapter covers WA-whatever." Every row names the primary layer this handbook assigns the vector to (a vector can touch more than one layer; the primary assignment is where its technique catalog lives) and points to the chapter section that carries the full treatment.
| WA ID | Name | Primary Layer | Handbook Chapter | Representative Incident |
|---|---|---|---|---|
| WA01 | Multisig Hijacking | Wallet and Key Management | 5.1.1 | Bybit, Feb 2025 (~$1.4-1.5B, Safe{Wallet} signer UI compromise) |
| WA02 | Supply Chain Attacks (npm, PyPI, OSS) | dApp and Front-End | 6.1.1 | Ledger Connect Kit, Dec 2023 |
| WA03 | Private Key Compromise | Wallet and Key Management | 5.1.2 | Malware and clipboard-hijacker campaigns |
| WA04 | Drainer Malware and Drainer-as-a-Service (DaaS) | Wallet and Key Management | 5.1.3 | Commercial drainer kits sold on underground forums |
| WA05 | Fake Interview and Video Call Social Engineering | User and Social | 4.1.1 | DPRK-linked developer targeting |
| WA06 | UI/UX Spoofing and Approval Phishing | Wallet / dApp | 5.1.4, 6.1.2 | Cloned front ends harvesting unlimited approvals |
| WA07 | Centralised Exchange and Web2/2.5 Infrastructure Breaches | Infrastructure | 9.1.1 | Exchange back-office compromises |
| WA08 | Phishing and General Social Engineering | User and Social | 4.1.2 | Ongoing, cross-platform |
| WA09 | Romance, Investment, Impersonation, Recovery, and Pig Butchering Scams | User and Social | 4.1.3 | Southeast Asia scam-compound operations |
| WA10 | Rug Pulls, Fake Airdrops, and Token Impersonation | dApp and Front-End | 6.1.3 | Recurring token-launch fraud |
| WA11 | Wrench Attacks and Physical Coercion | User and Social | 4.1.4 | Ledger co-founder kidnapping, Jan 2025 |
| WA12 | Insider Threats and Collusive Abuse | Infrastructure | 9.1.2 | Employee-enabled fund diversion |
| WA13 | DNS, Domain, and Routing Infrastructure Hijacking | dApp / Infrastructure | 6.1.4, 9.1.3 | Registrar and DNS takeovers |
| WA14 | Wallet Software, Extension, and App Compromises | Wallet and Key Management | 5.1.5 | Compromised browser-extension builds |
| WA15 | Nation-State Infiltration via Fake Hiring and Malicious OSS Contributions | Infrastructure | 9.1.4 | DPRK IT worker fraud, TraderTraitor |
18.1.1 Source: OWASP SCS, Alternate Top 15: Web3 Attack Vectors (Beyond Smart Contracts)¶
The canonical list lives at scs.owasp.org/sctop10/Web3-Attack-Vectors-Top15, published by the OWASP Smart Contract Security (SCS) project as the deliberate complement to the Smart Contract Top 10. Where the SC Top 10 ranks on-chain logic risk, WA01 through WA15 covers everything outside the contract: custody, social engineering, front-end delivery, infrastructure, and the human layer above it.
Two scope notes matter when you cite this list. The OWASP project states explicitly that the ordering is not a severity or frequency ranking; WA01 is not "worse" than WA15, and a data-driven ranking methodology is flagged as a planned future addition. Treat the list as a coverage checklist, not a priority queue, until that ships. The list is also versioned alongside the SC Top 10, so wording or grouping can shift between editions; this handbook's chapter numbers point to the vector IDs, the stable reference, rather than to any single edition's prose. When you build a control against a specific WA ID, record the publication date you worked from and re-check the source on your next review cycle (Chapter 15.1 covers this handbook's own update discipline).
19. Appendix D: Mapping to SCWE and SC Top 10¶
The Web3 Attack Vectors Top 15 and the SC Top 10 are deliberately non-overlapping: the Top 15 covers what happens around the contract, the SC Top 10 covers what happens inside it. Most WA vectors therefore have no SCWE or SC Top 10 mapping at all, because their root cause never touches deployed bytecode. A handful sit at the seam, where an off-chain vector (a spoofed UI, a compromised deployer key, an insider with a privileged role) is the delivery mechanism for an on-chain weakness. This appendix is the quick-reference for that seam, consolidating the mapping Chapter 7.1 develops in full prose.
flowchart LR
subgraph OFFCHAIN[Purely off-chain root cause, no SCWE mapping]
WA03[WA03 Key Compromise]
WA05[WA05 Fake Interview]
WA07[WA07 CEX/Web2 Breach]
WA08[WA08 Phishing]
WA09[WA09 Pig Butchering]
WA11[WA11 Wrench Attack]
WA13[WA13 DNS Hijack]
WA14[WA14 Wallet App Compromise]
WA15[WA15 Nation-State Infiltration]
end
subgraph SEAM[Off-chain delivery, on-chain effect]
WA01[WA01 Multisig Hijacking]
WA02[WA02 Supply Chain]
WA04[WA04 Drainer/DaaS]
WA06[WA06 UI Spoofing/Approval Phishing]
WA10[WA10 Rug Pull/Token Impersonation]
WA12[WA12 Insider/Collusive Abuse]
end
SEAM --> SC[SC Top 10:2026 category]
SEAM --> SCWE[Representative SCWE domain]
Figure 2. Only vectors in the seam group carry an SC Top 10 or SCWE mapping. The nine purely off-chain vectors are fully addressed by this handbook's own detection and mitigation columns (Appendix B); mapping them to a contract-weakness catalog would misrepresent where the risk lives.
| WA ID | On-Chain Touchpoint | SC Top 10:2026 | Representative SCWE Domain |
|---|---|---|---|
| WA01 | Multisig executes an attacker-substituted call once signers are deceived | SC01:2026 (Access Control) | SCSVS-AUTH: access-control and authorization weaknesses |
| WA02 | Compromised dependency ships malicious logic into a contract's build or a front end's signing path | SC05:2026 (Lack of Input Validation), SC10:2026 (Proxy and Upgradeability) | SCSVS-CODE: code and dependency management weaknesses |
| WA04 | A single deceptive approval becomes an unbounded, contract-enforced allowance | SC02:2026 (Business Logic) | SCSVS-AUTH: approval and allowance handling weaknesses |
| WA06 | Approval or transfer calldata differs from what the user believed they authorized | SC02:2026 (Business Logic) | SCSVS-AUTH: signature and approval handling weaknesses |
| WA10 | Deployer retains an undisclosed privileged function (mint, pause, blacklist) | SC01:2026 (Access Control), SC02:2026 (Business Logic) | SCSVS-GOV: business-logic and privileged-role weaknesses |
| WA12 | An insider with a legitimate privileged role executes or authorizes a malicious on-chain action | SC01:2026 (Access Control) | SCSVS-AUTH: access-control and role-management weaknesses |
Read the table as a starting point, not an exhaustive cross-reference; a given incident can implicate more than one SC Top 10 category (the Bybit theft is a WA01 finding whose blast radius touched both access control and business logic). In a finding write-up, cite the specific SCWE entry ID your reviewer identifies rather than the domain grouping shown here; the domain grouping is a navigation aid, the individual SCWE-XXX entry is the citable weakness.
20. Appendix E: References and Further Reading¶
Every claim in this handbook that names a standard, a date, a figure, or an incident is cited inline at the point it is made, the convention Part I establishes. Rather than duplicate that source list here, this appendix points to references.md, the deduplicated bibliography for the full handbook, grouped into Standards and Frameworks (the Web3 Attack Vectors Top 15, SC Top 10, SCWE, SCSVS, SCSTG, MITRE ATT&CK and AADAPT, STRIDE), Incidents and Case Studies (Bybit, Ledger Connect Kit, the Ledger co-founder kidnapping, TraderTraitor and DPRK IT worker fraud reporting), Tools (transaction simulators, honeypot and bytecode-diffing scanners, SBOM tooling from Handbook 01), and Further Reading (vendor post-mortems, tracker projects, and companion material outside this handbook's scope).
If a link anywhere in this handbook goes stale, check references.md first for an updated URL or an archived copy before assuming the underlying claim no longer holds. When you extend this handbook, whether adding a new TTP row, a new WA-to-SCWE mapping, or a new incident, add the source to references.md in the same change so the bibliography never drifts out of sync with the body text.
Key controls for Part 5
- Treat Appendix A as the shared vocabulary: link to it from tickets and post-mortems instead of redefining a term inline each time.
- Start any threat-modeling session or alert triage from the layer-first lookup in Appendix B (Figure 1), then follow the Chapter cross-reference to the full technique write-up.
- Cite the Web3 Attack Vectors Top 15 by WA ID, not by rank; the list is explicitly unranked (Appendix C, 18.1.1), and treating the numbering as a severity order misrepresents the source.
- When a finding sits in the seam between an off-chain vector and on-chain logic, cite the specific SCWE entry your review identifies, not just the domain grouping in Appendix D.
- Add every new citation to
references.mdin the same change that introduces it (Appendix E).