My blog

Developing secure software: how to implement the OWASP top 10 Proactive Controls

It is a very simple protocol that allows a service-provider-initiated way for single sign-on (SSO). This allows the user to re-use a single identity given to a trusted OpenId identity provider and be the same user on multiple websites, without the need to provide any website with the password, except for the OpenId identity provider. Session Management is a process by which a server maintains the state of an entity interacting with it. This is required for a server to remember how to react to subsequent requests throughout a transaction.

owasp controls

In particular, web applications must thoroughly protect administrative interfaces that allow to manage all the current active sessions. Frequently these are used by support personnel to solve session related issues, or even general issues, by impersonating the user and looking at the web application as the user does. With the goal of detecting (and, in some scenarios, protecting against) user misbehaviors and session hijacking, it is highly recommended to bind the session ID to other user or client properties, such as the client IP address, User-Agent, or client-based digital certificate.

Session ID Life Cycle¶

As such, it’s important to stay up-to-date with the latest version of the standard and adapt security measures accordingly. Interested in reading more about SQL injection attacks and why it is a security risk? This category is a parent category used to track categories of controls (or countermeasure, security mechanisms). The session tokens should be handled by the web server if possible or generated via a cryptographically secure random number generator. The advantage of a Web Worker implementation compared to an HttpOnly cookie is that a Web Worker allows for some isolated JavaScript code to access the secret; an HttpOnly cookie is not accessible to any JavaScript. If the frontend JavaScript code requires access to the secret, the Web Worker implementation is the only browser storage option that preserves the secret confidentiality.

  • Web applications should provide mechanisms that allow security aware users to actively close their session once they have finished using the web application.
  • Threat modeling is one
    component of risk assessment that examines the threats, vulnerabilities and exposures of an application.
  • The session ID or token binds the user authentication credentials (in the form of a user session) to the user HTTP traffic and the appropriate access controls enforced by the web application.

If the application is intended to be used by an office worker for a full day, an appropriate absolute timeout range could be between 4 and 8 hours. SameSite defines a cookie attribute preventing browsers from sending a SameSite flagged cookie with cross-site requests. The main goal is to mitigate the risk of cross-origin information leakage, and provides some protection against cross-site request forgery attacks.

Live Hack: Exploiting AI-Generated Code

Open Authorization (OAuth) is a protocol that allows an application to authenticate against a server as a user, without requiring passwords or any third-party server that acts as an identity provider. It uses a token generated by the server and provides how the authorization flows most occur, so that a client, such as a mobile application, can tell the server what user is using the service. The OWASP MASVS assumes a certain level of security knowledge and expertise among developers and security professionals using the standard.

The absolute session limits the amount of time an attacker can use a hijacked session and impersonate the victim user. WHATWG suggests the use of localStorage for data that needs to be accessed across windows or tabs, across multiple sessions, and where large (multi-megabyte) volumes of data may need to be stored for performance reasons. The session ID must be unpredictable (random enough) to prevent guessing attacks, where an attacker is able to guess or predict the ID of a valid session through statistical analysis techniques. For this purpose, a good CSPRNG (Cryptographically Secure Pseudorandom Number Generator) must be used.

Authentication General Guidelines¶

It’s highly likely that access control requirements take shape throughout many layers of your application. For example, when pulling data from the database in a multi-tenant SaaS application, owasp controls where you need to ensure that data isn’t accidentally exposed for different users. Another example is the question of who is authorized to hit APIs that your web application provides.

  • The attacker can intercept and manipulate the victim user traffic and inject an HTTP unencrypted reference to the web application that will force the web browser to submit the session ID in the clear.
  • Preloaded apps are apps that are installed on a user’s device at factory time and may have elevated privileges that leave users vulnerable to exploitative business practices.
  • Failure to enforce least privileges in an application can jeopardize the confidentiality of sensitive resources.
  • Web applications should increase their logging capabilities by including information regarding the full life cycle of sessions.
  • The disclosure, capture, prediction, brute force, or fixation of the session ID will lead to session hijacking (or sidejacking) attacks, where an attacker is able to fully impersonate a victim user in the web application.






Leave a Reply

Your email address will not be published. Required fields are marked *