Operations | Definition |
Encrypt | Encrypt operation – Transform (encipher) intelligible data (plaintext) into unintelligible form (ciphertext) using a cryptographic algorithm and key(s). The goal is to ensure confidentiality. |
Decrypt | Decrypt operation – Transform (decipher) encripted data (ciphertext) into intelligible data (plaintext) using a cryptographic algorithm and key(s). |
Operands | Definition |
Data | Data operand – The data value of an object – stored in object's memory. |
Causes | Definition |
Code Bug | Code Bug Type – A code operation defect – proper operands over an improper operation. A first cause for the chain of weaknesses underlying a software security vulnerability. Must be fixed to resolve the vulnerability. |
Missing Code | |
Added Code | |
Erroneous Code | |
Specification Bug | Specification Bug Type – A specification operation defect – proper operands over an improper operation. A first cause for the chain of weaknesses underlying a software security vulnerability. Must be fixed to resolve the vulnerability. |
Hardcoded Key | |
Wrong Algorithm | |
Weak Protocol | |
Data Fault | Data Fault/Error Type – The object data has harmed semantics or inconsistent or wrong value |
Weak Ciphertext | Weak Ciphertext fault/error – yyyddd. |
Unverified Data | Unverified Data fault/error – yyyddd. |
Weak Key | Weak Key fault/error – The key is of an insufficiant length. |
Weak Random Bits | Weak Random Bits fault/error – yyyddd. |
Repeated IV | Repeated IV fault/error – The initialization vector (IV) – the starting nonce of an encryption cryptographic algorithm – is not unique. |
Weak Shared Secrets | Weak Shared Secrets fault/error – yyyddd. |
Revealed Key | |
Consequences | Definition |
Data Error | Data Fault/Error Type – The object data has harmed semantics or inconsistent or wrong value |
Corrupted Data | Corrupted Data fault/error – 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 | Meaningless Data fault/error – yyyddd. |
Weak Ciphertext | Weak Ciphertext fault/error – yyyddd. |
Revealed Key | |
Data Security Final Error | Data Security exploitable error type – xxx |
Revealed Plaintext | Revealed Plaintext exploitable error – Intelligible data that has meaning and can be understood without the application of decryption is exposed. |
Operations Attributes | Definition |
Mechanism | Mechanism operation attribute type – Shows how the buggy/faulty operation code is performed. |
Symmetric Algorithm | Symmetric Algorithm operation attribute – A key encryption scheme that uses one shared key. Known also as 'secret key algorithm' (e.g. Serpent, Blowfish). |
Asymmetric Algorithm | Asymmetric Algorithm operation attribute – A key encryption scheme that uses two keys: public and private. Known also as 'public key algorithm' (e.g. Diffie-Hellman, RSA). |
Source Code | Source Code operation attribute type – Shows where the buggy/faulty operation code is in the program – in what kind of software. |
Codebase | Codebase operation attribute – The operation is in the programmer's code - in the application itself. |
Third-Party | Third-Party operation attribute – The operation is in a third-party software. |
Standard Library | Standard Library operation attribute – The operation is in the standard library for a particular programming language. |
Compiler/Interpreter | Compiler/Interpreter operation attribute – The operation is in the language processor that allows execution or creates executables (compiler, assembler, interpreter). |
Execution Space | Execution Space operation attribute type – Shows where the buggy/faulty operation code is running or with what privilege level. |
Userland | Userland operation attribute – The bugged code runs in an environment with privilege levels, but in unprivileged mode (e.g., ring 3 in x86 architecture). |
Kernel | Kernel operation attribute – The bugged code runs in an environment with privilege levels with access privileged instructions (e.g., ring 0 in x86 architecture). |
Bare-Metal | Bare-Metal operation attribute – 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 | Data Kind operand attribute type – Shows what the data value is. |
Credentials | Credentials operand attribute – Passwords, tokens, smart cards, digital certificates, biometrics (fingerprint, hand configuration, retina, iris, voice.) They are sensitive data. |
System Data | System Data operand attribute – OS's configurations, logs, Web usage. They are sensitive data. |
State Data | State Data operand attribute – A snapshot of software behavior. They are sensitive data. |
Cryptographic | Cryptographic operand attribute – 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 | Digital Document operand attribute – yyyddd They are sensitive data. |
Data State | Data State operand attribute type operand attribute – Shows where the data come from. |
Stored | Stored operand attribute – The data are from a permanent storage (e.g., file, database on a storage device). |
Transferred | Transferred operand attribute – The data are from another device via a network (e.g., connecting analog device or another computer). |
In Use | In Use operand attribute – The data are from a volatile storage (e.g., RAM, cache memory). |