Securiyu Assessment
Securiyu Assessment
(If multiple sessions are supported): Verify that an active session list
Session List
is displayed in the account profile or similar of each user. The user
Displayed
should be able to terminate any active session.
Randomness of Does the site use a cryptographically random session token (at least
Session Token 64 bits of entropy)? (for example, a GUID)
Does the site pass the session token from page to page in a cookie
Method of Passing or hidden field (good), or in the URL (not secure)? If you disable
Session Token cookies in the browser, does application switch to passing session
token in the URL?
If the site is accessed using a browser that has cookies disabled (or
if you send a raw HTTP request to the site without any cookies in it),
Cookieless does the application begin passing the session ID from page to page
Sessions in the URL? (This is common with applications that use JSESSIONID
but other frameworks can be affected to. See "Cookieless Sessions
Enabled" in the CVL)
Use of Secure Does the site mark its session cookie(s) with the “secure” attribute
Cookies so it can only be passed via SSL?
Does the site mark its session cookie(s) with the “HttpOnly”
Use of HttpOnly
attribute so the cookie cannot be accessed via client-side Javascript
Cookies
code?
Use of SameSite Does the site mark the session cookie(s) with the "SameSite"
Cookies attribute?
Use of Non-
Does the site use session cookies (with no “Expiration” attribute) for
Persistent Cookies
storing its session token, or does it use persistent cookies (with an
For Tracking
Session “Expiration” attribute set to a future date)? Session cookies should
be used.
Permissive or Does the web application allow a user to choose their own session
Strict Session ID (permissive), or will the application only accept session IDs that
Management were generated by the application (strict)?
Generating New Does the application generate a new session and assign a new
Session After session id to the user immediately after a successful login? (to
Login protect against Session Fixation attacks)
Logout Does the application provide a Logout link for the user?
Functionality Does clicking on the Logout link result in the session being
destroyed on the server-side as well as clearing any session
cookies?
Cross-Site
Is the application vulnerable to Cross-Site Request Forgery attacks?
Request Forgery
Converting POST Is it possible to convert POST requests to GET requests? If so, does
to GET this introduce any security risks, such as CSRF?
Does the application verify the user can access the email address
Email Verification entered by the user for password resets and other
administrative/sensitive tasks.
Does the site store user credentials in a cookie and use this as the
Storing sole means of controlling access to user’s “logged- in” pages? If yes,
Credentials In a this means that the logout button can’t destroy user’s session
Cookie server-side. Recommend storing credentials in session, server-side.
Even encrypted credentials shouldn’t be stored client-side.
Password
Comparison Does the application perform a case insensitive comparison for
submitted passwords?
Space Character
Verify that passwords can contain spaces.
Allowed
Password Manger Are the password complexity rules password manger friendly? Can
Friendly passwords be pasted? Can browser password helpers be used?
Verify that the user can choose to either temporarily view the
entire masked password, or temporarily view the last typed
Unmask Password
character of the password on platforms that do not have this as
native functionality.
Password Verify that a password strength meter is provided to help users set
Strength Meter a stronger password.
Common Verify that measures are in place to block the use of commonly
Passwords chosen passwords and weak passphrases (such as the top 1,000 or
Allowed 10,000 most common passwords).
Password Change
Verify users can change their password.
Ability
2FA - Out of Band Verify that any out-of-band verifier expires requests, codes, or
Verifier Expiration tokens after 10 minutes.
2FA - Out of Band Verify that the out-of-band verifier authentication requests, codes,
Verifier Single- or tokens are only usable once, and only for the original
Use authentication request.
OTP Expiration Verify that time-based OTPs have a defined lifetime before expiring.
Does the site track failed login attempts server-side and lock user id
Account Lockout
after a certain number of failed login attempts?
Does the site provide a generic login failure message that doesn’t
indicate whether or not the user ID attempted was a valid user ID?
Generic Login
For example, “Your user ID or password is incorrect.”. Please do a
Failure Message
diff of the responses, not just a visual inspection. Also check for
application response time differences.
Forgot Password Does the Forgot Password feature give you feedback that indicates
Logic – whether or not an entered user ID is valid? Please do a diff of the
Information responses, not just a visual inspection. Also check for application
Disclosure response time differences.
Forgot Password
Verify password hints or knowledge-based authentication (so-called
Logic - Security
"secret questions") are not present.
Questions Used
Does the Forgot Password feature allow the user to choose from
Forgot Password
only a pre-defined list of strong questions? Allowing a user to
Logic – Strength of
choose their own security question, or having questions that are
Security
easy to brute force the answers to (“What is the color of your
Questions
favorite car?”) is a security issue.
Is there any way to bypass the security question and jump straight
Forgot Password to the “Reset password” page, or manipulate the site into
Logic Bypass changing/resetting another user’s password? Are there other logic
flaws such as bypassing an out-of-band verifier if used?
Upon requesting a password reset or after answering the security
question correctly, does the application:
Terminate
Verify the user is prompted with the option to terminate all other
Sessions on
active sessions after a successful change password process.
Password Change
Reauthenticating
Does the application ask the user to re-enter their old password
User When
when making a password change, changing other security info such
Performing
as the security question and answer or email address/username, or
Sensitive
performing a high dollar amount money transfer?
Transactions
Use of POST
Method When
Passing
Credentials
Are credentials always submitted to the web server via the POST
method? Are the user id and/or password ever passed in the URL?
Does Application
Are the application’s usernames unpredictable or do they follow a
Use Unpredictable
pattern? (such as all being 5-digit numbers)
User Names?
Verify that anti-automation is in place to prevent breached
Automation
credential testing, brute forcing, data exfiltration, excessive actions
Protection
or file uploads and account lockout attacks.
Verify there are no default passwords in use for the application
Default
framework or any components used by the application (such as
Credentials
“admin/password”)
Configuration
Are all pages that should be internal use only placed in a separate
folder with IP restrictions? Are very sensitive debug in a separate
folder that is protected with strong authentication plus IP
restrictions?
Are there any .inc files used by the application? Is the web server
configured not to serve up these .inc files? (IIS 6 is good by default,
IIS 5 needs to be configured to respond with a 404 for .inc files or
other specific file types.)
NOTE: Do not report this for files where using SRI is likely to cause
breaking (such as files subject to frequent updates); this is best used
with files that include a version number in the path.
Verify that all sensitive data is sent to the server in the HTTP
message body or headers (i.e., URL parameters are never used to
send sensitive data).
Privilege Escalation
Are there any security weaknesses that could allow one user to gain
access to another user’s account data? For example, an Account
Number being passed around by the application that could be
tampered with to access another user’s account data.
Are there any security weaknesses that could allow a low privileged
user to gain higher privileges? For example, can normal user access
pages and transactions meant only for admin users?
Are there any secret parameters like “debug=true” that will cause
the application to provide access to extra functionality?
PCI Compliance
Does the application always mask credit card number in all server
responses, displaying at most the first 6 and last 4 digits of card
number? Does it respond with full card number in any situation?
(For example, when page re- renders after an edit, or when user
back-buttons to the previously-completed credit card page.)
Flash/Flex
Java
Apache
Is the Apache server status page publicly accessible? The
default path for this is /server-status, but it can be
configured to other paths.
ASP.NET
SAML Authentication
Does the application contain .js.map files? Examine these files for
information disclosures such as application paths, functions,
sensitive developer comments.
Cloud
Name Description