Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +22 -0
- 44 - Java New Versions/003 Java 9 Process API & CompletableFuture API updates, Interface Private Methods.mp4 +3 -0
- 44 - Java New Versions/004 Java 9 jlink & jshell.mp4 +3 -0
- 44 - Java New Versions/005 Java 9 Multi-Release JAR Files & Compact Strings.mp4 +3 -0
- 44 - Java New Versions/006 Java 9 Deprecated & Removed Features.mp4 +3 -0
- 44 - Java New Versions/007 Java 10 ‘var’ variables (Type inference), Docker support, Flex Heap Size, etc.mp4 +3 -0
- 44 - Java New Versions/008 Java 10 Other improvements, Removals, Deprecations, Release Versioning.mp4 +3 -0
- 44 - Java New Versions/009 Java 11 LTS Concept, New HTTP Client, String & Files API Updates.mp4 +3 -0
- 44 - Java New Versions/010 Java 11 Collection & Predicate API Updates, Nest-Based Access Control & more.mp4 +3 -0
- 44 - Java New Versions/011 Java 12 CompactNumberFormat, Teeing Collector, String.indent(), transform().mp4 +3 -0
- 44 - Java New Versions/012 Java 13 Socket API, newFileSystem() method, ZGC Uncommit Unused Memory & others.mp4 +3 -0
- 44 - Java New Versions/013 Java 14 Switch expressions, Currency Format, Helpful NullPointerExceptions.mp4 +3 -0
- 44 - Java New Versions/014 Java 15 Text Blocks, Hidden Classes, new String methods.mp4 +3 -0
- 44 - Java New Versions/015 Java 16 JEP 395 - Records.mp4 +3 -0
- 44 - Java New Versions/016 Java 16 instanceof, Day Period Support, Stream.toList() & others.mp4 +3 -0
- 44 - Java New Versions/017 Java 17 Sealed Classes & other improvements.mp4 +3 -0
- 46 - Databases Overview and Environment Setup/002 Databases Overview - Part 1.mp4 +3 -0
- 46 - Databases Overview and Environment Setup/003 Databases Overview - Part 2.mp4 +3 -0
- 46 - Databases Overview and Environment Setup/004 MySQL Overview & Installation (including Workbench Installation).mp4 +3 -0
- 46 - Databases Overview and Environment Setup/005 PostgreSQL Overview & Installation (including pgAdmin installation).mp4 +3 -0
- 47 - Relational databases/001 Relational Databases Basic Concepts.mp4 +3 -0
- 47 - Relational databases/002 Create Schema & Table Naming, Collation, Engines, Types, Column Properties.mp4 +3 -0
- 47 - Relational databases/003 Referential Integrity Foreign Key Constraint & Cascading Operations.mp4 +3 -0
- 73 - OWASP Top 10 2021/005 Source-code-examples-from-the-lesson.url +2 -0
- 73 - OWASP Top 10 2021/006 Injection (Overview, Fuzzing, CWEs, Impact, Injection Types, Command Injection)_en.srt +788 -0
- 73 - OWASP Top 10 2021/006 Source-code-examples-from-the-lesson.url +2 -0
- 73 - OWASP Top 10 2021/007 Injection (Cross Site Scripting, Types of XSS, SQL, JPA, NoSQL Injections)_en.srt +740 -0
- 73 - OWASP Top 10 2021/007 Source-code-examples-from-the-lesson.url +2 -0
- 73 - OWASP Top 10 2021/008 Injection (XPath Injection, Log Injection, Input Validation)_en.srt +716 -0
- 73 - OWASP Top 10 2021/008 Source-code-examples-from-the-lesson.url +2 -0
- 73 - OWASP Top 10 2021/009 Insecure Design (Overivew, CWEs, Shift Left Security, Threat Modeling Manifesto)_en.srt +868 -0
- 73 - OWASP Top 10 2021/010 Insecure Design (Secure Design Process, Security Controls, Metrics, Examples)_en.srt +1036 -0
- 73 - OWASP Top 10 2021/011 NIST-800-123-Guide-to-General-Server-Security.url +2 -0
- 73 - OWASP Top 10 2021/011 NIST-800-207-Zero-Trust-Architecture.url +2 -0
- 73 - OWASP Top 10 2021/011 Security Misconfiguration (Overview, CWEs, Types, Real-life attacks)_en.srt +828 -0
- 73 - OWASP Top 10 2021/012 NIST-800-123-Guide-to-General-Server-Security.url +2 -0
- 73 - OWASP Top 10 2021/012 NIST-800-207-Zero-Trust-Architecture.url +2 -0
- 73 - OWASP Top 10 2021/012 Security Misconfiguration (Hardening, Zero Trust, Defense in Depth, Practice)_en.srt +1200 -0
- 73 - OWASP Top 10 2021/013 Dependency-check-plugin.url +2 -0
- 73 - OWASP Top 10 2021/013 Vulnerable & Outdated Components_en.srt +1056 -0
- 73 - OWASP Top 10 2021/013 pom.xml-from-the-lesson-with-OWASP-plugin.url +2 -0
- 73 - OWASP Top 10 2021/014 Identification & Authentication Failures_en.srt +1432 -0
- 73 - OWASP Top 10 2021/015 Software & Data Integrity Failures_en.srt +740 -0
- 73 - OWASP Top 10 2021/016 Computer-Security-Incident-Handling-Guide.url +2 -0
- 73 - OWASP Top 10 2021/016 Security Logging & Monitoring Failures_en.srt +1016 -0
- 73 - OWASP Top 10 2021/017 Server-Side Request Forgery (SSRF)_en.srt +1036 -0
- 73 - OWASP Top 10 2021/external-links.txt +42 -0
- 74 - OWASP API Security Top 10 2023/001 OWASP API Security Project & OWASP API Security Top 10 2023.html +69 -0
- 74 - OWASP API Security Top 10 2023/002 API12023 Broken Object Level Authorization - Part 1_en.srt +720 -0
- 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 Top 10 2021 and OWASP API 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 API 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 |
+
|