Operations | Definition |
Encrypt | Transform (encipher) intelligible data (plaintext) into unintelligible form (ciphertext) using a cryptographic algorithm and key(s). The goal is to ensure confidentiality. |
Decrypt | Transform(decipher) encripted data (ciphertext) into plaintext using a cryptographic algorithm and key(s). |
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. |
Hardcoded Key | |
Wrong Algorithm | An inadequate, weak (incl. due to Insecure Mode of Operation), risky, or broken cryptographic algorithm or step. |
Weak Protocol | xxx. |
Data Fault | The object data has harmed semantics or inconsistent or wrong value |
Weak Ciphertext | yyyddd. |
Unverified Data | yyyddd. |
Weak Key | The key is of an insufficiant length. |
Weak Random Bits | yyyddd. |
Repeated IV | The initialization vector (IV) -- the starting nonce of an encryption cryptographic algorithm -- is not unique. |
Weak Shared Secrets | yyyddd. |
Revealed Key | |
Consequences | Definition |
Data Error | The object data has harmed semantics or inconsistent or wrong value |
Corrupted Data | Unintentionally modified data due to a previous weakness (e.g., with a decompress or a decrypt operation); would lead to invalid data for next weakness. |
Meaningless Data | yyyddd. |
Weak Ciphertext | yyyddd. |
Revealed Key | |
Data Security Final Error | yyyddd |
Revealed Plaintext | Intelligible data that has meaning and can be understood without the application of decryption is exposed. |
Operations Attributes | Definition |
Mechanism | Shows how the buggy/faulty operation code is performed. |
Symmetric Algorithm | A key encryption scheme that uses one shared key. Known also as 'secret key algorithm' (e.g. Serpent, Blowfish). |
Asymmetric Algorithm | A key encryption scheme that uses two keys: public and private. Known also as 'public key algorithm' (e.g. Diffie-Hellman, RSA). |
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. |
Credentials | Passwords, tokens, smart cards, digital certificates, biometrics (fingerprint, hand configuration, retina, iris, voice.) They are sensitive data. |
System Data | OS's configurations, logs, Web usage. They are sensitive data. |
State Data | A snapshot of software behavior. They are sensitive data. |
Cryptographic | Hashes, 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). They are sensitive data. |
Digital Document | yyyddd They are sensitive data. |
Data State | Shows where the data come from. |
Stored | The data are from a permanent storage (e.g., file, database on a storage device). |
Transferred | The data are from another device via a network (e.g., connecting analog device or another computer). |
In Use | The data are from a volatile storage (e.g., RAM, cache memory). |