OWASP Top Ten: Cryptographic Failures

Alex Archondakis

Managing Consultant

Alex is one of our managing consultants here at Pentest People. Focusing mainly on web application penetration testing. Alex has spoken at many key events while with us, including BSides London and even DSS ITSEC Latvia.

OWASP Top Ten: Cryptographic Failures

Cryptographic Failures are a major security problem. They can lead to data breaches, identity theft, and other serious problems. The Open Web Application Security Project (OWASP) has identified ten major failures. These failures can be divided into three categories: Cryptographic design flaws, cryptographic implementation errors and cryptographic key management.

What is Cryptographic Failure?

Cryptographic failures are where attackers often target sensitive data, such as passwords, credit card numbers, and personal information, when you do not properly protect them. This is the root cause of sensitive data exposure.

Overview

Software updates, critical data, and CI/CD pipelines play a crucial role in maintaining the security and functionality of software systems. However, if the integrity of these components is not verified, it can lead to severe vulnerabilities and potential exploitation by malicious actors.

One of the key concerns in this category is the lack of proper verification of software updates. When updates to software are not thoroughly tested and verified, they can introduce vulnerabilities that can be exploited by attackers. This could result in unauthorised access, data breaches, or disruption of critical systems.

Another aspect is the vulnerability of critical data. If sensitive information is not adequately protected, it can be accessed or tampered with, leading to significant consequences such as financial loss or reputational damage.

Furthermore, compromised CI/CD (Continuous Integration/Continuous Delivery) pipelines can pose a significant threat. These pipelines are responsible for automating the build, testing, and deployment of software systems. If the integrity of the CI/CD pipeline is compromised, it can lead to the deployment of malicious code, giving attackers unauthorised access to systems.

Example Attack Scenarios

 Hacked Open-Source Project Forum Software:

In this scenario, an open-source project uses a forum software that is hacked by an attacker. The attacker gains unauthorized access to user data, including usernames and email addresses. Without proper logging and monitoring, the organization may remain unaware of the attack, leading to potential data breaches and additional malicious activities. However, if logging and monitoring systems are in place, they can identify and alert security personnel about suspicious activities, enabling them to take immediate action to mitigate the attack, secure the compromised system, and protect user data.

Common Password Scan:

In this scenario, an attacker runs a scan to identify users with common passwords on a web service. The attacker specifically targets users who have used common and easily guessable passwords, aiming to gain unauthorized access to their accounts. Without proper logging and monitoring, identifying these targeted attacks may prove difficult. But with effective logging, security teams can identify patterns of failed login attempts, anomalies, and repeated password guesses. Monitoring these logs will allow security personnel to detect the attacker's activities, identify compromised accounts, and take corrective actions such as resetting passwords, enforcing stronger authentication measures, and alerting affected users to safeguard their accounts.

Major Retailer Failing to Respond to Malware Warnings:

In this scenario, a major retailer receives multiple warnings about potential malware infections on their website. However, due to a lack of logging and monitoring systems or insufficient attention, the retailer fails to promptly investigate and address the issue. As a result, customers' personal and financial information is compromised, leading to significant financial losses and reputational damage. Proper logging and monitoring practices would have alerted the retailer about the received warnings, enabling them to investigate the potential malware infection, block access to the compromised parts of the website, and implement security measures to prevent further damage.

 

How to Prevent This From Occurring 

Preventing integrity failure in software systems is crucial to maintaining the reliability and security of digital operations. Here, we will discuss some proactive measures that can be taken to prevent such failures. These measures include using digital signatures for verification, relying on trusted software repositories, performing vulnerability verification for extensions, utilising checksums and file hashes, and implementing a stringent code review process.

Digital signatures play a vital role in ensuring software integrity. By digitally signing software packages, developers can cryptographically verify that the package has not been tampered with during transmission or distribution. This helps establish the software's authenticity and trustworthiness, mitigating the risk of integrity failure.

Trusted software repositories serve as reliable sources for obtaining software. By utilizing reputable repositories, organizations can significantly reduce the likelihood of downloading compromised or malicious software. These repositories provide an extra layer of security by vetting the software and ensuring its integrity.

Performing vulnerability verification for extensions is essential to prevent integrity failure. Extensions are often integrated into software systems to enhance their functionalities. However, these extensions can introduce vulnerabilities that may compromise system integrity. Regularly reviewing and assessing the security of extensions can help identify and address any potential weaknesses.

Why are Cryptographic Failures so Dangerous?

Cryptographic failures are extremely dangerous as they can lead to the exposure of sensitive data, compromising personal information and resulting in severe consequences. When cryptographic systems fail, malicious actors can gain unauthorized access to encrypted data, decrypting it and exploiting it for their own gain.

One of the most significant risks posed by cryptographic failures is the exposure of personal information. Organisations and individuals rely on encryption to protect confidential data such as financial details, medical records, and personally identifiable information. If cryptographic systems fail, this information becomes vulnerable to theft and misuse.

Moreover, such failures can result in data breaches, where attackers gain access to large volumes of sensitive data. This not only exposes individuals to identity theft and fraud but also exposes organizations to legal and compliance risks. Data breach victims can suffer financial losses, damage to their reputation, and face legal consequences for failing to protect sensitive data adequately.

Real-world scenarios of cryptographic failures leading to data breaches are plentiful. Encryption flaws, such as insecure implementations or weak algorithms, can be exploited by attackers to decrypt encrypted data. TLS vulnerabilities, like the infamous Heartbleed bug, have allowed hackers to intercept secure connections, compromising the confidentiality and integrity of transmitted data. Password hashing weaknesses also pose a significant risk, as poorly hashed passwords can be easily cracked, enabling unauthorised access to systems.

Scenarios That Can Lead to Cryptographic Failure

Cryptographic failure can occur due to several vulnerabilities and weaknesses present in cryptographic systems. Weak key generation is one such scenario that can lead to failure. If encryption keys are generated using weak algorithms or predictable patterns, it becomes easier for attackers to guess or break the key, compromising the security of the system.

Algorithmic flaws are another potential scenario for failure. If a cryptographic algorithm is flawed or has vulnerabilities, it can be exploited by attackers to decrypt the encrypted data. This could be due to weak or outdated encryption algorithms that are no longer secure against modern cryptographic attacks.

Improper implementation of cryptographic systems can also result in failure. If the implementation is not done correctly, it might introduce unintended weaknesses or vulnerabilities that can be exploited by attackers. This includes issues such as incorrect initialization of encryption algorithms or weak random number generation.

Side-channel attacks are yet another scenario that can lead to cryptographic failure. These attacks exploit information leaked during the cryptographic process, such as timing information, power consumption, or electromagnetic radiation. By analysing these side-channel leaks, attackers can retrieve encryption keys or plaintext, compromising the security of the system.

What are some Common Examples?

  • Sensitive data is transmitted (via HTTP, FTP, SMTP, etc) or stored in clear-text (database, files, etc).
  • Use of old or weak cryptographic algorithms.
  • Use of weak or default encryption keys or re-use of compromised keys.

How Can Cryptographic Failure be Exploited?

A flaw can occur when you do the following: Store or transit data in clear text (most common) Protect data with an old or weak encryption. Improperly filter or mask data in transit.

How Attackers Can Leverage Cryptographic Failures

Attackers can exploit cryptographic failures through various vulnerabilities and techniques. Weak key generation is one such vulnerability where attackers can exploit the generation process to guess or brute-force the keys. If keys are generated with insufficient entropy or are too predictable, attackers can easily decrypt the encrypted data.

Improper implementation of algorithms is another vulnerability that attackers can target. If an algorithm is flawed or improperly implemented, attackers can exploit these weaknesses to gain unauthorized access or manipulate data. For example, the Heartbleed vulnerability in OpenSSL allowed attackers to extract sensitive information from servers due to an implementation error.

Insufficient randomness is yet another vulnerability that attackers can leverage. Cryptographic systems rely on random numbers for generating keys and other operations. If the random number generation is flawed or predictable, attackers can exploit this weakness to compromise the cryptographic system.

The consequences of such exploits can be severe. Attackers can gain unauthorized access to sensitive information, tamper with data integrity, impersonate users, or launch further attacks within the system. The impact can range from financial losses and reputation damage to compromise of national security.

Preventive Measures

To prevent cryptographic failures, it is important to follow best practices in cryptographic design, implementation, and key management.

Here are some preventive measures that can help protect sensitive data from attackers:

  • Use strong encryption algorithms: Make sure to use modern and secure encryption algorithms such as AES (Advanced Encryption Standard) for encrypting sensitive data.
  •  Implement proper key management: Generate unique encryption keys for each data set and ensure they are securely stored and rotated regularly.
  • Use secure protocols: Always use secure communication protocols such as HTTPS to transmit sensitive data over the internet.
  • Regularly update cryptographic libraries: Keep your cryptographic libraries up to date to ensure you are using the latest security patches and algorithms.
  • Conduct regular security audits: Regularly audit your cryptographic implementations to identify any potential vulnerabilities and address them promptly.

What are the Top Tips for Preventing This?

  • Classify data processed, stored, or transmitted by an application.
  • Don’t store sensitive data unnecessarily.
  • Make sure to encrypt all sensitive data at rest.
  • Ensure up-to-date and strong standard algorithms, protocols, and keys are in place; use proper key management.

Here at Pentest People, we are continuously working to mitigate cyber security risks and threats by identifying vulnerabilities in your system’s defences, so that a real-life hacker cant exploit them. We offer Web Application Testing to keep your business safe and secure.

Video/Audio Transcript