Operations | Definition |
Generate/Select | yyyddd. |
Store | yyyddd. |
Distribute | yyyddd. |
Use | yyyddd. |
Destroy | yyyddd. |
Operands | Definition |
Data | The data value of an object -- stored in object's memory. |
Causes | Definition |
Code Defect Bug | The operation has a bug, which is the first cause for the chain of weaknesses underlying a software security vulnerability. The bug must be fixed to resolve the vulnerability. |
Missing Code | The entire operation implementation or a part of its specification is absent. |
Added Code | The operation implementation adds a step to its specification. |
Erroneous Code | The operation implementation has a bug. |
Specification Defect Bug | A specification (algorithm, protocol) of an operation an error or a rule (policy, keying material) used by the operation has an error, which when implemented becomes the bug causing the chain of weaknesses underlying a software security vulnerability. It must be fixed to fix the bug and to resolve the vulnerability. |
Wrong Algorithm | An inadequate, weak (incl. due to Insecure Mode of Operation), risky, or broken cryptographic algorithm or step. |
Data Fault | The object data has harmed semantics or inconsistent or wrong value |
Weak Keying Material | yyyddd. |
Consequences | Definition |
Data Error | The object data has harmed semantics or inconsistent or wrong value |
Weak Keying Material | yyyddd. |
Data Security Final Error | yyyddd |
Revealed IV | A secret, public, or private key is exposed. |
Revealed Shared Secrets | A pre-master or other secret is exposed. |
Revealed Domain Parameter | A xxx is exposed. |
Revealed Random Bits | A random number (inlc. a salt or a nonce) is exposed. |
Operations Attributes | Definition |
Mechanism | Shows how the buggy/faulty operation code is performed. |
Hash + RND | Hash Function + Random Numbers. |
MAC | Message Authentication Code. |
Digital Signature | yyyddd. |
Source Code | Shows where the buggy/faulty operation code is in the program -- in what kind of software. |
Codebase | The operation is in the programmer's code - in the application itself. |
Third-Party | The operation is in a third-party software. |
Standard Library | The operation is in the standard library for a particular programming language. |
Compiler/Interpreter | The operation is in the language processor that allows execution or creates executables (compiler, assembler, interpreter). |
Execution Space | Shows where the buggy/faulty operation code is running or with what privilege level). |
Userland | The bugged code runs in an environment with privilege levels, but in unprivileged mode (e.g., ring 3 in x86 architecture). |
Kernel | The bugged code runs in an environment with privilege levels with access privileged instructions (e.g., ring 0 in x86 architecture). |
Bare-Metal | The bugged code runs in an environment without privilege control. Usually, the program is the only software running and has total access to the hardware. |
Operands Attributes | Definition |
Data Kind | Shows what the data value is. |
Hashes | Fixed-length bit strings mapped by a hash function from arbitrary length bit strings. They are used for integrity authentication. They are cryptographic data. |
Keying Material | Cryptographic keys (secret, public, private) and other crypto algorithm parameters (initialization vectors (IVs), shared secrets (e.g. pre-master secrets), domain parameters, and random bits (eandom number - RBG seeds, salt, nonce). |
Digital Certificate | yyyddd They are sensitive data. |
Data State | Shows where the data come from. |
Entered | The data are from a user via a user interface (e.g., text field). |
Stored | The data are from a permanent storage (e.g., file, database on a storage device). |
In Use | The data are from a volatile storage (e.g., RAM, cache memory). |
Transferred | The data are from another device via a network (e.g., connecting analog device or another computer). |