SlideShare a Scribd company logo
OWASP TOP 10 & .NET
DANIEL KRASNOKUCKI, EQUINIX & GROUPKA
WHOAMI?
/ Bezpiecznik (AppSec)
/ DevSecOps
/ Programista
/ Trener
/ Wykładowca
2OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
WHY R U HERE?
OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 3
TEXT
USERS AND PROGRAMERS VS. SECURITY
OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 4
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
OWASP TOP 10 WEB APPLICATION VULNERABILITIES
5OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
STARTING WITH THE OBVIOUS ONES…
6OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A10 - INSUFFICIENT LOGGING & MONITORING
Insufficient logging and monitoring, coupled with missing or ineffective
integration with incident response, allows attackers to further attack systems,
maintain persistence, pivot to more systems, and tamper, extract, or destroy data.
Most breach studies show time to detect a breach is over 200 days, typically
detected by external parties rather than internal processes or monitoring.
7OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
8OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
LOGGING IN .NET
9OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
Logging guidance from Microsoft
https://microsoft.github.io/code-with-engineering-playbook/Engineering/DevOpsLoggingDetailsCSharp.html
Where possible, always log:
• Input and output validation failures e.g. protocol violations, unacceptable encodings, invalid parameter names and
values
• Authentication successes and failures and Authorization (access control) failures
• Session management failures e.g. cookie session identification value modification
• Application errors and system events
• Application and related systems start-ups and shut-downs, and logging initialization (starting, stopping or pausing)
• Use of higher-risk functionality
• Legal and other opt-ins e.g. permissions for mobile phone capabilities, terms & conditions, PII data usage consent
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
ANOTHER OBVIOUS ONE…
10OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES
Components, such as libraries, frameworks, and other software modules, run with
the same privileges as the application. If a vulnerable component is exploited,
such an attack can facilitate serious data loss or server takeover. Applications and
APIs using components with known vulnerabilities may undermine application
defences and enable various attacks and impacts.
11OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
12OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A8 - INSECURE DESERIALISATION
Insecure deserialization often leads to remote code execution. Even if
deserialization flaws do not result in remote code execution, they can be used to
perform attacks, including replay attacks, injection attacks, and privilege
escalation attacks.
OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
{

"$type": "System.Windows.Data.ObjectDataProvider, PresentationFramework", 

“ObjectInstance": { 

"$type":"System.Diagnostics.Process, System”}, 

"MethodParameters":{ 

"$type":"System.Collections.ArrayList, mscorlib", 

"$values":["calc"]}, 

"MethodName":"Start" 

}
ANY FLOWS IN .NET?
14OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
INSECURE DESERIALISATION MITIGATION
‣ Do not deserialize untrusted data!
‣ … do not deserialize untrusted data!
‣ If you really need to deserialize:
‣ Make sure to evaluate the security and of the chosen library
‣ Avoid libraries without strict Type control
‣ Never use user-controlled data to define the deserializer expected Type
‣ Do not roll your own format
15OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
16OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A7 - CROSS-SITE SCRIPTING
XSS flaws occur whenever an application includes untrusted data in a new web
page without proper validation or escaping, or updates an existing web page
with user-supplied data using a browser API that can create HTML or JavaScript.
XSS allows attackers to execute scripts in the victim's browser which can hijack
user sessions, deface web sites, or redirect the user to malicious sites.
17OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
IT’S MOSTLY SECURED BY DEFAULT IN .NET, BUT …
18OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
‣ Stop reinventing the wheel
‣ Do not be smarter than the framework
‣ If you use Razor, then use Razor. If you use something else, then use something
else, but do not use your own Razor-ish, MVC-ish, .NET-ish…
‣ Validate and whitelist each input and parameter
‣ Use proper output encoding
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
19OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A6 - SECURITY MISCONFIGURATION
Security misconfiguration is the most commonly seen issue. This is a result of
insecure default configurations, incomplete or ad hoc configurations, open cloud
storage, misconfigured HTTP headers, and verbose error messages containing
sensitive information. Not only must all operating systems, frameworks, libraries,
and applications be securely configured, but they must be patched/upgraded in
a timely fashion.
20OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
POSSIBLE .NET MISCONFIGURATION
‣ Missing appropriate security hardening across any part of the application stack, or improperly
configured permissions on cloud services.
‣ Unnecessary features are enabled or installed
‣ Default accounts and their passwords still enabled and unchanged
‣ Error handling without custom errors
‣ For upgraded systems, latest security features are disabled or not configured securely
‣ The security settings in the application servers, application frameworks, libraries, databases, etc.
not set to secure values.
‣ The server does not send security headers or directives or they are not set to secure values.
21OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
SECURITY HEADERS
22OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
EXAMPLE: CONTENT SECURITY POLICY
23OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
SECURITY CONFIGURATIONS IN .NET - COOKIES
24OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
25OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A5 - BROKEN ACCESS CONTROL
Restrictions on what authenticated users are allowed to do are often not properly
enforced. Attackers can exploit these flaws to access unauthorized functionality
and/or data, such as access other users' accounts, view sensitive files, modify
other users' data, change access rights, etc.
26OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
IDOR (INSECURE DIRECT OBJECT REFERENCES)
www.mybestandonlystore.com/orders/orderid=900
27OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
CORS (CROSS-ORIGIN RESOURCE SHARING)
28OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
29OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
XXE
string xml = "<?xml version="1.0" ?>
<!DOCTYPE doc
[<!ENTITY win SYSTEM "file:///C:/Users/user/Documents/test.txt">]
><doc>&win;</doc>”;
---------------------
string xml2 = "<?xml version="1.0" ?>
<!DOCTYPE doc [<!ENTITY lin SYSTEM „/etc/passwd">]><doc>&lin;</doc>";
30OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A4 - XML EXTERNAL ENTITIES
Many older or poorly configured XML processors evaluate external entity
references within XML documents. External entities can be used to disclose
internal files using the file URI handler, internal file shares, internal port scanning,
remote code execution, and denial of service attacks.
31OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
.NET XML LIBRARIES
Object Safe by default?
XmlReader
< 4.0
4.0 +
XmlTextReader
< 4.0
4.0+
XmlDocument
< 4.6
4.6+
32OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
33OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A3 - SENSITIVE DATA EXPOSURE
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.
34OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
LOOKS FAMILIAR?
35OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
36OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A2 - BROKEN AUTHENTICATION
Application functions related to authentication and session management are
often implemented incorrectly, allowing attackers to compromise passwords,
keys, or session tokens, or to exploit other implementation flaws to assume other
users' identities temporarily or permanently.
37OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
BROKEN AUTHENTICATION MITIGATIONS
38OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
‣ Passwords with proper length and complexity
‣ Use general messages for the user
‣ Limit the attempts of login
‣ Do not show sessionID to the user
‣ Secure your cookies
‣ Use MFA
‣ If you are using hashed passwords, do not use your own
hashing functions and add a salt
http://www.przyklad.com/(S(lit2py15t221z5v65vlsd23s55))/zamowienie.aspx
BROKEN AUTHENTICATION - EXAMPLE SETTINGS
39OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
40OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
A1 - INJECTIONS
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.
41OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
SQL INJECTION - GENERAL CASE
42OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
www.somestore.com/Products.aspx?CategoryID=1
www.somestore.com/Products.aspx?CategoryID=1 or 1=1
SQL INJECTION - REAL EXAMPLE
43OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
And quick mitigation….
SQL INJECTION MITIGATION
44OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
‣ Use .NET security leading practices and OWASP Guidelines
‣ Parametrize your queries
‣ Validate the parameters from the user - ALWAYS!
‣ Use whitelisting of characters
‣ Check the length of the parameter
‣ App should have the minimum required permission in the system (not running
as an admin “because it’s easier and it’s working”)
‣ You can use ORM…
IQUERYABLE<T> VS. IENUMERABLE<T>
45OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
‣ IEnumerable is best to query data from in-memory
collections like List, Array, etc.
‣ While query data from a database, IEnumerable
execute a select query on the server side, load data in-
memory on a client-side and then filter data.
‣ IEnumerable doesn’t support custom query.
‣ IEnumerable doesn’t support lazy loading. Hence not
suitable for paging like scenarios.
‣ Extension methods support by IEnumerable takes
functional objects.
‣ IQueryable is best to query data from out-memory
(like remote database, service) collections.
‣ While query data from a database, IQueryable
execute the select query on the server side with all
filters.
‣ IQueryable supports custom query using CreateQuery
and Execute methods.
‣ IQueryable support lazy loading. Hence it is suitable
for paging like scenarios.
‣ Extension methods support by IQueryable takes
expression objects means expression tree.
IQUERYABLE<T> VS. IENUMERABLE<T>
46OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
public IQueryable<Customer> GetCustomer(int customerId)
‣ A consumer of this query can call .Include("Orders") on the returned IQueryable<Customer> to retrieve data that the
query did not intend to expose. This can be avoided by changing the return type of the method to IEnumerable<T> and
calling a method (such as .ToList()) that materializes the results.
‣ Because  IQueryable<T>  queries are executed when the results are iterated over, a consumer of a query that exposes
an IQueryable<T> type could catch exceptions that are thrown. Exceptions could contain information not intended for the
consumer.
Avoid returning IQueryable<T> types from methods that are exposed to potentially untrusted callers
.NET CORE VALIDATION PROBLEMS
47OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
‣ Laziness (our laziness… not .NET)
‣ Tools first! (we do not think)
‣ Front-end validation
‣ Improper feedback for the user
A1 - INJECTIONS
A2 - BROKEN
AUTHENTICATION
A3 - SENSITIVE DATA
EXPOSURE
A4 - XML EXTERNAL
ENTITIES
A5 - BROKEN ACCESS
CONTROL
A6 - SECURITY
MISCONFIGURATION
A7 - CROSS-SITE
SCRIPTING
A8 - INSECURE
DESERIALISATION
A9 - USING
COMPONENTS WITH
KNOWN
VULNERABILITIES
A10 - INSUFFICIENT
LOGGING &
MONITORING
48OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
49OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
…?
51OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
WYJAŚNIJ CO TO JEST, JAK DZIAŁA 

I GDZIE W .NET-CIE MOŻNA USTAWIĆ
CSP
PYTANIE KONKURSOWE
52
THANK YOU.
DZIĘKUJĘ.
DANIEL.KRASNOKUCKI@OWASP.ORG
53

More Related Content

PDF
Owasp top 10
PDF
Owasp Top 10
PPT
Owasp Top 10
PPTX
Owasp top 10 2017
PPTX
OWASP Top 10 2017 rc1 - The Ten Most Critical Web Application Security Risks
PPTX
OWASP Top 10 Vulnerabilities 2017- AppTrana
PPTX
Owasp 2017 oveview
PDF
OWASP TOP TEN 2017 RC1
Owasp top 10
Owasp Top 10
Owasp Top 10
Owasp top 10 2017
OWASP Top 10 2017 rc1 - The Ten Most Critical Web Application Security Risks
OWASP Top 10 Vulnerabilities 2017- AppTrana
Owasp 2017 oveview
OWASP TOP TEN 2017 RC1

What's hot (20)

PPTX
OWASP Top 10 - 2017 Top 10 web application security risks
PDF
Top 10 Web Application vulnerabilities
PDF
OWASP Top 10 2017
PPTX
Owasp first5 presentation
PPTX
OWASP Top 10 2017 - New Vulnerabilities
PPTX
Owasp top 10 security threats
PDF
Oh, WASP! Security Essentials for Web Apps
PPTX
Owasp top 10 vulnerabilities
PDF
OWASP Top 10 - The Ten Most Critical Web Application Security Risks
PPT
Owasp top 10 & Web vulnerabilities
PPTX
OWASP -Top 5 Jagjit
PDF
OWASP Top 10 - 2017
PDF
The New OWASP Top Ten: Let's Cut to the Chase
PDF
Web Application Security and Awareness
PPT
OWASP Serbia - A3 broken authentication and session management
PPTX
Beyond the OWASP Top 10
PPT
Owasp Top 10 And Security Flaw Root Causes
PPTX
Analysis of web application penetration testing
PPTX
OWASP Top 10 - 2017 Top 10 web application security risks
Top 10 Web Application vulnerabilities
OWASP Top 10 2017
Owasp first5 presentation
OWASP Top 10 2017 - New Vulnerabilities
Owasp top 10 security threats
Oh, WASP! Security Essentials for Web Apps
Owasp top 10 vulnerabilities
OWASP Top 10 - The Ten Most Critical Web Application Security Risks
Owasp top 10 & Web vulnerabilities
OWASP -Top 5 Jagjit
OWASP Top 10 - 2017
The New OWASP Top Ten: Let's Cut to the Chase
Web Application Security and Awareness
OWASP Serbia - A3 broken authentication and session management
Beyond the OWASP Top 10
Owasp Top 10 And Security Flaw Root Causes
Analysis of web application penetration testing
Ad

Similar to OWASP TOP 10 & .NET (20)

PDF
[OPD 2019] .NET Core Security
PPTX
owasp features in secure coding techniques
PDF
Shields up - improving web application security
PDF
Whats new in The OWASP Top Ten 2017?
PDF
Secure coding guidelines
PDF
How to Harden the Security of Your .NET Website
 
PDF
Top 10 web application security risks akash mahajan
PPT
Sergey Kochergan - OWASP Top 10 Web Application Vulnerabilities
PDF
OWASP Top 10 List Overview for Web Developers
PPT
OWASP Top10 2010
PPTX
Owasp top 10 web application security risks 2017
PDF
OWASP Top 10 Proactive Controls 2016 - NorthEast PHP 2017
PDF
OWASP Top 10 Proactive Controls 2016 - PHP Québec August 2017
PPTX
OWASP Top Ten 2017
 
PDF
Understanding & Addressing OWASP’s Newest Top Ten Threat: Using Components wi...
PDF
OWASP Top 10 Web Vulnerabilities from DCC 04/14
PDF
OWASP top10 2017, Montpellier JUG de Noel
PPTX
Application Security Vulnerabilities: OWASP Top 10 -2007
PDF
OWASP (Open Web Application Security Project) .pdf
PDF
ITCamp 2018 - Tobiasz Koprowski - SECDEV(OPS). How to Brace Your IT Security.
[OPD 2019] .NET Core Security
owasp features in secure coding techniques
Shields up - improving web application security
Whats new in The OWASP Top Ten 2017?
Secure coding guidelines
How to Harden the Security of Your .NET Website
 
Top 10 web application security risks akash mahajan
Sergey Kochergan - OWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 List Overview for Web Developers
OWASP Top10 2010
Owasp top 10 web application security risks 2017
OWASP Top 10 Proactive Controls 2016 - NorthEast PHP 2017
OWASP Top 10 Proactive Controls 2016 - PHP Québec August 2017
OWASP Top Ten 2017
 
Understanding & Addressing OWASP’s Newest Top Ten Threat: Using Components wi...
OWASP Top 10 Web Vulnerabilities from DCC 04/14
OWASP top10 2017, Montpellier JUG de Noel
Application Security Vulnerabilities: OWASP Top 10 -2007
OWASP (Open Web Application Security Project) .pdf
ITCamp 2018 - Tobiasz Koprowski - SECDEV(OPS). How to Brace Your IT Security.
Ad

Recently uploaded (20)

PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Approach and Philosophy of On baking technology
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
Tartificialntelligence_presentation.pptx
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
cloud_computing_Infrastucture_as_cloud_p
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
WOOl fibre morphology and structure.pdf for textiles
Approach and Philosophy of On baking technology
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Tartificialntelligence_presentation.pptx
Chapter 5: Probability Theory and Statistics
Group 1 Presentation -Planning and Decision Making .pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation_ Review paper, used for researhc scholars
DP Operators-handbook-extract for the Mautical Institute
Digital-Transformation-Roadmap-for-Companies.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
1 - Historical Antecedents, Social Consideration.pdf
SOPHOS-XG Firewall Administrator PPT.pptx

OWASP TOP 10 & .NET

  • 1. OWASP TOP 10 & .NET DANIEL KRASNOKUCKI, EQUINIX & GROUPKA
  • 2. WHOAMI? / Bezpiecznik (AppSec) / DevSecOps / Programista / Trener / Wykładowca 2OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 3. WHY R U HERE? OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 3
  • 4. TEXT USERS AND PROGRAMERS VS. SECURITY OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 4
  • 5. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING OWASP TOP 10 WEB APPLICATION VULNERABILITIES 5OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 6. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING STARTING WITH THE OBVIOUS ONES… 6OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 7. A10 - INSUFFICIENT LOGGING & MONITORING Insufficient logging and monitoring, coupled with missing or ineffective integration with incident response, allows attackers to further attack systems, maintain persistence, pivot to more systems, and tamper, extract, or destroy data. Most breach studies show time to detect a breach is over 200 days, typically detected by external parties rather than internal processes or monitoring. 7OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 8. 8OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 9. LOGGING IN .NET 9OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 Logging guidance from Microsoft https://microsoft.github.io/code-with-engineering-playbook/Engineering/DevOpsLoggingDetailsCSharp.html Where possible, always log: • Input and output validation failures e.g. protocol violations, unacceptable encodings, invalid parameter names and values • Authentication successes and failures and Authorization (access control) failures • Session management failures e.g. cookie session identification value modification • Application errors and system events • Application and related systems start-ups and shut-downs, and logging initialization (starting, stopping or pausing) • Use of higher-risk functionality • Legal and other opt-ins e.g. permissions for mobile phone capabilities, terms & conditions, PII data usage consent
  • 10. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING ANOTHER OBVIOUS ONE… 10OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 11. A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES Components, such as libraries, frameworks, and other software modules, run with the same privileges as the application. If a vulnerable component is exploited, such an attack can facilitate serious data loss or server takeover. Applications and APIs using components with known vulnerabilities may undermine application defences and enable various attacks and impacts. 11OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 12. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 12OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 13. A8 - INSECURE DESERIALISATION Insecure deserialization often leads to remote code execution. Even if deserialization flaws do not result in remote code execution, they can be used to perform attacks, including replay attacks, injection attacks, and privilege escalation attacks. OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 {
 "$type": "System.Windows.Data.ObjectDataProvider, PresentationFramework", 
 “ObjectInstance": { 
 "$type":"System.Diagnostics.Process, System”}, 
 "MethodParameters":{ 
 "$type":"System.Collections.ArrayList, mscorlib", 
 "$values":["calc"]}, 
 "MethodName":"Start" 
 }
  • 14. ANY FLOWS IN .NET? 14OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 15. INSECURE DESERIALISATION MITIGATION ‣ Do not deserialize untrusted data! ‣ … do not deserialize untrusted data! ‣ If you really need to deserialize: ‣ Make sure to evaluate the security and of the chosen library ‣ Avoid libraries without strict Type control ‣ Never use user-controlled data to define the deserializer expected Type ‣ Do not roll your own format 15OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 16. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 16OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 17. A7 - CROSS-SITE SCRIPTING XSS flaws occur whenever an application includes untrusted data in a new web page without proper validation or escaping, or updates an existing web page with user-supplied data using a browser API that can create HTML or JavaScript. XSS allows attackers to execute scripts in the victim's browser which can hijack user sessions, deface web sites, or redirect the user to malicious sites. 17OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 18. IT’S MOSTLY SECURED BY DEFAULT IN .NET, BUT … 18OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 ‣ Stop reinventing the wheel ‣ Do not be smarter than the framework ‣ If you use Razor, then use Razor. If you use something else, then use something else, but do not use your own Razor-ish, MVC-ish, .NET-ish… ‣ Validate and whitelist each input and parameter ‣ Use proper output encoding
  • 19. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 19OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 20. A6 - SECURITY MISCONFIGURATION Security misconfiguration is the most commonly seen issue. This is a result of insecure default configurations, incomplete or ad hoc configurations, open cloud storage, misconfigured HTTP headers, and verbose error messages containing sensitive information. Not only must all operating systems, frameworks, libraries, and applications be securely configured, but they must be patched/upgraded in a timely fashion. 20OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 21. POSSIBLE .NET MISCONFIGURATION ‣ Missing appropriate security hardening across any part of the application stack, or improperly configured permissions on cloud services. ‣ Unnecessary features are enabled or installed ‣ Default accounts and their passwords still enabled and unchanged ‣ Error handling without custom errors ‣ For upgraded systems, latest security features are disabled or not configured securely ‣ The security settings in the application servers, application frameworks, libraries, databases, etc. not set to secure values. ‣ The server does not send security headers or directives or they are not set to secure values. 21OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 22. SECURITY HEADERS 22OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 23. EXAMPLE: CONTENT SECURITY POLICY 23OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 24. SECURITY CONFIGURATIONS IN .NET - COOKIES 24OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 25. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 25OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 26. A5 - BROKEN ACCESS CONTROL Restrictions on what authenticated users are allowed to do are often not properly enforced. Attackers can exploit these flaws to access unauthorized functionality and/or data, such as access other users' accounts, view sensitive files, modify other users' data, change access rights, etc. 26OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 27. IDOR (INSECURE DIRECT OBJECT REFERENCES) www.mybestandonlystore.com/orders/orderid=900 27OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 28. CORS (CROSS-ORIGIN RESOURCE SHARING) 28OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 29. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 29OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 30. XXE string xml = "<?xml version="1.0" ?> <!DOCTYPE doc [<!ENTITY win SYSTEM "file:///C:/Users/user/Documents/test.txt">] ><doc>&win;</doc>”; --------------------- string xml2 = "<?xml version="1.0" ?> <!DOCTYPE doc [<!ENTITY lin SYSTEM „/etc/passwd">]><doc>&lin;</doc>"; 30OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 31. A4 - XML EXTERNAL ENTITIES Many older or poorly configured XML processors evaluate external entity references within XML documents. External entities can be used to disclose internal files using the file URI handler, internal file shares, internal port scanning, remote code execution, and denial of service attacks. 31OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 32. .NET XML LIBRARIES Object Safe by default? XmlReader < 4.0 4.0 + XmlTextReader < 4.0 4.0+ XmlDocument < 4.6 4.6+ 32OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 33. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 33OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 34. A3 - SENSITIVE DATA EXPOSURE 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. 34OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 35. LOOKS FAMILIAR? 35OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 36. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 36OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 37. A2 - BROKEN AUTHENTICATION Application functions related to authentication and session management are often implemented incorrectly, allowing attackers to compromise passwords, keys, or session tokens, or to exploit other implementation flaws to assume other users' identities temporarily or permanently. 37OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 38. BROKEN AUTHENTICATION MITIGATIONS 38OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 ‣ Passwords with proper length and complexity ‣ Use general messages for the user ‣ Limit the attempts of login ‣ Do not show sessionID to the user ‣ Secure your cookies ‣ Use MFA ‣ If you are using hashed passwords, do not use your own hashing functions and add a salt http://www.przyklad.com/(S(lit2py15t221z5v65vlsd23s55))/zamowienie.aspx
  • 39. BROKEN AUTHENTICATION - EXAMPLE SETTINGS 39OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 40. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 40OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 41. A1 - INJECTIONS 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. 41OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 42. SQL INJECTION - GENERAL CASE 42OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 www.somestore.com/Products.aspx?CategoryID=1 www.somestore.com/Products.aspx?CategoryID=1 or 1=1
  • 43. SQL INJECTION - REAL EXAMPLE 43OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 And quick mitigation….
  • 44. SQL INJECTION MITIGATION 44OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 ‣ Use .NET security leading practices and OWASP Guidelines ‣ Parametrize your queries ‣ Validate the parameters from the user - ALWAYS! ‣ Use whitelisting of characters ‣ Check the length of the parameter ‣ App should have the minimum required permission in the system (not running as an admin “because it’s easier and it’s working”) ‣ You can use ORM…
  • 45. IQUERYABLE<T> VS. IENUMERABLE<T> 45OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 ‣ IEnumerable is best to query data from in-memory collections like List, Array, etc. ‣ While query data from a database, IEnumerable execute a select query on the server side, load data in- memory on a client-side and then filter data. ‣ IEnumerable doesn’t support custom query. ‣ IEnumerable doesn’t support lazy loading. Hence not suitable for paging like scenarios. ‣ Extension methods support by IEnumerable takes functional objects. ‣ IQueryable is best to query data from out-memory (like remote database, service) collections. ‣ While query data from a database, IQueryable execute the select query on the server side with all filters. ‣ IQueryable supports custom query using CreateQuery and Execute methods. ‣ IQueryable support lazy loading. Hence it is suitable for paging like scenarios. ‣ Extension methods support by IQueryable takes expression objects means expression tree.
  • 46. IQUERYABLE<T> VS. IENUMERABLE<T> 46OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 public IQueryable<Customer> GetCustomer(int customerId) ‣ A consumer of this query can call .Include("Orders") on the returned IQueryable<Customer> to retrieve data that the query did not intend to expose. This can be avoided by changing the return type of the method to IEnumerable<T> and calling a method (such as .ToList()) that materializes the results. ‣ Because  IQueryable<T>  queries are executed when the results are iterated over, a consumer of a query that exposes an IQueryable<T> type could catch exceptions that are thrown. Exceptions could contain information not intended for the consumer. Avoid returning IQueryable<T> types from methods that are exposed to potentially untrusted callers
  • 47. .NET CORE VALIDATION PROBLEMS 47OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019 ‣ Laziness (our laziness… not .NET) ‣ Tools first! (we do not think) ‣ Front-end validation ‣ Improper feedback for the user
  • 48. A1 - INJECTIONS A2 - BROKEN AUTHENTICATION A3 - SENSITIVE DATA EXPOSURE A4 - XML EXTERNAL ENTITIES A5 - BROKEN ACCESS CONTROL A6 - SECURITY MISCONFIGURATION A7 - CROSS-SITE SCRIPTING A8 - INSECURE DESERIALISATION A9 - USING COMPONENTS WITH KNOWN VULNERABILITIES A10 - INSUFFICIENT LOGGING & MONITORING 48OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 49. 49OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 50. OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 51. …? 51OWASP TOP 10 & .NET | DANIEL KRASNOKUCKI | OWASP SILESIA | 25.09.2019
  • 52. WYJAŚNIJ CO TO JEST, JAK DZIAŁA 
 I GDZIE W .NET-CIE MOŻNA USTAWIĆ CSP PYTANIE KONKURSOWE 52