Podcast
Questions and Answers
Which of the following is the most crucial aspect of effective access control?
Which of the following is the most crucial aspect of effective access control?
- Frequent security audits of the network infrastructure.
- Enforcement in trusted server-side code or server-less API. (correct)
- Using client-side JavaScript for access control checks.
- Complex password policies for all users.
Access control failures can lead to unauthorized modification but not the destruction of data.
Access control failures can lead to unauthorized modification but not the destruction of data.
False (B)
What is the principle where access is granted only for particular capabilities, roles, or users, but is available to anyone?
What is the principle where access is granted only for particular capabilities, roles, or users, but is available to anyone?
Violation of the principle of least privilege or deny by default
Match the following attack techniques with their corresponding descriptions:
Match the following attack techniques with their corresponding descriptions:
Which of the following is NOT a common access control vulnerability?
Which of the following is NOT a common access control vulnerability?
Access control is less effective in server-side code where the attacker can modify the access control check.
Access control is less effective in server-side code where the attacker can modify the access control check.
What type of attack involves replaying or tampering with a JSON Web Token to elevate privileges?
What type of attack involves replaying or tampering with a JSON Web Token to elevate privileges?
Failing to invalidate stateful session identifiers after logout can lead to session __________
Failing to invalidate stateful session identifiers after logout can lead to session __________
What is the purpose of rate limiting API access?
What is the purpose of rate limiting API access?
Deny by default is not a recommended security practice.
Deny by default is not a recommended security practice.
What does CORS stand for, in the context of web application security?
What does CORS stand for, in the context of web application security?
Access control mechanisms should be implemented _________ and reused throughout the application.
Access control mechanisms should be implemented _________ and reused throughout the application.
What should access controls enforce regarding records?
What should access controls enforce regarding records?
Web server directory listing should always be enabled for easy access to files.
Web server directory listing should always be enabled for easy access to files.
What type of tokens should be short-lived to minimize the window of opportunity for an attacker?
What type of tokens should be short-lived to minimize the window of opportunity for an attacker?
Logging access control failures and alerting admins is important for __________ detection.
Logging access control failures and alerting admins is important for __________ detection.
Which of the following is an example of 'Force browsing' attack?
Which of the following is an example of 'Force browsing' attack?
Functional access control unit and integration tests should NOT be included by developers and QA staff.
Functional access control unit and integration tests should NOT be included by developers and QA staff.
What is the primary consequence of broken access control?
What is the primary consequence of broken access control?
Access control is most effective when implemented in client-side code.
Access control is most effective when implemented in client-side code.
What principle should be followed when granting access to resources, roles or users?
What principle should be followed when granting access to resources, roles or users?
Bypassing access control checks can be achieved by modifying the URL, internal application state, or the HTML page, which is also known as parameter __________ or force browsing.
Bypassing access control checks can be achieved by modifying the URL, internal application state, or the HTML page, which is also known as parameter __________ or force browsing.
Which of the following is an example of elevation of privilege?
Which of the following is an example of elevation of privilege?
Disabling web server directory listing helps prevent information exposure.
Disabling web server directory listing helps prevent information exposure.
What type of attack involves replaying or tampering with a JSON Web Token (JWT) to elevate privileges?
What type of attack involves replaying or tampering with a JSON Web Token (JWT) to elevate privileges?
What type of session identifiers should be invalidated after logout?
What type of session identifiers should be invalidated after logout?
The configuration that allows API access from unauthorized/untrusted origins is called __________ misconfiguration.
The configuration that allows API access from unauthorized/untrusted origins is called __________ misconfiguration.
Match the following access control vulnerabilities with their descriptions:
Match the following access control vulnerabilities with their descriptions:
Which of the following is a recommendation for preventing broken access control?
Which of the following is a recommendation for preventing broken access control?
What should domain models enforce regarding access controls?
What should domain models enforce regarding access controls?
For longer lived JWTs it's highly recommended to follow the __________ standards to revoke access.
For longer lived JWTs it's highly recommended to follow the __________ standards to revoke access.
Which of the options is a failure related to access control?
Which of the options is a failure related to access control?
Which of the following helps to minimize the harm from automated attack tooling?
Which of the following helps to minimize the harm from automated attack tooling?
What is the primary consequence of access control failures?
What is the primary consequence of access control failures?
What is the principle of least privilege?
What is the principle of least privilege?
Bypassing access control checks by modifying the URL is known as ______.
Bypassing access control checks by modifying the URL is known as ______.
Which of the following is a recommended method for preventing access control vulnerabilities?
Which of the following is a recommended method for preventing access control vulnerabilities?
Disabling web server directory listing helps prevent information disclosure.
Disabling web server directory listing helps prevent information disclosure.
What type of testing should developers include to test access controls?
What type of testing should developers include to test access controls?
Stateless JWT tokens should be ______ to minimize the window of opportunity for attackers.
Stateless JWT tokens should be ______ to minimize the window of opportunity for attackers.
In the context of JWTs, what does the OAuth standard recommend for longer-lived tokens?
In the context of JWTs, what does the OAuth standard recommend for longer-lived tokens?
Access control failures can lead to the violation of the principle of ______.
Access control failures can lead to the violation of the principle of ______.
What should access controls enforce regarding records within an application?
What should access controls enforce regarding records within an application?
What should happen to stateful session identifiers after a user logs out?
What should happen to stateful session identifiers after a user logs out?
Permitting viewing or editing of someone else's account by providing its unique identifier is an example of a secure direct object reference.
Permitting viewing or editing of someone else's account by providing its unique identifier is an example of a secure direct object reference.
Which attack involves replaying or tampering with a JSON Web Token (JWT) to elevate privileges?
Which attack involves replaying or tampering with a JSON Web Token (JWT) to elevate privileges?
Application business limit requirements should be enforced by ______.
Application business limit requirements should be enforced by ______.
What is the primary risk associated with broken access control?
What is the primary risk associated with broken access control?
What security principle is violated when access is granted to anyone instead of specific roles or users?
What security principle is violated when access is granted to anyone instead of specific roles or users?
Disabling web server directory listing is a recommended practice to prevent exposing file metadata.
Disabling web server directory listing is a recommended practice to prevent exposing file metadata.
To minimize harm from automated attack tooling, it is important to __________ API and controller access.
To minimize harm from automated attack tooling, it is important to __________ API and controller access.
Which of the following is a mitigation strategy against broken access control?
Which of the following is a mitigation strategy against broken access control?
According to the material, it is not important to log access control failures.
According to the material, it is not important to log access control failures.
The use of unverified data in a SQL call is an example of what scenario of compromising account information?
The use of unverified data in a SQL call is an example of what scenario of compromising account information?
An attacker forcing a browse to a URL is an example of ___________ if they are unauthenticated, or are not an admin.
An attacker forcing a browse to a URL is an example of ___________ if they are unauthenticated, or are not an admin.
CWE stands for Common Weakness Exposure based on the text provided.
CWE stands for Common Weakness Exposure based on the text provided.
Access control enforces policy such that users can act outside of their intended permissions.
Access control enforces policy such that users can act outside of their intended permissions.
Match the weakness to the description
Match the weakness to the description
What is the principle of least privilege, in the context of access control?
What is the principle of least privilege, in the context of access control?
Modifying a URL to bypass access control checks is known as ______.
Modifying a URL to bypass access control checks is known as ______.
Which of the following is a common access control vulnerability related to direct object references?
Which of the following is a common access control vulnerability related to direct object references?
Disabling web server directory listing is a recommended practice to prevent access control vulnerabilities.
Disabling web server directory listing is a recommended practice to prevent access control vulnerabilities.
A CORS ______ can allow API access from unauthorized origins.
A CORS ______ can allow API access from unauthorized origins.
What should developers and QA staff include in testing to prevent access control issues?
What should developers and QA staff include in testing to prevent access control issues?
In the context of JWTs, what does it mean for a token to be 'short-lived' and why is it important?
In the context of JWTs, what does it mean for a token to be 'short-lived' and why is it important?
Access control failures should be ______ and admins should be alerted when appropriate.
Access control failures should be ______ and admins should be alerted when appropriate.
Deny by default means that, unless a specific exception is in place, access is ______
Deny by default means that, unless a specific exception is in place, access is ______
Which of the following statements is correct regarding access control?
Which of the following statements is correct regarding access control?
Using extremely long-lived, stateless JWT tokens is the best method for long session management.
Using extremely long-lived, stateless JWT tokens is the best method for long session management.
Flashcards
Broken Access Control
Broken Access Control
Enforces policies so users can't act outside intended permissions, preventing unauthorized data access/modification.
Principle of Least Privilege
Principle of Least Privilege
Granting only necessary access rights, roles, or capabilities to users; denying access by default.
Parameter Tampering
Parameter Tampering
Bypassing access controls by altering URLs, application state, HTML, or API requests to gain unauthorized access.
Insecure Direct Object References (IDOR)
Insecure Direct Object References (IDOR)
Signup and view all the flashcards
Privilege Escalation
Privilege Escalation
Signup and view all the flashcards
Metadata Manipulation
Metadata Manipulation
Signup and view all the flashcards
CORS Misconfiguration
CORS Misconfiguration
Signup and view all the flashcards
Force Browsing
Force Browsing
Signup and view all the flashcards
Deny by Default
Deny by Default
Signup and view all the flashcards
Centralized Access Control
Centralized Access Control
Signup and view all the flashcards
Record Ownership
Record Ownership
Signup and view all the flashcards
Domain Model Enforcement
Domain Model Enforcement
Signup and view all the flashcards
Directory Listing Prevention
Directory Listing Prevention
Signup and view all the flashcards
Access Control Logging
Access Control Logging
Signup and view all the flashcards
API Rate Limiting
API Rate Limiting
Signup and view all the flashcards
Session Invalidation
Session Invalidation
Signup and view all the flashcards
JWT Management
JWT Management
Signup and view all the flashcards
Access Control Testing
Access Control Testing
Signup and view all the flashcards
Account Parameter Manipulation
Account Parameter Manipulation
Signup and view all the flashcards
Forced Browsing to Admin Pages
Forced Browsing to Admin Pages
Signup and view all the flashcards
Impact of Access Control Failures
Impact of Access Control Failures
Signup and view all the flashcards
Violation of Least Privilege
Violation of Least Privilege
Signup and view all the flashcards
API Access Control
API Access Control
Signup and view all the flashcards
JWT Token Security
JWT Token Security
Signup and view all the flashcards
SQL Injection Access
SQL Injection Access
Signup and view all the flashcards
Information Exposure
Information Exposure
Signup and view all the flashcards
Business Logic as Access Control
Business Logic as Access Control
Signup and view all the flashcards
URL Tampering
URL Tampering
Signup and view all the flashcards
Account Parameter Exploitation
Account Parameter Exploitation
Signup and view all the flashcards
Missing Access Control Attack
Missing Access Control Attack
Signup and view all the flashcards
URL Parameter Tampering
URL Parameter Tampering
Signup and view all the flashcards
Cross-Site Request Forgery (CSRF)
Cross-Site Request Forgery (CSRF)
Signup and view all the flashcards
Least Privilege
Least Privilege
Signup and view all the flashcards
Server-Side Access Control
Server-Side Access Control
Signup and view all the flashcards
Improper Access Control
Improper Access Control
Signup and view all the flashcards
JSON Web Token (JWT)
JSON Web Token (JWT)
Signup and view all the flashcards
Cross-Origin Resource Sharing (CORS)
Cross-Origin Resource Sharing (CORS)
Signup and view all the flashcards
URL Modification Attacks
URL Modification Attacks
Signup and view all the flashcards
Proper Authorization
Proper Authorization
Signup and view all the flashcards
Object References
Object References
Signup and view all the flashcards
Sensitive Information Exposure
Sensitive Information Exposure
Signup and view all the flashcards
Default Deny Access
Default Deny Access
Signup and view all the flashcards
Automated Attack Tooling
Automated Attack Tooling
Signup and view all the flashcards
Insecure Temporary Files
Insecure Temporary Files
Signup and view all the flashcards
Indirect Access Control
Indirect Access Control
Signup and view all the flashcards
Directory Listing
Directory Listing
Signup and view all the flashcards
Access Control
Access Control
Signup and view all the flashcards
Insecure Direct Object Reference
Insecure Direct Object Reference
Signup and view all the flashcards
Elevation of Privilege
Elevation of Privilege
Signup and view all the flashcards
Default Deny
Default Deny
Signup and view all the flashcards
Short-Lived JWTs
Short-Lived JWTs
Signup and view all the flashcards
Forced Browsing (Admin Pages)
Forced Browsing (Admin Pages)
Signup and view all the flashcards
Study Notes
Broken Access Control Overview
- Broken access control moved from fifth position and is now a top concern
- 94% of applications tested exhibited some form of broken access control
- The average incidence rate is 3.81%
- It has the most occurrences in the dataset with over 318k
- Common Weakness Enumerations (CWEs) include:
- CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
- CWE-201: Insertion of Sensitive Information Into Sent Data
- CWE-352: Cross-Site Request Forgery
Description of Access Control Vulnerabilities
- Access control ensures users act within their intended permissions.
- Failures can lead to unauthorized:
- Information disclosure
- Modification
- Destruction of data
- Performance of business functions outside user limits
- Common vulnerabilities include:
- Violating the principle of least privilege or deny by default
- Bypassing access control checks via:
- URL tampering
- Modifying application state or HTML
- Using attack tools to modify API requests
- Permitting viewing/editing of other accounts via insecure direct object references
- Accessing APIs with missing access controls for POST, PUT, and DELETE requests.
- Privilege escalation by:
- Acting as a user without login.
- Acting as admin when logged in as a user
- Manipulating metadata like JSON Web Tokens (JWT) or cookies to elevate privileges or abuse JWT invalidation.
- CORS misconfiguration allowing API access from unauthorized origins.
- Forced browsing to authenticated pages as an unauthenticated user or to privileged pages as a standard user.
Prevention Strategies
- Access control is effective in trusted server-side code or server-less APIs.
- Implementations should be server-side where attackers cannot modify checks or metadata.
- Key strategies:
- Deny by default, except for public resources.
- Implement and reuse access control mechanisms throughout the application to minimize Cross-Origin Resource Sharing (CORS) usage.
- Enforce record ownership via access control models
- Enforce unique application business limit requirements using domain models.
- Disable web server directory listing and ensure sensitive file metadata (e.g., .git) and backup files are not present within web roots.
- Log access control failures and alert administrators when appropriate (e.g., repeated failures).
- Rate limit API and controller access to minimize harm from automated attack tooling.
- Invalidate stateful session identifiers on the server after logout.
- Short-lived, stateless JWT tokens are preferable to minimize the window of opportunity for attackers
- Follow OAuth standards to revoke access for longer-lived JWTs.
- Include functional access control unit and integration tests during development and QA.
Example Attack Scenarios
Scenario 1: SQL Injection via Unverified Data
- Vulnerability: Application uses unverified data in a SQL call to access account information.
- Attack: Attacker modifies the 'acct' parameter in the browser to input any account number.
- Impact: If not verified correctly, attacker gains unauthorized access to any user's account.
- Example:
https://example.com/app/accountInfo?acct=notmyacct
Scenario 2: Forced Browsing
- Vulnerability: Lack of access controls on specific URLs.
- Attack: Attacker attempts to access admin pages directly.
- Impact: Unauthorized access to sensitive pages or functionalities.
- Example:
https://example.com/app/getappInfo
https://example.com/app/admin_getappInfo
- Flaw exists if:
- Unauthenticated user accesses any page that requires authentication
- Non-admin user accesses an admin page.
Statistics
- CWEs Mapped: 34
- Maximum Incidence Rate: 55.97%
- Average Incidence Rate: 3.81%
- Average Weighted Exploit: 6.92
- Average Weighted Impact: 5.93
- Maximum Coverage: 94.55%
- Average Coverage: 47.72%
- Total Occurrences: 318,487
- Total CVEs: 19,013
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.