OWASP

EN: Publications of the OWASP Foundation, https://owasp.org/. OWASP® is a registered trademark of the OWASP Foundation, Inc.; GRCA is not affiliated with, nor endorsed by, the OWASP Foundation. Only the versions published by OWASP are authoritative.

DE: Veröffentlichungen der OWASP Foundation, https://owasp.org/. OWASP® ist eine eingetragene Marke der OWASP Foundation, Inc.; GRCA steht in keiner Verbindung zur OWASP Foundation und wird von ihr nicht unterstützt. Maßgeblich sind allein die von OWASP veröffentlichten Fassungen.

M'hemm l-ebda dokument f'din il-lingwa, jintwerew dawk bl-Ingliż.

OWASP Application Security Verification Standard 5.0.0

Kwistjonijiet
Titlu Sors
+ OWASP Application Security Verification Standard 5.0.0
---+ V1 Encoding and Sanitization
------+ V1.1 Encoding and Sanitization Architecture
---------+ V1.1.1 Verify that input is decoded or unescaped into a canonical form only once, it is only decoded when …
---------+ V1.1.2 Verify that the application performs output encoding and escaping either as a final step before …
------+ V1.2 Injection Prevention
---------+ V1.2.1 Verify that output encoding for an HTTP response, HTML document, or XML document is relevant for …
---------+ V1.2.2 Verify that when dynamically building URLs, untrusted data is encoded according to its context …
---------+ V1.2.3 Verify that output encoding or escaping is used when dynamically building JavaScript content …
---------+ V1.2.4 Verify that data selection or database queries (e.g., SQL, HQL, NoSQL, Cypher) use parameterized …
---------+ V1.2.5 Verify that the application protects against OS command injection and that operating system calls …
---------+ V1.2.6 Verify that the application protects against LDAP injection vulnerabilities, or that specific …
---------+ V1.2.7 Verify that the application is protected against XPath injection attacks by using query …
---------+ V1.2.8 Verify that LaTeX processors are configured securely (such as not using the "--shell-escape" flag) …
---------+ V1.2.9 Verify that the application escapes special characters in regular expressions (typically using a …
---------+ V1.2.10 Verify that the application is protected against CSV and Formula Injection. The application must …
------+ V1.3 Sanitization
---------+ V1.3.1 Verify that all untrusted HTML input from WYSIWYG editors or similar is sanitized using a …
---------+ V1.3.2 Verify that the application avoids the use of eval() or other dynamic code execution features such …
---------+ V1.3.3 Verify that data being passed to a potentially dangerous context is sanitized beforehand to enforce …
---------+ V1.3.4 Verify that user-supplied Scalable Vector Graphics (SVG) scriptable content is validated or …
---------+ V1.3.5 Verify that the application sanitizes or disables user-supplied scriptable or expression template …
---------+ V1.3.6 Verify that the application protects against Server-side Request Forgery (SSRF) attacks, by …
---------+ V1.3.7 Verify that the application protects against template injection attacks by not allowing templates …
---------+ V1.3.8 Verify that the application appropriately sanitizes untrusted input before use in Java Naming and …
---------+ V1.3.9 Verify that the application sanitizes content before it is sent to memcache to prevent injection …
---------+ V1.3.10 Verify that format strings which might resolve in an unexpected or malicious way when used are …
---------+ V1.3.11 Verify that the application sanitizes user input before passing to mail systems to protect against …
---------+ V1.3.12 Verify that regular expressions are free from elements causing exponential backtracking, and ensure …
------+ V1.4 Memory, String, and Unmanaged Code
---------+ V1.4.1 Verify that the application uses memory-safe string, safer memory copy and pointer arithmetic to …
---------+ V1.4.2 Verify that sign, range, and input validation techniques are used to prevent integer overflows.
---------+ V1.4.3 Verify that dynamically allocated memory and resources are released, and that references or …
------+ V1.5 Safe Deserialization
---------+ V1.5.1 Verify that the application configures XML parsers to use a restrictive configuration and that …
---------+ V1.5.2 Verify that deserialization of untrusted data enforces safe input handling, such as using an …
---------+ V1.5.3 Verify that different parsers used in the application for the same data type (e.g., JSON parsers …
---+ V2 Validation and Business Logic
------+ V2.1 Validation and Business Logic Documentation
---------+ V2.1.1 Verify that the application's documentation defines input validation rules for how to check the …
---------+ V2.1.2 Verify that the application's documentation defines how to validate the logical and contextual …
---------+ V2.1.3 Verify that expectations for business logic limits and validations are documented, including both …
------+ V2.2 Input Validation
---------+ V2.2.1 Verify that input is validated to enforce business or functional expectations for that input. This …
---------+ V2.2.2 Verify that the application is designed to enforce input validation at a trusted service layer. …
---------+ V2.2.3 Verify that the application ensures that combinations of related data items are reasonable …
------+ V2.3 Business Logic Security
---------+ V2.3.1 Verify that the application will only process business logic flows for the same user in the …
---------+ V2.3.2 Verify that business logic limits are implemented per the application's documentation to avoid …
---------+ V2.3.3 Verify that transactions are being used at the business logic level such that either a business …
---------+ V2.3.4 Verify that business logic level locking mechanisms are used to ensure that limited quantity …
---------+ V2.3.5 Verify that high-value business logic flows require multi-user approval to prevent unauthorized or …
------+ V2.4 Anti-automation
---------+ V2.4.1 Verify that anti-automation controls are in place to protect against excessive calls to application …
---------+ V2.4.2 Verify that business logic flows require realistic human timing, preventing excessively rapid …
---+ V3 Web Frontend Security
------+ V3.1 Web Frontend Security Documentation
---------+ V3.1.1 Verify that application documentation states the expected security features that browsers using the …
------+ V3.2 Unintended Content Interpretation
---------+ V3.2.1 Verify that security controls are in place to prevent browsers from rendering content or …
---------+ V3.2.2 Verify that content intended to be displayed as text, rather than rendered as HTML, is handled …
---------+ V3.2.3 Verify that the application avoids DOM clobbering when using client-side JavaScript by employing …
------+ V3.3 Cookie Setup
---------+ V3.3.1 Verify that cookies have the 'Secure' attribute set, and if the '__Host-' prefix is not used for …
---------+ V3.3.2 Verify that each cookie's 'SameSite' attribute value is set according to the purpose of the cookie …
---------+ V3.3.3 Verify that cookies have the '__Host-' prefix for the cookie name unless they are explicitly …
---------+ V3.3.4 Verify that if the value of a cookie is not meant to be accessible to client-side scripts (such as …
---------+ V3.3.5 Verify that when the application writes a cookie, the cookie name and value length combined are not …
------+ V3.4 Browser Security Mechanism Headers
---------+ V3.4.1 Verify that a Strict-Transport-Security header field is included on all responses to enforce an …
---------+ V3.4.2 Verify that the Cross-Origin Resource Sharing (CORS) Access-Control-Allow-Origin header field is a …
---------+ V3.4.3 Verify that HTTP responses include a Content-Security-Policy response header field which defines …
---------+ V3.4.4 Verify that all HTTP responses contain an 'X-Content-Type-Options: nosniff' header field. This …
---------+ V3.4.5 Verify that the application sets a referrer policy to prevent leakage of technically sensitive data …
---------+ V3.4.6 Verify that the web application uses the frame-ancestors directive of the Content-Security-Policy …
---------+ V3.4.7 Verify that the Content-Security-Policy header field specifies a location to report violations.
---------+ V3.4.8 Verify that all HTTP responses that initiate a document rendering (such as responses with …
------+ V3.5 Browser Origin Separation
---------+ V3.5.1 Verify that, if the application does not rely on the CORS preflight mechanism to prevent disallowed …
---------+ V3.5.2 Verify that, if the application relies on the CORS preflight mechanism to prevent disallowed …
---------+ V3.5.3 Verify that HTTP requests to sensitive functionality use appropriate HTTP methods such as POST …
---------+ V3.5.4 Verify that separate applications are hosted on different hostnames to leverage the restrictions …
---------+ V3.5.5 Verify that messages received by the postMessage interface are discarded if the origin of the …
---------+ V3.5.6 Verify that JSONP functionality is not enabled anywhere across the application to avoid Cross-Site …
---------+ V3.5.7 Verify that data requiring authorization is not included in script resource responses, like …
---------+ V3.5.8 Verify that authenticated resources (such as images, videos, scripts, and other documents) can be …
------+ V3.6 External Resource Integrity
---------+ V3.6.1 Verify that client-side assets, such as JavaScript libraries, CSS, or web fonts, are only hosted …
------+ V3.7 Other Browser Security Considerations
---------+ V3.7.1 Verify that the application only uses client-side technologies which are still supported and …
---------+ V3.7.2 Verify that the application will only automatically redirect the user to a different hostname or …
---------+ V3.7.3 Verify that the application shows a notification when the user is being redirected to a URL outside …
---------+ V3.7.4 Verify that the application's top-level domain (e.g., site.tld) is added to the public preload list …
---------+ V3.7.5 Verify that the application behaves as documented (such as warning the user or blocking access) if …
---+ V4 API and Web Service
------+ V4.1 Generic Web Service Security
---------+ V4.1.1 Verify that every HTTP response with a message body contains a Content-Type header field that …
---------+ V4.1.2 Verify that only user-facing endpoints (intended for manual web-browser access) automatically …
---------+ V4.1.3 Verify that any HTTP header field used by the application and set by an intermediary layer, such as …
---------+ V4.1.4 Verify that only HTTP methods that are explicitly supported by the application or its API …
---------+ V4.1.5 Verify that per-message digital signatures are used to provide additional assurance on top of …
------+ V4.2 HTTP Message Structure Validation
---------+ V4.2.1 Verify that all application components (including load balancers, firewalls, and application …
---------+ V4.2.2 Verify that when generating HTTP messages, the Content-Length header field does not conflict with …
---------+ V4.2.3 Verify that the application does not send nor accept HTTP/2 or HTTP/3 messages with …
---------+ V4.2.4 Verify that the application only accepts HTTP/2 and HTTP/3 requests where the header fields and …
---------+ V4.2.5 Verify that, if the application (backend or frontend) builds and sends requests, it uses …
------+ V4.3 GraphQL
---------+ V4.3.1 Verify that a query allowlist, depth limiting, amount limiting, or query cost analysis is used to …
---------+ V4.3.2 Verify that GraphQL introspection queries are disabled in the production environment unless the …
------+ V4.4 WebSocket
---------+ V4.4.1 Verify that WebSocket over TLS (WSS) is used for all WebSocket connections.
---------+ V4.4.2 Verify that, during the initial HTTP WebSocket handshake, the Origin header field is checked …
---------+ V4.4.3 Verify that, if the application's standard session management cannot be used, dedicated tokens are …
---------+ V4.4.4 Verify that dedicated WebSocket session management tokens are initially obtained or validated …
---+ V5 File Handling
------+ V5.1 File Handling Documentation
---------+ V5.1.1 Verify that the documentation defines the permitted file types, expected file extensions, and …
------+ V5.2 File Upload and Content
---------+ V5.2.1 Verify that the application will only accept files of a size which it can process without causing a …
---------+ V5.2.2 Verify that when the application accepts a file, either on its own or within an archive such as a …
---------+ V5.2.3 Verify that the application checks compressed files (e.g., zip, gz, docx, odt) against maximum …
---------+ V5.2.4 Verify that a file size quota and maximum number of files per user are enforced to ensure that a …
---------+ V5.2.5 Verify that the application does not allow uploading compressed files containing symlinks unless …
---------+ V5.2.6 Verify that the application rejects uploaded images with a pixel size larger than the maximum …
------+ V5.3 File Storage
---------+ V5.3.1 Verify that files uploaded or generated by untrusted input and stored in a public folder, are not …
---------+ V5.3.2 Verify that when the application creates file paths for file operations, instead of user-submitted …
---------+ V5.3.3 Verify that server-side file processing, such as file decompression, ignores user-provided path …
------+ V5.4 File Download
---------+ V5.4.1 Verify that the application validates or ignores user-submitted filenames, including in a JSON …
---------+ V5.4.2 Verify that file names served (e.g., in HTTP response header fields or email attachments) are …
---------+ V5.4.3 Verify that files obtained from untrusted sources are scanned by antivirus scanners to prevent …
---+ V6 Authentication
------+ V6.1 Authentication Documentation
---------+ V6.1.1 Verify that application documentation defines how controls such as rate limiting, anti-automation …
---------+ V6.1.2 Verify that a list of context-specific words is documented in order to prevent their use in …
---------+ V6.1.3 Verify that, if the application includes multiple authentication pathways, these are all documented …
------+ V6.2 Password Security
---------+ V6.2.1 Verify that user set passwords are at least 8 characters in length although a minimum of 15 …
---------+ V6.2.2 Verify that users can change their password.
---------+ V6.2.3 Verify that password change functionality requires the user's current and new password.
---------+ V6.2.4 Verify that passwords submitted during account registration or password change are checked against …
---------+ V6.2.5 Verify that passwords of any composition can be used, without rules limiting the type of characters …
---------+ V6.2.6 Verify that password input fields use type=password to mask the entry. Applications may allow the …
---------+ V6.2.7 Verify that "paste" functionality, browser password helpers, and external password managers are …
---------+ V6.2.8 Verify that the application verifies the user's password exactly as received from the user, without …
---------+ V6.2.9 Verify that passwords of at least 64 characters are permitted.
---------+ V6.2.10 Verify that a user's password stays valid until it is discovered to be compromised or the user …
---------+ V6.2.11 Verify that the documented list of context specific words is used to prevent easy to guess …
---------+ V6.2.12 Verify that passwords submitted during account registration or password changes are checked against …
------+ V6.3 General Authentication Security
---------+ V6.3.1 Verify that controls to prevent attacks such as credential stuffing and password brute force are …
---------+ V6.3.2 Verify that default user accounts (e.g., "root", "admin", or "sa") are not present in the …
---------+ V6.3.3 Verify that either a multi-factor authentication mechanism or a combination of single-factor …
---------+ V6.3.4 Verify that, if the application includes multiple authentication pathways, there are no …
---------+ V6.3.5 Verify that users are notified of suspicious authentication attempts (successful or unsuccessful). …
---------+ V6.3.6 Verify that email is not used as either a single-factor or multi-factor authentication mechanism.
---------+ V6.3.7 Verify that users are notified after updates to authentication details, such as credential resets …
---------+ V6.3.8 Verify that valid users cannot be deduced from failed authentication challenges, such as by basing …
------+ V6.4 Authentication Factor Lifecycle and Recovery
---------+ V6.4.1 Verify that system generated initial passwords or activation codes are securely randomly generated …
---------+ V6.4.2 Verify that password hints or knowledge-based authentication (so-called "secret questions") are not …
---------+ V6.4.3 Verify that a secure process for resetting a forgotten password is implemented, that does not …
---------+ V6.4.4 Verify that if a multi-factor authentication factor is lost, evidence of identity proofing is …
---------+ V6.4.5 Verify that renewal instructions for authentication mechanisms which expire are sent with enough …
---------+ V6.4.6 Verify that administrative users can initiate the password reset process for the user, but that …
------+ V6.5 General Multi-factor authentication requirements
---------+ V6.5.1 Verify that lookup secrets, out-of-band authentication requests or codes, and time-based one-time …
---------+ V6.5.2 Verify that, when being stored in the application's backend, lookup secrets with less than 112 bits …
---------+ V6.5.3 Verify that lookup secrets, out-of-band authentication code, and time-based one-time password …
---------+ V6.5.4 Verify that lookup secrets and out-of-band authentication codes have a minimum of 20 bits of …
---------+ V6.5.5 Verify that out-of-band authentication requests, codes, or tokens, as well as time-based one-time …
---------+ V6.5.6 Verify that any authentication factor (including physical devices) can be revoked in case of theft …
---------+ V6.5.7 Verify that biometric authentication mechanisms are only used as secondary factors together with …
---------+ V6.5.8 Verify that time-based one-time passwords (TOTPs) are checked based on a time source from a trusted …
------+ V6.6 Out-of-Band authentication mechanisms
---------+ V6.6.1 Verify that authentication mechanisms using the Public Switched Telephone Network (PSTN) to deliver …
---------+ V6.6.2 Verify that out-of-band authentication requests, codes, or tokens are bound to the original …
---------+ V6.6.3 Verify that a code based out-of-band authentication mechanism is protected against brute force …
---------+ V6.6.4 Verify that, where push notifications are used for multi-factor authentication, rate limiting is …
------+ V6.7 Cryptographic authentication mechanism
---------+ V6.7.1 Verify that the certificates used to verify cryptographic authentication assertions are stored in a …
---------+ V6.7.2 Verify that the challenge nonce is at least 64 bits in length, and statistically unique or unique …
------+ V6.8 Authentication with an Identity Provider
---------+ V6.8.1 Verify that, if the application supports multiple identity providers (IdPs), the user's identity …
---------+ V6.8.2 Verify that the presence and integrity of digital signatures on authentication assertions (for …
---------+ V6.8.3 Verify that SAML assertions are uniquely processed and used only once within the validity period to …
---------+ V6.8.4 Verify that, if an application uses a separate Identity Provider (IdP) and expects specific …
---+ V7 Session Management
------+ V7.1 Session Management Documentation
---------+ V7.1.1 Verify that the user's session inactivity timeout and absolute maximum session lifetime are …
---------+ V7.1.2 Verify that the documentation defines how many concurrent (parallel) sessions are allowed for one …
---------+ V7.1.3 Verify that all systems that create and manage user sessions as part of a federated identity …
------+ V7.2 Fundamental Session Management Security
---------+ V7.2.1 Verify that the application performs all session token verification using a trusted, backend …
---------+ V7.2.2 Verify that the application uses either self-contained or reference tokens that are dynamically …
---------+ V7.2.3 Verify that if reference tokens are used to represent user sessions, they are unique and generated …
---------+ V7.2.4 Verify that the application generates a new session token on user authentication, including …
------+ V7.3 Session Timeout
---------+ V7.3.1 Verify that there is an inactivity timeout such that re-authentication is enforced according to …
---------+ V7.3.2 Verify that there is an absolute maximum session lifetime such that re-authentication is enforced …
------+ V7.4 Session Termination
---------+ V7.4.1 Verify that when session termination is triggered (such as logout or expiration), the application …
---------+ V7.4.2 Verify that the application terminates all active sessions when a user account is disabled or …
---------+ V7.4.3 Verify that the application gives the option to terminate all other active sessions after a …
---------+ V7.4.4 Verify that all pages that require authentication have easy and visible access to logout …
---------+ V7.4.5 Verify that application administrators are able to terminate active sessions for an individual user …
------+ V7.5 Defenses Against Session Abuse
---------+ V7.5.1 Verify that the application requires full re-authentication before allowing modifications to …
---------+ V7.5.2 Verify that users are able to view and (having authenticated again with at least one factor) …
---------+ V7.5.3 Verify that the application requires further authentication with at least one factor or secondary …
------+ V7.6 Federated Re-authentication
---------+ V7.6.1 Verify that session lifetime and termination between Relying Parties (RPs) and Identity Providers …
---------+ V7.6.2 Verify that creation of a session requires either the user's consent or an explicit action …
---+ V8 Authorization
------+ V8.1 Authorization Documentation
---------+ V8.1.1 Verify that authorization documentation defines rules for restricting function-level and …
---------+ V8.1.2 Verify that authorization documentation defines rules for field-level access restrictions (both …
---------+ V8.1.3 Verify that the application's documentation defines the environmental and contextual attributes …
---------+ V8.1.4 Verify that authentication and authorization documentation defines how environmental and contextual …
------+ V8.2 General Authorization Design
---------+ V8.2.1 Verify that the application ensures that function-level access is restricted to consumers with …
---------+ V8.2.2 Verify that the application ensures that data-specific access is restricted to consumers with …
---------+ V8.2.3 Verify that the application ensures that field-level access is restricted to consumers with …
---------+ V8.2.4 Verify that adaptive security controls based on a consumer's environmental and contextual …
------+ V8.3 Operation Level Authorization
---------+ V8.3.1 Verify that the application enforces authorization rules at a trusted service layer and doesn't …
---------+ V8.3.2 Verify that changes to values on which authorization decisions are made are applied immediately. …
---------+ V8.3.3 Verify that access to an object is based on the originating subject's (e.g. consumer's) …
------+ V8.4 Other Authorization Considerations
---------+ V8.4.1 Verify that multi-tenant applications use cross-tenant controls to ensure consumer operations will …
---------+ V8.4.2 Verify that access to administrative interfaces incorporates multiple layers of security, including …
---+ V9 Self-contained Tokens
------+ V9.1 Token source and integrity
---------+ V9.1.1 Verify that self-contained tokens are validated using their digital signature or MAC to protect …
---------+ V9.1.2 Verify that only algorithms on an allowlist can be used to create and verify self-contained tokens …
---------+ V9.1.3 Verify that key material that is used to validate self-contained tokens is from trusted …
------+ V9.2 Token content
---------+ V9.2.1 Verify that, if a validity time span is present in the token data, the token and its content are …
---------+ V9.2.2 Verify that the service receiving a token validates the token to be the correct type and is meant …
---------+ V9.2.3 Verify that the service only accepts tokens which are intended for use with that service …
---------+ V9.2.4 Verify that, if a token issuer uses the same private key for issuing tokens to different audiences …
---+ V10 OAuth and OIDC
------+ V10.1 Generic OAuth and OIDC Security
---------+ V10.1.1 Verify that tokens are only sent to components that strictly need them. For example, when using a …
---------+ V10.1.2 Verify that the client only accepts values from the authorization server (such as the authorization …
------+ V10.2 OAuth Client
---------+ V10.2.1 Verify that, if the code flow is used, the OAuth client has protection against browser-based …
---------+ V10.2.2 Verify that, if the OAuth client can interact with more than one authorization server, it has a …
---------+ V10.2.3 Verify that the OAuth client only requests the required scopes (or other authorization parameters) …
------+ V10.3 OAuth Resource Server
---------+ V10.3.1 Verify that the resource server only accepts access tokens that are intended for use with that …
---------+ V10.3.2 Verify that the resource server enforces authorization decisions based on claims from the access …
---------+ V10.3.3 Verify that if an access control decision requires identifying a unique user from an access token …
---------+ V10.3.4 Verify that, if the resource server requires specific authentication strength, methods, or …
---------+ V10.3.5 Verify that the resource server prevents the use of stolen access tokens or replay of access tokens …
------+ V10.4 OAuth Authorization Server
---------+ V10.4.1 Verify that the authorization server validates redirect URIs based on a client-specific allowlist …
---------+ V10.4.2 Verify that, if the authorization server returns the authorization code in the authorization …
---------+ V10.4.3 Verify that the authorization code is short-lived. The maximum lifetime can be up to 10 minutes for …
---------+ V10.4.4 Verify that for a given client, the authorization server only allows the usage of grants that this …
---------+ V10.4.5 Verify that the authorization server mitigates refresh token replay attacks for public clients …
---------+ V10.4.6 Verify that, if the code grant is used, the authorization server mitigates authorization code …
---------+ V10.4.7 Verify that if the authorization server supports unauthenticated dynamic client registration, it …
---------+ V10.4.8 Verify that refresh tokens have an absolute expiration, including if sliding refresh token …
---------+ V10.4.9 Verify that refresh tokens and reference access tokens can be revoked by an authorized user using …
---------+ V10.4.10 Verify that confidential client is authenticated for client-to-authorized server backchannel …
---------+ V10.4.11 Verify that the authorization server configuration only assigns the required scopes to the OAuth …
---------+ V10.4.12 Verify that for a given client, the authorization server only allows the 'response_mode' value that …
---------+ V10.4.13 Verify that grant type 'code' is always used together with pushed authorization requests (PAR).
---------+ V10.4.14 Verify that the authorization server issues only sender-constrained (Proof-of-Possession) access …
---------+ V10.4.15 Verify that, for a server-side client (which is not executed on the end-user device), the …
---------+ V10.4.16 Verify that the client is confidential and the authorization server requires the use of strong …
------+ V10.5 OIDC Client
---------+ V10.5.1 Verify that the client (as the relying party) mitigates ID Token replay attacks. For example, by …
---------+ V10.5.2 Verify that the client uniquely identifies the user from ID Token claims, usually the 'sub' claim …
---------+ V10.5.3 Verify that the client rejects attempts by a malicious authorization server to impersonate another …
---------+ V10.5.4 Verify that the client validates that the ID Token is intended to be used for that client …
---------+ V10.5.5 Verify that, when using OIDC back-channel logout, the relying party mitigates denial of service …
------+ V10.6 OpenID Provider
---------+ V10.6.1 Verify that the OpenID Provider only allows values 'code', 'ciba', 'id_token', or 'id_token code' …
---------+ V10.6.2 Verify that the OpenID Provider mitigates denial of service through forced logout. By obtaining …
------+ V10.7 Consent Management
---------+ V10.7.1 Verify that the authorization server ensures that the user consents to each authorization request. …
---------+ V10.7.2 Verify that when the authorization server prompts for user consent, it presents sufficient and …
---------+ V10.7.3 Verify that the user can review, modify, and revoke consents which the user has granted through the …
---+ V11 Cryptography
------+ V11.1 Cryptographic Inventory and Documentation
---------+ V11.1.1 Verify that there is a documented policy for management of cryptographic keys and a cryptographic …
---------+ V11.1.2 Verify that a cryptographic inventory is performed, maintained, regularly updated, and includes all …
---------+ V11.1.3 Verify that cryptographic discovery mechanisms are employed to identify all instances of …
---------+ V11.1.4 Verify that a cryptographic inventory is maintained. This must include a documented plan that …
------+ V11.2 Secure Cryptography Implementation
---------+ V11.2.1 Verify that industry-validated implementations (including libraries and hardware-accelerated …
---------+ V11.2.2 Verify that the application is designed with crypto agility such that random number, authenticated …
---------+ V11.2.3 Verify that all cryptographic primitives utilize a minimum of 128-bits of security based on the …
---------+ V11.2.4 Verify that all cryptographic operations are constant-time, with no 'short-circuit' operations in …
---------+ V11.2.5 Verify that all cryptographic modules fail securely, and errors are handled in a way that does not …
------+ V11.3 Encryption Algorithms
---------+ V11.3.1 Verify that insecure block modes (e.g., ECB) and weak padding schemes (e.g., PKCS#1 v1.5) are not …
---------+ V11.3.2 Verify that only approved ciphers and modes such as AES with GCM are used.
---------+ V11.3.3 Verify that encrypted data is protected against unauthorized modification preferably by using an …
---------+ V11.3.4 Verify that nonces, initialization vectors, and other single-use numbers are not used for more than …
---------+ V11.3.5 Verify that any combination of an encryption algorithm and a MAC algorithm is operating in …
------+ V11.4 Hashing and Hash-based Functions
---------+ V11.4.1 Verify that only approved hash functions are used for general cryptographic use cases, including …
---------+ V11.4.2 Verify that passwords are stored using an approved, computationally intensive, key derivation …
---------+ V11.4.3 Verify that hash functions used in digital signatures, as part of data authentication or data …
---------+ V11.4.4 Verify that the application uses approved key derivation functions with key stretching parameters …
------+ V11.5 Random Values
---------+ V11.5.1 Verify that all random numbers and strings which are intended to be non-guessable must be generated …
---------+ V11.5.2 Verify that the random number generation mechanism in use is designed to work securely, even under …
------+ V11.6 Public Key Cryptography
---------+ V11.6.1 Verify that only approved cryptographic algorithms and modes of operation are used for key …
---------+ V11.6.2 Verify that approved cryptographic algorithms are used for key exchange (such as Diffie-Hellman) …
------+ V11.7 In-Use Data Cryptography
---------+ V11.7.1 Verify that full memory encryption is in use that protects sensitive data while it is in use …
---------+ V11.7.2 Verify that data minimization ensures the minimal amount of data is exposed during processing, and …
---+ V12 Secure Communication
------+ V12.1 General TLS Security Guidance
---------+ V12.1.1 Verify that only the latest recommended versions of the TLS protocol are enabled, such as TLS 1.2 …
---------+ V12.1.2 Verify that only recommended cipher suites are enabled, with the strongest cipher suites set as …
---------+ V12.1.3 Verify that the application validates that mTLS client certificates are trusted before using the …
---------+ V12.1.4 Verify that proper certification revocation, such as Online Certificate Status Protocol (OCSP) …
---------+ V12.1.5 Verify that Encrypted Client Hello (ECH) is enabled in the application's TLS settings to prevent …
------+ V12.2 HTTPS Communication with External Facing Services
---------+ V12.2.1 Verify that TLS is used for all connectivity between a client and external facing, HTTP-based …
---------+ V12.2.2 Verify that external facing services use publicly trusted TLS certificates.
------+ V12.3 General Service to Service Communication Security
---------+ V12.3.1 Verify that an encrypted protocol such as TLS is used for all inbound and outbound connections to …
---------+ V12.3.2 Verify that TLS clients validate certificates received before communicating with a TLS server.
---------+ V12.3.3 Verify that TLS or another appropriate transport encryption mechanism used for all connectivity …
---------+ V12.3.4 Verify that TLS connections between internal services use trusted certificates. Where internally …
---------+ V12.3.5 Verify that services communicating internally within a system (intra-service communications) use …
---+ V13 Configuration
------+ V13.1 Configuration Documentation
---------+ V13.1.1 Verify that all communication needs for the application are documented. This must include external …
---------+ V13.1.2 Verify that for each service the application uses, the documentation defines the maximum number of …
---------+ V13.1.3 Verify that the application documentation defines resource‑management strategies for every external …
---------+ V13.1.4 Verify that the application's documentation defines the secrets that are critical for the security …
------+ V13.2 Backend Communication Configuration
---------+ V13.2.1 Verify that communications between backend application components that don't support the …
---------+ V13.2.2 Verify that communications between backend application components, including local or operating …
---------+ V13.2.3 Verify that if a credential has to be used for service authentication, the credential being used by …
---------+ V13.2.4 Verify that an allowlist is used to define the external resources or systems with which the …
---------+ V13.2.5 Verify that the web or application server is configured with an allowlist of resources or systems …
---------+ V13.2.6 Verify that where the application connects to separate services, it follows the documented …
------+ V13.3 Secret Management
---------+ V13.3.1 Verify that a secrets management solution, such as a key vault, is used to securely create, store …
---------+ V13.3.2 Verify that access to secret assets adheres to the principle of least privilege.
---------+ V13.3.3 Verify that all cryptographic operations are performed using an isolated security module (such as a …
---------+ V13.3.4 Verify that secrets are configured to expire and be rotated based on the application's …
------+ V13.4 Unintended Information Leakage
---------+ V13.4.1 Verify that the application is deployed either without any source control metadata, including the …
---------+ V13.4.2 Verify that debug modes are disabled for all components in production environments to prevent …
---------+ V13.4.3 Verify that web servers do not expose directory listings to clients unless explicitly intended.
---------+ V13.4.4 Verify that using the HTTP TRACE method is not supported in production environments, to avoid …
---------+ V13.4.5 Verify that documentation (such as for internal APIs) and monitoring endpoints are not exposed …
---------+ V13.4.6 Verify that the application does not expose detailed version information of backend components.
---------+ V13.4.7 Verify that the web tier is configured to only serve files with specific file extensions to prevent …
---+ V14 Data Protection
------+ V14.1 Data Protection Documentation
---------+ V14.1.1 Verify that all sensitive data created and processed by the application has been identified and …
---------+ V14.1.2 Verify that all sensitive data protection levels have a documented set of protection requirements. …
------+ V14.2 General Data Protection
---------+ V14.2.1 Verify that sensitive data is only sent to the server in the HTTP message body or header fields …
---------+ V14.2.2 Verify that the application prevents sensitive data from being cached in server components, such as …
---------+ V14.2.3 Verify that defined sensitive data is not sent to untrusted parties (e.g., user trackers) to …
---------+ V14.2.4 Verify that controls around sensitive data related to encryption, integrity verification …
---------+ V14.2.5 Verify that caching mechanisms are configured to only cache responses which have the expected …
---------+ V14.2.6 Verify that the application only returns the minimum required sensitive data for the application's …
---------+ V14.2.7 Verify that sensitive information is subject to data retention classification, ensuring that …
---------+ V14.2.8 Verify that sensitive information is removed from the metadata of user-submitted files unless …
------+ V14.3 Client-side Data Protection
---------+ V14.3.1 Verify that authenticated data is cleared from client storage, such as the browser DOM, after the …
---------+ V14.3.2 Verify that the application sets sufficient anti-caching HTTP response header fields (i.e. …
---------+ V14.3.3 Verify that data stored in browser storage (such as localStorage, sessionStorage, IndexedDB, or …
---+ V15 Secure Coding and Architecture
------+ V15.1 Secure Coding and Architecture Documentation
---------+ V15.1.1 Verify that application documentation defines risk based remediation time frames for 3rd party …
---------+ V15.1.2 Verify that an inventory catalog, such as software bill of materials (SBOM), is maintained of all …
---------+ V15.1.3 Verify that the application documentation identifies functionality which is time-consuming or …
---------+ V15.1.4 Verify that application documentation highlights third-party libraries which are considered to be …
---------+ V15.1.5 Verify that application documentation highlights parts of the application where "dangerous …
------+ V15.2 Security Architecture and Dependencies
---------+ V15.2.1 Verify that the application only contains components which have not breached the documented update …
---------+ V15.2.2 Verify that the application has implemented defenses against loss of availability due to …
---------+ V15.2.3 Verify that the production environment only includes functionality that is required for the …
---------+ V15.2.4 Verify that third-party components and all of their transitive dependencies are included from the …
---------+ V15.2.5 Verify that the application implements additional protections around parts of the application which …
------+ V15.3 Defensive Coding
---------+ V15.3.1 Verify that the application only returns the required subset of fields from a data object. For …
---------+ V15.3.2 Verify that where the application backend makes calls to external URLs, it is configured to not …
---------+ V15.3.3 Verify that the application has countermeasures to protect against mass assignment attacks by …
---------+ V15.3.4 Verify that all proxying and middleware components transfer the user's original IP address …
---------+ V15.3.5 Verify that the application explicitly ensures that variables are of the correct type and performs …
---------+ V15.3.6 Verify that JavaScript code is written in a way that prevents prototype pollution, for example, by …
---------+ V15.3.7 Verify that the application has defenses against HTTP parameter pollution attacks, particularly if …
------+ V15.4 Safe Concurrency
---------+ V15.4.1 Verify that shared objects in multi-threaded code (such as caches, files, or in-memory objects …
---------+ V15.4.2 Verify that checks on a resource's state, such as its existence or permissions, and the actions …
---------+ V15.4.3 Verify that locks are used consistently to avoid threads getting stuck, whether by waiting on each …
---------+ V15.4.4 Verify that resource allocation policies prevent thread starvation by ensuring fair access to …
---+ V16 Security Logging and Error Handling
------+ V16.1 Security Logging Documentation
---------+ V16.1.1 Verify that an inventory exists documenting the logging performed at each layer of the …
------+ V16.2 General Logging
---------+ V16.2.1 Verify that each log entry includes necessary metadata (such as when, where, who, what) that would …
---------+ V16.2.2 Verify that time sources for all logging components are synchronized, and that timestamps in …
---------+ V16.2.3 Verify that the application only stores or broadcasts logs to the files and services that are …
---------+ V16.2.4 Verify that logs can be read and correlated by the log processor that is in use, preferably by …
---------+ V16.2.5 Verify that when logging sensitive data, the application enforces logging based on the data's …
------+ V16.3 Security Events
---------+ V16.3.1 Verify that all authentication operations are logged, including successful and unsuccessful …
---------+ V16.3.2 Verify that failed authorization attempts are logged. For L3, this must include logging all …
---------+ V16.3.3 Verify that the application logs the security events that are defined in the documentation and also …
---------+ V16.3.4 Verify that the application logs unexpected errors and security control failures such as backend …
------+ V16.4 Log Protection
---------+ V16.4.1 Verify that all logging components appropriately encode data to prevent log injection.
---------+ V16.4.2 Verify that logs are protected from unauthorized access and cannot be modified.
---------+ V16.4.3 Verify that logs are securely transmitted to a logically separate system for analysis, detection …
------+ V16.5 Error Handling
---------+ V16.5.1 Verify that a generic message is returned to the consumer when an unexpected or security-sensitive …
---------+ V16.5.2 Verify that the application continues to operate securely when external resource access fails, for …
---------+ V16.5.3 Verify that the application fails gracefully and securely, including when an exception occurs …
---------+ V16.5.4 Verify that a "last resort" error handler is defined which will catch all unhandled exceptions. …
---+ V17 WebRTC
------+ V17.1 TURN Server
---------+ V17.1.1 Verify that the Traversal Using Relays around NAT (TURN) service only allows access to IP addresses …
---------+ V17.1.2 Verify that the Traversal Using Relays around NAT (TURN) service is not susceptible to resource …
------+ V17.2 Media
---------+ V17.2.1 Verify that the key for the Datagram Transport Layer Security (DTLS) certificate is managed and …
---------+ V17.2.2 Verify that the media server is configured to use and support approved Datagram Transport Layer …
---------+ V17.2.3 Verify that Secure Real-time Transport Protocol (SRTP) authentication is checked at the media …
---------+ V17.2.4 Verify that the media server is able to continue processing incoming media traffic when …
---------+ V17.2.5 Verify that the media server is able to continue processing incoming media traffic during a flood …
---------+ V17.2.6 Verify that the media server is not susceptible to the "ClientHello" Race Condition vulnerability …
---------+ V17.2.7 Verify that any audio or video recording mechanisms associated with the media server are able to …
---------+ V17.2.8 Verify that the Datagram Transport Layer Security (DTLS) certificate is checked against the Session …
------+ V17.3 Signaling
---------+ V17.3.1 Verify that the signaling server is able to continue processing legitimate incoming signaling …
---------+ V17.3.2 Verify that the signaling server is able to continue processing legitimate signaling messages when …

OWASP Mobile Application Security Testing Guide (MASTG) v2.0.0

Kwistjonijiet
Titlu Sors
+ OWASP Mobile Application Security Testing Guide (MASTG) v2.0.0
---+ Tests
------+ MASVS-STORAGE Storage
---------+ MASTG-TEST-0200 Files Written to External Storage (Android)
---------+ MASTG-TEST-0201 Runtime Use of APIs to Access External Storage (Android)
---------+ MASTG-TEST-0202 References to APIs and Permissions for Accessing External Storage (Android)
---------+ MASTG-TEST-0203 Runtime Use of Logging APIs (Android)
---------+ MASTG-TEST-0207 Runtime Storage of Unencrypted Data in the App Sandbox (Android)
---------+ MASTG-TEST-0215 Sensitive Data Not Marked For Backup Exclusion (iOS)
---------+ MASTG-TEST-0216 Sensitive Data Not Excluded From Backup (Android)
---------+ MASTG-TEST-0231 References to Logging APIs (Android)
---------+ MASTG-TEST-0262 References to Backup Configurations Not Excluding Sensitive Data (Android)
---------+ MASTG-TEST-0287 Runtime Storage of Unencrypted Data via the SharedPreferences API (Android)
---------+ MASTG-TEST-0296 Sensitive Data Exposure in Logs (iOS)
---------+ MASTG-TEST-0297 Sensitive Data Exposure Through Logging APIs (iOS)
---------+ MASTG-TEST-0298 Runtime Monitoring of Files Eligible for Backup (iOS)
---------+ MASTG-TEST-0299 Data Protection Classes for Files in Private Storage (iOS)
---------+ MASTG-TEST-0300 References to APIs for Storing Unencrypted Data in Private Storage (iOS)
---------+ MASTG-TEST-0301 Runtime Use of APIs for Storing Unencrypted Data in Private Storage (iOS)
---------+ MASTG-TEST-0302 Sensitive Data Unencrypted in Private Storage Files (iOS)
---------+ MASTG-TEST-0303 References to APIs for Storing Unencrypted Data in Shared Storage (iOS)
---------+ MASTG-TEST-0313 References to APIs for Preventing Keyboard Caching of Text Fields (iOS)
---------+ MASTG-TEST-0314 Runtime Monitoring of Text Fields Eligible for Keyboard Caching (iOS)
---------+ MASTG-TEST-0388 References to Sensitive Data Stored Unprotected in Shared App Group Containers (iOS)
------+ MASVS-CRYPTO Cryptography
---------+ MASTG-TEST-0204 Insecure Random API Usage (Android)
---------+ MASTG-TEST-0205 Non-random Sources Usage (Android)
---------+ MASTG-TEST-0208 Insufficient Key Sizes (Android)
---------+ MASTG-TEST-0209 Insufficient Key Sizes (iOS)
---------+ MASTG-TEST-0210 Broken Symmetric Encryption Algorithms (iOS)
---------+ MASTG-TEST-0211 Broken Hashing Algorithms (iOS)
---------+ MASTG-TEST-0212 Use of Hardcoded Cryptographic Keys in Code (Android)
---------+ MASTG-TEST-0213 Use of Hardcoded Cryptographic Keys in Code (iOS)
---------+ MASTG-TEST-0214 Hardcoded Cryptographic Keys in Files (iOS)
---------+ MASTG-TEST-0221 Broken Symmetric Encryption Algorithms (Android)
---------+ MASTG-TEST-0232 Broken Symmetric Encryption Modes (Android)
---------+ MASTG-TEST-0307 References to Asymmetric Key Pairs Used For Multiple Purposes (Android)
---------+ MASTG-TEST-0308 Runtime Use of Asymmetric Key Pairs Used For Multiple Purposes (Android)
---------+ MASTG-TEST-0311 Insecure Random API Usage (iOS)
---------+ MASTG-TEST-0312 References to Explicit Security Provider in Cryptographic APIs (Android)
---------+ MASTG-TEST-0317 Broken Symmetric Encryption Modes (iOS)
---------+ MASTG-TEST-0349 Runtime Use of Insecure Random APIs (iOS)
---------+ MASTG-TEST-0350 Runtime Use of Broken Symmetric Encryption Modes (Android)
------+ MASVS-AUTH Authentication and Authorization
---------+ MASTG-TEST-0266 References to APIs for Event-Bound Biometric Authentication (iOS)
---------+ MASTG-TEST-0267 Runtime Use Of Event-Bound Biometric Authentication (iOS)
---------+ MASTG-TEST-0268 References to APIs Allowing Fallback to Non-Biometric Authentication (iOS)
---------+ MASTG-TEST-0269 Runtime Use Of APIs Allowing Fallback to Non-Biometric Authentication (iOS)
---------+ MASTG-TEST-0270 References to APIs Detecting Biometric Enrollment Changes (iOS)
---------+ MASTG-TEST-0271 Runtime Use Of APIs Detecting Biometric Enrollment Changes (iOS)
---------+ MASTG-TEST-0326 References to APIs Allowing Fallback to Non-Biometric Authentication (Android)
---------+ MASTG-TEST-0327 References to APIs for Event-Bound Biometric Authentication (Android)
---------+ MASTG-TEST-0328 References to APIs Detecting Biometric Enrollment Changes (Android)
---------+ MASTG-TEST-0329 References to APIs Enforcing Authentication without Explicit User Action (Android)
---------+ MASTG-TEST-0330 References to APIs for Keys used in Biometric Authentication with Extended Validity Duration (Android)
------+ MASVS-NETWORK Network Communication
---------+ MASTG-TEST-0217 Insecure TLS Protocols Explicitly Allowed in Code (Android)
---------+ MASTG-TEST-0218 Insecure TLS Protocols in Network Traffic (Android)
---------+ MASTG-TEST-0233 Hardcoded HTTP URLs (Android)
---------+ MASTG-TEST-0234 Missing Implementation of Server Hostname Verification with SSLSockets (Android)
---------+ MASTG-TEST-0235 Android App Configurations Allowing Cleartext Traffic (Android)
---------+ MASTG-TEST-0236 Cleartext Traffic Observed on the Network (Network)
---------+ MASTG-TEST-0242 Missing Certificate Pinning in Network Security Configuration (Android)
---------+ MASTG-TEST-0243 Expired Certificate Pins in the Network Security Configuration (Android)
---------+ MASTG-TEST-0244 Missing Certificate Pinning in Network Traffic (Network)
---------+ MASTG-TEST-0282 Unsafe Custom Trust Evaluation (Android)
---------+ MASTG-TEST-0283 Incorrect Implementation of Server Hostname Verification (Android)
---------+ MASTG-TEST-0284 Incorrect SSL Error Handling in WebViews (Android)
---------+ MASTG-TEST-0286 Network Security Configuration Allowing Trust in User-Provided CAs (Android)
---------+ MASTG-TEST-0295 GMS Security Provider Not Updated (Android)
---------+ MASTG-TEST-0321 Hardcoded HTTP URLs (iOS)
---------+ MASTG-TEST-0322 App Transport Security Configurations Allowing Cleartext Traffic (iOS)
---------+ MASTG-TEST-0323 Uses of Low-Level Networking APIs for Cleartext Traffic (iOS)
---------+ MASTG-TEST-0342 References to Weak ATS TLS Policy Exceptions in Info.plist (iOS)
---------+ MASTG-TEST-0343 URLSession TLS Protocol Configuration (iOS)
---------+ MASTG-TEST-0344 Network.framework TLS Protocol Configuration (iOS)
---------+ MASTG-TEST-0345 Embedded or Third-party TLS Stack Configuration (iOS)
---------+ MASTG-TEST-0348 Insecure TLS Protocols in Network Traffic (iOS)
---------+ MASTG-TEST-0385 Missing Certificate Pinning in ATS (iOS)
---------+ MASTG-TEST-0396 References to URLSessionDelegate Bypassing Certificate Validation (iOS)
---------+ MASTG-TEST-0397 References to WKNavigationDelegate Bypassing Certificate Validation (iOS)
------+ MASVS-PLATFORM Platform Interaction
---------+ MASTG-TEST-0250 References to Content Provider Access in WebViews (Android)
---------+ MASTG-TEST-0251 Runtime Use of Content Provider Access APIs in WebViews (Android)
---------+ MASTG-TEST-0252 References to Local File Access in WebViews (Android)
---------+ MASTG-TEST-0253 Runtime Use of Local File Access APIs in WebViews (Android)
---------+ MASTG-TEST-0258 References to Keyboard Caching Attributes in UI Elements (Android)
---------+ MASTG-TEST-0276 Use of the iOS General Pasteboard (iOS)
---------+ MASTG-TEST-0277 Sensitive Data in the iOS General Pasteboard at Runtime (iOS)
---------+ MASTG-TEST-0278 Pasteboard Contents Not Cleared After Use (iOS)
---------+ MASTG-TEST-0279 Pasteboard Contents Not Expiring (iOS)
---------+ MASTG-TEST-0280 Pasteboard Contents Not Restricted to Local Device (iOS)
---------+ MASTG-TEST-0289 Runtime Verification of Sensitive Content Exposure in Screenshots During App Backgrounding (Android)
---------+ MASTG-TEST-0290 Runtime Verification of Sensitive Content Exposure in Screenshots During App Backgrounding (iOS)
---------+ MASTG-TEST-0291 References to Screen Capturing Prevention APIs (Android)
---------+ MASTG-TEST-0315 Sensitive Data Exposed via Notifications (Android)
---------+ MASTG-TEST-0316 App Exposing User Authentication Data in Text Input Fields (Android)
---------+ MASTG-TEST-0320 WebViews Not Cleaning Up Sensitive Data (Android)
---------+ MASTG-TEST-0332 Attacker-Controlled URI in WebViews (iOS)
---------+ MASTG-TEST-0333 Overly Broad File Read Access in WebViews (iOS)
---------+ MASTG-TEST-0334 Native Code Exposed Through WebViews (Android)
---------+ MASTG-TEST-0335 WebView File Origin Access Relaxed by Configuration (iOS)
---------+ MASTG-TEST-0336 Runtime Setting of Relaxed WebView File Origin Policies (iOS)
---------+ MASTG-TEST-0340 References to Overlay Attack Protections (Android)
---------+ MASTG-TEST-0346 References to APIs Hiding Sensitive Data in Text Input Fields (iOS)
---------+ MASTG-TEST-0347 Runtime Use of APIs Hiding Sensitive Data in Text Input Fields (iOS)
---------+ MASTG-TEST-0355 References to Unauthorized Database Access through Content Providers (Android)
---------+ MASTG-TEST-0356 Runtime Verification of Unauthorized Database Access through Content Providers (Android)
---------+ MASTG-TEST-0357 References to Oversharing of File-Based Content Providers (Android)
---------+ MASTG-TEST-0364 Exported And Unprotected Activities That Expose Sensitive Functionality (Android)
---------+ MASTG-TEST-0365 Exported And Unprotected Services That Expose Sensitive Functionality (Android)
---------+ MASTG-TEST-0366 Exported And Unprotected Broadcast Receivers That Expose Sensitive Functionality (Android)
---------+ MASTG-TEST-0370 Missing Input Validation in Custom URL Scheme Handlers (iOS)
---------+ MASTG-TEST-0371 Missing Source Validation in Custom URL Scheme Handlers (iOS)
---------+ MASTG-TEST-0376 References to Native Bridge APIs in WebViews (iOS)
---------+ MASTG-TEST-0377 References to `evaluateJavaScript` Used as Bridge Reply in `WKScriptMessageHandler` (iOS)
---------+ MASTG-TEST-0378 References to Password Fields in WebView-Loaded HTML (iOS)
---------+ MASTG-TEST-0379 References to `evaluateJavaScript` Without Content World Isolation (iOS)
---------+ MASTG-TEST-0380 References to `evaluateJavaScript` Writing Sensitive Data into WebView DOM (iOS)
---------+ MASTG-TEST-0381 References to Insecure PendingIntent Creation (Android)
---------+ MASTG-TEST-0389 References to the App-Wide Restriction of Custom Keyboards (iOS)
---------+ MASTG-TEST-0390 Full Access Requested by a Custom Keyboard Extension (iOS)
---------+ MASTG-TEST-0393 Use of Unverified App Links (Android)
---------+ MASTG-TEST-0394 Missing Input Validation in Custom URL Scheme Handlers (Android)
---------+ MASTG-TEST-0395 Missing Input Validation in Universal Link Handlers (iOS)
------+ MASVS-CODE Code Quality
---------+ MASTG-TEST-0223 Stack Canaries Not Enabled (Android)
---------+ MASTG-TEST-0228 Position Independent Code (PIC) not Enabled (iOS)
---------+ MASTG-TEST-0229 Stack Canaries Not enabled (iOS)
---------+ MASTG-TEST-0230 Automatic Reference Counting (ARC) not enabled (iOS)
---------+ MASTG-TEST-0245 References to Platform Version APIs (Android)
---------+ MASTG-TEST-0272 Identify Dependencies with Known Vulnerabilities in the Android Project (Android)
---------+ MASTG-TEST-0273 Identify Dependencies with Known Vulnerabilities by Scanning Dependency Managers Artifacts (iOS)
---------+ MASTG-TEST-0274 Dependencies with Known Vulnerabilities in the App's SBOM (Android)
---------+ MASTG-TEST-0275 Dependencies with Known Vulnerabilities in the App's SBOM (iOS)
---------+ MASTG-TEST-0337 References to Object Deserialization of Untrusted Data (Android)
---------+ MASTG-TEST-0339 SQL Injection in Content Providers (Android)
---------+ MASTG-TEST-0372 Implicit Intents Used for Internal App Communication (Android)
---------+ MASTG-TEST-0374 References to Implicit Intents Carrying Sensitive Extras (Android)
---------+ MASTG-TEST-0375 Missing Validation of Data Returned from Implicit Intents (Android)
---------+ MASTG-TEST-0382 Runtime Use of Enforced Updating APIs (Android)
---------+ MASTG-TEST-0383 References to Enforced Updating APIs (iOS)
---------+ MASTG-TEST-0384 Runtime Use of Enforced Updating APIs (iOS)
---------+ MASTG-TEST-0386 References to Object Deserialization of Untrusted Data (iOS)
---------+ MASTG-TEST-0392 References to Enforced Updating APIs (Android)
---------+ MASTG-TEST-0398 References to WebViewClient URL Loading Handlers (Android)
---------+ MASTG-TEST-0399 SafeBrowsing Disabled (Android)
---------+ MASTG-TEST-0400 Runtime Use of WebViewClient URL Loading Handlers (Android)
------+ MASVS-RESILIENCE Resilience Against Reverse Engineering and Tampering
---------+ MASTG-TEST-0219 Testing for Debugging Symbols (iOS)
---------+ MASTG-TEST-0220 Usage of Outdated Code Signature Format (iOS)
---------+ MASTG-TEST-0224 Usage of Insecure APK Signature Version (Android)
---------+ MASTG-TEST-0225 Usage of Insecure APK Signature Key Size (Android)
---------+ MASTG-TEST-0226 Debuggable Flag Enabled in the AndroidManifest (Android)
---------+ MASTG-TEST-0227 Debugging Enabled for WebViews (Android)
---------+ MASTG-TEST-0240 Jailbreak Detection in Code (iOS)
---------+ MASTG-TEST-0241 Runtime Use of Jailbreak Detection Techniques (iOS)
---------+ MASTG-TEST-0246 Runtime Use of Secure Screen Lock Detection APIs (iOS)
---------+ MASTG-TEST-0247 References to APIs for Detecting Secure Screen Lock (Android)
---------+ MASTG-TEST-0248 References to APIs for Detecting Secure Screen Lock (iOS)
---------+ MASTG-TEST-0249 Runtime Use of Secure Screen Lock Detection APIs (Android)
---------+ MASTG-TEST-0261 Debuggable Entitlement Enabled in the entitlements.plist (iOS)
---------+ MASTG-TEST-0263 Logging of StrictMode Violations (Android)
---------+ MASTG-TEST-0264 Runtime Use of StrictMode APIs (Android)
---------+ MASTG-TEST-0265 References to StrictMode APIs (Android)
---------+ MASTG-TEST-0288 Debugging Symbols in Native Binaries (Android)
---------+ MASTG-TEST-0324 References to Root Detection Mechanisms (Android)
---------+ MASTG-TEST-0325 Runtime Use of Root Detection Techniques (Android)
---------+ MASTG-TEST-0338 References to Storage Integrity Check APIs (Android)
---------+ MASTG-TEST-0341 Runtime Use of Hook Detection Techniques (Android)
---------+ MASTG-TEST-0351 Runtime Use of Emulator Detection Techniques (Android)
---------+ MASTG-TEST-0352 References to Debugging Detection APIs (Android)
---------+ MASTG-TEST-0353 Runtime Use of Debugging Detection APIs (Android)
---------+ MASTG-TEST-0354 Runtime Use of Hook Detection Techniques (iOS)
---------+ MASTG-TEST-0358 Implementation Details Exposure Through Logging APIs (iOS)
---------+ MASTG-TEST-0359 Implementation Details Exposure in Logs (iOS)
---------+ MASTG-TEST-0367 Runtime Use of Virtual Device Detection Techniques (iOS)
---------+ MASTG-TEST-0368 Insufficient Obfuscation of Security-Relevant Java/Kotlin Code (Android)
---------+ MASTG-TEST-0369 Insufficient Obfuscation of Security-Relevant Native Code (Android)
---------+ MASTG-TEST-0387 References to Storage Integrity Check APIs (iOS)
---------+ MASTG-TEST-0391 Insufficient Obfuscation of Security-Relevant Native Code (iOS)
---------+ MASTG-TEST-0401 References to Debugging Detection APIs (iOS)
---------+ MASTG-TEST-0402 Runtime Use of Debugging Detection APIs (iOS)
------+ MASVS-PRIVACY Privacy
---------+ MASTG-TEST-0206 Undeclared PII in Network Traffic Capture (Android)
---------+ MASTG-TEST-0254 Dangerous App Permissions (Android)
---------+ MASTG-TEST-0281 Undeclared Known Tracking Domains (iOS)
---------+ MASTG-TEST-0318 References to SDK APIs Known to Handle Sensitive User Data (Android)
---------+ MASTG-TEST-0319 Runtime Use of SDK APIs Known to Handle Sensitive User Data (Android)
---------+ MASTG-TEST-0360 Purpose String Accuracy for Reachable Protected Resource Access (iOS)
---------+ MASTG-TEST-0361 Runtime Use of Protected Resource APIs Without Accurate Purpose Strings (iOS)
---------+ MASTG-TEST-0362 Entitlements for Unjustified Capability Exposure (iOS)
---------+ MASTG-TEST-0363 Runtime Use of Entitlement-Backed APIs for Unjustified Capability Exposure (iOS)
---+ Best Practices
------+ MASTG-BEST-0001 Use Secure Random Number Generator APIs (Android)
------+ MASTG-BEST-0002 Remove Logging Code (Android)
------+ MASTG-BEST-0003 Comply with Privacy Regulations and Best Practices (Android)
------+ MASTG-BEST-0004 Exclude Sensitive Data from Backups (Android)
------+ MASTG-BEST-0005 Use Secure Encryption Modes (Android)
------+ MASTG-BEST-0006 Use Up-to-Date APK Signing Schemes (Android)
------+ MASTG-BEST-0007 Debuggable Flag Disabled in the AndroidManifest (Android)
------+ MASTG-BEST-0008 Debugging Disabled for WebViews (Android)
------+ MASTG-BEST-0009 Use Secure Encryption Algorithms (Android)
------+ MASTG-BEST-0010 Use Up-to-Date minSdkVersion (Android)
------+ MASTG-BEST-0011 Securely Load File Content in a WebView (Android)
------+ MASTG-BEST-0012 Disable JavaScript in WebViews (Android)
------+ MASTG-BEST-0013 Disable Content Provider Access in WebViews (Android)
------+ MASTG-BEST-0014 Preventing Screenshots and Screen Recording (Android)
------+ MASTG-BEST-0020 Update the GMS Security Provider (Android)
------+ MASTG-BEST-0021 Ensure Proper Error and Exception Handling (Android)
------+ MASTG-BEST-0022 Disable Verbose and Debug Logging in Production Builds (iOS)
------+ MASTG-BEST-0023 Exclude Sensitive Information from Backups (iOS)
------+ MASTG-BEST-0024 Store Data Encrypted in App Sandbox Directory (iOS)
------+ MASTG-BEST-0025 Use Secure Random Number Generator APIs (iOS)
------+ MASTG-BEST-0028 WebViews Cache Cleanup (Android)
------+ MASTG-BEST-0030 Implementing Root Detection (Generic)
------+ MASTG-BEST-0031 Enforce Strong Biometrics for Sensitive Operations (Android)
------+ MASTG-BEST-0032 Migrate from UIWebView to WKWebView (iOS)
------+ MASTG-BEST-0033 Securely Load File Content in a WebView (iOS)
------+ MASTG-BEST-0034 Validate WebView Input (iOS)
------+ MASTG-BEST-0035 Prefer Origin Scoped Messaging Over Legacy JavaScript Bridges (Android)
------+ MASTG-BEST-0036 Use Cryptographic Binding for Biometric Authentication (Android)
------+ MASTG-BEST-0037 Invalidate Biometric Keys on Enrollment Changes (Android)
------+ MASTG-BEST-0038 Require Explicit User Confirmation for Biometric Authentication (Android)
------+ MASTG-BEST-0039 Prevent SQL Injection in ContentProviders (Android)
------+ MASTG-BEST-0040 Preventing Overlay Attacks (Android)
------+ MASTG-BEST-0041 Hardening Against Runtime Hooking (Android)
------+ MASTG-BEST-0042 Use Strong TLS Settings in ATS Configuration (iOS)
------+ MASTG-BEST-0043 Enforce Strong TLS Settings When ATS Doesn't Apply (iOS)
------+ MASTG-BEST-0044 Mask Sensitive Data in Text Input Fields (iOS)
------+ MASTG-BEST-0045 Limit Sensitive Data Exposure Through iOS IPC Channels (iOS)
------+ MASTG-BEST-0046 Hardening Against Emulation (Android)
------+ MASTG-BEST-0047 Continuous Anti-Debugging Checks (Android)
------+ MASTG-BEST-0048 Hardening Against Reverse Engineering Tools (iOS)
------+ MASTG-BEST-0049 Restrict and Validate Access to Exported Content Providers (Android)
------+ MASTG-BEST-0050 Store Data Encrypted in App Sandbox Directory (Android)
------+ MASTG-BEST-0051 Minimize iOS Permissions and Entitlements (iOS)
------+ MASTG-BEST-0052 Restrict Access to Android App Components (Android)
------+ MASTG-BEST-0053 Hardening Against Virtual Devices (iOS)
------+ MASTG-BEST-0054 Validate Input Parameters in Custom URL Scheme Handlers (iOS)
------+ MASTG-BEST-0055 Validate Source Application in Custom URL Scheme Handlers (iOS)
------+ MASTG-BEST-0056 Use Explicit Intents for Internal IPC (Android)
------+ MASTG-BEST-0057 Sanitize Data Coming from External Components (Android)
------+ MASTG-BEST-0058 Restrict Native Functionality Exposed Through WebView Bridges (iOS)
------+ MASTG-BEST-0059 Render Sensitive UI as Native Views Over the WebView (iOS)
------+ MASTG-BEST-0060 Use Native Views for Sensitive Text Entry Over a WebView (iOS)
------+ MASTG-BEST-0061 Use WKContentWorld Isolation for DOM Inspection Scripts (iOS)
------+ MASTG-BEST-0062 Use WKScriptMessageHandlerWithReply to Return Data to JavaScript (iOS)
------+ MASTG-BEST-0063 Use Immutable PendingIntents with Explicit Intents (Android)
------+ MASTG-BEST-0064 Use Safe APIs for Object Deserialization (iOS)
------+ MASTG-BEST-0065 Implementing Storage Integrity Checks on iOS (iOS)
------+ MASTG-BEST-0066 Implementing Storage Integrity Checks on Android (Android)
------+ MASTG-BEST-0067 Implementing Source Code Integrity Checks on iOS (iOS)
------+ MASTG-BEST-0068 Secure Data Sharing Between App Extensions and Containing Apps (iOS)
------+ MASTG-BEST-0069 Keep Sensitive Input on the System Keyboard (iOS)
------+ MASTG-BEST-0070 Verify Android App Links with autoVerify and Digital Asset Links (Android)
------+ MASTG-BEST-0071 Validate Input Parameters in Deep Link and Custom URL Scheme Handlers (Android)
------+ MASTG-BEST-0072 Validate Input Parameters in Universal Link Handlers (iOS)
------+ MASTG-BEST-0073 Properly Validate Server Trust in URLSessionDelegate and WKNavigationDelegate (iOS)
------+ MASTG-BEST-0074 Implementing Anti-Debugging Checks on iOS (iOS)

OWASP Mobile Application Security Verification Standard (MASVS) v2.1.0

Kwistjonijiet
Titlu Sors
+ OWASP Mobile Application Security Verification Standard (MASVS) v2.1.0
---+ MASVS-STORAGE Storage
------+ MASVS-STORAGE-1 The app securely stores sensitive data.
------+ MASVS-STORAGE-2 The app prevents leakage of sensitive data.
---+ MASVS-CRYPTO Cryptography
------+ MASVS-CRYPTO-1 The app employs current strong cryptography and uses it according to industry best practices.
------+ MASVS-CRYPTO-2 The app performs key management according to industry best practices.
---+ MASVS-AUTH Authentication and Authorization
------+ MASVS-AUTH-1 The app uses secure authentication and authorization protocols and follows the relevant best practices.
------+ MASVS-AUTH-2 The app performs local authentication securely according to the platform best practices.
------+ MASVS-AUTH-3 The app secures sensitive operations with additional authentication.
---+ MASVS-NETWORK Network Communication
------+ MASVS-NETWORK-1 The app secures all network traffic according to the current best practices.
------+ MASVS-NETWORK-2 The app performs identity pinning for all remote endpoints under the developer's control.
---+ MASVS-PLATFORM Platform Interaction
------+ MASVS-PLATFORM-1 The app uses IPC mechanisms securely.
------+ MASVS-PLATFORM-2 The app uses WebViews securely.
------+ MASVS-PLATFORM-3 The app uses the user interface securely.
---+ MASVS-CODE Code Quality
------+ MASVS-CODE-1 The app requires an up-to-date platform version.
------+ MASVS-CODE-2 The app has a mechanism for enforcing app updates.
------+ MASVS-CODE-3 The app only uses software components without known vulnerabilities.
------+ MASVS-CODE-4 The app validates and sanitizes all untrusted inputs.
---+ MASVS-RESILIENCE Resilience Against Reverse Engineering and Tampering
------+ MASVS-RESILIENCE-1 The app validates the integrity of the platform.
------+ MASVS-RESILIENCE-2 The app implements anti-tampering mechanisms.
------+ MASVS-RESILIENCE-3 The app implements anti-static analysis mechanisms.
------+ MASVS-RESILIENCE-4 The app implements anti-dynamic analysis techniques.
---+ MASVS-PRIVACY Privacy
------+ MASVS-PRIVACY-1 The app minimizes access to sensitive data and resources.
------+ MASVS-PRIVACY-2 The app prevents identification of the user.
------+ MASVS-PRIVACY-3 The app is transparent about data collection and usage.
------+ MASVS-PRIVACY-4 The app offers user control over their data.

OWASP Software Assurance Maturity Model (SAMM) v2.2.0

Kwistjonijiet
Titlu Sors
+ OWASP Software Assurance Maturity Model (SAMM) v2.2.0
---+ Governance
------+ G-SM Strategy and Metrics
---------+ G-SM-A Stream A: Create and Promote
------------+ G-SM-1-A Identify the organization's risk appetite
------------+ G-SM-2-A Define the security strategy
------------+ G-SM-3-A Align security and business strategies
---------+ G-SM-B Stream B: Measure and Improve
------------+ G-SM-1-B Define basic security metrics
------------+ G-SM-2-B Set strategic KPIs
------------+ G-SM-3-B Drive the security program through metrics
------+ G-PC Policy and Compliance
---------+ G-PC-A Stream A: Policy and Standards
------------+ G-PC-1-A Define policies and standards
------------+ G-PC-2-A Develop test procedures
------------+ G-PC-3-A Measure compliance to policies and standards
---------+ G-PC-B Stream B: Compliance Management
------------+ G-PC-1-B Identify compliance requirements
------------+ G-PC-2-B Standardize policy and compliance requirements
------------+ G-PC-3-B Measure compliance to external requirements
------+ G-EG Education and Guidance
---------+ G-EG-A Stream A: Training and Awareness
------------+ G-EG-1-A Train all stakeholders for awareness
------------+ G-EG-2-A Customize security training
------------+ G-EG-3-A Standardize security guidance
---------+ G-EG-B Stream B: Organization and Culture
------------+ G-EG-1-B Identify security champions
------------+ G-EG-2-B Implement centers of excellence
------------+ G-EG-3-B Establish a security community
---+ Design
------+ D-TA Threat Assessment
---------+ D-TA-A Stream A: Application Risk Profile
------------+ D-TA-1-A Perform application risk assessments
------------+ D-TA-2-A Inventory risk profiles
------------+ D-TA-3-A Periodic review of risk profiles
---------+ D-TA-B Stream B: Threat Modeling
------------+ D-TA-1-B Perform basic threat modeling
------------+ D-TA-2-B Standardize and scale threat modeling
------------+ D-TA-3-B Optimize threat modeling
------+ D-SR Security Requirements
---------+ D-SR-A Stream A: Software Requirements
------------+ D-SR-1-A Identify security requirements
------------+ D-SR-2-A Standardize and integrate security requirements
------------+ D-SR-3-A Develop a security requirements framework
---------+ D-SR-B Stream B: Supplier Security
------------+ D-SR-1-B Perform vendor assessments
------------+ D-SR-2-B Discuss security responsibilities with suppliers
------------+ D-SR-3-B Align security methodology with suppliers
------+ D-SA Secure Architecture
---------+ D-SA-A Stream A: Architecture Design
------------+ D-SA-1-A Adhere to basic security principles
------------+ D-SA-2-A Provide preferred security solutions
------------+ D-SA-3-A Build reference architectures
---------+ D-SA-B Stream B: Technology Management
------------+ D-SA-1-B Identify tools and technologies
------------+ D-SA-2-B Promote preferred tools and technologies
------------+ D-SA-3-B Enforce the use of recommended technologies
---+ Implementation
------+ I-SB Secure Build
---------+ I-SB-A Stream A: Build Process
------------+ I-SB-1-A Define a consistent build process
------------+ I-SB-2-A Automate the build process
------------+ I-SB-3-A Enforce a security baseline during build
---------+ I-SB-B Stream B: Software Dependencies
------------+ I-SB-1-B Identify application dependencies
------------+ I-SB-2-B Review application dependencies for security
------------+ I-SB-3-B Test application dependencies
------+ I-SD Secure Deployment
---------+ I-SD-A Stream A: Deployment Process
------------+ I-SD-1-A Use a repeatable deployment process
------------+ I-SD-2-A Automate deployment and integrate security checks
------------+ I-SD-3-A Verify the integrity of deployment artifacts
---------+ I-SD-B Stream B: Secret Management
------------+ I-SD-1-B Protect application secrets in configuration and code
------------+ I-SD-2-B Include application secrets during deployment
------------+ I-SD-3-B Enforce lifecycle management of application secrets
------+ I-DM Defect Management
---------+ I-DM-A Stream A: Defect Tracking
------------+ I-DM-1-A Track security defects centrally
------------+ I-DM-2-A Rate and track security defects
------------+ I-DM-3-A Enforce an SLA for defect management
---------+ I-DM-B Stream B: Metrics and Feedback
------------+ I-DM-1-B Define basic defect metrics
------------+ I-DM-2-B Define advanced defect metrics
------------+ I-DM-3-B Use metrics to improve the security strategy
---+ Verification
------+ V-AA Architecture Assessment
---------+ V-AA-A Stream A: Architecture Validation
------------+ V-AA-1-A Assess application architecture
------------+ V-AA-2-A Verify the application architecture for security methodically
------------+ V-AA-3-A Verify the effectiveness of security components
---------+ V-AA-B Stream B: Architecture Mitigation
------------+ V-AA-1-B Evaluate architecture for typical threats
------------+ V-AA-2-B Structurally verify the architecture for identified threats
------------+ V-AA-3-B Feed review results back to improve reference architectures
------+ V-RT Requirements-driven Testing
---------+ V-RT-A Stream A: Control Verification
------------+ V-RT-1-A Test the effectiveness of security controls
------------+ V-RT-2-A Define and run security test cases from requirements
------------+ V-RT-3-A Automate security requirements testing
---------+ V-RT-B Stream B: Misuse/Abuse Testing
------------+ V-RT-1-B Perform fuzz testing
------------+ V-RT-2-B Define and run security abuse cases from requirements
------------+ V-RT-3-B Perform security stress testing
------+ V-ST Security Testing
---------+ V-ST-A Stream A: Scalable Baseline
------------+ V-ST-1-A Perform automated security testing
------------+ V-ST-2-A Develop application-specific security test cases
------------+ V-ST-3-A Integrate security testing tools in the delivery pipeline
---------+ V-ST-B Stream B: Deep Understanding
------------+ V-ST-1-B Test high risk application components manually
------------+ V-ST-2-B Establish a penetration testing process
------------+ V-ST-3-B Establish continuous, scalable security verification
---+ Operations
------+ O-IM Incident Management
---------+ O-IM-A Stream A: Incident Detection
------------+ O-IM-1-A Use best-effort incident detection
------------+ O-IM-2-A Define an incident detection process
------------+ O-IM-3-A Improve the incident detection process
---------+ O-IM-B Stream B: Incident Response
------------+ O-IM-1-B Create an incident response plan
------------+ O-IM-2-B Define an incident response process
------------+ O-IM-3-B Establish an incident response team
------+ O-EM Environment Management
---------+ O-EM-A Stream A: Configuration Hardening
------------+ O-EM-1-A Use best-effort hardening
------------+ O-EM-2-A Establish hardening baselines
------------+ O-EM-3-A Perform continuous configuration monitoring
---------+ O-EM-B Stream B: Patching and Updating
------------+ O-EM-1-B Practice best-effort patching
------------+ O-EM-2-B Formalize patch management
------------+ O-EM-3-B Enforce timely patch management
------+ O-OM Operational Management
---------+ O-OM-A Stream A: Data Protection
------------+ O-OM-1-A Organize basic data protections
------------+ O-OM-2-A Establish a data catalog
------------+ O-OM-3-A Respond to data breaches
---------+ O-OM-B Stream B: System Decommissioning / Legacy Management
------------+ O-OM-1-B Identify unused applications
------------+ O-OM-2-B Formalize decommissioning process
------------+ O-OM-3-B Review application lifecycle state regularly
---+ SAMM Assessment Questions
------+ G-SM-1-A Do you understand the enterprise-wide risk appetite for your applications?
------+ G-SM-2-A Do you have a strategic plan for application security and use it to make decisions?
------+ G-SM-3-A Do you regularly review and update the Strategic Plan for Application Security?
------+ G-SM-1-B Do you use a set of metrics to measure the effectiveness and efficiency of the application security program across applications?
------+ G-SM-2-B Have you defined Key Performance Indicators (KPIs) from available application security metrics?
------+ G-SM-3-B Do you update the Application Security strategy and roadmap based on application security metrics and KPIs?
------+ G-PC-1-A Do you have and apply a common set of policies and standards throughout your organization?
------+ G-PC-2-A Do you publish the organization's policies as test scripts or run-books for easy interpretation by development teams?
------+ G-PC-3-A Do you regularly report on policy and standard compliance, and use that information to guide compliance improvement efforts?
------+ G-PC-1-B Do you have a complete picture of your external compliance obligations?
------+ G-PC-2-B Do you have a standard set of security requirements and verification procedures addressing the organization's external compliance obligations?
------+ G-PC-3-B Do you regularly report on adherence to external compliance obligations and use that information to guide efforts to close compliance gaps?
------+ G-EG-1-A Do you require employees involved with application development to take SDLC training?
------+ G-EG-2-A Is training customized for individual roles such as developers, testers, or security champions?
------+ G-EG-3-A Have you implemented a Learning Management System or equivalent to track employee training and certification processes?
------+ G-EG-1-B Have you identified a Security Champion for each development team?
------+ G-EG-2-B Does the organization have a Secure Software Center of Excellence (SSCE)?
------+ G-EG-3-B Is there a centralized portal where developers and application security professionals from different teams and business units are able to communicate and share information?
------+ D-TA-1-A Do you classify applications according to business risk based on a simple and predefined set of questions?
------+ D-TA-2-A Do you use centralized and quantified application risk profiles to evaluate business risk?
------+ D-TA-3-A Do you regularly review and update the risk profiles for your applications?
------+ D-TA-1-B Do you identify and manage architectural design flaws with threat modeling?
------+ D-TA-2-B Do you use a standard methodology, aligned with your application risk levels?
------+ D-TA-3-B Do you regularly review and update the threat modeling methodology for your applications?
------+ D-SR-1-A Do project teams specify security requirements during development?
------+ D-SR-2-A Do you define, structure, and include prioritization in the artifacts of the security requirements gathering process?
------+ D-SR-3-A Do you use a standard requirements framework to streamline the elicitation of security requirements?
------+ D-SR-1-B Do stakeholders review vendor collaborations for security requirements and methodology?
------+ D-SR-2-B Do vendors meet the security responsibilities and quality measures of service level agreements defined by the organization?
------+ D-SR-3-B Are vendors aligned with standard security controls and software development tools and processes that the organization utilizes?
------+ D-SA-1-A Do teams use security principles during design?
------+ D-SA-2-A Do you use shared security services during design?
------+ D-SA-3-A Do you base your design on available reference architectures?
------+ D-SA-1-B Do you evaluate the security quality of important technologies used for development?
------+ D-SA-2-B Do you have a list of recommended technologies for the organization?
------+ D-SA-3-B Do you enforce the use of recommended technologies within the organization?
------+ I-SB-1-A Is your full build process formally described?
------+ I-SB-2-A Is the build process fully automated?
------+ I-SB-3-A Do you enforce automated security checks in your build processes?
------+ I-SB-1-B Do you have solid knowledge of the dependencies you rely on?
------+ I-SB-2-B Do you handle third-party dependency risk through a formal process?
------+ I-SB-3-B Do you prevent the build of software if it is affected by vulnerabilities in dependencies?
------+ I-SD-1-A Do you use repeatable deployment processes?
------+ I-SD-2-A Are deployment processes automated and employing security checks?
------+ I-SD-3-A Do you consistently validate the integrity of deployed artifacts?
------+ I-SD-1-B Do you limit access to application secrets according to the least privilege principle?
------+ I-SD-2-B Do you inject production secrets into configuration files during deployment?
------+ I-SD-3-B Do you practice proper lifecycle management for application secrets?
------+ I-DM-1-A Do you track all known security defects in accessible locations?
------+ I-DM-2-A Do you keep an overview of the state of security defects across the organization?
------+ I-DM-3-A Do you enforce SLAs for fixing security defects?
------+ I-DM-1-B Do you use basic metrics about recorded security defects to carry out quick-win improvement activities?
------+ I-DM-2-B Do you improve your security assurance program upon standardized metrics?
------+ I-DM-3-B Do you regularly evaluate the effectiveness of your security metrics so that their input helps drive your security strategy?
------+ V-AA-1-A Do you review the application architecture for key security objectives on an ad-hoc basis?
------+ V-AA-2-A Do you regularly review the security mechanisms of your architecture?
------+ V-AA-3-A Do you regularly review the effectiveness of the security controls?
------+ V-AA-1-B Do you review the application architecture for mitigations of typical threats on an ad-hoc basis?
------+ V-AA-2-B Do you regularly evaluate the threats to your architecture?
------+ V-AA-3-B Do you regularly update your reference architectures based on architecture assessment findings?
------+ V-RT-1-A Do you test applications for the correct functioning of standard security controls?
------+ V-RT-2-A Do you consistently write and execute test scripts to verify the functionality of security requirements?
------+ V-RT-3-A Do you automatically test applications for security regressions?
------+ V-RT-1-B Do you test applications using randomization or fuzzing techniques?
------+ V-RT-2-B Do you create abuse cases from functional requirements and use them to drive security tests?
------+ V-RT-3-B Do you perform denial of service and security stress testing?
------+ V-ST-1-A Do you scan applications with automated security testing tools?
------+ V-ST-2-A Do you customize the automated security tools to your applications and technology stacks?
------+ V-ST-3-A Do you integrate automated security testing into the build and deploy process?
------+ V-ST-1-B Do you manually review the security quality of selected high-risk components?
------+ V-ST-2-B Do you perform penetration testing for your applications at regular intervals?
------+ V-ST-3-B Do you use the results of security testing to improve the development lifecycle?
------+ O-IM-1-A Do you analyze log data for security incidents periodically?
------+ O-IM-2-A Do you follow a documented process for incident detection?
------+ O-IM-3-A Do you review and update the incident detection process regularly?
------+ O-IM-1-B Do you respond to detected incidents?
------+ O-IM-2-B Do you use a repeatable process for incident handling?
------+ O-IM-3-B Do you have a dedicated incident response team available?
------+ O-EM-1-A Do you harden configurations for key components of your technology stacks?
------+ O-EM-2-A Do you have hardening baselines for your components?
------+ O-EM-3-A Do you monitor and enforce conformity with hardening baselines?
------+ O-EM-1-B Do you identify and patch vulnerable components?
------+ O-EM-2-B Do you follow an established process for updating components of your technology stacks?
------+ O-EM-3-B Do you regularly evaluate components and review patch level status?
------+ O-OM-1-A Do you protect and handle information according to protection requirements for data stored and processed on each application?
------+ O-OM-2-A Do you maintain a data catalog, including types, sensitivity levels, and processing and storage locations?
------+ O-OM-3-A Do you regularly review and update the data catalog and your data protection policies and procedures?
------+ O-OM-1-B Do you identify and remove systems, applications, application dependencies, or services that are no longer used, have reached end of life, or are no longer actively developed or supported?
------+ O-OM-2-B Do you follow an established process for removing all associated resources, as part of decommissioning of unused systems, applications, application dependencies, or services?
------+ O-OM-3-B Do you regularly evaluate the lifecycle state and support status of every software asset and underlying infrastructure component, and estimate their end of life?

OWASP Top 10:2025