Mobile security risks
The OWASP Mobile Top 10 (2024) — the top risks for mobile applications.
Improper Credential Usage occurs when mobile applications store, transmit, or use authentication credentials (passwords, API keys, tokens, certificates) insecurely. This includes hardcoding credentials in source code, storing them in plain text, or exposing them through logs and error messages.
Inadequate Supply Chain Security occurs when mobile applications fail to properly validate and secure their software supply chain, including third-party libraries, SDKs, dependencies, and development tools. This vulnerability allows attackers to compromise applications through malicious or vulnerable components.
Insecure Authentication/Authorization occurs when mobile applications fail to properly verify user identity (authentication) or enforce access controls (authorization). This includes weak session management, insecure authentication mechanisms, and inadequate authorization checks.
Insufficient Input/Output Validation occurs when mobile applications fail to properly validate, sanitize, and encode data coming into the application (input) or going out to users/systems (output). This vulnerability allows attackers to inject malicious data that can compromise the app, its users, or backend systems.
Insecure Communication occurs when mobile applications transmit sensitive data over unencrypted or improperly secured channels. This includes using unencrypted protocols (HTTP instead of HTTPS), weak TLS configurations, improper certificate validation, and cleartext transmission of authentication credentials or personal information.
Inadequate Privacy Controls refers to the insufficient implementation of mechanisms that protect user privacy within mobile applications. This encompasses not just the absence of privacy features, but also the misuse of legitimate permissions, excessive data collection practices, and lack of transparency in how user data is handled.
Insufficient Binary Protections refers to the lack of defensive measures that protect mobile application binaries from reverse engineering, tampering, and runtime manipulation. This encompasses the absence of code obfuscation, debugging detection, integrity verification, and environment security checks that would make analysis and modification significantly more difficult for attackers.
Security Misconfiguration occurs when mobile applications are deployed with insecure settings, unnecessary features enabled, or default configurations that expose the application to security risks. This includes misconfigured permissions, debug features left enabled in production, insecure network settings, and improper security headers.
Insecure Data Storage occurs when mobile applications store sensitive data in an unprotected or inadequately protected manner on the device. This includes storing data in plain text in local databases, shared preferences, files, or other storage mechanisms that are accessible to attackers with physical device access or through malware.
Insufficient Cryptography occurs when mobile applications use weak, broken, or improperly implemented cryptographic algorithms to protect sensitive data. This includes using deprecated algorithms (DES, RC4, MD5), implementing custom "home-grown" cryptography, hard-coding encryption keys, or misusing cryptographic APIs in ways that compromise security.