@@ -19,6 +19,16 @@ Here are the labs available:
19
19
* [ input2] ( input2.html ) - input validation (more complex situations)
20
20
* [ csp1] ( csp1.html ) - Content Security Policy (CSP)
21
21
22
+ ## Please contribute labs
23
+
24
+ We would love to have people contribute relevant labs to help
25
+ people learn how to develop secure software.
26
+ We'd be happy to give you credit through a "wall of fame".
27
+
28
+ If you're interested, please contact
29
+ [ David A. Wheeler] ( mailto:dwheeler ;@ ; linuxfoundation. ; org ) .
30
+ See below for how to create labs and our lab roadmap.
31
+
22
32
## How to create and submit labs
23
33
24
34
See [ create labs] ( create_labs ) if you want to learn how to create labs.
@@ -29,14 +39,16 @@ To submit new or updated labs, create a pull request on the
29
39
[ OpenSSF Best Practices WG] ( https://github.com/ossf/wg-best-practices-os-developers/ )
30
40
under the ` docs/labs ` directory.
31
41
32
- ## Desired labs
42
+ ## Lab Roadmap
33
43
34
- We want to create labs for the secure software development
44
+ We plan to create labs for the secure software development
35
45
fundamentals course;
36
46
[ here is its development website] ( https://github.com/ossf/secure-sw-dev-fundamentals ) .
37
47
38
- These are the sections that especially call out for labs, along with
39
- mappings to existing labs or people who have agreed to work on one:
48
+ Below are the sections where we plan to create labs, along with
49
+ mappings to existing labs or people who have agreed to work on one.
50
+ The items marked "PLANNED-1" are those we intend to do first;
51
+ "PLANNED-2" are planned in a second pass.
40
52
41
53
* Input Validation
42
54
* Input Validation Basics
@@ -48,55 +60,55 @@ mappings to existing labs or people who have agreed to work on one:
48
60
* Validating Text
49
61
* Introduction to Regular Expressions - [ regex1] ( regex1.html )
50
62
* Using Regular Expressions for Text Input Validation - [ input2] ( input2.html )
51
- * Countering ReDoS Attacks on Regular Expressions - NEED
63
+ * Countering ReDoS Attacks on Regular Expressions - PLANNED-2
52
64
* Input Validation: Beyond Numbers and Text
53
- * Insecure Deserialization - NEED
54
- * Input Data Structures (XML, HTML, CSV, JSON, & File Uploads) - NEED
55
- * Minimizing Attack Surface, Identification, Authentication, and Authorization - NEED
56
- * Search Paths and Environment Variables (including setuid/setgid Programs) - NEED
57
- * Special Inputs: Secure Defaults and Secure Startup - NEED
65
+ * Insecure Deserialization - PLANNED-2
66
+ * Input Data Structures (XML, HTML, CSV, JSON, & File Uploads) - PLANNED-2
67
+ * Minimizing Attack Surface, Identification, Authentication, and Authorization - PLANNED-2
68
+ * Search Paths and Environment Variables (including setuid/setgid Programs) - PLANNED-2
69
+ * Special Inputs: Secure Defaults and Secure Startup - PLANNED-2
58
70
* Consider Availability on All Inputs
59
- * Consider Availability on All Inputs Introduction - NEED
71
+ * Consider Availability on All Inputs Introduction - PLANNED-2
60
72
* Processing Data Securely
61
73
* Processing Data Securely: General Issues
62
- * Prefer Trusted Data. Treat Untrusted Data as Dangerous - NEED
63
- * Avoid Default & Hardcoded Credentials - NEED
64
- * Avoid Incorrect Conversion or Cast - NEED
74
+ * Prefer Trusted Data. Treat Untrusted Data as Dangerous - PLANNED-2
75
+ * Avoid Default & Hardcoded Credentials - PLANNED-1
76
+ * Avoid Incorrect Conversion or Cast - PLANNED-2
65
77
* Processing Data Securely: Undefined Behavior / Memory Safety
66
- * Countering Out-of-Bounds Reads and Writes (Buffer Overflow) - NEED
67
- * Double-free, Use-after-free, and Missing Release - NEED
68
- * Avoid Undefined Behavior - NEED
78
+ * Countering Out-of-Bounds Reads and Writes (Buffer Overflow) - PLANNED-1
79
+ * Double-free, Use-after-free, and Missing Release - PLANNED-1
80
+ * Avoid Undefined Behavior - PLANNED-2
69
81
* Processing Data Securely: Calculate Correctly
70
- * Avoid Integer Overflow, Wraparound, and Underflow - NEED
82
+ * Avoid Integer Overflow, Wraparound, and Underflow - PLANNED-2
71
83
* Calling Other Programs
72
84
* Introduction to Securely Calling Programs
73
85
* Introduction to Securely Calling Programs - The Basics
74
86
* Calling Other Programs: Injection and Filenames
75
- * SQL Injection - NEED
76
- * OS Command (Shell) injection - NEED
77
- * Other Injection Attacks - NEED
78
- * Filenames (Including Path Traversal and Link Following) - NEED
87
+ * SQL Injection - PLANNED-1
88
+ * OS Command (Shell) injection - PLANNED-1
89
+ * Other Injection Attacks - PLANNED-2
90
+ * Filenames (Including Path Traversal and Link Following) - PLANNED-2
79
91
* Calling Other Programs: Other Issues
80
- * Call APIs for Programs and Check What Is Returned - NEED
81
- * Handling Errors - NEED
82
- * Logging - NEED
83
- * Debug and Assertion Code - NEED
84
- * Countering Denial-of-Service (DoS) Attacks - NEED
92
+ * Call APIs for Programs and Check What Is Returned - PLANNED-2
93
+ * Handling Errors - PLANNED-2
94
+ * Logging - PLANNED-2
95
+ * Debug and Assertion Code - PLANNED-1
96
+ * Countering Denial-of-Service (DoS) Attacks - PLANNED-2
85
97
* Sending Output
86
- * Introduction to Sending Output - NEED
87
- * Countering Cross-Site Scripting (XSS) - NEED
98
+ * Introduction to Sending Output - PLANNED-2
99
+ * Countering Cross-Site Scripting (XSS) - PLANNED-1
88
100
* Content Security Policy (CSP) - [ csp1] ( csp1.html )
89
- * Other HTTP Hardening Headers - (probably continue csp1) NEED
90
- * Cookies & Login Sessions - NEED
91
- * CSRF / XSRF - NEED
92
- * Open Redirects and Forwards - NEED
93
- * HTML ** target** and JavaScript ** window.open()** - NEED
94
- * Using Inadequately Checked URLs / Server-Side Request Forgery (SSRF) - NEED
95
- * Same-Origin Policy and Cross-Origin Resource Sharing (CORS) - NEED
96
- * Format Strings and Templates - NEED
97
- * Minimize Feedback / Information Exposure - NEED
98
- * Avoid caching sensitive information - NEED
99
- * Side-Channel Attacks - NEED
101
+ * Other HTTP Hardening Headers - (probably continue csp1) PLANNED-2
102
+ * Cookies & Login Sessions - PLANNED-2
103
+ * CSRF / XSRF - PLANNED-2
104
+ * Open Redirects and Forwards - PLANNED-2
105
+ * HTML ** target** and JavaScript ** window.open()** - PLANNED-2
106
+ * Using Inadequately Checked URLs / Server-Side Request Forgery (SSRF) - PLANNED-2
107
+ * Same-Origin Policy and Cross-Origin Resource Sharing (CORS) - PLANNED-2
108
+ * Format Strings and Templates - PLANNED-1
109
+ * Minimize Feedback / Information Exposure - PLANNED-2
110
+ * Avoid caching sensitive information - PLANNED-2
111
+ * Side-Channel Attacks - PLANNED-2
100
112
101
113
## Other information
102
114
0 commit comments