Combined C/C++/C#, ASP.NET and Web Application Security Training
Certificate: N/A
Duration: 4 days
Course Delivery: Classroom
Accreditor: None
Language: English
Credits: N/A
Course Description:
Serving teams that use managed code (.NET and ASP.NET typically written in C#) together with native code development (typically C/C++), this training gives a comprehensive overview of the security issues in both environments.
Concerning C/C++, common security vulnerabilities are discussed, backed by practical exercises about the attacking methods that exploit these vulnerabilities, with the focus on the mitigation techniques that can be applied to prevent the occurrences of these dangerous bugs, detect them before market launch or prevent their exploitation.
The course also covers both the various general (like Web services) and specific security solutions and tools, and the most frequent and severe security flaws of managed code, dealing with both language-specific issues and the problems stemming from the runtime environment. The vulnerabilities relevant to the ASP.NET platform are detailed along with the general web-related vulnerabilities following the OWASP Top Ten list. The course consists of a number of exercises through which attendees can easily understand and execute attacks and protection methods.
Learning Objectives:
Individuals certified at this level will have demonstrated:
● Understand basic concepts of security, IT security, cryptography and secure coding
● Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them
● Learn client-side vulnerabilities and secure coding practices
● Learn to use various security features of the .NET development environment
● Be informed about recent vulnerabilities in various platforms, frameworks and libraries
● Realize the severe consequences of non-secure buffer handling in native code
● Understand the architectural protection techniques and their weaknesses
● Learn about typical coding mistakes and how to avoid them
● Get practical knowledge in using security testing tools
● Get sources and further reading on secure coding practices
It was comprehensive in its coverage. This is a large topic and a lot of ground was covered in a clear manner.
Salt Lake City, USA
Prerequisites:
None
Course Materials:
You will receive the following as part of this course:
● A participant handbook with reference materials
● Virtual machine with the exercises (to be distributed by the instructor on a USB drive)
Course Outline:
IT security and secure coding
● Nature of security
● IT security related terms
● Definition of risk
● Different aspects of IT security
● Requirements of different application areas
● IT security vs. secure coding
● From vulnerabilities to botnets and cybercrime
● Classification of security flaws
Web application vulnerabilities
● Injection
● Broken authentication and session management
● Cross-Site Scripting (XSS)
● Insecure direct object reference
● Missing function level access control
● Cross Site Request Forgery (CSRF)
● Unvalidated redirects and forwards
Client-side security
● JavaScript security
● Ajax security
● HTML5 Security
.NET security architecture and services
● .NET architecture
● Code Access Security
● Role-based security
Basics of cryptography
● Cryptosystems
● Symmetric-key cryptography
● Other cryptographic algorithms
● Asymmetric (public-key) cryptography
● Public Key Infrastructure (PKI)
● Cryptography in .NET
ASP.NET security architecture
● ASP.NET basics
● ASP.NET features
● ASP.NET authentication and identity management
● ASP.NET authorization
ASP.NET security features and vulnerabilities
● Custom protected configuration providers
● Postback validation
● Viewstate protection
● Viewstate protection
● Event validation
● Accessing disabled and hidden controls
● Control sequence attacks
● NULL byte termination vulnerability
● Real life example – Forms Authentication Bypass
● Denial of service possibilities
Security of Web services
● Web services – Introduction
● Transport layer security
● Message level security
● Signing XML documents – spot the bug!
● XML security
● XML Digital Signature
● XML Encryption
● XML Security with Username/Password
● Security of RESTfulweb services
● REST-related vulnerabilities
Security relevant C/C++ programming bugs and flaws
● x86 machine code, memory layout, stack operations
Buffer overflow
● Buffer overflow
● Stack overflow
● Protection principles
● Stack smashing protection
● Address Space Layout Randomization (ASLR)
● Non executable memory areas – the NX bit
● Return-to-libc attack – Circumventing the NX bit
● Return oriented programming (ROP)
● Heap overflow
● Some additional native code-related vulnerabilities
● Input validation
● Improper use of security features
● Improper error and exception handling
● Time and state problems
● Code quality problems
Using security testing tools
● Web vulnerability scanners
● SQL injection tools
● Static code analysis
Knowledge sources
● Secure coding sources – a starter kit
● Vulnerability databases
Audience:
C/C++, C# and Web application developers, architects and testers
Examination:
There are no exams associated with this course