Tan115 commited on
Commit
d8932dd
·
verified ·
1 Parent(s): 15f95dd

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +22 -0
  2. 44 - Java New Versions/003 Java 9 Process API & CompletableFuture API updates, Interface Private Methods.mp4 +3 -0
  3. 44 - Java New Versions/004 Java 9 jlink & jshell.mp4 +3 -0
  4. 44 - Java New Versions/005 Java 9 Multi-Release JAR Files & Compact Strings.mp4 +3 -0
  5. 44 - Java New Versions/006 Java 9 Deprecated & Removed Features.mp4 +3 -0
  6. 44 - Java New Versions/007 Java 10 ‘var’ variables (Type inference), Docker support, Flex Heap Size, etc.mp4 +3 -0
  7. 44 - Java New Versions/008 Java 10 Other improvements, Removals, Deprecations, Release Versioning.mp4 +3 -0
  8. 44 - Java New Versions/009 Java 11 LTS Concept, New HTTP Client, String & Files API Updates.mp4 +3 -0
  9. 44 - Java New Versions/010 Java 11 Collection & Predicate API Updates, Nest-Based Access Control & more.mp4 +3 -0
  10. 44 - Java New Versions/011 Java 12 CompactNumberFormat, Teeing Collector, String.indent(), transform().mp4 +3 -0
  11. 44 - Java New Versions/012 Java 13 Socket API, newFileSystem() method, ZGC Uncommit Unused Memory & others.mp4 +3 -0
  12. 44 - Java New Versions/013 Java 14 Switch expressions, Currency Format, Helpful NullPointerExceptions.mp4 +3 -0
  13. 44 - Java New Versions/014 Java 15 Text Blocks, Hidden Classes, new String methods.mp4 +3 -0
  14. 44 - Java New Versions/015 Java 16 JEP 395 - Records.mp4 +3 -0
  15. 44 - Java New Versions/016 Java 16 instanceof, Day Period Support, Stream.toList() & others.mp4 +3 -0
  16. 44 - Java New Versions/017 Java 17 Sealed Classes & other improvements.mp4 +3 -0
  17. 46 - Databases Overview and Environment Setup/002 Databases Overview - Part 1.mp4 +3 -0
  18. 46 - Databases Overview and Environment Setup/003 Databases Overview - Part 2.mp4 +3 -0
  19. 46 - Databases Overview and Environment Setup/004 MySQL Overview & Installation (including Workbench Installation).mp4 +3 -0
  20. 46 - Databases Overview and Environment Setup/005 PostgreSQL Overview & Installation (including pgAdmin installation).mp4 +3 -0
  21. 47 - Relational databases/001 Relational Databases Basic Concepts.mp4 +3 -0
  22. 47 - Relational databases/002 Create Schema & Table Naming, Collation, Engines, Types, Column Properties.mp4 +3 -0
  23. 47 - Relational databases/003 Referential Integrity Foreign Key Constraint & Cascading Operations.mp4 +3 -0
  24. 73 - OWASP Top 10 2021/005 Source-code-examples-from-the-lesson.url +2 -0
  25. 73 - OWASP Top 10 2021/006 Injection (Overview, Fuzzing, CWEs, Impact, Injection Types, Command Injection)_en.srt +788 -0
  26. 73 - OWASP Top 10 2021/006 Source-code-examples-from-the-lesson.url +2 -0
  27. 73 - OWASP Top 10 2021/007 Injection (Cross Site Scripting, Types of XSS, SQL, JPA, NoSQL Injections)_en.srt +740 -0
  28. 73 - OWASP Top 10 2021/007 Source-code-examples-from-the-lesson.url +2 -0
  29. 73 - OWASP Top 10 2021/008 Injection (XPath Injection, Log Injection, Input Validation)_en.srt +716 -0
  30. 73 - OWASP Top 10 2021/008 Source-code-examples-from-the-lesson.url +2 -0
  31. 73 - OWASP Top 10 2021/009 Insecure Design (Overivew, CWEs, Shift Left Security, Threat Modeling Manifesto)_en.srt +868 -0
  32. 73 - OWASP Top 10 2021/010 Insecure Design (Secure Design Process, Security Controls, Metrics, Examples)_en.srt +1036 -0
  33. 73 - OWASP Top 10 2021/011 NIST-800-123-Guide-to-General-Server-Security.url +2 -0
  34. 73 - OWASP Top 10 2021/011 NIST-800-207-Zero-Trust-Architecture.url +2 -0
  35. 73 - OWASP Top 10 2021/011 Security Misconfiguration (Overview, CWEs, Types, Real-life attacks)_en.srt +828 -0
  36. 73 - OWASP Top 10 2021/012 NIST-800-123-Guide-to-General-Server-Security.url +2 -0
  37. 73 - OWASP Top 10 2021/012 NIST-800-207-Zero-Trust-Architecture.url +2 -0
  38. 73 - OWASP Top 10 2021/012 Security Misconfiguration (Hardening, Zero Trust, Defense in Depth, Practice)_en.srt +1200 -0
  39. 73 - OWASP Top 10 2021/013 Dependency-check-plugin.url +2 -0
  40. 73 - OWASP Top 10 2021/013 Vulnerable & Outdated Components_en.srt +1056 -0
  41. 73 - OWASP Top 10 2021/013 pom.xml-from-the-lesson-with-OWASP-plugin.url +2 -0
  42. 73 - OWASP Top 10 2021/014 Identification & Authentication Failures_en.srt +1432 -0
  43. 73 - OWASP Top 10 2021/015 Software & Data Integrity Failures_en.srt +740 -0
  44. 73 - OWASP Top 10 2021/016 Computer-Security-Incident-Handling-Guide.url +2 -0
  45. 73 - OWASP Top 10 2021/016 Security Logging & Monitoring Failures_en.srt +1016 -0
  46. 73 - OWASP Top 10 2021/017 Server-Side Request Forgery (SSRF)_en.srt +1036 -0
  47. 73 - OWASP Top 10 2021/external-links.txt +42 -0
  48. 74 - OWASP API Security Top 10 2023/001 OWASP API Security Project & OWASP API Security Top 10 2023.html +69 -0
  49. 74 - OWASP API Security Top 10 2023/002 API12023 Broken Object Level Authorization - Part 1_en.srt +720 -0
  50. 74 - OWASP API Security Top 10 2023/003 API12023 Broken Object Level Authorization - Part 2 (Practice)_en.srt +652 -0
.gitattributes CHANGED
@@ -578,3 +578,25 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
578
  41[[:space:]]-[[:space:]]I18N[[:space:]]&[[:space:]]L10N/002[[:space:]]\[Part[[:space:]]2\][[:space:]]Localization[[:space:]]and[[:space:]]Internationalization.mp4 filter=lfs diff=lfs merge=lfs -text
579
  44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/001[[:space:]]Java[[:space:]]8[[:space:]]Features[[:space:]](Lambda,[[:space:]]Stream[[:space:]]API,[[:space:]]Optional,[[:space:]]Effectively[[:space:]]Final,[[:space:]]etc.).mp4 filter=lfs diff=lfs merge=lfs -text
580
  44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/002[[:space:]]Java[[:space:]]9[[:space:]]Stream[[:space:]]API[[:space:]]Updates,[[:space:]]Multi-Resolution[[:space:]]Image,[[:space:]]Stack-Walking[[:space:]]API,[[:space:]]etc.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578
  41[[:space:]]-[[:space:]]I18N[[:space:]]&[[:space:]]L10N/002[[:space:]]\[Part[[:space:]]2\][[:space:]]Localization[[:space:]]and[[:space:]]Internationalization.mp4 filter=lfs diff=lfs merge=lfs -text
579
  44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/001[[:space:]]Java[[:space:]]8[[:space:]]Features[[:space:]](Lambda,[[:space:]]Stream[[:space:]]API,[[:space:]]Optional,[[:space:]]Effectively[[:space:]]Final,[[:space:]]etc.).mp4 filter=lfs diff=lfs merge=lfs -text
580
  44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/002[[:space:]]Java[[:space:]]9[[:space:]]Stream[[:space:]]API[[:space:]]Updates,[[:space:]]Multi-Resolution[[:space:]]Image,[[:space:]]Stack-Walking[[:space:]]API,[[:space:]]etc.mp4 filter=lfs diff=lfs merge=lfs -text
581
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/003[[:space:]]Java[[:space:]]9[[:space:]]Process[[:space:]]API[[:space:]]&[[:space:]]CompletableFuture[[:space:]]API[[:space:]]updates,[[:space:]]Interface[[:space:]]Private[[:space:]]Methods.mp4 filter=lfs diff=lfs merge=lfs -text
582
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/004[[:space:]]Java[[:space:]]9[[:space:]]jlink[[:space:]]&[[:space:]]jshell.mp4 filter=lfs diff=lfs merge=lfs -text
583
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/005[[:space:]]Java[[:space:]]9[[:space:]]Multi-Release[[:space:]]JAR[[:space:]]Files[[:space:]]&[[:space:]]Compact[[:space:]]Strings.mp4 filter=lfs diff=lfs merge=lfs -text
584
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/006[[:space:]]Java[[:space:]]9[[:space:]]Deprecated[[:space:]]&[[:space:]]Removed[[:space:]]Features.mp4 filter=lfs diff=lfs merge=lfs -text
585
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/007[[:space:]]Java[[:space:]]10[[:space:]]‘var’[[:space:]]variables[[:space:]](Type[[:space:]]inference),[[:space:]]Docker[[:space:]]support,[[:space:]]Flex[[:space:]]Heap[[:space:]]Size,[[:space:]]etc.mp4 filter=lfs diff=lfs merge=lfs -text
586
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/008[[:space:]]Java[[:space:]]10[[:space:]]Other[[:space:]]improvements,[[:space:]]Removals,[[:space:]]Deprecations,[[:space:]]Release[[:space:]]Versioning.mp4 filter=lfs diff=lfs merge=lfs -text
587
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/009[[:space:]]Java[[:space:]]11[[:space:]]LTS[[:space:]]Concept,[[:space:]]New[[:space:]]HTTP[[:space:]]Client,[[:space:]]String[[:space:]]&[[:space:]]Files[[:space:]]API[[:space:]]Updates.mp4 filter=lfs diff=lfs merge=lfs -text
588
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/010[[:space:]]Java[[:space:]]11[[:space:]]Collection[[:space:]]&[[:space:]]Predicate[[:space:]]API[[:space:]]Updates,[[:space:]]Nest-Based[[:space:]]Access[[:space:]]Control[[:space:]]&[[:space:]]more.mp4 filter=lfs diff=lfs merge=lfs -text
589
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/011[[:space:]]Java[[:space:]]12[[:space:]]CompactNumberFormat,[[:space:]]Teeing[[:space:]]Collector,[[:space:]]String.indent(),[[:space:]]transform().mp4 filter=lfs diff=lfs merge=lfs -text
590
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/012[[:space:]]Java[[:space:]]13[[:space:]]Socket[[:space:]]API,[[:space:]]newFileSystem()[[:space:]]method,[[:space:]]ZGC[[:space:]]Uncommit[[:space:]]Unused[[:space:]]Memory[[:space:]]&[[:space:]]others.mp4 filter=lfs diff=lfs merge=lfs -text
591
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/013[[:space:]]Java[[:space:]]14[[:space:]]Switch[[:space:]]expressions,[[:space:]]Currency[[:space:]]Format,[[:space:]]Helpful[[:space:]]NullPointerExceptions.mp4 filter=lfs diff=lfs merge=lfs -text
592
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/014[[:space:]]Java[[:space:]]15[[:space:]]Text[[:space:]]Blocks,[[:space:]]Hidden[[:space:]]Classes,[[:space:]]new[[:space:]]String[[:space:]]methods.mp4 filter=lfs diff=lfs merge=lfs -text
593
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/015[[:space:]]Java[[:space:]]16[[:space:]]JEP[[:space:]]395[[:space:]]-[[:space:]]Records.mp4 filter=lfs diff=lfs merge=lfs -text
594
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/016[[:space:]]Java[[:space:]]16[[:space:]]instanceof,[[:space:]]Day[[:space:]]Period[[:space:]]Support,[[:space:]]Stream.toList()[[:space:]]&[[:space:]]others.mp4 filter=lfs diff=lfs merge=lfs -text
595
+ 44[[:space:]]-[[:space:]]Java[[:space:]]New[[:space:]]Versions/017[[:space:]]Java[[:space:]]17[[:space:]]Sealed[[:space:]]Classes[[:space:]]&[[:space:]]other[[:space:]]improvements.mp4 filter=lfs diff=lfs merge=lfs -text
596
+ 46[[:space:]]-[[:space:]]Databases[[:space:]]Overview[[:space:]]and[[:space:]]Environment[[:space:]]Setup/003[[:space:]]Databases[[:space:]]Overview[[:space:]]-[[:space:]]Part[[:space:]]2.mp4 filter=lfs diff=lfs merge=lfs -text
597
+ 46[[:space:]]-[[:space:]]Databases[[:space:]]Overview[[:space:]]and[[:space:]]Environment[[:space:]]Setup/002[[:space:]]Databases[[:space:]]Overview[[:space:]]-[[:space:]]Part[[:space:]]1.mp4 filter=lfs diff=lfs merge=lfs -text
598
+ 46[[:space:]]-[[:space:]]Databases[[:space:]]Overview[[:space:]]and[[:space:]]Environment[[:space:]]Setup/004[[:space:]]MySQL[[:space:]]Overview[[:space:]]&[[:space:]]Installation[[:space:]](including[[:space:]]Workbench[[:space:]]Installation).mp4 filter=lfs diff=lfs merge=lfs -text
599
+ 46[[:space:]]-[[:space:]]Databases[[:space:]]Overview[[:space:]]and[[:space:]]Environment[[:space:]]Setup/005[[:space:]]PostgreSQL[[:space:]]Overview[[:space:]]&[[:space:]]Installation[[:space:]](including[[:space:]]pgAdmin[[:space:]]installation).mp4 filter=lfs diff=lfs merge=lfs -text
600
+ 47[[:space:]]-[[:space:]]Relational[[:space:]]databases/001[[:space:]]Relational[[:space:]]Databases[[:space:]]Basic[[:space:]]Concepts.mp4 filter=lfs diff=lfs merge=lfs -text
601
+ 47[[:space:]]-[[:space:]]Relational[[:space:]]databases/003[[:space:]]Referential[[:space:]]Integrity[[:space:]]Foreign[[:space:]]Key[[:space:]]Constraint[[:space:]]&[[:space:]]Cascading[[:space:]]Operations.mp4 filter=lfs diff=lfs merge=lfs -text
602
+ 47[[:space:]]-[[:space:]]Relational[[:space:]]databases/002[[:space:]]Create[[:space:]]Schema[[:space:]]&[[:space:]]Table[[:space:]]Naming,[[:space:]]Collation,[[:space:]]Engines,[[:space:]]Types,[[:space:]]Column[[:space:]]Properties.mp4 filter=lfs diff=lfs merge=lfs -text
44 - Java New Versions/003 Java 9 Process API & CompletableFuture API updates, Interface Private Methods.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e4a6f5a60db0c473bb07ea6f150b018f10a817bc39f2274d1d2b10627893689f
3
+ size 190037559
44 - Java New Versions/004 Java 9 jlink & jshell.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5d65ceeacf578e842907c4e64a49a3b9faa929c7c8fcb89127fe7ffc8f9e747d
3
+ size 109556625
44 - Java New Versions/005 Java 9 Multi-Release JAR Files & Compact Strings.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eb0d88695c2696f6b24f652ec57ed5d43d5a7e97f196635ba6bf0e47d50d1f61
3
+ size 114049987
44 - Java New Versions/006 Java 9 Deprecated & Removed Features.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8d6dfdb0f216c06f3b82d6d8a8b8beab4c2b36fec93c1773856de42ad5ce2021
3
+ size 149756049
44 - Java New Versions/007 Java 10 ‘var’ variables (Type inference), Docker support, Flex Heap Size, etc.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d604ce842d6389b7e5b293ca93f795d1bd954ca64b8aed76941499261c241b26
3
+ size 183944826
44 - Java New Versions/008 Java 10 Other improvements, Removals, Deprecations, Release Versioning.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:937eef812d9aebe96580bb6bac9dfc7de70758b1c255eab612146463ac000a0a
3
+ size 215953252
44 - Java New Versions/009 Java 11 LTS Concept, New HTTP Client, String & Files API Updates.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d75d5c190b770faa7bcc8b6f6b7515ece90f0a3fa3bdfb97b5f5915bac05dac8
3
+ size 376262556
44 - Java New Versions/010 Java 11 Collection & Predicate API Updates, Nest-Based Access Control & more.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b69f59588dff616512d36849dbac9a1952f6a8ffda87df97170074a630ac195
3
+ size 270387280
44 - Java New Versions/011 Java 12 CompactNumberFormat, Teeing Collector, String.indent(), transform().mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8be71d65fe99631fff2febb0e59b4233058bc61df04549a855fd7651ebc1ec56
3
+ size 378294951
44 - Java New Versions/012 Java 13 Socket API, newFileSystem() method, ZGC Uncommit Unused Memory & others.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b07a6b597fe4c169ec2f80e9ac575ea22f3efb2046802b2e45c0cf431707b3c3
3
+ size 234783920
44 - Java New Versions/013 Java 14 Switch expressions, Currency Format, Helpful NullPointerExceptions.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f9bd5f740f36bc5a6f5ea4050c4df1069f23b99c07b4555905c218a6fe61f3d7
3
+ size 260905623
44 - Java New Versions/014 Java 15 Text Blocks, Hidden Classes, new String methods.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bfaa3c54776e688bb22431cf1f18213a0eb5c4eb0afa6e0be4f6394c6c003aeb
3
+ size 339932181
44 - Java New Versions/015 Java 16 JEP 395 - Records.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:afbaca8ee84b1e10aab1dd9b1fb759103114240d39c6c03b51d160f31cae53e9
3
+ size 281735994
44 - Java New Versions/016 Java 16 instanceof, Day Period Support, Stream.toList() & others.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:40dfd8226d9d034455c26e4f381352ffeebfa138ec7c6042896511a28b9e59d0
3
+ size 263540069
44 - Java New Versions/017 Java 17 Sealed Classes & other improvements.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:454bc8ba622d61f059be4f9a524eb20bd183e1176cd25fef8af78327641e4876
3
+ size 317087204
46 - Databases Overview and Environment Setup/002 Databases Overview - Part 1.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:94f2d2ab374d0d0cc99230f46de93835ed018745a8c5ab2fd6a15fab4fc2528a
3
+ size 185731700
46 - Databases Overview and Environment Setup/003 Databases Overview - Part 2.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dbf79bc5e381f02eb7f93b125469491268abaa00f94b1308dc4dac7a5b86d4b4
3
+ size 164078558
46 - Databases Overview and Environment Setup/004 MySQL Overview & Installation (including Workbench Installation).mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0aa48bb177231ad8706997087ecf71e57df36906277c16950c5739f710ef1927
3
+ size 170355725
46 - Databases Overview and Environment Setup/005 PostgreSQL Overview & Installation (including pgAdmin installation).mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fc231471841a6af2adff6d6a6281d7bae55eba95ae556b6cecaa471bd8f30ff4
3
+ size 138627682
47 - Relational databases/001 Relational Databases Basic Concepts.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0ed540f7cef5f519d455ae9f177a17bd3a0b90d568db7e6a0ed3c4c3496f63e8
3
+ size 107397197
47 - Relational databases/002 Create Schema & Table Naming, Collation, Engines, Types, Column Properties.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d300c2247fe7c9caa494a4fd84e4160576879d71c71d3cdc05bda0e4e44b83c7
3
+ size 367026479
47 - Relational databases/003 Referential Integrity Foreign Key Constraint & Cascading Operations.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1ce67f983efbb0af21246e46939abf9fed77acc1cc048357e2079bd8e6410f01
3
+ size 242455530
73 - OWASP Top 10 2021/005 Source-code-examples-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/cf
73 - OWASP Top 10 2021/006 Injection (Overview, Fuzzing, CWEs, Impact, Injection Types, Command Injection)_en.srt ADDED
@@ -0,0 +1,788 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:06,000
7
+ Yes.
8
+
9
+ 3
10
+ 00:00:07,000 --> 00:00:10,000
11
+ In this lesson, we're going to learn the following risk category.
12
+
13
+ 4
14
+ 00:00:10,000 --> 00:00:12,000
15
+ This is called injection.
16
+
17
+ 5
18
+ 00:00:12,000 --> 00:00:17,000
19
+ We're going to start this lesson from the general overview of injection waste category.
20
+
21
+ 6
22
+ 00:00:17,000 --> 00:00:24,000
23
+ I will also share with you not a common weakness enumerations that are associated with this risk category.
24
+
25
+ 7
26
+ 00:00:25,000 --> 00:00:31,000
27
+ To help you understand why injection risk category is important, we will discuss potential impacts
28
+
29
+ 8
30
+ 00:00:32,000 --> 00:00:34,000
31
+ that may be caused by vulnerabilities problems.
32
+
33
+ 9
34
+ 00:00:34,000 --> 00:00:43,000
35
+ This risk category will compare risk category from our last top ten 2021 was top ten 2017.
36
+
37
+ 10
38
+ 00:00:43,000 --> 00:00:49,000
39
+ After that, we're going to start a review of different types of injections, namely, we're going to
40
+
41
+ 11
42
+ 00:00:49,000 --> 00:00:54,000
43
+ talk about common injection, cross-site scripting, and it's different types.
44
+
45
+ 12
46
+ 00:00:54,000 --> 00:01:03,000
47
+ SQL injection injection, no SQL injection, simple pass injection and block injection.
48
+
49
+ 13
50
+ 00:01:03,000 --> 00:01:05,000
51
+ We're going to have a lot of examples.
52
+
53
+ 14
54
+ 00:01:06,000 --> 00:01:10,000
55
+ I will share with you how to prevent each specific type of injection.
56
+
57
+ 15
58
+ 00:01:10,000 --> 00:01:16,000
59
+ And as and those are some we're going to summarize the common rules and guidelines that is recommended
60
+
61
+ 16
62
+ 00:01:16,000 --> 00:01:24,000
63
+ to follow to prevent injection vulnerabilities and also will input validation goals and different input
64
+
65
+ 17
66
+ 00:01:24,000 --> 00:01:25,000
67
+ validation strategies.
68
+
69
+ 18
70
+ 00:01:26,000 --> 00:01:27,000
71
+ Let's start our lesson.
72
+
73
+ 19
74
+ 00:01:28,000 --> 00:01:35,000
75
+ Injections are one of the most common vulnerabilities in applications, depending on what environment
76
+
77
+ 20
78
+ 00:01:35,000 --> 00:01:36,000
79
+ and the utilities you use.
80
+
81
+ 21
82
+ 00:01:37,000 --> 00:01:39,000
83
+ That can be a variety of injection flaws.
84
+
85
+ 22
86
+ 00:01:40,000 --> 00:01:45,000
87
+ Among these types, common injection is one of the most dangerous.
88
+
89
+ 23
90
+ 00:01:45,000 --> 00:01:49,000
91
+ Some of the most common injections are sequel no.
92
+
93
+ 24
94
+ 00:01:49,000 --> 00:01:57,000
95
+ Sequel, operating system, common objects, relational mapping or forum l dub and expression, language
96
+
97
+ 25
98
+ 00:01:57,000 --> 00:02:00,000
99
+ or object graph navigation library injection.
100
+
101
+ 26
102
+ 00:02:01,000 --> 00:02:06,000
103
+ The concept is identical among all interpreter's source code reviews.
104
+
105
+ 27
106
+ 00:02:06,000 --> 00:02:15,000
107
+ The best massive of detecting applications are vulnerable to injections, automated testing of all parameters
108
+
109
+ 28
110
+ 00:02:15,000 --> 00:02:18,000
111
+ headers euro cookies jigsaw.
112
+
113
+ 29
114
+ 00:02:18,000 --> 00:02:22,000
115
+ So an excellent data input is strongly encouraged.
116
+
117
+ 30
118
+ 00:02:23,000 --> 00:02:30,000
119
+ Organizations can include static, dynamic and interactive application security testing those in the
120
+
121
+ 31
122
+ 00:02:30,000 --> 00:02:36,000
123
+ CIC pipeline to identify introduce injection flaws before production deployment.
124
+
125
+ 32
126
+ 00:02:37,000 --> 00:02:45,000
127
+ An application is vulnerable to attack when user supplied data is not part of the filter or sanitized
128
+
129
+ 33
130
+ 00:02:45,000 --> 00:02:46,000
131
+ by the application.
132
+
133
+ 34
134
+ 00:02:47,000 --> 00:02:53,000
135
+ Dynamic queries on non parameterized calls without context over escape and are used directly in the
136
+
137
+ 35
138
+ 00:02:53,000 --> 00:02:54,000
139
+ interpreter.
140
+
141
+ 36
142
+ 00:02:55,000 --> 00:02:58,000
143
+ Hostile data is used within an object.
144
+
145
+ 37
146
+ 00:02:58,000 --> 00:03:07,000
147
+ Relational mapping from such parameters to extract additional sensitive rack or hostile data is directly
148
+
149
+ 38
150
+ 00:03:07,000 --> 00:03:08,000
151
+ used or concatenated.
152
+
153
+ 39
154
+ 00:03:09,000 --> 00:03:16,000
155
+ This equal or common contains distraction and malicious data in dynamic queries, come ons or stored
156
+
157
+ 40
158
+ 00:03:16,000 --> 00:03:17,000
159
+ procedures.
160
+
161
+ 41
162
+ 00:03:17,000 --> 00:03:22,000
163
+ Injection flaws are very prevalent, particularly in legacy code.
164
+
165
+ 42
166
+ 00:03:23,000 --> 00:03:29,000
167
+ Injection vulnerabilities are often found in sequel s pass on those sequel queries.
168
+
169
+ 43
170
+ 00:03:29,000 --> 00:03:37,000
171
+ Operating system commands, x amount passes, SMTP gathers expression, languages and forum queries.
172
+
173
+ 44
174
+ 00:03:38,000 --> 00:03:46,000
175
+ Injection flows easy to discover Excel money code scanners and those can help attackers find injection
176
+
177
+ 45
178
+ 00:03:46,000 --> 00:03:46,000
179
+ flows.
180
+
181
+ 46
182
+ 00:03:47,000 --> 00:03:55,000
183
+ What forces are opposed is a program which injects automatically some random data into programs that
184
+
185
+ 47
186
+ 00:03:55,000 --> 00:03:57,000
187
+ detect box.
188
+
189
+ 48
190
+ 00:03:57,000 --> 00:04:06,000
191
+ The data generation path is made of generators and the ability ID relies on the blogging tools in programming
192
+
193
+ 49
194
+ 00:04:06,000 --> 00:04:07,000
195
+ and software development.
196
+
197
+ 50
198
+ 00:04:08,000 --> 00:04:16,000
199
+ OSI Foster is an automated software testing technique that involves providing invalid, unexpected or
200
+
201
+ 51
202
+ 00:04:16,000 --> 00:04:19,000
203
+ random data as equals to a computer program.
204
+
205
+ 52
206
+ 00:04:20,000 --> 00:04:27,000
207
+ Almost any source of data can be an injection vector environment variables, parameters, external and
208
+
209
+ 53
210
+ 00:04:27,000 --> 00:04:30,000
211
+ internal web services and all types of users.
212
+
213
+ 54
214
+ 00:04:31,000 --> 00:04:37,000
215
+ Injection flows at zero one in that target can send hostile data to an interpreter.
216
+
217
+ 55
218
+ 00:04:37,000 --> 00:04:49,000
219
+ Multiple common weakness enumerations included CW E 79 Cross-Site Scripting, CW 89 SQL Injection and
220
+
221
+ 56
222
+ 00:04:49,000 --> 00:04:54,000
223
+ CW 73 External control of file name of POS.
224
+
225
+ 57
226
+ 00:04:55,000 --> 00:05:01,000
227
+ Why is this lasting is important and why we should know about injection and be very attentive while
228
+
229
+ 58
230
+ 00:05:01,000 --> 00:05:03,000
231
+ creating our software.
232
+
233
+ 59
234
+ 00:05:03,000 --> 00:05:08,000
235
+ Let's learn what the potential impact can be done by different types of injections.
236
+
237
+ 60
238
+ 00:05:09,000 --> 00:05:15,000
239
+ The injection can result in data loss, corruption or disclosure to unauthorized parties.
240
+
241
+ 61
242
+ 00:05:16,000 --> 00:05:23,000
243
+ A loss of accountability or denial of access injection can sometimes make the company post takeover.
244
+
245
+ 62
246
+ 00:05:24,000 --> 00:05:28,000
247
+ The business impact depends on the needs of the application and data.
248
+
249
+ 63
250
+ 00:05:29,000 --> 00:05:36,000
251
+ The impact of command injection can range from stealing data, changing system configurations or even
252
+
253
+ 64
254
+ 00:05:36,000 --> 00:05:38,000
255
+ bringing the whole system down.
256
+
257
+ 65
258
+ 00:05:38,000 --> 00:05:45,000
259
+ Malicious actors sometimes use command injection to create security weaknesses in the system and then
260
+
261
+ 66
262
+ 00:05:45,000 --> 00:05:48,000
263
+ exports and create its weaknesses.
264
+
265
+ 67
266
+ 00:05:48,000 --> 00:05:55,000
267
+ A successful injection can also provide attackers with unauthorized access to the database, allowing
268
+
269
+ 68
270
+ 00:05:56,000 --> 00:06:04,000
271
+ them to exit mine tables with critical information from them and even acquire administrator access.
272
+
273
+ 69
274
+ 00:06:04,000 --> 00:06:09,000
275
+ Let's compare now injection some of us 2021 and 2017.
276
+
277
+ 70
278
+ 00:06:10,000 --> 00:06:17,000
279
+ Injections are attacks in which an attacker attempts to send data to a web application to execute thousands
280
+
281
+ 71
282
+ 00:06:17,000 --> 00:06:25,000
283
+ of the application was not actually designed to do this can be injection windows is such a cycle operating
284
+
285
+ 72
286
+ 00:06:25,000 --> 00:06:34,000
287
+ system or injections is in your top 10.21 update also contains the vulnerability cross-site scripting
288
+
289
+ 73
290
+ 00:06:34,000 --> 00:06:38,000
291
+ because this vulnerability is a principle also an injection.
292
+
293
+ 74
294
+ 00:06:39,000 --> 00:06:48,000
295
+ Probably this is a key difference if we compare injection in our last top ten 2017 and the top ten 2021.
296
+
297
+ 75
298
+ 00:06:49,000 --> 00:06:51,000
299
+ There are different injection types.
300
+
301
+ 76
302
+ 00:06:51,000 --> 00:06:52,000
303
+ That's loans them.
304
+
305
+ 77
306
+ 00:06:53,000 --> 00:06:56,000
307
+ They are operating system common injection.
308
+
309
+ 78
310
+ 00:06:57,000 --> 00:07:02,000
311
+ Even despite in my subjective opinions, this injection is not very popular nowadays.
312
+
313
+ 79
314
+ 00:07:02,000 --> 00:07:05,000
315
+ I believe it is still worse to consider because of us.
316
+
317
+ 80
318
+ 00:07:05,000 --> 00:07:08,000
319
+ Puts a stress on this type of injection.
320
+
321
+ 81
322
+ 00:07:08,000 --> 00:07:16,000
323
+ Based on the statistics, based on my experience and the audits that I do on other software projects
324
+
325
+ 82
326
+ 00:07:16,000 --> 00:07:23,000
327
+ and during my consultancy practice, I don't observe a lot of cases applications using the command line
328
+
329
+ 83
330
+ 00:07:23,000 --> 00:07:29,000
331
+ directly from the application and expose an API of interaction that was common line.
332
+
333
+ 84
334
+ 00:07:29,000 --> 00:07:33,000
335
+ But still, each of us highlights this type of threat.
336
+
337
+ 85
338
+ 00:07:33,000 --> 00:07:37,000
339
+ I believe this verse to consider cross-site scripting.
340
+
341
+ 86
342
+ 00:07:38,000 --> 00:07:45,000
343
+ This group is also known as the excess SAS injection or otherwise cross-site scripting injection.
344
+
345
+ 87
346
+ 00:07:46,000 --> 00:07:52,000
347
+ In my opinion, this is a very interesting type of injection and even nowadays very popular.
348
+
349
+ 88
350
+ 00:07:53,000 --> 00:07:59,000
351
+ There are a lot of cases with confirmation of this kind of attacks submitted in cryptocurrency industry.
352
+
353
+ 89
354
+ 00:07:59,000 --> 00:08:06,000
355
+ And not only is there a lot of startups, is it a bother it was released in their products as soon as
356
+
357
+ 90
358
+ 00:08:06,000 --> 00:08:06,000
359
+ possible.
360
+
361
+ 91
362
+ 00:08:07,000 --> 00:08:11,000
363
+ Just ignores the potential risk of cross-site scripting injection.
364
+
365
+ 92
366
+ 00:08:12,000 --> 00:08:17,000
367
+ That's why I'd love to draw your extra attention to this category, and we're going to have a lot of
368
+
369
+ 93
370
+ 00:08:17,000 --> 00:08:19,000
371
+ examples to discuss.
372
+
373
+ 94
374
+ 00:08:19,000 --> 00:08:21,000
375
+ SQL Injection.
376
+
377
+ 95
378
+ 00:08:21,000 --> 00:08:29,000
379
+ Injection, no SQL injection like symmetric injection and injection.
380
+
381
+ 96
382
+ 00:08:30,000 --> 00:08:33,000
383
+ Let's review these different types of injection wells.
384
+
385
+ 97
386
+ 00:08:33,000 --> 00:08:33,000
387
+ Examples.
388
+
389
+ 98
390
+ 00:08:34,000 --> 00:08:37,000
391
+ Let's start from the operating system.
392
+
393
+ 99
394
+ 00:08:37,000 --> 00:08:38,000
395
+ Come on, injection.
396
+
397
+ 100
398
+ 00:08:38,000 --> 00:08:40,000
399
+ Let's understand first.
400
+
401
+ 101
402
+ 00:08:40,000 --> 00:08:41,000
403
+ What is it?
404
+
405
+ 102
406
+ 00:08:41,000 --> 00:08:42,000
407
+ Come on.
408
+
409
+ 103
410
+ 00:08:42,000 --> 00:08:49,000
411
+ Injection is a technique where malicious actor tries to execute the operating system commands on the
412
+
413
+ 104
414
+ 00:08:49,000 --> 00:08:51,000
415
+ system person's application.
416
+
417
+ 105
418
+ 00:08:51,000 --> 00:08:54,000
419
+ User input is used to execute these commands.
420
+
421
+ 106
422
+ 00:08:55,000 --> 00:09:02,000
423
+ For example, a task can execute commands to show a list of files in some directories on the server
424
+
425
+ 107
426
+ 00:09:02,000 --> 00:09:02,000
427
+ side.
428
+
429
+ 108
430
+ 00:09:03,000 --> 00:09:10,000
431
+ Also, AutoCAD can execute some scripts that will operate in a system like that, using some critical
432
+
433
+ 109
434
+ 00:09:10,000 --> 00:09:16,000
435
+ files for a common injection attack to work, the application should make three main conditions.
436
+
437
+ 110
438
+ 00:09:17,000 --> 00:09:23,000
439
+ The first one is application should have privileges, permissions to execute system commands.
440
+
441
+ 111
442
+ 00:09:24,000 --> 00:09:30,000
443
+ The second, the application should use user provided data as a parts of system commands.
444
+
445
+ 112
446
+ 00:09:30,000 --> 00:09:37,000
447
+ And this is a user provided data and should not be escape sanitized before use.
448
+
449
+ 113
450
+ 00:09:37,000 --> 00:09:44,000
451
+ If your application meets these conditions, then there's pretty good chance its application is vulnerable
452
+
453
+ 114
454
+ 00:09:44,000 --> 00:09:46,000
455
+ to common injections.
456
+
457
+ 115
458
+ 00:09:46,000 --> 00:09:48,000
459
+ You can't always trust the user.
460
+
461
+ 116
462
+ 00:09:49,000 --> 00:09:52,000
463
+ Let's review an example now to understand it better.
464
+
465
+ 117
466
+ 00:09:53,000 --> 00:10:00,000
467
+ Let's imagine that we are, Sarah, that allow us to check the content of the folder that is associated
468
+
469
+ 118
470
+ 00:10:00,000 --> 00:10:01,000
471
+ with some sort of category.
472
+
473
+ 119
474
+ 00:10:02,000 --> 00:10:06,000
475
+ When I can post product category to get the content of that folder.
476
+
477
+ 120
478
+ 00:10:07,000 --> 00:10:08,000
479
+ I opened the browser.
480
+
481
+ 121
482
+ 00:10:09,000 --> 00:10:11,000
483
+ I have my web server up and running.
484
+
485
+ 122
486
+ 00:10:11,000 --> 00:10:14,000
487
+ I call my service page with product category parameter.
488
+
489
+ 123
490
+ 00:10:14,000 --> 00:10:19,000
491
+ It is equal to laptops when I submit this query.
492
+
493
+ 124
494
+ 00:10:19,000 --> 00:10:21,000
495
+ Then I see a list of the folder.
496
+
497
+ 125
498
+ 00:10:21,000 --> 00:10:23,000
499
+ It is not critically important.
500
+
501
+ 126
502
+ 00:10:24,000 --> 00:10:30,000
503
+ The main thing is that this thing that does what I expect it to do, my application has permissions
504
+
505
+ 127
506
+ 00:10:30,000 --> 00:10:37,000
507
+ to execute system commands and application uses provided by user data as it was of system.
508
+
509
+ 128
510
+ 00:10:37,000 --> 00:10:38,000
511
+ Come on.
512
+
513
+ 129
514
+ 00:10:38,000 --> 00:10:41,000
515
+ And we don't verify them in any way.
516
+
517
+ 130
518
+ 00:10:41,000 --> 00:10:44,000
519
+ And what if I would execute the following command?
520
+
521
+ 131
522
+ 00:10:45,000 --> 00:10:48,000
523
+ I will slightly adjust the value of the parameter cost.
524
+
525
+ 132
526
+ 00:10:49,000 --> 00:10:54,000
527
+ I will pass ampersand IP config instead of ampersand.
528
+
529
+ 133
530
+ 00:10:54,000 --> 00:10:56,000
531
+ I use person sun 26.
532
+
533
+ 134
534
+ 00:10:57,000 --> 00:11:04,000
535
+ I keep ampersand character because otherwise it will be treated as query string parameters separate
536
+
537
+ 135
538
+ 00:11:04,000 --> 00:11:04,000
539
+ them.
540
+
541
+ 136
542
+ 00:11:04,000 --> 00:11:06,000
543
+ And you see now what is here.
544
+
545
+ 137
546
+ 00:11:07,000 --> 00:11:09,000
547
+ Don't pay attention to question marks.
548
+
549
+ 138
550
+ 00:11:10,000 --> 00:11:13,000
551
+ I wasn't bother too much was encoding for this example.
552
+
553
+ 139
554
+ 00:11:13,000 --> 00:11:19,000
555
+ The main thing is that I managed to get IP address by executing IP config.
556
+
557
+ 140
558
+ 00:11:19,000 --> 00:11:22,000
559
+ Command is a command line of my server.
560
+
561
+ 141
562
+ 00:11:22,000 --> 00:11:25,000
563
+ But what if I would execute something more dangerous?
564
+
565
+ 142
566
+ 00:11:26,000 --> 00:11:33,000
567
+ Not as simple and harmless as chrome on the known IP address was a help of ampersand.
568
+
569
+ 143
570
+ 00:11:33,000 --> 00:11:36,000
571
+ I can pass another command to be executed.
572
+
573
+ 144
574
+ 00:11:36,000 --> 00:11:39,000
575
+ That is how command injection works.
576
+
577
+ 145
578
+ 00:11:39,000 --> 00:11:41,000
579
+ Let me show you the source code.
580
+
581
+ 146
582
+ 00:11:42,000 --> 00:11:42,000
583
+ All source code.
584
+
585
+ 147
586
+ 00:11:42,000 --> 00:11:46,000
587
+ For this lesson you will be able to find in attachments to the video.
588
+
589
+ 148
590
+ 00:11:46,000 --> 00:11:48,000
591
+ I created separate packages.
592
+
593
+ 149
594
+ 00:11:48,000 --> 00:11:49,000
595
+ It is called I.
596
+
597
+ 150
598
+ 00:11:50,000 --> 00:11:52,000
599
+ I stands for injection.
600
+
601
+ 151
602
+ 00:11:52,000 --> 00:11:59,000
603
+ You can see how I built the past as a directory and the reads parameter passed to the of that.
604
+
605
+ 152
606
+ 00:11:59,000 --> 00:12:05,000
607
+ But I don't need any validations to validate that the input parameters will not harm my system.
608
+
609
+ 153
610
+ 00:12:06,000 --> 00:12:11,000
611
+ I get runtime time and executes a command in case pass was found.
612
+
613
+ 154
614
+ 00:12:11,000 --> 00:12:16,000
615
+ We print the content of directory in case pass is invalid.
616
+
617
+ 155
618
+ 00:12:16,000 --> 00:12:22,000
619
+ We enter catch block and as you can see, my query parameter is not validated.
620
+
621
+ 156
622
+ 00:12:23,000 --> 00:12:25,000
623
+ I just concatenated execute this.
624
+
625
+ 157
626
+ 00:12:25,000 --> 00:12:26,000
627
+ Come on.
628
+
629
+ 158
630
+ 00:12:27,000 --> 00:12:30,000
631
+ And what shall we do in this case to eliminate this ability?
632
+
633
+ 159
634
+ 00:12:31,000 --> 00:12:35,000
635
+ There is no master key to prevent common transactions.
636
+
637
+ 160
638
+ 00:12:35,000 --> 00:12:41,000
639
+ It means is that you can just implement one soon and expect to be secure.
640
+
641
+ 161
642
+ 00:12:41,000 --> 00:12:47,000
643
+ You need to add multiple layers of security when it comes to security.
644
+
645
+ 162
646
+ 00:12:47,000 --> 00:12:48,000
647
+ Is a more z matter?
648
+
649
+ 163
650
+ 00:12:49,000 --> 00:12:52,000
651
+ So here are some common uses for prevention methods.
652
+
653
+ 164
654
+ 00:12:53,000 --> 00:12:55,000
655
+ The first one is the most simple one.
656
+
657
+ 165
658
+ 00:12:56,000 --> 00:13:01,000
659
+ If you are not using system commands that common injections are not possible.
660
+
661
+ 166
662
+ 00:13:02,000 --> 00:13:09,000
663
+ The second solution is to substitute common line operations with using some library, for example.
664
+
665
+ 167
666
+ 00:13:09,000 --> 00:13:13,000
667
+ In this particular case, why should we use common line?
668
+
669
+ 168
670
+ 00:13:13,000 --> 00:13:17,000
671
+ Why don't we use file across Java from Java IO package?
672
+
673
+ 169
674
+ 00:13:18,000 --> 00:13:20,000
675
+ Always ask yourself.
676
+
677
+ 170
678
+ 00:13:20,000 --> 00:13:24,000
679
+ They used to use command line to execute operations.
680
+
681
+ 171
682
+ 00:13:24,000 --> 00:13:28,000
683
+ You need all you have, I think to perform required actions in another way.
684
+
685
+ 172
686
+ 00:13:29,000 --> 00:13:33,000
687
+ Another solution might be additional verifications you can validate.
688
+
689
+ 173
690
+ 00:13:34,000 --> 00:13:38,000
691
+ You must keep all special characters and leave on the text.
692
+
693
+ 174
694
+ 00:13:39,000 --> 00:13:43,000
695
+ The next solution would be implementation of principle of this privilege.
696
+
697
+ 175
698
+ 00:13:43,000 --> 00:13:47,000
699
+ Well, you talked about it in our previous classes.
700
+
701
+ 176
702
+ 00:13:48,000 --> 00:13:54,000
703
+ The principle of this process is that you should give an entity the least amount of privilege necessary,
704
+
705
+ 177
706
+ 00:13:55,000 --> 00:13:57,000
707
+ just enough to do what's needed.
708
+
709
+ 178
710
+ 00:13:57,000 --> 00:14:04,000
711
+ For example, if the application or user needs access to just one folder, give access to only that
712
+
713
+ 179
714
+ 00:14:04,000 --> 00:14:05,000
715
+ folder.
716
+
717
+ 180
718
+ 00:14:06,000 --> 00:14:10,000
719
+ Given the operations of superuser privileges is not at all smart.
720
+
721
+ 181
722
+ 00:14:11,000 --> 00:14:13,000
723
+ Implement this principle everywhere.
724
+
725
+ 182
726
+ 00:14:14,000 --> 00:14:20,000
727
+ You could also create a separate user for the application and you've only required permissions to zap
728
+
729
+ 183
730
+ 00:14:20,000 --> 00:14:20,000
731
+ user.
732
+
733
+ 184
734
+ 00:14:21,000 --> 00:14:23,000
735
+ This might not be feasible everywhere.
736
+
737
+ 185
738
+ 00:14:24,000 --> 00:14:31,000
739
+ It depends on the use case, but you should consider prepare to allow based on the denialist seamless
740
+
741
+ 186
742
+ 00:14:31,000 --> 00:14:35,000
743
+ solution we reviewed in our broken access control lesson.
744
+
745
+ 187
746
+ 00:14:35,000 --> 00:14:37,000
747
+ We implemented safely.
748
+
749
+ 188
750
+ 00:14:37,000 --> 00:14:40,000
751
+ In that lesson, the principle is very similar.
752
+
753
+ 189
754
+ 00:14:41,000 --> 00:14:46,000
755
+ That's why I don't believe that I need to repeat myself and create similar examples.
756
+
757
+ 190
758
+ 00:14:47,000 --> 00:14:53,000
759
+ If you know what comments must be used, what commands must not be used, you could allow blocks out.
760
+
761
+ 191
762
+ 00:14:54,000 --> 00:15:00,000
763
+ If your application needs to execute only one command, then you could use logic.
764
+
765
+ 192
766
+ 00:15:00,000 --> 00:15:01,000
767
+ Caps.
768
+
769
+ 193
770
+ 00:15:01,000 --> 00:15:05,000
771
+ Is a command being sent to the coming line for execution?
772
+
773
+ 194
774
+ 00:15:05,000 --> 00:15:09,000
775
+ Is that one command you intend to execute?
776
+
777
+ 195
778
+ 00:15:09,000 --> 00:15:12,000
779
+ You can implement this with single statement.
780
+
781
+ 196
782
+ 00:15:13,000 --> 00:15:17,000
783
+ That's all what I wanted to show you regarding the comment in Jackson.
784
+
785
+ 197
786
+ 00:15:17,000 --> 00:15:18,000
787
+ That's my one.
788
+
73 - OWASP Top 10 2021/006 Source-code-examples-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/i/problem
73 - OWASP Top 10 2021/007 Injection (Cross Site Scripting, Types of XSS, SQL, JPA, NoSQL Injections)_en.srt ADDED
@@ -0,0 +1,740 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:02,000 --> 00:00:04,000
3
+ Let's learn now cross-site scripting.
4
+
5
+ 2
6
+ 00:00:05,000 --> 00:00:10,000
7
+ So let's learn first what it is and why we shouldn't advisor about this at all.
8
+
9
+ 3
10
+ 00:00:11,000 --> 00:00:18,000
11
+ Cross-Site scripting is an attack performed on vulnerable web applications that manipulates the app
12
+
13
+ 4
14
+ 00:00:18,000 --> 00:00:20,000
15
+ to send malicious scripts to users.
16
+
17
+ 5
18
+ 00:00:21,000 --> 00:00:25,000
19
+ In short, an attacker injects malicious script into a website.
20
+
21
+ 6
22
+ 00:00:26,000 --> 00:00:28,000
23
+ The impact can be different.
24
+
25
+ 7
26
+ 00:00:28,000 --> 00:00:37,000
27
+ For example, attacker wants to access personal data of other users, controls a browser or in severe
28
+
29
+ 8
30
+ 00:00:37,000 --> 00:00:40,000
31
+ cases, controls the application itself.
32
+
33
+ 9
34
+ 00:00:41,000 --> 00:00:45,000
35
+ Cross-Site scripting attacks consist from two parts.
36
+
37
+ 10
38
+ 00:00:45,000 --> 00:00:47,000
39
+ Initialization of the attack.
40
+
41
+ 11
42
+ 00:00:48,000 --> 00:00:55,000
43
+ The attacker sends the most often a malicious script through a trusted source and web application,
44
+
45
+ 12
46
+ 00:00:55,000 --> 00:00:57,000
47
+ like a text field or a URL.
48
+
49
+ 13
50
+ 00:00:58,000 --> 00:01:01,000
51
+ Execution of an attack is the second part.
52
+
53
+ 14
54
+ 00:01:02,000 --> 00:01:09,000
55
+ The data is received by an unsuspecting user without being followed data as the user opens and executes.
56
+
57
+ 15
58
+ 00:01:11,000 --> 00:01:15,000
59
+ Cross-Site scripting attacks are typically written as JavaScript segments.
60
+
61
+ 16
62
+ 00:01:16,000 --> 00:01:22,000
63
+ Even something as simple as can be manipulated by attackers, if not handled properly.
64
+
65
+ 17
66
+ 00:01:23,000 --> 00:01:26,000
67
+ There are different types of cross-site scripting attacks.
68
+
69
+ 18
70
+ 00:01:26,000 --> 00:01:35,000
71
+ The CIA reflected the excess attacks, persistent excess attacks and DOM based excess attacks.
72
+
73
+ 19
74
+ 00:01:36,000 --> 00:01:44,000
75
+ Let us briefly review each of these types reflects the excess attacks, also known as non persistent.
76
+
77
+ 20
78
+ 00:01:44,000 --> 00:01:49,000
79
+ The excess attacks are considered to be the simplest form of exercise.
80
+
81
+ 21
82
+ 00:01:50,000 --> 00:01:57,000
83
+ In these attacks, an attacker poses a malicious script query, which is typically within a euro.
84
+
85
+ 22
86
+ 00:01:57,000 --> 00:02:05,000
87
+ Basically, attacker puts JavaScript into zero and the attacker makes a victim to create a euro.
88
+
89
+ 23
90
+ 00:02:06,000 --> 00:02:10,000
91
+ This can be done with the help of social engineering techniques.
92
+
93
+ 24
94
+ 00:02:11,000 --> 00:02:18,000
95
+ For example, some email was hyper reference or random link on forums or in common somewhere.
96
+
97
+ 25
98
+ 00:02:18,000 --> 00:02:25,000
99
+ The main issue here is to make victims click on the euro to execute the malicious script in.
100
+
101
+ 26
102
+ 00:02:26,000 --> 00:02:31,000
103
+ In a few minutes I am going to show you an example of a a6's attack.
104
+
105
+ 27
106
+ 00:02:32,000 --> 00:02:34,000
107
+ Persistent access attacks.
108
+
109
+ 28
110
+ 00:02:34,000 --> 00:02:37,000
111
+ Also known as Thor, the excess SAS attacks.
112
+
113
+ 29
114
+ 00:02:38,000 --> 00:02:47,000
115
+ Q Or when an attacker identifies ability in a web application that allows for script injection, the
116
+
117
+ 30
118
+ 00:02:47,000 --> 00:02:54,000
119
+ attacker is able to inject a malicious create into verification to make it executed each time.
120
+
121
+ 31
122
+ 00:02:54,000 --> 00:02:57,000
123
+ One The victim is open of that page of an application.
124
+
125
+ 32
126
+ 00:02:58,000 --> 00:03:02,000
127
+ For example, a target left to comment on your website.
128
+
129
+ 33
130
+ 00:03:03,000 --> 00:03:06,000
131
+ And Coleman's content is a JavaScript code.
132
+
133
+ 34
134
+ 00:03:07,000 --> 00:03:14,000
135
+ Once com is added, it is stored in the database and law that each time one of the users open a web
136
+
137
+ 35
138
+ 00:03:14,000 --> 00:03:17,000
139
+ page with that common script is executed.
140
+
141
+ 36
142
+ 00:03:18,000 --> 00:03:22,000
143
+ That's why these kinds of attacks are called persistent.
144
+
145
+ 37
146
+ 00:03:22,000 --> 00:03:30,000
147
+ The excess SAS attacks, a document object model, is an interface to treat and document as a logical
148
+
149
+ 38
150
+ 00:03:30,000 --> 00:03:34,000
151
+ tree structure where each node represents an object.
152
+
153
+ 39
154
+ 00:03:35,000 --> 00:03:41,000
155
+ And because of the document, DOM based excess attacks actually write data to the DOM.
156
+
157
+ 40
158
+ 00:03:42,000 --> 00:03:46,000
159
+ Attackers can use this to add a malicious script to that page.
160
+
161
+ 41
162
+ 00:03:47,000 --> 00:03:56,000
163
+ DOM based exercise or as it is called in some tax time, all exercise using exercise attack variant
164
+
165
+ 42
166
+ 00:03:56,000 --> 00:04:04,000
167
+ at targeting load is executed as a result of modifying the known environment in the victim's browser
168
+
169
+ 43
170
+ 00:04:04,000 --> 00:04:12,000
171
+ used by the original client side script so that the inside side code arose in an unexpected manner.
172
+
173
+ 44
174
+ 00:04:13,000 --> 00:04:20,000
175
+ That is, the page itself doesn't change, but the client's side code contains the needs of page, executes
176
+
177
+ 45
178
+ 00:04:21,000 --> 00:04:26,000
179
+ from the uses and malicious modifications that have a keyword is a DOM environment.
180
+
181
+ 46
182
+ 00:04:27,000 --> 00:04:30,000
183
+ Let me demo reflected the excess attack.
184
+
185
+ 47
186
+ 00:04:31,000 --> 00:04:38,000
187
+ Just to remind you that this is kind of attack where we use you around to inject JavaScript and we use
188
+
189
+ 48
190
+ 00:04:38,000 --> 00:04:43,000
191
+ social engineering techniques to force victim using to use our lead.
192
+
193
+ 49
194
+ 00:04:44,000 --> 00:04:46,000
195
+ My server is up and running.
196
+
197
+ 50
198
+ 00:04:46,000 --> 00:04:50,000
199
+ Imagine that I'm successfully logged in.
200
+
201
+ 51
202
+ 00:04:50,000 --> 00:04:59,000
203
+ Let me use some saved credentials to log in on the side and all of a sudden I receive an email that
204
+
205
+ 52
206
+ 00:04:59,000 --> 00:05:04,000
207
+ tells me that I need to use the link from the email to get the 90% discount.
208
+
209
+ 53
210
+ 00:05:04,000 --> 00:05:08,000
211
+ I click on it and they're redirected to go to the details page.
212
+
213
+ 54
214
+ 00:05:09,000 --> 00:05:09,000
215
+ Here it is.
216
+
217
+ 55
218
+ 00:05:10,000 --> 00:05:16,000
219
+ You can see that to request parameters, the ID and discount code.
220
+
221
+ 56
222
+ 00:05:16,000 --> 00:05:19,000
223
+ And here is the name of discount coupon.
224
+
225
+ 57
226
+ 00:05:19,000 --> 00:05:21,000
227
+ Let's imagine that.
228
+
229
+ 58
230
+ 00:05:21,000 --> 00:05:23,000
231
+ And again, this is just an example.
232
+
233
+ 59
234
+ 00:05:24,000 --> 00:05:27,000
235
+ There can be different variations in different cases.
236
+
237
+ 60
238
+ 00:05:27,000 --> 00:05:32,000
239
+ But the main thing here is that query parameter may be displayed tons of page.
240
+
241
+ 61
242
+ 00:05:33,000 --> 00:05:35,000
243
+ This allows the inject script.
244
+
245
+ 62
246
+ 00:05:36,000 --> 00:05:44,000
247
+ So I'm logged in user and the margins as you see if you read on your email, it contains injected screen.
248
+
249
+ 63
250
+ 00:05:45,000 --> 00:05:46,000
251
+ Let me paste it here.
252
+
253
+ 64
254
+ 00:05:47,000 --> 00:05:55,000
255
+ And when a click and the last thing that happened to me at first glance but realize this zero contains
256
+
257
+ 65
258
+ 00:05:55,000 --> 00:06:03,000
259
+ JavaScript code that tweets my cookies and sends the analysis server, lets me use the source code of
260
+
261
+ 66
262
+ 00:06:03,000 --> 00:06:04,000
263
+ the page.
264
+
265
+ 67
266
+ 00:06:04,000 --> 00:06:12,000
267
+ Now let me search for script tag and you can find that my script has been injected into the page.
268
+
269
+ 68
270
+ 00:06:13,000 --> 00:06:14,000
271
+ Can you see this?
272
+
273
+ 69
274
+ 00:06:14,000 --> 00:06:16,000
275
+ Write those across.
276
+
277
+ 70
278
+ 00:06:17,000 --> 00:06:24,000
279
+ I sent the cookies where I post mass does this or that and they print printed the console here largely
280
+
281
+ 71
282
+ 00:06:24,000 --> 00:06:26,000
283
+ copies this session.
284
+
285
+ 72
286
+ 00:06:26,000 --> 00:06:26,000
287
+ They did.
288
+
289
+ 73
290
+ 00:06:27,000 --> 00:06:35,000
291
+ And in that a browser, let's say in Mozilla Firefox, I will open my application what I am going to
292
+
293
+ 74
294
+ 00:06:35,000 --> 00:06:35,000
295
+ do next.
296
+
297
+ 75
298
+ 00:06:36,000 --> 00:06:44,000
299
+ I open development tools by clicking the F12 key and I find JS session and equal key in the storage
300
+
301
+ 76
302
+ 00:06:44,000 --> 00:06:44,000
303
+ tab.
304
+
305
+ 77
306
+ 00:06:45,000 --> 00:06:48,000
307
+ I will just substitute the value of our code.
308
+
309
+ 78
310
+ 00:06:48,000 --> 00:06:56,000
311
+ Key to the one I received was a help of injection and after that I refresh page and here it is.
312
+
313
+ 79
314
+ 00:06:57,000 --> 00:06:59,000
315
+ I logged in was another user.
316
+
317
+ 80
318
+ 00:07:00,000 --> 00:07:01,000
319
+ I stole this session.
320
+
321
+ 81
322
+ 00:07:02,000 --> 00:07:03,000
323
+ Can you imagine that?
324
+
325
+ 82
326
+ 00:07:04,000 --> 00:07:08,000
327
+ That's why cross-site scripting injections are so dangerous.
328
+
329
+ 83
330
+ 00:07:08,000 --> 00:07:14,000
331
+ That's why you need to be very cautious with the links that you open in the browser.
332
+
333
+ 84
334
+ 00:07:15,000 --> 00:07:16,000
335
+ Let me open the source code.
336
+
337
+ 85
338
+ 00:07:17,000 --> 00:07:19,000
339
+ Is there a threat that requires us to read them?
340
+
341
+ 86
342
+ 00:07:19,000 --> 00:07:24,000
343
+ First of all, you can find JavaScript code that I injected into the euro.
344
+
345
+ 87
346
+ 00:07:25,000 --> 00:07:33,000
347
+ I keep a command and here you can find actually the JavaScript code and then the code euro and they
348
+
349
+ 88
350
+ 00:07:33,000 --> 00:07:34,000
351
+ do get massive.
352
+
353
+ 89
354
+ 00:07:34,000 --> 00:07:42,000
355
+ You can see that they take parameters and codes into the request code and after that I for once request
356
+
357
+ 90
358
+ 00:07:42,000 --> 00:07:49,000
359
+ the my view and discount component is injected into the page in zero number 55.
360
+
361
+ 91
362
+ 00:07:50,000 --> 00:07:51,000
363
+ Can you see this?
364
+
365
+ 92
366
+ 00:07:52,000 --> 00:07:54,000
367
+ What to do and how to solve this?
368
+
369
+ 93
370
+ 00:07:55,000 --> 00:08:04,000
371
+ In most application service default configuration, we can use a response handler to help prevent cross-site
372
+
373
+ 94
374
+ 00:08:04,000 --> 00:08:11,000
375
+ scripting attacks and by default we use DPI on the flag for circle be response header.
376
+
377
+ 95
378
+ 00:08:12,000 --> 00:08:19,000
379
+ In simple words, that means that cookies can be read and sent or made by a web server.
380
+
381
+ 96
382
+ 00:08:19,000 --> 00:08:27,000
383
+ That's why, by default it is hard to extract cookies set by Tomcat Web server, but this easy to store
384
+
385
+ 97
386
+ 00:08:27,000 --> 00:08:28,000
387
+ application cookies.
388
+
389
+ 98
390
+ 00:08:29,000 --> 00:08:37,000
391
+ I mean cookies that we set from the application and not cookies that were set by web server and also
392
+
393
+ 99
394
+ 00:08:37,000 --> 00:08:44,000
395
+ as a sync will consider this course and this class in particular designed not only for Java developers,
396
+
397
+ 100
398
+ 00:08:45,000 --> 00:08:46,000
399
+ it can happen.
400
+
401
+ 101
402
+ 00:08:46,000 --> 00:08:53,000
403
+ Is that web server that you selected for your application doesn't add a CTP on the flag and by default
404
+
405
+ 102
406
+ 00:08:53,000 --> 00:08:57,000
407
+ in said cookie response had it to prevent cross-site scripting.
408
+
409
+ 103
410
+ 00:08:58,000 --> 00:09:01,000
411
+ So we be to here and do not forget to check this.
412
+
413
+ 104
414
+ 00:09:02,000 --> 00:09:08,000
415
+ I will share with you example of Tomcat configuration and you will be able to find similar configuration
416
+
417
+ 105
418
+ 00:09:08,000 --> 00:09:10,000
419
+ on this service.
420
+
421
+ 106
422
+ 00:09:10,000 --> 00:09:18,000
423
+ To reproduce a case where I stole your cookies, I set use based on the attributes value to false.
424
+
425
+ 107
426
+ 00:09:18,000 --> 00:09:23,000
427
+ We can configure this in the context XML file on the Tomcat level.
428
+
429
+ 108
430
+ 00:09:24,000 --> 00:09:33,000
431
+ Context sex symbol is located in the folder of the Tomcat in case you run Tomcat from eclipse context.
432
+
433
+ 109
434
+ 00:09:33,000 --> 00:09:36,000
435
+ S.O. is located in the middle is folder.
436
+
437
+ 110
438
+ 00:09:36,000 --> 00:09:46,000
439
+ Here you can see I said use only attitude of context element to false and after this tomcat doesn't
440
+
441
+ 111
442
+ 00:09:46,000 --> 00:09:50,000
443
+ prevent the cross-site scripting for cookies set by the server.
444
+
445
+ 112
446
+ 00:09:51,000 --> 00:09:59,000
447
+ To fix this, I need to remove this attribute because it is true by default or to set true vividly here.
448
+
449
+ 113
450
+ 00:10:00,000 --> 00:10:04,000
451
+ I am sure that you can find similar configuration on the web server.
452
+
453
+ 114
454
+ 00:10:06,000 --> 00:10:11,000
455
+ Another way of preventing such attacks is a key point of our tools.
456
+
457
+ 115
458
+ 00:10:11,000 --> 00:10:20,000
459
+ In this particular example, we use GCP and G isto ingest with out attack that allows us to escape out.
460
+
461
+ 116
462
+ 00:10:21,000 --> 00:10:27,000
463
+ Let me on Coleman's slide and I will refresh the page in browser.
464
+
465
+ 117
466
+ 00:10:27,000 --> 00:10:35,000
467
+ As you can see, when I escape tax, then JavaScript will not be injected into the page script.
468
+
469
+ 118
470
+ 00:10:36,000 --> 00:10:39,000
471
+ It will be injected as text and will not be executed.
472
+
473
+ 119
474
+ 00:10:40,000 --> 00:10:47,000
475
+ Talking about persistent exercise, attacks and lives, there is no sense to imitate other cases because
476
+
477
+ 120
478
+ 00:10:47,000 --> 00:10:49,000
479
+ they will be almost similar.
480
+
481
+ 121
482
+ 00:10:49,000 --> 00:10:57,000
483
+ Imagine that somebody left a comment on the PDP page and the comment contains JavaScript code.
484
+
485
+ 122
486
+ 00:10:57,000 --> 00:11:03,000
487
+ This code will be stored in the database and obviously one page will be loaded.
488
+
489
+ 123
490
+ 00:11:03,000 --> 00:11:08,000
491
+ The JavaScript code will be loaded on the page and executed.
492
+
493
+ 124
494
+ 00:11:08,000 --> 00:11:11,000
495
+ And again, also second examples from this lesson.
496
+
497
+ 125
498
+ 00:11:11,000 --> 00:11:13,000
499
+ You can find an attachment to the lesson.
500
+
501
+ 126
502
+ 00:11:14,000 --> 00:11:21,000
503
+ Take your time, investigate all examples provided and remember, this is amazing.
504
+
505
+ 127
506
+ 00:11:21,000 --> 00:11:27,000
507
+ To Prevent Access Attack is to never trust the data as it comes from outside of the application.
508
+
509
+ 128
510
+ 00:11:28,000 --> 00:11:36,000
511
+ Always treat any kind of vehicle as a suspect until you capable to avoid cases like this.
512
+
513
+ 129
514
+ 00:11:36,000 --> 00:11:46,000
515
+ Make sure you escape all HTML tags before you store it in the database or when you send data from that
516
+
517
+ 130
518
+ 00:11:47,000 --> 00:11:48,000
519
+ before escaping.
520
+
521
+ 131
522
+ 00:11:48,000 --> 00:11:51,000
523
+ Input validation is another valuable strategy.
524
+
525
+ 132
526
+ 00:11:51,000 --> 00:11:58,000
527
+ When dealing with user input for some kinds of data, it might make sense to use an allow based approach
528
+
529
+ 133
530
+ 00:11:59,000 --> 00:12:03,000
531
+ interview to allow this approach few times already, including our previous lesson.
532
+
533
+ 134
534
+ 00:12:04,000 --> 00:12:06,000
535
+ One We talked about broken access control.
536
+
537
+ 135
538
+ 00:12:07,000 --> 00:12:13,000
539
+ So I believe you are familiar with this technique is allowing the use of at least of the validate as
540
+
541
+ 136
542
+ 00:12:13,000 --> 00:12:17,000
543
+ it can be accepted and everyone else is not.
544
+
545
+ 137
546
+ 00:12:18,000 --> 00:12:26,000
547
+ And also there are tools that can be integrated into this is useful and can help you to detect and prevent
548
+
549
+ 138
550
+ 00:12:26,000 --> 00:12:31,000
551
+ not only excess attacks but also other potential threats.
552
+
553
+ 139
554
+ 00:12:32,000 --> 00:12:36,000
555
+ Let's now talk about sequel GP and those sequel injections.
556
+
557
+ 140
558
+ 00:12:37,000 --> 00:12:43,000
559
+ I decided to discuss these types of injections together as a group because all of them I am both and
560
+
561
+ 141
562
+ 00:12:44,000 --> 00:12:46,000
563
+ seeing all these kinds of injections.
564
+
565
+ 142
566
+ 00:12:46,000 --> 00:12:52,000
567
+ The record on Impact and Persistence Stores talking about SQL injections.
568
+
569
+ 143
570
+ 00:12:52,000 --> 00:12:54,000
571
+ I would like to do even advice.
572
+
573
+ 144
574
+ 00:12:54,000 --> 00:12:58,000
575
+ Please check our previous lesson about cryptographic failures.
576
+
577
+ 145
578
+ 00:12:59,000 --> 00:13:07,000
579
+ In that lesson I showed example wisdom of situation of impact of sun passports in the database in not
580
+
581
+ 146
582
+ 00:13:07,000 --> 00:13:08,000
583
+ encrypted form.
584
+
585
+ 147
586
+ 00:13:08,000 --> 00:13:14,000
587
+ And in the example, I used SQL injection to retrieve data from persistent storage.
588
+
589
+ 148
590
+ 00:13:15,000 --> 00:13:19,000
591
+ So please check with those lessons to learn more about SQL injection.
592
+
593
+ 149
594
+ 00:13:20,000 --> 00:13:23,000
595
+ And in general, we have not the easiest topics to them.
596
+
597
+ 150
598
+ 00:13:24,000 --> 00:13:31,000
599
+ Security questions never very easy once place the notes, skip lessons to not be lost in the context.
600
+
601
+ 151
602
+ 00:13:32,000 --> 00:13:38,000
603
+ And again you will be able to find source code of SQL injection examples in the previous lessons.
604
+
605
+ 152
606
+ 00:13:39,000 --> 00:13:41,000
607
+ As you can see, vulnerabilities.
608
+
609
+ 153
610
+ 00:13:41,000 --> 00:13:43,000
611
+ I used to guess it was possible.
612
+
613
+ 154
614
+ 00:13:44,000 --> 00:13:50,000
615
+ For example, SQL injection where immunity may be used to discover cryptographic servers.
616
+
617
+ 155
618
+ 00:13:50,000 --> 00:13:57,000
619
+ That's why I don't see and the access to duplicate demo of examples, but instead I will help you to
620
+
621
+ 156
622
+ 00:13:57,000 --> 00:13:59,000
623
+ connect the dots together.
624
+
625
+ 157
626
+ 00:14:00,000 --> 00:14:01,000
627
+ Ensure.
628
+
629
+ 158
630
+ 00:14:01,000 --> 00:14:07,000
631
+ I'd like to recalls the course of injections SQL injection accuracy ones.
632
+
633
+ 159
634
+ 00:14:07,000 --> 00:14:15,000
635
+ The application uses untrusted user input to build and SQL query using the string and executable.
636
+
637
+ 160
638
+ 00:14:16,000 --> 00:14:20,000
639
+ It is recommended to use query parameters in order to prevent injection.
640
+
641
+ 161
642
+ 00:14:21,000 --> 00:14:29,000
643
+ Also use name and also SQL controls was increased to prevent most disclosure of records in case of secure
644
+
645
+ 162
646
+ 00:14:29,000 --> 00:14:30,000
647
+ injection.
648
+
649
+ 163
650
+ 00:14:31,000 --> 00:14:38,000
651
+ We're going to have a separate lesson about the persistence API and I will cover all the specifics in
652
+
653
+ 164
654
+ 00:14:38,000 --> 00:14:39,000
655
+ those lessons.
656
+
657
+ 165
658
+ 00:14:40,000 --> 00:14:47,000
659
+ But talking about injections, I can say that the root cause of GP injection is very similar to the
660
+
661
+ 166
662
+ 00:14:47,000 --> 00:14:48,000
663
+ sequel injections.
664
+
665
+ 167
666
+ 00:14:48,000 --> 00:14:51,000
667
+ GP injection cures ones.
668
+
669
+ 168
670
+ 00:14:51,000 --> 00:14:58,000
671
+ The application uses untrusted user to build the GP query using S3 and executed.
672
+
673
+ 169
674
+ 00:14:59,000 --> 00:15:06,000
675
+ It's quite similar to sequel injection, but the ultimate language isn't sequel but the GP where it
676
+
677
+ 170
678
+ 00:15:06,000 --> 00:15:06,000
679
+ went.
680
+
681
+ 171
682
+ 00:15:07,000 --> 00:15:15,000
683
+ And again, to prevent the GP injection, it is recommended to use a persistent square and causation.
684
+
685
+ 172
686
+ 00:15:16,000 --> 00:15:23,000
687
+ A few words about no SQL injection injection of this type of queue or was the application uses untrusted
688
+
689
+ 173
690
+ 00:15:23,000 --> 00:15:32,000
691
+ use of the input to build and no SQL API call expression as many no of this system and each one to use
692
+
693
+ 174
694
+ 00:15:32,000 --> 00:15:33,000
695
+ API for call.
696
+
697
+ 175
698
+ 00:15:34,000 --> 00:15:40,000
699
+ It is important to ensure that user input received and is used to build the API.
700
+
701
+ 176
702
+ 00:15:40,000 --> 00:15:46,000
703
+ Call expression does not contain any characters that have the special name is a target API.
704
+
705
+ 177
706
+ 00:15:46,000 --> 00:15:47,000
707
+ See this.
708
+
709
+ 178
710
+ 00:15:48,000 --> 00:15:51,000
711
+ We need to check this in order to avoid that.
712
+
713
+ 179
714
+ 00:15:51,000 --> 00:15:59,000
715
+ Some characters will be used to escape the initial call expression in order to create another one based
716
+
717
+ 180
718
+ 00:15:59,000 --> 00:16:01,000
719
+ on crafted user input.
720
+
721
+ 181
722
+ 00:16:02,000 --> 00:16:10,000
723
+ It is also important to not use String Nation to build API call expression, but to use the API to create
724
+
725
+ 182
726
+ 00:16:10,000 --> 00:16:19,000
727
+ an expression similar to the way how we use to prepare a statement instead of statement in Java in example
728
+
729
+ 183
730
+ 00:16:19,000 --> 00:16:21,000
731
+ about sequel injections.
732
+
733
+ 184
734
+ 00:16:22,000 --> 00:16:24,000
735
+ That states got injections.
736
+
737
+ 185
738
+ 00:16:24,000 --> 00:16:26,000
739
+ That can impact our database storage.
740
+
73 - OWASP Top 10 2021/007 Source-code-examples-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/i/problem
73 - OWASP Top 10 2021/008 Injection (XPath Injection, Log Injection, Input Validation)_en.srt ADDED
@@ -0,0 +1,716 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:02,000 --> 00:00:10,000
3
+ Let's talk now about exports, injection, web applications, store and access data in various ways
4
+
5
+ 2
6
+ 00:00:10,000 --> 00:00:13,000
7
+ and for us, dependent upon the use cases.
8
+
9
+ 3
10
+ 00:00:14,000 --> 00:00:21,000
11
+ Historically, relational databases have been the popular choice among various databases to store large
12
+
13
+ 4
14
+ 00:00:21,000 --> 00:00:22,000
15
+ amounts of data.
16
+
17
+ 5
18
+ 00:00:23,000 --> 00:00:29,000
19
+ However, sometimes we still prefer to use Excel for storing some kind of data.
20
+
21
+ 6
22
+ 00:00:29,000 --> 00:00:34,000
23
+ It can be configurations, but not only on the using maximum.
24
+
25
+ 7
26
+ 00:00:34,000 --> 00:00:41,000
27
+ The data is stored in master structure is a form of trees rather than columns and rows.
28
+
29
+ 8
30
+ 00:00:42,000 --> 00:00:50,000
31
+ To understand what each sparse injection we need to understand, what makes us is the data store of
32
+
33
+ 9
34
+ 00:00:50,000 --> 00:00:53,000
35
+ the x amount can be queried x plus.
36
+
37
+ 10
38
+ 00:00:54,000 --> 00:01:00,000
39
+ It is a query language and is used to locate specific elements in an accidental document.
40
+
41
+ 11
42
+ 00:01:00,000 --> 00:01:07,000
43
+ There are no access level permissions and it is possible to refer almost any parts of an excellent document.
44
+
45
+ 12
46
+ 00:01:07,000 --> 00:01:15,000
47
+ Unlike SIC, which allows restrictions on databases, tables or columns similar to single injection
48
+
49
+ 13
50
+ 00:01:15,000 --> 00:01:23,000
51
+ POS injections operate on websites that use a user supplied information to construct an express query.
52
+
53
+ 14
54
+ 00:01:23,000 --> 00:01:31,000
55
+ For example, data by sending intentionally malformed information into the website and a target can
56
+
57
+ 15
58
+ 00:01:31,000 --> 00:01:42,000
59
+ find out how x small data is structured or x data that he may not normally have access to experts injections
60
+
61
+ 16
62
+ 00:01:42,000 --> 00:01:50,000
63
+ might be even more dangerous than SQL injections since the X Plus Blocks Access Control allows querying
64
+
65
+ 17
66
+ 00:01:50,000 --> 00:01:53,000
67
+ of the complete X amount document.
68
+
69
+ 18
70
+ 00:01:53,000 --> 00:02:02,000
71
+ Whereas many SQL databases have metal tables that can be accessed by regular queries before reviewing
72
+
73
+ 19
74
+ 00:02:02,000 --> 00:02:03,000
75
+ the express injection.
76
+
77
+ 20
78
+ 00:02:03,000 --> 00:02:10,000
79
+ Examples, I have to say that it is important to you to know what maximum on the x plus is taking into
80
+
81
+ 21
82
+ 00:02:10,000 --> 00:02:11,000
83
+ account.
84
+
85
+ 22
86
+ 00:02:11,000 --> 00:02:19,000
87
+ This is why the topic I want to warn you is in this lesson we are not going to loan x amount and x pass.
88
+
89
+ 23
90
+ 00:02:19,000 --> 00:02:23,000
91
+ We're going to have a separate lesson about eczema and expose.
92
+
93
+ 24
94
+ 00:02:24,000 --> 00:02:26,000
95
+ Let's review X plus injection demo.
96
+
97
+ 25
98
+ 00:02:26,000 --> 00:02:31,000
99
+ Now we will use the excellent sequence that you see in the slide for the examples.
100
+
101
+ 26
102
+ 00:02:32,000 --> 00:02:38,000
103
+ So this is a collection of employees and believe that excellent example is self describing.
104
+
105
+ 27
106
+ 00:02:39,000 --> 00:02:46,000
107
+ Suppose we have a user authentication system on a web page that used a data file of this sort to log
108
+
109
+ 28
110
+ 00:02:46,000 --> 00:02:47,000
111
+ in users.
112
+
113
+ 29
114
+ 00:02:48,000 --> 00:02:54,000
115
+ Once username and password have been supplied, the software might use x pos to load copies.
116
+
117
+ 30
118
+ 00:02:54,000 --> 00:02:57,000
119
+ The user like you can see on this slide.
120
+
121
+ 31
122
+ 00:02:57,000 --> 00:03:00,000
123
+ These are examples.
124
+
125
+ 32
126
+ 00:03:00,000 --> 00:03:08,000
127
+ You can see that I get username from request and I get the personal request was a normal username and
128
+
129
+ 33
130
+ 00:03:08,000 --> 00:03:08,000
131
+ password.
132
+
133
+ 34
134
+ 00:03:08,000 --> 00:03:17,000
135
+ This is possible work, but an attacker may send that username and password and they get an example.
136
+
137
+ 35
138
+ 00:03:17,000 --> 00:03:17,000
139
+ No.
140
+
141
+ 36
142
+ 00:03:17,000 --> 00:03:20,000
143
+ So access will result in a user name or password.
144
+
145
+ 37
146
+ 00:03:20,000 --> 00:03:24,000
147
+ Like this you can see example of username and password.
148
+
149
+ 38
150
+ 00:03:24,000 --> 00:03:28,000
151
+ Sam Z give us and ASICs expression.
152
+
153
+ 39
154
+ 00:03:28,000 --> 00:03:35,000
155
+ The express expression was Well, this now looks like this, which is logically equivalent to what you
156
+
157
+ 40
158
+ 00:03:35,000 --> 00:03:36,000
159
+ see on the slide.
160
+
161
+ 41
162
+ 00:03:37,000 --> 00:03:41,000
163
+ In this case, one of the first parts of the X plus needs to be true.
164
+
165
+ 42
166
+ 00:03:42,000 --> 00:03:50,000
167
+ Is it possible part becomes irrelevant and the username part will match all employees because of the
168
+
169
+ 43
170
+ 00:03:50,000 --> 00:03:51,000
171
+ one equal one path.
172
+
173
+ 44
174
+ 00:03:52,000 --> 00:03:54,000
175
+ How to prevent x pos injection.
176
+
177
+ 45
178
+ 00:03:55,000 --> 00:04:02,000
179
+ Just slides the techniques with secure injection you need to use it tries to expose the interface if
180
+
181
+ 46
182
+ 00:04:02,000 --> 00:04:10,000
183
+ one is available or escapes the user input to make it safe to load in dynamically constructed query.
184
+
185
+ 47
186
+ 00:04:11,000 --> 00:04:19,000
187
+ If you use calls to terminate untrusted input in a dynamic constructed x POS query, then you use cables
188
+
189
+ 48
190
+ 00:04:19,000 --> 00:04:28,000
191
+ that quote these untrusted inputs to ensure that untrusted data can try to break out of that quoted
192
+
193
+ 49
194
+ 00:04:28,000 --> 00:04:30,000
195
+ context in the following example.
196
+
197
+ 50
198
+ 00:04:30,000 --> 00:04:38,000
199
+ Single quotes are used to terminate the user name and password parameters, and thus a better mitigation
200
+
201
+ 51
202
+ 00:04:38,000 --> 00:04:41,000
203
+ option is to use a compiled POS query.
204
+
205
+ 52
206
+ 00:04:42,000 --> 00:04:50,000
207
+ Click on coiled expose queries already preset before the program executes, whereas than create on the
208
+
209
+ 53
210
+ 00:04:50,000 --> 00:04:54,000
211
+ fly after the user's input has been added to the stream.
212
+
213
+ 54
214
+ 00:04:55,000 --> 00:05:01,000
215
+ This is a better world because you don't have to worry about making a character that should have been.
216
+
217
+ 55
218
+ 00:05:01,000 --> 00:05:02,000
219
+ Kate.
220
+
221
+ 56
222
+ 00:05:03,000 --> 00:05:07,000
223
+ And the last but not least example for today is a log injection.
224
+
225
+ 57
226
+ 00:05:07,000 --> 00:05:15,000
227
+ Applications typically used to lock files to store a history of events or transactions for later review
228
+
229
+ 58
230
+ 00:05:15,000 --> 00:05:18,000
231
+ statistics, revising or debugging.
232
+
233
+ 59
234
+ 00:05:18,000 --> 00:05:25,000
235
+ Dependent on the nature of the application, the task of reviewing the log files may be performed manually
236
+
237
+ 60
238
+ 00:05:26,000 --> 00:05:34,000
239
+ on an as needed basis for automated was a tool that automatically calls for important events or trend
240
+
241
+ 61
242
+ 00:05:34,000 --> 00:05:35,000
243
+ information.
244
+
245
+ 62
246
+ 00:05:36,000 --> 00:05:40,000
247
+ What is a log injection logging action?
248
+
249
+ 63
250
+ 00:05:40,000 --> 00:05:47,000
251
+ How often called log forgery is a vulnerability that arises when untrusted and validated.
252
+
253
+ 64
254
+ 00:05:48,000 --> 00:05:51,000
255
+ Input is allowed to be created in system log files.
256
+
257
+ 65
258
+ 00:05:52,000 --> 00:06:00,000
259
+ As a result, an attacker can insert malicious data and false entries into the logs and also to corrupt
260
+
261
+ 66
262
+ 00:06:00,000 --> 00:06:01,000
263
+ the file.
264
+
265
+ 67
266
+ 00:06:02,000 --> 00:06:11,000
267
+ The corrupted files can be used to cover the tracks of a heart attack path injection with just a Q when
268
+
269
+ 68
270
+ 00:06:11,000 --> 00:06:18,000
271
+ data and there's an application from an and trusted source, the data is written to an application or
272
+
273
+ 69
274
+ 00:06:18,000 --> 00:06:19,000
275
+ system log file.
276
+
277
+ 70
278
+ 00:06:20,000 --> 00:06:27,000
279
+ Successful lock injection attacks can cause injection of new bogus events.
280
+
281
+ 71
282
+ 00:06:28,000 --> 00:06:30,000
283
+ Look for an injection.
284
+
285
+ 72
286
+ 00:06:31,000 --> 00:06:38,000
287
+ Injection of excess attacks opens as a malicious or current is of use in a vulnerable web application
288
+
289
+ 73
290
+ 00:06:39,000 --> 00:06:45,000
291
+ injection of commands that parsers like HP passes could execute.
292
+
293
+ 74
294
+ 00:06:45,000 --> 00:06:48,000
295
+ Let's review log injection demo.
296
+
297
+ 75
298
+ 00:06:48,000 --> 00:06:51,000
299
+ Now these are most benign case.
300
+
301
+ 76
302
+ 00:06:51,000 --> 00:06:55,000
303
+ An attacker may be able to serve false answers to the log file.
304
+
305
+ 77
306
+ 00:06:56,000 --> 00:07:02,000
307
+ By providing that application, we see that we can lose a copy of characters.
308
+
309
+ 78
310
+ 00:07:02,000 --> 00:07:10,000
311
+ If the log file is processed automatically, the attacker can render the file unusable by corrupting
312
+
313
+ 79
314
+ 00:07:10,000 --> 00:07:16,000
315
+ the format of the file or inject an unexpected characters or more subtle attack.
316
+
317
+ 80
318
+ 00:07:16,000 --> 00:07:18,000
319
+ Might be old school.
320
+
321
+ 81
322
+ 00:07:18,000 --> 00:07:27,000
323
+ The log file statistics forged or otherwise corrupted log files can be used to cover and attackers tracks
324
+
325
+ 82
326
+ 00:07:27,000 --> 00:07:32,000
327
+ or even to implicate another party in the commission of a malicious act.
328
+
329
+ 83
330
+ 00:07:32,000 --> 00:07:35,000
331
+ Let's review quote examples was log for you.
332
+
333
+ 84
334
+ 00:07:36,000 --> 00:07:40,000
335
+ On this slide you can see the source code of web application.
336
+
337
+ 85
338
+ 00:07:40,000 --> 00:07:47,000
339
+ This particular piece of code application reads parameter from the request and passes it to integer.
340
+
341
+ 86
342
+ 00:07:48,000 --> 00:07:51,000
343
+ It is parameter can be passed.
344
+
345
+ 87
346
+ 00:07:51,000 --> 00:07:57,000
347
+ Xen will input if a user submits just 31234.
348
+
349
+ 88
350
+ 00:07:58,000 --> 00:08:03,000
351
+ The following entry is locked, fails to pass and one is me.
352
+
353
+ 89
354
+ 00:08:04,000 --> 00:08:15,000
355
+ However, if an attacker submits a313 info user logged out and user name, the following entry is locked.
356
+
357
+ 90
358
+ 00:08:16,000 --> 00:08:18,000
359
+ Failed to pass a new one.
360
+
361
+ 91
362
+ 00:08:18,000 --> 00:08:20,000
363
+ Sweet user walked out.
364
+
365
+ 92
366
+ 00:08:20,000 --> 00:08:23,000
367
+ That got me on it.
368
+
369
+ 93
370
+ 00:08:23,000 --> 00:08:27,000
371
+ Attackers can use this same mechanism to insert arbitrary lock.
372
+
373
+ 94
374
+ 00:08:27,000 --> 00:08:35,000
375
+ ANDREWS So how to prevent lock injection to prevent an attacker from writing malicious content into
376
+
377
+ 95
378
+ 00:08:35,000 --> 00:08:36,000
379
+ the application log?
380
+
381
+ 96
382
+ 00:08:36,000 --> 00:08:45,000
383
+ Applied sciences such as as a user input is used to prevent injection of carriage return on the characters
384
+
385
+ 97
386
+ 00:08:46,000 --> 00:08:50,000
387
+ limit the size of the user equals value used to create the lock message.
388
+
389
+ 98
390
+ 00:08:51,000 --> 00:08:58,000
391
+ Make sure all exercise defenses are applied when you invoke files in the browser that sits with current
392
+
393
+ 99
394
+ 00:08:59,000 --> 00:08:59,000
395
+ injection.
396
+
397
+ 100
398
+ 00:09:00,000 --> 00:09:01,000
399
+ Let's continue.
400
+
401
+ 101
402
+ 00:09:02,000 --> 00:09:09,000
403
+ We reviewed a lot of different injections for ambulances, also learned how to prevent each particular
404
+
405
+ 102
406
+ 00:09:09,000 --> 00:09:10,000
407
+ injection.
408
+
409
+ 103
410
+ 00:09:10,000 --> 00:09:17,000
411
+ But still, let's sum it up and make some general statements that you need to follow to prevent injections.
412
+
413
+ 104
414
+ 00:09:18,000 --> 00:09:23,000
415
+ The following points can be applied in a general way to prevent injection issue.
416
+
417
+ 105
418
+ 00:09:24,000 --> 00:09:33,000
419
+ Apply input validation using arrow based approach combined was out with some Tyson plus escape and user
420
+
421
+ 106
422
+ 00:09:33,000 --> 00:09:34,000
423
+ input output.
424
+
425
+ 107
426
+ 00:09:35,000 --> 00:09:41,000
427
+ If you interact with the system, try to use API features provided by a technology stack.
428
+
429
+ 108
430
+ 00:09:42,000 --> 00:09:44,000
431
+ Java but not the key.
432
+
433
+ 109
434
+ 00:09:44,000 --> 00:09:49,000
435
+ Instead of give them command and execute an aid in the command line.
436
+
437
+ 110
438
+ 00:09:49,000 --> 00:09:49,000
439
+ So.
440
+
441
+ 111
442
+ 00:09:50,000 --> 00:09:58,000
443
+ For any residual, then that requires of special characters using the specific escape syntax for that
444
+
445
+ 112
446
+ 00:09:58,000 --> 00:09:58,000
447
+ interpreter.
448
+
449
+ 113
450
+ 00:09:59,000 --> 00:10:07,000
451
+ So the general idea was, is to work with the input, let's input validation strategies.
452
+
453
+ 114
454
+ 00:10:07,000 --> 00:10:13,000
455
+ I believe that by this moment, unless you understand what is the goal of the input validation.
456
+
457
+ 115
458
+ 00:10:14,000 --> 00:10:21,000
459
+ But let's make it crystal clear what main goals of input validation are and when we should use information
460
+
461
+ 116
462
+ 00:10:21,000 --> 00:10:23,000
463
+ to use input validation.
464
+
465
+ 117
466
+ 00:10:23,000 --> 00:10:33,000
467
+ This performed to ensure all of the data is entries of workflow information system programs and malformed
468
+
469
+ 118
470
+ 00:10:33,000 --> 00:10:39,000
471
+ data from persistent database and triggering malfunction of various downstream components.
472
+
473
+ 119
474
+ 00:10:40,000 --> 00:10:48,000
475
+ Input validation should happen as early as possible and the data flow perform as soon as a data is received
476
+
477
+ 120
478
+ 00:10:48,000 --> 00:10:49,000
479
+ from the external party.
480
+
481
+ 121
482
+ 00:10:50,000 --> 00:10:57,000
483
+ Data from all potentially untrusted sources should be subject to input validation, including not only
484
+
485
+ 122
486
+ 00:10:57,000 --> 00:11:07,000
487
+ internet facing web clients, but also by hand feeds over extra Nats from suppliers or vendors or regulators,
488
+
489
+ 123
490
+ 00:11:08,000 --> 00:11:15,000
491
+ each of which may be compromised on their own and starts sending multiple data input.
492
+
493
+ 124
494
+ 00:11:15,000 --> 00:11:23,000
495
+ Validation should not be used as a primary method of preventing the excess cycle injection and other
496
+
497
+ 125
498
+ 00:11:23,000 --> 00:11:30,000
499
+ attacks which are covered in respective cheat sheets but can significantly contribute to reducing the
500
+
501
+ 126
502
+ 00:11:30,000 --> 00:11:32,000
503
+ impact if implemented properly.
504
+
505
+ 127
506
+ 00:11:33,000 --> 00:11:37,000
507
+ There are different input validation strategies that we have to consider.
508
+
509
+ 128
510
+ 00:11:37,000 --> 00:11:43,000
511
+ Input validation should be applied on both syntactical and semantic level.
512
+
513
+ 129
514
+ 00:11:44,000 --> 00:11:49,000
515
+ Syntactic validation should enforce correct syntax of structured fields.
516
+
517
+ 130
518
+ 00:11:49,000 --> 00:11:57,000
519
+ For example, date formal semantic validation should enforce correctness of the values in a specific
520
+
521
+ 131
522
+ 00:11:57,000 --> 00:11:58,000
523
+ business context.
524
+
525
+ 132
526
+ 00:11:59,000 --> 00:12:04,000
527
+ For example, start date is before and the price is wasn't expected to change.
528
+
529
+ 133
530
+ 00:12:05,000 --> 00:12:12,000
531
+ It is always recommended to prevent attacks as early as possible as it causes some of the user's attackers
532
+
533
+ 134
534
+ 00:12:12,000 --> 00:12:14,000
535
+ request in code.
536
+
537
+ 135
538
+ 00:12:14,000 --> 00:12:18,000
539
+ Validation can be used to detect unauthorized input.
540
+
541
+ 136
542
+ 00:12:18,000 --> 00:12:21,000
543
+ Before this process was application.
544
+
545
+ 137
546
+ 00:12:22,000 --> 00:12:28,000
547
+ You can implement input validation in different programming language by using existing toolset.
548
+
549
+ 138
550
+ 00:12:28,000 --> 00:12:37,000
551
+ All external libraries enforce syntactic and semantic correctness validation against the source schema
552
+
553
+ 139
554
+ 00:12:37,000 --> 00:12:40,000
555
+ and XML schema x as the four e.
556
+
557
+ 140
558
+ 00:12:40,000 --> 00:12:46,000
559
+ In these four months, you stop conversions that is available in your programming language with strict
560
+
561
+ 141
562
+ 00:12:46,000 --> 00:12:54,000
563
+ exception handling for example in Java or seems massive in integer type supports integers.
564
+
565
+ 142
566
+ 00:12:55,000 --> 00:13:02,000
567
+ Minimum and maximum value rank checks on numerical parameters, some dates minimum and maximum lengths.
568
+
569
+ 143
570
+ 00:13:02,000 --> 00:13:08,000
571
+ Check for strings array of allowed values for small sets of string parameters.
572
+
573
+ 144
574
+ 00:13:08,000 --> 00:13:15,000
575
+ For example, if you need to validate inputs of days of week, regular expressions for plays and characters
576
+
577
+ 145
578
+ 00:13:15,000 --> 00:13:16,000
579
+ if needed.
580
+
581
+ 146
582
+ 00:13:16,000 --> 00:13:23,000
583
+ For example, if you need to substitute some content or escape some characters, we also use the zoo
584
+
585
+ 147
586
+ 00:13:23,000 --> 00:13:29,000
587
+ technique of allow us to look and never forget about civilization.
588
+
589
+ 148
590
+ 00:13:29,000 --> 00:13:36,000
591
+ Remember that a tiger can bypass front and foundation, so never forget to implement flotation on your
592
+
593
+ 149
594
+ 00:13:36,000 --> 00:13:36,000
595
+ Samsung.
596
+
597
+ 150
598
+ 00:13:38,000 --> 00:13:41,000
599
+ Separately, I'd like to talk about file upload.
600
+
601
+ 151
602
+ 00:13:41,000 --> 00:13:47,000
603
+ This is also important that should be validated very often in web applications.
604
+
605
+ 152
606
+ 00:13:47,000 --> 00:13:51,000
607
+ We can upload a user profile picture or some archive data.
608
+
609
+ 153
610
+ 00:13:52,000 --> 00:13:53,000
611
+ Here are some rules.
612
+
613
+ 154
614
+ 00:13:54,000 --> 00:14:00,000
615
+ Use input validation to ensure that upload file name uses and expected extension.
616
+
617
+ 155
618
+ 00:14:00,000 --> 00:14:00,000
619
+ But.
620
+
621
+ 156
622
+ 00:14:01,000 --> 00:14:06,000
623
+ Ensures that promoted file is not larger than a defined maximum file size.
624
+
625
+ 157
626
+ 00:14:07,000 --> 00:14:15,000
627
+ By the way, this is important because attackers can break a server by uploading huge files intentionally.
628
+
629
+ 158
630
+ 00:14:15,000 --> 00:14:22,000
631
+ If the website supports zip file, upload the validation check before unzip the file.
632
+
633
+ 159
634
+ 00:14:22,000 --> 00:14:32,000
635
+ The check includes a target pass level of compressed estimated zip size use image the writing libraries
636
+
637
+ 160
638
+ 00:14:32,000 --> 00:14:40,000
639
+ to verify the image is valid and to strip away extraneous content said the extension of the image could
640
+
641
+ 161
642
+ 00:14:40,000 --> 00:14:46,000
643
+ be about the image extension based on the detected content type of the image from the image processing,
644
+
645
+ 162
646
+ 00:14:47,000 --> 00:14:54,000
647
+ namely the not just trust is a header from SAP for insurers of the Texas content, part of the image
648
+
649
+ 163
650
+ 00:14:54,000 --> 00:14:57,000
651
+ is within a list of defined image types.
652
+
653
+ 164
654
+ 00:14:58,000 --> 00:15:01,000
655
+ JPG, dng, etc..
656
+
657
+ 165
658
+ 00:15:02,000 --> 00:15:04,000
659
+ That's all what I wanted to share with you in this lesson.
660
+
661
+ 166
662
+ 00:15:05,000 --> 00:15:07,000
663
+ Let's recap what we have learned.
664
+
665
+ 167
666
+ 00:15:08,000 --> 00:15:16,000
667
+ In this licensing and injection risk category, we make a comparison of the risk category in our top
668
+
669
+ 168
670
+ 00:15:16,000 --> 00:15:16,000
671
+ ten.
672
+
673
+ 169
674
+ 00:15:16,000 --> 00:15:20,000
675
+ 2021 was top ten 2017.
676
+
677
+ 170
678
+ 00:15:20,000 --> 00:15:29,000
679
+ We reviewed different injection types, namely command injection, cross-site scripting and by the way,
680
+
681
+ 171
682
+ 00:15:29,000 --> 00:15:32,000
683
+ we reviewed different types of cross-site scripting.
684
+
685
+ 172
686
+ 00:15:33,000 --> 00:15:40,000
687
+ SQL Injection injection no injection x amount x pass injection, walk injection.
688
+
689
+ 173
690
+ 00:15:41,000 --> 00:15:43,000
691
+ And at the end of the lesson was summarized.
692
+
693
+ 174
694
+ 00:15:43,000 --> 00:15:50,000
695
+ The key sense is that we need to remember to prevent injection liabilities and relevant input validation
696
+
697
+ 175
698
+ 00:15:50,000 --> 00:15:52,000
699
+ strategies and techniques.
700
+
701
+ 176
702
+ 00:15:53,000 --> 00:15:55,000
703
+ That's all what I wanted to share with you in this lesson.
704
+
705
+ 177
706
+ 00:15:56,000 --> 00:15:57,000
707
+ Thanks a lot for your attention.
708
+
709
+ 178
710
+ 00:15:58,000 --> 00:16:00,000
711
+ Have a great day and see things.
712
+
713
+ 179
714
+ 00:16:00,000 --> 00:16:01,000
715
+ The next lesson.
716
+
73 - OWASP Top 10 2021/008 Source-code-examples-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/i/problem
73 - OWASP Top 10 2021/009 Insecure Design (Overivew, CWEs, Shift Left Security, Threat Modeling Manifesto)_en.srt ADDED
@@ -0,0 +1,868 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:08,000
7
+ The day we start new topic.
8
+
9
+ 3
10
+ 00:00:09,000 --> 00:00:15,000
11
+ This time we're going to discuss insecure design risk category from a loss that as always, we're going
12
+
13
+ 4
14
+ 00:00:15,000 --> 00:00:22,000
15
+ to start our lesson from the general overview to help you understand that what this risk category is
16
+
17
+ 5
18
+ 00:00:22,000 --> 00:00:23,000
19
+ about.
20
+
21
+ 6
22
+ 00:00:23,000 --> 00:00:30,000
23
+ We're going to compare insecure design and insecure implementation and we are going to understand the
24
+
25
+ 7
26
+ 00:00:30,000 --> 00:00:31,000
27
+ difference.
28
+
29
+ 8
30
+ 00:00:31,000 --> 00:00:37,000
31
+ Your insurance will then you chance, for example, shift left approach.
32
+
33
+ 9
34
+ 00:00:37,000 --> 00:00:39,000
35
+ I will explain what it is.
36
+
37
+ 10
38
+ 00:00:40,000 --> 00:00:46,000
39
+ We'll discuss the most notable common weakness enumerations that are associated with this risk category.
40
+
41
+ 11
42
+ 00:00:47,000 --> 00:00:55,000
43
+ Significant part of our today's lesson will talk about threat modeling will learn what threat modeling
44
+
45
+ 12
46
+ 00:00:55,000 --> 00:00:58,000
47
+ manifest is its values and principles.
48
+
49
+ 13
50
+ 00:00:58,000 --> 00:01:05,000
51
+ In this lesson, I will teach you how to build and secure design process during the learning of security
52
+
53
+ 14
54
+ 00:01:05,000 --> 00:01:06,000
55
+ design process.
56
+
57
+ 15
58
+ 00:01:06,000 --> 00:01:10,000
59
+ I will also cover such topic as business impact analysis.
60
+
61
+ 16
62
+ 00:01:11,000 --> 00:01:15,000
63
+ I will provide you with a template that you can use during the business impact analysis.
64
+
65
+ 17
66
+ 00:01:16,000 --> 00:01:19,000
67
+ We'll review how we can work with Threat Register.
68
+
69
+ 18
70
+ 00:01:20,000 --> 00:01:27,000
71
+ Also, I'm going to explain the concept of security controls will learn what security design document
72
+
73
+ 19
74
+ 00:01:27,000 --> 00:01:29,000
75
+ is and what it can contain.
76
+
77
+ 20
78
+ 00:01:30,000 --> 00:01:37,000
79
+ And on top of all this, I will suggest madness is, as you can imagine, on a regular basis to measure
80
+
81
+ 21
82
+ 00:01:37,000 --> 00:01:39,000
83
+ and evaluate security design process.
84
+
85
+ 22
86
+ 00:01:39,000 --> 00:01:43,000
87
+ We'll review example of attacks and rules on how to prevent those.
88
+
89
+ 23
90
+ 00:01:44,000 --> 00:01:47,000
91
+ As you can see, we have solid agenda for this lesson.
92
+
93
+ 24
94
+ 00:01:48,000 --> 00:01:49,000
95
+ Let's get it started.
96
+
97
+ 25
98
+ 00:01:50,000 --> 00:01:54,000
99
+ Let's start from the high level overview of this category.
100
+
101
+ 26
102
+ 00:01:54,000 --> 00:01:59,000
103
+ The first things that I have to say is that this is a new risk category inside of us.
104
+
105
+ 27
106
+ 00:01:59,000 --> 00:02:07,000
107
+ The top ten, 20, 21 zip was absent in our top ten 2017 and was top ten 2021.
108
+
109
+ 28
110
+ 00:02:07,000 --> 00:02:14,000
111
+ The risk category directly started on place for it covers architectural flaws and design.
112
+
113
+ 29
114
+ 00:02:14,000 --> 00:02:23,000
115
+ The states that result in the mason or use the security control implementation while an insecure implementation
116
+
117
+ 30
118
+ 00:02:23,000 --> 00:02:24,000
119
+ could be easily fixed.
120
+
121
+ 31
122
+ 00:02:25,000 --> 00:02:29,000
123
+ Fixing and insecure design is no complicated thing to do.
124
+
125
+ 32
126
+ 00:02:29,000 --> 00:02:35,000
127
+ Today we're going to discuss processes that we have to follow in order to create secure design.
128
+
129
+ 33
130
+ 00:02:35,000 --> 00:02:39,000
131
+ Now understand what insecure design risk category is about.
132
+
133
+ 34
134
+ 00:02:40,000 --> 00:02:40,000
135
+ Let me explain.
136
+
137
+ 35
138
+ 00:02:40,000 --> 00:02:49,000
139
+ It was example there no such a feature in the web applications as a store password and very often user
140
+
141
+ 36
142
+ 00:02:49,000 --> 00:02:57,000
143
+ registration user is asked to name a favorite or name of the path on Mars's maiden name.
144
+
145
+ 37
146
+ 00:02:57,000 --> 00:03:05,000
147
+ This is not secure design by default, no matter how it will be implemented because many people know
148
+
149
+ 38
150
+ 00:03:05,000 --> 00:03:08,000
151
+ the name of the pad or maiden name of your mesa.
152
+
153
+ 39
154
+ 00:03:09,000 --> 00:03:15,000
155
+ In the era of social networks, it is easy to find all necessary information about the person and the
156
+
157
+ 40
158
+ 00:03:15,000 --> 00:03:19,000
159
+ security vulnerability is not in the implementation of this feature.
160
+
161
+ 41
162
+ 00:03:20,000 --> 00:03:27,000
163
+ No matter how you will implement this part of the application will still remain vulnerable.
164
+
165
+ 42
166
+ 00:03:28,000 --> 00:03:35,000
167
+ So you can fix security vulnerability just by implementing it in a normal way.
168
+
169
+ 43
170
+ 00:03:36,000 --> 00:03:42,000
171
+ It is insecure, but it's design, and what you can do to make it more secure is to substitute this
172
+
173
+ 44
174
+ 00:03:42,000 --> 00:03:46,000
175
+ piece of application, complete with something more secure.
176
+
177
+ 45
178
+ 00:03:47,000 --> 00:03:51,000
179
+ We can say that this is a new category is of massive importance.
180
+
181
+ 46
182
+ 00:03:52,000 --> 00:03:58,000
183
+ Many projects start without the real design phase and don't have security in focus.
184
+
185
+ 47
186
+ 00:03:58,000 --> 00:04:05,000
187
+ Even prototypes and proof of concept implementations with completely different nonfunctional requirements
188
+
189
+ 48
190
+ 00:04:05,000 --> 00:04:12,000
191
+ for security and maintainability often go into production mainly because of business priorities and
192
+
193
+ 49
194
+ 00:04:12,000 --> 00:04:13,000
195
+ to achieve some business goals.
196
+
197
+ 50
198
+ 00:04:14,000 --> 00:04:22,000
199
+ But as I say, technology should go together with business hand to hand, because our goal is to deliver
200
+
201
+ 51
202
+ 00:04:22,000 --> 00:04:30,000
203
+ fast wins market and opposite to the leadership by avoiding unsatisfied customers, lawsuits and so
204
+
205
+ 52
206
+ 00:04:30,000 --> 00:04:30,000
207
+ on.
208
+
209
+ 53
210
+ 00:04:31,000 --> 00:04:38,000
211
+ Work on secure design after implementation and the release can be very expensive and cost a lot of hours
212
+
213
+ 54
214
+ 00:04:38,000 --> 00:04:42,000
215
+ of significant factor of completing a work of some modules.
216
+
217
+ 55
218
+ 00:04:43,000 --> 00:04:49,000
219
+ And in this sense, label is extremely complicated and needs a lot of expensive refactoring time.
220
+
221
+ 56
222
+ 00:04:50,000 --> 00:04:54,000
223
+ You can only prevent insecure design with insecure development.
224
+
225
+ 57
226
+ 00:04:54,000 --> 00:05:04,000
227
+ Lifecycle Bootstrap Model Best Practices and Source User Design Face Mask recommends that organizations
228
+
229
+ 58
230
+ 00:05:04,000 --> 00:05:07,000
231
+ use threats in order to achieve secure design.
232
+
233
+ 59
234
+ 00:05:07,000 --> 00:05:12,000
235
+ Significant parts of our lesson we're going to talk about threat modelling.
236
+
237
+ 60
238
+ 00:05:12,000 --> 00:05:19,000
239
+ There is also call for more use of security design patterns and reference architectures.
240
+
241
+ 61
242
+ 00:05:19,000 --> 00:05:25,000
243
+ Avast suggests to move beyond shift that is important space the project core that the team.
244
+
245
+ 62
246
+ 00:05:26,000 --> 00:05:32,000
247
+ It is critical for the principles of security by design identifying flaw.
248
+
249
+ 63
250
+ 00:05:32,000 --> 00:05:39,000
251
+ So the design phase is what we call starting left in security, which is a progression of the popular
252
+
253
+ 64
254
+ 00:05:39,000 --> 00:05:42,000
255
+ devsecops same pushing left.
256
+
257
+ 65
258
+ 00:05:42,000 --> 00:05:48,000
259
+ In a few minutes I will explain in the details what does she have left means as I was?
260
+
261
+ 66
262
+ 00:05:48,000 --> 00:05:54,000
263
+ Highlights Secure design is a management culture as well as methodology.
264
+
265
+ 67
266
+ 00:05:54,000 --> 00:06:01,000
267
+ This is about changing the mindset around what stage security needs to end as application development
268
+
269
+ 68
270
+ 00:06:01,000 --> 00:06:02,000
271
+ parties.
272
+
273
+ 69
274
+ 00:06:02,000 --> 00:06:11,000
275
+ And it is our fundamental belief that true devsecops can only be achieved if security is factored in
276
+
277
+ 70
278
+ 00:06:11,000 --> 00:06:12,000
279
+ right at the outset.
280
+
281
+ 71
282
+ 00:06:13,000 --> 00:06:20,000
283
+ I would like to highlight one more time the difference between insecure design and insecure implementation.
284
+
285
+ 72
286
+ 00:06:20,000 --> 00:06:25,000
287
+ Insecure design is not the source for all of the top primaries categories.
288
+
289
+ 73
290
+ 00:06:26,000 --> 00:06:30,000
291
+ There is a difference between insecure design and insecure implementation.
292
+
293
+ 74
294
+ 00:06:30,000 --> 00:06:36,000
295
+ I want to differentiates between design flaws and implementation defects for a reason.
296
+
297
+ 75
298
+ 00:06:37,000 --> 00:06:44,000
299
+ These two concepts have different causes and remediation and secure design can still have implementation
300
+
301
+ 76
302
+ 00:06:44,000 --> 00:06:48,000
303
+ defects leading to abilities that may be exploited.
304
+
305
+ 77
306
+ 00:06:49,000 --> 00:06:56,000
307
+ And the security zone can be fixed by perfect implementation as by definition needed.
308
+
309
+ 78
310
+ 00:06:56,000 --> 00:07:01,000
311
+ Security controls were never created to defend against specific attacks.
312
+
313
+ 79
314
+ 00:07:01,000 --> 00:07:09,000
315
+ One of the factors that contribute to insecure design is the lack of business risk profile inherent
316
+
317
+ 80
318
+ 00:07:09,000 --> 00:07:15,000
319
+ in the software or system being developed, and thus is a failure to determine what level of security
320
+
321
+ 81
322
+ 00:07:15,000 --> 00:07:17,000
323
+ design is required.
324
+
325
+ 82
326
+ 00:07:17,000 --> 00:07:24,000
327
+ Insecure design means risks related to design and architecture flaws with a built in right from the
328
+
329
+ 83
330
+ 00:07:24,000 --> 00:07:29,000
331
+ beginning of software development gives up, propensity and mitigations are not taken.
332
+
333
+ 84
334
+ 00:07:30,000 --> 00:07:37,000
335
+ I promised to explain what the shift to left approaches to shift left means to move the process to the
336
+
337
+ 85
338
+ 00:07:37,000 --> 00:07:42,000
339
+ left of the traditional linear depiction of the software development lifecycle.
340
+
341
+ 86
342
+ 00:07:43,000 --> 00:07:50,000
343
+ That's a common subjects of shift left initiatives in DevOps security and testing.
344
+
345
+ 87
346
+ 00:07:50,000 --> 00:07:57,000
347
+ The term shift graph refers to the efforts of DevOps teams to guarantee application security at the
348
+
349
+ 88
350
+ 00:07:57,000 --> 00:08:00,000
351
+ earliest stages of development lifecycle.
352
+
353
+ 89
354
+ 00:08:01,000 --> 00:08:08,000
355
+ As part of an organizational path known as Devsecops collaboration between development, security and
356
+
357
+ 90
358
+ 00:08:08,000 --> 00:08:09,000
359
+ operations.
360
+
361
+ 91
362
+ 00:08:10,000 --> 00:08:16,000
363
+ Until recently, years security testing was implemented at the end of the development cycle following
364
+
365
+ 92
366
+ 00:08:16,000 --> 00:08:18,000
367
+ application testing.
368
+
369
+ 93
370
+ 00:08:18,000 --> 00:08:25,000
371
+ At this stage, security teams would perform various types of analysis and security testing, such as
372
+
373
+ 94
374
+ 00:08:25,000 --> 00:08:28,000
375
+ static analysis and dynamic analysis.
376
+
377
+ 95
378
+ 00:08:28,000 --> 00:08:34,000
379
+ The results of security tests would use a permit application to proceed for deployment into production
380
+
381
+ 96
382
+ 00:08:35,000 --> 00:08:39,000
383
+ or reject the application and pass it back to developers for remediation.
384
+
385
+ 97
386
+ 00:08:40,000 --> 00:08:47,000
387
+ This resulted in long delays in development or increased risk of revision software without necessary
388
+
389
+ 98
390
+ 00:08:47,000 --> 00:08:55,000
391
+ security measures to shift security and left means to implement security measures your entire development
392
+
393
+ 99
394
+ 00:08:55,000 --> 00:08:59,000
395
+ lifecycle rather than as the end of the cycle.
396
+
397
+ 100
398
+ 00:08:59,000 --> 00:09:06,000
399
+ The goal of shifting security to left is to design software with security best practices built in and
400
+
401
+ 101
402
+ 00:09:06,000 --> 00:09:12,000
403
+ to detect and fix potential security issues and vulnerabilities as early as a development process as
404
+
405
+ 102
406
+ 00:09:12,000 --> 00:09:19,000
407
+ possible, making it easier, faster, and more affordable to address security issues.
408
+
409
+ 103
410
+ 00:09:20,000 --> 00:09:25,000
411
+ The difference from the weakness and limitations that are associated with this category.
412
+
413
+ 104
414
+ 00:09:25,000 --> 00:09:29,000
415
+ But as always, let's review on this and multiple common weakness.
416
+
417
+ 105
418
+ 00:09:29,000 --> 00:09:39,000
419
+ Enumerations then include but not limited to CW e 209 generation of error message contains sensitive
420
+
421
+ 106
422
+ 00:09:39,000 --> 00:09:40,000
423
+ information.
424
+
425
+ 107
426
+ 00:09:40,000 --> 00:09:47,000
427
+ This may happen in case you handle exception and you need a full locks of exception.
428
+
429
+ 108
430
+ 00:09:48,000 --> 00:09:49,000
431
+ This is just an example.
432
+
433
+ 109
434
+ 00:09:49,000 --> 00:09:53,000
435
+ The full walk of exception may contain sensitive information.
436
+
437
+ 110
438
+ 00:09:54,000 --> 00:09:59,000
439
+ cwe2 hundred 56 Unprotected storage of credentials.
440
+
441
+ 111
442
+ 00:10:00,000 --> 00:10:07,000
443
+ Password management issues appear when the password is stored in plain text, in applications, properties,
444
+
445
+ 112
446
+ 00:10:07,000 --> 00:10:09,000
447
+ configuration, file or memory.
448
+
449
+ 113
450
+ 00:10:10,000 --> 00:10:17,000
451
+ We partially touched this topic in our lesson about cryptographic failures, and I told you even that
452
+
453
+ 114
454
+ 00:10:17,000 --> 00:10:25,000
455
+ the storage sensitive data is in non encrypted form is not the best design decision that you can take.
456
+
457
+ 115
458
+ 00:10:25,000 --> 00:10:28,000
459
+ This is also one of the cases of insecure design.
460
+
461
+ 116
462
+ 00:10:29,000 --> 00:10:36,000
463
+ Storing the plaintext possible in a configuration file allows anyone who can reads a file accessed as
464
+
465
+ 117
466
+ 00:10:36,000 --> 00:10:38,000
467
+ a password protected to source.
468
+
469
+ 118
470
+ 00:10:38,000 --> 00:10:46,000
471
+ In some contexts, even storage of a plaintext passwords in memory is considered the security is the
472
+
473
+ 119
474
+ 00:10:46,000 --> 00:10:49,000
475
+ password is not immediately updated.
476
+
477
+ 120
478
+ 00:10:49,000 --> 00:10:55,000
479
+ ccwe5 hundred one Trust memory violation.
480
+
481
+ 121
482
+ 00:10:55,000 --> 00:11:05,000
483
+ A transboundary can be thought of as a line drawn, so a program on one side of the line data is untrusted.
484
+
485
+ 122
486
+ 00:11:05,000 --> 00:11:10,000
487
+ On the other side of the line, data is assumed to be trustworthy.
488
+
489
+ 123
490
+ 00:11:10,000 --> 00:11:18,000
491
+ The purpose of validation logic is to allow data to safely cross the trust boundary, to move from trusted
492
+
493
+ 124
494
+ 00:11:18,000 --> 00:11:19,000
495
+ to trust.
496
+
497
+ 125
498
+ 00:11:20,000 --> 00:11:26,000
499
+ A trust boundary violation occurs when a program blurs the line between what is trusted and what isn't
500
+
501
+ 126
502
+ 00:11:26,000 --> 00:11:27,000
503
+ trusted.
504
+
505
+ 127
506
+ 00:11:28,000 --> 00:11:34,000
507
+ By combining trusted and trusted data in the same data structure, it becomes easier for programmers
508
+
509
+ 128
510
+ 00:11:34,000 --> 00:11:37,000
511
+ to mistakenly trust and validate data.
512
+
513
+ 129
514
+ 00:11:38,000 --> 00:11:43,000
515
+ ce5 hundred 22 Insufficiently Protected Credentials.
516
+
517
+ 130
518
+ 00:11:44,000 --> 00:11:51,000
519
+ The Port of Trust meets all sorts of syndication credentials, but it uses an insecure mass that is
520
+
521
+ 131
522
+ 00:11:51,000 --> 00:11:55,000
523
+ susceptible to unauthorized interception and or retrieval.
524
+
525
+ 132
526
+ 00:11:57,000 --> 00:12:01,000
527
+ When progress of that now what is insecure design risk category?
528
+
529
+ 133
530
+ 00:12:02,000 --> 00:12:06,000
531
+ But let's learn now more what action insecure design is.
532
+
533
+ 134
534
+ 00:12:07,000 --> 00:12:13,000
535
+ Secure design is a culture and muscle knowledge is constantly evolving its threats and ensures that
536
+
537
+ 135
538
+ 00:12:13,000 --> 00:12:22,000
539
+ code is robustly designed and tested to prevent known attack methods, security design concerns, processes
540
+
541
+ 136
542
+ 00:12:22,000 --> 00:12:30,000
543
+ and activities related to how an organization defines goals and creates software within development
544
+
545
+ 137
546
+ 00:12:30,000 --> 00:12:31,000
547
+ projects.
548
+
549
+ 138
550
+ 00:12:31,000 --> 00:12:39,000
551
+ In general, this includes requirements gathering, high level architecture specifications and detailed
552
+
553
+ 139
554
+ 00:12:39,000 --> 00:12:40,000
555
+ design.
556
+
557
+ 140
558
+ 00:12:41,000 --> 00:12:46,000
559
+ Secure design is about the whole process where different parties are involved.
560
+
561
+ 141
562
+ 00:12:46,000 --> 00:12:53,000
563
+ Namely, threat modelling should be integrated into refinement sessions or other similar activities.
564
+
565
+ 142
566
+ 00:12:53,000 --> 00:12:58,000
567
+ We should be advising about security design on the stage and requirements refinement.
568
+
569
+ 143
570
+ 00:12:59,000 --> 00:13:07,000
571
+ We should also look for changes in data flows and access control or other security controls, user development
572
+
573
+ 144
574
+ 00:13:07,000 --> 00:13:09,000
575
+ and implementation.
576
+
577
+ 145
578
+ 00:13:09,000 --> 00:13:14,000
579
+ We should always check different states of the system, including failing states.
580
+
581
+ 146
582
+ 00:13:14,000 --> 00:13:21,000
583
+ We need to ensure that they are well-understood and agreed upon by responsible and important parties,
584
+
585
+ 147
586
+ 00:13:21,000 --> 00:13:29,000
587
+ analyze assumptions and conditions for expected and failure flows, ensure they are still accurate and
588
+
589
+ 148
590
+ 00:13:29,000 --> 00:13:29,000
591
+ desirable.
592
+
593
+ 149
594
+ 00:13:30,000 --> 00:13:37,000
595
+ The to learn how to validate the assumptions and enforce conditions needed for proper behaviors, not
596
+
597
+ 150
598
+ 00:13:37,000 --> 00:13:41,000
599
+ for mistakes, offer positive incentives to promote improvements.
600
+
601
+ 151
602
+ 00:13:42,000 --> 00:13:47,000
603
+ Security design is used and on more tools that we can add to software.
604
+
605
+ 152
606
+ 00:13:48,000 --> 00:13:51,000
607
+ We talked a few times already about smart modeling.
608
+
609
+ 153
610
+ 00:13:52,000 --> 00:13:55,000
611
+ Let's learn what is it and how it can help us.
612
+
613
+ 154
614
+ 00:13:56,000 --> 00:14:03,000
615
+ The Smith model practice focuses on identification and understanding of project model, at least based
616
+
617
+ 155
618
+ 00:14:03,000 --> 00:14:09,000
619
+ on the functionality of the software being developed as the characteristics of the runtime environment.
620
+
621
+ 156
622
+ 00:14:09,000 --> 00:14:17,000
623
+ From details about smarts and the likely attacks against each project, organization operates more effectively.
624
+
625
+ 157
626
+ 00:14:17,000 --> 00:14:22,000
627
+ So better decisions about the prioritization of initiatives for security.
628
+
629
+ 158
630
+ 00:14:22,000 --> 00:14:30,000
631
+ Additionally, decisions for these samples are more informed, therefore better aligned to the business
632
+
633
+ 159
634
+ 00:14:30,000 --> 00:14:33,000
635
+ at the highest levels of the threat model.
636
+
637
+ 160
638
+ 00:14:33,000 --> 00:14:38,000
639
+ We ask four key questions What are we working on?
640
+
641
+ 161
642
+ 00:14:38,000 --> 00:14:39,000
643
+ What can go wrong?
644
+
645
+ 162
646
+ 00:14:40,000 --> 00:14:42,000
647
+ What are we going to do about it?
648
+
649
+ 163
650
+ 00:14:43,000 --> 00:14:51,000
651
+ Did we do a good enough job or was recommends that organizations under threat want them to identify
652
+
653
+ 164
654
+ 00:14:51,000 --> 00:14:53,000
655
+ vulnerabilities in the design phase?
656
+
657
+ 165
658
+ 00:14:54,000 --> 00:15:01,000
659
+ This allows developers and security teams to avoid those design mistakes that might not be identified,
660
+
661
+ 166
662
+ 00:15:01,000 --> 00:15:02,000
663
+ but later down the line.
664
+
665
+ 167
666
+ 00:15:03,000 --> 00:15:10,000
667
+ It also saves organizations time and money by finding and addressing all the potential threats.
668
+
669
+ 168
670
+ 00:15:11,000 --> 00:15:17,000
671
+ Where do you work with escalations later in the development process by implementing threat models as
672
+
673
+ 169
674
+ 00:15:17,000 --> 00:15:18,000
675
+ a design phase.
676
+
677
+ 170
678
+ 00:15:19,000 --> 00:15:27,000
679
+ Security starts to be baked into new code first and more so automation and access to comprehensive standards.
680
+
681
+ 171
682
+ 00:15:27,000 --> 00:15:28,000
683
+ Libraries.
684
+
685
+ 172
686
+ 00:15:28,000 --> 00:15:35,000
687
+ Swet models can go on throughout the secure development lifecycle, ensuring that the owner abilities
688
+
689
+ 173
690
+ 00:15:35,000 --> 00:15:38,000
691
+ are continuously mitigated by quantum matters.
692
+
693
+ 174
694
+ 00:15:38,000 --> 00:15:41,000
695
+ So why do we have to do threat modeling?
696
+
697
+ 175
698
+ 00:15:42,000 --> 00:15:44,000
699
+ What glow we want to achieve?
700
+
701
+ 176
702
+ 00:15:44,000 --> 00:15:50,000
703
+ One of the performs threat modeling would begin to recognize what can go wrong in the system.
704
+
705
+ 177
706
+ 00:15:50,000 --> 00:15:57,000
707
+ And this is the main role of strength modeling, because knowing what potentially can go wrong, you
708
+
709
+ 178
710
+ 00:15:57,000 --> 00:16:03,000
711
+ start thinking about how you would deal with this in your system and you take this into account in your
712
+
713
+ 179
714
+ 00:16:03,000 --> 00:16:04,000
715
+ design.
716
+
717
+ 180
718
+ 00:16:05,000 --> 00:16:12,000
719
+ The outputs of the sweat model, which are known as threats, informs decisions that you might make
720
+
721
+ 181
722
+ 00:16:12,000 --> 00:16:17,000
723
+ in subsequent design, development, testing and post-deployment phases.
724
+
725
+ 182
726
+ 00:16:17,000 --> 00:16:25,000
727
+ I also would like to highlight everyone in the team whose concerns about safety and security of your
728
+
729
+ 183
730
+ 00:16:25,000 --> 00:16:28,000
731
+ system is empowered to conduct threats.
732
+
733
+ 184
734
+ 00:16:28,000 --> 00:16:36,000
735
+ More of them who can work on threats together as a refinement session or during any other similar turbulence.
736
+
737
+ 185
738
+ 00:16:37,000 --> 00:16:41,000
739
+ There's also threats, modeling, manifestos that I'd like to discuss with you too.
740
+
741
+ 186
742
+ 00:16:42,000 --> 00:16:44,000
743
+ What these threats model the manifesto.
744
+
745
+ 187
746
+ 00:16:45,000 --> 00:16:53,000
747
+ First of all, mentions manifesto is a guide to develop or find a missile that best suits your needs
748
+
749
+ 188
750
+ 00:16:53,000 --> 00:17:00,000
751
+ greater than manifest, and believe that all of that guidance is a manifesto will result in more effective
752
+
753
+ 189
754
+ 00:17:00,000 --> 00:17:04,000
755
+ and more productive threats, one of them in charge.
756
+
757
+ 190
758
+ 00:17:04,000 --> 00:17:10,000
759
+ This will help you to successfully develop more secure applications, systems and organizations and
760
+
761
+ 191
762
+ 00:17:10,000 --> 00:17:14,000
763
+ protect them from threats and services.
764
+
765
+ 192
766
+ 00:17:15,000 --> 00:17:23,000
767
+ The manifesto contains ideas but is not how to handle business and knowledge agnostic the threat model
768
+
769
+ 193
770
+ 00:17:24,000 --> 00:17:26,000
771
+ that includes values and principles.
772
+
773
+ 194
774
+ 00:17:27,000 --> 00:17:29,000
775
+ Let's review values first.
776
+
777
+ 195
778
+ 00:17:29,000 --> 00:17:30,000
779
+ Values threats.
780
+
781
+ 196
782
+ 00:17:30,000 --> 00:17:35,000
783
+ Modeling is something that has relative US merit or importance.
784
+
785
+ 197
786
+ 00:17:35,000 --> 00:17:42,000
787
+ It is sad and manifest is that while there is a value in the items on the right, you values the items
788
+
789
+ 198
790
+ 00:17:42,000 --> 00:17:43,000
791
+ on the left more.
792
+
793
+ 199
794
+ 00:17:44,000 --> 00:17:52,000
795
+ A Culture of finding and fixing design issues over check checkbooks, compliance, people, and collaboration
796
+
797
+ 200
798
+ 00:17:52,000 --> 00:17:54,000
799
+ over processes for the religious impulse.
800
+
801
+ 201
802
+ 00:17:55,000 --> 00:17:59,000
803
+ A journey of understanding of a security or progress.
804
+
805
+ 202
806
+ 00:17:59,000 --> 00:18:07,000
807
+ A snapshot bootstrap model of a talking about continuous refinement over a C of the label.
808
+
809
+ 203
810
+ 00:18:08,000 --> 00:18:09,000
811
+ If you are from you I was a gentleman.
812
+
813
+ 204
814
+ 00:18:09,000 --> 00:18:16,000
815
+ The first thing you can notice that he used similar format as it is used in Agile Manifesto.
816
+
817
+ 205
818
+ 00:18:17,000 --> 00:18:21,000
819
+ Let's review principles of stress modeling manifesting now.
820
+
821
+ 206
822
+ 00:18:21,000 --> 00:18:25,000
823
+ A principle describes the fundamental truths of sports modelling.
824
+
825
+ 207
826
+ 00:18:26,000 --> 00:18:33,000
827
+ There are three types of principles from the manual, primary or general tools that enable successful
828
+
829
+ 208
830
+ 00:18:33,000 --> 00:18:39,000
831
+ modelling part of the highly recommended and onto parts that should be avoided.
832
+
833
+ 209
834
+ 00:18:40,000 --> 00:18:47,000
835
+ There are the following principles in the manifesto The best use of sweat modelling is to improve the
836
+
837
+ 210
838
+ 00:18:47,000 --> 00:18:49,000
839
+ security and privacy of the systems.
840
+
841
+ 211
842
+ 00:18:50,000 --> 00:18:58,000
843
+ Early on, analysis threat modelling must align with an organisation's development practices and follow
844
+
845
+ 212
846
+ 00:18:58,000 --> 00:19:04,000
847
+ design changes and iterations that each scope to manageable portions of the system.
848
+
849
+ 213
850
+ 00:19:05,000 --> 00:19:11,000
851
+ The outcomes of threat model are meaningful once they are of value to stakeholders.
852
+
853
+ 214
854
+ 00:19:12,000 --> 00:19:19,000
855
+ Dialogue is key that establishes a common understandings that meet the value, while documents, record
856
+
857
+ 215
858
+ 00:19:19,000 --> 00:19:22,000
859
+ results, understandings and enable measurement.
860
+
861
+ 216
862
+ 00:19:23,000 --> 00:19:29,000
863
+ As I already said, values and principles is more like these methods that will determine the opportunities.
864
+
865
+ 217
866
+ 00:19:30,000 --> 00:19:37,000
867
+ They don't contain any specifics and just to set their actions and their technology agnostic.
868
+
73 - OWASP Top 10 2021/010 Insecure Design (Secure Design Process, Security Controls, Metrics, Examples)_en.srt ADDED
@@ -0,0 +1,1036 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:03,000 --> 00:00:07,000
3
+ I want to highlight that security design is not a one time action.
4
+
5
+ 2
6
+ 00:00:08,000 --> 00:00:11,000
7
+ It is not something you can do in one hour or so.
8
+
9
+ 3
10
+ 00:00:12,000 --> 00:00:18,000
11
+ It is a systematic, regular set of actions directed on creation of the sea floor design.
12
+
13
+ 4
14
+ 00:00:19,000 --> 00:00:21,000
15
+ And I want you on the stands then.
16
+
17
+ 5
18
+ 00:00:22,000 --> 00:00:25,000
19
+ That's why now I'd like to start with you.
20
+
21
+ 6
22
+ 00:00:25,000 --> 00:00:26,000
23
+ Was you castles?
24
+
25
+ 7
26
+ 00:00:26,000 --> 00:00:30,000
27
+ Do you have to build to ensure secure design on your project?
28
+
29
+ 8
30
+ 00:00:30,000 --> 00:00:37,000
31
+ This process includes steps and actions and artifacts that will help you to avoid creation of insecure
32
+
33
+ 9
34
+ 00:00:37,000 --> 00:00:46,000
35
+ design and will significantly decrease the community of introducing vulnerabilities related to insecure
36
+
37
+ 10
38
+ 00:00:46,000 --> 00:00:46,000
39
+ design.
40
+
41
+ 11
42
+ 00:00:47,000 --> 00:00:50,000
43
+ The whole process consists of the following steps.
44
+
45
+ 12
46
+ 00:00:51,000 --> 00:00:55,000
47
+ Security Requirements Gathering Definition of compliance requirements.
48
+
49
+ 13
50
+ 00:00:55,000 --> 00:00:59,000
51
+ According to the Project on the Market, specific actions.
52
+
53
+ 14
54
+ 00:00:59,000 --> 00:01:06,000
55
+ Business Impact Analysis Turning security requirements into regular tickets according to the Selected
56
+
57
+ 15
58
+ 00:01:06,000 --> 00:01:08,000
59
+ Software Development Lifecycle.
60
+
61
+ 16
62
+ 00:01:09,000 --> 00:01:13,000
63
+ Creation of Architecture of Application, Feature or component.
64
+
65
+ 17
66
+ 00:01:14,000 --> 00:01:22,000
67
+ Once requirements will summarize the requirements of code, refinement and estimation of security requirements.
68
+
69
+ 18
70
+ 00:01:23,000 --> 00:01:25,000
71
+ Holdings, Threat Modeling Activities.
72
+
73
+ 19
74
+ 00:01:26,000 --> 00:01:31,000
75
+ Creation of Threat Register Creation of List of Security Controls.
76
+
77
+ 20
78
+ 00:01:32,000 --> 00:01:33,000
79
+ Execution of Gap Analysis.
80
+
81
+ 21
82
+ 00:01:34,000 --> 00:01:36,000
83
+ Creation of Security Design Document.
84
+
85
+ 22
86
+ 00:01:37,000 --> 00:01:43,000
87
+ We're going to review each step in our lesson one by one, probably.
88
+
89
+ 23
90
+ 00:01:43,000 --> 00:01:49,000
91
+ If you'll watch my courses and you'll be aware that I have my consultancy company and that I perform
92
+
93
+ 24
94
+ 00:01:49,000 --> 00:01:51,000
95
+ audits of software projects.
96
+
97
+ 25
98
+ 00:01:52,000 --> 00:01:58,000
99
+ Usually I make the review of different sides of the project maturity level of engineering, excellence
100
+
101
+ 26
102
+ 00:01:58,000 --> 00:02:02,000
103
+ practices, engineering, project management courses.
104
+
105
+ 27
106
+ 00:02:02,000 --> 00:02:11,000
107
+ I developed my own delivery model to assess software projects and framework that I develop goes together
108
+
109
+ 28
110
+ 00:02:11,000 --> 00:02:15,000
111
+ with guidelines it is recommended to follow to build mature courses.
112
+
113
+ 29
114
+ 00:02:16,000 --> 00:02:22,000
115
+ Now I'd like to review is your one of such guidelines dedicated to building mature processes in the
116
+
117
+ 30
118
+ 00:02:22,000 --> 00:02:30,000
119
+ organization, the delivery team that will ensure secure design, no matter whether you are developer,
120
+
121
+ 31
122
+ 00:02:30,000 --> 00:02:37,000
123
+ faculty or delivery manager understanding of suggested guideline will bring the team to the next quality
124
+
125
+ 32
126
+ 00:02:38,000 --> 00:02:38,000
127
+ level.
128
+
129
+ 33
130
+ 00:02:39,000 --> 00:02:40,000
131
+ Definitely.
132
+
133
+ 34
134
+ 00:02:40,000 --> 00:02:46,000
135
+ I will not share with you all the details, including causal samples, process outputs, responsible
136
+
137
+ 35
138
+ 00:02:46,000 --> 00:02:52,000
139
+ people, occurrences, arrests and matches because there is no need in this at the moment.
140
+
141
+ 36
142
+ 00:02:53,000 --> 00:02:56,000
143
+ So this assumption would encourage you in my consultancy role.
144
+
145
+ 37
146
+ 00:02:56,000 --> 00:03:03,000
147
+ But instead I will highlight the main steps and main goals that we want and that we need to achieve
148
+
149
+ 38
150
+ 00:03:03,000 --> 00:03:05,000
151
+ while building civil design of our system.
152
+
153
+ 39
154
+ 00:03:06,000 --> 00:03:07,000
155
+ Let's stop.
156
+
157
+ 40
158
+ 00:03:08,000 --> 00:03:15,000
159
+ The first step in our process is to identify and gather security requirements, collect and negotiate.
160
+
161
+ 41
162
+ 00:03:15,000 --> 00:03:21,000
163
+ The business requirements for an application with the business includes the protection requirements
164
+
165
+ 42
166
+ 00:03:21,000 --> 00:03:30,000
167
+ concerning confidentiality, integrity of of ability and authenticity of all data assets on the expected
168
+
169
+ 43
170
+ 00:03:30,000 --> 00:03:40,000
171
+ business logic take into account how exposed your application will be and conservation of tenants compiles
172
+
173
+ 44
174
+ 00:03:40,000 --> 00:03:44,000
175
+ the technical requirements, including functional and nonfunctional security requirements.
176
+
177
+ 45
178
+ 00:03:45,000 --> 00:03:50,000
179
+ On this slide, you can see suggested four months for the security requirements list.
180
+
181
+ 46
182
+ 00:03:50,000 --> 00:03:59,000
183
+ There are concerns that are used to suggest a template c stands for confidentiality, IE stands for
184
+
185
+ 47
186
+ 00:03:59,000 --> 00:04:02,000
187
+ integrity and stands for availability.
188
+
189
+ 48
190
+ 00:04:02,000 --> 00:04:08,000
191
+ A use stands for authenticity and stands for repudiation.
192
+
193
+ 49
194
+ 00:04:09,000 --> 00:04:17,000
195
+ Not of reconciliation is an assurance that someone can deny the validity of something basic human right,
196
+
197
+ 50
198
+ 00:04:17,000 --> 00:04:20,000
199
+ business requirement, functional or nonfunctional.
200
+
201
+ 51
202
+ 00:04:20,000 --> 00:04:28,000
203
+ You map it was a component and you specify a requirements associated with this business requirement.
204
+
205
+ 52
206
+ 00:04:29,000 --> 00:04:31,000
207
+ All team participates in this process.
208
+
209
+ 53
210
+ 00:04:32,000 --> 00:04:37,000
211
+ Separately, I'd like to highlight the role of the compliance team and business analysis team.
212
+
213
+ 54
214
+ 00:04:38,000 --> 00:04:44,000
215
+ The business analyst should define the list of compliance requirements, according to the project and
216
+
217
+ 55
218
+ 00:04:44,000 --> 00:04:46,000
219
+ market specific achievements.
220
+
221
+ 56
222
+ 00:04:46,000 --> 00:04:54,000
223
+ While compliance security requirements, we should also hold a business impact analysis because some
224
+
225
+ 57
226
+ 00:04:54,000 --> 00:04:57,000
227
+ of the requirements will come from the business impact analysis.
228
+
229
+ 58
230
+ 00:04:58,000 --> 00:05:03,000
231
+ Once you hold, you will be able to understand security requirements better.
232
+
233
+ 59
234
+ 00:05:04,000 --> 00:05:12,000
235
+ That's why I believe it's my big idea to show you how impact analysis can be, how on this slide you
236
+
237
+ 60
238
+ 00:05:12,000 --> 00:05:14,000
239
+ can see example of business impact analysis.
240
+
241
+ 61
242
+ 00:05:15,000 --> 00:05:18,000
243
+ You can think about different business impact types.
244
+
245
+ 62
246
+ 00:05:19,000 --> 00:05:24,000
247
+ After that, you can classify level of impact from 0 to 5.
248
+
249
+ 63
250
+ 00:05:25,000 --> 00:05:30,000
251
+ Zero means no impact at all and five means catastrophic impact.
252
+
253
+ 64
254
+ 00:05:31,000 --> 00:05:38,000
255
+ And you can map specific impact criteria next to each level of impact and having a list of security
256
+
257
+ 65
258
+ 00:05:38,000 --> 00:05:39,000
259
+ requirements.
260
+
261
+ 66
262
+ 00:05:39,000 --> 00:05:46,000
263
+ You can prioritize those by business, impact the business panels to come the compliance requirements
264
+
265
+ 67
266
+ 00:05:46,000 --> 00:05:49,000
267
+ and results of business impact analysis.
268
+
269
+ 68
270
+ 00:05:49,000 --> 00:05:52,000
271
+ The full set of internal security requirements.
272
+
273
+ 69
274
+ 00:05:53,000 --> 00:05:54,000
275
+ In the move.
276
+
277
+ 70
278
+ 00:05:54,000 --> 00:06:02,000
279
+ I'm going to show you where and how we use this impact classification will use it as a threat modeling
280
+
281
+ 71
282
+ 00:06:02,000 --> 00:06:09,000
283
+ to feel free to explore a suggested template for business impact analysis.
284
+
285
+ 72
286
+ 00:06:10,000 --> 00:06:17,000
287
+ In this particular case, I show the example only for business impact types, legal and financial.
288
+
289
+ 73
290
+ 00:06:18,000 --> 00:06:21,000
291
+ But you can also specify all the business impact types.
292
+
293
+ 74
294
+ 00:06:22,000 --> 00:06:30,000
295
+ One year that was the view of this slide resumes if you do and let's move on all this that once you
296
+
297
+ 75
298
+ 00:06:30,000 --> 00:06:37,000
299
+ gather security requirements in this list it is better to translate into regular status according to
300
+
301
+ 76
302
+ 00:06:37,000 --> 00:06:43,000
303
+ the selected software development lifecycle on track implementation of the security requirements on
304
+
305
+ 77
306
+ 00:06:43,000 --> 00:06:50,000
307
+ the same level and in the same way as tracking implementation of the functional and functional requirements.
308
+
309
+ 78
310
+ 00:06:50,000 --> 00:06:58,000
311
+ Because usually when I ask teams, what are your store security requirements, we find that some security
312
+
313
+ 79
314
+ 00:06:58,000 --> 00:07:01,000
315
+ requirements are stored in the emails.
316
+
317
+ 80
318
+ 00:07:01,000 --> 00:07:07,000
319
+ Something was discussed in the messenger, something was documented in conference or other kind of knowledge
320
+
321
+ 81
322
+ 00:07:07,000 --> 00:07:08,000
323
+ base.
324
+
325
+ 82
326
+ 00:07:08,000 --> 00:07:10,000
327
+ Something was captured and taken.
328
+
329
+ 83
330
+ 00:07:11,000 --> 00:07:13,000
331
+ This is not how this should work.
332
+
333
+ 84
334
+ 00:07:13,000 --> 00:07:19,000
335
+ You should apply the same workflow for security requirements as for other requirements.
336
+
337
+ 85
338
+ 00:07:19,000 --> 00:07:21,000
339
+ That is a key to success.
340
+
341
+ 86
342
+ 00:07:22,000 --> 00:07:26,000
343
+ Architect should define architecture of your application feature or component.
344
+
345
+ 87
346
+ 00:07:27,000 --> 00:07:33,000
347
+ This is designing courses that should already take into account security requirements for events or
348
+
349
+ 88
350
+ 00:07:33,000 --> 00:07:34,000
351
+ regular flow.
352
+
353
+ 89
354
+ 00:07:34,000 --> 00:07:37,000
355
+ Tickets should be refined and estimated.
356
+
357
+ 90
358
+ 00:07:37,000 --> 00:07:44,000
359
+ Sometimes it is hard to separate functional implementation and security inquiries, so it is also possible
360
+
361
+ 91
362
+ 00:07:45,000 --> 00:07:50,000
363
+ that most often security requirements will become part of the feature implementation.
364
+
365
+ 92
366
+ 00:07:50,000 --> 00:07:51,000
367
+ And that is fine.
368
+
369
+ 93
370
+ 00:07:52,000 --> 00:07:53,000
371
+ You shouldn't be afraid of that.
372
+
373
+ 94
374
+ 00:07:54,000 --> 00:07:54,000
375
+ Definitely.
376
+
377
+ 95
378
+ 00:07:54,000 --> 00:08:02,000
379
+ There will be owners, managers and marketers who ask you to decrease development estimates constantly
380
+
381
+ 96
382
+ 00:08:02,000 --> 00:08:03,000
383
+ challenging you.
384
+
385
+ 97
386
+ 00:08:03,000 --> 00:08:09,000
387
+ Whether you need to spend some time on the implementation of security controls right now, or it can
388
+
389
+ 98
390
+ 00:08:09,000 --> 00:08:16,000
391
+ be put into separate, taken and left as a technical debt, then me, once you create technical date,
392
+
393
+ 99
394
+ 00:08:16,000 --> 00:08:18,000
395
+ that means you can forget about it.
396
+
397
+ 100
398
+ 00:08:19,000 --> 00:08:25,000
399
+ The dynamic of I.T and software development doesn't allow to look back.
400
+
401
+ 101
402
+ 00:08:25,000 --> 00:08:26,000
403
+ Never.
404
+
405
+ 102
406
+ 00:08:26,000 --> 00:08:33,000
407
+ That's why I want to ask you to stay strong and highlight the importance and necessity of implementation
408
+
409
+ 103
410
+ 00:08:33,000 --> 00:08:37,000
411
+ of security controls and secure design during the future.
412
+
413
+ 104
414
+ 00:08:37,000 --> 00:08:45,000
415
+ Development program is always a matter of tradeoffs between business and technology and speed and quality.
416
+
417
+ 105
418
+ 00:08:45,000 --> 00:08:52,000
419
+ Let's remember, business and technology should go hand in hand with each other, and you will win the
420
+
421
+ 106
422
+ 00:08:52,000 --> 00:08:59,000
423
+ market only if you can find the right balance based on all information, gather the action that can
424
+
425
+ 107
426
+ 00:08:59,000 --> 00:09:01,000
427
+ conduct smart modeling.
428
+
429
+ 108
430
+ 00:09:01,000 --> 00:09:07,000
431
+ Having all this information means that we have enough information to model different threats.
432
+
433
+ 109
434
+ 00:09:07,000 --> 00:09:13,000
435
+ Like I already said, this experience, it can be done by all team or any team member.
436
+
437
+ 110
438
+ 00:09:13,000 --> 00:09:19,000
439
+ But definitely if you have security using your team, this person has enough skills.
440
+
441
+ 111
442
+ 00:09:19,000 --> 00:09:23,000
443
+ Someone knows threats based on his or her experience.
444
+
445
+ 112
446
+ 00:09:24,000 --> 00:09:28,000
447
+ On this slide, you can see an example of Sweat's register and how it can look.
448
+
449
+ 113
450
+ 00:09:29,000 --> 00:09:34,000
451
+ Basically you can come up with your own way to search for sweat register.
452
+
453
+ 114
454
+ 00:09:34,000 --> 00:09:38,000
455
+ I just suggest the one that I use on my projects.
456
+
457
+ 115
458
+ 00:09:39,000 --> 00:09:44,000
459
+ Most of the columns are self-described sweat type and go one of the following.
460
+
461
+ 116
462
+ 00:09:44,000 --> 00:09:54,000
463
+ See confidentiality, integrity, a availability, a you authenticity and non reconciliation.
464
+
465
+ 117
466
+ 00:09:55,000 --> 00:09:58,000
467
+ The following columns US Red Thread Description.
468
+
469
+ 118
470
+ 00:09:59,000 --> 00:10:06,000
471
+ If you don't have any questions regarding Zeus, in case there are any questions, please do not hesitate
472
+
473
+ 119
474
+ 00:10:06,000 --> 00:10:11,000
475
+ to ask your questions below this video and I will be happy to answer.
476
+
477
+ 120
478
+ 00:10:12,000 --> 00:10:17,000
479
+ And acid is an integral device as a component of an organization's systems.
480
+
481
+ 121
482
+ 00:10:18,000 --> 00:10:25,000
483
+ It is valuable often because it contains sensitive data or can be used to access such information,
484
+
485
+ 122
486
+ 00:10:26,000 --> 00:10:30,000
487
+ or that impact will review and learns how to classify and pack.
488
+
489
+ 123
490
+ 00:10:31,000 --> 00:10:38,000
491
+ For example, you can see that sensitive data leakage is catastrophic, legal and regulatory impact.
492
+
493
+ 124
494
+ 00:10:39,000 --> 00:10:44,000
495
+ Thus, this is critical importance of this security requirement.
496
+
497
+ 125
498
+ 00:10:44,000 --> 00:10:47,000
499
+ Is it clear that's how it works?
500
+
501
+ 126
502
+ 00:10:48,000 --> 00:10:51,000
503
+ Probability is basically probability of stress.
504
+
505
+ 127
506
+ 00:10:51,000 --> 00:10:56,000
507
+ Assume in most cases this is most subjective evaluation.
508
+
509
+ 128
510
+ 00:10:56,000 --> 00:11:02,000
511
+ Whereas as an objective is a mitigation column, you can just paste idea of security control.
512
+
513
+ 129
514
+ 00:11:03,000 --> 00:11:10,000
515
+ In a minute we are going to review how the lethal security controls can look like and basically risk
516
+
517
+ 130
518
+ 00:11:10,000 --> 00:11:13,000
519
+ corner is a person who is in charge of managing this threat.
520
+
521
+ 131
522
+ 00:11:13,000 --> 00:11:21,000
523
+ Thought the security engineer should identify and understand project level threats based on the functionality
524
+
525
+ 132
526
+ 00:11:21,000 --> 00:11:25,000
527
+ of the software being developed on the characteristics of the runtime environment.
528
+
529
+ 133
530
+ 00:11:26,000 --> 00:11:31,000
531
+ I also promised to show you how the list of security controls can look good.
532
+
533
+ 134
534
+ 00:11:32,000 --> 00:11:36,000
535
+ On this slide, you can see just the structure of the security control list.
536
+
537
+ 135
538
+ 00:11:37,000 --> 00:11:40,000
539
+ You can refer to each security control by its ID.
540
+
541
+ 136
542
+ 00:11:41,000 --> 00:11:45,000
543
+ So this is also one of the steps in our process to create a design.
544
+
545
+ 137
546
+ 00:11:46,000 --> 00:11:50,000
547
+ And this step is called Great List of Security Controls.
548
+
549
+ 138
550
+ 00:11:50,000 --> 00:11:57,000
551
+ One more time let's formalize the term of security control and need to define what it is.
552
+
553
+ 139
554
+ 00:11:58,000 --> 00:12:06,000
555
+ Security controls are parameters implemented to protect various forms of data and infrastructure important
556
+
557
+ 140
558
+ 00:12:06,000 --> 00:12:15,000
559
+ to an organization and any type of safeguard as it used to avoid, detect, contract or minimize security
560
+
561
+ 141
562
+ 00:12:15,000 --> 00:12:22,000
563
+ risks to physical property information, computer systems or other assets is considered as security
564
+
565
+ 142
566
+ 00:12:22,000 --> 00:12:23,000
567
+ control.
568
+
569
+ 143
570
+ 00:12:24,000 --> 00:12:32,000
571
+ There are different types of security controls, zero physical security controls that include such things
572
+
573
+ 144
574
+ 00:12:32,000 --> 00:12:39,000
575
+ as Staples Center, perimeter fence and locks, guards access control cards, biometric access control
576
+
577
+ 145
578
+ 00:12:39,000 --> 00:12:45,000
579
+ systems, surveillance cameras and intrusion detection sensors.
580
+
581
+ 146
582
+ 00:12:46,000 --> 00:12:51,000
583
+ Digital security controls include such things as usernames and passwords.
584
+
585
+ 147
586
+ 00:12:51,000 --> 00:12:56,000
587
+ Two factor authentication antivirus software and firewalls.
588
+
589
+ 148
590
+ 00:12:57,000 --> 00:13:04,000
591
+ Cybersecurity controls include anything specifically designed to prevent attacks on data, including
592
+
593
+ 149
594
+ 00:13:04,000 --> 00:13:08,000
595
+ the loss mitigation and intrusion prevention systems.
596
+
597
+ 150
598
+ 00:13:09,000 --> 00:13:17,000
599
+ Cloud security controls include measures it takes in cooperation with a cloud services provider to ensure
600
+
601
+ 151
602
+ 00:13:17,000 --> 00:13:20,000
603
+ the necessary protection for data and workloads.
604
+
605
+ 152
606
+ 00:13:21,000 --> 00:13:24,000
607
+ Improvisation runs workloads on the cloud.
608
+
609
+ 153
610
+ 00:13:25,000 --> 00:13:31,000
611
+ You must needs a corporate or business policy, security requirements and industry regulations.
612
+
613
+ 154
614
+ 00:13:32,000 --> 00:13:41,000
615
+ And just as a reference a cloud work log Zen is an application service type ability or a specified amount
616
+
617
+ 155
618
+ 00:13:41,000 --> 00:13:47,000
619
+ of work that consumes cloud based resources such as computing or memory power.
620
+
621
+ 156
622
+ 00:13:48,000 --> 00:13:54,000
623
+ Also, it is recommended to do a few things to ensure a secure design defines the current status of
624
+
625
+ 157
626
+ 00:13:54,000 --> 00:14:02,000
627
+ security controls, covering integrity, confidentiality, access, control, etc. defines the current
628
+
629
+ 158
630
+ 00:14:02,000 --> 00:14:08,000
631
+ status of security controls, conference ID, Business Continuity Plan, Disaster Recovery Plan, Project
632
+
633
+ 159
634
+ 00:14:08,000 --> 00:14:10,000
635
+ Management, Change Management.
636
+
637
+ 160
638
+ 00:14:10,000 --> 00:14:15,000
639
+ So security controls can look like you see on the slide.
640
+
641
+ 161
642
+ 00:14:16,000 --> 00:14:20,000
643
+ Security engineers should also perform gap analysis.
644
+
645
+ 162
646
+ 00:14:21,000 --> 00:14:28,000
647
+ The security engineer should compare the required security controls and existing legacy controls of
648
+
649
+ 163
650
+ 00:14:28,000 --> 00:14:28,000
651
+ the project.
652
+
653
+ 164
654
+ 00:14:29,000 --> 00:14:36,000
655
+ On this slide, you can see suggested data structure, whereas the results of this analysis can be stored.
656
+
657
+ 165
658
+ 00:14:37,000 --> 00:14:42,000
659
+ After gaps are identified, the team has to work on resolving these gaps.
660
+
661
+ 166
662
+ 00:14:43,000 --> 00:14:48,000
663
+ All the steps that we have reviewed should be summarized in the security design document.
664
+
665
+ 167
666
+ 00:14:49,000 --> 00:14:56,000
667
+ Security Design document is a comprehensive artifact that I would be able to put on the one single slot.
668
+
669
+ 168
670
+ 00:14:57,000 --> 00:14:59,000
671
+ It contains different sections.
672
+
673
+ 169
674
+ 00:14:59,000 --> 00:15:07,000
675
+ The main sections should be covered in a document approach conceptual infrastructure security, interview
676
+
677
+ 170
678
+ 00:15:07,000 --> 00:15:11,000
679
+ areas, conceptual security design processes.
680
+
681
+ 171
682
+ 00:15:11,000 --> 00:15:12,000
683
+ Conceptual Situation.
684
+
685
+ 172
686
+ 00:15:12,000 --> 00:15:15,000
687
+ Infrastructure Architecture Design.
688
+
689
+ 173
690
+ 00:15:15,000 --> 00:15:16,000
691
+ Security Design.
692
+
693
+ 174
694
+ 00:15:17,000 --> 00:15:21,000
695
+ Each of these sections may contain all sections.
696
+
697
+ 175
698
+ 00:15:21,000 --> 00:15:28,000
699
+ For example, as a conceptual security infrastructure, architecture design can also cover security
700
+
701
+ 176
702
+ 00:15:28,000 --> 00:15:35,000
703
+ policy, security threats, network security, software, application security and others.
704
+
705
+ 177
706
+ 00:15:35,000 --> 00:15:42,000
707
+ I would say that the content of this document depends on the actual project that the work on.
708
+
709
+ 178
710
+ 00:15:42,000 --> 00:15:49,000
711
+ This is also part of my job as a consultant on the licenses on the project and support team was the
712
+
713
+ 179
714
+ 00:15:49,000 --> 00:15:56,000
715
+ summation of the direction where all the team were to go, including software engineering team.
716
+
717
+ 180
718
+ 00:15:56,000 --> 00:16:03,000
719
+ All this process that we have discussed should go together with measure and causal metrics and understand
720
+
721
+ 181
722
+ 00:16:03,000 --> 00:16:10,000
723
+ that chance and dynamics, because without it, we won't be able to answer whether we are doing a good
724
+
725
+ 182
726
+ 00:16:10,000 --> 00:16:11,000
727
+ job or not.
728
+
729
+ 183
730
+ 00:16:12,000 --> 00:16:18,000
731
+ Zircon, the different magics applied to measure the effectiveness of the causes of build insecure design.
732
+
733
+ 184
734
+ 00:16:19,000 --> 00:16:26,000
735
+ But some of them are metrics of threats, religious, the number of threats, open number of threats,
736
+
737
+ 185
738
+ 00:16:26,000 --> 00:16:34,000
739
+ closed number of sites, mitigated metrics of requirements list number of requirements not process number
740
+
741
+ 186
742
+ 00:16:34,000 --> 00:16:42,000
743
+ of requirements importance number of requirements done matchups of control list number of controls to
744
+
745
+ 187
746
+ 00:16:42,000 --> 00:16:49,000
747
+ do number of controls and process number of controls in review number of controls.
748
+
749
+ 188
750
+ 00:16:49,000 --> 00:16:56,000
751
+ Don't measure these metrics, store them, add them into this system or regular reports.
752
+
753
+ 189
754
+ 00:16:56,000 --> 00:17:01,000
755
+ Builds trends to understand how efficiency and the team work on secure design.
756
+
757
+ 190
758
+ 00:17:02,000 --> 00:17:05,000
759
+ Now let's review example of parts.
760
+
761
+ 191
762
+ 00:17:06,000 --> 00:17:12,000
763
+ Example number one will review reviewed with one example as the beginning of this lesson.
764
+
765
+ 192
766
+ 00:17:12,000 --> 00:17:19,000
767
+ Let me recall, not so long ago, questions were used to restore access.
768
+
769
+ 193
770
+ 00:17:19,000 --> 00:17:25,000
771
+ I if you are familiar with this scenario, you and registration, you are asked about secret question,
772
+
773
+ 194
774
+ 00:17:26,000 --> 00:17:28,000
775
+ the name of your pad or something like this.
776
+
777
+ 195
778
+ 00:17:29,000 --> 00:17:33,000
779
+ And the answer is used when you need to restore access to your account.
780
+
781
+ 196
782
+ 00:17:34,000 --> 00:17:40,000
783
+ It is not a mainstream anymore, primarily because of the potential vulnerabilities caused by insecure
784
+
785
+ 197
786
+ 00:17:40,000 --> 00:17:41,000
787
+ design.
788
+
789
+ 198
790
+ 00:17:42,000 --> 00:17:45,000
791
+ I must top them, have lots of questions and answers.
792
+
793
+ 199
794
+ 00:17:45,000 --> 00:17:53,000
795
+ Can't be trusted as evidence of identity, as more than one person can knows the answers, which is
796
+
797
+ 200
798
+ 00:17:53,000 --> 00:17:54,000
799
+ why they are prohibited.
800
+
801
+ 201
802
+ 00:17:55,000 --> 00:17:59,000
803
+ Such codes should be removed and replaced with a more secure design.
804
+
805
+ 202
806
+ 00:18:00,000 --> 00:18:08,000
807
+ Example number two Imagine that we developed software for cinema chain and according to design required
808
+
809
+ 203
810
+ 00:18:08,000 --> 00:18:12,000
811
+ the only in case 50 attendees book tickets together at once.
812
+
813
+ 204
814
+ 00:18:13,000 --> 00:18:18,000
815
+ In all other cases, we trust our customers and they can book tickets.
816
+
817
+ 205
818
+ 00:18:18,000 --> 00:18:22,000
819
+ And why the ticket office once they will come to the cinema.
820
+
821
+ 206
822
+ 00:18:23,000 --> 00:18:25,000
823
+ This is also an example of insecure design.
824
+
825
+ 207
826
+ 00:18:26,000 --> 00:18:33,000
827
+ If all of the analyzed business impact, discuss different scenarios, gather security requirements
828
+
829
+ 208
830
+ 00:18:33,000 --> 00:18:40,000
831
+ and hold threats more, then we will discover that using this behavior, attackers can cause significant
832
+
833
+ 209
834
+ 00:18:40,000 --> 00:18:42,000
835
+ impact on our business.
836
+
837
+ 210
838
+ 00:18:42,000 --> 00:18:50,000
839
+ I can create a script that will book 1000 seats in the cinema chain, placing orders for 14 tickets
840
+
841
+ 211
842
+ 00:18:50,000 --> 00:18:51,000
843
+ for major cinema.
844
+
845
+ 212
846
+ 00:18:51,000 --> 00:18:54,000
847
+ This will cause a massive loss of income.
848
+
849
+ 213
850
+ 00:18:55,000 --> 00:19:04,000
851
+ Example number three A retail chain e-commerce website doesn't have protection against was run by scalpers
852
+
853
+ 214
854
+ 00:19:04,000 --> 00:19:07,000
855
+ buying high end video cards to sell them.
856
+
857
+ 215
858
+ 00:19:08,000 --> 00:19:15,000
859
+ This creates terrible publicity for the video parts makers and retail chain owners and doesn't allow
860
+
861
+ 216
862
+ 00:19:15,000 --> 00:19:18,000
863
+ people to buy video cards for analysis.
864
+
865
+ 217
866
+ 00:19:18,000 --> 00:19:25,000
867
+ And their attackers can write a script, registers accounts and constantly place orders without binds
868
+
869
+ 218
870
+ 00:19:25,000 --> 00:19:25,000
871
+ them.
872
+
873
+ 219
874
+ 00:19:26,000 --> 00:19:31,000
875
+ Thus, the product is always not in stock and also not sold.
876
+
877
+ 220
878
+ 00:19:32,000 --> 00:19:39,000
879
+ People can't buy product because there was 20 minutes to pay order once it was placed.
880
+
881
+ 221
882
+ 00:19:40,000 --> 00:19:44,000
883
+ This is also insecure design and attackers can use zuse.
884
+
885
+ 222
886
+ 00:19:44,000 --> 00:19:52,000
887
+ When I do this careful and towards design and domain logic rules such as purchases made within a few
888
+
889
+ 223
890
+ 00:19:52,000 --> 00:19:59,000
891
+ seconds of availability might identify email sending purchases and reject such transactions.
892
+
893
+ 224
894
+ 00:19:59,000 --> 00:20:08,000
895
+ Even this part we have discussed already how to setup causes of any ensure secure design and avoid vulnerability
896
+
897
+ 225
898
+ 00:20:08,000 --> 00:20:15,000
899
+ simulated was insecure design even despite all this still, I would like to summarize rules, guides
900
+
901
+ 226
902
+ 00:20:15,000 --> 00:20:18,000
903
+ and viruses how to prevent insecure design.
904
+
905
+ 227
906
+ 00:20:19,000 --> 00:20:26,000
907
+ Establish and use a secure development lifecycle with security professionals to help evaluate and design
908
+
909
+ 228
910
+ 00:20:26,000 --> 00:20:29,000
911
+ security and privacy related controls.
912
+
913
+ 229
914
+ 00:20:30,000 --> 00:20:33,000
915
+ This is something we have talked about in all the lesson.
916
+
917
+ 230
918
+ 00:20:34,000 --> 00:20:41,000
919
+ Use threat modeling for critical authentication, access control, business logic and key flows.
920
+
921
+ 231
922
+ 00:20:41,000 --> 00:20:46,000
923
+ Integrate security and controls into user stories.
924
+
925
+ 232
926
+ 00:20:46,000 --> 00:20:48,000
927
+ I also highlighted this one.
928
+
929
+ 233
930
+ 00:20:48,000 --> 00:20:55,000
931
+ We talked about the causes we should make work on security items, part of our general development flow.
932
+
933
+ 234
934
+ 00:20:56,000 --> 00:21:03,000
935
+ Write an integration test to validate that all critical flows are resistant to this threat model.
936
+
937
+ 235
938
+ 00:21:04,000 --> 00:21:04,000
939
+ Compound.
940
+
941
+ 236
942
+ 00:21:04,000 --> 00:21:10,000
943
+ Use cases and misuse cases for each type of application.
944
+
945
+ 237
946
+ 00:21:10,000 --> 00:21:17,000
947
+ Segregate tilers on the system that requires dependent on the exposure and protection needs.
948
+
949
+ 238
950
+ 00:21:18,000 --> 00:21:21,000
951
+ That's all what I wanted to share with you in this lesson.
952
+
953
+ 239
954
+ 00:21:22,000 --> 00:21:24,000
955
+ Let's recap what we have learned.
956
+
957
+ 240
958
+ 00:21:25,000 --> 00:21:28,000
959
+ This was long, but I'm sure a very useful lesson.
960
+
961
+ 241
962
+ 00:21:29,000 --> 00:21:30,000
963
+ I hope you enjoyed it.
964
+
965
+ 242
966
+ 00:21:31,000 --> 00:21:37,000
967
+ Today we learned what insecure design is after this lesson, even though there's a difference between
968
+
969
+ 243
970
+ 00:21:37,000 --> 00:21:41,000
971
+ insecure design and insecure implementation.
972
+
973
+ 244
974
+ 00:21:42,000 --> 00:21:49,000
975
+ Goodman's shift left approach, I explained, is a most notable common defense enumerations.
976
+
977
+ 245
978
+ 00:21:50,000 --> 00:21:58,000
979
+ We also learned what a secure design is significant because of our less educated to smart modern vendors,
980
+
981
+ 246
982
+ 00:21:58,000 --> 00:22:04,000
983
+ whether this is go freelance or model and manifesto.
984
+
985
+ 247
986
+ 00:22:05,000 --> 00:22:06,000
987
+ Now you know what it is.
988
+
989
+ 248
990
+ 00:22:06,000 --> 00:22:09,000
991
+ We learned its values and principles.
992
+
993
+ 249
994
+ 00:22:10,000 --> 00:22:17,000
995
+ Also use the lesson I explained to how to build a secure design process while talking about security
996
+
997
+ 250
998
+ 00:22:17,000 --> 00:22:18,000
999
+ and process.
1000
+
1001
+ 251
1002
+ 00:22:18,000 --> 00:22:21,000
1003
+ We learned what a business impact analysis is.
1004
+
1005
+ 252
1006
+ 00:22:22,000 --> 00:22:27,000
1007
+ I even shared a template that you can use as a business impact analysis.
1008
+
1009
+ 253
1010
+ 00:22:28,000 --> 00:22:35,000
1011
+ I showed you on example how works in a work with sweats, register the learn the concept of security
1012
+
1013
+ 254
1014
+ 00:22:35,000 --> 00:22:39,000
1015
+ controls and we learned how to create a list of security controls.
1016
+
1017
+ 255
1018
+ 00:22:40,000 --> 00:22:44,000
1019
+ I explained what a security design document is.
1020
+
1021
+ 256
1022
+ 00:22:44,000 --> 00:22:49,000
1023
+ We have used examples of attacks and we learned how to prevent them.
1024
+
1025
+ 257
1026
+ 00:22:50,000 --> 00:22:51,000
1027
+ That's all for this lesson.
1028
+
1029
+ 258
1030
+ 00:22:52,000 --> 00:22:53,000
1031
+ Thanks for your attention.
1032
+
1033
+ 259
1034
+ 00:22:54,000 --> 00:22:56,000
1035
+ Have a great day and see you in the next lesson.
1036
+
73 - OWASP Top 10 2021/011 NIST-800-123-Guide-to-General-Server-Security.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-123.pdf
73 - OWASP Top 10 2021/011 NIST-800-207-Zero-Trust-Architecture.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf
73 - OWASP Top 10 2021/011 Security Misconfiguration (Overview, CWEs, Types, Real-life attacks)_en.srt ADDED
@@ -0,0 +1,828 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello Tim.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:13,000
7
+ And this has background to talk about security misconfiguration risk category from a wasp top ten will
8
+
9
+ 3
10
+ 00:00:13,000 --> 00:00:17,000
11
+ start the lesson from the general overview of this risk category.
12
+
13
+ 4
14
+ 00:00:17,000 --> 00:00:22,000
15
+ Probably explain what the potential impact may be caused by security in this configuration.
16
+
17
+ 5
18
+ 00:00:23,000 --> 00:00:26,000
19
+ To gather, we'll review the most notable common weakness.
20
+
21
+ 6
22
+ 00:00:26,000 --> 00:00:34,000
23
+ Enumerations, as always, will make a comparison between of US Top ten, 20, 21 and 2017.
24
+
25
+ 7
26
+ 00:00:35,000 --> 00:00:38,000
27
+ I will explain the different types of security in this configuration.
28
+
29
+ 8
30
+ 00:00:39,000 --> 00:00:45,000
31
+ Will reviews the most popular examples of attacks that says Cessful because of the security in this
32
+
33
+ 9
34
+ 00:00:45,000 --> 00:00:46,000
35
+ configuration.
36
+
37
+ 10
38
+ 00:00:46,000 --> 00:00:54,000
39
+ Also, as we will keep on new topic, I will explain what security hardening is, what zero trust security
40
+
41
+ 11
42
+ 00:00:54,000 --> 00:01:03,000
43
+ model is, and what defense and gaps this will learn these new concepts because I believe it is really
44
+
45
+ 12
46
+ 00:01:03,000 --> 00:01:08,000
47
+ important to know that will also review best practices for system hardening.
48
+
49
+ 13
50
+ 00:01:09,000 --> 00:01:16,000
51
+ And after all this, I'm going to show you them on the example of general web application and review,
52
+
53
+ 14
54
+ 00:01:16,000 --> 00:01:22,000
55
+ as is some examples of security misconfiguration vulnerabilities and the zant of this lesson.
56
+
57
+ 15
58
+ 00:01:22,000 --> 00:01:28,000
59
+ We're going to make a summary with all what we have learned and will discuss how to prevent security.
60
+
61
+ 16
62
+ 00:01:28,000 --> 00:01:32,000
63
+ Misconfigurations Let's start our lesson.
64
+
65
+ 17
66
+ 00:01:32,000 --> 00:01:36,000
67
+ Let's name first what security Misconfigurations category is all about.
68
+
69
+ 18
70
+ 00:01:37,000 --> 00:01:43,000
71
+ Security Misconfiguration happens when security settings are not properly set during the configuration
72
+
73
+ 19
74
+ 00:01:43,000 --> 00:01:48,000
75
+ process or deployed and mine was default settings.
76
+
77
+ 20
78
+ 00:01:48,000 --> 00:01:55,000
79
+ One of the most common and frequent occurrence is to configure systems that could affect any of the
80
+
81
+ 21
82
+ 00:01:55,000 --> 00:02:02,000
83
+ applications stack, network, layer and cloud misconfigured cloud central core.
84
+
85
+ 22
86
+ 00:02:02,000 --> 00:02:09,000
87
+ So data breaches customer organizations millions of dollars common misconfiguration vulnerabilities
88
+
89
+ 23
90
+ 00:02:09,000 --> 00:02:16,000
91
+ arise was the use of the following default passwords open database instances.
92
+
93
+ 24
94
+ 00:02:16,000 --> 00:02:22,000
95
+ This mode allows any valid user to connect as a database and perform data access operations.
96
+
97
+ 25
98
+ 00:02:23,000 --> 00:02:31,000
99
+ Deprecate the protocols and encryption error messages, revealing sensitive information, directly enabled
100
+
101
+ 26
102
+ 00:02:32,000 --> 00:02:40,000
103
+ default certificates, misconfigured cloud settings and necessary features such as pages, ports services
104
+
105
+ 27
106
+ 00:02:40,000 --> 00:02:48,000
107
+ enabled due to default installation leading to force browsing comments, injection, brute force credential,
108
+
109
+ 28
110
+ 00:02:48,000 --> 00:02:49,000
111
+ stuffing, etc..
112
+
113
+ 29
114
+ 00:02:50,000 --> 00:02:56,000
115
+ To understand better why security misconfiguration may be dangerous, let's review just some of the
116
+
117
+ 30
118
+ 00:02:56,000 --> 00:02:59,000
119
+ potential impacts that may be caused by security.
120
+
121
+ 31
122
+ 00:02:59,000 --> 00:03:00,000
123
+ Misconfiguration.
124
+
125
+ 32
126
+ 00:03:01,000 --> 00:03:09,000
127
+ Misconfiguration of web server database storage buckets, applications libraries, operating system
128
+
129
+ 33
130
+ 00:03:09,000 --> 00:03:15,000
131
+ coding frameworks platforms, virtual machines certificates, encryption settings.
132
+
133
+ 34
134
+ 00:03:15,000 --> 00:03:23,000
135
+ Cloud impacts different aspects of vulnerability, integrity and confidentiality triad.
136
+
137
+ 35
138
+ 00:03:23,000 --> 00:03:31,000
139
+ Depending on the nature of the vulnerability, this could lead to unauthorized access, account takeover,
140
+
141
+ 36
142
+ 00:03:31,000 --> 00:03:39,000
143
+ sensitive data exposure, data, system compromise, and legal and financial implications.
144
+
145
+ 37
146
+ 00:03:39,000 --> 00:03:46,000
147
+ As a result of this vulnerability, security misconfigurations can be a result of relatively simple
148
+
149
+ 38
150
+ 00:03:46,000 --> 00:03:52,000
151
+ oversights, but can expose an application to attack in certain instances.
152
+
153
+ 39
154
+ 00:03:53,000 --> 00:04:01,000
155
+ Use configuration mainly information in schools so a cybercriminal won't even need to carry out an active
156
+
157
+ 40
158
+ 00:04:01,000 --> 00:04:02,000
159
+ attack.
160
+
161
+ 41
162
+ 00:04:03,000 --> 00:04:09,000
163
+ The low code and data exposed to users big Uris for application security.
164
+
165
+ 42
166
+ 00:04:10,000 --> 00:04:17,000
167
+ For example, a misconfigured database server can cause data to be accessible through a basic web search.
168
+
169
+ 43
170
+ 00:04:17,000 --> 00:04:25,000
171
+ If this dating pools, administrator, credentials and attack may be able to access the data beyond
172
+
173
+ 44
174
+ 00:04:25,000 --> 00:04:29,000
175
+ a database or launch another attack on the company's service.
176
+
177
+ 45
178
+ 00:04:30,000 --> 00:04:38,000
179
+ In the case of misconfigured apps and security controls and storage devices, huge amounts of sensitive
180
+
181
+ 46
182
+ 00:04:38,000 --> 00:04:41,000
183
+ and personal data can be exposed to the general public.
184
+
185
+ 47
186
+ 00:04:41,000 --> 00:04:49,000
187
+ With the internet generally, there is no way of discovering who might have access to this information
188
+
189
+ 48
190
+ 00:04:49,000 --> 00:04:50,000
191
+ before it was secure.
192
+
193
+ 49
194
+ 00:04:51,000 --> 00:05:00,000
195
+ If you can't block access an application structure attackers can exploit to modify parts of our reverse
196
+
197
+ 50
198
+ 00:05:00,000 --> 00:05:03,000
199
+ engineer application attackers.
200
+
201
+ 51
202
+ 00:05:03,000 --> 00:05:08,000
203
+ Can exploit it to modify parts of or reverse engineer the application.
204
+
205
+ 52
206
+ 00:05:09,000 --> 00:05:15,000
207
+ This might be hard to control if an application is meant for delivery to mobile devices.
208
+
209
+ 53
210
+ 00:05:16,000 --> 00:05:22,000
211
+ These are just some potential impacts that may be caused by security misconfiguration.
212
+
213
+ 54
214
+ 00:05:22,000 --> 00:05:29,000
215
+ During the last year we're going to review different cases and examples and you will be able to understand
216
+
217
+ 55
218
+ 00:05:29,000 --> 00:05:32,000
219
+ all potential impact data by the end of the lesson.
220
+
221
+ 56
222
+ 00:05:32,000 --> 00:05:39,000
223
+ As always, let's review notable common weakness enumerations that are associated with this risk category.
224
+
225
+ 57
226
+ 00:05:40,000 --> 00:05:40,000
227
+ Zero.
228
+
229
+ 58
230
+ 00:05:41,000 --> 00:05:45,000
231
+ CW e6 sim configuration weakness.
232
+
233
+ 59
234
+ 00:05:46,000 --> 00:05:50,000
235
+ In this category, I typically introduce as a configuration of the software.
236
+
237
+ 60
238
+ 00:05:51,000 --> 00:06:00,000
239
+ This includes but not limited to such vulnerabilities as remote code execution, insecure proxy configuration,
240
+
241
+ 61
242
+ 00:06:00,000 --> 00:06:03,000
243
+ denial of service, etc..
244
+
245
+ 62
246
+ 00:06:04,000 --> 00:06:06,000
247
+ S.W.A.T. 611.
248
+
249
+ 63
250
+ 00:06:07,000 --> 00:06:15,000
251
+ Improper restriction of X amount external entity reference the software processes and excellent documents
252
+
253
+ 64
254
+ 00:06:15,000 --> 00:06:23,000
255
+ that contain excellent entities was your eyes that resolve the documents outside of the intense sphere
256
+
257
+ 65
258
+ 00:06:23,000 --> 00:06:31,000
259
+ of control, causing all of them that incorrect documents entities output x amount documents optionally
260
+
261
+ 66
262
+ 00:06:31,000 --> 00:06:40,000
263
+ contain and document type definition date to the which among closet features labels is a definition
264
+
265
+ 67
266
+ 00:06:40,000 --> 00:06:42,000
267
+ of external entities.
268
+
269
+ 68
270
+ 00:06:42,000 --> 00:06:50,000
271
+ It is possible to define an entity by providing a substitution string in the form of a you arrive at
272
+
273
+ 69
274
+ 00:06:50,000 --> 00:06:59,000
275
+ smoke pass can access the contents of this array and and that this contents back into excellent documents
276
+
277
+ 70
278
+ 00:06:59,000 --> 00:07:00,000
279
+ for further processing.
280
+
281
+ 71
282
+ 00:07:01,000 --> 00:07:09,000
283
+ Once the content of the you write is read, it is fed back into the application this process since the
284
+
285
+ 72
286
+ 00:07:09,000 --> 00:07:10,000
287
+ x amount.
288
+
289
+ 73
290
+ 00:07:10,000 --> 00:07:19,000
291
+ This application may echo bags of data, for example, in an error message is thereby exposing the file
292
+
293
+ 74
294
+ 00:07:19,000 --> 00:07:20,000
295
+ contents.
296
+
297
+ 75
298
+ 00:07:21,000 --> 00:07:25,000
299
+ Let's compare was top ten, 20, 21 and 2017.
300
+
301
+ 76
302
+ 00:07:26,000 --> 00:07:29,000
303
+ Mother in software gets increasingly complex.
304
+
305
+ 77
306
+ 00:07:30,000 --> 00:07:38,000
307
+ We moved from Simple Systems was one web server and one database to microservice architecture where
308
+
309
+ 78
310
+ 00:07:38,000 --> 00:07:41,000
311
+ we have several services deployed on multiple servers.
312
+
313
+ 79
314
+ 00:07:42,000 --> 00:07:50,000
315
+ These are connected to the Internet by clusters of reverse proxies and load balancers, Amazon's reusable
316
+
317
+ 80
318
+ 00:07:50,000 --> 00:07:56,000
319
+ and used configurations to fit into different environments and applications with increasing amounts
320
+
321
+ 81
322
+ 00:07:56,000 --> 00:07:58,000
323
+ of configuration options.
324
+
325
+ 82
326
+ 00:07:58,000 --> 00:08:04,000
327
+ It's no wonder that this category moved up in the top ten 2021.
328
+
329
+ 83
330
+ 00:08:04,000 --> 00:08:12,000
331
+ Talking about differences, I want to highlight that I was largest external external entities from OWASP
332
+
333
+ 84
334
+ 00:08:12,000 --> 00:08:19,000
335
+ top ten 2017 into security misconfiguration this category in our top ten 2021.
336
+
337
+ 85
338
+ 00:08:20,000 --> 00:08:26,000
339
+ We already talked with you about the most common reasons of security in this configuration of the beginning
340
+
341
+ 86
342
+ 00:08:26,000 --> 00:08:27,000
343
+ of the lesson.
344
+
345
+ 87
346
+ 00:08:27,000 --> 00:08:32,000
347
+ I just suggest you use those in more details and more thoroughly.
348
+
349
+ 88
350
+ 00:08:32,000 --> 00:08:34,000
351
+ So let's go one by one.
352
+
353
+ 89
354
+ 00:08:35,000 --> 00:08:39,000
355
+ Default accounts, passwords, enabled use.
356
+
357
+ 90
358
+ 00:08:39,000 --> 00:08:45,000
359
+ And then this five defaults for system accounts and passwords is a common security misconfiguration
360
+
361
+ 91
362
+ 00:08:46,000 --> 00:08:50,000
363
+ and may allow attackers to gain unauthorized access to the system.
364
+
365
+ 92
366
+ 00:08:51,000 --> 00:08:54,000
367
+ Secure password policy is not implemented.
368
+
369
+ 93
370
+ 00:08:54,000 --> 00:09:01,000
371
+ Failure to implement a password policy may allow attackers to gain unauthorized access to the system
372
+
373
+ 94
374
+ 00:09:01,000 --> 00:09:09,000
375
+ by masses, such as using this common username and password to brute force the username and password
376
+
377
+ 95
378
+ 00:09:09,000 --> 00:09:19,000
379
+ field until successful authentication software is out of date and loss on failure to update software
380
+
381
+ 96
382
+ 00:09:19,000 --> 00:09:19,000
383
+ consciousness.
384
+
385
+ 97
386
+ 00:09:19,000 --> 00:09:27,000
387
+ Parts of the software management process might allow attackers to use techniques such as code injection
388
+
389
+ 98
390
+ 00:09:27,000 --> 00:09:28,000
391
+ to inject malicious code.
392
+
393
+ 99
394
+ 00:09:29,000 --> 00:09:35,000
395
+ The applications executes files and directories unprotected.
396
+
397
+ 100
398
+ 00:09:35,000 --> 00:09:43,000
399
+ Leaving files and directories unprotected may allow attackers to use techniques such as forceful browsing
400
+
401
+ 101
402
+ 00:09:43,000 --> 00:09:52,000
403
+ to gain access to restricted files or areas in the server director and used features enabled or installed.
404
+
405
+ 102
406
+ 00:09:53,000 --> 00:09:59,000
407
+ Failing to remove unnecessary features, components, documentation and samples makes the application
408
+
409
+ 103
410
+ 00:09:59,000 --> 00:10:06,000
411
+ susceptible to misconfiguration vulnerabilities and may allow attackers to use techniques such as code
412
+
413
+ 104
414
+ 00:10:06,000 --> 00:10:11,000
415
+ injection to inject malicious code creations in executes.
416
+
417
+ 105
418
+ 00:10:12,000 --> 00:10:16,000
419
+ Security features not maintained or concealed properly.
420
+
421
+ 106
422
+ 00:10:17,000 --> 00:10:23,000
423
+ Failure to properly configure and maintain security features makes the application vulnerable in this
424
+
425
+ 107
426
+ 00:10:23,000 --> 00:10:24,000
427
+ configuration.
428
+
429
+ 108
430
+ 00:10:24,000 --> 00:10:32,000
431
+ Attacks on published URLs are not blocked from receiving traffic from ordinary users, and published
432
+
433
+ 109
434
+ 00:10:33,000 --> 00:10:40,000
435
+ URLs accessed by those who are making applications are not intended to receive traffic from ordinary
436
+
437
+ 110
438
+ 00:10:40,000 --> 00:10:41,000
439
+ users.
440
+
441
+ 111
442
+ 00:10:41,000 --> 00:10:47,000
443
+ Failure to block this use can pose a significant risk when attackers counsel them.
444
+
445
+ 112
446
+ 00:10:49,000 --> 00:10:52,000
447
+ Improper or poor application coding practices.
448
+
449
+ 113
450
+ 00:10:53,000 --> 00:10:58,000
451
+ Improper coding practices can lead to security misconfiguration attacks, for example.
452
+
453
+ 114
454
+ 00:10:59,000 --> 00:11:06,000
455
+ The lack of proper input out data validation may lead to code injection attacks, which work by injecting
456
+
457
+ 115
458
+ 00:11:06,000 --> 00:11:08,000
459
+ codes as application executes.
460
+
461
+ 116
462
+ 00:11:09,000 --> 00:11:14,000
463
+ By the way, we have separate less involved injection risk category.
464
+
465
+ 117
466
+ 00:11:14,000 --> 00:11:16,000
467
+ Feel free to watch it.
468
+
469
+ 118
470
+ 00:11:17,000 --> 00:11:25,000
471
+ Directory traversal allows an attacker to access the directories, files and commands that the outside
472
+
473
+ 119
474
+ 00:11:25,000 --> 00:11:32,000
475
+ of the directory arm was to access the application source code or configuration and critical system
476
+
477
+ 120
478
+ 00:11:32,000 --> 00:11:33,000
479
+ files.
480
+
481
+ 121
482
+ 00:11:33,000 --> 00:11:41,000
483
+ Cybercriminal can change a euro in such a way that the creation could execute or displayed the contents
484
+
485
+ 122
486
+ 00:11:41,000 --> 00:11:50,000
487
+ of arbitrary files on the server and any device or application reveals an issue based interface is possible
488
+
489
+ 123
490
+ 00:11:50,000 --> 00:11:53,000
491
+ vulnerable to the directory traversal attack.
492
+
493
+ 124
494
+ 00:11:54,000 --> 00:12:00,000
495
+ As I always say, it is better to use the experience of other organizations rather than advocacy on
496
+
497
+ 125
498
+ 00:12:00,000 --> 00:12:01,000
499
+ your own.
500
+
501
+ 126
502
+ 00:12:02,000 --> 00:12:09,000
503
+ That's why I believe it will be interesting and very helpful to review the most popular real life configuration
504
+
505
+ 127
506
+ 00:12:09,000 --> 00:12:11,000
507
+ attacks from history.
508
+
509
+ 128
510
+ 00:12:11,000 --> 00:12:16,000
511
+ By the way, it is also rule of thumb the storage of lessons learned.
512
+
513
+ 129
514
+ 00:12:16,000 --> 00:12:23,000
515
+ You can have such storage in the scope of your all organization or in the scope of just one single project.
516
+
517
+ 130
518
+ 00:12:24,000 --> 00:12:31,000
519
+ Archive of Lessons Learned is a priceless knowledge base that can help you with repeatable mistakes
520
+
521
+ 131
522
+ 00:12:31,000 --> 00:12:33,000
523
+ and avoid the challenges in the future.
524
+
525
+ 132
526
+ 00:12:34,000 --> 00:12:43,000
527
+ Example number one Nossa and Gira the first real examples of a or avidity is about not so humble if
528
+
529
+ 133
530
+ 00:12:43,000 --> 00:12:51,000
531
+ you no such organization, Zebra Aviation stands for the National Aeronautics and Space Administration.
532
+
533
+ 134
534
+ 00:12:51,000 --> 00:12:58,000
535
+ It is an independent agency of the US federal government responsible for the civil space program.
536
+
537
+ 135
538
+ 00:12:59,000 --> 00:13:07,000
539
+ I run Multics research and Space Research and Security Research and discovered a security misconfiguration
540
+
541
+ 136
542
+ 00:13:07,000 --> 00:13:09,000
543
+ in the collaboration tool JIRA.
544
+
545
+ 137
546
+ 00:13:10,000 --> 00:13:19,000
547
+ This single misconfiguration made many Fortune 500 companies and also vulnerable to the release of personal
548
+
549
+ 138
550
+ 00:13:19,000 --> 00:13:24,000
551
+ and corporate data and authorization misconfiguration in the global permissions settings.
552
+
553
+ 139
554
+ 00:13:24,000 --> 00:13:33,000
555
+ Of course, this data disclosure ones, the dashboards and filters for the projects developed in JIRA
556
+
557
+ 140
558
+ 00:13:33,000 --> 00:13:42,000
559
+ Xen by default is a visibility settings of all users and everyone, rather than sharing road map tasks
560
+
561
+ 141
562
+ 00:13:42,000 --> 00:13:44,000
563
+ and the like within the organization.
564
+
565
+ 142
566
+ 00:13:45,000 --> 00:13:47,000
567
+ Each shared zoom was a problem.
568
+
569
+ 143
570
+ 00:13:47,000 --> 00:13:48,000
571
+ Lessons learned.
572
+
573
+ 144
574
+ 00:13:49,000 --> 00:13:56,000
575
+ Look at the file sharing configurations in each software as a service to make sure confidential data
576
+
577
+ 145
578
+ 00:13:56,000 --> 00:13:58,000
579
+ is not revealed publicly.
580
+
581
+ 146
582
+ 00:13:58,000 --> 00:14:02,000
583
+ Example number two Amazon and data breaches.
584
+
585
+ 147
586
+ 00:14:03,000 --> 00:14:11,000
587
+ Many organizations experienced data breaches as a result of unsecured storage buckets on Amazon's popular
588
+
589
+ 148
590
+ 00:14:11,000 --> 00:14:13,000
591
+ S3 storage service.
592
+
593
+ 149
594
+ 00:14:14,000 --> 00:14:21,000
595
+ For example, the U.S. Army Intelligence and Security Command inadvertently stored sensitive database
596
+
597
+ 150
598
+ 00:14:21,000 --> 00:14:28,000
599
+ files, some of them marked top secret in S3 authentication.
600
+
601
+ 151
602
+ 00:14:29,000 --> 00:14:36,000
603
+ Some organizations complained about the leakage of hashed passwords, internal resources and keys.
604
+
605
+ 152
606
+ 00:14:36,000 --> 00:14:43,000
607
+ Other companies complained about leakage of some vacation information, which included certificates,
608
+
609
+ 153
610
+ 00:14:43,000 --> 00:14:48,000
611
+ plaintext passwords, keys and sensitive customer information.
612
+
613
+ 154
614
+ 00:14:49,000 --> 00:14:58,000
615
+ Last year, many organizations rely on the data storage technology of Amazon S3, including military
616
+
617
+ 155
618
+ 00:14:58,000 --> 00:15:00,000
619
+ and government agencies.
620
+
621
+ 156
622
+ 00:15:00,000 --> 00:15:08,000
623
+ However, past security advance indicate that this is a pervasive problem and as we association, should
624
+
625
+ 157
626
+ 00:15:08,000 --> 00:15:10,000
627
+ be carefully monitored.
628
+
629
+ 158
630
+ 00:15:11,000 --> 00:15:21,000
631
+ Example number three Citrix legacy protocols attacked Citrix use and I'm based cloud email server and
632
+
633
+ 159
634
+ 00:15:21,000 --> 00:15:25,000
635
+ became the target of lab based password spraying.
636
+
637
+ 160
638
+ 00:15:26,000 --> 00:15:35,000
639
+ I map is the insecure legacy protocol and attackers exploit to get access to cloud based accounts and
640
+
641
+ 161
642
+ 00:15:35,000 --> 00:15:40,000
643
+ software as a service applications just as a reference.
644
+
645
+ 162
646
+ 00:15:40,000 --> 00:15:41,000
647
+ Few words, but Citrix.
648
+
649
+ 163
650
+ 00:15:42,000 --> 00:15:50,000
651
+ Citrix Systems is an American local national cloud computing and virtualization technology company that
652
+
653
+ 164
654
+ 00:15:50,000 --> 00:15:58,000
655
+ provides server application and desktop virtualization networking software as a service and cloud computing
656
+
657
+ 165
658
+ 00:15:58,000 --> 00:15:59,000
659
+ technologies.
660
+
661
+ 166
662
+ 00:15:59,000 --> 00:16:08,000
663
+ And majority of Microsoft Office 365 and GC panels have been the target of my map based password spraying
664
+
665
+ 167
666
+ 00:16:08,000 --> 00:16:09,000
667
+ attacks.
668
+
669
+ 168
670
+ 00:16:10,000 --> 00:16:12,000
671
+ Few new words in this sentence.
672
+
673
+ 169
674
+ 00:16:12,000 --> 00:16:13,000
675
+ Let me explain.
676
+
677
+ 170
678
+ 00:16:14,000 --> 00:16:16,000
679
+ First of all, what is.
680
+
681
+ 171
682
+ 00:16:16,000 --> 00:16:26,000
683
+ Math in computing the internet message access protocol zebra aviation is I am a p is an Internet standard
684
+
685
+ 172
686
+ 00:16:26,000 --> 00:16:35,000
687
+ protocol used by email clients to retrieve email messages from a mail server over to sip IP connection.
688
+
689
+ 173
690
+ 00:16:35,000 --> 00:16:42,000
691
+ A password screen attack is a type of brute force attack that a malicious actor attempts is the same
692
+
693
+ 174
694
+ 00:16:42,000 --> 00:16:48,000
695
+ password on many accounts before moving on to another one and repeating the process.
696
+
697
+ 175
698
+ 00:16:49,000 --> 00:16:58,000
699
+ The cybercriminals target the insecure legacy IMAP protocol to get past multifactor authentication settings.
700
+
701
+ 176
702
+ 00:16:58,000 --> 00:17:07,000
703
+ I will refer to them as MFA settings and expose cloud based accounts given access to software as a service
704
+
705
+ 177
706
+ 00:17:07,000 --> 00:17:07,000
707
+ applications.
708
+
709
+ 178
710
+ 00:17:08,000 --> 00:17:15,000
711
+ Citrix, which specializes in federated architectures, was the target of such attack.
712
+
713
+ 179
714
+ 00:17:16,000 --> 00:17:18,000
715
+ What is federated architectures?
716
+
717
+ 180
718
+ 00:17:19,000 --> 00:17:27,000
719
+ Federated architecture is upon an enterprise architecture that allows interoperability and information
720
+
721
+ 181
722
+ 00:17:27,000 --> 00:17:34,000
723
+ sharing within segment autonomously, that centrally organized slice of business information technology
724
+
725
+ 182
726
+ 00:17:34,000 --> 00:17:36,000
727
+ systems and applications.
728
+
729
+ 183
730
+ 00:17:37,000 --> 00:17:46,000
731
+ The proposed cybercriminals achieved a foothold by password splitting, and Xen were able to bypass
732
+
733
+ 184
734
+ 00:17:46,000 --> 00:17:47,000
735
+ all the layers of security.
736
+
737
+ 185
738
+ 00:17:48,000 --> 00:17:56,000
739
+ The termination of legacy protocols, including IMAP and Pop, makes it hard for system administrators
740
+
741
+ 186
742
+ 00:17:56,000 --> 00:17:59,000
743
+ to establish and activate MFA.
744
+
745
+ 187
746
+ 00:18:00,000 --> 00:18:08,000
747
+ Sure, mailboxes and service cycles can be especially vulnerable and it can be difficult to use MFA
748
+
749
+ 188
750
+ 00:18:08,000 --> 00:18:14,000
751
+ to protect GC Cloud and Office 365 accounts easy to use.
752
+
753
+ 189
754
+ 00:18:14,000 --> 00:18:24,000
755
+ Now let's make sure that multi-factor authentication is activated for every user in every application,
756
+
757
+ 190
758
+ 00:18:24,000 --> 00:18:27,000
759
+ including super administrators.
760
+
761
+ 191
762
+ 00:18:27,000 --> 00:18:30,000
763
+ Example number four Mirai.
764
+
765
+ 192
766
+ 00:18:30,000 --> 00:18:39,000
767
+ But now Mirai is a type of malware that infects network devices after devices are in fact that they
768
+
769
+ 193
770
+ 00:18:39,000 --> 00:18:45,000
771
+ can be remotely controlled by the operator, which uses them as bots.
772
+
773
+ 194
774
+ 00:18:45,000 --> 00:18:54,000
775
+ That extends the power of a button that Mirai targeted, namely Iot devices, and managed to execute
776
+
777
+ 195
778
+ 00:18:54,000 --> 00:19:01,000
779
+ several high profile attacks even after it was discovered in August 2016.
780
+
781
+ 196
782
+ 00:19:01,000 --> 00:19:11,000
783
+ Dimension A released release code as open source on the IN and the technique has since been used in
784
+
785
+ 197
786
+ 00:19:11,000 --> 00:19:12,000
787
+ other malware projects.
788
+
789
+ 198
790
+ 00:19:13,000 --> 00:19:21,000
791
+ Mirai managed to infect and run on CCTV cameras, home rotors and DVR.
792
+
793
+ 199
794
+ 00:19:22,000 --> 00:19:26,000
795
+ It succeeded by trying commonly used passwords.
796
+
797
+ 200
798
+ 00:19:26,000 --> 00:19:36,000
799
+ This simple massive enables a new whiteboard to produce 218 minutes of beats per second and 102nd megapixels
800
+
801
+ 201
802
+ 00:19:36,000 --> 00:19:37,000
803
+ per second.
804
+
805
+ 202
806
+ 00:19:37,000 --> 00:19:42,000
807
+ Indeed, those ability and attack is a genius provided.
808
+
809
+ 203
810
+ 00:19:44,000 --> 00:19:53,000
811
+ I also rendered several notable sites inaccessible, including GitHub, Reddit, Airbnb, Netflix and
812
+
813
+ 204
814
+ 00:19:53,000 --> 00:19:53,000
815
+ Twitter.
816
+
817
+ 205
818
+ 00:19:53,000 --> 00:20:03,000
819
+ The learned and the most common security misconfiguration threat actors actively look for systems and
820
+
821
+ 206
822
+ 00:20:03,000 --> 00:20:11,000
823
+ devices thought that making use of lists of commonly used passwords and of course this can quickly include
824
+
825
+ 207
826
+ 00:20:11,000 --> 00:20:13,000
827
+ a large number of passwords.
828
+
73 - OWASP Top 10 2021/012 NIST-800-123-Guide-to-General-Server-Security.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-123.pdf
73 - OWASP Top 10 2021/012 NIST-800-207-Zero-Trust-Architecture.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf
73 - OWASP Top 10 2021/012 Security Misconfiguration (Hardening, Zero Trust, Defense in Depth, Practice)_en.srt ADDED
@@ -0,0 +1,1200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:02,000 --> 00:00:03,000
3
+ In scope of this lesson.
4
+
5
+ 2
6
+ 00:00:03,000 --> 00:00:07,000
7
+ We're also going to talk about security hardening.
8
+
9
+ 3
10
+ 00:00:07,000 --> 00:00:09,000
11
+ But what does it mean?
12
+
13
+ 4
14
+ 00:00:09,000 --> 00:00:10,000
15
+ Let me explain.
16
+
17
+ 5
18
+ 00:00:11,000 --> 00:00:19,000
19
+ Hardening when applied to computing is a practice of reducing a system's vulnerability by reducing its
20
+
21
+ 6
22
+ 00:00:19,000 --> 00:00:21,000
23
+ attack surface.
24
+
25
+ 7
26
+ 00:00:22,000 --> 00:00:28,000
27
+ In principle, a single function system is more secure than a multipurpose one.
28
+
29
+ 8
30
+ 00:00:29,000 --> 00:00:36,000
31
+ Reducing available ways of attack typically includes changing default passwords, the removal of unnecessary
32
+
33
+ 9
34
+ 00:00:36,000 --> 00:00:44,000
35
+ software, unnecessary use or logging, and the disabling or removal of unnecessary services.
36
+
37
+ 10
38
+ 00:00:45,000 --> 00:00:47,000
39
+ What is attack surface?
40
+
41
+ 11
42
+ 00:00:48,000 --> 00:00:55,000
43
+ The attacks surface is a combination of all the potential flaws and backdoors and technology that can
44
+
45
+ 12
46
+ 00:00:55,000 --> 00:00:57,000
47
+ be exploited by hackers.
48
+
49
+ 13
50
+ 00:00:57,000 --> 00:00:58,000
51
+ This.
52
+
53
+ 14
54
+ 00:00:58,000 --> 00:01:07,000
55
+ This can occur in multiple ways, including default and hardcoded passwords, passwords and credentials
56
+
57
+ 15
58
+ 00:01:07,000 --> 00:01:16,000
59
+ stored in plain text files, unpatched software and firmware vulnerabilities only configure the BIOS,
60
+
61
+ 16
62
+ 00:01:16,000 --> 00:01:24,000
63
+ firewalls, ports, servers, switches, routers, or other parts of the infrastructure block or deficiency
64
+
65
+ 17
66
+ 00:01:24,000 --> 00:01:27,000
67
+ of privileged access controls.
68
+
69
+ 18
70
+ 00:01:27,000 --> 00:01:35,000
71
+ System hardening in the North and the South Dakota approach to identify those and control potential
72
+
73
+ 19
74
+ 00:01:35,000 --> 00:01:39,000
75
+ security vulnerabilities throughout your organization.
76
+
77
+ 20
78
+ 00:01:40,000 --> 00:01:47,000
79
+ There are several types of system hardening activities, including application harbor, operating system,
80
+
81
+ 21
82
+ 00:01:47,000 --> 00:01:57,000
83
+ hardening server, hardening database, and that hardening halving may involve a reduction in attack
84
+
85
+ 22
86
+ 00:01:57,000 --> 00:02:03,000
87
+ vectors by cordons at pathways or vectors attackers would use.
88
+
89
+ 23
90
+ 00:02:03,000 --> 00:02:06,000
91
+ It may range from adhering to planning.
92
+
93
+ 24
94
+ 00:02:06,000 --> 00:02:15,000
95
+ Policies such as zero trust is a principle of this privilege or defence in deps, but also may include
96
+
97
+ 25
98
+ 00:02:15,000 --> 00:02:22,000
99
+ such activities as implementation of workforce training, segmentation of resources, automation of
100
+
101
+ 26
102
+ 00:02:22,000 --> 00:02:30,000
103
+ security updates, resetting default passwords, asking passwords and stopping storage or transmission
104
+
105
+ 27
106
+ 00:02:30,000 --> 00:02:38,000
107
+ of data unless it is encrypted or using attack vectors through hardening and also involves system owners,
108
+
109
+ 28
110
+ 00:02:39,000 --> 00:02:41,000
111
+ unnecessary services or processes.
112
+
113
+ 29
114
+ 00:02:42,000 --> 00:02:47,000
115
+ Overall, a system that provides most services has a much broader attack.
116
+
117
+ 30
118
+ 00:02:47,000 --> 00:02:51,000
119
+ Face is one performing just one function.
120
+
121
+ 31
122
+ 00:02:52,000 --> 00:02:59,000
123
+ While explaining this slide, I mentioned some interesting and useful policies in my opinion that I'd
124
+
125
+ 32
126
+ 00:02:59,000 --> 00:03:01,000
127
+ like also to discuss with you.
128
+
129
+ 33
130
+ 00:03:02,000 --> 00:03:06,000
131
+ Let me explain what zero prosecution model is.
132
+
133
+ 34
134
+ 00:03:06,000 --> 00:03:14,000
135
+ The zero trust security model, sometimes known as variance or less security, describes an approach
136
+
137
+ 35
138
+ 00:03:14,000 --> 00:03:18,000
139
+ to the design and implementation of I.T systems.
140
+
141
+ 36
142
+ 00:03:18,000 --> 00:03:27,000
143
+ The main concept behind the Zero Trust Security model is not trust all this verify, which means that
144
+
145
+ 37
146
+ 00:03:27,000 --> 00:03:35,000
147
+ devices should not be trusted by default, even if they are connected to permissioned networks such
148
+
149
+ 38
150
+ 00:03:35,000 --> 00:03:39,000
151
+ as corporate along and even invisible privacy.
152
+
153
+ 39
154
+ 00:03:39,000 --> 00:03:49,000
155
+ Five zero Trust is a security framework requiring all users was in or outside the organization's network
156
+
157
+ 40
158
+ 00:03:49,000 --> 00:03:57,000
159
+ to be authenticated, authorized and continuously validated for security configuration before being
160
+
161
+ 41
162
+ 00:03:57,000 --> 00:04:01,000
163
+ granted open access to applications and data.
164
+
165
+ 42
166
+ 00:04:01,000 --> 00:04:04,000
167
+ Zero Trust assumes the use.
168
+
169
+ 43
170
+ 00:04:04,000 --> 00:04:13,000
171
+ No traditional network edge networks can be code in the cloud or combination or hybrid with resources
172
+
173
+ 44
174
+ 00:04:13,000 --> 00:04:17,000
175
+ anywhere, as well as bunkers in any location.
176
+
177
+ 45
178
+ 00:04:18,000 --> 00:04:26,000
179
+ Most modern corporate networks consist of many interconnected zones, cloud services and infrastructure,
180
+
181
+ 46
182
+ 00:04:27,000 --> 00:04:35,000
183
+ connections to remote and mobile environments, and connections to non-conventional I.T. such as Iot
184
+
185
+ 47
186
+ 00:04:35,000 --> 00:04:35,000
187
+ devices.
188
+
189
+ 48
190
+ 00:04:36,000 --> 00:04:43,000
191
+ The reasoning for Zero Trust is that the traditional approach trusts and devices with an emotional corporate
192
+
193
+ 49
194
+ 00:04:43,000 --> 00:04:51,000
195
+ perimeter or devices connected to VPN is not relevant in the complex environment of a corporate network.
196
+
197
+ 50
198
+ 00:04:52,000 --> 00:05:00,000
199
+ Zero trust approach advocates mutual authentication, including checking the identity and integrity
200
+
201
+ 51
202
+ 00:05:00,000 --> 00:05:10,000
203
+ of devices with respect to location and providing access to applications and services based on the confidence
204
+
205
+ 52
206
+ 00:05:10,000 --> 00:05:13,000
207
+ of device identity and device house.
208
+
209
+ 53
210
+ 00:05:13,000 --> 00:05:21,000
211
+ In combination with user authentication, there is a standard from recognized organization that can
212
+
213
+ 54
214
+ 00:05:21,000 --> 00:05:23,000
215
+ help you online.
216
+
217
+ 55
218
+ 00:05:23,000 --> 00:05:25,000
219
+ Zero Trust with your organization.
220
+
221
+ 56
222
+ 00:05:26,000 --> 00:05:33,000
223
+ The standard I'd like to mention is NIST 800 207.
224
+
225
+ 57
226
+ 00:05:34,000 --> 00:05:41,000
227
+ This is funded by National Institute of Standards and Technology, dedicated to zero trust architecture.
228
+
229
+ 58
230
+ 00:05:42,000 --> 00:05:47,000
231
+ I don't believe that we need to go over it in details and scope of this lesson.
232
+
233
+ 59
234
+ 00:05:47,000 --> 00:05:51,000
235
+ I will leaves the reference in attachments to the lesson for you.
236
+
237
+ 60
238
+ 00:05:52,000 --> 00:05:54,000
239
+ Feel free to check it after the lesson.
240
+
241
+ 61
242
+ 00:05:55,000 --> 00:06:02,000
243
+ This is the most lending neutral, comprehensive standards, not just for government entities, but
244
+
245
+ 62
246
+ 00:06:02,000 --> 00:06:04,000
247
+ for any organization.
248
+
249
+ 63
250
+ 00:06:05,000 --> 00:06:13,000
251
+ Zero Trust seeks to address the following key principles based on the guidelines.
252
+
253
+ 64
254
+ 00:06:14,000 --> 00:06:23,000
255
+ Continuous verification always verify access all the time for all sources, limit the blast radius,
256
+
257
+ 65
258
+ 00:06:24,000 --> 00:06:29,000
259
+ minimize impact if an external or inside breach does occur.
260
+
261
+ 66
262
+ 00:06:30,000 --> 00:06:33,000
263
+ Automate context, action and response.
264
+
265
+ 67
266
+ 00:06:33,000 --> 00:06:42,000
267
+ Incorporate behavioral data and get context from the client, stack identity and the point workload,
268
+
269
+ 68
270
+ 00:06:42,000 --> 00:06:45,000
271
+ etc. for the most accurate response.
272
+
273
+ 69
274
+ 00:06:46,000 --> 00:06:53,000
275
+ Execution of this framework combines advanced technologies such as risk based, multi-factor authentication,
276
+
277
+ 70
278
+ 00:06:54,000 --> 00:07:02,000
279
+ identity protection, next generation endpoint security, and robust cloud workflow technology to verify
280
+
281
+ 71
282
+ 00:07:02,000 --> 00:07:04,000
283
+ a user or systems identity.
284
+
285
+ 72
286
+ 00:07:05,000 --> 00:07:11,000
287
+ Consideration of access at that moment in time and the maintenance of system security.
288
+
289
+ 73
290
+ 00:07:12,000 --> 00:07:20,000
291
+ Zero Trust also requires consideration of encryption of data, secure email and verifying the hygiene
292
+
293
+ 74
294
+ 00:07:20,000 --> 00:07:24,000
295
+ of assets and coins before they connect applications.
296
+
297
+ 75
298
+ 00:07:25,000 --> 00:07:30,000
299
+ And also I mentioned such approach as defence in depth.
300
+
301
+ 76
302
+ 00:07:30,000 --> 00:07:34,000
303
+ This is a concept that I'd like also to discuss with you.
304
+
305
+ 77
306
+ 00:07:35,000 --> 00:07:37,000
307
+ So what is the fancy depth?
308
+
309
+ 78
310
+ 00:07:38,000 --> 00:07:46,000
311
+ Defensive maps is an approach to cybersecurity in which a serious of defensive mechanisms layers in
312
+
313
+ 79
314
+ 00:07:46,000 --> 00:07:50,000
315
+ order to protect available data and information.
316
+
317
+ 80
318
+ 00:07:50,000 --> 00:07:57,000
319
+ If one mechanism fails and the other steps up immediately, this or an attack.
320
+
321
+ 81
322
+ 00:07:58,000 --> 00:08:06,000
323
+ This maintenance approach was intentional redundancies and raises the security system as a whole and
324
+
325
+ 82
326
+ 00:08:06,000 --> 00:08:11,000
327
+ addresses many different attack vectors, defensive gaps.
328
+
329
+ 83
330
+ 00:08:11,000 --> 00:08:15,000
331
+ Is it coming through, as it calls the approach?
332
+
333
+ 84
334
+ 00:08:16,000 --> 00:08:18,000
335
+ Because it narrows the landscape.
336
+
337
+ 85
338
+ 00:08:18,000 --> 00:08:27,000
339
+ Francis of Medieval Castle Before you can penetrate the castle you faced was the North Rampart, Drawbridge
340
+
341
+ 86
342
+ 00:08:28,000 --> 00:08:30,000
343
+ Towers, Gotham Mines and so on.
344
+
345
+ 87
346
+ 00:08:32,000 --> 00:08:33,000
347
+ Let's approach the security.
348
+
349
+ 88
350
+ 00:08:33,000 --> 00:08:36,000
351
+ It can be applied to all levels of i.t.
352
+
353
+ 89
354
+ 00:08:36,000 --> 00:08:41,000
355
+ Systems from a single laptop accesses the internet from the coffee shop.
356
+
357
+ 90
358
+ 00:08:41,000 --> 00:08:49,000
359
+ This is a 50,000 user enterprise wide area and that's where the fencing maps can significantly improve
360
+
361
+ 91
362
+ 00:08:49,000 --> 00:08:51,000
363
+ your security profile.
364
+
365
+ 92
366
+ 00:08:52,000 --> 00:08:57,000
367
+ No organization can be ever fully protected by a single layer of security.
368
+
369
+ 93
370
+ 00:08:58,000 --> 00:09:00,000
371
+ Well, one door may be closed.
372
+
373
+ 94
374
+ 00:09:00,000 --> 00:09:07,000
375
+ Others will be left wide open, and hackers will find it useful and very quickly.
376
+
377
+ 95
378
+ 00:09:08,000 --> 00:09:16,000
379
+ However, when you use a serious of different defenses to gather, such as firewalls, commerce, intrusion
380
+
381
+ 96
382
+ 00:09:16,000 --> 00:09:24,000
383
+ detection systems, data encryption and the integrity of these solutions, you effectively close the
384
+
385
+ 97
386
+ 00:09:24,000 --> 00:09:32,000
387
+ gaps created by relying on a seamless security solution and the different elements of defense in depth.
388
+
389
+ 98
390
+ 00:09:33,000 --> 00:09:37,000
391
+ Some of them are network security controls.
392
+
393
+ 99
394
+ 00:09:37,000 --> 00:09:44,000
395
+ For example firewalls, antivirus software, the license of data integrity.
396
+
397
+ 100
398
+ 00:09:44,000 --> 00:09:52,000
399
+ Data Integrity Solutions can also check the source IP address to ensure it is from a known and trusted
400
+
401
+ 101
402
+ 00:09:52,000 --> 00:09:53,000
403
+ source.
404
+
405
+ 102
406
+ 00:09:54,000 --> 00:09:55,000
407
+ Behavioral Analysis.
408
+
409
+ 103
410
+ 00:09:56,000 --> 00:10:00,000
411
+ That's what I wanted to share with you again in defense and depth.
412
+
413
+ 104
414
+ 00:10:01,000 --> 00:10:01,000
415
+ Let's continue.
416
+
417
+ 105
418
+ 00:10:03,000 --> 00:10:03,000
419
+ I believe that.
420
+
421
+ 106
422
+ 00:10:03,000 --> 00:10:06,000
423
+ Now you understand what Harding means.
424
+
425
+ 107
426
+ 00:10:07,000 --> 00:10:10,000
427
+ I suggest to you best practices for System Harding.
428
+
429
+ 108
430
+ 00:10:11,000 --> 00:10:18,000
431
+ The type of Harding you point out, the balance of the risks in the existing technology, the resources
432
+
433
+ 109
434
+ 00:10:18,000 --> 00:10:22,000
435
+ we have available, and the priority for making fixes.
436
+
437
+ 110
438
+ 00:10:23,000 --> 00:10:31,000
439
+ All due to your existing systems, carry out a comprehensive audit of your existing technology, use
440
+
441
+ 111
442
+ 00:10:31,000 --> 00:10:39,000
443
+ penetration testing landings, just common simulation management and other security auditing tools to
444
+
445
+ 112
446
+ 00:10:39,000 --> 00:10:42,000
447
+ find flaws in the system and prioritize fixes.
448
+
449
+ 113
450
+ 00:10:43,000 --> 00:10:50,000
451
+ Conduct system, hardening assessments against sources using industry standards.
452
+
453
+ 114
454
+ 00:10:50,000 --> 00:10:57,000
455
+ For example, the National Institute of Standards and Technology that introduced the old standard.
456
+
457
+ 115
458
+ 00:10:58,000 --> 00:11:05,000
459
+ It is called the General Service Security Special Number 800 123.
460
+
461
+ 116
462
+ 00:11:07,000 --> 00:11:09,000
463
+ Create a strategy for systems hardening.
464
+
465
+ 117
466
+ 00:11:10,000 --> 00:11:14,000
467
+ You do not need to harden all of your systems at once.
468
+
469
+ 118
470
+ 00:11:15,000 --> 00:11:24,000
471
+ Instead, create a strategy and based on the risks identified within your technology ecosystem and use
472
+
473
+ 119
474
+ 00:11:24,000 --> 00:11:27,000
475
+ a phased approach to remediate the biggest flaws.
476
+
477
+ 120
478
+ 00:11:29,000 --> 00:11:38,000
479
+ Partial liabilities immediately ensures that an automated and comprehensive identification and blockchain
480
+
481
+ 121
482
+ 00:11:38,000 --> 00:11:39,000
483
+ system in place.
484
+
485
+ 122
486
+ 00:11:40,000 --> 00:11:49,000
487
+ Network hardening ensure your firewall is properly configured and that all rules are regular in order
488
+
489
+ 123
490
+ 00:11:49,000 --> 00:12:00,000
491
+ to secure remote access points and users block any use or new open network ports, disable and remove
492
+
493
+ 124
494
+ 00:12:00,000 --> 00:12:07,000
495
+ unnecessary protocols and services, implement access lists and create networks.
496
+
497
+ 125
498
+ 00:12:08,000 --> 00:12:08,000
499
+ Track.
500
+
501
+ 126
502
+ 00:12:09,000 --> 00:12:18,000
503
+ Sarah Harding, who's also overseeing the Secure Data Centre, never tests Harding on the production
504
+
505
+ 127
506
+ 00:12:18,000 --> 00:12:25,000
507
+ servers, always Harman's service before connections to the Internet or external networks.
508
+
509
+ 128
510
+ 00:12:26,000 --> 00:12:32,000
511
+ Avoid installing unnecessary software on a server segregates servers appropriately.
512
+
513
+ 129
514
+ 00:12:33,000 --> 00:12:42,000
515
+ And sure, so using an administrative axis is properly set up and that provides on access unlimited
516
+
517
+ 130
518
+ 00:12:42,000 --> 00:12:44,000
519
+ in line with the principle of this privilege.
520
+
521
+ 131
522
+ 00:12:45,000 --> 00:12:52,000
523
+ Application hardening or any components of functions you do not name.
524
+
525
+ 132
526
+ 00:12:52,000 --> 00:13:00,000
527
+ Restrict access to applications based on user roles and contacts such as with application control,
528
+
529
+ 133
530
+ 00:13:01,000 --> 00:13:04,000
531
+ removable sample files and defaults passwords.
532
+
533
+ 134
534
+ 00:13:05,000 --> 00:13:12,000
535
+ Application parcels should then be managed via an application password management in which the password
536
+
537
+ 135
538
+ 00:13:12,000 --> 00:13:19,000
539
+ management solution that enforces password best practices, possible quotation marks, etc..
540
+
541
+ 136
542
+ 00:13:20,000 --> 00:13:29,000
543
+ Hardening of applications should also entail inspecting integrations with other applications and systems
544
+
545
+ 137
546
+ 00:13:29,000 --> 00:13:34,000
547
+ and removing foreign use and unnecessary integration components and privileges.
548
+
549
+ 138
550
+ 00:13:35,000 --> 00:13:44,000
551
+ Database hardening create add new restrictions such as by controlling privileged access on what users
552
+
553
+ 139
554
+ 00:13:44,000 --> 00:13:52,000
555
+ can do in a database showing on node, checking to verify applications and users and create database
556
+
557
+ 140
558
+ 00:13:52,000 --> 00:13:59,000
559
+ information both in transit and at rest and force secure passwords.
560
+
561
+ 141
562
+ 00:14:00,000 --> 00:14:02,000
563
+ Introduce roll based access.
564
+
565
+ 142
566
+ 00:14:02,000 --> 00:14:03,000
567
+ Control privileges.
568
+
569
+ 143
570
+ 00:14:04,000 --> 00:14:06,000
571
+ Free on used accounts.
572
+
573
+ 144
574
+ 00:14:07,000 --> 00:14:15,000
575
+ Operating system hardware apply, operating system updates, service bags and watches automatically
576
+
577
+ 145
578
+ 00:14:16,000 --> 00:14:25,000
579
+ freeze unnecessary drivers files, sharing libraries, software services and functionality, and great
580
+
581
+ 146
582
+ 00:14:25,000 --> 00:14:29,000
583
+ local storage title registry and other systems.
584
+
585
+ 147
586
+ 00:14:29,000 --> 00:14:39,000
587
+ Permissions look all of activity errors and warnings implement user controls and eliminate unnecessary
588
+
589
+ 148
590
+ 00:14:39,000 --> 00:14:40,000
591
+ accounts and privileges.
592
+
593
+ 149
594
+ 00:14:41,000 --> 00:14:50,000
595
+ Enforce this breach removing unnecessary accounts such as orphan accounts and unused accounts and privileges
596
+
597
+ 150
598
+ 00:14:50,000 --> 00:14:52,000
599
+ throughout your i.t.
600
+
601
+ 151
602
+ 00:14:52,000 --> 00:14:53,000
603
+ Infrastructure.
604
+
605
+ 152
606
+ 00:14:54,000 --> 00:14:59,000
607
+ We have learned enough information to be able to understand the past examples.
608
+
609
+ 153
610
+ 00:14:59,000 --> 00:15:02,000
611
+ Let's now discuss different attacks scenarios.
612
+
613
+ 154
614
+ 00:15:03,000 --> 00:15:09,000
615
+ Example, number one, imagine that we have our verification of the Web.
616
+
617
+ 155
618
+ 00:15:09,000 --> 00:15:18,000
619
+ Seven, In our case, I'm talking about our online store together with my students from scratch in life
620
+
621
+ 156
622
+ 00:15:18,000 --> 00:15:28,000
623
+ mode in my course java from zero to first job and never seen looks fine application works but if I would
624
+
625
+ 157
626
+ 00:15:28,000 --> 00:15:36,000
627
+ change you throw the manager slash email like this then I will be navigating that is in management console
628
+
629
+ 158
630
+ 00:15:36,000 --> 00:15:37,000
631
+ of the server.
632
+
633
+ 159
634
+ 00:15:37,000 --> 00:15:46,000
635
+ And this is not only related to Tomcat Web server, it may be related to any other server and its default
636
+
637
+ 160
638
+ 00:15:46,000 --> 00:15:47,000
639
+ configurations.
640
+
641
+ 161
642
+ 00:15:48,000 --> 00:15:53,000
643
+ I can try to guess which server you use and check default applications.
644
+
645
+ 162
646
+ 00:15:53,000 --> 00:15:56,000
647
+ Is it installed on the cell facade?
648
+
649
+ 163
650
+ 00:15:57,000 --> 00:16:04,000
651
+ I can control the guest defaults passwords or apply brute force to bypass authentication.
652
+
653
+ 164
654
+ 00:16:04,000 --> 00:16:10,000
655
+ For example, in case of thought here admin for logging and admin for possible.
656
+
657
+ 165
658
+ 00:16:11,000 --> 00:16:18,000
659
+ I would enter a default application that allows me to manage my deployments on the Tomcat.
660
+
661
+ 166
662
+ 00:16:18,000 --> 00:16:28,000
663
+ So what we can do with cases like this never leave default or insecure passwords for admin applications,
664
+
665
+ 167
666
+ 00:16:28,000 --> 00:16:35,000
667
+ especially in case the reason used to get access to the configurations of the server.
668
+
669
+ 168
670
+ 00:16:35,000 --> 00:16:43,000
671
+ Another solution would be completely remove the full applications from the server in case you know that
672
+
673
+ 169
674
+ 00:16:43,000 --> 00:16:46,000
675
+ you are not going to use the full web server applications.
676
+
677
+ 170
678
+ 00:16:47,000 --> 00:16:49,000
679
+ Just remove them and that's it.
680
+
681
+ 171
682
+ 00:16:49,000 --> 00:16:58,000
683
+ In this particular case was a Tomcat, navigate the Map Apps folder and remove all the applications
684
+
685
+ 172
686
+ 00:16:58,000 --> 00:17:03,000
687
+ that exist besides applications that he and.
688
+
689
+ 173
690
+ 00:17:04,000 --> 00:17:05,000
691
+ Example.
692
+
693
+ 174
694
+ 00:17:05,000 --> 00:17:05,000
695
+ Number two.
696
+
697
+ 175
698
+ 00:17:06,000 --> 00:17:13,000
699
+ In the second example, let me show you how direct listing can look like on the Sabbath.
700
+
701
+ 176
702
+ 00:17:14,000 --> 00:17:21,000
703
+ Imagine that accidentally or by default you have directly enabled on the server.
704
+
705
+ 177
706
+ 00:17:21,000 --> 00:17:22,000
707
+ What is it?
708
+
709
+ 178
710
+ 00:17:23,000 --> 00:17:24,000
711
+ How does it look like?
712
+
713
+ 179
714
+ 00:17:25,000 --> 00:17:27,000
715
+ For example, here's a link.
716
+
717
+ 180
718
+ 00:17:27,000 --> 00:17:28,000
719
+ That image is directly.
720
+
721
+ 181
722
+ 00:17:29,000 --> 00:17:31,000
723
+ Here is a reference to zip code.
724
+
725
+ 182
726
+ 00:17:31,000 --> 00:17:39,000
727
+ It was JavaScript files and it seems like there is no critical harm in direct release.
728
+
729
+ 183
730
+ 00:17:40,000 --> 00:17:49,000
731
+ But imagine now that while navigating the directories I found a direct was a content that external users
732
+
733
+ 184
734
+ 00:17:49,000 --> 00:17:51,000
735
+ clients shouldn't have access to.
736
+
737
+ 185
738
+ 00:17:52,000 --> 00:17:56,000
739
+ Take into account we use Java on Tomcat.
740
+
741
+ 186
742
+ 00:17:56,000 --> 00:17:59,000
743
+ So we are part of the huge community.
744
+
745
+ 187
746
+ 00:18:00,000 --> 00:18:07,000
747
+ A lot of security controls implementation by default and it is not so easy to download compiled sources
748
+
749
+ 188
750
+ 00:18:07,000 --> 00:18:08,000
751
+ from the server.
752
+
753
+ 189
754
+ 00:18:08,000 --> 00:18:15,000
755
+ But with all the languages, for example, speech we increase, I will get access to directory.
756
+
757
+ 190
758
+ 00:18:16,000 --> 00:18:25,000
759
+ I can get access to the source code and expose the logic inside in case or compile sources locations
760
+
761
+ 191
762
+ 00:18:25,000 --> 00:18:25,000
763
+ on the server.
764
+
765
+ 192
766
+ 00:18:26,000 --> 00:18:32,000
767
+ I can that compiles and learns internal logic or just stole some technical decisions.
768
+
769
+ 193
770
+ 00:18:33,000 --> 00:18:39,000
771
+ That's why Enabled Director can be treated as a serious security liability.
772
+
773
+ 194
774
+ 00:18:40,000 --> 00:18:47,000
775
+ Talking in specifics about Tomcat is over the set of security controls implemented by default.
776
+
777
+ 195
778
+ 00:18:48,000 --> 00:18:54,000
779
+ And this is one of these because by default the resolution is disabled.
780
+
781
+ 196
782
+ 00:18:55,000 --> 00:18:56,000
783
+ You can control.
784
+
785
+ 197
786
+ 00:18:56,000 --> 00:19:02,000
787
+ This is a maximum file from home for one of your Tomcat distribution.
788
+
789
+ 198
790
+ 00:19:02,000 --> 00:19:11,000
791
+ Just find the km of the defaults in the scope listings and you can change value here.
792
+
793
+ 199
794
+ 00:19:11,000 --> 00:19:14,000
795
+ Use a true or false by default.
796
+
797
+ 200
798
+ 00:19:14,000 --> 00:19:19,000
799
+ It is false and I recommend you keep it false for production.
800
+
801
+ 201
802
+ 00:19:20,000 --> 00:19:26,000
803
+ But just in case you have just learned where this configuration is located in the Tomcat.
804
+
805
+ 202
806
+ 00:19:27,000 --> 00:19:27,000
807
+ Example.
808
+
809
+ 203
810
+ 00:19:27,000 --> 00:19:28,000
811
+ Number three.
812
+
813
+ 204
814
+ 00:19:28,000 --> 00:19:33,000
815
+ This is the last but not least example in is the case.
816
+
817
+ 205
818
+ 00:19:33,000 --> 00:19:41,000
819
+ When accidentally is an error message, you expose some sensitive data that might be used by a doctor.
820
+
821
+ 206
822
+ 00:19:42,000 --> 00:19:48,000
823
+ For example, imagine that you want to sign the humanity signing page.
824
+
825
+ 207
826
+ 00:19:49,000 --> 00:19:54,000
827
+ You use username also user, but you don't know his or her password.
828
+
829
+ 208
830
+ 00:19:55,000 --> 00:20:02,000
831
+ You any password and some reason for it is clear for us that password doesn't work.
832
+
833
+ 209
834
+ 00:20:03,000 --> 00:20:11,000
835
+ But in case I would open the console but make an F12, I would see error messages in developers.
836
+
837
+ 210
838
+ 00:20:11,000 --> 00:20:12,000
839
+ The last zip code.
840
+
841
+ 211
842
+ 00:20:13,000 --> 00:20:23,000
843
+ I see the zip passwords and doesn't match with this username because there is another possible way here
844
+
845
+ 212
846
+ 00:20:23,000 --> 00:20:24,000
847
+ at this console.
848
+
849
+ 213
850
+ 00:20:25,000 --> 00:20:34,000
851
+ I know I oversimplified things, but even cases like this can happen when developers just left some
852
+
853
+ 214
854
+ 00:20:34,000 --> 00:20:34,000
855
+ code.
856
+
857
+ 215
858
+ 00:20:34,000 --> 00:20:42,000
859
+ So lots of genes involved and one just missed something that can be different variations of this mistake.
860
+
861
+ 216
862
+ 00:20:42,000 --> 00:20:50,000
863
+ But the idea is a similar unit, established, efficient process of reviewing the team in order to with
864
+
865
+ 217
866
+ 00:20:50,000 --> 00:20:57,000
867
+ cases like this one, accidentally sensitive information is revealed this sort of error message.
868
+
869
+ 218
870
+ 00:20:58,000 --> 00:21:06,000
871
+ And now the examples that you also have about if we talk about Java applications and GCP technology
872
+
873
+ 219
874
+ 00:21:06,000 --> 00:21:13,000
875
+ in particular, probably you saw a really stark choice when some error in GCP happens, and this is
876
+
877
+ 220
878
+ 00:21:13,000 --> 00:21:17,000
879
+ also one of the places where sensitive data may appear.
880
+
881
+ 221
882
+ 00:21:18,000 --> 00:21:27,000
883
+ Also, this gives understanding that this web application uses Java technology stack, which might not
884
+
885
+ 222
886
+ 00:21:27,000 --> 00:21:35,000
887
+ be like it will not be listed by itself, but this will give thought thought to additional information
888
+
889
+ 223
890
+ 00:21:35,000 --> 00:21:41,000
891
+ about internal structure of the application and potential web server configurations.
892
+
893
+ 224
894
+ 00:21:42,000 --> 00:21:47,000
895
+ You know how we can prevent shown error loss this season?
896
+
897
+ 225
898
+ 00:21:47,000 --> 00:21:56,000
899
+ Just configure air handlers for different kinds of federal, including internal server errors here and
900
+
901
+ 226
902
+ 00:21:56,000 --> 00:21:58,000
903
+ WebEx and all of my application.
904
+
905
+ 227
906
+ 00:21:58,000 --> 00:21:59,000
907
+ You can see that.
908
+
909
+ 228
910
+ 00:21:59,000 --> 00:22:04,000
911
+ I can see the error handlers for some kinds of fair use.
912
+
913
+ 229
914
+ 00:22:04,000 --> 00:22:12,000
915
+ Also very good to go with exposure of error logs and using this all examples that I was about to show
916
+
917
+ 230
918
+ 00:22:12,000 --> 00:22:17,000
919
+ you some stuff I would like to talk about Java configurations in particular.
920
+
921
+ 231
922
+ 00:22:18,000 --> 00:22:25,000
923
+ In general, we should be aware that your general application configuration is the same important as
924
+
925
+ 232
926
+ 00:22:25,000 --> 00:22:27,000
927
+ writing code itself.
928
+
929
+ 233
930
+ 00:22:28,000 --> 00:22:34,000
931
+ When using frameworks and libraries, we should be aware of what the default configuration settings
932
+
933
+ 234
934
+ 00:22:34,000 --> 00:22:38,000
935
+ are and if certain changes have security implications.
936
+
937
+ 235
938
+ 00:22:39,000 --> 00:22:46,000
939
+ This is important in relation to application frameworks, libraries and also for settings.
940
+
941
+ 236
942
+ 00:22:47,000 --> 00:22:54,000
943
+ So remind yourself that exposing information might not be harmful at first glance.
944
+
945
+ 237
946
+ 00:22:55,000 --> 00:23:02,000
947
+ But if you combine all these bits and pieces of information, you will give an attacker enough information
948
+
949
+ 238
950
+ 00:23:02,000 --> 00:23:04,000
951
+ to do something malicious.
952
+
953
+ 239
954
+ 00:23:05,000 --> 00:23:15,000
955
+ Using libraries and even application service is very useful, but you should be aware of how the Java
956
+
957
+ 240
958
+ 00:23:15,000 --> 00:23:19,000
959
+ configuration and this configuration is a serious sin.
960
+
961
+ 241
962
+ 00:23:20,000 --> 00:23:27,000
963
+ Make sure that you are not accidentally giving people access to your application because you forgot
964
+
965
+ 242
966
+ 00:23:27,000 --> 00:23:30,000
967
+ to set a specific property in your configuration.
968
+
969
+ 243
970
+ 00:23:31,000 --> 00:23:38,000
971
+ Unions in the past used a lot of it, and that belief is based on the examples that we have discussed.
972
+
973
+ 244
974
+ 00:23:38,000 --> 00:23:45,000
975
+ You already can make some conclusions and understand how you can avoid vulnerabilities from the security
976
+
977
+ 245
978
+ 00:23:45,000 --> 00:23:47,000
979
+ misconfiguration category.
980
+
981
+ 246
982
+ 00:23:48,000 --> 00:23:55,000
983
+ Let's summarize all the conclusions that we need and create a list of rules and guidelines to follow
984
+
985
+ 247
986
+ 00:23:56,000 --> 00:24:01,000
987
+ that can help us to prevent liabilities related to security misconfiguration.
988
+
989
+ 248
990
+ 00:24:02,000 --> 00:24:07,000
991
+ First of all, the golden rule that we discussed in the review, each was category.
992
+
993
+ 249
994
+ 00:24:07,000 --> 00:24:14,000
995
+ We have to implement the principle of basically everything is off by default.
996
+
997
+ 250
998
+ 00:24:15,000 --> 00:24:24,000
999
+ This is not maintenance is to disable administration interfaces, disable debugging, disable use of
1000
+
1001
+ 251
1002
+ 00:24:24,000 --> 00:24:33,000
1003
+ default accounts, passwords, change all possible default settings, cloud storage permissions, for
1004
+
1005
+ 252
1006
+ 00:24:33,000 --> 00:24:34,000
1007
+ example.
1008
+
1009
+ 253
1010
+ 00:24:34,000 --> 00:24:44,000
1011
+ Else we block permissions and civil servant to prevent unauthorized access directly, etc. Consider
1012
+
1013
+ 254
1014
+ 00:24:44,000 --> 00:24:51,000
1015
+ running scans on the oldest to help detect future misconfigurations on recent patches.
1016
+
1017
+ 255
1018
+ 00:24:52,000 --> 00:24:57,000
1019
+ That's a powerful thing to do to prevent the issues related to security.
1020
+
1021
+ 256
1022
+ 00:24:57,000 --> 00:25:04,000
1023
+ Misconfiguration Is education and training your staff members about the latest security trends.
1024
+
1025
+ 257
1026
+ 00:25:04,000 --> 00:25:11,000
1027
+ This allows them to make smart decisions and adhere to best practices.
1028
+
1029
+ 258
1030
+ 00:25:12,000 --> 00:25:20,000
1031
+ Never forget the bottom portion of the store is a persistent storage of hard drawers.
1032
+
1033
+ 259
1034
+ 00:25:20,000 --> 00:25:21,000
1035
+ Laptops of your own.
1036
+
1037
+ 260
1038
+ 00:25:21,000 --> 00:25:22,000
1039
+ Please.
1040
+
1041
+ 261
1042
+ 00:25:22,000 --> 00:25:27,000
1043
+ The tools and techniques that allow us to do that too.
1044
+
1045
+ 262
1046
+ 00:25:28,000 --> 00:25:33,000
1047
+ You can also apply appropriate access controls to the rentals and files.
1048
+
1049
+ 263
1050
+ 00:25:34,000 --> 00:25:39,000
1051
+ These measures of size is all you need to of susceptible directories and files.
1052
+
1053
+ 264
1054
+ 00:25:40,000 --> 00:25:43,000
1055
+ I'm a date, so perhaps is the latest version.
1056
+
1057
+ 265
1058
+ 00:25:44,000 --> 00:25:50,000
1059
+ The use of all data software remains one of the most prevalent security vulnerabilities.
1060
+
1061
+ 266
1062
+ 00:25:51,000 --> 00:25:56,000
1063
+ Many companies don't appreciate the need to invest in the use of the latest.
1064
+
1065
+ 267
1066
+ 00:25:57,000 --> 00:26:03,000
1067
+ They may feel it is more cost effective to continue making use of legacy software.
1068
+
1069
+ 268
1070
+ 00:26:04,000 --> 00:26:12,000
1071
+ However, using data software can actually place an organization to risk of losing assets, as well
1072
+
1073
+ 269
1074
+ 00:26:12,000 --> 00:26:15,000
1075
+ as the trust of investors and customers.
1076
+
1077
+ 270
1078
+ 00:26:16,000 --> 00:26:25,000
1079
+ Establishing consistent cost travel and maintaining updated software is essential to use an organization's
1080
+
1081
+ 271
1082
+ 00:26:25,000 --> 00:26:26,000
1083
+ strength vectors.
1084
+
1085
+ 272
1086
+ 00:26:27,000 --> 00:26:34,000
1087
+ Establish rigorous content conventions, securities, accounts and systems is an automated message of
1088
+
1089
+ 273
1090
+ 00:26:34,000 --> 00:26:44,000
1091
+ easily running such scans on a regular schedule to create an architectural changes is a significant
1092
+
1093
+ 274
1094
+ 00:26:44,000 --> 00:26:50,000
1095
+ step in improving the overall value being utilized instead of consequences.
1096
+
1097
+ 275
1098
+ 00:26:50,000 --> 00:26:58,000
1099
+ Before you integrate ZIP code into the production environment, security professionals must also perform
1100
+
1101
+ 276
1102
+ 00:26:58,000 --> 00:27:01,000
1103
+ manual reviews on dynamic testing.
1104
+
1105
+ 277
1106
+ 00:27:02,000 --> 00:27:09,000
1107
+ Establish a hardening process because it is repeatable so that it is fast and simple to deploy correctly.
1108
+
1109
+ 278
1110
+ 00:27:09,000 --> 00:27:11,000
1111
+ Configure new environments.
1112
+
1113
+ 279
1114
+ 00:27:12,000 --> 00:27:19,000
1115
+ The production, development and key environments must all be configured in the same way, but with
1116
+
1117
+ 280
1118
+ 00:27:19,000 --> 00:27:22,000
1119
+ distant passwords used in every environment.
1120
+
1121
+ 281
1122
+ 00:27:23,000 --> 00:27:28,000
1123
+ Automate this process to easily establish a secure environment.
1124
+
1125
+ 282
1126
+ 00:27:28,000 --> 00:27:29,000
1127
+ That's it.
1128
+
1129
+ 283
1130
+ 00:27:30,000 --> 00:27:33,000
1131
+ Let's recap for Fifth in this lesson.
1132
+
1133
+ 284
1134
+ 00:27:34,000 --> 00:27:39,000
1135
+ In this city is a misconfiguration in this category.
1136
+
1137
+ 285
1138
+ 00:27:40,000 --> 00:27:46,000
1139
+ Williams is a most notable common weakness in the narrations related to this category.
1140
+
1141
+ 286
1142
+ 00:27:47,000 --> 00:27:51,000
1143
+ We compared across the top ten, 20, 21 and 2017.
1144
+
1145
+ 287
1146
+ 00:27:52,000 --> 00:27:54,000
1147
+ Williams was excellent.
1148
+
1149
+ 288
1150
+ 00:27:54,000 --> 00:28:04,000
1151
+ So and this are and we also got mentioned in this category from our top ten 2017 is now included in
1152
+
1153
+ 289
1154
+ 00:28:04,000 --> 00:28:06,000
1155
+ the security misconfiguration risk category.
1156
+
1157
+ 290
1158
+ 00:28:07,000 --> 00:28:11,000
1159
+ I explained different types of security misconfiguration.
1160
+
1161
+ 291
1162
+ 00:28:12,000 --> 00:28:18,000
1163
+ We've reviewed examples of the real life attacks because of security misconfiguration.
1164
+
1165
+ 292
1166
+ 00:28:19,000 --> 00:28:21,000
1167
+ Also we discussed new concepts.
1168
+
1169
+ 293
1170
+ 00:28:22,000 --> 00:28:30,000
1171
+ Namely, we know what security hardening is, what the Zero Trust Security Module is, what defense
1172
+
1173
+ 294
1174
+ 00:28:30,000 --> 00:28:31,000
1175
+ in depth is.
1176
+
1177
+ 295
1178
+ 00:28:32,000 --> 00:28:41,000
1179
+ I explained best practices for system hardening and after we learned all this we had a live demo and
1180
+
1181
+ 296
1182
+ 00:28:41,000 --> 00:28:50,000
1183
+ I showed you a few examples of attacks and the of as a conclusion we know how to prevent security and
1184
+
1185
+ 297
1186
+ 00:28:50,000 --> 00:28:51,000
1187
+ configuration.
1188
+
1189
+ 298
1190
+ 00:28:52,000 --> 00:28:54,000
1191
+ That's all for this lesson.
1192
+
1193
+ 299
1194
+ 00:28:54,000 --> 00:28:56,000
1195
+ Thank you for your attention.
1196
+
1197
+ 300
1198
+ 00:28:56,000 --> 00:28:59,000
1199
+ Have a great day and see you in the next lesson.
1200
+
73 - OWASP Top 10 2021/013 Dependency-check-plugin.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://mvnrepository.com/artifact/org.owasp/dependency-check-maven/7.1.0
73 - OWASP Top 10 2021/013 Vulnerable & Outdated Components_en.srt ADDED
@@ -0,0 +1,1056 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello team.
4
+
5
+ 2
6
+ 00:00:07,000 --> 00:00:10,000
7
+ We proceed non-secure call and I've asked top that.
8
+
9
+ 3
10
+ 00:00:10,000 --> 00:00:17,000
11
+ And in this lesson we're going to talk about such risk category as vulnerable and outdated components.
12
+
13
+ 4
14
+ 00:00:18,000 --> 00:00:23,000
15
+ We're going to start the lesson from the general overview about this risk category.
16
+
17
+ 5
18
+ 00:00:24,000 --> 00:00:31,000
19
+ After that, I'm going to explain the risk factors that increase the risk of vulnerability of your application.
20
+
21
+ 6
22
+ 00:00:32,000 --> 00:00:39,000
23
+ I'm going to explain why it is not so easy to update our data components on a regular basis and the
24
+
25
+ 7
26
+ 00:00:39,000 --> 00:00:45,000
27
+ standards a challenge will be easier for us to understand how to avoid it.
28
+
29
+ 8
30
+ 00:00:46,000 --> 00:00:51,000
31
+ As usual, we are going to use the most notable common vehicle enumerations.
32
+
33
+ 9
34
+ 00:00:52,000 --> 00:00:56,000
35
+ I will explain how attackers use vulnerable components.
36
+
37
+ 10
38
+ 00:00:56,000 --> 00:00:59,000
39
+ We'll review real life examples.
40
+
41
+ 11
42
+ 00:00:59,000 --> 00:01:08,000
43
+ Also, we're going to compare this risk category and how it was presented in the last ten 2017 versus
44
+
45
+ 12
46
+ 00:01:09,000 --> 00:01:10,000
47
+ the top ten, 2021.
48
+
49
+ 13
50
+ 00:01:11,000 --> 00:01:17,000
51
+ And that's a very important and useful scenes that you will be able to apply in practice after this
52
+
53
+ 14
54
+ 00:01:17,000 --> 00:01:20,000
55
+ lesson is using of the dependency check logging.
56
+
57
+ 15
58
+ 00:01:20,000 --> 00:01:26,000
59
+ I'm going to show you how we can integrate that in our online shop web application.
60
+
61
+ 16
62
+ 00:01:26,000 --> 00:01:28,000
63
+ We'll discuss security scholars.
64
+
65
+ 17
66
+ 00:01:29,000 --> 00:01:36,000
67
+ And at the end of the lesson, we're going to talk about how to prevent abilities from this risk category.
68
+
69
+ 18
70
+ 00:01:36,000 --> 00:01:38,000
71
+ Let's start our lesson.
72
+
73
+ 19
74
+ 00:01:39,000 --> 00:01:44,000
75
+ Let's hold an overview of colonial and outdated components we have and do it.
76
+
77
+ 20
78
+ 00:01:45,000 --> 00:01:51,000
79
+ I will give a little bit more context to help you understand what this risk category is all about.
80
+
81
+ 21
82
+ 00:01:52,000 --> 00:01:59,000
83
+ More and more apps are using existing components rather than being quoted completely from scratch.
84
+
85
+ 22
86
+ 00:02:00,000 --> 00:02:08,000
87
+ Lab applications often need faster turn around, and with the quantity of open source components available,
88
+
89
+ 23
90
+ 00:02:08,000 --> 00:02:11,000
91
+ there is no reason not to make use of them.
92
+
93
+ 24
94
+ 00:02:12,000 --> 00:02:19,000
95
+ Analysis indicates that approximately 96% of applications use open source components.
96
+
97
+ 25
98
+ 00:02:20,000 --> 00:02:29,000
99
+ On average, more than half of an applications code base consists of open source rather than proprietary
100
+
101
+ 26
102
+ 00:02:29,000 --> 00:02:29,000
103
+ code.
104
+
105
+ 27
106
+ 00:02:30,000 --> 00:02:38,000
107
+ The interesting thing is that you can write 100% secure code following all the rules, but your program
108
+
109
+ 28
110
+ 00:02:38,000 --> 00:02:40,000
111
+ still would remain vulnerable.
112
+
113
+ 29
114
+ 00:02:41,000 --> 00:02:42,000
115
+ How it is possible.
116
+
117
+ 30
118
+ 00:02:42,000 --> 00:02:49,000
119
+ Unless you are writing a really simple function which doesn't do much, you will reuse software of other
120
+
121
+ 31
122
+ 00:02:49,000 --> 00:02:50,000
123
+ people.
124
+
125
+ 32
126
+ 00:02:50,000 --> 00:02:57,000
127
+ From development to deployment, you will use libraries, frameworks, technologies, etc. And guess
128
+
129
+ 33
130
+ 00:02:57,000 --> 00:02:58,000
131
+ what?
132
+
133
+ 34
134
+ 00:02:59,000 --> 00:03:03,000
135
+ Those separate components will also depend on OSR components.
136
+
137
+ 35
138
+ 00:03:03,000 --> 00:03:05,000
139
+ This comes at a cost.
140
+
141
+ 36
142
+ 00:03:05,000 --> 00:03:12,000
143
+ In fact, part of the third party software components you will re-use will suffer from security vulnerabilities.
144
+
145
+ 37
146
+ 00:03:13,000 --> 00:03:18,000
147
+ Besides, you might even be using some malicious components.
148
+
149
+ 38
150
+ 00:03:18,000 --> 00:03:26,000
151
+ Therefore, checking your code is a need, not a luxury, and the pressure to deliver at speed.
152
+
153
+ 39
154
+ 00:03:27,000 --> 00:03:33,000
155
+ Some components are not sufficiently checked before use as a result can be you.
156
+
157
+ 40
158
+ 00:03:33,000 --> 00:03:40,000
159
+ Websites and applications was deeply embedded vulnerabilities known to the application operating.
160
+
161
+ 41
162
+ 00:03:41,000 --> 00:03:48,000
163
+ But once that ability is discovered by cybercriminals, applications using the vulnerable component
164
+
165
+ 42
166
+ 00:03:49,000 --> 00:03:51,000
167
+ can be found and exploited.
168
+
169
+ 43
170
+ 00:03:51,000 --> 00:03:59,000
171
+ It could be a simple flaw in a slow component, but one that ultimately makes the entire system hackable.
172
+
173
+ 44
174
+ 00:03:59,000 --> 00:04:05,000
175
+ That's some risk factors related to vulnerabilities, problems of vulnerable and outdated components
176
+
177
+ 45
178
+ 00:04:05,000 --> 00:04:06,000
179
+ in this category.
180
+
181
+ 46
182
+ 00:04:07,000 --> 00:04:10,000
183
+ First of all, what is a risk factor?
184
+
185
+ 47
186
+ 00:04:11,000 --> 00:04:12,000
187
+ Risk factor?
188
+
189
+ 48
190
+ 00:04:12,000 --> 00:04:18,000
191
+ Chen widely used in medicine and it is also used in project management and project management.
192
+
193
+ 49
194
+ 00:04:18,000 --> 00:04:25,000
195
+ Risk factor may be an issue environment that is associated with an increased risk of consequences.
196
+
197
+ 50
198
+ 00:04:26,000 --> 00:04:33,000
199
+ For example, if you are riding a bicycle on the perfect roads, it is less likely to damage your bicycle.
200
+
201
+ 51
202
+ 00:04:33,000 --> 00:04:39,000
203
+ Going to mountains on your bike can be already considered as a risk factor, is it?
204
+
205
+ 52
206
+ 00:04:39,000 --> 00:04:40,000
207
+ Not necessarily.
208
+
209
+ 53
210
+ 00:04:40,000 --> 00:04:48,000
211
+ And the wreck may cause a damage to a bicycle, but this fact significantly increases the risk and probability
212
+
213
+ 54
214
+ 00:04:48,000 --> 00:04:50,000
215
+ of negative consequences.
216
+
217
+ 55
218
+ 00:04:50,000 --> 00:04:52,000
219
+ In this case is the same as here.
220
+
221
+ 56
222
+ 00:04:53,000 --> 00:05:01,000
223
+ Let's review risk factors that can increase risks of becoming vulnerable to threats of finalized security
224
+
225
+ 57
226
+ 00:05:02,000 --> 00:05:05,000
227
+ as it can increase the level of utility on your project.
228
+
229
+ 58
230
+ 00:05:06,000 --> 00:05:14,000
231
+ So you are likely vulnerable if you don't know the versions of all components you use both client side
232
+
233
+ 59
234
+ 00:05:14,000 --> 00:05:15,000
235
+ and Samsung.
236
+
237
+ 60
238
+ 00:05:16,000 --> 00:05:23,000
239
+ This includes components you directly use as well as nested dependencies if the software is vulnerable,
240
+
241
+ 61
242
+ 00:05:23,000 --> 00:05:25,000
243
+ unsupported or out of date.
244
+
245
+ 62
246
+ 00:05:26,000 --> 00:05:33,000
247
+ This includes the operating system, web application server, database management system, applications
248
+
249
+ 63
250
+ 00:05:34,000 --> 00:05:39,000
251
+ API and all components, runtime environments and libraries.
252
+
253
+ 64
254
+ 00:05:39,000 --> 00:05:48,000
255
+ If you do not have vulnerability to regulatory, if you don't fix or upgrades the underlying platform
256
+
257
+ 65
258
+ 00:05:48,000 --> 00:05:52,000
259
+ frameworks and dependencies in the risk based timely fashion.
260
+
261
+ 66
262
+ 00:05:53,000 --> 00:06:00,000
263
+ This commonly happens in environments when patching is a monthly or quarterly task on the change control,
264
+
265
+ 67
266
+ 00:06:00,000 --> 00:06:08,000
267
+ leaving organizations open two days a month of unnecessary exposure to fixed liabilities.
268
+
269
+ 68
270
+ 00:06:08,000 --> 00:06:15,000
271
+ If a software developers don't, does the compatibility of updated upgraded libraries.
272
+
273
+ 69
274
+ 00:06:16,000 --> 00:06:23,000
275
+ If you don't secure the components configurations like we discussed in scope of our obsolescence dedicated
276
+
277
+ 70
278
+ 00:06:23,000 --> 00:06:25,000
279
+ to security in this configuration.
280
+
281
+ 71
282
+ 00:06:26,000 --> 00:06:32,000
283
+ Usually at this point of the class, my students ask me, So what is a big deal out of this?
284
+
285
+ 72
286
+ 00:06:33,000 --> 00:06:39,000
287
+ Let's just constantly update our external dependencies to the new versions, and that's it.
288
+
289
+ 73
290
+ 00:06:40,000 --> 00:06:46,000
291
+ Each new version should contain patches and updates that should decrease the use of security vulnerabilities.
292
+
293
+ 74
294
+ 00:06:47,000 --> 00:06:49,000
295
+ Well, you're right from the one side.
296
+
297
+ 75
298
+ 00:06:49,000 --> 00:06:57,000
299
+ If you also see the same one but from another side, let's understand why this behavior is not so common.
300
+
301
+ 76
302
+ 00:06:58,000 --> 00:07:01,000
303
+ Keeping our components and modules in the application.
304
+
305
+ 77
306
+ 00:07:02,000 --> 00:07:09,000
307
+ It is not so easy to manage all the dependencies and approvals of all the dependency graph and the application
308
+
309
+ 78
310
+ 00:07:09,000 --> 00:07:11,000
311
+ and update versions.
312
+
313
+ 79
314
+ 00:07:11,000 --> 00:07:17,000
315
+ Each new version of the library may contain renamed masses or removed masses.
316
+
317
+ 80
318
+ 00:07:18,000 --> 00:07:22,000
319
+ New version of the library can become incompatible with other dependencies.
320
+
321
+ 81
322
+ 00:07:22,000 --> 00:07:26,000
323
+ Since application, some features may become deprecated.
324
+
325
+ 82
326
+ 00:07:26,000 --> 00:07:29,000
327
+ Some other features may break existing code.
328
+
329
+ 83
330
+ 00:07:30,000 --> 00:07:32,000
331
+ These are just a few examples.
332
+
333
+ 84
334
+ 00:07:32,000 --> 00:07:39,000
335
+ The process of updating things and making sure that they remain the latest sounds simple, but it's
336
+
337
+ 85
338
+ 00:07:39,000 --> 00:07:47,000
339
+ quite a lot of work and sometimes it is not that straightforward unless you are willing to put in your
340
+
341
+ 86
342
+ 00:07:47,000 --> 00:07:52,000
343
+ time and update your code to get it to work well with the latest and greatest updates.
344
+
345
+ 87
346
+ 00:07:53,000 --> 00:08:00,000
347
+ At the very least, this is not always feasible and in the worst case, it would be your worst nightmare.
348
+
349
+ 88
350
+ 00:08:01,000 --> 00:08:07,000
351
+ At the end of the day, this costs money and like it always happens on practice.
352
+
353
+ 89
354
+ 00:08:07,000 --> 00:08:15,000
355
+ Is the responsible person for assigning costs on such activities is technology agnostic and it is hard
356
+
357
+ 90
358
+ 00:08:15,000 --> 00:08:22,000
359
+ to convince this person or group of people investing money in something which will not generate income
360
+
361
+ 91
362
+ 00:08:22,000 --> 00:08:23,000
363
+ in the near future.
364
+
365
+ 92
366
+ 00:08:24,000 --> 00:08:27,000
367
+ If you watched my previous classes, I already sat.
368
+
369
+ 93
370
+ 00:08:27,000 --> 00:08:34,000
371
+ The technology should go hand-in-hand with businesses that are supported by such technologies and you
372
+
373
+ 94
374
+ 00:08:34,000 --> 00:08:37,000
375
+ have to find this balance within your organisation.
376
+
377
+ 95
378
+ 00:08:37,000 --> 00:08:41,000
379
+ I just want to highlight that this was never an easy thing to do.
380
+
381
+ 96
382
+ 00:08:42,000 --> 00:08:48,000
383
+ As always, let's discuss the most notable common vehicles, enumerations that are associated with this
384
+
385
+ 97
386
+ 00:08:48,000 --> 00:08:56,000
387
+ category c, w e and level for use of online paints or body components.
388
+
389
+ 98
390
+ 00:08:57,000 --> 00:09:05,000
391
+ Reliance on components that are no longer maintained can make it difficult or impossible to fix significant
392
+
393
+ 99
394
+ 00:09:05,000 --> 00:09:12,000
395
+ bugs or religious or quality issues in the fact and maintained code and become obsolete.
396
+
397
+ 100
398
+ 00:09:13,000 --> 00:09:20,000
399
+ The issue makes it more difficult to maintain the software, which indirectly affects security by making
400
+
401
+ 101
402
+ 00:09:20,000 --> 00:09:25,000
403
+ it more difficult, time consuming to find smaller abilities.
404
+
405
+ 102
406
+ 00:09:26,000 --> 00:09:29,000
407
+ It also might make it easier to introduce vulnerabilities.
408
+
409
+ 103
410
+ 00:09:30,000 --> 00:09:36,000
411
+ C w e 1075 using components was known vulnerabilities.
412
+
413
+ 104
414
+ 00:09:36,000 --> 00:09:44,000
415
+ Attackers have their own database of vulnerable components and exploits moreover prominent databases.
416
+
417
+ 105
418
+ 00:09:45,000 --> 00:09:53,000
419
+ Once attackers would identify that you use outdated components, they will use exploit against your
420
+
421
+ 106
422
+ 00:09:53,000 --> 00:09:54,000
423
+ application.
424
+
425
+ 107
426
+ 00:09:55,000 --> 00:09:58,000
427
+ In scope of this lesson, I want explain.
428
+
429
+ 108
430
+ 00:09:58,000 --> 00:10:01,000
431
+ Use the algorithm that is used by attackers.
432
+
433
+ 109
434
+ 00:10:02,000 --> 00:10:03,000
435
+ Learn how they act.
436
+
437
+ 110
438
+ 00:10:04,000 --> 00:10:10,000
439
+ We will be able to be better prepared so to detect vulnerable components.
440
+
441
+ 111
442
+ 00:10:10,000 --> 00:10:13,000
443
+ Usually attackers follows in next steps.
444
+
445
+ 112
446
+ 00:10:14,000 --> 00:10:23,000
447
+ The first one, the tech that as a first step usually attackers one identifier technology stack that
448
+
449
+ 113
450
+ 00:10:23,000 --> 00:10:24,000
451
+ is used in application.
452
+
453
+ 114
454
+ 00:10:25,000 --> 00:10:28,000
455
+ There are different ways how this can be clarified.
456
+
457
+ 115
458
+ 00:10:29,000 --> 00:10:36,000
459
+ For example, an attacker can inspect traffic, focus headers and so on.
460
+
461
+ 116
462
+ 00:10:37,000 --> 00:10:44,000
463
+ Based on this, attacker can make an assumption about web server use and thus technologies that use
464
+
465
+ 117
466
+ 00:10:45,000 --> 00:10:52,000
467
+ tsarism tools like that provides a browser extension that helps us to identify technologies based on
468
+
469
+ 118
470
+ 00:10:52,000 --> 00:10:53,000
471
+ our alliances.
472
+
473
+ 119
474
+ 00:10:53,000 --> 00:10:55,000
475
+ Single Page Headers.
476
+
477
+ 120
478
+ 00:10:56,000 --> 00:10:59,000
479
+ Such a group of tools are called technology profilers.
480
+
481
+ 121
482
+ 00:11:00,000 --> 00:11:03,000
483
+ Also, attacker may trigger an error.
484
+
485
+ 122
486
+ 00:11:03,000 --> 00:11:11,000
487
+ Explore this tech trace and get additional information he or she may remove and specify there's some
488
+
489
+ 123
490
+ 00:11:11,000 --> 00:11:18,000
491
+ unexpected values, etc. If attacker receives an error, it's usually contains some hints about the
492
+
493
+ 124
494
+ 00:11:18,000 --> 00:11:19,000
495
+ stack.
496
+
497
+ 125
498
+ 00:11:20,000 --> 00:11:26,000
499
+ If this is an open source project, then attack and explore all the dependencies from your repository.
500
+
501
+ 126
502
+ 00:11:27,000 --> 00:11:34,000
503
+ Once technology stack is identified at tack, will try to fund existing exports and vulnerabilities.
504
+
505
+ 127
506
+ 00:11:35,000 --> 00:11:38,000
507
+ There are public resources as it describes exports.
508
+
509
+ 128
510
+ 00:11:39,000 --> 00:11:45,000
511
+ I will not name such resources at the moment, but just for you to be aware about the potential stress.
512
+
513
+ 129
514
+ 00:11:46,000 --> 00:11:52,000
515
+ By the way, this is one of the reasons why secure projects, for example, talk to me.
516
+
517
+ 130
518
+ 00:11:52,000 --> 00:11:59,000
519
+ I'm worried of using open source libraries because adding dependencies to your project, you expose
520
+
521
+ 131
522
+ 00:11:59,000 --> 00:12:04,000
523
+ yourself to potential abuses that were released with that library.
524
+
525
+ 132
526
+ 00:12:04,000 --> 00:12:12,000
527
+ That's why even such an open source framework for Java like screen is not the choice for projects like
528
+
529
+ 133
530
+ 00:12:12,000 --> 00:12:13,000
531
+ this.
532
+
533
+ 134
534
+ 00:12:13,000 --> 00:12:18,000
535
+ I worked on such projects in different roles and I worked as a consultant.
536
+
537
+ 135
538
+ 00:12:18,000 --> 00:12:21,000
539
+ The top syntax pops.
540
+
541
+ 136
542
+ 00:12:21,000 --> 00:12:23,000
543
+ I just can't tell you their names.
544
+
545
+ 137
546
+ 00:12:23,000 --> 00:12:30,000
547
+ Believe me, these are thin paragraphs that you've heard about, and these are solutions that they use
548
+
549
+ 138
550
+ 00:12:30,000 --> 00:12:32,000
551
+ by millions of people worldwide.
552
+
553
+ 139
554
+ 00:12:33,000 --> 00:12:35,000
555
+ So believe me, I know what I'm talking about.
556
+
557
+ 140
558
+ 00:12:37,000 --> 00:12:42,000
559
+ Let's review example from real life to get experience of our organization.
560
+
561
+ 141
562
+ 00:12:42,000 --> 00:12:48,000
563
+ Talking about probably one of the most popular examples among vulnerable and outdated components.
564
+
565
+ 142
566
+ 00:12:48,000 --> 00:12:50,000
567
+ Cost significant business impact.
568
+
569
+ 143
570
+ 00:12:51,000 --> 00:12:58,000
571
+ With a mansion, Equifax, which is the entry point to this, was a vulnerable version of Struts.
572
+
573
+ 144
574
+ 00:12:58,000 --> 00:13:05,000
575
+ Apache Struts is an open source web application framework for developing Java Easy Web applications.
576
+
577
+ 145
578
+ 00:13:06,000 --> 00:13:14,000
579
+ It uses and extends the Java API to encourage developers to adopt a model view control architecture.
580
+
581
+ 146
582
+ 00:13:15,000 --> 00:13:22,000
583
+ Struts is vulnerable to remote command injection attacks through incorrectly passing and attackers invalid
584
+
585
+ 147
586
+ 00:13:22,000 --> 00:13:24,000
587
+ content should be had.
588
+
589
+ 148
590
+ 00:13:25,000 --> 00:13:31,000
591
+ This trust vulnerability allows these commands to be executed on the edges of the web server.
592
+
593
+ 149
594
+ 00:13:32,000 --> 00:13:34,000
595
+ This is the mode command.
596
+
597
+ 150
598
+ 00:13:34,000 --> 00:13:38,000
599
+ Education has been actively exploited from the initial disclosure.
600
+
601
+ 151
602
+ 00:13:38,000 --> 00:13:43,000
603
+ You can find more detail about common amenities and exposures.
604
+
605
+ 152
606
+ 00:13:43,000 --> 00:13:48,000
607
+ See themselves in 1756 eight.
608
+
609
+ 153
610
+ 00:13:49,000 --> 00:13:56,000
611
+ This bridge used to gain access to Equifax Network and steal more than 140 million customers.
612
+
613
+ 154
614
+ 00:13:56,000 --> 00:13:58,000
615
+ Personal information.
616
+
617
+ 155
618
+ 00:13:59,000 --> 00:14:02,000
619
+ That's also become part of us to stop them.
620
+
621
+ 156
622
+ 00:14:02,000 --> 00:14:05,000
623
+ 2021 And I was top ten 2017.
624
+
625
+ 157
626
+ 00:14:06,000 --> 00:14:14,000
627
+ The risk category, what we are discussing at the moment was also that in the 2017 top ten list, it
628
+
629
+ 158
630
+ 00:14:14,000 --> 00:14:20,000
631
+ was in position number nine and different name, as you can see on the slide.
632
+
633
+ 159
634
+ 00:14:20,000 --> 00:14:24,000
635
+ It was called using components was no vulnerabilities.
636
+
637
+ 160
638
+ 00:14:24,000 --> 00:14:27,000
639
+ While the name is different, the idea is the same.
640
+
641
+ 161
642
+ 00:14:28,000 --> 00:14:34,000
643
+ You can see that this risk category placed a higher position in the top ten, 2041.
644
+
645
+ 162
646
+ 00:14:35,000 --> 00:14:37,000
647
+ It takes place number six.
648
+
649
+ 163
650
+ 00:14:37,000 --> 00:14:44,000
651
+ This is all explained by increased amount of cases vulnerabilities from this risk category we use to
652
+
653
+ 164
654
+ 00:14:44,000 --> 00:14:46,000
655
+ attack an application.
656
+
657
+ 165
658
+ 00:14:47,000 --> 00:14:48,000
659
+ Now it is time for the demo.
660
+
661
+ 166
662
+ 00:14:49,000 --> 00:14:55,000
663
+ In this demo, I'm going to show you the tools that can help you to tax liabilities in the competence.
664
+
665
+ 167
666
+ 00:14:56,000 --> 00:15:03,000
667
+ I'm going to start the demo from the great plugins that you can add to your build the scope dependency
668
+
669
+ 168
670
+ 00:15:03,000 --> 00:15:11,000
671
+ chat to raise developer awareness and help avoid risks and the technical abilities on early stages of
672
+
673
+ 169
674
+ 00:15:11,000 --> 00:15:15,000
675
+ Aosp created plugin for Maven School Dependency Chat.
676
+
677
+ 170
678
+ 00:15:16,000 --> 00:15:23,000
679
+ This is a solution which can be used to identify project dependencies and check them against is a national
680
+
681
+ 171
682
+ 00:15:23,000 --> 00:15:28,000
683
+ vulnerability database and BD needs reports.
684
+
685
+ 172
686
+ 00:15:28,000 --> 00:15:39,000
687
+ Any known publicly disclosed state finds so added to your project just open for maximum fine build plugins.
688
+
689
+ 173
690
+ 00:15:39,000 --> 00:15:46,000
691
+ And by the way, if you want to learn more about Maven, please refer to this section about Maven and
692
+
693
+ 174
694
+ 00:15:46,000 --> 00:15:50,000
695
+ automation tools in my course Java from 0 to 4 as job.
696
+
697
+ 175
698
+ 00:15:51,000 --> 00:15:52,000
699
+ Yeah.
700
+
701
+ 176
702
+ 00:15:52,000 --> 00:15:55,000
703
+ We'll just need to add a vast plugin, and that's it.
704
+
705
+ 177
706
+ 00:15:56,000 --> 00:15:57,000
707
+ Is a dependency check.
708
+
709
+ 178
710
+ 00:15:57,000 --> 00:16:06,000
711
+ Log in is by default tied to the verify or side base, dependent on if it is configured as a build or
712
+
713
+ 179
714
+ 00:16:06,000 --> 00:16:07,000
715
+ reporting plugin.
716
+
717
+ 180
718
+ 00:16:08,000 --> 00:16:12,000
719
+ In the current case, we can generate a report using and then verify.
720
+
721
+ 181
722
+ 00:16:12,000 --> 00:16:14,000
723
+ Come on, I added.
724
+
725
+ 182
726
+ 00:16:14,000 --> 00:16:22,000
727
+ This plugin on the top level is a preference for maximum so that all my modules also will be verified.
728
+
729
+ 183
730
+ 00:16:23,000 --> 00:16:31,000
731
+ I open the terminal and execute and then verify that it is important to understand is the first time
732
+
733
+ 184
734
+ 00:16:31,000 --> 00:16:33,000
735
+ this task is executed.
736
+
737
+ 185
738
+ 00:16:33,000 --> 00:16:40,000
739
+ It might take 20 minutes or more as it does loads and processes the data from the National Vulnerability
740
+
741
+ 186
742
+ 00:16:40,000 --> 00:16:49,000
743
+ Database hosted by NIST after the first march, though not as long as the plugin is executed at least
744
+
745
+ 187
746
+ 00:16:49,000 --> 00:16:54,000
747
+ once every seven days that I'm doing, it will only take a few seconds.
748
+
749
+ 188
750
+ 00:16:55,000 --> 00:17:03,000
751
+ Once command is executed, I can navigate the target directory of each of my modules and I will be able
752
+
753
+ 189
754
+ 00:17:03,000 --> 00:17:05,000
755
+ to find dependency.
756
+
757
+ 190
758
+ 00:17:05,000 --> 00:17:07,000
759
+ Check Report page HTML file.
760
+
761
+ 191
762
+ 00:17:07,000 --> 00:17:08,000
763
+ Let's open it.
764
+
765
+ 192
766
+ 00:17:09,000 --> 00:17:18,000
767
+ You can find here scan information vulnerabilities detected in each library severity evidence count
768
+
769
+ 193
770
+ 00:17:18,000 --> 00:17:23,000
771
+ detailed description of vulnerability and many, many other things.
772
+
773
+ 194
774
+ 00:17:23,000 --> 00:17:28,000
775
+ And as I said, you will be able to find such reports in each module.
776
+
777
+ 195
778
+ 00:17:29,000 --> 00:17:34,000
779
+ By the way, that can be different variations of consideration of this plugin.
780
+
781
+ 196
782
+ 00:17:34,000 --> 00:17:41,000
783
+ For example, you can tell plugin to create the dependency check, report, email and sales and build
784
+
785
+ 197
786
+ 00:17:41,000 --> 00:17:47,000
787
+ for CV, assess grateful ZAM or equal to a CV.
788
+
789
+ 198
790
+ 00:17:47,000 --> 00:17:55,000
791
+ SS stands for the Common Good Scoring System in the first lesson one we have in front of us and now
792
+
793
+ 199
794
+ 00:17:56,000 --> 00:17:59,000
795
+ some basic terms I explain what it is.
796
+
797
+ 200
798
+ 00:18:00,000 --> 00:18:05,000
799
+ So just in case you want to refresh in knowledge, just check various classes.
800
+
801
+ 201
802
+ 00:18:06,000 --> 00:18:12,000
803
+ Regarding configuration of this body as aberrations are also possible.
804
+
805
+ 202
806
+ 00:18:12,000 --> 00:18:20,000
807
+ You can check the temptation of this bargain because really a lot of different court cases that probably
808
+
809
+ 203
810
+ 00:18:20,000 --> 00:18:21,000
811
+ is not applicable for everyone.
812
+
813
+ 204
814
+ 00:18:22,000 --> 00:18:29,000
815
+ And in all possible cases, you have to use the most common configuration of this plugin and depending
816
+
817
+ 205
818
+ 00:18:29,000 --> 00:18:33,000
819
+ on your project specifics, you can configure it in another way.
820
+
821
+ 206
822
+ 00:18:34,000 --> 00:18:39,000
823
+ Dependency chart, however, is not the only option available to developers.
824
+
825
+ 207
826
+ 00:18:40,000 --> 00:18:44,000
827
+ There are also vulnerability scanners that can help you to scan your code.
828
+
829
+ 208
830
+ 00:18:45,000 --> 00:18:49,000
831
+ You can even integrate commerce into your CIC pipeline.
832
+
833
+ 209
834
+ 00:18:50,000 --> 00:18:56,000
835
+ For example, let me open the official website of the snake oil snake as a service.
836
+
837
+ 210
838
+ 00:18:56,000 --> 00:19:04,000
839
+ It is many things is similar to dependency chat but offers more features in that integration options.
840
+
841
+ 211
842
+ 00:19:04,000 --> 00:19:12,000
843
+ For instance, if you are using it, it can forbid merging the request if the changes introduce a new
844
+
845
+ 212
846
+ 00:19:12,000 --> 00:19:13,000
847
+ vulnerable dependency.
848
+
849
+ 213
850
+ 00:19:14,000 --> 00:19:18,000
851
+ Even more importantly, it suggests a remediation path.
852
+
853
+ 214
854
+ 00:19:19,000 --> 00:19:24,000
855
+ This has different pricing models and I am not advertising it.
856
+
857
+ 215
858
+ 00:19:24,000 --> 00:19:27,000
859
+ I get nothing from Holdens as some of you really.
860
+
861
+ 216
862
+ 00:19:27,000 --> 00:19:32,000
863
+ You can find any similar to and select to utilise the most.
864
+
865
+ 217
866
+ 00:19:33,000 --> 00:19:35,000
867
+ Among others, of them religious scholars.
868
+
869
+ 218
870
+ 00:19:35,000 --> 00:19:47,000
871
+ I can also name a few of the ones, for example kinetics v secure verbs in Jyothi Lundgaard Frontline
872
+
873
+ 219
874
+ 00:19:47,000 --> 00:19:57,000
875
+ NASA's next posts and map open V.A. s, sane, Hannibal and many, many others.
876
+
877
+ 220
878
+ 00:19:58,000 --> 00:20:03,000
879
+ It will be really hard to make an overview of each of the mentioned tools because they have a lot of
880
+
881
+ 221
882
+ 00:20:03,000 --> 00:20:11,000
883
+ different features and sometimes some unique features so as to make your own research.
884
+
885
+ 222
886
+ 00:20:11,000 --> 00:20:14,000
887
+ At least now you have a starting point.
888
+
889
+ 223
890
+ 00:20:14,000 --> 00:20:20,000
891
+ And even in case you have any questions, please do not be shy to ask your questions.
892
+
893
+ 224
894
+ 00:20:20,000 --> 00:20:24,000
895
+ Below is a video and I will be happy to answer.
896
+
897
+ 225
898
+ 00:20:24,000 --> 00:20:25,000
899
+ Let's continue.
900
+
901
+ 226
902
+ 00:20:26,000 --> 00:20:33,000
903
+ Let's talk about how to prevent negative consequences that might arise because of vulnerable and outdated
904
+
905
+ 227
906
+ 00:20:33,000 --> 00:20:34,000
907
+ components.
908
+
909
+ 228
910
+ 00:20:35,000 --> 00:20:42,000
911
+ To prevent this issue, the ideal solution would be to never trust set party components unless you are
912
+
913
+ 229
914
+ 00:20:42,000 --> 00:20:44,000
915
+ sure of their safety.
916
+
917
+ 230
918
+ 00:20:44,000 --> 00:20:48,000
919
+ Unfortunately, this is easier said than done.
920
+
921
+ 231
922
+ 00:20:48,000 --> 00:20:57,000
923
+ In fact, it is not realistic to manually verify all the models you use in your quote have a party management
924
+
925
+ 232
926
+ 00:20:57,000 --> 00:21:04,000
927
+ process which helps you sit back and watch all components using public vulnerabilities and exposure
928
+
929
+ 233
930
+ 00:21:05,000 --> 00:21:05,000
931
+ databases.
932
+
933
+ 234
934
+ 00:21:06,000 --> 00:21:12,000
935
+ Today as a demo, we learned some tools that you can use to detect vulnerabilities.
936
+
937
+ 235
938
+ 00:21:13,000 --> 00:21:15,000
939
+ Use services like Snoop IO.
940
+
941
+ 236
942
+ 00:21:16,000 --> 00:21:17,000
943
+ Integrate those.
944
+
945
+ 237
946
+ 00:21:17,000 --> 00:21:17,000
947
+ And to use the.
948
+
949
+ 238
950
+ 00:21:19,000 --> 00:21:22,000
951
+ Use of all logging to check dependencies like.
952
+
953
+ 239
954
+ 00:21:22,000 --> 00:21:22,000
955
+ Shows.
956
+
957
+ 240
958
+ 00:21:23,000 --> 00:21:24,000
959
+ The use of demo.
960
+
961
+ 241
962
+ 00:21:25,000 --> 00:21:32,000
963
+ Installs the components with trusted channels, remove unused dependencies, unnecessary features,
964
+
965
+ 242
966
+ 00:21:33,000 --> 00:21:36,000
967
+ components and files to use the surface.
968
+
969
+ 243
970
+ 00:21:38,000 --> 00:21:38,000
971
+ Continuous.
972
+
973
+ 244
974
+ 00:21:38,000 --> 00:21:43,000
975
+ The inventor is versions of both client side and server side components.
976
+
977
+ 245
978
+ 00:21:44,000 --> 00:21:45,000
979
+ For example frameworks.
980
+
981
+ 246
982
+ 00:21:45,000 --> 00:21:46,000
983
+ Libraries.
984
+
985
+ 247
986
+ 00:21:47,000 --> 00:21:54,000
987
+ Continuous monitoring, monitor sources like common vulnerabilities and exposures and national vulnerability,
988
+
989
+ 248
990
+ 00:21:54,000 --> 00:22:01,000
991
+ not the base vulnerabilities in the components use software composition analysis tools to automate the
992
+
993
+ 249
994
+ 00:22:01,000 --> 00:22:02,000
995
+ process.
996
+
997
+ 250
998
+ 00:22:03,000 --> 00:22:06,000
999
+ That's all what I wanted to discuss with you in this lesson.
1000
+
1001
+ 251
1002
+ 00:22:06,000 --> 00:22:09,000
1003
+ Let's recap what we have learned today.
1004
+
1005
+ 252
1006
+ 00:22:10,000 --> 00:22:17,000
1007
+ In this lesson, we have gone for vulnerable and outdated risk categories about redesigned risk factors
1008
+
1009
+ 253
1010
+ 00:22:17,000 --> 00:22:21,000
1011
+ that can increase probability of negative consequences.
1012
+
1013
+ 254
1014
+ 00:22:21,000 --> 00:22:25,000
1015
+ Also, you used multiple common vehicles enumerations.
1016
+
1017
+ 255
1018
+ 00:22:25,000 --> 00:22:29,000
1019
+ I explained how attackers use movable components.
1020
+
1021
+ 256
1022
+ 00:22:30,000 --> 00:22:33,000
1023
+ You use the real life example of attack.
1024
+
1025
+ 257
1026
+ 00:22:33,000 --> 00:22:40,000
1027
+ Besides, they compare the risk category in a top down 2017 and 2021.
1028
+
1029
+ 258
1030
+ 00:22:41,000 --> 00:22:46,000
1031
+ We learned how to use the tendency check login in your application.
1032
+
1033
+ 259
1034
+ 00:22:46,000 --> 00:22:53,000
1035
+ Now you know what the liability scammers are, and the examples of lesson was summarized what we have
1036
+
1037
+ 260
1038
+ 00:22:53,000 --> 00:22:54,000
1039
+ learned and discussed.
1040
+
1041
+ 261
1042
+ 00:22:54,000 --> 00:22:56,000
1043
+ How to prevent vulnerabilities.
1044
+
1045
+ 262
1046
+ 00:22:57,000 --> 00:22:59,000
1047
+ Central for your attention.
1048
+
1049
+ 263
1050
+ 00:22:59,000 --> 00:23:00,000
1051
+ Have a great day and see you.
1052
+
1053
+ 264
1054
+ 00:23:01,000 --> 00:23:02,000
1055
+ Next lesson.
1056
+
73 - OWASP Top 10 2021/013 pom.xml-from-the-lesson-with-OWASP-plugin.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/pom.xml
73 - OWASP Top 10 2021/014 Identification & Authentication Failures_en.srt ADDED
@@ -0,0 +1,1432 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:05,000 --> 00:00:06,000
3
+ Hello, team.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:14,000
7
+ In this last we proceed loans and next risk category from OWASP Top ten, we're going to learn ID and
8
+
9
+ 3
10
+ 00:00:14,000 --> 00:00:15,000
11
+ some education payloads.
12
+
13
+ 4
14
+ 00:00:16,000 --> 00:00:20,000
15
+ We'll start from the general overview of this risk category.
16
+
17
+ 5
18
+ 00:00:21,000 --> 00:00:27,000
19
+ I will explain potential impacts that may be caused by identification and authentication payloads.
20
+
21
+ 6
22
+ 00:00:28,000 --> 00:00:30,000
23
+ We're going to review a notable common weakness.
24
+
25
+ 7
26
+ 00:00:30,000 --> 00:00:40,000
27
+ Enumerations after that will compare this risk category in August of 2017 versus avast top ten 2021.
28
+
29
+ 8
30
+ 00:00:41,000 --> 00:00:49,000
31
+ In the last hour, explain how attackers may exploit broken authentication to gather on new concepts
32
+
33
+ 9
34
+ 00:00:49,000 --> 00:00:57,000
35
+ like session fixation, cross-site request, forgery, execution after writing checks specially for
36
+
37
+ 10
38
+ 00:00:57,000 --> 00:01:03,000
39
+ this lesson, I guess there is a risk factors that can increase the risk of potential attack.
40
+
41
+ 11
42
+ 00:01:04,000 --> 00:01:08,000
43
+ Separately, we're going to talk about multi-factor authentication.
44
+
45
+ 12
46
+ 00:01:08,000 --> 00:01:11,000
47
+ I will explain what session ID entropy is.
48
+
49
+ 13
50
+ 00:01:12,000 --> 00:01:16,000
51
+ And as always, we're going to review examples of attacks.
52
+
53
+ 14
54
+ 00:01:17,000 --> 00:01:23,000
55
+ You will learn what credential stuffing, brute force access and session hijacking are.
56
+
57
+ 15
58
+ 00:01:24,000 --> 00:01:30,000
59
+ At the end of the lesson, we're going to discuss how to prevent attacks related to unification and
60
+
61
+ 16
62
+ 00:01:30,000 --> 00:01:31,000
63
+ authentication failures.
64
+
65
+ 17
66
+ 00:01:32,000 --> 00:01:35,000
67
+ Let's start our lesson as always.
68
+
69
+ 18
70
+ 00:01:35,000 --> 00:01:40,000
71
+ Let's start from high level overview to understand what this risk category is all about.
72
+
73
+ 19
74
+ 00:01:41,000 --> 00:01:48,000
75
+ Identification and authentication failures can occur when functions are related to a user's identity.
76
+
77
+ 20
78
+ 00:01:49,000 --> 00:01:57,000
79
+ Authentication or session management are not implemented correctly or not adequately protected by application.
80
+
81
+ 21
82
+ 00:01:58,000 --> 00:02:05,000
83
+ Attackers may be able to exploit identification and authentication failures by compromising passwords,
84
+
85
+ 22
86
+ 00:02:06,000 --> 00:02:11,000
87
+ keys, session tokens or exploit OSI implementation flaws.
88
+
89
+ 23
90
+ 00:02:11,000 --> 00:02:17,000
91
+ To assume the user's identity is a temporary or permanently broken.
92
+
93
+ 24
94
+ 00:02:17,000 --> 00:02:25,000
95
+ Authentication means an attacker can gain access to restricted data by pretending to be a different
96
+
97
+ 25
98
+ 00:02:25,000 --> 00:02:25,000
99
+ user.
100
+
101
+ 26
102
+ 00:02:26,000 --> 00:02:33,000
103
+ The attacker provides authentication credentials of a different user and logs into the system.
104
+
105
+ 27
106
+ 00:02:34,000 --> 00:02:41,000
107
+ In this way, the attack against access to all the data and functionality of the user keeper has to
108
+
109
+ 28
110
+ 00:02:41,000 --> 00:02:41,000
111
+ be.
112
+
113
+ 29
114
+ 00:02:42,000 --> 00:02:49,000
115
+ For instance, if an attacker provides the credentials of the admin user, he will have total control
116
+
117
+ 30
118
+ 00:02:49,000 --> 00:02:51,000
119
+ or was a compromised system.
120
+
121
+ 31
122
+ 00:02:52,000 --> 00:02:59,000
123
+ Authentication means you are who you say you are and ID is also the same.
124
+
125
+ 32
126
+ 00:03:00,000 --> 00:03:07,000
127
+ That's why in my opinion the name is a little bit confusing so we will not dive deeper.
128
+
129
+ 33
130
+ 00:03:07,000 --> 00:03:10,000
131
+ It is a syntactical difference between these two camps.
132
+
133
+ 34
134
+ 00:03:11,000 --> 00:03:14,000
135
+ Basically, this risk category describes cases.
136
+
137
+ 35
138
+ 00:03:14,000 --> 00:03:22,000
139
+ One attacker acts on behalf of the user because of the broken system or vulnerabilities found in the
140
+
141
+ 36
142
+ 00:03:22,000 --> 00:03:23,000
143
+ system.
144
+
145
+ 37
146
+ 00:03:24,000 --> 00:03:31,000
147
+ Let's review potential impacts that may be caused by vulnerabilities related to the identification and
148
+
149
+ 38
150
+ 00:03:31,000 --> 00:03:35,000
151
+ authentication failures and more potential impact.
152
+
153
+ 39
154
+ 00:03:35,000 --> 00:03:36,000
155
+ It is worse.
156
+
157
+ 40
158
+ 00:03:36,000 --> 00:03:44,000
159
+ Two names of following ones loss of administrative access in case authentication will be broken and
160
+
161
+ 41
162
+ 00:03:44,000 --> 00:03:51,000
163
+ the attacker will get access to the account with admin role, then the whole system may be compromised.
164
+
165
+ 42
166
+ 00:03:52,000 --> 00:03:59,000
167
+ It only takes a single account was administrative access to be compromised and the attackers have access
168
+
169
+ 43
170
+ 00:03:59,000 --> 00:04:01,000
171
+ to the entire system.
172
+
173
+ 44
174
+ 00:04:01,000 --> 00:04:10,000
175
+ On that full disclosure of sensitive information, unauthorized access may disclose sensitive information
176
+
177
+ 45
178
+ 00:04:10,000 --> 00:04:15,000
179
+ in the previous lesson learned already what can be considered a sensitive information.
180
+
181
+ 46
182
+ 00:04:16,000 --> 00:04:24,000
183
+ That's why I wouldn't stop on this performing actions on behalf of OSI users getting access to accounts
184
+
185
+ 47
186
+ 00:04:24,000 --> 00:04:25,000
187
+ of other users.
188
+
189
+ 48
190
+ 00:04:25,000 --> 00:04:32,000
191
+ Attackers can perform actions on their behalf depending on the domain of the application.
192
+
193
+ 49
194
+ 00:04:32,000 --> 00:04:40,000
195
+ This may lead to losing money his account of the user money laundering, Social Security fraud and identity
196
+
197
+ 50
198
+ 00:04:40,000 --> 00:04:46,000
199
+ theft or disclosure of legally protected, highly sensitive information.
200
+
201
+ 51
202
+ 00:04:46,000 --> 00:04:52,000
203
+ Any of mentioned impacts can cost a lot to your company and your organization.
204
+
205
+ 52
206
+ 00:04:52,000 --> 00:05:01,000
207
+ For example, losing the personal data of European citizens could invoke GBR fines of up to 4% of a
208
+
209
+ 53
210
+ 00:05:01,000 --> 00:05:03,000
211
+ company's annual global revenue.
212
+
213
+ 54
214
+ 00:05:04,000 --> 00:05:08,000
215
+ For large companies, this could run to billions of dollars.
216
+
217
+ 55
218
+ 00:05:08,000 --> 00:05:15,000
219
+ Broken authentication is a serious threat to application and website developers have made.
220
+
221
+ 56
222
+ 00:05:15,000 --> 00:05:17,000
223
+ Strikers and owners.
224
+
225
+ 57
226
+ 00:05:18,000 --> 00:05:27,000
227
+ Let's discuss now notable common weakness enumerations associated with this category notable c w e included
228
+
229
+ 58
230
+ 00:05:27,000 --> 00:05:31,000
231
+ rcwe2 hundred 97.
232
+
233
+ 59
234
+ 00:05:32,000 --> 00:05:36,000
235
+ Improper validation of scientific hat was host mismatch.
236
+
237
+ 60
238
+ 00:05:37,000 --> 00:05:45,000
239
+ Even if a certificate is well-formed sign and follows the chain of trust, it may simply be a valid
240
+
241
+ 61
242
+ 00:05:45,000 --> 00:05:48,000
243
+ certificate for a different site.
244
+
245
+ 62
246
+ 00:05:48,000 --> 00:05:57,000
247
+ Then the site is in the software is interacting with user certificates, hosts specific data is not
248
+
249
+ 63
250
+ 00:05:57,000 --> 00:06:05,000
251
+ properly checked, such as a common name in the subject or is a subject alternatively extension of an
252
+
253
+ 64
254
+ 00:06:05,000 --> 00:06:08,000
255
+ X point 509 certificate.
256
+
257
+ 65
258
+ 00:06:08,000 --> 00:06:15,000
259
+ It may be possible for a redirection or spoofing an that allow a malicious host with a valid certificate
260
+
261
+ 66
262
+ 00:06:16,000 --> 00:06:17,000
263
+ to provide data.
264
+
265
+ 67
266
+ 00:06:18,000 --> 00:06:20,000
267
+ Impersonate a trusted host.
268
+
269
+ 68
270
+ 00:06:21,000 --> 00:06:28,000
271
+ In order to ensure data integrity, the certificate must be valid and that must pertain to the site
272
+
273
+ 69
274
+ 00:06:29,000 --> 00:06:35,000
275
+ that is being accessed even if the software attempts to check the hostname.
276
+
277
+ 70
278
+ 00:06:36,000 --> 00:06:40,000
279
+ It is still possible to incorrectly check the hostname.
280
+
281
+ 71
282
+ 00:06:40,000 --> 00:06:48,000
283
+ For example, attackers could create a certificate with a name begins with a trusted name, followed
284
+
285
+ 72
286
+ 00:06:48,000 --> 00:06:54,000
287
+ by a load by which could cause some string based comparisons to only eggs and lines.
288
+
289
+ 73
290
+ 00:06:54,000 --> 00:06:57,000
291
+ A portion that contains a trusted name.
292
+
293
+ 74
294
+ 00:06:58,000 --> 00:06:59,000
295
+ What is new?
296
+
297
+ 75
298
+ 00:06:59,000 --> 00:07:02,000
299
+ By also reviewed in our previous lessons.
300
+
301
+ 76
302
+ 00:07:03,000 --> 00:07:09,000
303
+ And anyway, in case something is not clear, do not hesitate to ask your questions below.
304
+
305
+ 77
306
+ 00:07:09,000 --> 00:07:12,000
307
+ Xavier and I will be happy to answer.
308
+
309
+ 78
310
+ 00:07:13,000 --> 00:07:15,000
311
+ cwe2 hundred 87.
312
+
313
+ 79
314
+ 00:07:16,000 --> 00:07:18,000
315
+ Improper Authentication.
316
+
317
+ 80
318
+ 00:07:19,000 --> 00:07:25,000
319
+ This c describes a case when an actor claims to have a given identity.
320
+
321
+ 81
322
+ 00:07:25,000 --> 00:07:32,000
323
+ This software doesn't prove or insufficiently proves that the claim is correct.
324
+
325
+ 82
326
+ 00:07:33,000 --> 00:07:37,000
327
+ CWA e 384 session fixation.
328
+
329
+ 83
330
+ 00:07:38,000 --> 00:07:47,000
331
+ Such scenario is commonly observed when advocation authenticates a user without first invalidating the
332
+
333
+ 84
334
+ 00:07:47,000 --> 00:07:54,000
335
+ existence session, thereby continuing to use the session already associated with the user.
336
+
337
+ 85
338
+ 00:07:55,000 --> 00:08:03,000
339
+ An attacker is able to force the null session identifier on the user so that once the user authenticates,
340
+
341
+ 86
342
+ 00:08:04,000 --> 00:08:07,000
343
+ that talker has access to the authenticated session.
344
+
345
+ 87
346
+ 00:08:08,000 --> 00:08:16,000
347
+ The application will contain the user's projected will session identifiers in the generic excluded of
348
+
349
+ 88
350
+ 00:08:16,000 --> 00:08:19,000
351
+ the session fixation or immunities and attack.
352
+
353
+ 89
354
+ 00:08:19,000 --> 00:08:27,000
355
+ It creates and use session on a valid location and the recourse associated session identify the attackers
356
+
357
+ 90
358
+ 00:08:27,000 --> 00:08:33,000
359
+ and causes the victim to associate and possibly authenticate against the server.
360
+
361
+ 91
362
+ 00:08:33,000 --> 00:08:41,000
363
+ Using that session event file gives the attacker access to the user's account through the active session.
364
+
365
+ 92
366
+ 00:08:41,000 --> 00:08:45,000
367
+ These are the most notable common vacancies enumerations.
368
+
369
+ 93
370
+ 00:08:45,000 --> 00:08:46,000
371
+ Let's move on.
372
+
373
+ 94
374
+ 00:08:47,000 --> 00:08:53,000
375
+ Let's compare our last top ten, 2017 versus 2021.
376
+
377
+ 95
378
+ 00:08:54,000 --> 00:09:04,000
379
+ As you can see on this slide, broken authentication was on the second position in 2017 inches 2021.
380
+
381
+ 96
382
+ 00:09:04,000 --> 00:09:12,000
383
+ It was renamed the identification and Authentication Failures and was moved to the position number seven.
384
+
385
+ 97
386
+ 00:09:13,000 --> 00:09:21,000
387
+ Now, this risk category includes common weakness, nominations related to ID failures less known what
388
+
389
+ 98
390
+ 00:09:21,000 --> 00:09:29,000
391
+ techniques are used by attackers to exploit broken authentication lines the way how attackers act.
392
+
393
+ 99
394
+ 00:09:30,000 --> 00:09:39,000
395
+ We will be ready to react on this and we are going to run source of impacts first and after the lesson
396
+
397
+ 100
398
+ 00:09:39,000 --> 00:09:42,000
399
+ we're going to know how to mitigate these attacks.
400
+
401
+ 101
402
+ 00:09:43,000 --> 00:09:47,000
403
+ So attackers use a range of techniques, including the fallen.
404
+
405
+ 102
406
+ 00:09:49,000 --> 00:09:56,000
407
+ Brute force or credential stuffing in one of the previous last real working years was a brute force
408
+
409
+ 103
410
+ 00:09:56,000 --> 00:10:04,000
411
+ is and brute force attack consists of an attacker submitting many passwords or pass phrases with the
412
+
413
+ 104
414
+ 00:10:04,000 --> 00:10:07,000
415
+ hope of eventually guessing correctly.
416
+
417
+ 105
418
+ 00:10:08,000 --> 00:10:15,000
419
+ Credential stuff is a type of cyber attack in which that target collects stolen account credentials
420
+
421
+ 106
422
+ 00:10:16,000 --> 00:10:25,000
423
+ typically consists of lists of usernames and or email addresses and the corresponding passwords, often
424
+
425
+ 107
426
+ 00:10:25,000 --> 00:10:32,000
427
+ from a data breach, and then uses the credentials to gain unauthorized access to user accounts.
428
+
429
+ 108
430
+ 00:10:32,000 --> 00:10:37,000
431
+ So large scale automated logging requests directed against a web application.
432
+
433
+ 109
434
+ 00:10:38,000 --> 00:10:45,000
435
+ Session hijacking, session hijacking, sometimes also known as kook hijacking.
436
+
437
+ 110
438
+ 00:10:45,000 --> 00:10:54,000
439
+ It is the exploitation of a valid computer session to gain unauthorized access to information or services
440
+
441
+ 111
442
+ 00:10:54,000 --> 00:10:55,000
443
+ in the computer system.
444
+
445
+ 112
446
+ 00:10:56,000 --> 00:11:03,000
447
+ In particular, this channel is used to refer to the zest of the cookie used to authenticate the user
448
+
449
+ 113
450
+ 00:11:03,000 --> 00:11:04,000
451
+ to a remote server.
452
+
453
+ 114
454
+ 00:11:05,000 --> 00:11:07,000
455
+ Do you remember this lesson I showed you?
456
+
457
+ 115
458
+ 00:11:07,000 --> 00:11:14,000
459
+ How a topic and steal a session, a cookie, and after that just be authorized in the application.
460
+
461
+ 116
462
+ 00:11:15,000 --> 00:11:18,000
463
+ So this is exactly about describe in this case.
464
+
465
+ 117
466
+ 00:11:20,000 --> 00:11:27,000
467
+ Session fixation will really talked about session fixation when we reviewed the common vehicles enumerations.
468
+
469
+ 118
470
+ 00:11:28,000 --> 00:11:30,000
471
+ But let's recap one more time.
472
+
473
+ 119
474
+ 00:11:31,000 --> 00:11:38,000
475
+ Session fixation is a type of attack on web application users, where an attacker is able to trick the
476
+
477
+ 120
478
+ 00:11:38,000 --> 00:11:45,000
479
+ victim into using the session they need, which is previously known to zap the attacker.
480
+
481
+ 121
482
+ 00:11:45,000 --> 00:11:52,000
483
+ Tweaks the user into using a specific session ID after the user walks into the web application using
484
+
485
+ 122
486
+ 00:11:52,000 --> 00:12:00,000
487
+ the provided session and the attacker uses this method session ID to gain access to the user's account.
488
+
489
+ 123
490
+ 00:12:01,000 --> 00:12:08,000
491
+ This attack, the first from session hijacking, ends the fact that the session ID is previously known
492
+
493
+ 124
494
+ 00:12:08,000 --> 00:12:15,000
495
+ as the attacker and is forced onto the victim as opposed to the attacker discovering the tokens through
496
+
497
+ 125
498
+ 00:12:15,000 --> 00:12:17,000
499
+ another ability.
500
+
501
+ 126
502
+ 00:12:18,000 --> 00:12:27,000
503
+ Cross sides request forgery in a C as F attack and innocent and user is tweaked by an attack into submitting
504
+
505
+ 127
506
+ 00:12:27,000 --> 00:12:31,000
507
+ a web request that they did not intend.
508
+
509
+ 128
510
+ 00:12:31,000 --> 00:12:39,000
511
+ This may cause actions to be performed on the website that can change session, state or operation often
512
+
513
+ 129
514
+ 00:12:39,000 --> 00:12:40,000
515
+ and users account.
516
+
517
+ 130
518
+ 00:12:41,000 --> 00:12:48,000
519
+ Cross sides request forgery is an attack that forces an end user to execute unwanted actions on the
520
+
521
+ 131
522
+ 00:12:48,000 --> 00:12:52,000
523
+ web application in which they are currently authenticated.
524
+
525
+ 132
526
+ 00:12:53,000 --> 00:13:01,000
527
+ With a little help of social engineering, such as sending an email or chat, an attacker may twigs
528
+
529
+ 133
530
+ 00:13:01,000 --> 00:13:08,000
531
+ that users of a web application into executing actions of the attacker's choosing gives a victim is
532
+
533
+ 134
534
+ 00:13:08,000 --> 00:13:17,000
535
+ a normal use of a successful CSR attack can force the user to perform state changing requests like transferring
536
+
537
+ 135
538
+ 00:13:17,000 --> 00:13:25,000
539
+ fonts, changing the email address and so force if the victim is an administrative account.
540
+
541
+ 136
542
+ 00:13:25,000 --> 00:13:29,000
543
+ See SRF can compromise in time of their application.
544
+
545
+ 137
546
+ 00:13:30,000 --> 00:13:37,000
547
+ Execution after redirect execution of the rhetoric is an attack where an attacker ignores, redirects
548
+
549
+ 138
550
+ 00:13:38,000 --> 00:13:43,000
551
+ and retrieves sensitive content intended for authenticated users.
552
+
553
+ 139
554
+ 00:13:43,000 --> 00:13:44,000
555
+ Let me explain.
556
+
557
+ 140
558
+ 00:13:45,000 --> 00:13:49,000
559
+ Consider web application that has logging functionality.
560
+
561
+ 141
562
+ 00:13:49,000 --> 00:13:58,000
563
+ Users who have an account can access content features in this web application only by logging in on
564
+
565
+ 142
566
+ 00:13:58,000 --> 00:14:06,000
567
+ authenticated users are redirected to the login page for them the first to log in and get an authenticated
568
+
569
+ 143
570
+ 00:14:06,000 --> 00:14:06,000
571
+ session.
572
+
573
+ 144
574
+ 00:14:07,000 --> 00:14:15,000
575
+ This is one of the many situations where the execute after redirect vulnerability may create, and this
576
+
577
+ 145
578
+ 00:14:15,000 --> 00:14:23,000
579
+ vulnerability arises in an improper implementation of court where the developer assumes the execution
580
+
581
+ 146
582
+ 00:14:23,000 --> 00:14:25,000
583
+ stops after redirect.
584
+
585
+ 147
586
+ 00:14:25,000 --> 00:14:34,000
587
+ However, it is not always true the remaining port of the page or several also gets executed.
588
+
589
+ 148
590
+ 00:14:34,000 --> 00:14:37,000
591
+ This is about a case when you resurrect the user.
592
+
593
+ 149
594
+ 00:14:38,000 --> 00:14:45,000
595
+ You shouldn't forget the call over char massive to stop execution of the mass in order to not execute
596
+
597
+ 150
598
+ 00:14:45,000 --> 00:14:51,000
599
+ any line of code that is not supposed to be executed if the user is not, log in.
600
+
601
+ 151
602
+ 00:14:52,000 --> 00:14:57,000
603
+ These are the main ways that attackers will use to exploit growth and authentication.
604
+
605
+ 152
606
+ 00:14:58,000 --> 00:15:04,000
607
+ Let's continue with a view of how attackers will try to exploit the application.
608
+
609
+ 153
610
+ 00:15:04,000 --> 00:15:07,000
611
+ And now let's review another side of the model.
612
+
613
+ 154
614
+ 00:15:07,000 --> 00:15:11,000
615
+ Let's take a look what can increase the risk of attack.
616
+
617
+ 155
618
+ 00:15:12,000 --> 00:15:18,000
619
+ Let's review risk factors that we have to avoid in order to make our application more secure.
620
+
621
+ 156
622
+ 00:15:19,000 --> 00:15:26,000
623
+ So among risk factors that can increase the risk of broken or syndication attacks, it is worse to mention
624
+
625
+ 157
626
+ 00:15:26,000 --> 00:15:30,000
627
+ is a following once using weak and standard passwords.
628
+
629
+ 158
630
+ 00:15:31,000 --> 00:15:37,000
631
+ I know that this is a very common risk factor, but it is not an exclusion for this case.
632
+
633
+ 159
634
+ 00:15:37,000 --> 00:15:45,000
635
+ Is a username and password for your admin panel are at me and admin an attacker can easily guys and
636
+
637
+ 160
638
+ 00:15:45,000 --> 00:15:47,000
639
+ whole system will be compromised.
640
+
641
+ 161
642
+ 00:15:48,000 --> 00:15:53,000
643
+ Hackers have broken into a lot of systems in the past because of weak passwords.
644
+
645
+ 162
646
+ 00:15:54,000 --> 00:16:01,000
647
+ We can implement the password limitation policies to force our users to change password each month for
648
+
649
+ 163
650
+ 00:16:01,000 --> 00:16:02,000
651
+ three months.
652
+
653
+ 164
654
+ 00:16:02,000 --> 00:16:05,000
655
+ For example, looking to implement weak password check.
656
+
657
+ 165
658
+ 00:16:05,000 --> 00:16:08,000
659
+ And so the creation of accounts was weak passwords.
660
+
661
+ 166
662
+ 00:16:09,000 --> 00:16:11,000
663
+ As you can see, we have different options here.
664
+
665
+ 167
666
+ 00:16:12,000 --> 00:16:16,000
667
+ Has missing or ineffective multi-factor authentication.
668
+
669
+ 168
670
+ 00:16:17,000 --> 00:16:22,000
671
+ Absence of multi-factor authentication is a significant risk factor.
672
+
673
+ 169
674
+ 00:16:22,000 --> 00:16:29,000
675
+ For example, each time you want to start the session with web application besides logging and passwords
676
+
677
+ 170
678
+ 00:16:29,000 --> 00:16:30,000
679
+ provided.
680
+
681
+ 171
682
+ 00:16:30,000 --> 00:16:38,000
683
+ User also receives a request to his or her mobile phone, for example, and only after the request is
684
+
685
+ 172
686
+ 00:16:38,000 --> 00:16:41,000
687
+ confirmed, sessions start and create.
688
+
689
+ 173
690
+ 00:16:42,000 --> 00:16:48,000
691
+ The request can be sent either into the native mobile app or, as this can be called, into Assamese.
692
+
693
+ 174
694
+ 00:16:49,000 --> 00:16:53,000
695
+ This can be auto generated tokens at the end before signing in.
696
+
697
+ 175
698
+ 00:16:54,000 --> 00:17:00,000
699
+ There are different ways how to implement this, but just remember that multi-factor authentication
700
+
701
+ 176
702
+ 00:17:00,000 --> 00:17:05,000
703
+ is very efficient and proven mechanism to confirm the identity of a user.
704
+
705
+ 177
706
+ 00:17:06,000 --> 00:17:10,000
707
+ And that's a risk factor is allowing brute force cracking.
708
+
709
+ 178
710
+ 00:17:11,000 --> 00:17:17,000
711
+ If you change your credentials to something stronger, those credentials can still be compromised.
712
+
713
+ 179
714
+ 00:17:18,000 --> 00:17:23,000
715
+ One way an attacker can gain those credentials is via brute force cracking.
716
+
717
+ 180
718
+ 00:17:23,000 --> 00:17:30,000
719
+ And other words, an attacker creates an automated script that uses different combinations of usernames
720
+
721
+ 181
722
+ 00:17:30,000 --> 00:17:34,000
723
+ and passwords sequentially until he finds the right combination.
724
+
725
+ 182
726
+ 00:17:35,000 --> 00:17:37,000
727
+ This process can be very time consuming.
728
+
729
+ 183
730
+ 00:17:38,000 --> 00:17:40,000
731
+ Days, weeks, or even months.
732
+
733
+ 184
734
+ 00:17:40,000 --> 00:17:47,000
735
+ But if you don't programmed this kind of attack, it is still doable to prevent this kind of attack.
736
+
737
+ 185
738
+ 00:17:47,000 --> 00:17:55,000
739
+ Implementing delays with failed attempts to lock in or block logging attempts completely after you failed
740
+
741
+ 186
742
+ 00:17:55,000 --> 00:17:57,000
743
+ to log in at times in a row.
744
+
745
+ 187
746
+ 00:17:58,000 --> 00:18:05,000
747
+ Using weak or ineffective credential recovery and forgot password processes such as knowledge based
748
+
749
+ 188
750
+ 00:18:05,000 --> 00:18:12,000
751
+ answers which can be made safe will ready discussed in previous classes.
752
+
753
+ 189
754
+ 00:18:12,000 --> 00:18:18,000
755
+ That is is not the best practice to rely on the secrets questions while restoring the password.
756
+
757
+ 190
758
+ 00:18:19,000 --> 00:18:26,000
759
+ Because in the area of social networks, this relatively easy to steal information builds the user or
760
+
761
+ 191
762
+ 00:18:26,000 --> 00:18:30,000
763
+ clarify through the path of the mother's maiden name.
764
+
765
+ 192
766
+ 00:18:31,000 --> 00:18:39,000
767
+ So make sure that restoring password flow is also secure and uses other communication channels that
768
+
769
+ 193
770
+ 00:18:39,000 --> 00:18:42,000
771
+ only user identity has.
772
+
773
+ 194
774
+ 00:18:42,000 --> 00:18:51,000
775
+ For example, make sure you enable some verification of the user use of password restoring sending credentials
776
+
777
+ 195
778
+ 00:18:51,000 --> 00:18:53,000
779
+ in an insecure way.
780
+
781
+ 196
782
+ 00:18:54,000 --> 00:19:01,000
783
+ Even if you use a strong password and prevent brute force attacks, but send the credentials to the
784
+
785
+ 197
786
+ 00:19:01,000 --> 00:19:05,000
787
+ server in plaintext, use an unencrypted connection.
788
+
789
+ 198
790
+ 00:19:05,000 --> 00:19:09,000
791
+ For example, you use a CTP but not a protocol.
792
+
793
+ 199
794
+ 00:19:10,000 --> 00:19:16,000
795
+ Any other user who is connected to the same network as you can eavesdrop as a traffic.
796
+
797
+ 200
798
+ 00:19:17,000 --> 00:19:22,000
799
+ Once attacker has the credentials, he can log in as if he were you.
800
+
801
+ 201
802
+ 00:19:23,000 --> 00:19:25,000
803
+ Improper session time.
804
+
805
+ 202
806
+ 00:19:26,000 --> 00:19:29,000
807
+ It's important to set a time out for our log in session.
808
+
809
+ 203
810
+ 00:19:30,000 --> 00:19:37,000
811
+ This means that after a certain period of inactivity, the user is automatically left out from the system.
812
+
813
+ 204
814
+ 00:19:38,000 --> 00:19:41,000
815
+ Failing to do so may result in session hijacking.
816
+
817
+ 205
818
+ 00:19:43,000 --> 00:19:45,000
819
+ Expose in session identifiers.
820
+
821
+ 206
822
+ 00:19:45,000 --> 00:19:52,000
823
+ Another way in which an attacker can compromise a session is by seeing the session identifier zero.
824
+
825
+ 207
826
+ 00:19:53,000 --> 00:19:59,000
827
+ During this process, anyone who has a name can enter the stolen session.
828
+
829
+ 208
830
+ 00:20:00,000 --> 00:20:09,000
831
+ Failing to secure API in an API is there is usually a way to define which roles should require and syndication
832
+
833
+ 209
834
+ 00:20:09,000 --> 00:20:11,000
835
+ and which should not.
836
+
837
+ 210
838
+ 00:20:11,000 --> 00:20:18,000
839
+ If you fail to add an authentication requirement for a role that should contain, the functionality
840
+
841
+ 211
842
+ 00:20:18,000 --> 00:20:21,000
843
+ behind this role will be available worldwide.
844
+
845
+ 212
846
+ 00:20:22,000 --> 00:20:29,000
847
+ And this is not the you should keep only public resources available, as resources should be protected
848
+
849
+ 213
850
+ 00:20:29,000 --> 00:20:31,000
851
+ by authentication.
852
+
853
+ 214
854
+ 00:20:32,000 --> 00:20:36,000
855
+ While reviewing the slide, I mentioned multi-factor authentication.
856
+
857
+ 215
858
+ 00:20:37,000 --> 00:20:43,000
859
+ The name is MFA taking implementation side of the MFA.
860
+
861
+ 216
862
+ 00:20:43,000 --> 00:20:50,000
863
+ I would say that this law is beyond the scope of this lesson, but I believe that we still need to cover
864
+
865
+ 217
866
+ 00:20:50,000 --> 00:20:58,000
867
+ some basic radical knowledge about MFA that will serve as a starting point for Eugene's implementation.
868
+
869
+ 218
870
+ 00:20:58,000 --> 00:21:01,000
871
+ So let's recap one more time.
872
+
873
+ 219
874
+ 00:21:01,000 --> 00:21:03,000
875
+ What is MFA?
876
+
877
+ 220
878
+ 00:21:04,000 --> 00:21:11,000
879
+ Multi-factor authentication is an authentication massive, which requires the user to provide two or
880
+
881
+ 221
882
+ 00:21:11,000 --> 00:21:20,000
883
+ more verification factors to gain access to a resource such as an application online account or a VPN.
884
+
885
+ 222
886
+ 00:21:21,000 --> 00:21:27,000
887
+ MFA is a core component of a strong identity and access management policy.
888
+
889
+ 223
890
+ 00:21:28,000 --> 00:21:31,000
891
+ Rather than just asking for a username and password.
892
+
893
+ 224
894
+ 00:21:31,000 --> 00:21:39,000
895
+ MFA requires one or more additional verification factors which decreases the likelihood of a successful
896
+
897
+ 225
898
+ 00:21:39,000 --> 00:21:40,000
899
+ cyber attack.
900
+
901
+ 226
902
+ 00:21:41,000 --> 00:21:49,000
903
+ MFA works by requiring additional verification confirmation factors that usually factor is that they
904
+
905
+ 227
906
+ 00:21:49,000 --> 00:22:01,000
907
+ used under the MFA zero time based one time password short message service, electronic email push notifications.
908
+
909
+ 228
910
+ 00:22:02,000 --> 00:22:08,000
911
+ One of the most common MFA factors is that user encounter is one time passwords.
912
+
913
+ 229
914
+ 00:22:08,000 --> 00:22:10,000
915
+ Is that the U.S. user?
916
+
917
+ 230
918
+ 00:22:10,000 --> 00:22:13,000
919
+ We are CMOs or on email.
920
+
921
+ 231
922
+ 00:22:14,000 --> 00:22:22,000
923
+ I'm talking about those digit codes that you often receive email esims or some sort of mobile app and
924
+
925
+ 232
926
+ 00:22:22,000 --> 00:22:27,000
927
+ you code is generated each time and a syndication request is submitted.
928
+
929
+ 233
930
+ 00:22:28,000 --> 00:22:35,000
931
+ The Court is generated based upon the seat value as it is assigned to Z use of one Z first register
932
+
933
+ 234
934
+ 00:22:35,000 --> 00:22:41,000
935
+ and some other factor which could simply be account incremented or the time value.
936
+
937
+ 235
938
+ 00:22:42,000 --> 00:22:50,000
939
+ Most MFA authentication methodology is based on one of three types of additional information since you
940
+
941
+ 236
942
+ 00:22:50,000 --> 00:23:01,000
943
+ no knowledge such as password of being since you have possession such as mage of smartphone, since
944
+
945
+ 237
946
+ 00:23:01,000 --> 00:23:07,000
947
+ you are the parents such as biometric like fingerprints or voice and completion.
948
+
949
+ 238
950
+ 00:23:09,000 --> 00:23:11,000
951
+ We talked with you about securing the session.
952
+
953
+ 239
954
+ 00:23:11,000 --> 00:23:15,000
955
+ And let me elaborate on this a little bit more.
956
+
957
+ 240
958
+ 00:23:15,000 --> 00:23:24,000
959
+ The session they need must be unpredictable, random enough to prevent gas attacks where an attacker
960
+
961
+ 241
962
+ 00:23:24,000 --> 00:23:31,000
963
+ is able to guess or predict the idea of a valid session through statistical analysis techniques.
964
+
965
+ 242
966
+ 00:23:31,000 --> 00:23:39,000
967
+ For this purpose, a good cryptographically secure pseudo random number generator must be used as a
968
+
969
+ 243
970
+ 00:23:39,000 --> 00:23:48,000
971
+ set of guidelines created not only for Java's software engineers, but also for other programmers too.
972
+
973
+ 244
974
+ 00:23:49,000 --> 00:23:56,000
975
+ I would say in case you create app on Java and you use some kind of web server, for example, you shouldn't
976
+
977
+ 245
978
+ 00:23:56,000 --> 00:24:04,000
979
+ be bothered about this too much because required mechanisms are already implemented inside Tomcat.
980
+
981
+ 246
982
+ 00:24:05,000 --> 00:24:09,000
983
+ Tomcat generates unique string for the session identifier.
984
+
985
+ 247
986
+ 00:24:10,000 --> 00:24:17,000
987
+ If you don't have such feature out of the on your web server, you should use cryptographically secure
988
+
989
+ 248
990
+ 00:24:17,000 --> 00:24:19,000
991
+ pseudo random number generator.
992
+
993
+ 249
994
+ 00:24:20,000 --> 00:24:27,000
995
+ The main thing is to not use predictable sequences for this session I use the session I value must provide
996
+
997
+ 250
998
+ 00:24:27,000 --> 00:24:30,000
999
+ at least 64 bits of entropy.
1000
+
1001
+ 251
1002
+ 00:24:31,000 --> 00:24:38,000
1003
+ If a good random number generator is used, this value is estimated to be housing length of the session.
1004
+
1005
+ 252
1006
+ 00:24:40,000 --> 00:24:42,000
1007
+ Additionally, our random session I use nothing else.
1008
+
1009
+ 253
1010
+ 00:24:43,000 --> 00:24:47,000
1011
+ It must also be somewhat duplicate that I use.
1012
+
1013
+ 254
1014
+ 00:24:48,000 --> 00:24:53,000
1015
+ A random session must not already exist in the current session i space.
1016
+
1017
+ 255
1018
+ 00:24:54,000 --> 00:24:58,000
1019
+ Following these rules will help you to secure your S.A.T..
1020
+
1021
+ 256
1022
+ 00:24:59,000 --> 00:25:01,000
1023
+ Now it is time to review.
1024
+
1025
+ 257
1026
+ 00:25:01,000 --> 00:25:09,000
1027
+ Examples of attacks of our supposed Lords is a sweet time to attack parties that exploit weak association
1028
+
1029
+ 258
1030
+ 00:25:10,000 --> 00:25:19,000
1031
+ their credentials, tough and brute force access session hijack lets you use these parties in scope
1032
+
1033
+ 259
1034
+ 00:25:19,000 --> 00:25:22,000
1035
+ of the particular scenarios one by one.
1036
+
1037
+ 260
1038
+ 00:25:23,000 --> 00:25:31,000
1039
+ Scenario number one for national stuff, the use of the use of known passwords is a common attack.
1040
+
1041
+ 261
1042
+ 00:25:31,000 --> 00:25:37,000
1043
+ Suppose an application doesn't implement automated threat or credential stops and protection.
1044
+
1045
+ 262
1046
+ 00:25:38,000 --> 00:25:46,000
1047
+ In that case, the application can be used as a password oracle to demand user credentials invalid user
1048
+
1049
+ 263
1050
+ 00:25:46,000 --> 00:25:47,000
1051
+ credentials stuff.
1052
+
1053
+ 264
1054
+ 00:25:47,000 --> 00:25:54,000
1055
+ An attacker can use automated tools to test a list of rather the usernames and passwords stolen from
1056
+
1057
+ 265
1058
+ 00:25:54,000 --> 00:25:58,000
1059
+ one company against the website of another company.
1060
+
1061
+ 266
1062
+ 00:25:59,000 --> 00:26:06,000
1063
+ Since users frequently use the same password on multiple accounts, attackers using this massive have
1064
+
1065
+ 267
1066
+ 00:26:06,000 --> 00:26:07,000
1067
+ chances to achieve a success.
1068
+
1069
+ 268
1070
+ 00:26:08,000 --> 00:26:16,000
1071
+ Scenario number two most authentication tech secure due to the continued use of passwords as a sole
1072
+
1073
+ 269
1074
+ 00:26:16,000 --> 00:26:17,000
1075
+ factor.
1076
+
1077
+ 270
1078
+ 00:26:18,000 --> 00:26:24,000
1079
+ Once considered best practices, passwords, limitation and complexity requirements encourage users
1080
+
1081
+ 271
1082
+ 00:26:24,000 --> 00:26:27,000
1083
+ to use and reuse weak passwords.
1084
+
1085
+ 272
1086
+ 00:26:28,000 --> 00:26:38,000
1087
+ Organisations are recommended to stop these processes per NIST 863 and use multi-factor authentication.
1088
+
1089
+ 273
1090
+ 00:26:39,000 --> 00:26:42,000
1091
+ Multi-factor authentication should prevent brute force.
1092
+
1093
+ 274
1094
+ 00:26:43,000 --> 00:26:49,000
1095
+ As we discussed, brute force and passwords is technically the process of trying every different password
1096
+
1097
+ 275
1098
+ 00:26:49,000 --> 00:26:51,000
1099
+ possible to use.
1100
+
1101
+ 276
1102
+ 00:26:51,000 --> 00:26:52,000
1103
+ The correct one is found.
1104
+
1105
+ 277
1106
+ 00:26:53,000 --> 00:26:56,000
1107
+ In practice, this isn't necessary.
1108
+
1109
+ 278
1110
+ 00:26:56,000 --> 00:27:03,000
1111
+ Attackers will use a list of the most common passwords, such as parcels and one, two, three, four,
1112
+
1113
+ 279
1114
+ 00:27:03,000 --> 00:27:05,000
1115
+ five, six, seven, eight, nine.
1116
+
1117
+ 280
1118
+ 00:27:05,000 --> 00:27:08,000
1119
+ And try each one in turn again.
1120
+
1121
+ 281
1122
+ 00:27:08,000 --> 00:27:09,000
1123
+ Use an automated scripts.
1124
+
1125
+ 282
1126
+ 00:27:10,000 --> 00:27:14,000
1127
+ Was users now having to manage so many different passwords?
1128
+
1129
+ 283
1130
+ 00:27:15,000 --> 00:27:23,000
1131
+ The tendency for people to use simple ones and to use the same password across multiple accounts.
1132
+
1133
+ 284
1134
+ 00:27:23,000 --> 00:27:28,000
1135
+ Brute force is consequently a simple and also effective attack.
1136
+
1137
+ 285
1138
+ 00:27:30,000 --> 00:27:35,000
1139
+ Scenario number three, application session timeouts are not set correctly.
1140
+
1141
+ 286
1142
+ 00:27:36,000 --> 00:27:41,000
1143
+ Imagine a case that is a hotel or at the airport.
1144
+
1145
+ 287
1146
+ 00:27:41,000 --> 00:27:45,000
1147
+ A user uses a public computer to access an application.
1148
+
1149
+ 288
1150
+ 00:27:46,000 --> 00:27:54,000
1151
+ Instead of selecting a logout, the user simply closes the browser tab and walks away and uses the same
1152
+
1153
+ 289
1154
+ 00:27:54,000 --> 00:27:59,000
1155
+ browser an hour later, and the user is to authenticate.
1156
+
1157
+ 290
1158
+ 00:28:00,000 --> 00:28:06,000
1159
+ Session hijacking is the exploitation of a legitimate user's authenticated session.
1160
+
1161
+ 291
1162
+ 00:28:07,000 --> 00:28:15,000
1163
+ Once login is achieved, the host system will typically assign the session as a user so that it is necessary
1164
+
1165
+ 292
1166
+ 00:28:15,000 --> 00:28:17,000
1167
+ to log in for each new page.
1168
+
1169
+ 293
1170
+ 00:28:17,000 --> 00:28:25,000
1171
+ Within this session, there is usually a value as a displaced cookie on the user's computer.
1172
+
1173
+ 294
1174
+ 00:28:26,000 --> 00:28:30,000
1175
+ In theory, it is removed when the user logs out from the session.
1176
+
1177
+ 295
1178
+ 00:28:30,000 --> 00:28:37,000
1179
+ If an attacker can, other things, especially in any possible way, is a cross-site scripting.
1180
+
1181
+ 296
1182
+ 00:28:37,000 --> 00:28:45,000
1183
+ By sniffing traffic while using laptop of the user, he or she is able to hijack a legitimate user's
1184
+
1185
+ 297
1186
+ 00:28:45,000 --> 00:28:45,000
1187
+ session.
1188
+
1189
+ 298
1190
+ 00:28:46,000 --> 00:28:55,000
1191
+ Since that user is already authenticated that Tucker is able to perform any action allowed to that user.
1192
+
1193
+ 299
1194
+ 00:28:55,000 --> 00:29:02,000
1195
+ The most common session hijack attacks, I'm guessing all predicted, is a session talking snake on
1196
+
1197
+ 300
1198
+ 00:29:02,000 --> 00:29:11,000
1199
+ the talking plan side attacks like peaks, SS malicious JavaScript codes, Trojans, etc..
1200
+
1201
+ 301
1202
+ 00:29:12,000 --> 00:29:16,000
1203
+ Men's and naval attacks and manuals of browser attacks.
1204
+
1205
+ 302
1206
+ 00:29:17,000 --> 00:29:25,000
1207
+ We have learned a lot about identification and authentication failures, review of that samples and
1208
+
1209
+ 303
1210
+ 00:29:25,000 --> 00:29:31,000
1211
+ now we are ready to summarize recommendations and rules to follow to decrease the risk of vulnerabilities
1212
+
1213
+ 304
1214
+ 00:29:31,000 --> 00:29:33,000
1215
+ from this risk category.
1216
+
1217
+ 305
1218
+ 00:29:34,000 --> 00:29:38,000
1219
+ Luckily, most of the mitigation techniques are simple and straightforward.
1220
+
1221
+ 306
1222
+ 00:29:39,000 --> 00:29:42,000
1223
+ If you use these techniques, zero waste decreases.
1224
+
1225
+ 307
1226
+ 00:29:43,000 --> 00:29:49,000
1227
+ Most of those techniques are framework agnostic and can apply to all frameworks equally.
1228
+
1229
+ 308
1230
+ 00:29:50,000 --> 00:29:53,000
1231
+ Let's review user recommendations one by one.
1232
+
1233
+ 309
1234
+ 00:29:54,000 --> 00:29:58,000
1235
+ Implement multi-factor authentication wherever possible.
1236
+
1237
+ 310
1238
+ 00:29:58,000 --> 00:30:06,000
1239
+ MFA supposed to prevent automated credential stuffing, brute force and stolen credential reuse attacks.
1240
+
1241
+ 311
1242
+ 00:30:07,000 --> 00:30:13,000
1243
+ They're not sheep or the wall was any different credentials, especially for adding users.
1244
+
1245
+ 312
1246
+ 00:30:15,000 --> 00:30:19,000
1247
+ Enforce the policy to prevent users from setting the business.
1248
+
1249
+ 313
1250
+ 00:30:20,000 --> 00:30:28,000
1251
+ Implement password checks such as testing new or changed passwords against the top 10,000 versus password
1252
+
1253
+ 314
1254
+ 00:30:28,000 --> 00:30:29,000
1255
+ release.
1256
+
1257
+ 315
1258
+ 00:30:30,000 --> 00:30:38,000
1259
+ This should eliminate cases when users are able to set keyboard sequences as passwords like 30.
1260
+
1261
+ 316
1262
+ 00:30:38,000 --> 00:30:40,000
1263
+ One, two, three, four, five six.
1264
+
1265
+ 317
1266
+ 00:30:41,000 --> 00:30:49,000
1267
+ Introduce a password for a patient policy change that passwords and every specific amount of weeks or
1268
+
1269
+ 318
1270
+ 00:30:49,000 --> 00:30:50,000
1271
+ each three months.
1272
+
1273
+ 319
1274
+ 00:30:50,000 --> 00:30:53,000
1275
+ For example, you can implement logic.
1276
+
1277
+ 320
1278
+ 00:30:53,000 --> 00:31:00,000
1279
+ One user receives notification about his password being expired and that he or she needs to change the
1280
+
1281
+ 321
1282
+ 00:31:00,000 --> 00:31:04,000
1283
+ password in case password is expired.
1284
+
1285
+ 322
1286
+ 00:31:04,000 --> 00:31:08,000
1287
+ User only can go through a set of password flow.
1288
+
1289
+ 323
1290
+ 00:31:09,000 --> 00:31:16,000
1291
+ Limit or increase delays between failed attempts, basically zero different ways.
1292
+
1293
+ 324
1294
+ 00:31:16,000 --> 00:31:17,000
1295
+ How to implement this.
1296
+
1297
+ 325
1298
+ 00:31:17,000 --> 00:31:21,000
1299
+ I will let you think about the implementation and implement it.
1300
+
1301
+ 326
1302
+ 00:31:22,000 --> 00:31:24,000
1303
+ This will be one of your whole tasks.
1304
+
1305
+ 327
1306
+ 00:31:25,000 --> 00:31:29,000
1307
+ I will share the details about the whole tasks as a separate lesson.
1308
+
1309
+ 328
1310
+ 00:31:30,000 --> 00:31:34,000
1311
+ Implement notifications when attack is detected.
1312
+
1313
+ 329
1314
+ 00:31:35,000 --> 00:31:43,000
1315
+ Local sailors and alert administrators from Congressional staff and force OSR attacks the Texas.
1316
+
1317
+ 330
1318
+ 00:31:44,000 --> 00:31:49,000
1319
+ Limit the session duration and invalidate the session after logout.
1320
+
1321
+ 331
1322
+ 00:31:50,000 --> 00:31:52,000
1323
+ Store session and security.
1324
+
1325
+ 332
1326
+ 00:31:53,000 --> 00:31:55,000
1327
+ This means a number of things at a time.
1328
+
1329
+ 333
1330
+ 00:31:56,000 --> 00:31:59,000
1331
+ Namely, the not cost session is the euro.
1332
+
1333
+ 334
1334
+ 00:32:00,000 --> 00:32:04,000
1335
+ Also, we learned today what is session entropy.
1336
+
1337
+ 335
1338
+ 00:32:05,000 --> 00:32:11,000
1339
+ So ensure that the entropy source is quite good and also it is important.
1340
+
1341
+ 336
1342
+ 00:32:11,000 --> 00:32:14,000
1343
+ Course something fun with the session time when a user is logged out.
1344
+
1345
+ 337
1346
+ 00:32:15,000 --> 00:32:21,000
1347
+ These measures would take you a long way and help avoid such mistakes.
1348
+
1349
+ 338
1350
+ 00:32:21,000 --> 00:32:28,000
1351
+ Confirmation of the user's identity authentication and session management is critical to protect against
1352
+
1353
+ 339
1354
+ 00:32:28,000 --> 00:32:30,000
1355
+ syndication related attacks.
1356
+
1357
+ 340
1358
+ 00:32:31,000 --> 00:32:32,000
1359
+ That's all.
1360
+
1361
+ 341
1362
+ 00:32:32,000 --> 00:32:34,000
1363
+ What I wanted to share with you today is a lesson.
1364
+
1365
+ 342
1366
+ 00:32:35,000 --> 00:32:37,000
1367
+ Let's recap what we have.
1368
+
1369
+ 343
1370
+ 00:32:38,000 --> 00:32:39,000
1371
+ In this lesson.
1372
+
1373
+ 344
1374
+ 00:32:39,000 --> 00:32:48,000
1375
+ The current identification and authentication failure risk category from a WASP Top ten we learned about
1376
+
1377
+ 345
1378
+ 00:32:48,000 --> 00:32:50,000
1379
+ common vehicle enumerations.
1380
+
1381
+ 346
1382
+ 00:32:50,000 --> 00:32:57,000
1383
+ We compared of top ten 2017 versus of up ten 2021.
1384
+
1385
+ 347
1386
+ 00:32:57,000 --> 00:33:06,000
1387
+ I explained to you how to cross exclude broken authentication when you have such things as session fixation
1388
+
1389
+ 348
1390
+ 00:33:06,000 --> 00:33:08,000
1391
+ plus size request forgery.
1392
+
1393
+ 349
1394
+ 00:33:09,000 --> 00:33:14,000
1395
+ We have different factors that can increase probability of attacks.
1396
+
1397
+ 350
1398
+ 00:33:15,000 --> 00:33:18,000
1399
+ WILLIAMS Multifactor authentication.
1400
+
1401
+ 351
1402
+ 00:33:18,000 --> 00:33:25,000
1403
+ Also, I explained to you what session I.D. entropy is and how we can secure our session ID.
1404
+
1405
+ 352
1406
+ 00:33:25,000 --> 00:33:29,000
1407
+ I explained different examples of attacks.
1408
+
1409
+ 353
1410
+ 00:33:30,000 --> 00:33:36,000
1411
+ Now you know what credentials Statham brute force and session hijacking are.
1412
+
1413
+ 354
1414
+ 00:33:36,000 --> 00:33:38,000
1415
+ And that's the end of the lesson.
1416
+
1417
+ 355
1418
+ 00:33:38,000 --> 00:33:45,000
1419
+ We learned how to prevent our abilities associated with ID and authentication failures.
1420
+
1421
+ 356
1422
+ 00:33:46,000 --> 00:33:48,000
1423
+ Thank you all for your attention.
1424
+
1425
+ 357
1426
+ 00:33:48,000 --> 00:33:50,000
1427
+ Have a great day and see you.
1428
+
1429
+ 358
1430
+ 00:33:50,000 --> 00:33:51,000
1431
+ Next lesson.
1432
+
73 - OWASP Top 10 2021/015 Software & Data Integrity Failures_en.srt ADDED
@@ -0,0 +1,740 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello, you.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:12,000
7
+ In this lesson, we're going to talk about software and data integrity failures, risk category from
8
+
9
+ 3
10
+ 00:00:12,000 --> 00:00:13,000
11
+ a loss stop.
12
+
13
+ 4
14
+ 00:00:13,000 --> 00:00:20,000
15
+ That will start from the general overview of this risk category, I'm going to explain potential impacts
16
+
17
+ 5
18
+ 00:00:21,000 --> 00:00:23,000
19
+ that can be caused by vulnerabilities.
20
+
21
+ 6
22
+ 00:00:23,000 --> 00:00:29,000
23
+ From this risk category, we'll reviews the most notable common weakness enumerations.
24
+
25
+ 7
26
+ 00:00:30,000 --> 00:00:36,000
27
+ As always, we're going to compare of us top ten 2017 versus 2021.
28
+
29
+ 8
30
+ 00:00:37,000 --> 00:00:44,000
31
+ After that, we're going to review examples of attacks and as in the of lesson will talk about how to
32
+
33
+ 9
34
+ 00:00:44,000 --> 00:00:49,000
35
+ prevent vulnerabilities related to software and data integrity failures.
36
+
37
+ 10
38
+ 00:00:50,000 --> 00:00:51,000
39
+ Let's start our lesson.
40
+
41
+ 11
42
+ 00:00:52,000 --> 00:00:56,000
43
+ Let's start from a high level overview of this risk category.
44
+
45
+ 12
46
+ 00:00:56,000 --> 00:01:04,000
47
+ Nowadays relief in times of agile roles, fast delivery error of startups and technology breakthrough.
48
+
49
+ 13
50
+ 00:01:05,000 --> 00:01:13,000
51
+ It is highly competitive market in many teams, and this rash leads sometimes to negative consequences.
52
+
53
+ 14
54
+ 00:01:13,000 --> 00:01:15,000
55
+ You're in the software development.
56
+
57
+ 15
58
+ 00:01:15,000 --> 00:01:21,000
59
+ Modern software culture encourages rapid loses and short cycles.
60
+
61
+ 16
62
+ 00:01:22,000 --> 00:01:31,000
63
+ DevOps teams and security teams have less time to check the quality of you code and identify cryptographic
64
+
65
+ 17
66
+ 00:01:31,000 --> 00:01:38,000
67
+ failures, vulnerable and outdated components or identification and syndication failures built into
68
+
69
+ 18
70
+ 00:01:38,000 --> 00:01:39,000
71
+ the software.
72
+
73
+ 19
74
+ 00:01:39,000 --> 00:01:48,000
75
+ While security professionals always should shift that, it's apparent that there are development teams
76
+
77
+ 20
78
+ 00:01:48,000 --> 00:01:55,000
79
+ out there that do not have sufficient integrity verification processes that allows them to analyze,
80
+
81
+ 21
82
+ 00:01:55,000 --> 00:02:00,000
83
+ work and protect users against malicious code.
84
+
85
+ 22
86
+ 00:02:00,000 --> 00:02:04,000
87
+ All this leads to software and data integrity failures.
88
+
89
+ 23
90
+ 00:02:05,000 --> 00:02:06,000
91
+ In few worlds.
92
+
93
+ 24
94
+ 00:02:06,000 --> 00:02:16,000
95
+ This category is about the assumptions linked with critical CI pipeline data handling and software integrity
96
+
97
+ 25
98
+ 00:02:16,000 --> 00:02:17,000
99
+ failures.
100
+
101
+ 26
102
+ 00:02:17,000 --> 00:02:25,000
103
+ Let's now discuss what potential impact can be caused by software and data integrity failures and recap
104
+
105
+ 27
106
+ 00:02:25,000 --> 00:02:33,000
107
+ one more time how they may cure the complexity of architectures in more than data release cycles.
108
+
109
+ 28
110
+ 00:02:33,000 --> 00:02:41,000
111
+ Often forces developers to use plugins, modules and libraries from public repositories, untrusted
112
+
113
+ 29
114
+ 00:02:41,000 --> 00:02:44,000
115
+ sources and content delivery networks.
116
+
117
+ 30
118
+ 00:02:45,000 --> 00:02:53,000
119
+ Due to such complexities, software and data integrity failures categorized as design flaws accuracy.
120
+
121
+ 31
122
+ 00:02:53,000 --> 00:03:00,000
123
+ When critical data and software updates are added to the delivery pipeline without work finds integrity
124
+
125
+ 32
126
+ 00:03:00,000 --> 00:03:08,000
127
+ in the absence of adequate validation, software and data integrity failures make applications susceptible
128
+
129
+ 33
130
+ 00:03:08,000 --> 00:03:15,000
131
+ to unauthorized information, disclosure, system, compromise or insertion of malicious code.
132
+
133
+ 34
134
+ 00:03:16,000 --> 00:03:24,000
135
+ Modern software delivery pipelines include auto update functionality streamlines the life cycles by
136
+
137
+ 35
138
+ 00:03:24,000 --> 00:03:28,000
139
+ downloading updates and applying them without inherent permissions.
140
+
141
+ 36
142
+ 00:03:29,000 --> 00:03:36,000
143
+ Threat actors can exploit such functionalities, but performance and imminent attack to inject malicious
144
+
145
+ 37
146
+ 00:03:36,000 --> 00:03:39,000
147
+ code into the pipeline to update causes.
148
+
149
+ 38
150
+ 00:03:40,000 --> 00:03:47,000
151
+ This results in corrupted payloads being deployed and executed outright on application installations.
152
+
153
+ 39
154
+ 00:03:48,000 --> 00:03:52,000
155
+ As always, let's review notable common vehicles enumerations.
156
+
157
+ 40
158
+ 00:03:53,000 --> 00:03:55,000
159
+ Let's use them one by one.
160
+
161
+ 41
162
+ 00:03:56,000 --> 00:04:05,000
163
+ we4 hundred 94 download of Code Without Integrity Chat and that topic can execute malicious code by
164
+
165
+ 42
166
+ 00:04:05,000 --> 00:04:13,000
167
+ compromising the host server, performing DNS spoofing or modifying zip code in transit.
168
+
169
+ 43
170
+ 00:04:13,000 --> 00:04:21,000
171
+ Attacks or accidental corruption can introduce invalid files into Conti's repository and verifying file
172
+
173
+ 44
174
+ 00:04:21,000 --> 00:04:23,000
175
+ integrity can identify them.
176
+
177
+ 45
178
+ 00:04:24,000 --> 00:04:33,000
179
+ In this process, the security teams can pat files digital signature or hashed content with no values.
180
+
181
+ 46
182
+ 00:04:33,000 --> 00:04:37,000
183
+ Be sure the files are not altered or corrupted.
184
+
185
+ 47
186
+ 00:04:37,000 --> 00:04:46,000
187
+ Some manual processes and automated checks, some validation might not detect changes in a file so corruption
188
+
189
+ 48
190
+ 00:04:46,000 --> 00:04:50,000
191
+ can be used as surface content.
192
+
193
+ 49
194
+ 00:04:50,000 --> 00:04:57,000
195
+ Security teams can validate a digital signature or use a cryptographic checksum in which they run the
196
+
197
+ 50
198
+ 00:04:57,000 --> 00:05:02,000
199
+ hash algorithm against the file to verify file integrity.
200
+
201
+ 51
202
+ 00:05:02,000 --> 00:05:11,000
203
+ Validation enables teams to find any changes to the file itself, such as file the nation and its movements
204
+
205
+ 52
206
+ 00:05:11,000 --> 00:05:13,000
207
+ or unauthorized access.
208
+
209
+ 53
210
+ 00:05:14,000 --> 00:05:22,000
211
+ These changes can reveal a prior intrusion from start to finish or reveal a larger attack that is under
212
+
213
+ 54
214
+ 00:05:22,000 --> 00:05:25,000
215
+ way or that the team is investigating.
216
+
217
+ 55
218
+ 00:05:26,000 --> 00:05:29,000
219
+ See WP 502.
220
+
221
+ 56
222
+ 00:05:29,000 --> 00:05:34,000
223
+ This realisation of untrusted data cause your from zero.
224
+
225
+ 57
226
+ 00:05:34,000 --> 00:05:42,000
227
+ The first job in the section about input and output streams will rejoin Watson zation and this civilization
228
+
229
+ 58
230
+ 00:05:42,000 --> 00:05:44,000
231
+ is to learn more.
232
+
233
+ 59
234
+ 00:05:44,000 --> 00:05:47,000
235
+ Please refer to this section of the course.
236
+
237
+ 60
238
+ 00:05:48,000 --> 00:05:56,000
239
+ Ensure in Java, civilization is a process of converting an object into a stream of bytes to store the
240
+
241
+ 61
242
+ 00:05:56,000 --> 00:06:01,000
243
+ object or transmit it to memory and database or the file.
244
+
245
+ 62
246
+ 00:06:01,000 --> 00:06:04,000
247
+ Disorganization is a reverse process.
248
+
249
+ 63
250
+ 00:06:05,000 --> 00:06:10,000
251
+ But centralization is not what can be done only in Java and was three bytes.
252
+
253
+ 64
254
+ 00:06:11,000 --> 00:06:13,000
255
+ Serialization accuracy.
256
+
257
+ 65
258
+ 00:06:13,000 --> 00:06:21,000
259
+ When an application converts data structures and objects into a different form, such as binary or structured
260
+
261
+ 66
262
+ 00:06:21,000 --> 00:06:27,000
263
+ tax, x amount and JSON so that it is suitable for other purposes.
264
+
265
+ 67
266
+ 00:06:28,000 --> 00:06:34,000
267
+ Neutralization is when an application reverts as a serialized output into its original form.
268
+
269
+ 68
270
+ 00:06:35,000 --> 00:06:42,000
271
+ It is often convenient to serialize objects for communication or to see them for later use.
272
+
273
+ 69
274
+ 00:06:42,000 --> 00:06:51,000
275
+ However, these serialized data or code can often be modified without using the provided access of functions
276
+
277
+ 70
278
+ 00:06:52,000 --> 00:06:56,000
279
+ if it doesn't use cryptographic to protect itself.
280
+
281
+ 71
282
+ 00:06:57,000 --> 00:06:59,000
283
+ CW 849.
284
+
285
+ 72
286
+ 00:07:00,000 --> 00:07:08,000
287
+ Inclusion of functionality from untrusted control sphere when including such partisanship analogy such
288
+
289
+ 73
290
+ 00:07:08,000 --> 00:07:16,000
291
+ as map, widget, library or a source of functionality, this software must effectively trust that functionality
292
+
293
+ 74
294
+ 00:07:17,000 --> 00:07:20,000
295
+ without sufficient protection mechanisms.
296
+
297
+ 75
298
+ 00:07:20,000 --> 00:07:27,000
299
+ The functionality could be malicious in nature user by common someone untrusted source being spoofed
300
+
301
+ 76
302
+ 00:07:27,000 --> 00:07:31,000
303
+ or being modified in transit from a trusted source.
304
+
305
+ 77
306
+ 00:07:31,000 --> 00:07:39,000
307
+ The functionality might also contain its own weakness or grant access to additional functionality and
308
+
309
+ 78
310
+ 00:07:39,000 --> 00:07:42,000
311
+ state information that should be kept private.
312
+
313
+ 79
314
+ 00:07:42,000 --> 00:07:51,000
315
+ Based system such as system state information, sensitive application data, or the DOM of that application.
316
+
317
+ 80
318
+ 00:07:52,000 --> 00:07:59,000
319
+ This might lead to many different consequences dependent on the included functionality, but some examples
320
+
321
+ 81
322
+ 00:07:59,000 --> 00:08:07,000
323
+ include injection of malware information exposure by granting excessive privileges or permissions to
324
+
325
+ 82
326
+ 00:08:07,000 --> 00:08:11,000
327
+ trust, which are now done based accessible.
328
+
329
+ 83
330
+ 00:08:11,000 --> 00:08:16,000
331
+ In our view, it is still users who use or open redirect to malware.
332
+
333
+ 84
334
+ 00:08:17,000 --> 00:08:24,000
335
+ Now let's compare Avast Top ten 2017 versus Avast the top ten 2021.
336
+
337
+ 85
338
+ 00:08:25,000 --> 00:08:30,000
339
+ This is a new category that was absent in Avast Top ten 2017.
340
+
341
+ 86
342
+ 00:08:30,000 --> 00:08:35,000
343
+ This category also includes a category from across the top ten 2017.
344
+
345
+ 87
346
+ 00:08:36,000 --> 00:08:38,000
347
+ I'm talking about insecure.
348
+
349
+ 88
350
+ 00:08:38,000 --> 00:08:46,000
351
+ Decentralization is a vulnerability here is that a serialized object can be manipulated if malicious
352
+
353
+ 89
354
+ 00:08:46,000 --> 00:08:47,000
355
+ code or data was.
356
+
357
+ 90
358
+ 00:08:48,000 --> 00:08:50,000
359
+ We use it as a serialized data.
360
+
361
+ 91
362
+ 00:08:51,000 --> 00:08:56,000
363
+ It was later executed during the disorganization with the rights of the application.
364
+
365
+ 92
366
+ 00:08:56,000 --> 00:09:04,000
367
+ This can happen if the integrity check for this data and objects is not harder against attacks.
368
+
369
+ 93
370
+ 00:09:05,000 --> 00:09:13,000
371
+ Software and data integrity failures related to code and infrastructure doesn't protect against integrity
372
+
373
+ 94
374
+ 00:09:13,000 --> 00:09:14,000
375
+ violations.
376
+
377
+ 95
378
+ 00:09:14,000 --> 00:09:22,000
379
+ An example of this is that an application relies upon plugins, libraries or modules from untrusted
380
+
381
+ 96
382
+ 00:09:22,000 --> 00:09:26,000
383
+ sources, repositories and quantum networks.
384
+
385
+ 97
386
+ 00:09:26,000 --> 00:09:36,000
387
+ CDs and insecure ICG pipelines can introduce a potential for unauthorized access, malicious code or
388
+
389
+ 98
390
+ 00:09:36,000 --> 00:09:38,000
391
+ system compromise.
392
+
393
+ 99
394
+ 00:09:39,000 --> 00:09:47,000
395
+ Nowadays, many applications include automatic functionality that updates are downloaded without sufficient
396
+
397
+ 100
398
+ 00:09:47,000 --> 00:09:52,000
399
+ integrity, verification and applied across a trusted application.
400
+
401
+ 101
402
+ 00:09:52,000 --> 00:09:59,000
403
+ Attackers potentially uploads these to be distributed and run on all installations.
404
+
405
+ 102
406
+ 00:10:00,000 --> 00:10:04,000
407
+ Let's review one of the most popular examples from real life.
408
+
409
+ 103
410
+ 00:10:05,000 --> 00:10:10,000
411
+ It is always better to use experience of others rather than past.
412
+
413
+ 104
414
+ 00:10:10,000 --> 00:10:12,000
415
+ Was a painful experience by yourself.
416
+
417
+ 105
418
+ 00:10:13,000 --> 00:10:20,000
419
+ The most famous example of a failure in software and data integrity checks is the SolarWinds Aurion
420
+
421
+ 106
422
+ 00:10:20,000 --> 00:10:29,000
423
+ attack, with the now infamous attack centring around compromised update mechanisms after hacking into
424
+
425
+ 107
426
+ 00:10:29,000 --> 00:10:35,000
427
+ the SolarWinds backend passwords frame or some other form of brute force attack.
428
+
429
+ 108
430
+ 00:10:36,000 --> 00:10:43,000
431
+ The suspected nation state attackers said that the malicious code is the SolarWinds SII pipeline.
432
+
433
+ 109
434
+ 00:10:44,000 --> 00:10:51,000
435
+ Some of the components were introduced into the SolarWinds update pipeline and signed off as a service
436
+
437
+ 110
438
+ 00:10:51,000 --> 00:10:56,000
439
+ approved software update with legitimate digital signatures.
440
+
441
+ 111
442
+ 00:10:56,000 --> 00:11:04,000
443
+ This compromise, the software supply chain, meant that the update was legitimate as far as SolarWinds
444
+
445
+ 112
446
+ 00:11:05,000 --> 00:11:07,000
447
+ customers were concerned.
448
+
449
+ 113
450
+ 00:11:08,000 --> 00:11:15,000
451
+ Of course, this is only one example of monitoring failures that have left the system compromised and
452
+
453
+ 114
454
+ 00:11:15,000 --> 00:11:18,000
455
+ critical data being exposed to it internet.
456
+
457
+ 115
458
+ 00:11:18,000 --> 00:11:23,000
459
+ But so we have better processes for monitoring its own updates.
460
+
461
+ 116
462
+ 00:11:24,000 --> 00:11:26,000
463
+ This would not have happened.
464
+
465
+ 117
466
+ 00:11:27,000 --> 00:11:34,000
467
+ The SolarWinds or an attack in which highly targeted, malicious updates were distributed to more than
468
+
469
+ 118
470
+ 00:11:34,000 --> 00:11:40,000
471
+ 80,000 organizations is one of the most significant breaches of this nature.
472
+
473
+ 119
474
+ 00:11:41,000 --> 00:11:45,000
475
+ Now let's review all the potential attacks and errors.
476
+
477
+ 120
478
+ 00:11:46,000 --> 00:11:56,000
479
+ Scenario number one, we'll talk today about potential impact made by all of the adverse highlights
480
+
481
+ 121
482
+ 00:11:56,000 --> 00:12:05,000
483
+ potential visited by update without signing many home routers, set top boxes, device firmware and
484
+
485
+ 122
486
+ 00:12:05,000 --> 00:12:07,000
487
+ orders do not verify updates.
488
+
489
+ 123
490
+ 00:12:07,000 --> 00:12:09,000
491
+ We are signed firmware.
492
+
493
+ 124
494
+ 00:12:10,000 --> 00:12:16,000
495
+ Unassigned firmware is a growing target for attackers and is expected to only get worse.
496
+
497
+ 125
498
+ 00:12:17,000 --> 00:12:18,000
499
+ This is a major concern.
500
+
501
+ 126
502
+ 00:12:18,000 --> 00:12:26,000
503
+ As many times there is no mechanism to remedy other than to fix in the future version and wait for previous
504
+
505
+ 127
506
+ 00:12:26,000 --> 00:12:27,000
507
+ versions to age out.
508
+
509
+ 128
510
+ 00:12:28,000 --> 00:12:30,000
511
+ Samarra number two.
512
+
513
+ 129
514
+ 00:12:31,000 --> 00:12:37,000
515
+ We also talked about insecurity zation one of the reviewed common vehicles enumerations.
516
+
517
+ 130
518
+ 00:12:38,000 --> 00:12:43,000
519
+ Let me share with you one more example related to insecure dissociation.
520
+
521
+ 131
522
+ 00:12:44,000 --> 00:12:51,000
523
+ Iraq application cause a set of microservices being functional programmers.
524
+
525
+ 132
526
+ 00:12:51,000 --> 00:12:55,000
527
+ Developers strive to ensure that their code is immutable.
528
+
529
+ 133
530
+ 00:12:56,000 --> 00:13:03,000
531
+ The solution they came up with is to license a user state and the person that back and forth with each
532
+
533
+ 134
534
+ 00:13:03,000 --> 00:13:04,000
535
+ request.
536
+
537
+ 135
538
+ 00:13:04,000 --> 00:13:07,000
539
+ An attacker notices a Java object signature.
540
+
541
+ 136
542
+ 00:13:08,000 --> 00:13:16,000
543
+ They understood that serialization is used and the content used is a jealous zero killer tool to gain
544
+
545
+ 137
546
+ 00:13:16,000 --> 00:13:19,000
547
+ remote code execution on the application server.
548
+
549
+ 138
550
+ 00:13:20,000 --> 00:13:28,000
551
+ Scenario number three is a full blown Samarra, an attack that exploits an insecure CIC pipeline and
552
+
553
+ 139
554
+ 00:13:28,000 --> 00:13:34,000
555
+ installs malicious code to be distributed through the view and deployed process.
556
+
557
+ 140
558
+ 00:13:34,000 --> 00:13:42,000
559
+ The attacker identifies an organization's insecure CIC pipeline and installs malicious code that is
560
+
561
+ 141
562
+ 00:13:42,000 --> 00:13:44,000
563
+ pushed into production.
564
+
565
+ 142
566
+ 00:13:45,000 --> 00:13:51,000
567
+ Customers unknowingly download the malicious quotes from the organization's update servers.
568
+
569
+ 143
570
+ 00:13:51,000 --> 00:13:55,000
571
+ The malicious update is installed easy customers environment.
572
+
573
+ 144
574
+ 00:13:56,000 --> 00:14:01,000
575
+ The attacker uses the malicious code to gain access to the customer's network.
576
+
577
+ 145
578
+ 00:14:02,000 --> 00:14:09,000
579
+ That's now come to conclusion and understand how we can prevent software and data integrity failures.
580
+
581
+ 146
582
+ 00:14:09,000 --> 00:14:13,000
583
+ The number of things that we can do to prevent abilities.
584
+
585
+ 147
586
+ 00:14:14,000 --> 00:14:22,000
587
+ Use digital signatures or similar mechanisms to verify the software or data is from a suspected source
588
+
589
+ 148
590
+ 00:14:22,000 --> 00:14:24,000
591
+ and has not been altered.
592
+
593
+ 149
594
+ 00:14:24,000 --> 00:14:27,000
595
+ A digital signature is an electronics.
596
+
597
+ 150
598
+ 00:14:28,000 --> 00:14:28,000
599
+ It is.
600
+
601
+ 151
602
+ 00:14:28,000 --> 00:14:37,000
603
+ The event defines a region of the digital message or file z signatures from use public key infrastructure
604
+
605
+ 152
606
+ 00:14:37,000 --> 00:14:43,000
607
+ partners to ensure data exchanged between parties stays private.
608
+
609
+ 153
610
+ 00:14:44,000 --> 00:14:53,000
611
+ All teams should adopt digital signage solutions that automate the code signing encryption and authentication
612
+
613
+ 154
614
+ 00:14:53,000 --> 00:14:55,000
615
+ across ICD pipelines.
616
+
617
+ 155
618
+ 00:14:56,000 --> 00:15:01,000
619
+ Ensure libraries and dependencies such as NPM or maven.
620
+
621
+ 156
622
+ 00:15:01,000 --> 00:15:03,000
623
+ Consume trusted repositories.
624
+
625
+ 157
626
+ 00:15:04,000 --> 00:15:09,000
627
+ Verify that components do not contain known vulnerabilities.
628
+
629
+ 158
630
+ 00:15:09,000 --> 00:15:15,000
631
+ Use such things as a trusted dependency check like we reviewed in our previous last.
632
+
633
+ 159
634
+ 00:15:16,000 --> 00:15:24,000
635
+ Ensure that Zoey's interview crosses protocols and configuration changes to minimize the chance of malicious
636
+
637
+ 160
638
+ 00:15:24,000 --> 00:15:29,000
639
+ code or configuration could be introduced into your software pipeline.
640
+
641
+ 161
642
+ 00:15:30,000 --> 00:15:33,000
643
+ Ensures its UCI city pipeline.
644
+
645
+ 162
646
+ 00:15:33,000 --> 00:15:41,000
647
+ This proper segregation configuration and access control in choosing legacy Xcode loans to build and
648
+
649
+ 163
650
+ 00:15:41,000 --> 00:15:42,000
651
+ deploy processes.
652
+
653
+ 164
654
+ 00:15:43,000 --> 00:15:52,000
655
+ Ensure that unsigned or unencrypted serialized data is not sent to untrusted clients without some form
656
+
657
+ 165
658
+ 00:15:52,000 --> 00:15:53,000
659
+ of integrity.
660
+
661
+ 166
662
+ 00:15:53,000 --> 00:15:57,000
663
+ Check for digital signature to detect tampering.
664
+
665
+ 167
666
+ 00:15:57,000 --> 00:15:59,000
667
+ Autoplay of the Serialized Data.
668
+
669
+ 168
670
+ 00:16:00,000 --> 00:16:08,000
671
+ Even though this ability is capable of causing damage beyond once imagination, measures like continual
672
+
673
+ 169
674
+ 00:16:08,000 --> 00:16:15,000
675
+ one time adoption of authentication verification practices can bring great relief.
676
+
677
+ 170
678
+ 00:16:16,000 --> 00:16:23,000
679
+ In the event an application server then loads the source code and executes without validating the zip
680
+
681
+ 171
682
+ 00:16:23,000 --> 00:16:25,000
683
+ code for its integrity and the region.
684
+
685
+ 172
686
+ 00:16:26,000 --> 00:16:32,000
687
+ Caucus can receives the application to download the malicious code from untrusted sites.
688
+
689
+ 173
690
+ 00:16:32,000 --> 00:16:40,000
691
+ Such attacks can also the execution of malicious commands, resulting in steal and sensitive information
692
+
693
+ 174
694
+ 00:16:41,000 --> 00:16:43,000
695
+ or compromising backend servers.
696
+
697
+ 175
698
+ 00:16:44,000 --> 00:16:47,000
699
+ That's all what I wanted to cover with you in this lesson.
700
+
701
+ 176
702
+ 00:16:48,000 --> 00:16:51,000
703
+ Let's recap what we learned today.
704
+
705
+ 177
706
+ 00:16:51,000 --> 00:16:55,000
707
+ Then we learned what software and integrity failures are.
708
+
709
+ 178
710
+ 00:16:56,000 --> 00:17:03,000
711
+ We learned potential impact that may be caused by vulnerabilities associated with this risk category.
712
+
713
+ 179
714
+ 00:17:03,000 --> 00:17:06,000
715
+ Also, we have common weakness enumerations.
716
+
717
+ 180
718
+ 00:17:07,000 --> 00:17:12,000
719
+ As always, we compared avast the top ten, 2017 and 2021.
720
+
721
+ 181
722
+ 00:17:13,000 --> 00:17:18,000
723
+ We discussed different examples of attacks and examples in AC.
724
+
725
+ 182
726
+ 00:17:18,000 --> 00:17:23,000
727
+ We talked about how to prevent vulnerabilities from this category.
728
+
729
+ 183
730
+ 00:17:24,000 --> 00:17:25,000
731
+ That's it.
732
+
733
+ 184
734
+ 00:17:25,000 --> 00:17:27,000
735
+ Thank you for your attention.
736
+
737
+ 185
738
+ 00:17:27,000 --> 00:17:30,000
739
+ Have a great day and see in the next lesson.
740
+
73 - OWASP Top 10 2021/016 Computer-Security-Incident-Handling-Guide.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-61r2.pdf
73 - OWASP Top 10 2021/016 Security Logging & Monitoring Failures_en.srt ADDED
@@ -0,0 +1,1016 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello, tim.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:13,000
7
+ In this video we're going to run security volume and monitoring failures from avast that we're going
8
+
9
+ 3
10
+ 00:00:13,000 --> 00:00:17,000
11
+ to study nicely from understanding what logging and logs are.
12
+
13
+ 4
14
+ 00:00:18,000 --> 00:00:24,000
15
+ After that, I'm going to explain what security, logging and monitoring failures risk category is about.
16
+
17
+ 5
18
+ 00:00:25,000 --> 00:00:31,000
19
+ Will understand the potential impacts that can be caused by vulnerabilities that are associated with
20
+
21
+ 6
22
+ 00:00:31,000 --> 00:00:33,000
23
+ this risk category.
24
+
25
+ 7
26
+ 00:00:33,000 --> 00:00:40,000
27
+ I will review with the risk factors that should be eliminated, and we'll review the key challenges
28
+
29
+ 8
30
+ 00:00:40,000 --> 00:00:42,000
31
+ that you can face with on practice.
32
+
33
+ 9
34
+ 00:00:43,000 --> 00:00:49,000
35
+ Also in this lesson, I'm going to hold an overview of wealth management tools and libraries for logging
36
+
37
+ 10
38
+ 00:00:49,000 --> 00:00:50,000
39
+ in Java.
40
+
41
+ 11
42
+ 00:00:50,000 --> 00:00:57,000
43
+ As always, we'll talk about the most notable common weakness and limitations from this risk category
44
+
45
+ 12
46
+ 00:00:57,000 --> 00:01:03,000
47
+ will compare of up top ten 2017 versus last time.
48
+
49
+ 13
50
+ 00:01:03,000 --> 00:01:09,000
51
+ 2021 also will review attack examples and designs of the last.
52
+
53
+ 14
54
+ 00:01:09,000 --> 00:01:16,000
55
+ And we're going to know how to prevent negative consequences that may be caused by security, logging
56
+
57
+ 15
58
+ 00:01:16,000 --> 00:01:17,000
59
+ and monitoring failures.
60
+
61
+ 16
62
+ 00:01:18,000 --> 00:01:20,000
63
+ Let's start our lesson.
64
+
65
+ 17
66
+ 00:01:21,000 --> 00:01:26,000
67
+ The first questions that we have to address is the definition of log in and logs.
68
+
69
+ 18
70
+ 00:01:27,000 --> 00:01:27,000
71
+ In computing.
72
+
73
+ 19
74
+ 00:01:27,000 --> 00:01:35,000
75
+ A log file is a file that records user events to any operating system or application.
76
+
77
+ 20
78
+ 00:01:36,000 --> 00:01:40,000
79
+ Log in is an act of keeping the law in the simplest case.
80
+
81
+ 21
82
+ 00:01:41,000 --> 00:01:50,000
83
+ Messages Reason for a single file a log in the computing context is it automatically produced and timestamp
84
+
85
+ 22
86
+ 00:01:50,000 --> 00:01:56,000
87
+ documentation of events relevant to a particular system or application.
88
+
89
+ 23
90
+ 00:01:57,000 --> 00:02:01,000
91
+ Most of software applications and systems produce log files.
92
+
93
+ 24
94
+ 00:02:02,000 --> 00:02:10,000
95
+ These are also separate libraries for logging and applications that helps to gather, analyze and navigate
96
+
97
+ 25
98
+ 00:02:10,000 --> 00:02:10,000
99
+ the logs.
100
+
101
+ 26
102
+ 00:02:11,000 --> 00:02:15,000
103
+ They're called log management applications.
104
+
105
+ 27
106
+ 00:02:15,000 --> 00:02:18,000
107
+ There are really a lot of them for different languages.
108
+
109
+ 28
110
+ 00:02:19,000 --> 00:02:25,000
111
+ In this lesson we're going to review library some tools that are most popular while working with Java
112
+
113
+ 29
114
+ 00:02:25,000 --> 00:02:26,000
115
+ applications.
116
+
117
+ 30
118
+ 00:02:27,000 --> 00:02:34,000
119
+ Now when we have learned what logs are, let's proceed with a high level overview of this risk category.
120
+
121
+ 31
122
+ 00:02:35,000 --> 00:02:39,000
123
+ To help you understand what this category is about, let me ask you a question.
124
+
125
+ 32
126
+ 00:02:40,000 --> 00:02:47,000
127
+ Have you ever had a case when your app was not as expected or you have to investigate some incidents
128
+
129
+ 33
130
+ 00:02:47,000 --> 00:02:56,000
131
+ that happened and you can track since because of missing logs, logging and monitoring go hand in hand.
132
+
133
+ 34
134
+ 00:02:57,000 --> 00:03:03,000
135
+ There is little point in having adequate logs, is there not adequate monitoring?
136
+
137
+ 35
138
+ 00:03:03,000 --> 00:03:12,000
139
+ It is a problem of insufficient logging and monitoring covers type of structure and not just anything
140
+
141
+ 36
142
+ 00:03:12,000 --> 00:03:14,000
143
+ that's facing that application.
144
+
145
+ 37
146
+ 00:03:15,000 --> 00:03:23,000
147
+ Failure to sufficiently a law monitor or report security events such as logging items makes suspicious
148
+
149
+ 38
150
+ 00:03:23,000 --> 00:03:30,000
151
+ behavior difficult to detect and significantly raises the likelihood that an attacker can successfully
152
+
153
+ 39
154
+ 00:03:30,000 --> 00:03:32,000
155
+ exploit your application.
156
+
157
+ 40
158
+ 00:03:33,000 --> 00:03:40,000
159
+ For example, an attacker may probe your application or software components following the abilities
160
+
161
+ 41
162
+ 00:03:40,000 --> 00:03:44,000
163
+ of a permit, allowing such probes to continue.
164
+
165
+ 42
166
+ 00:03:44,000 --> 00:03:51,000
167
+ And the tactic increases the likelihood that that target ultimately finds it will be with you and successfully
168
+
169
+ 43
170
+ 00:03:51,000 --> 00:03:59,000
171
+ exploits a flaw in sufficient logging, monitoring or reporting makes your application susceptible to
172
+
173
+ 44
174
+ 00:03:59,000 --> 00:04:04,000
175
+ attacks that target any part of the application stack.
176
+
177
+ 45
178
+ 00:04:04,000 --> 00:04:10,000
179
+ Probably you can be wondering what impact can be caused by absent logging.
180
+
181
+ 46
182
+ 00:04:11,000 --> 00:04:18,000
183
+ And this is a great question because it is hard to understand how absence of logging may impact security
184
+
185
+ 47
186
+ 00:04:18,000 --> 00:04:26,000
187
+ of our application, while insufficient logging and monitoring is to observe to be a direct attack vector,
188
+
189
+ 48
190
+ 00:04:26,000 --> 00:04:31,000
191
+ it affects the detection and response to every single breach.
192
+
193
+ 49
194
+ 00:04:32,000 --> 00:04:40,000
195
+ If web application and server incidents are improperly monitored, suspicious activity can easily be
196
+
197
+ 50
198
+ 00:04:40,000 --> 00:04:40,000
199
+ missed.
200
+
201
+ 51
202
+ 00:04:41,000 --> 00:04:49,000
203
+ If security risks are not correct, the law or the logs are badly stored or hard to access, then these
204
+
205
+ 52
206
+ 00:04:49,000 --> 00:04:57,000
207
+ flaws will go unaddressed as a result of direct vulnerabilities that can arise due to these issues.
208
+
209
+ 53
210
+ 00:04:57,000 --> 00:05:05,000
211
+ But in general, logging and monitoring are quite critical and the absence of failures in directly impact
212
+
213
+ 54
214
+ 00:05:05,000 --> 00:05:09,000
215
+ the visibility, incident, technology and forensics.
216
+
217
+ 55
218
+ 00:05:10,000 --> 00:05:17,000
219
+ Thus, it's quite important to have a functioning logging and monitoring system to collect logs and
220
+
221
+ 56
222
+ 00:05:17,000 --> 00:05:21,000
223
+ also give alerts if any malfunctions or errors happen.
224
+
225
+ 57
226
+ 00:05:22,000 --> 00:05:28,000
227
+ Else use can go unnoticed for a long time and cause a lot more damage.
228
+
229
+ 58
230
+ 00:05:29,000 --> 00:05:33,000
231
+ Let's review some risk factors that can lead us to negative consequences.
232
+
233
+ 59
234
+ 00:05:34,000 --> 00:05:40,000
235
+ The elimination of this risk factors is it that listed on the slide will help us to decrease risks of
236
+
237
+ 60
238
+ 00:05:40,000 --> 00:05:49,000
239
+ vulnerability to significantly log in and failed attempts not being locked locks on this cert locally
240
+
241
+ 61
242
+ 00:05:49,000 --> 00:05:50,000
243
+ and not back.
244
+
245
+ 62
246
+ 00:05:50,000 --> 00:05:57,000
247
+ Top warnings and errors are generated with an adequate or unpeel log messages.
248
+
249
+ 63
250
+ 00:05:58,000 --> 00:06:00,000
251
+ It is not enough just to log an event.
252
+
253
+ 64
254
+ 00:06:00,000 --> 00:06:05,000
255
+ It is also important to be able to understand it later.
256
+
257
+ 65
258
+ 00:06:06,000 --> 00:06:12,000
259
+ Logs of applications and apps are not monitored for suspicious activity.
260
+
261
+ 66
262
+ 00:06:12,000 --> 00:06:21,000
263
+ Penetration testing and scans by dynamic application security testing tools such as the do not trigger
264
+
265
+ 67
266
+ 00:06:21,000 --> 00:06:30,000
267
+ alerts monitoring systems not able to detect suspicious activity or not able to raise alerts in real
268
+
269
+ 68
270
+ 00:06:30,000 --> 00:06:31,000
271
+ time.
272
+
273
+ 69
274
+ 00:06:32,000 --> 00:06:38,000
275
+ Missing monitoring and alert systems locks not protected for integrity.
276
+
277
+ 70
278
+ 00:06:39,000 --> 00:06:41,000
279
+ This will allow log forgery.
280
+
281
+ 71
282
+ 00:06:42,000 --> 00:06:49,000
283
+ Let's understand now the challenges that you may face weeks after implementing logging and eliminating
284
+
285
+ 72
286
+ 00:06:49,000 --> 00:06:51,000
287
+ all the risk factors.
288
+
289
+ 73
290
+ 00:06:52,000 --> 00:06:56,000
291
+ Very often there is a challenge that there are really a lot of loss.
292
+
293
+ 74
294
+ 00:06:57,000 --> 00:07:00,000
295
+ You have multiple services then distributed.
296
+
297
+ 75
298
+ 00:07:00,000 --> 00:07:03,000
299
+ Each service logs its own messages.
300
+
301
+ 76
302
+ 00:07:04,000 --> 00:07:06,000
303
+ Log management can become a problem.
304
+
305
+ 77
306
+ 00:07:07,000 --> 00:07:13,000
307
+ Moreover, if you are talking about monitoring, it is close to impossible to monitor such amount of
308
+
309
+ 78
310
+ 00:07:13,000 --> 00:07:14,000
311
+ logs manually.
312
+
313
+ 79
314
+ 00:07:15,000 --> 00:07:17,000
315
+ What would be a solution to this challenge?
316
+
317
+ 80
318
+ 00:07:18,000 --> 00:07:20,000
319
+ There are some points to consider.
320
+
321
+ 81
322
+ 00:07:21,000 --> 00:07:25,000
323
+ Never forget to set the proper log level for each log message.
324
+
325
+ 82
326
+ 00:07:25,000 --> 00:07:31,000
327
+ We're going to have a separate lesson about logging in Java, but in case you are already familiar with
328
+
329
+ 83
330
+ 00:07:31,000 --> 00:07:39,000
331
+ some logging in the programming languages, you'll know that each log message is logged on different
332
+
333
+ 84
334
+ 00:07:39,000 --> 00:07:47,000
335
+ levels and it is important to agree on the criteria of each log level and set proper level to each log
336
+
337
+ 85
338
+ 00:07:47,000 --> 00:07:48,000
339
+ message.
340
+
341
+ 86
342
+ 00:07:48,000 --> 00:07:49,000
343
+ Why?
344
+
345
+ 87
346
+ 00:07:49,000 --> 00:07:51,000
347
+ Because it is a future one.
348
+
349
+ 88
350
+ 00:07:51,000 --> 00:07:53,000
351
+ We are glad to work with these logs.
352
+
353
+ 89
354
+ 00:07:53,000 --> 00:07:57,000
355
+ We can apply the rules for different log levels.
356
+
357
+ 90
358
+ 00:07:57,000 --> 00:08:03,000
359
+ We can filter logs on different levels and the work was logs in a more efficient way.
360
+
361
+ 91
362
+ 00:08:04,000 --> 00:08:11,000
363
+ Introduce Automation, NZ lock management process, implement monitoring roles across the system.
364
+
365
+ 92
366
+ 00:08:11,000 --> 00:08:14,000
367
+ For example, limit the number of sales.
368
+
369
+ 93
370
+ 00:08:14,000 --> 00:08:16,000
371
+ Log in items.
372
+
373
+ 94
374
+ 00:08:16,000 --> 00:08:19,000
375
+ Increase delay between failed walk ins.
376
+
377
+ 95
378
+ 00:08:20,000 --> 00:08:27,000
379
+ Create IP Blacklist block IP addresses that sense suspiciously huge amounts of requests.
380
+
381
+ 96
382
+ 00:08:28,000 --> 00:08:31,000
383
+ Automate alerting on some critical events.
384
+
385
+ 97
386
+ 00:08:31,000 --> 00:08:32,000
387
+ Let's see.
388
+
389
+ 98
390
+ 00:08:32,000 --> 00:08:39,000
391
+ In this case, security team used to monitor alarms manually and having all necessary logs.
392
+
393
+ 99
394
+ 00:08:39,000 --> 00:08:42,000
395
+ Security can track down what actually happened.
396
+
397
+ 100
398
+ 00:08:43,000 --> 00:08:45,000
399
+ React and allow alerts.
400
+
401
+ 101
402
+ 00:08:45,000 --> 00:08:52,000
403
+ Already makes life easier rather than monitoring all possible logs in the system manually.
404
+
405
+ 102
406
+ 00:08:53,000 --> 00:08:54,000
407
+ Introduce logging tools.
408
+
409
+ 103
410
+ 00:08:55,000 --> 00:08:57,000
411
+ We're going to use some of them in a few seconds.
412
+
413
+ 104
414
+ 00:08:58,000 --> 00:09:06,000
415
+ Let's review log management applications, the most popular ones that can help to make your life easier.
416
+
417
+ 105
418
+ 00:09:07,000 --> 00:09:13,000
419
+ I want to highlight significantly more tools that I will give you on this slide.
420
+
421
+ 106
422
+ 00:09:13,000 --> 00:09:20,000
423
+ So in case you are looking for something really specific, give it a try to review all of the solutions.
424
+
425
+ 107
426
+ 00:09:21,000 --> 00:09:24,000
427
+ There are six those I'd like to discuss.
428
+
429
+ 108
430
+ 00:09:25,000 --> 00:09:27,000
431
+ Zia Splunk.
432
+
433
+ 109
434
+ 00:09:27,000 --> 00:09:31,000
435
+ Splunk is the biggest tool in the log management space.
436
+
437
+ 110
438
+ 00:09:31,000 --> 00:09:36,000
439
+ It's well-established, full featured and enterprise class.
440
+
441
+ 111
442
+ 00:09:37,000 --> 00:09:41,000
443
+ It's unique in this space as an on premises tool.
444
+
445
+ 112
446
+ 00:09:41,000 --> 00:09:45,000
447
+ Also, they have come out with a cloud version as well.
448
+
449
+ 113
450
+ 00:09:45,000 --> 00:09:56,000
451
+ And lastly, formerly known as our OC Elasticsearch Slash Kanban, it is an open source project made
452
+
453
+ 114
454
+ 00:09:56,000 --> 00:09:59,000
455
+ up of many different tools for application.
456
+
457
+ 115
458
+ 00:09:59,000 --> 00:10:07,000
459
+ Data analysis and visualization looks specifically was made for the collection and management of log
460
+
461
+ 116
462
+ 00:10:07,000 --> 00:10:10,000
463
+ files beyond the Law congregation.
464
+
465
+ 117
466
+ 00:10:10,000 --> 00:10:18,000
467
+ It includes Elasticsearch for indexing and searches for data and Cabana for charting and visualizing
468
+
469
+ 118
470
+ 00:10:18,000 --> 00:10:20,000
471
+ data to gather.
472
+
473
+ 119
474
+ 00:10:20,000 --> 00:10:23,000
475
+ They form a powerful log management solution.
476
+
477
+ 120
478
+ 00:10:23,000 --> 00:10:25,000
479
+ Similar logic.
480
+
481
+ 121
482
+ 00:10:25,000 --> 00:10:33,000
483
+ Similar logic was founded as a software, as a service version of Splunk, going so far as to imitate
484
+
485
+ 122
486
+ 00:10:33,000 --> 00:10:36,000
487
+ some logs, features and visual story.
488
+
489
+ 123
490
+ 00:10:36,000 --> 00:10:45,000
491
+ All since then, some logic has developed into full fledged enterprise class management solution in
492
+
493
+ 124
494
+ 00:10:45,000 --> 00:10:46,000
495
+ its own right.
496
+
497
+ 125
498
+ 00:10:47,000 --> 00:10:52,000
499
+ Some of the logic is a lost enterprise focus of the cloud native analyzers.
500
+
501
+ 126
502
+ 00:10:54,000 --> 00:10:54,000
503
+ Love.
504
+
505
+ 127
506
+ 00:10:54,000 --> 00:10:55,000
507
+ We love.
508
+
509
+ 128
510
+ 00:10:55,000 --> 00:11:04,000
511
+ We used a robust analyzer focusing on simplicity and ease of use is targeted for developers and DevOps,
512
+
513
+ 129
514
+ 00:11:05,000 --> 00:11:07,000
515
+ making it less enterprise focused.
516
+
517
+ 130
518
+ 00:11:08,000 --> 00:11:09,000
519
+ Paper Trail.
520
+
521
+ 131
522
+ 00:11:10,000 --> 00:11:18,000
523
+ Paper trail is a simple way to loop and search through logs from multiple machines in one consolidated
524
+
525
+ 132
526
+ 00:11:18,000 --> 00:11:19,000
527
+ easy to use interface.
528
+
529
+ 133
530
+ 00:11:20,000 --> 00:11:27,000
531
+ It is software as a service too designed to enhance the logs you already collect or generate.
532
+
533
+ 134
534
+ 00:11:28,000 --> 00:11:28,000
535
+ Gridlock.
536
+
537
+ 135
538
+ 00:11:29,000 --> 00:11:37,000
539
+ Gridlock is an open source look and noise are backed by MongoDB as well as Elasticsearch, similar to
540
+
541
+ 136
542
+ 00:11:37,000 --> 00:11:41,000
543
+ Lock Stash for storing and searching for errors.
544
+
545
+ 137
546
+ 00:11:42,000 --> 00:11:50,000
547
+ It's mainly focused on helping developers detect and fix errors in their apps, but they have also released
548
+
549
+ 138
550
+ 00:11:50,000 --> 00:11:53,000
551
+ an official enterprise ready platform.
552
+
553
+ 139
554
+ 00:11:54,000 --> 00:11:56,000
555
+ Let's sum it up and make conclusions.
556
+
557
+ 140
558
+ 00:11:57,000 --> 00:12:04,000
559
+ Splunk is the best out of the box tool for enterprise companies, where money is less of a concern.
560
+
561
+ 141
562
+ 00:12:05,000 --> 00:12:12,000
563
+ Elastic is a strongest open source project with complex set top and maintenance vs downside.
564
+
565
+ 142
566
+ 00:12:13,000 --> 00:12:21,000
567
+ Similar logic is basically the software as a service version of Splunk, but is less expensive and has
568
+
569
+ 143
570
+ 00:12:21,000 --> 00:12:23,000
571
+ less extensive features at least.
572
+
573
+ 144
574
+ 00:12:24,000 --> 00:12:32,000
575
+ Locally is a solid solution for smaller that and above Steve's focusing on monitoring and troubleshooting.
576
+
577
+ 145
578
+ 00:12:33,000 --> 00:12:39,000
579
+ Paper Trail is a simple and affordable tool for viewing log files from multiple machines.
580
+
581
+ 146
582
+ 00:12:39,000 --> 00:12:41,000
583
+ In a single view is a cloud.
584
+
585
+ 147
586
+ 00:12:42,000 --> 00:12:48,000
587
+ Grain law is a solid alternative to logs stash within the elastic stack framework.
588
+
589
+ 148
590
+ 00:12:48,000 --> 00:12:51,000
591
+ Let's continue as a set.
592
+
593
+ 149
594
+ 00:12:51,000 --> 00:12:54,000
595
+ We're going to have a separate lesson about log in.
596
+
597
+ 150
598
+ 00:12:54,000 --> 00:13:02,000
599
+ In Java, we're going to have this class in scope of my course Java from zero to first job and details
600
+
601
+ 151
602
+ 00:13:02,000 --> 00:13:06,000
603
+ of using log libraries also lies beyond this class.
604
+
605
+ 152
606
+ 00:13:07,000 --> 00:13:15,000
607
+ But still, just for your awareness, I'd like to list here log in libraries you can use while working
608
+
609
+ 153
610
+ 00:13:15,000 --> 00:13:19,000
611
+ this Java applications general log in framework.
612
+
613
+ 154
614
+ 00:13:19,000 --> 00:13:27,000
615
+ Java has its own log in framework that is built in and does adjudicate honestly the Java Logan framework
616
+
617
+ 155
618
+ 00:13:27,000 --> 00:13:29,000
619
+ not very popular nowadays.
620
+
621
+ 156
622
+ 00:13:30,000 --> 00:13:35,000
623
+ Unfortunately, that didn't include logging in its original release.
624
+
625
+ 157
626
+ 00:13:36,000 --> 00:13:44,000
627
+ So by the time the Java logging API was added, several other Logan's frameworks had become widely used.
628
+
629
+ 158
630
+ 00:13:45,000 --> 00:13:54,000
631
+ Look, 4G VoLTE 4G is a general organ framework that supports the log in to files, output streams and
632
+
633
+ 159
634
+ 00:13:54,000 --> 00:13:58,000
635
+ other targets and allows the configuration via config files.
636
+
637
+ 160
638
+ 00:13:59,000 --> 00:14:00,000
639
+ Log back.
640
+
641
+ 161
642
+ 00:14:00,000 --> 00:14:05,000
643
+ Log back is intended to be the successor of Log for G.
644
+
645
+ 162
646
+ 00:14:05,000 --> 00:14:11,000
647
+ It was developed with the original log for G developer and features a lightweight architecture.
648
+
649
+ 163
650
+ 00:14:13,000 --> 00:14:21,000
651
+ So for G itself, four G is a framework that acts as a simple interface for various other logging libraries,
652
+
653
+ 164
654
+ 00:14:21,000 --> 00:14:27,000
655
+ allowing developers to log in the desired implementation and deployment time.
656
+
657
+ 165
658
+ 00:14:28,000 --> 00:14:37,000
659
+ So basically rides it could rely on the interface provided by so for G and then decide which log you
660
+
661
+ 166
662
+ 00:14:37,000 --> 00:14:45,000
663
+ want to use because A so for G supports really a lot of different factors, including connectors for
664
+
665
+ 167
666
+ 00:14:45,000 --> 00:14:46,000
667
+ 4G.
668
+
669
+ 168
670
+ 00:14:46,000 --> 00:14:54,000
671
+ And log back, let's review multiple common considerations that are associated with this risk category.
672
+
673
+ 169
674
+ 00:14:55,000 --> 00:15:02,000
675
+ There isn't much common vulnerability on the exposures data for this category, but the tactic in responding
676
+
677
+ 170
678
+ 00:15:02,000 --> 00:15:04,000
679
+ to breaches is critical.
680
+
681
+ 171
682
+ 00:15:04,000 --> 00:15:13,000
683
+ Still, it can be very impactful for comfortability, visibility, incident, alerting and forensics.
684
+
685
+ 172
686
+ 00:15:13,000 --> 00:15:24,000
687
+ Among the most notable common victims memory that is worth the mention of the fallen S.W.A.T. 778 insufficient
688
+
689
+ 173
690
+ 00:15:24,000 --> 00:15:31,000
691
+ log in when security critical events are not logged properly, such as failed log in item.
692
+
693
+ 174
694
+ 00:15:31,000 --> 00:15:39,000
695
+ This can make malicious behavior more difficult to detect and may complicate analysis after an attack
696
+
697
+ 175
698
+ 00:15:39,000 --> 00:15:40,000
699
+ succeeds.
700
+
701
+ 176
702
+ 00:15:40,000 --> 00:15:47,000
703
+ CW E 117 Improper output neutralization for locks.
704
+
705
+ 177
706
+ 00:15:47,000 --> 00:15:54,000
707
+ This can allow an attacker to forge entries or inject malicious calls into the logs.
708
+
709
+ 178
710
+ 00:15:54,000 --> 00:15:56,000
711
+ Lock Forging Vulnerabilities.
712
+
713
+ 179
714
+ 00:15:56,000 --> 00:16:05,000
715
+ Akua When data enters an application from an and trusted source, the data is written to an application
716
+
717
+ 180
718
+ 00:16:05,000 --> 00:16:06,000
719
+ or system log file.
720
+
721
+ 181
722
+ 00:16:07,000 --> 00:16:13,000
723
+ CW 223 Completion of security relevant information.
724
+
725
+ 182
726
+ 00:16:14,000 --> 00:16:21,000
727
+ In this case, the application doesn't record or display information that would be important for identifying
728
+
729
+ 183
730
+ 00:16:21,000 --> 00:16:27,000
731
+ the source or nature of an attack for determining if an action is safe.
732
+
733
+ 184
734
+ 00:16:28,000 --> 00:16:34,000
735
+ cwe5 hundred 32 insertion of sensitive information in the log file.
736
+
737
+ 185
738
+ 00:16:36,000 --> 00:16:36,000
739
+ While log in.
740
+
741
+ 186
742
+ 00:16:36,000 --> 00:16:39,000
743
+ All information may be helpful.
744
+
745
+ 187
746
+ 00:16:39,000 --> 00:16:46,000
747
+ Under development stages, it is important that Logan levels be set appropriately before a product ships
748
+
749
+ 188
750
+ 00:16:46,000 --> 00:16:54,000
751
+ so that sensitive user data and system information are not accidentally exposed to potential attackers.
752
+
753
+ 189
754
+ 00:16:55,000 --> 00:17:00,000
755
+ Let's compare WASP Top ten 2017 versus US Top ten 2021.
756
+
757
+ 190
758
+ 00:17:01,000 --> 00:17:03,000
759
+ Previously we had categories.
760
+
761
+ 191
762
+ 00:17:03,000 --> 00:17:11,000
763
+ It was called patient log and monitoring, and the WASP space is a 2021.
764
+
765
+ 192
766
+ 00:17:11,000 --> 00:17:14,000
767
+ It was promoted to the position number nine.
768
+
769
+ 193
770
+ 00:17:14,000 --> 00:17:18,000
771
+ The scope of this category has been revised.
772
+
773
+ 194
774
+ 00:17:18,000 --> 00:17:24,000
775
+ TSA's name also was changed to security of volume and monitoring failures.
776
+
777
+ 195
778
+ 00:17:25,000 --> 00:17:29,000
779
+ And now it is time to review examples of attacks.
780
+
781
+ 196
782
+ 00:17:30,000 --> 00:17:32,000
783
+ Let's review two scenarios.
784
+
785
+ 197
786
+ 00:17:32,000 --> 00:17:41,000
787
+ Scenario number one A Children's Health Plan Providers website operator who then detected breach due
788
+
789
+ 198
790
+ 00:17:41,000 --> 00:17:43,000
791
+ to a lack of monitoring and log?
792
+
793
+ 199
794
+ 00:17:44,000 --> 00:17:54,000
795
+ An external party informed is a health plan provider that had access and modified thousands of sensitive
796
+
797
+ 200
798
+ 00:17:54,000 --> 00:18:00,000
799
+ health records of more than 3.5 million children at cost incidents.
800
+
801
+ 201
802
+ 00:18:00,000 --> 00:18:08,000
803
+ Review found that the website developers had not addressed significant vulnerabilities as there was
804
+
805
+ 202
806
+ 00:18:08,000 --> 00:18:10,000
807
+ no log or monitoring system.
808
+
809
+ 203
810
+ 00:18:11,000 --> 00:18:18,000
811
+ The data breach could have been in progress since 2017 at periods of more than seven years.
812
+
813
+ 204
814
+ 00:18:19,000 --> 00:18:24,000
815
+ An attacker gained access to an organisation's internal network.
816
+
817
+ 205
818
+ 00:18:25,000 --> 00:18:32,000
819
+ The attack in Iran is coming to locate internal systems with no vulnerabilities and obtains sensitive
820
+
821
+ 206
822
+ 00:18:32,000 --> 00:18:39,000
823
+ data since the organization doesn't follow adequate log and monitoring practices.
824
+
825
+ 207
826
+ 00:18:39,000 --> 00:18:47,000
827
+ They are unable to attack active attacks as a data breach continuous undetected for a long period of
828
+
829
+ 208
830
+ 00:18:47,000 --> 00:18:48,000
831
+ time.
832
+
833
+ 209
834
+ 00:18:50,000 --> 00:18:57,000
835
+ A major Indian airline had a data breach involving more than ten years worth of personal data of millions
836
+
837
+ 210
838
+ 00:18:57,000 --> 00:19:02,000
839
+ of passengers, including passport and credit card data.
840
+
841
+ 211
842
+ 00:19:03,000 --> 00:19:11,000
843
+ The data breach accuracy at a search party cloud hosting provider who notified the airline of the breach
844
+
845
+ 212
846
+ 00:19:11,000 --> 00:19:12,000
847
+ after some time.
848
+
849
+ 213
850
+ 00:19:13,000 --> 00:19:18,000
851
+ Because of insufficient logging, not on time monitoring and alerting.
852
+
853
+ 214
854
+ 00:19:18,000 --> 00:19:24,000
855
+ It was almost impossible to prevent data breaches simply once it was discovered.
856
+
857
+ 215
858
+ 00:19:24,000 --> 00:19:26,000
859
+ And analyses that use that.
860
+
861
+ 216
862
+ 00:19:28,000 --> 00:19:33,000
863
+ And major European airlines suffered reportable breach.
864
+
865
+ 217
866
+ 00:19:33,000 --> 00:19:42,000
867
+ The breach was reportedly caused by a payment application security vulnerabilities exploited by attackers
868
+
869
+ 218
870
+ 00:19:42,000 --> 00:19:47,000
871
+ who gather with more than 400,000 customer payments records.
872
+
873
+ 219
874
+ 00:19:48,000 --> 00:19:54,000
875
+ The airline was fined £20 million as a result by the privacy regulator.
876
+
877
+ 220
878
+ 00:19:55,000 --> 00:20:01,000
879
+ And finally, let's talk about how to prevent vulnerabilities related to security.
880
+
881
+ 221
882
+ 00:20:01,000 --> 00:20:03,000
883
+ Log in and monitoring servers.
884
+
885
+ 222
886
+ 00:20:03,000 --> 00:20:10,000
887
+ It is recommended that developers implement some or all of the following controls, depending on the
888
+
889
+ 223
890
+ 00:20:10,000 --> 00:20:12,000
891
+ risk of the application.
892
+
893
+ 224
894
+ 00:20:13,000 --> 00:20:20,000
895
+ Ensure all login access control and server side input validation failures can do logged with sufficient
896
+
897
+ 225
898
+ 00:20:20,000 --> 00:20:30,000
899
+ user context to identify suspicious or malicious accounts and have enough time to allow delayed forensic
900
+
901
+ 226
902
+ 00:20:30,000 --> 00:20:30,000
903
+ analysis.
904
+
905
+ 227
906
+ 00:20:31,000 --> 00:20:39,000
907
+ Ensure log data is encoded correctly to prevent injections or attacks on the logging or monitoring systems.
908
+
909
+ 228
910
+ 00:20:40,000 --> 00:20:43,000
911
+ This should help avoid forgery.
912
+
913
+ 229
914
+ 00:20:44,000 --> 00:20:51,000
915
+ Devsecops teams should establish effective monitoring and alerting, such as a suspicious activities
916
+
917
+ 230
918
+ 00:20:51,000 --> 00:20:54,000
919
+ are detected and responded to quickly.
920
+
921
+ 231
922
+ 00:20:55,000 --> 00:21:02,000
923
+ Establish or adopt an incident response and recovery plan, such as National Institute of Standards
924
+
925
+ 232
926
+ 00:21:02,000 --> 00:21:12,000
927
+ and Technology 861 revision to oh eight that I'm going to leave a reference to this document attachments
928
+
929
+ 233
930
+ 00:21:12,000 --> 00:21:12,000
931
+ to the last.
932
+
933
+ 234
934
+ 00:21:14,000 --> 00:21:22,000
935
+ Ensure that logs contain all the relevant data and are well formatted to be consumed by other tools.
936
+
937
+ 235
938
+ 00:21:22,000 --> 00:21:24,000
939
+ Lock Management Solutions.
940
+
941
+ 236
942
+ 00:21:25,000 --> 00:21:33,000
943
+ Test If your monitoring systems can identify suspicious activity and ensure that dirty is done in near
944
+
945
+ 237
946
+ 00:21:34,000 --> 00:21:34,000
947
+ real time.
948
+
949
+ 238
950
+ 00:21:35,000 --> 00:21:43,000
951
+ Introduce some log management to at least one of those that we have discussed in this lesson or similar
952
+
953
+ 239
954
+ 00:21:43,000 --> 00:21:43,000
955
+ one.
956
+
957
+ 240
958
+ 00:21:44,000 --> 00:21:47,000
959
+ That's all what I wanted to discuss with you today.
960
+
961
+ 241
962
+ 00:21:48,000 --> 00:21:51,000
963
+ Let's recap what we have learned in this lesson.
964
+
965
+ 242
966
+ 00:21:52,000 --> 00:21:58,000
967
+ We learned what logging and logs are well on security, logging and monitoring.
968
+
969
+ 243
970
+ 00:21:58,000 --> 00:21:59,000
971
+ Taylor Swift Category.
972
+
973
+ 244
974
+ 00:22:00,000 --> 00:22:07,000
975
+ I explains potential impact, which may be caused by vulnerabilities associated with this risk category.
976
+
977
+ 245
978
+ 00:22:08,000 --> 00:22:12,000
979
+ What discussed risk factors that should be eliminated?
980
+
981
+ 246
982
+ 00:22:13,000 --> 00:22:18,000
983
+ I hold an overview of management tools and libraries for logging in Java.
984
+
985
+ 247
986
+ 00:22:19,000 --> 00:22:22,000
987
+ We reviewed multiple common weaknesses enumerations.
988
+
989
+ 248
990
+ 00:22:23,000 --> 00:22:30,000
991
+ Also, we did a comparison of of us top ten 2017 versus avast top ten 2021.
992
+
993
+ 249
994
+ 00:22:31,000 --> 00:22:39,000
995
+ We reviewed different examples of attacks and examples of the lessons we learned how to prevent negative
996
+
997
+ 250
998
+ 00:22:39,000 --> 00:22:43,000
999
+ consequences caused by security, volume and monitoring failures.
1000
+
1001
+ 251
1002
+ 00:22:44,000 --> 00:22:46,000
1003
+ That's it for this lesson.
1004
+
1005
+ 252
1006
+ 00:22:46,000 --> 00:22:48,000
1007
+ Thank you all for your attention.
1008
+
1009
+ 253
1010
+ 00:22:48,000 --> 00:22:50,000
1011
+ Have a great day and see you.
1012
+
1013
+ 254
1014
+ 00:22:50,000 --> 00:22:51,000
1015
+ Next lesson.
1016
+
73 - OWASP Top 10 2021/017 Server-Side Request Forgery (SSRF)_en.srt ADDED
@@ -0,0 +1,1036 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello Tim.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:12,000
7
+ Today we are going to learn server side request forgery risk category from Avast Top ten.
8
+
9
+ 3
10
+ 00:00:12,000 --> 00:00:17,000
11
+ We are going to start the lesson from the general overview of the risk category.
12
+
13
+ 4
14
+ 00:00:17,000 --> 00:00:22,000
15
+ I will tell you what is called trust relationships in the web applications.
16
+
17
+ 5
18
+ 00:00:22,000 --> 00:00:25,000
19
+ We are going to review different risk factors.
20
+
21
+ 6
22
+ 00:00:25,000 --> 00:00:28,000
23
+ This is recommended to eliminate.
24
+
25
+ 7
26
+ 00:00:28,000 --> 00:00:35,000
27
+ I will explain why server side regrets forgery is dangerous and what potential impacts are.
28
+
29
+ 8
30
+ 00:00:35,000 --> 00:00:40,000
31
+ We are going to review different types of server side request forgery.
32
+
33
+ 9
34
+ 00:00:41,000 --> 00:00:49,000
35
+ As always, we are going to compare Avast Top ten 2017 versus Avast Top ten 2021.
36
+
37
+ 10
38
+ 00:00:49,000 --> 00:00:56,000
39
+ During the lesson we are going to review different attack examples, including Capital One incident,
40
+
41
+ 11
42
+ 00:00:56,000 --> 00:01:01,000
43
+ some basic Java example and other examples of attacks.
44
+
45
+ 12
46
+ 00:01:01,000 --> 00:01:07,000
47
+ And at the end of the lesson, we are going to make a summary of what we have to do in order to prevent
48
+
49
+ 13
50
+ 00:01:07,000 --> 00:01:10,000
51
+ server side request forgery.
52
+
53
+ 14
54
+ 00:01:10,000 --> 00:01:12,000
55
+ Let's start our lesson.
56
+
57
+ 15
58
+ 00:01:12,000 --> 00:01:16,000
59
+ Let's start from the high level overview of this risk category.
60
+
61
+ 16
62
+ 00:01:16,000 --> 00:01:19,000
63
+ Let's understand what it is.
64
+
65
+ 17
66
+ 00:01:19,000 --> 00:01:28,000
67
+ If an attacker can make this server sends a request, usually we mean HTTP requests on its behalf.
68
+
69
+ 18
70
+ 00:01:28,000 --> 00:01:31,000
71
+ Then that is server side request forgery.
72
+
73
+ 19
74
+ 00:01:32,000 --> 00:01:40,000
75
+ That means that attacker get access to the internal services located on the server and can send data
76
+
77
+ 20
78
+ 00:01:40,000 --> 00:01:42,000
79
+ from that server.
80
+
81
+ 21
82
+ 00:01:42,000 --> 00:01:47,000
83
+ It is dangerous because in case requests are sent from the server.
84
+
85
+ 22
86
+ 00:01:47,000 --> 00:01:55,000
87
+ Attackers can get access to the information on the server that is secure to be accessed outside of the
88
+
89
+ 23
90
+ 00:01:55,000 --> 00:01:56,000
91
+ server.
92
+
93
+ 24
94
+ 00:01:56,000 --> 00:02:04,000
95
+ For example, attackers can send information about internal resources, perform port scanning on the
96
+
97
+ 25
98
+ 00:02:04,000 --> 00:02:10,000
99
+ internal network, send confidential information like credentials, etc..
100
+
101
+ 26
102
+ 00:02:10,000 --> 00:02:18,000
103
+ Server side request forgery allows an attacker to force the server side application into making arbitrary
104
+
105
+ 27
106
+ 00:02:18,000 --> 00:02:22,000
107
+ web requests to an unintended domain.
108
+
109
+ 28
110
+ 00:02:23,000 --> 00:02:31,000
111
+ This can result in the server making connections to internal only services or arbitrary external systems.
112
+
113
+ 29
114
+ 00:02:32,000 --> 00:02:40,000
115
+ A successful server side request forgery attack can result in unauthorized actions or access to data
116
+
117
+ 30
118
+ 00:02:40,000 --> 00:02:48,000
119
+ within the organization, either in the vulnerable application itself or on other backend systems that
120
+
121
+ 31
122
+ 00:02:48,000 --> 00:02:51,000
123
+ the application can communicate with.
124
+
125
+ 32
126
+ 00:02:51,000 --> 00:02:59,000
127
+ This vulnerability usually occurs in applications that take your rails from the user and then make a
128
+
129
+ 33
130
+ 00:02:59,000 --> 00:03:09,000
131
+ HTTP request to the supplied URL without proper euro validation, excluding internal IPS, for instance.
132
+
133
+ 34
134
+ 00:03:09,000 --> 00:03:17,000
135
+ As modern web applications provide end users with convenient features, fetching a URL becomes a common
136
+
137
+ 35
138
+ 00:03:17,000 --> 00:03:18,000
139
+ scenario.
140
+
141
+ 36
142
+ 00:03:19,000 --> 00:03:25,000
143
+ As a result, the incidence of server side request forgery is increasing.
144
+
145
+ 37
146
+ 00:03:25,000 --> 00:03:32,000
147
+ Also, the severity of server side request forgery is becoming high due to the cloud services and the
148
+
149
+ 38
150
+ 00:03:32,000 --> 00:03:35,000
151
+ complexity of architectures.
152
+
153
+ 39
154
+ 00:03:36,000 --> 00:03:45,000
155
+ Why service such request forgery is also dangerous is because trust relationships of the application
156
+
157
+ 40
158
+ 00:03:45,000 --> 00:03:46,000
159
+ is under attack.
160
+
161
+ 41
162
+ 00:03:46,000 --> 00:03:48,000
163
+ Now what are trust?
164
+
165
+ 42
166
+ 00:03:48,000 --> 00:03:57,000
167
+ Relationships of application is the trust relationship occurs when an application server interacts with
168
+
169
+ 43
170
+ 00:03:57,000 --> 00:04:02,000
171
+ private banking systems not intended for access by users.
172
+
173
+ 44
174
+ 00:04:03,000 --> 00:04:12,000
175
+ Is accessible systems most likely use non-removable private IP addresses or are restricted to specific
176
+
177
+ 45
178
+ 00:04:12,000 --> 00:04:18,000
179
+ costs, which assumes that the network topology protects them.
180
+
181
+ 46
182
+ 00:04:18,000 --> 00:04:25,000
183
+ Lack of internal security controls opens the application to in server sites.
184
+
185
+ 47
186
+ 00:04:25,000 --> 00:04:26,000
187
+ Request forgery.
188
+
189
+ 48
190
+ 00:04:26,000 --> 00:04:31,000
191
+ Vulnerability is the main things that we all have to remember.
192
+
193
+ 49
194
+ 00:04:31,000 --> 00:04:34,000
195
+ Never assume anything when it comes to code.
196
+
197
+ 50
198
+ 00:04:34,000 --> 00:04:44,000
199
+ Security trust relationships exist because an engineer doesn't implement proper security controls because
200
+
201
+ 51
202
+ 00:04:44,000 --> 00:04:50,000
203
+ they incorrectly assume attackers can attack from an already trusted location.
204
+
205
+ 52
206
+ 00:04:51,000 --> 00:04:56,000
207
+ Let's review environment that can increase the risk of service sites.
208
+
209
+ 53
210
+ 00:04:56,000 --> 00:04:58,000
211
+ Request Forgery Attack.
212
+
213
+ 54
214
+ 00:04:58,000 --> 00:05:01,000
215
+ Let's talk about risk factors now.
216
+
217
+ 55
218
+ 00:05:01,000 --> 00:05:09,000
219
+ The vulnerable application will often have functionality for publishing, reading or in-person data
220
+
221
+ 56
222
+ 00:05:09,000 --> 00:05:12,000
223
+ using a URL that a user can modify.
224
+
225
+ 57
226
+ 00:05:13,000 --> 00:05:21,000
227
+ The attacker takes advantage of this functionality by manipulating the euro or providing an entirely
228
+
229
+ 58
230
+ 00:05:21,000 --> 00:05:22,000
231
+ new euro.
232
+
233
+ 59
234
+ 00:05:23,000 --> 00:05:30,000
235
+ The court on the server will then read or submit the euro, allowing the attacker to read server data,
236
+
237
+ 60
238
+ 00:05:30,000 --> 00:05:37,000
239
+ connect in internal services, or send post requests to private internal services.
240
+
241
+ 61
242
+ 00:05:37,000 --> 00:05:39,000
243
+ In general server side requests.
244
+
245
+ 62
246
+ 00:05:39,000 --> 00:05:46,000
247
+ Forgery attacks are made possible by a lack of user input validation in the web application.
248
+
249
+ 63
250
+ 00:05:47,000 --> 00:05:54,000
251
+ Without strict validation, the attacker can alter parameters that control what gets executed.
252
+
253
+ 64
254
+ 00:05:54,000 --> 00:06:02,000
255
+ Server side for example, potentially malicious commands or establish an HTTP connections to arbitrary
256
+
257
+ 65
258
+ 00:06:02,000 --> 00:06:03,000
259
+ systems.
260
+
261
+ 66
262
+ 00:06:04,000 --> 00:06:11,000
263
+ Vulnerabilities will arise when the web application is unable to identify and validate requests from
264
+
265
+ 67
266
+ 00:06:11,000 --> 00:06:21,000
267
+ trusted applications, or when the web application can send requests to any external IP address or domain.
268
+
269
+ 68
270
+ 00:06:21,000 --> 00:06:29,000
271
+ Let's review now potential impact that may be caused by server sites, request forgery and believes
272
+
273
+ 69
274
+ 00:06:29,000 --> 00:06:36,000
275
+ that you ready made gas potential impact that may be caused by this vulnerability but lets some attack
276
+
277
+ 70
278
+ 00:06:37,000 --> 00:06:45,000
279
+ server sites request forgery attacks present a range of risks from potentially stealing sensitive information
280
+
281
+ 71
282
+ 00:06:45,000 --> 00:06:50,000
283
+ from the application to bring an entire web application down.
284
+
285
+ 72
286
+ 00:06:51,000 --> 00:06:59,000
287
+ These attacks target systems that are located behind firewalls and restrict access from non trusted
288
+
289
+ 73
290
+ 00:06:59,000 --> 00:07:00,000
291
+ networks.
292
+
293
+ 74
294
+ 00:07:01,000 --> 00:07:06,000
295
+ Protecting your application from such attacks is vitally important.
296
+
297
+ 75
298
+ 00:07:07,000 --> 00:07:15,000
299
+ The damage extent is hard to predict as outcomes depend on the system configuration, API security practices
300
+
301
+ 76
302
+ 00:07:15,000 --> 00:07:19,000
303
+ adopted and the severity of the attack.
304
+
305
+ 77
306
+ 00:07:19,000 --> 00:07:27,000
307
+ In some situations, the server side requests for vulnerability may even allow an attacker to perform
308
+
309
+ 78
310
+ 00:07:27,000 --> 00:07:29,000
311
+ arbitrary command execution.
312
+
313
+ 79
314
+ 00:07:30,000 --> 00:07:39,000
315
+ This can result in exposure and theft of data that may include sensitive, personal or corporate information.
316
+
317
+ 80
318
+ 00:07:39,000 --> 00:07:47,000
319
+ If successful server side requests, forgery, vulnerability grants, hackers admin access to the data
320
+
321
+ 81
322
+ 00:07:47,000 --> 00:07:50,000
323
+ stored on the server and its backend system.
324
+
325
+ 82
326
+ 00:07:51,000 --> 00:08:00,000
327
+ That negative consequences can be one of the following denial of service attack, remote code execution,
328
+
329
+ 83
330
+ 00:08:01,000 --> 00:08:09,000
331
+ hijack of a vulnerable system to use its trust relationship with other systems to launch further attacks
332
+
333
+ 84
334
+ 00:08:10,000 --> 00:08:13,000
335
+ or cause or cross-site port attack.
336
+
337
+ 85
338
+ 00:08:14,000 --> 00:08:23,000
339
+ It is not necessary that any service request for a related attack will have to bring the response data
340
+
341
+ 86
342
+ 00:08:23,000 --> 00:08:27,000
343
+ to the heart to avoid missing any response.
344
+
345
+ 87
346
+ 00:08:27,000 --> 00:08:33,000
347
+ An attack that can take the help of an open port using an open port.
348
+
349
+ 88
350
+ 00:08:33,000 --> 00:08:39,000
351
+ It is easy to carry out a quick network scan of the application server.
352
+
353
+ 89
354
+ 00:08:39,000 --> 00:08:43,000
355
+ This is known as cross-site port attack.
356
+
357
+ 90
358
+ 00:08:43,000 --> 00:08:50,000
359
+ There are different types of service sites request forgery and to prevent them, we need to know these
360
+
361
+ 91
362
+ 00:08:50,000 --> 00:08:51,000
363
+ types.
364
+
365
+ 92
366
+ 00:08:51,000 --> 00:08:56,000
367
+ Let's learn them for any service site ecosystem.
368
+
369
+ 93
370
+ 00:08:56,000 --> 00:09:06,000
371
+ There are two sites the server and its internal components, and this server was a backend system based
372
+
373
+ 94
374
+ 00:09:06,000 --> 00:09:09,000
375
+ on the site impacted by this vulnerability.
376
+
377
+ 95
378
+ 00:09:09,000 --> 00:09:12,000
379
+ It has two classifications.
380
+
381
+ 96
382
+ 00:09:12,000 --> 00:09:15,000
383
+ Attacks against the server.
384
+
385
+ 97
386
+ 00:09:15,000 --> 00:09:24,000
387
+ This is also known as basic server side request forgery and refers to the direct display of the outcome
388
+
389
+ 98
390
+ 00:09:24,000 --> 00:09:28,000
391
+ of the attack to the hacker to make this happen.
392
+
393
+ 99
394
+ 00:09:28,000 --> 00:09:37,000
395
+ The server accesses the attacker, fetched URL, gathers the information data response and shares it
396
+
397
+ 100
398
+ 00:09:37,000 --> 00:09:38,000
399
+ with the hacker.
400
+
401
+ 101
402
+ 00:09:39,000 --> 00:09:49,000
403
+ This tab describes a case when data from the malicious forced backhand request is reflected in the application
404
+
405
+ 102
406
+ 00:09:49,000 --> 00:09:49,000
407
+ frontend.
408
+
409
+ 103
410
+ 00:09:50,000 --> 00:10:00,000
411
+ Mostly the hacker swaps the actual URL with localhost or IP 120 7001.
412
+
413
+ 104
414
+ 00:10:01,000 --> 00:10:08,000
415
+ Doing so will help the hardware to find out the path that will directly lead to crucial data.
416
+
417
+ 105
418
+ 00:10:09,000 --> 00:10:16,000
419
+ This type of server side request forgery attack is common and can lead to heart.
420
+
421
+ 106
422
+ 00:10:16,000 --> 00:10:21,000
423
+ Identification is the right kind of investigation is carried out.
424
+
425
+ 107
426
+ 00:10:21,000 --> 00:10:26,000
427
+ And the second type attacks against banking systems.
428
+
429
+ 108
430
+ 00:10:27,000 --> 00:10:33,000
431
+ Here, the threat actor doesn't directly reach the server or communicate with it.
432
+
433
+ 109
434
+ 00:10:33,000 --> 00:10:41,000
435
+ It involves taking any server backend system under control and using it to access severe responses or
436
+
437
+ 110
438
+ 00:10:41,000 --> 00:10:42,000
439
+ information.
440
+
441
+ 111
442
+ 00:10:43,000 --> 00:10:48,000
443
+ So it is known as blind service site request forgery.
444
+
445
+ 112
446
+ 00:10:49,000 --> 00:10:57,000
447
+ As the name describes with this type of server site request forgery attack, the application is forced
448
+
449
+ 113
450
+ 00:10:57,000 --> 00:11:02,000
451
+ to make a back end HTTP request to a malicious domain.
452
+
453
+ 114
454
+ 00:11:03,000 --> 00:11:06,000
455
+ In this type of server side request forgery.
456
+
457
+ 115
458
+ 00:11:06,000 --> 00:11:10,000
459
+ The attacker doesn't get data back from the server directly.
460
+
461
+ 116
462
+ 00:11:11,000 --> 00:11:18,000
463
+ The response from the backend request triggers an action on the target without getting reflected in
464
+
465
+ 117
466
+ 00:11:18,000 --> 00:11:19,000
467
+ the application frontend.
468
+
469
+ 118
470
+ 00:11:20,000 --> 00:11:27,000
471
+ Hacker sees this type of server side request forgery when they want to make some changes using the victim's
472
+
473
+ 119
474
+ 00:11:27,000 --> 00:11:28,000
475
+ server.
476
+
477
+ 120
478
+ 00:11:29,000 --> 00:11:36,000
479
+ Let's compare a WASP Top ten, 2017 versus a WASP Top ten 2021.
480
+
481
+ 121
482
+ 00:11:37,000 --> 00:11:39,000
483
+ This is a new category.
484
+
485
+ 122
486
+ 00:11:39,000 --> 00:11:42,000
487
+ It is added from the top ten community survey.
488
+
489
+ 123
490
+ 00:11:43,000 --> 00:11:51,000
491
+ The data shows a relatively low incidence rate with above average testing coverage and above average
492
+
493
+ 124
494
+ 00:11:51,000 --> 00:11:54,000
495
+ exploit and impact potential ratings.
496
+
497
+ 125
498
+ 00:11:55,000 --> 00:12:02,000
499
+ From the very first list released to the newest one, service site request forgery has always been defined
500
+
501
+ 126
502
+ 00:12:02,000 --> 00:12:05,000
503
+ as a potential security threat.
504
+
505
+ 127
506
+ 00:12:05,000 --> 00:12:10,000
507
+ However, it got its separate category this time only.
508
+
509
+ 128
510
+ 00:12:11,000 --> 00:12:19,000
511
+ Dependent upon the total common vulnerabilities and exposures reported server size request forgery secured
512
+
513
+ 129
514
+ 00:12:19,000 --> 00:12:22,000
515
+ 10th place in the avast least.
516
+
517
+ 130
518
+ 00:12:23,000 --> 00:12:25,000
519
+ Let's start with giving examples.
520
+
521
+ 131
522
+ 00:12:26,000 --> 00:12:28,000
523
+ Talking about server side requests forgery.
524
+
525
+ 132
526
+ 00:12:29,000 --> 00:12:33,000
527
+ It is not possible to ignore a case that happened with Capital One.
528
+
529
+ 133
530
+ 00:12:34,000 --> 00:12:35,000
531
+ What is it?
532
+
533
+ 134
534
+ 00:12:35,000 --> 00:12:43,000
535
+ Capital One financial corporation is an American bank holding company specializing in credit cards,
536
+
537
+ 135
538
+ 00:12:43,000 --> 00:12:47,000
539
+ auto loans, banking and savings accounts.
540
+
541
+ 136
542
+ 00:12:48,000 --> 00:12:58,000
543
+ The most famous service request forgery attack happened in July of 2019 against Capital One server site
544
+
545
+ 137
546
+ 00:12:58,000 --> 00:13:01,000
547
+ request forgery was used to retrieve a W.
548
+
549
+ 138
550
+ 00:13:01,000 --> 00:13:10,000
551
+ S credentials that attackers used to steal over 100 million Capital One customer's personal information
552
+
553
+ 139
554
+ 00:13:11,000 --> 00:13:15,000
555
+ hiding behind the VPN and Tor browser.
556
+
557
+ 140
558
+ 00:13:15,000 --> 00:13:23,000
559
+ The attacker executed and server side request forgery query that the server relayed to the bank and
560
+
561
+ 141
562
+ 00:13:23,000 --> 00:13:28,000
563
+ a w s server because of misconfigured web application firewall.
564
+
565
+ 142
566
+ 00:13:29,000 --> 00:13:38,000
567
+ The attackers then retrieved a temporary credential from the ec2 metadata service and run the LRS Terminal
568
+
569
+ 143
570
+ 00:13:38,000 --> 00:13:42,000
571
+ Command to retrieve the list of 8ws.
572
+
573
+ 144
574
+ 00:13:42,000 --> 00:13:46,000
575
+ S three buckets of compromised Capital one accounts.
576
+
577
+ 145
578
+ 00:13:47,000 --> 00:13:48,000
579
+ What was the result?
580
+
581
+ 146
582
+ 00:13:49,000 --> 00:13:57,000
583
+ The malicious actors copied nearly 30 gigabytes of Capital One credit application data.
584
+
585
+ 147
586
+ 00:13:58,000 --> 00:14:01,000
587
+ To help you understand this risk category better.
588
+
589
+ 148
590
+ 00:14:02,000 --> 00:14:05,000
591
+ Let me show you one example with Java source code.
592
+
593
+ 149
594
+ 00:14:06,000 --> 00:14:11,000
595
+ It is relatively simple, but it will help you to understand the challenge.
596
+
597
+ 150
598
+ 00:14:12,000 --> 00:14:19,000
599
+ The code on this slide represents one of the possible masses to fetch remote resources from a Java web
600
+
601
+ 151
602
+ 00:14:19,000 --> 00:14:20,000
603
+ application.
604
+
605
+ 152
606
+ 00:14:21,000 --> 00:14:22,000
607
+ Zahra.
608
+
609
+ 153
610
+ 00:14:22,000 --> 00:14:24,000
611
+ At least two issues with this code.
612
+
613
+ 154
614
+ 00:14:25,000 --> 00:14:34,000
615
+ The first one, a java dot net euro object can represent many more schemes that just HTP.
616
+
617
+ 155
618
+ 00:14:34,000 --> 00:14:41,000
619
+ For example, it can be used to fetch the local file by employing the file protocol.
620
+
621
+ 156
622
+ 00:14:42,000 --> 00:14:50,000
623
+ And the second issue, no restriction whatsoever is enforced to include or exclude the means.
624
+
625
+ 157
626
+ 00:14:50,000 --> 00:14:59,000
627
+ This could be exploited to fetch in general resources, for example, those that reside in local force
628
+
629
+ 158
630
+ 00:14:59,000 --> 00:15:01,000
631
+ or in the internal network.
632
+
633
+ 159
634
+ 00:15:02,000 --> 00:15:07,000
635
+ And we can see that there is no invalidation of location, massive parameter.
636
+
637
+ 160
638
+ 00:15:07,000 --> 00:15:17,000
639
+ So technically speaking, any string can be passed to our message and resource will be read and returned
640
+
641
+ 161
642
+ 00:15:17,000 --> 00:15:19,000
643
+ from the method as a string.
644
+
645
+ 162
646
+ 00:15:19,000 --> 00:15:22,000
647
+ How to avoid potential liability.
648
+
649
+ 163
650
+ 00:15:22,000 --> 00:15:25,000
651
+ Let me show it to you on another slide.
652
+
653
+ 164
654
+ 00:15:26,000 --> 00:15:31,000
655
+ On this slide, we are going to release a solution to the challenge shown on the previous slide.
656
+
657
+ 165
658
+ 00:15:32,000 --> 00:15:40,000
659
+ Fetching a user provided euro is quite a sensitive operation, especially if a user will be able to
660
+
661
+ 166
662
+ 00:15:40,000 --> 00:15:42,000
663
+ read the response.
664
+
665
+ 167
666
+ 00:15:42,000 --> 00:15:47,000
667
+ In such cases and allow least approach is advisable.
668
+
669
+ 168
670
+ 00:15:47,000 --> 00:15:55,000
671
+ For example, on the certain protocols, the means, POS, etc. are allowed to be requested.
672
+
673
+ 169
674
+ 00:15:56,000 --> 00:15:59,000
675
+ All other cases are to be rejected.
676
+
677
+ 170
678
+ 00:15:59,000 --> 00:16:08,000
679
+ The court from the previous slide can be hardened by only allowing HTTP or https with sources coming
680
+
681
+ 171
682
+ 00:16:08,000 --> 00:16:10,000
683
+ from specific subdomains.
684
+
685
+ 172
686
+ 00:16:11,000 --> 00:16:12,000
687
+ Just look at this example.
688
+
689
+ 173
690
+ 00:16:13,000 --> 00:16:19,000
691
+ You can see that they added if statement to verify location, massive parameter.
692
+
693
+ 174
694
+ 00:16:20,000 --> 00:16:24,000
695
+ And as I already said, this is just an example.
696
+
697
+ 175
698
+ 00:16:24,000 --> 00:16:31,000
699
+ In real life, you can come up with your own security requirements and create your custom condition
700
+
701
+ 176
702
+ 00:16:31,000 --> 00:16:36,000
703
+ to validate the URL before sending request from the application.
704
+
705
+ 177
706
+ 00:16:36,000 --> 00:16:44,000
707
+ I hope that with this example it is clear how server side request forgery can impact your application.
708
+
709
+ 178
710
+ 00:16:44,000 --> 00:16:51,000
711
+ And we also reviewed one of the simplest workarounds how to avoid server side request forgery.
712
+
713
+ 179
714
+ 00:16:52,000 --> 00:16:55,000
715
+ Let's review other examples of attack.
716
+
717
+ 180
718
+ 00:16:55,000 --> 00:16:59,000
719
+ Scenario number one, ports come in channel service.
720
+
721
+ 181
722
+ 00:17:00,000 --> 00:17:08,000
723
+ If the network architecture is segmented, attackers can map out internal networks and determine if
724
+
725
+ 182
726
+ 00:17:08,000 --> 00:17:14,000
727
+ ports are open or closed on a channel service from connection results.
728
+
729
+ 183
730
+ 00:17:14,000 --> 00:17:19,000
731
+ The defined ports can be used for further attacks.
732
+
733
+ 184
734
+ 00:17:20,000 --> 00:17:28,000
735
+ Segment of network architecture is an opportunity for attackers as they can use them to figure out whether
736
+
737
+ 185
738
+ 00:17:28,000 --> 00:17:31,000
739
+ or not the internal server ports are open.
740
+
741
+ 186
742
+ 00:17:31,000 --> 00:17:37,000
743
+ If ports are open, they can easily carry and service sites request for connection.
744
+
745
+ 187
746
+ 00:17:38,000 --> 00:17:43,000
747
+ Understand what a segmented network architecture is.
748
+
749
+ 188
750
+ 00:17:43,000 --> 00:17:46,000
751
+ Let me explain what network segmentation is.
752
+
753
+ 189
754
+ 00:17:47,000 --> 00:17:56,000
755
+ Network segmentation is an architectural approach that divides a network into multiple segments of subnets,
756
+
757
+ 190
758
+ 00:17:56,000 --> 00:17:59,000
759
+ each acting as its own small network.
760
+
761
+ 191
762
+ 00:18:00,000 --> 00:18:08,000
763
+ This allows network administrators to control the flow of traffic between subnets based on granular
764
+
765
+ 192
766
+ 00:18:08,000 --> 00:18:09,000
767
+ policies.
768
+
769
+ 193
770
+ 00:18:09,000 --> 00:18:17,000
771
+ Organizations use segmentation to improve monitoring, boost performance, localized technical issues,
772
+
773
+ 194
774
+ 00:18:17,000 --> 00:18:21,000
775
+ and, most importantly, enhanced security.
776
+
777
+ 195
778
+ 00:18:22,000 --> 00:18:27,000
779
+ Scenario number two, attacks against the local host.
780
+
781
+ 196
782
+ 00:18:28,000 --> 00:18:36,000
783
+ If the local machine doesn't validate requests from the local host or execute them with elevated privilege,
784
+
785
+ 197
786
+ 00:18:36,000 --> 00:18:39,000
787
+ the server becomes an attack target.
788
+
789
+ 198
790
+ 00:18:40,000 --> 00:18:49,000
791
+ The TOCA convinces the application to make an HDP request back to the hosting server via its loopback
792
+
793
+ 199
794
+ 00:18:49,000 --> 00:18:50,000
795
+ network interface.
796
+
797
+ 200
798
+ 00:18:51,000 --> 00:19:02,000
799
+ Frequently, this involves the attacker supplying a euro with the host name like 120 7001 or just localhost.
800
+
801
+ 201
802
+ 00:19:03,000 --> 00:19:11,000
803
+ And just like that, that takes advantage of the trust relationship the system has with its internal
804
+
805
+ 202
806
+ 00:19:11,000 --> 00:19:11,000
807
+ requests.
808
+
809
+ 203
810
+ 00:19:12,000 --> 00:19:20,000
811
+ Scenario number three, attacks against other banking systems similar to the attack against the server
812
+
813
+ 204
814
+ 00:19:20,000 --> 00:19:21,000
815
+ itself.
816
+
817
+ 205
818
+ 00:19:21,000 --> 00:19:29,000
819
+ When developers assume that network topologies protect an internal systems, we often see weak server
820
+
821
+ 206
822
+ 00:19:29,000 --> 00:19:34,000
823
+ security controls configurations for interactions on the local network.
824
+
825
+ 207
826
+ 00:19:35,000 --> 00:19:43,000
827
+ Attackers take advantage of backend systems that contain sensitive functionality and lock authentication
828
+
829
+ 208
830
+ 00:19:43,000 --> 00:19:48,000
831
+ mechanisms for anyone accessing ZAP from the local network.
832
+
833
+ 209
834
+ 00:19:49,000 --> 00:19:56,000
835
+ We already discussed today trustful relationships between BEC and service of the application itself.
836
+
837
+ 210
838
+ 00:19:56,000 --> 00:20:00,000
839
+ It can be a risk factor for such kind of vulnerability.
840
+
841
+ 211
842
+ 00:20:01,000 --> 00:20:02,000
843
+ Samarra.
844
+
845
+ 212
846
+ 00:20:02,000 --> 00:20:06,000
847
+ Number four, attacks against third party systems.
848
+
849
+ 213
850
+ 00:20:07,000 --> 00:20:15,000
851
+ When a company doesn't adequately protect its systems, an attacker can hijack them to launch attacks
852
+
853
+ 214
854
+ 00:20:15,000 --> 00:20:17,000
855
+ against the third party.
856
+
857
+ 215
858
+ 00:20:17,000 --> 00:20:26,000
859
+ This attack uses a trust relationship between the vulnerable company and the customer or vendor to access
860
+
861
+ 216
862
+ 00:20:26,000 --> 00:20:34,000
863
+ private resources, and that can also launch attacks using the vulnerable server as a pivot point,
864
+
865
+ 217
866
+ 00:20:34,000 --> 00:20:39,000
867
+ making the victim company appear to be the source of the attack.
868
+
869
+ 218
870
+ 00:20:39,000 --> 00:20:47,000
871
+ Now I suggest to summarize all what we have learned and gather rules and guidelines to follow in order
872
+
873
+ 219
874
+ 00:20:47,000 --> 00:20:49,000
875
+ to avoid server side requests.
876
+
877
+ 220
878
+ 00:20:49,000 --> 00:20:50,000
879
+ Forgery.
880
+
881
+ 221
882
+ 00:20:50,000 --> 00:20:58,000
883
+ It is recommended to implement security controls on different levels, namely on the network layer and
884
+
885
+ 222
886
+ 00:20:58,000 --> 00:21:00,000
887
+ on the application layer.
888
+
889
+ 223
890
+ 00:21:01,000 --> 00:21:09,000
891
+ On the network layer segment remote resource access functionality in separate networks to reduce the
892
+
893
+ 224
894
+ 00:21:09,000 --> 00:21:12,000
895
+ impact of the server side request forgery.
896
+
897
+ 225
898
+ 00:21:13,000 --> 00:21:19,000
899
+ We already talked today about network segmentation, so I will not stop on this.
900
+
901
+ 226
902
+ 00:21:20,000 --> 00:21:29,000
903
+ Enforce denied by default firewall policies or network access control rules to block all but essential
904
+
905
+ 227
906
+ 00:21:29,000 --> 00:21:30,000
907
+ internet traffic.
908
+
909
+ 228
910
+ 00:21:31,000 --> 00:21:38,000
911
+ On the application layer, sanitise and validate all client supplied input data.
912
+
913
+ 229
914
+ 00:21:38,000 --> 00:21:46,000
915
+ In some previous lessons, we already discussed correctness of using block list and allow list, maintain
916
+
917
+ 230
918
+ 00:21:46,000 --> 00:21:54,000
919
+ and allow list or deny list of both of your rails that you would make or denies a request to respectively
920
+
921
+ 231
922
+ 00:21:55,000 --> 00:22:02,000
923
+ develop a safe list of the allowed, the means, resources and protocols for fetching resources and
924
+
925
+ 232
926
+ 00:22:02,000 --> 00:22:04,000
927
+ enforce its use.
928
+
929
+ 233
930
+ 00:22:04,000 --> 00:22:11,000
931
+ Next perform safe list input validation on all inputs whenever possible.
932
+
933
+ 234
934
+ 00:22:11,000 --> 00:22:19,000
935
+ Do not accept user input in functions that control where the web server can fetch resources if your
936
+
937
+ 235
938
+ 00:22:19,000 --> 00:22:24,000
939
+ application must accept such user inputs validate.
940
+
941
+ 236
942
+ 00:22:25,000 --> 00:22:28,000
943
+ Do not send raw responses to clients.
944
+
945
+ 237
946
+ 00:22:29,000 --> 00:22:36,000
947
+ Removing trust relationships will reduce your potential server site request forgery attack surface use
948
+
949
+ 238
950
+ 00:22:36,000 --> 00:22:43,000
951
+ parameterization properly and implement a zero trust architecture which requires the various parts of
952
+
953
+ 239
954
+ 00:22:43,000 --> 00:22:51,000
955
+ the application environment to always revalidate one another in the previous lessons, namely when we
956
+
957
+ 240
958
+ 00:22:51,000 --> 00:22:57,000
959
+ learn security misconfiguration we already talked about zero trust security model.
960
+
961
+ 241
962
+ 00:22:58,000 --> 00:23:02,000
963
+ Please refer to the lesson if you want to refresh your knowledge.
964
+
965
+ 242
966
+ 00:23:03,000 --> 00:23:12,000
967
+ 20/21 is a service site request for its first year on the WASP lease, and security professionals should
968
+
969
+ 243
970
+ 00:23:12,000 --> 00:23:17,000
971
+ expect to encounter this read more and more in the coming years.
972
+
973
+ 244
974
+ 00:23:17,000 --> 00:23:24,000
975
+ But if you are effectively testing your applications and remediating issues quickly and correctly,
976
+
977
+ 245
978
+ 00:23:24,000 --> 00:23:32,000
979
+ you'll be prepared to support and resolve server side requests, forgery vulnerabilities before an attacker
980
+
981
+ 246
982
+ 00:23:32,000 --> 00:23:33,000
983
+ exploits them.
984
+
985
+ 247
986
+ 00:23:34,000 --> 00:23:37,000
987
+ That's all what I wanted to share with you today.
988
+
989
+ 248
990
+ 00:23:37,000 --> 00:23:40,000
991
+ Let's recap what we have learned.
992
+
993
+ 249
994
+ 00:23:40,000 --> 00:23:44,000
995
+ We learned today what seven sites request forgery is.
996
+
997
+ 250
998
+ 00:23:45,000 --> 00:23:47,000
999
+ We learned risk factors.
1000
+
1001
+ 251
1002
+ 00:23:47,000 --> 00:23:50,000
1003
+ I explained potential impacts.
1004
+
1005
+ 252
1006
+ 00:23:50,000 --> 00:23:55,000
1007
+ We discussed different types of server side request forgery.
1008
+
1009
+ 253
1010
+ 00:23:55,000 --> 00:24:04,000
1011
+ As usual, we compared Avast Top ten 2017 versus Avast Top ten 2021.
1012
+
1013
+ 254
1014
+ 00:24:04,000 --> 00:24:13,000
1015
+ And we reviewed a lot of different examples of attacks, including Capital One incident, Java example
1016
+
1017
+ 255
1018
+ 00:24:13,000 --> 00:24:15,000
1019
+ and other attack examples.
1020
+
1021
+ 256
1022
+ 00:24:16,000 --> 00:24:21,000
1023
+ And at the end of the lesson, we discussed how to prevent server side request forgery.
1024
+
1025
+ 257
1026
+ 00:24:22,000 --> 00:24:24,000
1027
+ That's all for today.
1028
+
1029
+ 258
1030
+ 00:24:24,000 --> 00:24:26,000
1031
+ Thank you for your attention.
1032
+
1033
+ 259
1034
+ 00:24:26,000 --> 00:24:29,000
1035
+ Have a great day and see you in the next lesson.
1036
+
73 - OWASP Top 10 2021/external-links.txt ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ 001 Common-Weakness-Enumeration-CWE-official-website
3
+ https://cwe.mitre.org/index.html
4
+
5
+ 002 Source-code-examples-from-the-lesson
6
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/bac
7
+
8
+ 004 Source-code-examples-from-the-lesson
9
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/cf
10
+
11
+ 005 Source-code-examples-from-the-lesson
12
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/cf
13
+
14
+ 006 Source-code-examples-from-the-lesson
15
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/i/problem
16
+
17
+ 007 Source-code-examples-from-the-lesson
18
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/i/problem
19
+
20
+ 008 Source-code-examples-from-the-lesson
21
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/owasp/i/problem
22
+
23
+ 011 NIST-800-123-Guide-to-General-Server-Security
24
+ https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-123.pdf
25
+
26
+ 011 NIST-800-207-Zero-Trust-Architecture
27
+ https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf
28
+
29
+ 012 NIST-800-123-Guide-to-General-Server-Security
30
+ https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-123.pdf
31
+
32
+ 012 NIST-800-207-Zero-Trust-Architecture
33
+ https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf
34
+
35
+ 013 pom.xml-from-the-lesson-with-OWASP-plugin
36
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/pom.xml
37
+
38
+ 013 Dependency-check-plugin
39
+ https://mvnrepository.com/artifact/org.owasp/dependency-check-maven/7.1.0
40
+
41
+ 016 Computer-Security-Incident-Handling-Guide
42
+ https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-61r2.pdf
74 - OWASP API Security Top 10 2023/001 OWASP API Security Project & OWASP API Security Top 10 2023.html ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>OWASP API Security Project & OWASP API Security Top 10 2023</title>
7
+
8
+ <style>
9
+ * {
10
+ box-sizing: border-box;
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+ body {
15
+ font-family: var(--font-stack-text);
16
+ font-weight: 400;
17
+ line-height: 1.4;
18
+ font-size: 1.6rem;
19
+ color: #2d2f31;
20
+ }
21
+ .container {
22
+ position: relative;
23
+ height: 100%;
24
+ overflow-y: auto;
25
+ }
26
+ .content {
27
+ padding: 3.2rem 4.8rem;
28
+ word-break: break-word;
29
+ max-width: 69.6rem;
30
+ margin: 0 auto;
31
+ }
32
+ .heading {
33
+ margin-bottom: 24px;
34
+ font-family: -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", Helvetica, Arial, sans-serif,
35
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
36
+ font-weight: 700;
37
+ line-height: 1.2;
38
+ letter-spacing: 0;
39
+ font-size: 32px;
40
+ max-width: 36em;
41
+ }
42
+ .article-asset-container {
43
+ padding: 2.4rem;
44
+ }
45
+ .article-asset-container p {
46
+ font-size: 19px;
47
+ }
48
+ code {
49
+ background-color: #fff;
50
+ border: 1px solid #d1d7dc;
51
+ color: #b4690e;
52
+ font-size: 80%;
53
+ padding: 0.2rem 0.4rem;
54
+ font-family: sfmono-regular, Consolas, liberation mono, Menlo, Courier, monospace;
55
+ }
56
+ p {
57
+ font-weight: 400;
58
+ }
59
+ </style>
60
+ </head>
61
+ <body>
62
+ <div class="container">
63
+ <div class="content">
64
+ <div class="heading">OWASP API Security Project & OWASP API Security Top 10 2023</div>
65
+ <div class="article-asset-container"><h4>Introduction to OWASP API Security Top 10 2023</h4><p><br></p><h4>Why Learn the OWASP API Security Top 10 2023?</h4><p>In today's digital landscape, APIs (Application Programming Interfaces) are integral to the functionality and interconnectivity of web applications, mobile applications, and IoT devices. They allow different systems to communicate and share data seamlessly. However, with this increased reliance on APIs comes an elevated risk of security vulnerabilities. Learning the OWASP API Security Top 10 2023 is crucial because:</p><ol><li><p><strong>API Proliferation</strong>: APIs are becoming more prevalent, making them attractive targets for attackers.</p></li><li><p><strong>Unique Vulnerabilities</strong>: APIs have unique security challenges that differ from traditional web applications, requiring specialized knowledge to mitigate.</p></li><li><p><strong>Data Sensitivity</strong>: APIs often handle sensitive data, and breaches can lead to severe data leaks and privacy violations.</p></li><li><p><strong>Business Impact</strong>: Security flaws in APIs can lead to significant business disruptions, financial loss, and damage to reputation.</p></li></ol><p><br></p><p><br></p><h4>Introduction to API Security - Importance of API Security in Today's Digital Landscape</h4><p>APIs (Application Programming Interfaces) have become integral to modern software applications, facilitating seamless communication and interaction between different systems and services. However, the increased reliance on APIs also exposes organizations to new security risks. Ensuring API security is crucial because:</p><ul><li><p><strong>Data Exposure:</strong> APIs often handle sensitive data such as user information, financial records, and business transactions. Insecure APIs can lead to data breaches, compromising confidentiality and privacy.</p></li><li><p><strong>Business Continuity:</strong> API disruptions or compromises can disrupt operations, leading to financial losses and reputational damage.</p></li><li><p><strong>Regulatory Compliance:</strong> Many industries are subject to strict regulations (e.g., GDPR, HIPAA) that mandate the protection of user data. Non-compliance can result in significant penalties.</p></li></ul><p><br></p><p><br></p><h4>Key Differences Between OWASP&nbsp;Top 10 2021 and OWASP&nbsp;API&nbsp;Security Top 10 2023</h4><p>OWASP API Security Project: focuses on strategies and solutions to understand and mitigate the unique vulnerabilities and security risks of Application Programming Interfaces (APIs). Includes the most recent list API Security Top 10 2023.</p><p>The OWASP API Security Top 10 focuses specifically on the unique vulnerabilities and security risks associated with Application Programming Interfaces (APIs), whereas the OWASP Top 10 2021 addresses the most critical web application security risks in general.</p><h4>Key Differences</h4><ol><li><p><strong>Scope</strong>:</p><ul><li><p><strong>OWASP API Security Top 10</strong>: Focuses solely on API-specific security risks.</p></li><li><p><strong>OWASP Top 10</strong>: Covers a broader range of web application security risks.</p></li></ul></li><li><p><strong>Focus on Implementation Details</strong>:</p><ul><li><p>The API Security list often dives deeper into issues that are particularly relevant to the nature of API implementations, such as asset management, rate limiting, and object/function level authorization.</p></li></ul></li><li><p><strong>New Additions in General List</strong>:</p><ul><li><p>The general list introduces newer categories like SSRF, insecure design, and software/data integrity failures, which are not specifically addressed in the API list.</p></li></ul></li></ol><p><br></p><p><br></p><p><br></p><h4>What is in Common between OWASP&nbsp;API&nbsp;Security Top 10 2023 and the OWASP Top 10 2021?</h4><p><br></p><figure><img src="https://img-c.udemycdn.com/redactor/raw/article_lecture/2024-07-10_21-44-56-ebbd8c2cb5bccb3dbf58786847a233e4.jpg"></figure><p>The OWASP API Security Top 10 2023 shares several commonalities with the OWASP Top 10 2021, reflecting enduring security challenges that affect both APIs and web applications. Here's a closer look at the similarities:</p><ol><li><p><strong>Security Misconfiguration</strong>: This risk remains a critical concern in both lists. Security misconfigurations occur when security settings are not defined, implemented, or maintained correctly, leading to vulnerabilities. Both APIs and web applications suffer from this issue due to complex configurations and the potential for human error.</p></li><li><p><strong>Server-Side Request Forgery (SSRF)</strong>: This risk appears in both lists, highlighting the importance of protecting servers from unauthorized internal requests that can lead to data leaks or manipulation.</p><p><br></p></li></ol><h4>Renamed and Reframed Categories</h4><p>Some risks have been renamed or reframed in the API Security list to better reflect their specific context within APIs:</p><ul><li><p><strong>Broken Access Control</strong> in the 2021 list is now split into <strong>Broken Object Level Authorization</strong> and <strong>Broken Function Level Authorization</strong> in the API list, emphasizing different aspects of access control failures. Both lists address issues related to access control. In the API Security list, this is split into Broken Object Level Authorization and Broken Function Level Authorization, focusing on the granularity of access controls at the object and function levels, respectively. In the OWASP Top 10 2021, Broken Access Control covers a broader range of access control failures.</p></li><li><p><strong>Identification and Authentication Failures</strong> from the 2021 list is now <strong>Broken Authentication</strong> in the API list, focusing on the critical aspects of user authentication.</p></li><li><p><strong>Vulnerable and Outdated Components</strong> has been reframed as <strong>Improper Inventory Management</strong> in the API list, reflecting the importance of managing API components and dependencies properly.</p></li></ul><h4>Removed and New Additions</h4><p>The OWASP Top 10 2021 includes categories that are not explicitly listed in the API Security Top 10 2023, such as:</p><ul><li><p><strong>Cryptographic Failures</strong></p></li><li><p><strong>Injection</strong></p></li><li><p><strong>Insecure Design</strong></p></li><li><p><strong>Software and Data Integrity Failures</strong></p></li><li><p><strong>Security Logging and Monitoring Failures</strong></p></li></ul><p>Conversely, the API Security Top 10 introduces categories specifically relevant to APIs, such as:</p><ul><li><p><strong>Broken Object Property Level Authorization</strong></p></li><li><p><strong>Unrestricted Resource Consumption</strong></p></li><li><p><strong>Broken Function Level Authorization</strong></p></li><li><p><strong>Unrestricted Access to Sensitive Business Flows</strong></p></li><li><p><strong>Unsage Consumption of APIs</strong></p></li></ul><p>And we are going to learn all the details in the course.</p><p><br></p><p><br></p><p><br></p><h4>Do We Need to Learn the OWASP Top 10 2021 First?</h4><p>Understanding the OWASP Top 10 2021 provides a solid foundation for web application security. This knowledge is beneficial when transitioning to the more specialized OWASP API Security Top 10 2023. The commonalities and renamed categories underscore the evolving nature of security threats while maintaining a focus on core security principles. By mastering both lists, you can better protect both general web applications and the APIs that power modern digital ecosystems.</p><p>While it's not strictly necessary to learn the OWASP Top 10 2021 before delving into the OWASP API Security Top 10 2023, it is highly beneficial. Understanding the broader context of web application security will provide a strong foundation and enhance your comprehension of API-specific vulnerabilities. The OWASP Top 10 2021 covers fundamental security concepts that are also relevant to APIs, such as access control, injection flaws, and security misconfigurations.</p><p><br></p><p><br></p><h4>Additional Information</h4><ul><li><p><strong>Evolving Threat Landscape</strong>: As the threat landscape evolves, staying updated with the latest security practices and vulnerabilities is essential. The OWASP API Security Top 10 2023 reflects the latest insights and research in API security.</p></li><li><p><strong>Complementary Knowledge</strong>: Combining knowledge from both the OWASP Top 10 2021 and the OWASP API Security Top 10 2023 ensures a comprehensive understanding of web security, allowing you to safeguard both web applications and APIs effectively.</p></li><li><p><strong>Practical Applications</strong>: Learning these security principles is not just theoretical but highly practical. Implementing these best practices can prevent many common and potentially devastating security breaches.</p></li></ul><p>By understanding and applying the principles from both OWASP Top 10 lists, you can build more secure applications and contribute to a safer digital ecosystem.</p></div>
66
+ </div>
67
+ </div>
68
+ </body>
69
+ </html>
74 - OWASP API Security Top 10 2023/002 API12023 Broken Object Level Authorization - Part 1_en.srt ADDED
@@ -0,0 +1,720 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:05,000 --> 00:00:06,000
3
+ Hello, Tim.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:13,000
7
+ Today we start review of the first vulnerability from the OWASp API Security Top ten 2023 list.
8
+
9
+ 3
10
+ 00:00:13,000 --> 00:00:17,000
11
+ In this lesson, we are going to learn broken object level authorization.
12
+
13
+ 4
14
+ 00:00:18,000 --> 00:00:20,000
15
+ So here's what we'll be covering today.
16
+
17
+ 5
18
+ 00:00:20,000 --> 00:00:26,000
19
+ First I will define object level authorization and explain its importance in modern applications.
20
+
21
+ 6
22
+ 00:00:27,000 --> 00:00:32,000
23
+ Following that we'll delve into broken object level authorization vulnerabilities, discussing their
24
+
25
+ 7
26
+ 00:00:32,000 --> 00:00:40,000
27
+ prevalence in APIs and how they relate to the OWASp top ten list, specifically under Broken Access
28
+
29
+ 8
30
+ 00:00:40,000 --> 00:00:41,000
31
+ Control.
32
+
33
+ 9
34
+ 00:00:41,000 --> 00:00:48,000
35
+ Next, we'll examine some real world examples of data breaches caused by broken object level authorization
36
+
37
+ 10
38
+ 00:00:48,000 --> 00:00:56,000
39
+ and discuss the severe consequences these breaches have for both organisations, and users will then
40
+
41
+ 11
42
+ 00:00:56,000 --> 00:01:02,000
43
+ explore insecure coding practices that lead to broken object level authorization vulnerabilities.
44
+
45
+ 12
46
+ 00:01:03,000 --> 00:01:08,000
47
+ To make it practical, I will demonstrate with the code example from an online shop highlighting the
48
+
49
+ 13
50
+ 00:01:08,000 --> 00:01:11,000
51
+ problem and providing a solution.
52
+
53
+ 14
54
+ 00:01:11,000 --> 00:01:18,000
55
+ After this, we'll look into how to enforce robust authorization mechanisms and the importance of continuous
56
+
57
+ 15
58
+ 00:01:18,000 --> 00:01:21,000
59
+ testing and validation of authorization logic.
60
+
61
+ 16
62
+ 00:01:21,000 --> 00:01:28,000
63
+ We'll also cover the use of random, universally unique identifiers, discussing implementation considerations
64
+
65
+ 17
66
+ 00:01:28,000 --> 00:01:32,000
67
+ when integrating Uuids into API ecosystems.
68
+
69
+ 18
70
+ 00:01:32,000 --> 00:01:38,000
71
+ Additionally, we'll discuss securing the business logic layer to ensure comprehensive protection.
72
+
73
+ 19
74
+ 00:01:38,000 --> 00:01:44,000
75
+ Finally, we'll explore the zero trust security model and how its principles can effectively mitigate
76
+
77
+ 20
78
+ 00:01:44,000 --> 00:01:47,000
79
+ broken object level authorization vulnerabilities.
80
+
81
+ 21
82
+ 00:01:48,000 --> 00:01:50,000
83
+ So let's start our lesson.
84
+
85
+ 22
86
+ 00:01:51,000 --> 00:01:53,000
87
+ Let's start from understanding the general concept.
88
+
89
+ 23
90
+ 00:01:54,000 --> 00:01:59,000
91
+ Let's define object level authorization and answer the question why it is important.
92
+
93
+ 24
94
+ 00:02:00,000 --> 00:02:05,000
95
+ Object level authorization refers to the practice of controlling access to individual data.
96
+
97
+ 25
98
+ 00:02:05,000 --> 00:02:09,000
99
+ objects based on the permissions granted to users or roles.
100
+
101
+ 26
102
+ 00:02:09,000 --> 00:02:18,000
103
+ It ensures that users can only perform actions, for example, view, edit, delete on data objects
104
+
105
+ 27
106
+ 00:02:18,000 --> 00:02:20,000
107
+ they are authorized to access.
108
+
109
+ 28
110
+ 00:02:20,000 --> 00:02:23,000
111
+ The importance of object level authorization includes.
112
+
113
+ 29
114
+ 00:02:23,000 --> 00:02:31,000
115
+ Granular control allows organizations to enforce fine grained access controls, limiting exposure and
116
+
117
+ 30
118
+ 00:02:31,000 --> 00:02:33,000
119
+ reducing the impact of potential breaches.
120
+
121
+ 31
122
+ 00:02:34,000 --> 00:02:42,000
123
+ Compliance helps organizations meet regulatory requirements by ensuring data access is restricted to
124
+
125
+ 32
126
+ 00:02:42,000 --> 00:02:43,000
127
+ authorized personnel only.
128
+
129
+ 33
130
+ 00:02:44,000 --> 00:02:51,000
131
+ Broken object level authorization vulnerabilities specifically relates to weaknesses in how APIs enforce
132
+
133
+ 34
134
+ 00:02:51,000 --> 00:02:55,000
135
+ access controls at the level of individual data objects.
136
+
137
+ 35
138
+ 00:02:55,000 --> 00:02:59,000
139
+ For example, records, files, resources.
140
+
141
+ 36
142
+ 00:02:59,000 --> 00:03:07,000
143
+ These vulnerabilities arise when APIs fail to adequately verify whether a user has the necessary permissions
144
+
145
+ 37
146
+ 00:03:07,000 --> 00:03:10,000
147
+ to access or manipulate specific data objects.
148
+
149
+ 38
150
+ 00:03:11,000 --> 00:03:17,000
151
+ APIs may grant broader access rights than necessary, allowing users to perform actions they shouldn't
152
+
153
+ 39
154
+ 00:03:17,000 --> 00:03:18,000
155
+ be authorized to do.
156
+
157
+ 40
158
+ 00:03:19,000 --> 00:03:27,000
159
+ Broken object level authorization vulnerabilities occur due to flaws in how APIs implement object level
160
+
161
+ 41
162
+ 00:03:27,000 --> 00:03:28,000
163
+ authorization.
164
+
165
+ 42
166
+ 00:03:28,000 --> 00:03:30,000
167
+ Common scenarios include.
168
+
169
+ 43
170
+ 00:03:31,000 --> 00:03:33,000
171
+ Direct object references.
172
+
173
+ 44
174
+ 00:03:33,000 --> 00:03:40,000
175
+ APIs expose internal object references, for example, database IDs without proper validation, allowing
176
+
177
+ 45
178
+ 00:03:40,000 --> 00:03:44,000
179
+ attackers to manipulate these references to access unauthorized data.
180
+
181
+ 46
182
+ 00:03:45,000 --> 00:03:53,000
183
+ Predictable Object Identifiers APIs use predictable patterns or sequential identifiers for objects,
184
+
185
+ 47
186
+ 00:03:53,000 --> 00:04:00,000
187
+ making it easier for attackers to guess or iterate through IDs to access unauthorized resources.
188
+
189
+ 48
190
+ 00:04:01,000 --> 00:04:08,000
191
+ Inadequate scope validation APIs may lack checks to ensure that users are restricted to accessing only
192
+
193
+ 49
194
+ 00:04:08,000 --> 00:04:13,000
195
+ their own data or data they are explicitly authorized to access.
196
+
197
+ 50
198
+ 00:04:14,000 --> 00:04:20,000
199
+ Broken object level authorization vulnerabilities are prevalent in APIs across various industries and
200
+
201
+ 51
202
+ 00:04:20,000 --> 00:04:23,000
203
+ have been exploited in high profile data breaches.
204
+
205
+ 52
206
+ 00:04:24,000 --> 00:04:30,000
207
+ Understanding these vulnerabilities is crucial for implementing effective security measures and protecting
208
+
209
+ 53
210
+ 00:04:30,000 --> 00:04:33,000
211
+ sensitive data within API ecosystems.
212
+
213
+ 54
214
+ 00:04:34,000 --> 00:04:40,000
215
+ If you are a student of my OWASp top ten course, I believe you remember that I had a lesson with you
216
+
217
+ 55
218
+ 00:04:40,000 --> 00:04:43,000
219
+ about such categories as broken Access Control.
220
+
221
+ 56
222
+ 00:04:43,000 --> 00:04:48,000
223
+ By the way, I recommend to make sure you watch that lesson before you continue with this one.
224
+
225
+ 57
226
+ 00:04:49,000 --> 00:04:55,000
227
+ Let's understand how broken access control is connected with broken object level authorization.
228
+
229
+ 58
230
+ 00:04:56,000 --> 00:05:04,000
231
+ The OWASp top ten is a widely recognized list of the top ten most critical security risks to web applications.
232
+
233
+ 59
234
+ 00:05:05,000 --> 00:05:12,000
235
+ Broken Access Control ranks prominently on this list due to its significant impact on data confidentiality,
236
+
237
+ 60
238
+ 00:05:12,000 --> 00:05:14,000
239
+ integrity, and availability.
240
+
241
+ 61
242
+ 00:05:14,000 --> 00:05:20,000
243
+ Key points from the OWASp top ten 2021 regarding Broken Access Control include.
244
+
245
+ 62
246
+ 00:05:21,000 --> 00:05:28,000
247
+ Broken access control refers to vulnerabilities that occur when restrictions on what authenticated users
248
+
249
+ 63
250
+ 00:05:28,000 --> 00:05:31,000
251
+ are allowed to do are not properly enforced.
252
+
253
+ 64
254
+ 00:05:32,000 --> 00:05:37,000
255
+ This includes both vertical and horizontal access control issues.
256
+
257
+ 65
258
+ 00:05:38,000 --> 00:05:45,000
259
+ Exploitation of broken access control can lead to unauthorized data access, modification or deletion,
260
+
261
+ 66
262
+ 00:05:45,000 --> 00:05:52,000
263
+ allowing attackers to bypass authorization mechanisms and perform actions outside their intended scope.
264
+
265
+ 67
266
+ 00:05:53,000 --> 00:05:59,000
267
+ Issues typically arise due to improper configuration, insufficient validation of user permissions,
268
+
269
+ 68
270
+ 00:05:59,000 --> 00:06:03,000
271
+ or weaknesses in how access control rules are implemented and enforced.
272
+
273
+ 69
274
+ 00:06:04,000 --> 00:06:11,000
275
+ Broken object level authorization is closely related to broken access control, and can be seen as a
276
+
277
+ 70
278
+ 00:06:11,000 --> 00:06:16,000
279
+ specific instance or subset of this broader vulnerability category.
280
+
281
+ 71
282
+ 00:06:16,000 --> 00:06:24,000
283
+ Here's how broken object level authorization relates to and overlaps with broken access control.
284
+
285
+ 72
286
+ 00:06:25,000 --> 00:06:32,000
287
+ Broken access control includes a wide range of access control issues, including both overarching authorization
288
+
289
+ 73
290
+ 00:06:32,000 --> 00:06:36,000
291
+ floors and more granular object level authorization.
292
+
293
+ 74
294
+ 00:06:36,000 --> 00:06:36,000
295
+ Weaknesses.
296
+
297
+ 75
298
+ 00:06:37,000 --> 00:06:44,000
299
+ Broken object level authorization specifically focuses on vulnerabilities where APIs fail to enforce
300
+
301
+ 76
302
+ 00:06:44,000 --> 00:06:50,000
303
+ proper access controls at the level of individual data objects, for example records files.
304
+
305
+ 77
306
+ 00:06:50,000 --> 00:06:51,000
307
+ Resource.
308
+
309
+ 78
310
+ 00:06:52,000 --> 00:06:58,000
311
+ This often involves scenarios where direct object references or predictable identifiers are exposed
312
+
313
+ 79
314
+ 00:06:58,000 --> 00:07:02,000
315
+ without adequate validation or authorization checks.
316
+
317
+ 80
318
+ 00:07:02,000 --> 00:07:10,000
319
+ While broken access control addresses systemic access control failures across an application, broken
320
+
321
+ 81
322
+ 00:07:10,000 --> 00:07:17,000
323
+ object level authorization vulnerabilities typically manifest in specific instances where object level
324
+
325
+ 82
326
+ 00:07:17,000 --> 00:07:19,000
327
+ permissions are not correctly implemented.
328
+
329
+ 83
330
+ 00:07:20,000 --> 00:07:27,000
331
+ These vulnerabilities can lead to unauthorized access to sensitive data objects, which is a critical
332
+
333
+ 84
334
+ 00:07:27,000 --> 00:07:29,000
335
+ subset of the broader access control issues.
336
+
337
+ 85
338
+ 00:07:30,000 --> 00:07:38,000
339
+ Broken access control and broken object level authorization both address critical aspects of application
340
+
341
+ 86
342
+ 00:07:38,000 --> 00:07:44,000
343
+ security, but focus on different scopes and vulnerabilities within the application stack.
344
+
345
+ 87
346
+ 00:07:45,000 --> 00:07:51,000
347
+ While broken access control tackles broader access control issues across various application interfaces,
348
+
349
+ 88
350
+ 00:07:52,000 --> 00:07:59,000
351
+ broken object level authorization hones in on specific vulnerabilities within API endpoints where object
352
+
353
+ 89
354
+ 00:07:59,000 --> 00:08:04,000
355
+ level permissions are manipulated or inadequately enforced.
356
+
357
+ 90
358
+ 00:08:04,000 --> 00:08:11,000
359
+ Organizations must implement tailored security measures to mitigate both types of vulnerabilities effectively
360
+
361
+ 91
362
+ 00:08:11,000 --> 00:08:16,000
363
+ and safeguard the applications against unauthorized access and data breaches.
364
+
365
+ 92
366
+ 00:08:17,000 --> 00:08:24,000
367
+ Let's review some real world examples of data breaches due to broken object level authorization.
368
+
369
+ 93
370
+ 00:08:24,000 --> 00:08:29,000
371
+ I believe these examples will motivate you to learn this lesson more thoroughly.
372
+
373
+ 94
374
+ 00:08:30,000 --> 00:08:31,000
375
+ Broken object level.
376
+
377
+ 95
378
+ 00:08:31,000 --> 00:08:38,000
379
+ authorization vulnerabilities have been implicated in several high profile data breaches, underscoring
380
+
381
+ 96
382
+ 00:08:38,000 --> 00:08:41,000
383
+ their significance in compromising data security.
384
+
385
+ 97
386
+ 00:08:41,000 --> 00:08:43,000
387
+ Here are some real world examples.
388
+
389
+ 98
390
+ 00:08:44,000 --> 00:08:46,000
391
+ USPS data breach.
392
+
393
+ 99
394
+ 00:08:46,000 --> 00:08:53,000
395
+ In 2014, the United States Postal Service suffered a significant data breach attributed to broken object
396
+
397
+ 100
398
+ 00:08:53,000 --> 00:08:56,000
399
+ level authorization vulnerabilities.
400
+
401
+ 101
402
+ 00:08:56,000 --> 00:09:05,000
403
+ Attackers exploited weaknesses in Usps's API endpoints, allowing them to manipulate object IDs to access
404
+
405
+ 102
406
+ 00:09:05,000 --> 00:09:08,000
407
+ sensitive information belonging to millions of users.
408
+
409
+ 103
410
+ 00:09:09,000 --> 00:09:15,000
411
+ The breach exposed personal data, including addresses, tracking information, and other confidential
412
+
413
+ 104
414
+ 00:09:15,000 --> 00:09:19,000
415
+ details affecting a vast number of USPS customers.
416
+
417
+ 105
418
+ 00:09:20,000 --> 00:09:22,000
419
+ Facebook data breach.
420
+
421
+ 106
422
+ 00:09:23,000 --> 00:09:29,000
423
+ Facebook experienced a broken object level authorization related data breach in 2018.
424
+
425
+ 107
426
+ 00:09:29,000 --> 00:09:36,000
427
+ Attackers exploited a flaw in Facebook's API that allowed them to access users private photos without
428
+
429
+ 108
430
+ 00:09:36,000 --> 00:09:38,000
431
+ proper authorization.
432
+
433
+ 109
434
+ 00:09:39,000 --> 00:09:45,000
435
+ Millions of users private photos were exposed, leading to privacy concerns and reputational damage
436
+
437
+ 110
438
+ 00:09:45,000 --> 00:09:46,000
439
+ for Facebook.
440
+
441
+ 111
442
+ 00:09:47,000 --> 00:09:49,000
443
+ Equifax data breach.
444
+
445
+ 112
446
+ 00:09:50,000 --> 00:09:57,000
447
+ In 2017, Equifax, one of the largest credit reporting agencies in the US, suffered a massive data
448
+
449
+ 113
450
+ 00:09:57,000 --> 00:09:58,000
451
+ breach.
452
+
453
+ 114
454
+ 00:09:58,000 --> 00:10:05,000
455
+ The breach was due to a combination of factors, including broken object level authorization, vulnerabilities
456
+
457
+ 115
458
+ 00:10:05,000 --> 00:10:14,000
459
+ in their web application, Personal and financial information of approximately 147 million consumers
460
+
461
+ 116
462
+ 00:10:14,000 --> 00:10:19,000
463
+ was compromised, leading to widespread identity theft and financial fraud.
464
+
465
+ 117
466
+ 00:10:20,000 --> 00:10:26,000
467
+ As you may already understand, violation of security rules and not following best practices that will
468
+
469
+ 118
470
+ 00:10:26,000 --> 00:10:32,000
471
+ help to prevent broken object level authorization may cause different negative consequences.
472
+
473
+ 119
474
+ 00:10:33,000 --> 00:10:35,000
475
+ Let's review some of them.
476
+
477
+ 120
478
+ 00:10:35,000 --> 00:10:37,000
479
+ Financial losses.
480
+
481
+ 121
482
+ 00:10:37,000 --> 00:10:44,000
483
+ Data breaches resulting from broken object level authorization vulnerabilities can lead to significant
484
+
485
+ 122
486
+ 00:10:44,000 --> 00:10:47,000
487
+ financial consequences for organizations.
488
+
489
+ 123
490
+ 00:10:48,000 --> 00:10:56,000
491
+ This includes costs associated with incident response, regulatory fines, for example, GDPR, CcpA,
492
+
493
+ 124
494
+ 00:10:56,000 --> 00:11:00,000
495
+ and legal fees stemming from lawsuits filed by affected users.
496
+
497
+ 125
498
+ 00:11:01,000 --> 00:11:03,000
499
+ Reputational damage.
500
+
501
+ 126
502
+ 00:11:03,000 --> 00:11:08,000
503
+ Organizations may suffer long term damage to their reputation and trustworthiness.
504
+
505
+ 127
506
+ 00:11:09,000 --> 00:11:15,000
507
+ Customers may lose confidence in the organization's ability to protect their data, leading to churn
508
+
509
+ 128
510
+ 00:11:15,000 --> 00:11:18,000
511
+ and difficulty acquiring new customers.
512
+
513
+ 129
514
+ 00:11:19,000 --> 00:11:21,000
515
+ Legal and regulatory consequences.
516
+
517
+ 130
518
+ 00:11:22,000 --> 00:11:28,000
519
+ Organizations found negligent in protecting user data can face severe penalties under data protection
520
+
521
+ 131
522
+ 00:11:28,000 --> 00:11:29,000
523
+ laws.
524
+
525
+ 132
526
+ 00:11:30,000 --> 00:11:36,000
527
+ Compliance failures can result in fines, sanctions, and mandated corrective actions.
528
+
529
+ 133
530
+ 00:11:37,000 --> 00:11:39,000
531
+ Impact on users.
532
+
533
+ 134
534
+ 00:11:39,000 --> 00:11:43,000
535
+ For individuals, the consequences of data breaches can be profound.
536
+
537
+ 135
538
+ 00:11:44,000 --> 00:11:50,000
539
+ They may experience identity theft, financial fraud, or personal embarrassment if sensitive information
540
+
541
+ 136
542
+ 00:11:50,000 --> 00:11:51,000
543
+ is exposed.
544
+
545
+ 137
546
+ 00:11:52,000 --> 00:11:58,000
547
+ Restoring one's identity and financial security can be a lengthy and stressful process.
548
+
549
+ 138
550
+ 00:11:59,000 --> 00:12:06,000
551
+ Operational disruption remediation efforts following a data breach can disrupt normal business operations.
552
+
553
+ 139
554
+ 00:12:06,000 --> 00:12:13,000
555
+ This includes dedicating resources to investigate the breach, implement security fixes, and communicate
556
+
557
+ 140
558
+ 00:12:13,000 --> 00:12:14,000
559
+ with affected users.
560
+
561
+ 141
562
+ 00:12:15,000 --> 00:12:21,000
563
+ Let's now review the most common insecure coding practices that leads to broken object level authorization.
564
+
565
+ 142
566
+ 00:12:21,000 --> 00:12:24,000
567
+ You need to know them in order to avoid them.
568
+
569
+ 143
570
+ 00:12:25,000 --> 00:12:27,000
571
+ Insufficient input validation.
572
+
573
+ 144
574
+ 00:12:27,000 --> 00:12:35,000
575
+ Failure to properly validate and sanitize input parameters such as object IDs or parameters in API requests.
576
+
577
+ 145
578
+ 00:12:36,000 --> 00:12:42,000
579
+ Attackers can manipulate these inputs to access unauthorized data objects or perform actions beyond
580
+
581
+ 146
582
+ 00:12:42,000 --> 00:12:44,000
583
+ the authorized scope.
584
+
585
+ 147
586
+ 00:12:45,000 --> 00:12:47,000
587
+ Predictable object identifiers.
588
+
589
+ 148
590
+ 00:12:47,000 --> 00:12:51,000
591
+ Using predictable or sequential identifiers, for example.
592
+
593
+ 149
594
+ 00:12:51,000 --> 00:12:54,000
595
+ Incremental IDs for data objects.
596
+
597
+ 150
598
+ 00:12:55,000 --> 00:13:02,000
599
+ Attackers can guess or enumerate object IDs to access sensitive data or resources that should be restricted.
600
+
601
+ 151
602
+ 00:13:03,000 --> 00:13:05,000
603
+ Lack of proper access controls.
604
+
605
+ 152
606
+ 00:13:06,000 --> 00:13:10,000
607
+ Failure to implement and enforce adequate access controls at the object level.
608
+
609
+ 153
610
+ 00:13:11,000 --> 00:13:17,000
611
+ Users may be able to perform operations on data objects they should not have access to, leading to
612
+
613
+ 154
614
+ 00:13:17,000 --> 00:13:20,000
615
+ data breaches or unauthorized modifications.
616
+
617
+ 155
618
+ 00:13:21,000 --> 00:13:23,000
619
+ Improper use of permissions and roles.
620
+
621
+ 156
622
+ 00:13:24,000 --> 00:13:29,000
623
+ Incorrectly assigning or checking permissions and roles for accessing data objects.
624
+
625
+ 157
626
+ 00:13:29,000 --> 00:13:36,000
627
+ Users may exploit these misconfigurations to escalate privileges or access data they are not authorised
628
+
629
+ 158
630
+ 00:13:36,000 --> 00:13:37,000
631
+ to see or modify.
632
+
633
+ 159
634
+ 00:13:39,000 --> 00:13:45,000
635
+ Let's also review common flaws in authorization controls that are often root causes of broken object
636
+
637
+ 160
638
+ 00:13:45,000 --> 00:13:47,000
639
+ level authorization vulnerabilities.
640
+
641
+ 161
642
+ 00:13:48,000 --> 00:13:55,000
643
+ Overly permissive access policies defining access policies that are too broad or permissive, granting
644
+
645
+ 162
646
+ 00:13:55,000 --> 00:14:03,000
647
+ users more access than necessary increases the risk of unauthorized access and potential data breaches.
648
+
649
+ 163
650
+ 00:14:03,000 --> 00:14:07,000
651
+ As users can perform actions they should not be able to.
652
+
653
+ 164
654
+ 00:14:08,000 --> 00:14:11,000
655
+ Failure to enforce principle of least privilege.
656
+
657
+ 165
658
+ 00:14:12,000 --> 00:14:18,000
659
+ Allowing users or processes to access resources with more privileges than needed to perform their tasks,
660
+
661
+ 166
662
+ 00:14:19,000 --> 00:14:27,000
663
+ increases the attack surface and potential impact of security incidents, as attackers can exploit these
664
+
665
+ 167
666
+ 00:14:27,000 --> 00:14:28,000
667
+ elevated privileges.
668
+
669
+ 168
670
+ 00:14:29,000 --> 00:14:32,000
671
+ Inadequate validation of user sessions and tokens.
672
+
673
+ 169
674
+ 00:14:33,000 --> 00:14:36,000
675
+ Failing to validate user sessions or tokens properly.
676
+
677
+ 170
678
+ 00:14:36,000 --> 00:14:41,000
679
+ Allowing attackers to forge or manipulate tokens to gain unauthorized access.
680
+
681
+ 171
682
+ 00:14:42,000 --> 00:14:49,000
683
+ Users may access data or perform actions they are not authorized for compromising data integrity and
684
+
685
+ 172
686
+ 00:14:49,000 --> 00:14:50,000
687
+ confidentiality.
688
+
689
+ 173
690
+ 00:14:51,000 --> 00:14:55,000
691
+ Weak authentication and authorization mechanisms.
692
+
693
+ 174
694
+ 00:14:56,000 --> 00:15:03,000
695
+ Using weak or outdated authentication and authorization methods that are susceptible to exploitation,
696
+
697
+ 175
698
+ 00:15:03,000 --> 00:15:11,000
699
+ allows attackers to bypass security measures and gain unauthorized access to sensitive data or resources.
700
+
701
+ 176
702
+ 00:15:12,000 --> 00:15:18,000
703
+ Addressing the root causes of broken object level authorization vulnerabilities requires implementing
704
+
705
+ 177
706
+ 00:15:18,000 --> 00:15:24,000
707
+ robust coding practices through input validation and stringent access control mechanisms.
708
+
709
+ 178
710
+ 00:15:24,000 --> 00:15:30,000
711
+ By adopting secure coding principles and continuously auditing and updating authorization controls,
712
+
713
+ 179
714
+ 00:15:30,000 --> 00:15:37,000
715
+ organizations can significantly reduce the risk of broken object level authorization vulnerabilities
716
+
717
+ 180
718
+ 00:15:37,000 --> 00:15:43,000
719
+ and enhance the overall security posture of their applications and APIs.
720
+
74 - OWASP API Security Top 10 2023/003 API12023 Broken Object Level Authorization - Part 2 (Practice)_en.srt ADDED
@@ -0,0 +1,652 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:02,000 --> 00:00:08,000
3
+ Specially for this lesson, I prepared a demo of broken object level authorization vulnerability.
4
+
5
+ 2
6
+ 00:00:09,000 --> 00:00:11,000
7
+ Together we will learn how we can fix it.
8
+
9
+ 3
10
+ 00:00:12,000 --> 00:00:17,000
11
+ So let me start screen sharing all source code examples that you will see in the lesson.
12
+
13
+ 4
14
+ 00:00:17,000 --> 00:00:20,000
15
+ You can find in attachments to the video.
16
+
17
+ 5
18
+ 00:00:20,000 --> 00:00:26,000
19
+ And just a reminder in case you will have any questions related to the lesson, don't wait.
20
+
21
+ 6
22
+ 00:00:26,000 --> 00:00:30,000
23
+ Post your questions below the video and I will be happy to answer.
24
+
25
+ 7
26
+ 00:00:31,000 --> 00:00:34,000
27
+ So we are going to review the problem statement.
28
+
29
+ 8
30
+ 00:00:34,000 --> 00:00:40,000
31
+ First I will show you vulnerable example first and then we will review solution and you will learn how
32
+
33
+ 9
34
+ 00:00:40,000 --> 00:00:43,000
35
+ to avoid broken object level authorization vulnerability.
36
+
37
+ 10
38
+ 00:00:44,000 --> 00:00:49,000
39
+ If you are a student of my course Java from zero to first job, then you are already aware that during
40
+
41
+ 11
42
+ 00:00:49,000 --> 00:00:51,000
43
+ the course we develop online.
44
+
45
+ 12
46
+ 00:00:51,000 --> 00:00:53,000
47
+ Shop from scratch.
48
+
49
+ 13
50
+ 00:00:53,000 --> 00:00:57,000
51
+ But don't worry, I will give you a context before this example.
52
+
53
+ 14
54
+ 00:00:57,000 --> 00:01:04,000
55
+ So imagine that you develop e-commerce application online shop and you are in progress of implementation
56
+
57
+ 15
58
+ 00:01:04,000 --> 00:01:06,000
59
+ of API for your product entity.
60
+
61
+ 16
62
+ 00:01:07,000 --> 00:01:14,000
63
+ For example, you need to introduce this API for another service or another app to manage your products
64
+
65
+ 17
66
+ 00:01:14,000 --> 00:01:15,000
67
+ via API.
68
+
69
+ 18
70
+ 00:01:16,000 --> 00:01:19,000
71
+ Let's review example of the servlet line by line.
72
+
73
+ 19
74
+ 00:01:19,000 --> 00:01:26,000
75
+ The annotation at the top of the servlet class designates it as a servlet, and maps it to a specific
76
+
77
+ 20
78
+ 00:01:26,000 --> 00:01:27,000
79
+ URL pattern.
80
+
81
+ 21
82
+ 00:01:28,000 --> 00:01:34,000
83
+ This means that any request to this URL pattern will be handled by the servlet class.
84
+
85
+ 22
86
+ 00:01:35,000 --> 00:01:42,000
87
+ The class itself extends HTTP servlet, which is a base class for handling HTTP requests in Java.
88
+
89
+ 23
90
+ 00:01:43,000 --> 00:01:48,000
91
+ By extending this class, it can override methods like Doget to handle get requests.
92
+
93
+ 24
94
+ 00:01:49,000 --> 00:01:55,000
95
+ Inside the class, there is an instance variable of type product facade which is used to interact with
96
+
97
+ 25
98
+ 00:01:55,000 --> 00:01:56,000
99
+ the product data.
100
+
101
+ 26
102
+ 00:01:57,000 --> 00:02:01,000
103
+ You can check details of product facade later and ask me if you have any questions.
104
+
105
+ 27
106
+ 00:02:01,000 --> 00:02:08,000
107
+ But in general, this is just an implementation of facade pattern that simplify our interaction with
108
+
109
+ 28
110
+ 00:02:08,000 --> 00:02:09,000
111
+ product entity.
112
+
113
+ 29
114
+ 00:02:10,000 --> 00:02:17,000
115
+ This variable is initialized to an instance of default product facade through a method that implements
116
+
117
+ 30
118
+ 00:02:17,000 --> 00:02:19,000
119
+ the singleton pattern.
120
+
121
+ 31
122
+ 00:02:19,000 --> 00:02:26,000
123
+ We don't have any inversion of control container in this example, so I implemented singleton pattern
124
+
125
+ 32
126
+ 00:02:26,000 --> 00:02:27,000
127
+ for some entities.
128
+
129
+ 33
130
+ 00:02:27,000 --> 00:02:32,000
131
+ The Doget method is overridden to handle http get requests.
132
+
133
+ 34
134
+ 00:02:32,000 --> 00:02:38,000
135
+ It takes two parameters, one representing the request and one representing the response.
136
+
137
+ 35
138
+ 00:02:39,000 --> 00:02:46,000
139
+ Inside this method, the product ID is extracted from the request parameters and converted from a string
140
+
141
+ 36
142
+ 00:02:46,000 --> 00:02:47,000
143
+ to an integer.
144
+
145
+ 37
146
+ 00:02:48,000 --> 00:02:53,000
147
+ The product facade is then used to fetch a product based on the product id.
148
+
149
+ 38
150
+ 00:02:54,000 --> 00:02:58,000
151
+ Here is the first alarm I extract product by ID.
152
+
153
+ 39
154
+ 00:02:58,000 --> 00:03:01,000
155
+ This is not string, this is integer id.
156
+
157
+ 40
158
+ 00:03:02,000 --> 00:03:06,000
159
+ Most likely all IDs goes in the sequential order one after another.
160
+
161
+ 41
162
+ 00:03:07,000 --> 00:03:12,000
163
+ That is the first thing that hackers think when they see this API interface.
164
+
165
+ 42
166
+ 00:03:13,000 --> 00:03:19,000
167
+ If you are a student of Udemy platform and if you will be very attentive, even Udemy used sequential
168
+
169
+ 43
170
+ 00:03:19,000 --> 00:03:21,000
171
+ IDs for different resources.
172
+
173
+ 44
174
+ 00:03:21,000 --> 00:03:26,000
175
+ I hope that by moment when you watch this video, they will fix this.
176
+
177
+ 45
178
+ 00:03:26,000 --> 00:03:30,000
179
+ But still, it is a potential security vulnerability.
180
+
181
+ 46
182
+ 00:03:30,000 --> 00:03:37,000
183
+ Just a reminder that all attempts of hacking are illegal, so please don't even try to do some attempts.
184
+
185
+ 47
186
+ 00:03:38,000 --> 00:03:43,000
187
+ We are learning all this information just to learn by example how to avoid potential vulnerabilities.
188
+
189
+ 48
190
+ 00:03:44,000 --> 00:03:49,000
191
+ And now you learned that having sequential IDs for resources is not the best practice.
192
+
193
+ 49
194
+ 00:03:50,000 --> 00:03:52,000
195
+ So what do we have next?
196
+
197
+ 50
198
+ 00:03:52,000 --> 00:03:57,000
199
+ If a product is found, it writes the product's information to the response.
200
+
201
+ 51
202
+ 00:03:58,000 --> 00:04:06,000
203
+ If no product is found, it sends a 404 error response indicating that the product was not found.
204
+
205
+ 52
206
+ 00:04:06,000 --> 00:04:08,000
207
+ Seems like okay for you?
208
+
209
+ 53
210
+ 00:04:08,000 --> 00:04:09,000
211
+ Not at all.
212
+
213
+ 54
214
+ 00:04:10,000 --> 00:04:15,000
215
+ What if during a malicious attack, somebody would read all product details, including products that
216
+
217
+ 55
218
+ 00:04:15,000 --> 00:04:17,000
219
+ are not published?
220
+
221
+ 56
222
+ 00:04:17,000 --> 00:04:21,000
223
+ Or even worse, what if this wouldn't be just read operation?
224
+
225
+ 57
226
+ 00:04:22,000 --> 00:04:28,000
227
+ What if this would be delete operation and hacker can get opportunity to delete all products in your
228
+
229
+ 58
230
+ 00:04:28,000 --> 00:04:31,000
231
+ shop simply by sending multiple requests.
232
+
233
+ 59
234
+ 00:04:31,000 --> 00:04:32,000
235
+ Just change an ID.
236
+
237
+ 60
238
+ 00:04:33,000 --> 00:04:38,000
239
+ Let me show you in the browser how easily you can get access to product resource.
240
+
241
+ 61
242
+ 00:04:39,000 --> 00:04:42,000
243
+ So this application is deployed on my localhost.
244
+
245
+ 62
246
+ 00:04:43,000 --> 00:04:45,000
247
+ Imagine I found out the resource name.
248
+
249
+ 63
250
+ 00:04:45,000 --> 00:04:52,000
251
+ It can be relatively simple either by using the web resource and just by being attentive, navigating
252
+
253
+ 64
254
+ 00:04:52,000 --> 00:04:59,000
255
+ between pages, or exploring network tab in Google Chrome DevTools details to learn which requests are
256
+
257
+ 65
258
+ 00:04:59,000 --> 00:05:01,000
259
+ sent and different other methods.
260
+
261
+ 66
262
+ 00:05:02,000 --> 00:05:09,000
263
+ This is more related to API testing, and I had a separate section about API testing in my course Java
264
+
265
+ 67
266
+ 00:05:09,000 --> 00:05:10,000
267
+ from zero to first job.
268
+
269
+ 68
270
+ 00:05:10,000 --> 00:05:14,000
271
+ Let's stick to agenda of the lesson and continue.
272
+
273
+ 69
274
+ 00:05:14,000 --> 00:05:20,000
275
+ So I just sent a request to a resource with request parameter product ID equal to one.
276
+
277
+ 70
278
+ 00:05:21,000 --> 00:05:23,000
279
+ And here is product information.
280
+
281
+ 71
282
+ 00:05:24,000 --> 00:05:29,000
283
+ What if I would change a year just to the next ID that pops up in my mind?
284
+
285
+ 72
286
+ 00:05:29,000 --> 00:05:32,000
287
+ Let me change ID to two.
288
+
289
+ 73
290
+ 00:05:33,000 --> 00:05:36,000
291
+ What if I would send requests to resource with product ID three?
292
+
293
+ 74
294
+ 00:05:37,000 --> 00:05:39,000
295
+ That is jackpot.
296
+
297
+ 75
298
+ 00:05:39,000 --> 00:05:46,000
299
+ The only thing that is left for me in such case is to create a program that will send requests for all
300
+
301
+ 76
302
+ 00:05:46,000 --> 00:05:47,000
303
+ integers.
304
+
305
+ 77
306
+ 00:05:47,000 --> 00:05:49,000
307
+ Parse response.
308
+
309
+ 78
310
+ 00:05:49,000 --> 00:05:50,000
311
+ And that's it.
312
+
313
+ 79
314
+ 00:05:50,000 --> 00:05:52,000
315
+ Information is stolen.
316
+
317
+ 80
318
+ 00:05:53,000 --> 00:05:59,000
319
+ Another problem with this code that during the access to resource, we don't check user's authorization
320
+
321
+ 81
322
+ 00:05:59,000 --> 00:06:01,000
323
+ to access this resource.
324
+
325
+ 82
326
+ 00:06:01,000 --> 00:06:04,000
327
+ In Java, this can be done very simply.
328
+
329
+ 83
330
+ 00:06:04,000 --> 00:06:11,000
331
+ There is a robust and efficient spring security framework that can allow you to configure authorization
332
+
333
+ 84
334
+ 00:06:11,000 --> 00:06:13,000
335
+ rules for different resources.
336
+
337
+ 85
338
+ 00:06:13,000 --> 00:06:19,000
339
+ In this case, you can see that in code no authorization checks present.
340
+
341
+ 86
342
+ 00:06:19,000 --> 00:06:25,000
343
+ Let me now open another file and I will show you how you can avoid broken object level authorization
344
+
345
+ 87
346
+ 00:06:25,000 --> 00:06:26,000
347
+ vulnerabilities.
348
+
349
+ 88
350
+ 00:06:27,000 --> 00:06:29,000
351
+ The file is called secure product servlet.
352
+
353
+ 89
354
+ 00:06:30,000 --> 00:06:31,000
355
+ It is also servlet.
356
+
357
+ 90
358
+ 00:06:31,000 --> 00:06:34,000
359
+ We are going to use product facade in this example too.
360
+
361
+ 91
362
+ 00:06:34,000 --> 00:06:37,000
363
+ So we need to initialize it here too.
364
+
365
+ 92
366
+ 00:06:38,000 --> 00:06:41,000
367
+ But do get method is written in a little bit different way.
368
+
369
+ 93
370
+ 00:06:42,000 --> 00:06:45,000
371
+ First of all I changed request parameter name.
372
+
373
+ 94
374
+ 00:06:45,000 --> 00:06:51,000
375
+ This time it will not be product ID it will be product global unique identifier.
376
+
377
+ 95
378
+ 00:06:51,000 --> 00:06:55,000
379
+ Another difference I want to extract logged in user from the session.
380
+
381
+ 96
382
+ 00:06:56,000 --> 00:07:02,000
383
+ Basically, when the user will log in into our application, I will put user object into the session.
384
+
385
+ 97
386
+ 00:07:02,000 --> 00:07:06,000
387
+ There are different authentication and authorization mechanisms.
388
+
389
+ 98
390
+ 00:07:07,000 --> 00:07:12,000
391
+ This is just one of the possible ways to implement this in the simplified and transparent manner.
392
+
393
+ 99
394
+ 00:07:12,000 --> 00:07:15,000
395
+ That is the best for online lesson.
396
+
397
+ 100
398
+ 00:07:16,000 --> 00:07:22,000
399
+ Of course, there are dozens of more complicated ways to implement authorization and authentication.
400
+
401
+ 101
402
+ 00:07:22,000 --> 00:07:28,000
403
+ So if you know other way or you use different programming language or other frameworks, feel free to
404
+
405
+ 102
406
+ 00:07:28,000 --> 00:07:29,000
407
+ proceed with those.
408
+
409
+ 103
410
+ 00:07:29,000 --> 00:07:31,000
411
+ That is totally fine.
412
+
413
+ 104
414
+ 00:07:31,000 --> 00:07:33,000
415
+ So I extracted logged in user.
416
+
417
+ 105
418
+ 00:07:33,000 --> 00:07:35,000
419
+ We will use it later.
420
+
421
+ 106
422
+ 00:07:35,000 --> 00:07:37,000
423
+ Let's see what is going next.
424
+
425
+ 107
426
+ 00:07:38,000 --> 00:07:48,000
427
+ I extract product using not ID but global unique identifier that is long string value 32 character hexadecimal
428
+
429
+ 108
430
+ 00:07:48,000 --> 00:07:48,000
431
+ string.
432
+
433
+ 109
434
+ 00:07:49,000 --> 00:07:55,000
435
+ So it will take some time of hacker to guess it and it will not be super fun.
436
+
437
+ 110
438
+ 00:07:55,000 --> 00:08:02,000
439
+ Hacker would require super computer to hack all the database of products you will see soon how it looks
440
+
441
+ 111
442
+ 00:08:02,000 --> 00:08:02,000
443
+ like.
444
+
445
+ 112
446
+ 00:08:03,000 --> 00:08:09,000
447
+ Then I check that product is not null and that product name is not null.
448
+
449
+ 113
450
+ 00:08:09,000 --> 00:08:16,000
451
+ That is related with the specifics of implementation, because I try to avoid returned null values to
452
+
453
+ 114
454
+ 00:08:16,000 --> 00:08:18,000
455
+ avoid null pointer exception.
456
+
457
+ 115
458
+ 00:08:19,000 --> 00:08:25,000
459
+ I also try to avoid of using optional API in Java because it has its own drawbacks.
460
+
461
+ 116
462
+ 00:08:25,000 --> 00:08:28,000
463
+ But anyway, this is a topic for a separate lesson.
464
+
465
+ 117
466
+ 00:08:29,000 --> 00:08:33,000
467
+ What I prefer to do time to time is to return empty objects.
468
+
469
+ 118
470
+ 00:08:34,000 --> 00:08:38,000
471
+ That's why I need these checks to check if object is empty or not.
472
+
473
+ 119
474
+ 00:08:39,000 --> 00:08:43,000
475
+ So if there is no object, we just send error.
476
+
477
+ 120
478
+ 00:08:43,000 --> 00:08:45,000
479
+ That product is not found.
480
+
481
+ 121
482
+ 00:08:46,000 --> 00:08:50,000
483
+ If we found this product then I check which row has logged in.
484
+
485
+ 122
486
+ 00:08:50,000 --> 00:08:51,000
487
+ User.
488
+
489
+ 123
490
+ 00:08:51,000 --> 00:08:58,000
491
+ In this particular example, I allow only to users with admin role to get access to product details
492
+
493
+ 124
494
+ 00:08:58,000 --> 00:08:59,000
495
+ via API.
496
+
497
+ 125
498
+ 00:09:00,000 --> 00:09:07,000
499
+ And in case logged in user has admin role only, in this case it can see the product details.
500
+
501
+ 126
502
+ 00:09:07,000 --> 00:09:09,000
503
+ Otherwise I return 403.
504
+
505
+ 127
506
+ 00:09:09,000 --> 00:09:11,000
507
+ Error code access is forbidden.
508
+
509
+ 128
510
+ 00:09:11,000 --> 00:09:15,000
511
+ The client is not permitted access to the resource and that's it.
512
+
513
+ 129
514
+ 00:09:16,000 --> 00:09:22,000
515
+ So in this particular case, I used just few techniques to avoid broken object level authorization.
516
+
517
+ 130
518
+ 00:09:22,000 --> 00:09:30,000
519
+ I used non predictable unique identifiers and I added zero authorization check before granting access
520
+
521
+ 131
522
+ 00:09:30,000 --> 00:09:31,000
523
+ to a resource.
524
+
525
+ 132
526
+ 00:09:32,000 --> 00:09:37,000
527
+ In this lesson, we'll learn even more ways how to avoid broken object level authorization.
528
+
529
+ 133
530
+ 00:09:37,000 --> 00:09:41,000
531
+ But in this particular example, I applied this tool.
532
+
533
+ 134
534
+ 00:09:41,000 --> 00:09:44,000
535
+ It is time to demo you how it works.
536
+
537
+ 135
538
+ 00:09:44,000 --> 00:09:46,000
539
+ Let me open browser now.
540
+
541
+ 136
542
+ 00:09:47,000 --> 00:09:49,000
543
+ So let's start from easy case.
544
+
545
+ 137
546
+ 00:09:49,000 --> 00:09:52,000
547
+ Let's imagine I learned resource URL.
548
+
549
+ 138
550
+ 00:09:52,000 --> 00:09:58,000
551
+ I try to send request with the value of product Guid request parameter equal to one.
552
+
553
+ 139
554
+ 00:09:59,000 --> 00:10:02,000
555
+ So I receive 404 error code.
556
+
557
+ 140
558
+ 00:10:02,000 --> 00:10:04,000
559
+ Resource is not found.
560
+
561
+ 141
562
+ 00:10:05,000 --> 00:10:06,000
563
+ Cool.
564
+
565
+ 142
566
+ 00:10:06,000 --> 00:10:09,000
567
+ It is already less predictable than in previous case.
568
+
569
+ 143
570
+ 00:10:09,000 --> 00:10:10,000
571
+ Don't you think so?
572
+
573
+ 144
574
+ 00:10:10,000 --> 00:10:13,000
575
+ Let's imagine that I managed to hack all products.
576
+
577
+ 145
578
+ 00:10:13,000 --> 00:10:15,000
579
+ Unique identifiers.
580
+
581
+ 146
582
+ 00:10:15,000 --> 00:10:17,000
583
+ Okay, good for me.
584
+
585
+ 147
586
+ 00:10:17,000 --> 00:10:21,000
587
+ Let's try to send requests using different request parameter value.
588
+
589
+ 148
590
+ 00:10:21,000 --> 00:10:23,000
591
+ Can you see this value?
592
+
593
+ 149
594
+ 00:10:24,000 --> 00:10:30,000
595
+ This is 32 character hexadecimal strings that I generate for each product during its creation.
596
+
597
+ 150
598
+ 00:10:30,000 --> 00:10:35,000
599
+ What I will receive now of course access is forbidden status code.
600
+
601
+ 151
602
+ 00:10:36,000 --> 00:10:41,000
603
+ Product is found, but I can't access it because I don't have enough authorization rights.
604
+
605
+ 152
606
+ 00:10:42,000 --> 00:10:49,000
607
+ So what I need to do to be able to read this product, I need login with admin user credentials because
608
+
609
+ 153
610
+ 00:10:49,000 --> 00:10:55,000
611
+ as you remember, according to our logic, only users with admin role can get access to this resource.
612
+
613
+ 154
614
+ 00:10:56,000 --> 00:11:00,000
615
+ So let me navigate to the login page of my application.
616
+
617
+ 155
618
+ 00:11:00,000 --> 00:11:04,000
619
+ Here I need to enter credentials of admin user.
620
+
621
+ 156
622
+ 00:11:04,000 --> 00:11:06,000
623
+ It will take few seconds.
624
+
625
+ 157
626
+ 00:11:07,000 --> 00:11:10,000
627
+ Admin at Test.com and password.
628
+
629
+ 158
630
+ 00:11:11,000 --> 00:11:14,000
631
+ Okay, now I'm logged in as an admin user.
632
+
633
+ 159
634
+ 00:11:15,000 --> 00:11:15,000
635
+ Cool.
636
+
637
+ 160
638
+ 00:11:16,000 --> 00:11:19,000
639
+ Let's check access to the same resource one more time.
640
+
641
+ 161
642
+ 00:11:20,000 --> 00:11:21,000
643
+ And here we go.
644
+
645
+ 162
646
+ 00:11:21,000 --> 00:11:24,000
647
+ Now we finally can access it.
648
+
649
+ 163
650
+ 00:11:24,000 --> 00:11:30,000
651
+ So that's how you can avoid broken object level authorization vulnerabilities in your code.
652
+