На собеседованиях часто спрашивают, как протестировать логин форму, и на этом знакомство большинства тестировщиков с тестированием аутентификации заканчивается.
Мы поговорим об авторизации и аутентификации (AuthN & AuthZ): в чем их отличие и как перестать их путать; какие виды AuthN & AuthZ существуют на рынке; в чем специфика работы протоколов Oauth 2.0 и OpenID; какие лучшие практики тестирования безопасности AuthN & AuthZ и где попрактиковаться в тестирования той самой логин формы.
Доклад будет полезен функциональным тестировщикам и тем, кто интересуется технологическими аспектами AuthN & AuthZ.
12. Boring theory
Authentication is the process of ascertaining that somebody
really is who they claim to be.
Authorization refers to rules that determine who is allowed
to do what.
15. Boring theory
Authentication is the act of proving an assertion, such as the
identity of a computer system user.
In contrast with identification, the act of indicating a person or
thing's identity, authentication is the process of verifying that
identity.
17. AuthN spectrum
- Passwords
- Cookies
- Single Sign-On
- Restrict Where and When Users Can Log In
- Two-Factor Authentication
- Certificate-Based Authentication
- Network-based security
25. Single Sign-On (SSO)
Log in with a single ID and password to gain access to any of
several related systems
- reduces password fatigue
- reduces IT costs
- less time spent re-entering passwords
- mitigates risk for access to 3rd-party sites
27. OWASP Testing Guide
1. Credentials Transported over an Encrypted Channel
2. Default credentials
3. Weak lock out mechanism
4. Bypassing Authentication Schema
5. Vulnerable Remember Password
6. Browser cache weakness
7. Weak password policy
8. Weak security question/answer
9. Weak password change or reset functionalities
10.Weaker authentication in alternative channel
28. OWASP Testing Guide
1. Credentials Transported over an Encrypted Channel
2. Default credentials Apple issue
3. Weak lock out mechanism
4. Bypassing Authentication Schema
5. Vulnerable Remember Password
6. Browser cache weakness
7. Weak password policy
8. Weak security question/answer
9. Weak password change or reset functionalities
10.Weaker authentication in alternative channel
29. Rainbow tables attack
Huge databases of precomputed hashes
User Password Password hash (SHA1)
Alice password 5baa61e4c9b93f3f0682250b6cf8331b
7ee68fd8
Bob qjnN@*)!bsk dd3fb7f5e7e0b00e0794f0c73d5f3ba5
7197be24
Carrie my_p@s$w0rd! 700c311f7fe171eca2d0bc8f1e13bfa28
8944539
James qwerty123 5cec175b165e3d5e62c9e13ce848ef6f
eac81bff
30. Useful links
OWASP cheat sheet http://bit.ly/2NuEqEq
Have I been pwned https://haveibeenpwned.com/
Great self-security checklist from Volodymyr Styran
https://github.com/sapran/dontclickshit
33. Authorization
Authorization is the function of specifying access rights/
privileges to resources, which is related to information security
and computer security in general and to access control in
particular.
36. Access control mechanisms
● Attribute-based access control (ABAC)
● Role-based access control (RBAC)
● User-based access control (UBAC)
● Context-based access control (CBAC)
● Rule-based access control
● Time-based access control
...and a lot more
40. OAuth 2.0
It’s an authorization delegation protocol, letting someone who
controls the a recourse allow a software application to access that
resource on their behalf without impersonating them.
It enables a third-party application to obtain limited access to an
HTTP service
41. OAuth 2.0 is
...about how to get the token and how to use the token
...replaces the password-sharing antipattern with a delegation
protocol that’s simultaneously more secure and more usable
...focused on a small set of problems and solving them well
42.
43. Trust on first use (TOFU) principle
Enter credentials and permissions once
Assume correct for future requests
May expire over time or user logging
May apply across apps
44. Different levels of trust
Whitelist
Internal parties
Known business partners
Customer organizations
Trust frameworks
● Centralized protocol
● Traditional policy management
Graylist
Unknown entities
Trust on first use
● End user decisions
● Extensive auditing and logging
● Rules on when to move to the white
or black lists
Blacklist
Known bad parties
Attack sites
● Centralized protocol
● Traditional policy management
45. Tokens
Access token - indicates the rights that the client has been
delegated. Have an option to expire automatically
Refresh token - get new access token without asking for
authorization again.
48. Scopes
A set of rights at the protected resource.
Scopes always limit what an app can do
on behalf of a user
https://auth0.com/blog/on-the-nature-of-oauth2-scopes/
49. OAuth 2.0 and AuthN
OAuth doesn’t dictate the AuthN technology, and AuthZ server is
free to choose any method.
The user authentication passes directly between the user (and their
browser) and the AuthZ server; it’s never seen by the client
application.
52. OAuth 2.0 Security
A client needs to manage securing only its own client credentials
and the user’s tokens. And the breach of a single client would be
bad but limited in its damage to the users of that client.
53. OWASP Testing Guide
1. Directory traversal/file include
2. Bypassing Authorization Schema
3. Privilege escalation
4. Insecure Direct Object References
55. AuthZ + AuthN = IAM
(Identity and Access
Management)
56. Access Management
Authentication
● Single Sign-On
● Session Management
● Password Service
● Strong Authentication
Authorization
● Role-Based
● Rule-Based
● Attribute-Based
● Remote Authorization
User Management
● Delegated Administration
● User and Role Management
● Provisioning
● Password Management
● Self Service
Central User Repository
● Directory
● Data Synchronization
● Meta Directory
● Virtual Directory
Identity Management
Identity and Access
Management (IAM):
Providing the right people with
the right access at the right
time
57. IAM best practices
- Immutable Private Identifiers / Mutable Public Identifiers
- Decouple Core Information and PII from Transactional Data
- Decouple Biometrics from other PII
- Externalize Access Control Rules
- Self-Expressive Credentials
- Privilege Accounts are a Different Species
https://medium.facilelogin.com/ten-iam-design-principles-57351b6c69b2
65. Conclusions
For better understanding dig into system
Use heuristics to remember smth
Use cheat sheets and don’t trust your memory
Update your passwords and turn on MFA today