Description
Covert timing channels convey information by modulating some aspect of system behavior over time, so that the program receiving the information can observe system behavior and infer protected information.
In some instances, knowing when data is transmitted between parties can provide a malicious user with privileged information. Also, externally monitoring the timing of operations can potentially reveal sensitive data. For example, a cryptographic operation can expose its internal state if the time it takes to perform the operation varies, based on the state. Covert channels are frequently classified as either storage or timing channels. Some examples of covert timing channels are the system's paging rate, the time a certain transaction requires to execute, and the time it takes to gain access to a shared bus.
Potential Impact
Confidentiality, Other
Read Application Data, Other
Demonstrative Examples
def validate_password(actual_pw, typed_pw):
if len(actual_pw) <> len(typed_pw):
return 0
for i in len(actual_pw):
if actual_pw[i] <> typed_pw[i]:
return 0
return 1Mitigations & Prevention
Whenever possible, specify implementation strategies that do not introduce time variances in operations.
Often one can artificially manipulate the time which operations take or -- when operations occur -- can remove information from the attacker.
It is reasonable to add artificial or random delays so that the amount of CPU time consumed is independent of the action being taken by the application.
Related Weaknesses
Taxonomy Mappings
- Landwehr: — Timing
- CLASP: — Covert Timing Channel
Frequently Asked Questions
What is CWE-385?
CWE-385 (Covert Timing Channel) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Base-level weakness. Covert timing channels convey information by modulating some aspect of system behavior over time, so that the program receiving the information can observe system behavior and infer protected informat...
How can CWE-385 be exploited?
Attackers can exploit CWE-385 (Covert Timing Channel) to read application data, other. This weakness is typically introduced during the Architecture and Design, Implementation phase of software development.
How do I prevent CWE-385?
Key mitigations include: Whenever possible, specify implementation strategies that do not introduce time variances in operations.
What is the severity of CWE-385?
CWE-385 is classified as a Base-level weakness (Medium abstraction). Its actual severity depends on the specific context and how the weakness manifests in your application.