net secure coding 5-day course course syllabus secure coding 5-day course course description secure...

7
.NET Secure Coding 5-Day Course Course Syllabus

Upload: vutram

Post on 21-Mar-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: NET Secure Coding 5-Day Course Course Syllabus secure coding 5-day course Course description Secure programming is the last line of defense against attacks targeted toward our systems

.NET Secure Coding

5-Day Course

Course Syllabus

Page 2: NET Secure Coding 5-Day Course Course Syllabus secure coding 5-day course Course description Secure programming is the last line of defense against attacks targeted toward our systems

.NET secure coding 5-day course

Course description

Secure programming is the last line of defense against attacks targeted toward our systems.

This course shows you how to identify security flaws & implement security countermeasures in

different areas of the software development lifecycle and apply these skills to improve the

overall quality of the products and applications.

Using sound programming techniques and best practices shown in this course, you can produce

high-quality code that stands up to attack.

This course covers major security principles in the .NET framework, programming vulnerabilities

and specific security issues in ASP.NET web applications & Winform applications.

The objectives of the course are to acquaint students with security concepts and terminology,

and to provide them with a solid foundation for developing software using the best practices in

the .NET framework. By course completion, students will be proficient in secure programming

and have learnt the basics of security analysis and design. Students should then be able to

develop, design and maintain applications using security methods and techniques using the

.NET framework advanced security features.

Target audience

Members of the software development team:

.NET developers in ASP.NET / Windows based applications

Designers & architects.

Prerequisites

Before attending this course, students should be familiar with:

ASP.NET / Winform programming background using C# (preferred) or VB.NET

IIS, Databases (SQL Server) & SQL language

Page 3: NET Secure Coding 5-Day Course Course Syllabus secure coding 5-day course Course description Secure programming is the last line of defense against attacks targeted toward our systems

Course topics

Day 1

Introduction to application security

Why web application risks occur?

How is application security different from network security?

Web application exploits & vulnerabilities

OWASP Top 10

Live hacking examples

.NET input validation

What is considered Input?

The Need for Input Validation

Client Side VS. Server Side Validations

Black List VS. White List Validation

String Manipulation and Comparison

Data Type Conversion

Regular Expressions

ASP.NET Validation controls

Lab- Validating user input in .NET applications

.NET output encoding

What is output encoding?

HtmlEncode & UrlEncode

ASP.NET controls with encoding support

The Anti-XSS Library

Sandboxing

Lab - Secure encoding of user output in .NET applications

Browser manipulation

Cross Site Request Forgery (CSRF)

Anti CSRF token

Open redirect

Index based redirection

Page 4: NET Secure Coding 5-Day Course Course Syllabus secure coding 5-day course Course description Secure programming is the last line of defense against attacks targeted toward our systems

Day 2

.NET secure file handling

Path traversal

Canonicalization

Virtual path mapping using MapPath

Sanitizing file names using GetFullPath

Uploaded files backdoors

File extension handling

Directory listing

Isolated stotage

File ACLs

Lab – secure file handling

.NET authentication

Authentication scenarios

Weak Passwords

Implementing Forms authentication

Mitigating Brute Force attacks

The CAPTCHA mechanism

Implementing Windows authentication

Relationship between IIS and ASP.NET.

Impersonation

Delegation

Lab - Implementing authentication in .NET applications by using a variety of methods.

.NET authorization

Authorization models

URL authorization

File authorization

Role based access control (RBAC)

Using Least Privileged DB User Accounts

Membership provider & Role manager

Lab - Implementing authorization in .NET applications by using a variety of methods

Page 5: NET Secure Coding 5-Day Course Course Syllabus secure coding 5-day course Course description Secure programming is the last line of defense against attacks targeted toward our systems

Day 3

.NET session management

Session management techniques

Session State Options in .NET

Avoiding session hijacking

Cookie based session management

Cookie information leakage

Secure Cookie Attributes - Expire, Secure, HttpOnly, Domain, Path

Attack Scenarios on session management

Referrer based decisions

Avoiding session fixation attacks

Mitigating CSRF (Cross Site Request forgery)

Protecting the ViewState

Lab - Employing secure session management mechanisms

.NET error handling

Why exposing detailed error messages is bad

Structured Exception Handling – Try, Catch, Finally

The Fail-Open VS. Fail-Close approach

Configuring ASP.NET error handling in web.config

Creating custom error pages

HTTP error codes

Handling errors using HttpModule

Page level VS. Application level handling

Handling Runtime Security Errors

Error handling strategies

Lab- how to securely handle runtime errors using the .NET framework and Windows

mechanisms.

.NET auditing & logging

Importance of Logging

What should we audit?

Event message structure

Logging best practices

Built-in logging technologies in .NET

ASP.NET trace and System.Diagnostics.Trace

Windows event log

Page 6: NET Secure Coding 5-Day Course Course Syllabus secure coding 5-day course Course description Secure programming is the last line of defense against attacks targeted toward our systems

Performance Monitor

Windows Management Instrumentation (WMI)

The logn4net framework

Lab- Implementing auditing in .NET applications by using a variety of methods

.NET configuration management

Secure connection to remove services

Protecting connections strings

Disable debugging

Disable tracing

Lab – secure configuration management

Day 4

.NET cryptography

Avoiding weak encryption

Implementing Encryption using the System.Security.Cryptography namespace

Symmetric Encryption

Asymmetric Encryption

Hashing

Digital signatures

Certificates

The certificate store

Transport Level Encryption

Storage Level Encryption

DB Encryption

Protecting sensitive strings with SecureString

Using DPAPI (Data Protection API)

Lab- Implementing cryptography in .NET applications.

Web services & WCF security

Web services & SOA overview

Security and web services

WCF security

Transport level security

Message level security

Web services authentication & authorization

Lab- Implementing security in WCF web services

Page 7: NET Secure Coding 5-Day Course Course Syllabus secure coding 5-day course Course description Secure programming is the last line of defense against attacks targeted toward our systems

Day 5

Application Denial of Service vulnerabilities

Application / OS crash

CPU starvation

Memory starvation

File system starvation

Resource starvation

Triggering high network bandwidth

User level DOS

Exploiting a specific vulnerability to cause DoS

Lab – Preventing DoS attacks

SDL – Secure Development Lifecycle

Traditional development processes &the cost of change

Integrating Security into the Development Lifecycle

Security in the design stage

Threat modeling

The STRIDE model

The DREAD model

Implementing security while writing secure code

Security testing

Workshop – security testing

Live hacking workshop.

Exam

Final exam, covering all the course topics.