Securing .Net Web Applications

Securing .Net Web Applications is a lab-intensive, hands-on .Net security training course, essential for experienced enterprise developers who need to engineer, maintain, and support secure .Net-based web applications. In this course, students thoroughly examine best practices for defensively coding web applications, covering all the OWASP Top Ten as well as several additional prominent vulnerabilities (such as file uploads, CSRF and direct object references). Students will repeatedly attack and then defend various assets associated with fully functional web applications and services. This hands-on approach drives home the mechanics of how to secure .Net web applications in the most practical of terms. A key component to our Best Defense IT Security Training Series, this workshop is a companion course with several developer-oriented courses and seminars. Our bug hunting class introduces penetration testing , illustrating how hackers probe and exploit our applications. Our developing secure software class introduces various security measures that can be applied through the software lifecycle. The combination of ethical hacking, secure coding, and secure lifecycle training provides student with the complete experience in application security.

Retail Price: $0.00

Next Date: Request Date

Course Days: 3


Request a Date

Request Custom Course


Learning Objectives

 

Students who attend Securing .Net Web Applications will leave the course armed with the skills required to recognize actual and potential software vulnerabilities, implement defenses for those vulnerabilities, and test those defenses for sufficiency.   This course introduces developers to the most common security vulnerabilities faced by web applications today. Each vulnerability is examined from a .Net perspective through a process of describing the threat and attack mechanisms, recognizing associated vulnerabilities, and, finally, designing, implementing, and testing effective defenses. 

Practical labs reinforce these concepts with real vulnerabilities and attacks.  Students are then challenged to design and implement the layered defenses they will need in defending their own applications. There is an emphasis on the underlying vulnerability patterns since the technologies, use cases, and methods of attack as constantly changing. The patterns remain the same through all the change and flux.

 

Working in a dynamic, lab-intensive hands-on coding environment students will learn to:

  • ·       Understand the concepts and terminology behind defensive, secure coding including the phases and goals of a typical exploit
  • ·       Develop an appreciation for the need and value of a multilayered defense in depth
  • ·       Understand potential sources for untrusted data
  • ·       Understand the consequences for not properly handling untrusted data such as denial of service, cross-site scripting, and injections
  • ·       To test web applications with various attack techniques to determine the existence of and effectiveness of layered defenses
  • ·       Prevent and defend the many potential vulnerabilities associated with untrusted data
  • ·       Understand the vulnerabilities of associated with authentication and authorization
  • ·       Detect, attack, and implement defenses for authentication and authorization functionality and services
  • ·       Understand the dangers and mechanisms behind Cross-Site Scripting (XSS) and Injection attacks
  • ·       Detect, attack, and implement defenses against XSS and Injection attacks
  • ·       Understand the risks associated with XML processing, file uploads, and server-side interpreters and how to best eliminate or  mitigate those risks
  • ·       Learn the strengths, limitations, and use for tools such as code scanners, dynamic scanners, and web application firewalls (WAFs)
  • ·       Understand techniques and measures that can used to harden web and application servers as well as other components in your infrastructure

 

Who Should Attend

 

This is an intermediate -level .Net secure programming course, designed for experienced .Net developers who wish to get up and running on developing well defended software applications.  Familiarity with C# is required and real world programming experience is highly recommended.  Ideally students should have approximately 6 months to a year of .Net development practical experience. 

 

Take Before:  Incoming students should have skills equivalent to the topics in, or should have recently attended, this course as a pre-reqisuite:

  • TTCN2100 Introduction to C# .Net Programming

 

We recommend that incoming students consider taking the following course first, although it is not a pre-requisite :

  • TT8300-N: Ehtical Hacking: Bug Hunting in .Net Web Applications

 

Take After: We offer a variety of introductory through advanced security, development, project management, engineering, architecture and design courses that serve as an excellent follow on to this course.  Please inquire for details.

  • TT8324: Developing Secure Software Applications
  • Test Driven Development / Agile training
  • Web Services, REST & Services training

 


Outline

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most. Course agenda, topics and labs are subject to adjust during live delivery.

 

 

Session: Foundation

Lesson: Principles of Information Security

  • Security Is a Lifecycle Issue
  • Minimize Attack Surface Area
  • Layers of Defense: Tenacious D
  • Compartmentalize
  • Consider All Application States
  • Do NOT Trust the Untrusted
  • Tutorial: Working with Visual Studio
  • Lab: Case Study Setup and Review

 

Lesson: Hunting the Bugs

  • Ethical Hacking
  • What NOT to do
  • Bug Hunter Tools

 

Session: Bug Stomping 101

Lesson: Unvalidated Data

  • Buffer Overflows
  • Integer Arithmetic Vulnerabilities
  • Unvalidated Data: Crossing Trust Boundaries
  • Defending Trust Boundaries
  • Whitelisting vs Blacklisting
  • Lab: Defending Trust Boundaries

 

Lesson: A1: Injection

  • Injection Flaws
  • SQL Injection Attacks Evolve
  • Drill Down on Stored Procedures
  • Other Forms of Injection
  • Minimizing Injection Flaws
  • Exercise: Defending Against SQL Injection

 

Lesson: A2: Broken Authentication

  • Quality and Protection of Authentication Data
  • Handling Passwords on Server Side
  • SessionID Risk Reduction
  • HttpOnly and Security Headers
  • Lab: Defending Authentication

 

Lesson: A3: Sensitive Data Exposure

  • Protecting Data Can Mitigate Impact
  • In-Memory Data Handling
  • Secure Pipes
  • Failures in TLS/SSL Framework
  • Lab: Defending Sensitive Data

 

Lesson: A4: XML External Entities (XXE)

  • XML Parser Coercion
  • XML Attacks: Structure
  • XML Attacks: Injection
  • Safe XML Processing
  • Lab: Safe XML Processing
  • Lab: Dynamic Loading Using XSLT (Optional)

 

Lesson: A5: Broken Access Control

  • Access Control Issues
  • Excessive Privileges
  • Insufficient Flow Control
  • Unprotected URL/Resource Access
  • Examples of Shabby Access Control
  • Sessions and Session Management
  • Lab: Unsafe Direct Object References
  • Lab: Spotlight on Verizon Exploit

 

Session: Bug Stomping 102

Lesson: A6: Security Misconfiguration

  • System Hardening: IA Mitigation
  • Application Whitelisting
  • Least Privileges
  • Anti-Exploitation
  • Secure Baseline

 

Lesson: A7: Cross Site Scripting (XSS)

  • XSS Patterns
  • Persistent XSS
  • Reflective XSS
  • DOM-based XSS
  • Best Practices for Untrusted Data
  • Lab: Defending Against XSS

 

Lesson: A8/9: Deserialization/Vulnerable Components

  • Deserialization Issues
  • Identifying Serialization and Deserializations
  • Vulnerable Components
  • Software Inventory
  • Managing Updates
  • Lab: Spotlight on Equifax Exploit

 

Lesson: A10: Insufficient Logging and Monitoring

  • Fingerprinting a Web Site
  • Error-Handling Issues
  • Logging In Support of Forensics
  • Solving DLP Challenges
  • Lab: Error Handling

 

Lesson: Spoofing, CSRF, and Redirects

  • Name Resolution Vulnerabilities
  • Fake Certs and Mobile Apps
  • Targeted Spoofing Attacks
  • Cross Site Request Forgeries (CSRF)
  • CSRF Defenses
  • Lab: Cross-Site Request Forgeries

 

Session: Moving Forward

Lesson: .NET Issues and Best Practices

  • Manage Code and Buffer Overflows
  • .Net Permissions
  • ActiveX Controls
  • Proper Exception Handling

 

Lesson: What Next?

  • Common Vulnerabilities and Exposures
  • CWE/SANS Top 25 Most Dangerous SW Errors
  • Strength Training: Project Teams/Developers
  • Strength Training: IT Organizations
  • Leveraging Common AppSec Practices and Controls
  • Lab: Recent Incidents
  • Lab: Spotlight on Capitol One Exploit

 

Time Permitting:

 

Lesson: Cryptography Overview

  • Strong Encryption
  • Message Digests
  • Encryption/Decryption
  • Keys and Key Management
  • NIST Recommendations

 

Lesson: .NET Cryptographic Services

  • The role of cryptographic services
  • Hash algorithms and hash codes
  • Encrypting data symmetrically
  • Encrypting data asymmetrically
  • Lab: .Net Hashing (Optional)
  • Lab: .Net Symmetric Encryption
  • Lab: .Net Asymmetric Encryption (Optional)


Sorry! It looks like we haven’t updated our dates for the class you selected yet. There’s a quick way to find out. Contact us at 502.265.3057 or email info@training4it.com


Request a Date