Course Objectives
- Threat modeling
- Common attacks
- Secure design
- Countermeasures
- Modern security frameworks
- Authorization and Authentication
- Session security
- Framework architecture
- Securing the runtime environment
- Security future
- Problem
- Solution
Outline
Please see modules below
Course Content
Secure Coding – 3 Day Training Session
Live, Online Instructor Led Training
Tuesday 6.13.2023 – Thursday 6.15.2023
$1800 per Student
Who should attend
- Developers, team leads, project managers
- Cybersecurity awareness: Recommended
- Comfortable developing code in the target environment
Module 1: Threat Modeling
- STRIDE attack classification
- Security terminology
- Threat modeling
- CVSS attack assessment
- Labs on threat modeling
Module 2: Common Attacks
- Cross site scripting
- Malicious file execution
- Session hijacking
- Encryption
- Unsecured direct object reference
- Failure to authorize/hidden URLs
Module 3: Secure Design
- Layered design concepts
- Object layer
- Persistence layer
- Presentation layer
Module 4: Countermeasures
- Validation
- Validation controls
- Strong typing
- Regular expressions
- White list
- Scrubbing
- Black list
- Encoding
- CAPTCHA
- Honey pots
- Avoiding SQL injection
- Parametrizing queries/Prepared statements
- Stored procedures
- Entity Frameworks/Hibernate
- Avoiding cross site request forgeries
Module 5: Modern Security Frameworks
- Introduction to modern frameworks
- Vault
- Consul
- Anthos
- Modern security design patterns
- Dynamic secrets
- Automatic credential rotation
- Cubbyhole response wrapping
- Encryption as a service
- Where to go from here
Module 6: Authorization and Authentication
- .NET authentication
- Basic & Digest
- Forms
- Windows authentication
- JAAS and other Java authentication services
- Authorization
- Password security
- Brute force attacks
- Password resets
- Secret questions/answers
- SSL/TLS
Module 7: Session Security
- Session IDs
- Policies
- Hijacking/Fixation Attacks
Module 8: Framework Architecture
- Threading
- Privileges
- Audits/Logs
- Secure coding
- Encryption services
- Static code analysis
Module 9: Securing the Runtime Environment
- .NET
- Code Access
- GAC
- Strong named assemblies
- CLR
- Security Zones
- Permissions
- Security policy
Module 10: Security Future
- Zero-trust networks
- Artificial intelligence
- Appendix – Background
Module 11: Problem Statement
- Security of software systems is becoming more and more important and visible in the public eye. Meanwhile, there is a basic imbalance between the attackers (hackers) and defenders (software developers). That is, hackers get immediate reward for their breach they effect and the damage the cause. By contracts, defenders get the blame when they are hacked and no mention when they are not.
- Our system addresses this and changes the balance, ultimately resulting in more secure software systems.
Module 12: Solution
- (Pat. Pend.) IMPACT
- Breaking the developers into two teams: blue (defenders) and red (attackers)
- Recording the results of the attacker’s actions
- Recording the successes of the defenders in stopping the attackers and their failures
- Periodically update the scoreboard of the defenders thus proving positive reinforcement for their actions
- The IMPACT system records the above data as logs. It is built on logging frameworks and well-known open source tools for log generation. It uses NoSQL databases to store the log data and Big Data analytics tools such as Spark generate the scoreboards.