Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Paweł Berus (PSNC) – referred as PB
  • Łukasz Czarniecki (PSNC) – referred as ŁC (not talking in person but prepares some input)
  • Gerard Frankowski (PNSC) – referred as GF
  • Maciej Miłostan (PSNC) – referred as MM (not talking in person but prepares some input)
  • Tomasz Nowak (PSNC) – referred as TN

Agenda

General information

The agenda bases upon previous SCT agendas (it was assumed no significant changes should occur). The updates to that schedule has been made basing on the following factors:

  • The feedback collected from SCT 2014
  • The need to introduce more practical parts and interaction

The proposed updates are as follows:

...

  1. Refreshing the workshop material with the most recent state-of-the-art.
  2. Analysis of the material whether it is still possible to remove some text from the slides or even the whole slides.
  3. Minor changes to breaks – in order to not make breaks between similar slots, but rather in the place where the topic significantly changes.

This version of the agenda may slightly be adjusted during the SCT as the interaction between the experts and the participants is of the greatest value and if the participants have more questions than expected, particular slots may be prolonged a bit and others may be shortened.

There are 4 sessions that will be handled 1-2-1 per day. Each session lasts between 3 hours – 4 hours and 15 minutes (including short breaks within the sessions). Especially the sessions 2 and 3 plus a bit longer lunch break make the whole day. There will be no parallel sessions. Particular basic programming skills will be required from the participants.

The changes made to the agenda (see the next 4 chapters) are formatted as below:

New content – with bold font

Significantly updated content – with underlined font

Session 1 (Day 1, 13:00 – 17:00)

Time

Subject

Expert

Remarks

13:00-13:15

 

Introduction to the training

SA4T1 /DFN or

GF

Organization of the training, introducing the agenda, conventions etc., information where to get the previous content.

13:15-13:45

How we support building secure MDS Tools

GF (+ support)

SA4T1 activities intended for SDTs and how they differ from GN3+ activities (a more broad portfolio).

“Support” means that probably some slides would be prepared by SA4T1 representative, but would be described by GF. A short presentation of the procedures, deliverable D4.1.1. etc.

13:45-14:30

Threat modelling and risk assessment

GF

The presentation would contain a short introduction to the IT Infrastructure Threat Modelling (ITI TM) process and its particular stages: vision, model, identifying the threats, countermeasures and validation. STRIDE threat model will be presented as well as DREAD risk analysis model. The developers will learn how to think about security from the very earliest stage of the project lifecycle, how to identify potential threats and address them in the appropriate way.

Additional exercises will be prepared, the group will be working on assessing the threats with the DREAD model and propose countermeasures using the gained knowledge.

Short break 15 min. (14:30-14:45)

14:45-15:20

Data sanitization – meaning and techniques

GF

A recap of presentation from the first SCTs. Reminder about the crucial role of data sanitization techniques in software security. Several real examples will be shown how to bypass insufficiently strict sanitization mechanisms (e.g. black lists).

A short exercise with building regular expressions will be prepared.

15:20-16:00

Secure file uploads mechanisms

PB, GF

The presentation will cover a short description of known security problems associated with uploading files to Web applications. Examples are: possibility of uploading files with the active code run by the application (like .php, .jsp files), opportunity to further calling these files or referring to them in another way, possibility to upload files like .htaccess, files with multiple extensions, large files, pictures with an embedded active code with them etc.

Short break 15 min. (16:00-16:15)

16:15-17:00

Java encapsulation and object mutability workshop

TN

A set of 5 exercises presenting not so obvious Java features, which can lead to introducing security vulnerabilities. Each of the exercises
consists of several steps described in the source code directory, so that participants can do them in their own pace and consult the expert when necessary. At the end of the session the experts will explain solutions to all participants.

 

Session 2 (Day 2, 9:00 – 12:30)

Time

Subject

Expert

Remarks

9:00-10:10

Secure Web programming workshop
1. Injection flaws (10' lecture, 30' exercise)
2. Broken authentication and session management (10' lecture, 20' exercise)

PB, TN

Common security vulnerabilities according to OWASP top 10 will be introduced to participants. Every category of errors will be explained in details, with practical exercises.

Short break 10 min. (10:10-10:20)

10:20-11:20

Secure Web programming workshop

3. Cross-site scripting flaws (10' lecture, 30' exercise)

4. Insecure Direct Object References (5' lecture, 15' exercise)

PB, TN

See above

Short break 10 min. (11:20-11:30)

11:30-12:30

Secure Web programming workshop

5. Security misconfiguration (5' lecture, 15' exercise)

6. Sensitive data exposure (5' lecture, 15' exercise)

7. Missing function level access control (5' lecture, 15' exercise)

PB, TN

See above

Lunch break 1h  min. (12:30-13:30)

Session 3 (Day 2, 13:30 – 17:00)

Time

Subject

Expert

Remarks

13:30-14:30

Secure Web programming workshop

8. Cross-Site Request Forgery (CSRF) (5' lecture, 15' exercise)

9. Using components with known vulnerabilities (5' lecture, 15' exercise)

10. Unvalidated redirects and forwards (5' lecture, 15' exercise)

PB, TN

See above

14:30-14:45Short lecture with the workshop summary
  • Encoding Issues
  • Impact of using CMSs on security of Web applications
  • Race condition problems in Web applications
TN 

Short break 15 min. + preparation to HackMe (14:45-15:10)

15:10-17:00

HackMe

PB, TN

HackMe contest

Session 4 (Day 3, 9:00 – 13:00)

Time

Subject

Expert

Remarks

9:00-10:00

Secure programming in Perl, Python and shell scripting languages

ŁC (author),

TN (speaking),

GF

(demo)

A general review of the most significant bad and good programming practices in the mentioned languages. The presentation will rather mention the most significant practices and will not be as extended as Java or C parts.

The slot will include a demo of Perl::Critic source code analyser.

10:00-10:30

Introduction to code review strategies and techniques

GF

A comparison of manual and automated code analysis. Basic information (with examples) to the manual source code review strategies: Code Comprehension, Candidate Point, Design Generalization. Code Auditing Tactics. An exercise will be included.

10:30-11:00

From riddle to Heartbleed – catch the bug!

GF, ?

Several exercises concerning analyzing of the source code parts, looking for security bugs. Simple exercises may be prepared as well as the real famous bugs will be analyzed (e.g. OpenSSL Heartbleed).

The detailed contents may depend on what programming language preferences will be chosen by the attendees in the registration form.

Short break 15 min (11:00-11:15), preparations to the demos and workshop

11:15-11:45

Review of the most up-to-date free static source code analyzers for C, Java and PHP 

GF, TN

A short review of currently available free static source code analysers for C, Java, and PHP (extended, comparing with previous SCTs).

11:45-12:45

Workshop: automated source code analysis 

GF, TN

2 code parts will be analyzed with automated scanners; Java and PHP. Example: the set of returned results will be analysed with the detection of false positives. Different configuration options of the tools will be tried. The source code will be repaired and the tools will be re-run.

12:45-13:00

Closing of the training

GF

Summary. Filling the evaluation forms. Prize for the smartest participant who scores the most points during the exercises (or wins the most difficult contest).

 

Points to be discussed

  • Registration
  • Feedback
  • Extra topics

Information for registration form

Overview

Producing secure code for applications is a key aspect of protecting GɉANT applications and systems. With the move towards multi-domain systems and services, there is a greater emphasis on securing these multi-domain systems as well as ensuring secure deployment of them. This year's Secure Code Training will focus on areas that affect the development and analysis of application's source code.

Emphasis on understanding threat and risk modelling will enable developers to think about security from the very earliest stage of the project lifecycle.

Apart from the main security concepts for this session, a review of the most significant bad and good programming practices covering Perl, Python and shell scripting languages will be covered.

The training will contain an extensive hands-on workshop aspect. The workshop will be divided into four blocks, covering specific coding security problems which lead to various security vulnerabilities. After covering the theoretical basics, the participants will begin to search for the vulnerabilities which were covered, and analyse the code of the modified MDS tools. At the end of the practical part, participants will have the opportunity to take part in a "HackMe" contest, where they will be able to further strengthen the knowledge that they will have obtained during the workshop.

Organizers of the training will review received preregistration application forms and choose a group of participants with a coherent level of knowledge in programming languages. All applicants will be notified in a week after the preregistration is closed.

Objectives

Attendees having completed this training should be able to:

...


  • Perform a threat and risk assessment on their development projects.

...

  • Have a clear understanding on some of the major bad and good programming concepts.

...

  • Develop a secure web application code in several programming languages.

...

  • Use tools for assistance in reviewing code of other developers.

The participants should have a practical knowledge of programming and scripting languages.

Agenda

The course will begin after lunch on Tuesday 1 March, and end around 13:00 on Thursday 3 March.

Please note this is a preliminary agenda and subject to change. If you have any comments or suggestions about the content of this agenda please contact the GEANT Training Activity.

1 March (13:00 - 17:00)

SESSION 1 - Introduction

  • Introduction to the training
  • How we support building secure MDS tools
  • Threat modelling and risk assessment
  • Data sanitization – meaning and techniques
  • Secure file uploads mechanisms

2 March (9:00 - 17:00)

SESSION 2 - Secure Web programming (part I)

  • Injection flaws
  • Broken authentication and session management
  • Cross-site scripting flaws
  • Insecure Direct Object References
  • Security misconfiguration
  • Sensitive data exposure
  • Missing function level access control

SESSION 3 - Secure Web programming (part II)

  • Cross-Site Request Forgery (CSRF)
  • Using components with known vulnerabilities
  • Unvalidated redirects and forwards
  • Workshop summary
  • HackMe Contest

3 March (9:00 - 13:00)

SESSION 4 - Coding and analysis

  • Code review strategies and techniques
  • From riddle to Heartbleed – catch the bug!
  • Review of free static source code analyzers
  • Workshop: automated source code analysis

After the training the lecturers will be available for questions and discussion.

Preregistration form questions

Which programming languages do you know, use and plan to use in the GEANT project?

Please use: 0 - never used, 1 - used for some little projects, 2 - quite familiar, 3 - expert.

Java: [   ]

Python: [  ]

Scripting (bash): [  ]

Other: ...........................

How do you rate your security knowledge?

0 - no experience

1 - I know what SQL injection and XSS means

2 - I am familiar with most of the topics in the agenda