Advanced C#, ASP.NET and Web Application Security

Provided by

About the course

Beyond a solid knowledge in using various security features of .NET and ASP.NET, even for experienced programmers it is essential to have a deep knowledge in Web-related vulnerabilities both on server and client side along with the consequences of the various risks.

In this course the general web-based vulnerabilities are demonstrated through presenting the relevant attacks, while the recommended coding techniques and mitigation methods are explained in the context of ASP.NET. A special focus is given to client-side security tackling security issues of JavaScript, Ajax and HTML5.

Why Attend this Course?

The course also deals with the security architecture and components of the .NET framework, including code- and role based access control, permission declaration and checking mechanisms and the transparency model. A brief introduction to the foundations of cryptography provides a common practical baseline for understanding the purpose and the operation of various algorithms, based on which the course presents the cryptographic features that can be used in .NET.

Introduction of different security bugs follows the well-established vulnerability categories, tackling input validation, security features, error handling, time- and state-related problems, the group of general code quality issues, and a special section on ASP.NET-specific vulnerabilities. These topics are concluded with an overview on testing tools that can be used to automatically reveal some of the learnt bugs.

Topics are presented through practical exercises where participants can try out the consequences of certain vulnerabilities, the mitigations, as well as the discussed APIs and tools for themselves.

What Makes this Course Stand Apart?

This is a highly interactive Hands on courses with the options of the Accelerator Plus1 Workshop.

Lot of demos, practical exercises and samples. Very strong presentation skill of the trainer. Good balance between theory and practice application.

What you will Learn?

Upon completion of this course, you will be able to:

* Knowledge of basic concepts of security, IT security, cryptography and secure coding
* Understand Web vulnerabilities beyond OWASP Top Ten and know how to avoid them
* Understand client-side vulnerabilities and secure coding practices
* Knowledge to use various security features of the .NET development environment
* Informed about some recent vulnerabilities in .NET and ASP.NET
* Knowledge about typical coding mistakes and how to avoid them
* Gained practical knowledge in using security testing tools
* Get sources and further reading on secure coding practices


Web developers using ASP.NET


There are no formal prerequisites for this course.

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 cyber crime
* 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

Typical coding errors in .NET

* 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
* Proxy servers and sniffers
* Exercise – Capturing network traffic
* Static code analysis

Advices and principles

* Matt Bishop’s principles of robust programming
* The security principles of Saltzer and Schroeder

Knowledge sources

* Secure coding sources – a starter kit
* Vulnerability databases

Related article

As we become more reliant on digital technologies, the cyber security industry has grown in order to protect organisations against online attacks. ...