SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
What is Software Security?
Lecture 1
CS4105 - Software Security
Q2 / 2015 – 2016
Eelco Visser
Team
• Prof. Dr. Eelco Visser
• Software Engineering Research Group
• Research: Programming Languages
• TU Delft
• http://eelcovisser.org
• Prof. Dr. Sandro Etalle
• Security Group
• Research: Security
• TU Eindhoven & U Twente
• http://www.win.tue.nl/~setalle/
• Danny Groenewegen MSc
• Software Engineering Group
• Research: Web Programming Languages (WebDSL)
• TU Delft
• http://swerl.tudelft.nl/bin/view/Main/DannyGroenewegen
CODE OF CONDUCT
I will not use electronic devices such as
laptops, phones, or tablets during lectures.
My answers to assignments and exams will
be my own work (except for assignments
that explicitly permit collaboration).
http://en.wikipedia.org/wiki/File:Plagiarism_vs_Copyright_Infringement.png
I will not make solutions to assignments and
exams available to anyone else. This includes
both solutions written by me, as well as any
official solutions provided by the course staff.
http://ucblibraries.colorado.edu/about/images/Xerox5135.jpg
I will not engage in any other activities that
will dishonestly improve my results or
dishonestly improve/hurt the results of
others.
Motivation
Many security problems in software systems are due to
careless use of unsafe programming techniques.
Preventing security problems should be an integral part of the
software development process.
The course studies
• the nature of security vulnerabilities in software systems
• techniques to detect and prevent these problems
• the embedding of these techniques in a security-aware
software development process.
Objectives
At the end of this course you should understand
• the nature of security vulnerabilities in software systems
• principles for secure software development
• security testing and dynamic analysis techniques
• static analysis techniques and language-based security
… to some extent
Lectures
• Lecture 1: What is Software Security? (Nov 11)
• Lecture 2: Memory-Based Attacks (Nov 18)
• Lecture 3: Language-Based Security (Nov 25)
• Lecture 4: Vulnerabilities in Web Applications (Dec 2)
• Lecture 5: Language-based Security for the Web (Dec 9)
• Lecture 6: Information Flow and Access Control (Dec 16)
• Lecture 7: Security Testing (Jan 6)
Assignments (Groups of 2)
Security Design and Analysis
• D1: Threat model: describe the functional design of a software system and apply
architectural risk analysis (threat model)
• D2: Threat model peer review
• D3: security policies: formulate a security design, including authentication,
authorization, and audit policies for the system of D1 and argue why your design is safe
• D4 : security policies peer review
Security Bugs and Language-Based Security
• I1: Buffer overflows: construct an attack by exploiting a buffer overflow vulnerability
• I2: safety by construction: implement a translation from a high-level language to a low-
level language that ensures safety properties
• I3: web security techniques: examine security vulnerabilities and counter measures in
web programming
Exam
• January 27, 2016
• Understanding, concepts
• Multiple choice and open (essay) questions
• Using WebLab
Grading
• Assignment grade = Average(D1:D4,I1:I3)
• Final grade = Average(Exam Grade, Assignment Grade)
• Pass = Assignment Grade >= 5
& Exam Grade >= 5
& Final Grade >= 5.75
https://weblab.tudelft.nl
Delft Students
Twente Students
https://weblab.tudelft.nl/beta/
Enroll
RECOMMENDED
LITERATURE
Analyzing Computer Security
• Charles P. Pfleeger & Shari
Lawrence Pfleeger
• Analyzing Computer Security: A
Threat / Vulnerability /
Countermeasure Approach
• Prentice Hall, 2011
• Available as Kindle book from
Amazon
Threat Modeling: Designing for Security
• Adam Shostack
• Wiley, 2014
• Available as Kindle book from
Amazon
Building Secure Software
• John Viega & Gary McGraw
• Addison-Wesley, 2001
Literature
• Pfleeger & Pfleeger. Analyzing Computer Security: A Threat /
Vulnerability / Countermeasure Approach
• Shostack. Thread Modeling: Designing for Security
• Viega & McGraw. Building Secure Software
• Academic papers (available online)
• Websites
• Software Security course on Coursera by Michael Hicks
What is Software Security?
Software Security in the News
Software security is about (notorious) attacks
• HeartBleed
• ShellShock
• DigiNotar
• Your PC in a botnet
• …
that are enabled by buffer overflow vulnerabilities in software
So, software security is: understanding buffer overflows and fix
them …
But, why are (/ do we know that) these attacks problems?
Software Engineering
Software engineering is the application of engineering to the design, development
and maintenance of software
Functional requirements
• functions of a system: inputs, behavior, outputs
• use cases
• what the system should do
Non-functional requirements
• performance
• reliability
• scalability
• robustness
• …
Process: to ensure we get a good quality software system
• requirements elicitation
• design
• implementation
• testing
• deployment
Example: WebLab
functional requirements
• view, edit assignments
• compute grades
• execute student programs
• design course
• navigate course
• …
non-functional requirements
• response time
• …
WebLab Architecture
Browser WebLab LabBack
DB
What role does security play
in the design of WebLab?
Understanding Software Security
Software security != patching security bugs
We need a framework for reasoning about software security
• What is the goal of software security?
• When is a software system secure?
• What does a secure system (not) do?
• How can we verify that a software system is secure?
• How can we integrate security in the software engineering
process?
Security is (subset of) Reliability
• Software security is not a feature
• Security is preventing bad things from happening
• Cannot observe security
• Can observe lack of security … when it goes wrong
• “The objective of a secure system is to prevent all
unauthorized use of information, a negative kind of
requirement. It is hard to prove that this negative requirement
has been achieved, for one must demonstrate that every
possible threat has been anticipated.” Saltzer & Schroeder
SECURITY REQUIREMENTS
Security is Protection of Assets
• “The term “security” describes techniques that control who
may use or modify the computer or the information contained
in it.“ Saltzer & Schroeder
• “Computer security is the protection of items you value, called
the assets of a computer or computer system” Pfleeger &
Pfleeger
• To determine what to protect, we must first identify what has
value and to whom
WebLab Assets
• Assignments: lab assignments,
exam assignments
• Reference solutions to assignments
(model answers)
• Student submissions to
assignments
• Student grades
• Account data, especially passwords
What are the assets in a
learning management system?
Security Requirements (CIA)
What security properties should a software system have?
• Confidentiality
• Integrity
• Availability
• Privacy
• Nonrepudiation
Confidentiality
• The ability of a system to ensure that an asset is viewed only
by authorized parties
• Sensitive information is not leaked to unauthorized parties
• Privacy for individuals, confidentiality for data
Examples
• Confidentiality: exam assignments should not be published
(at least not until the exam is over)
• Privacy: grades should only be visible to instructor and
student involved
Anonymity
• Specific kind of privacy
Example
• Find out what kind of courses are available without being
tracked by job advertisers / universities
Integrity
• The ability of a system to ensure that an asset is modified
only by authorized parties
• Sensitive information is not damaged by unauthorized parties
Examples
• Submissions are not edited by anyone other than student
• Submissions are not edited by anyone after the deadline
• Grades are determined only by instructor or auto-grader
• Assignments, submissions, grades are not removed / only by
instructor
Availability
• The ability of a system to ensure that an asset can be used
by any authorized parties
• A system is responsive to requests
Example
• Should execute program tests fast (in reasonable time)
• Should be responsive when editing text/code
Nonrepudiation / Accountability
• The ability of a system to confirm that a sender cannot
convincingly deny having sent something
• Note: opposite of privacy/anonymity; requires a balance
Examples
• Student cannot deny to have edited submission after the
deadline
SECURITY MECHANISMS
Security Mechanisms
Provided by a system to enforce its security requirements
• Authentication
• Authorization
• Audit
Authentication
• “verify the identity of a person (or other external agent)
making a request of a computer system”
• The ability of a system to confirm the identity of a sender
• Determine subject of security policy
• Principal: an entity that can be authenticated
• Authentication factors
• something the user knows; password
• something the user has; smart phone, card
• something the user is; fingerprint
• multi-factor authentication uses several of these
Authorization
• Defines when a principal may perform an action
Examples
• WebLab roles
• Manager may edit assignments
• Grader can view and grade submissions
• Student can edit own submissions
• Student can view exam assignments when signed into the
exam and the exam has started (and not ended)
Auditing
• The ability of a system to trace all actions related to a given
asset
• Retain enough information to be able to determine the
circumstances of a breach or misbehavior (or establish one
did not occur)
• Such information, often stored in log files, must be protected
from tampering, and from access that might violate other
policies
Examples
• Maintain versions of edits to program submission
• Maintain access log
Summary: Security Design
Specify functional requirements
• use cases
Specify security requirements
• what are the assets to protect?
• confidentiality
• integrity
• availability
• which is more important?
Define security mechanisms
• authentication
• authorization
• auditing
How do you know these are adequate?
• assurance
THREAT MODELING
Threats
• What can attackers do that violates these properties?
• How do these threats violate security requirements?
Trust Boundaries
• Who controls what?
• Data-flow diagram
• Boxes around components indicate trust boundaries
Example
• Trust boundaries for WebLab
WebLab Architecture
Browser WebLab LabBack
DB
Who can access / control
which components?
WebLab Trust Boundaries
Browser WebLab LabBack
DB
WebLab Server
LabBack VM
TU Delft Data Center
Abuse Cases
• Opposite of use cases
• Illustrate security requirements
• Identify things system should not do
Example use case
• Student logs in and edits submission
Example abuse cases
• Student edits submission after the deadline
• Student changes grade of own submission
• Student executes program that modifies/destroys database
Finding Threats
How to identify threats for you system?
• Think like an attacker
• Taxonomy of threats
• Kohnfelder & Garg. The threats to our products. MSDN
1999 (STRIDE)
• Attack trees
• Attack libraries
STRIDE
• Spoofing
• Tampering
• Repudiation
• Information disclosure
• Denial of service
• Elevation of privilege
Spoofing
Violates
• Authentication
Definition
• Pretending to be something or someone other than yourself
Abuse case
• Pretending to be course manager
Tampering
Violates
• Integrity
Definition
• Modifying something on disk, on a network, or in memory
Abuse cases
• Changing grade for a submission
• Change code of a submission
• Delete a submission, assignment, course
Repudiation
Violates
• non-repudiation
Definition
• Claiming that you didn’t do something, or were not
responsible
Abuse cases
• student claiming that they did not
• copy solution
• change grade
• etc.
Information disclosure
Violates
• Confidentiality
Definition
• Providing information to someone not authorized to see it
Abuse cases
• Publishing answer to assignment
• Publishing exam questions before the exam
Denial of service
Violates
• Availability
Definition
• Absorbing resources needed to provide service
Abuse cases
• make system do many things: request flooding
• give system a big job: submitting program that runs a long
time and consumes a lot of resources
• make system: submitting program solution that crashes the
server
Elevation of privilege
Violates
• Authorization (integrity of security mechanism)
Definition
• Allowing someone to do something they’re not authorized to
do
Examples
• regular user executes code / database queries
Abuse cases
• missing / incomplete authentication
• missing authorization checks
Attack Trees
“Attack trees provide a formal, methodical way of describing the
security of systems, based on varying attacks. Basically, you
represent attacks against a system in a tree structure, with the
goal as the root node and different ways of achieving that goal
as leaf nodes” (Schneier, 1999)
Using attack trees
• Use existing attack tree to generate threats / abuse cases for
your system
• Construct new attack tree to systematically enumerate
possible attacks for your system
• Create attack tree for a class of systems (e.g. attacks for
learning management systems)
Attack Libraries
PRINCIPLES OF SECURE
SOFTWARE DESIGN
Read:
Saltzer & Schroeder (1975)
The Protection of Information in Computer Systems
http://web.mit.edu/Saltzer/www/publications/protection/
Chapter 5 in Viega & McGraw:
Guiding Principles for Software Security
Categories
Prevention
• eliminate software defects entirely
Mitigation
• reduce harm from exploitation of unknown defects
Detection and recovery
• identify and understand an attack and undo damage
Design Principles (Saltzer & Schroeder)
• Economy of mechanism
• Fail-safe defaults
• Complete mediation
• Open design
• Separation of privilege
• Least privilege
• Least common mechanism
• Psychological acceptability
• Work factor
• Compromise recording
• Defense in depth
• …
Summary
• Software security is a subset of software reliability
• Security is about protection of assets
• specified in terms of security requirements
• confidentiality, integrity, availability, accountability
• Security is realized through security mechanisms
• authentication, authorization, auditing
• Threat modeling used to identify threats against security
• trust boundaries, attack surface
• attack taxonomies (STRIDE), attack trees, attack libraries
• Principles of secure software design
• best practices to avoid known pitfalls
NEXT
Lectures
• Lecture 1: What is Software Security? (Nov 11)
• Eelco Visser in Delft
• Lecture 2: Memory-Based Attacks (Nov 18)
• Sandro Etalle in Twente
• Lecture 3: Language-Based Security (Nov 25)
• Eelco Visser in Delft
• Lecture 4: Vulnerabilities in Web Applications (Dec 2)
• Sandro Etalle in Twente
• Lecture 5: Language-based Security for the Web (Dec 9)
• Danny Groenewegen, Mark Jansen in Delft
• Lecture 6: Information Flow and Access Control (Dec 16)
• Eelco Visser in Delft
• Lecture 7: Security Testing (Jan 6)
• Eelco Visser in Delft
Assignment D
Security Design and Analysis
D1: Threat Modeling
• Select an existing software system or imagine one
• Describe its functional design using standard modeling techniques
• class diagrams
• data-flow diagrams
• use cases
• Apply threat modeling to the design
• abuses cases
• attack trees
D2: Threat Model Peer Review
D3: Designing Security Policies
• Formulate a security design, including authentication, authorization, and
auditing policies for the D1 system and argue why your design is safe
D4: Security Policies Peer Review
Assignment I: Security Bugs and
Language-Based Security
I1: Buffer Overflows
• Construct an attack by exploiting a buffer overflow
vulnerability
I2: Safety by Construction
• Implement a translation from a high-level language to a low-
level language that ensures safety properties
I3: Web Security
• Implement a small web application with vanilla use of a web
programming language / framework
• Examine security vulnerabilities in the result
• What do you need to do to prevent these bugs?
• Examine the counter measures in a WebDSL implementation
of the same application
The Secret Life of Mobile Applications
Julia Rubin (MIT)
Wed, Nov 18, 2015 at 9:15 | TU Delft, EWI, Chip
Mobile applications have access to and leak user-sensitive information, such
as device id, location and the user’s email address. Several static and
dynamic program analysis techniques were recently proposed to identify such
information leakages. Yet, distinguishing between “acceptable” and
“unacceptable” leakages is still a tedious manual task: an application could
send the user’s location to its own server in order to provide accurate
navigation instructions, which would likely be acceptable by the majority of
users. Shadowing the same information to a third-party server without any
effect on the observable application behavior would likely be unacceptable.
In this talk, I will present a set of techniques that attempt to automate the
distinction between “acceptable” and “unacceptable” leakages. Specifically, I
will describe our approach for detecting communication that does not affect
the delivered application experience. As the vast majority of mobile
applications are user-centric, one would expect that such communication is
rare. To our surprise, that was not the case in many highly popular Android
applications from Google Play.

Mais conteúdo relacionado

Mais procurados

Threat Modeling 101
Threat Modeling 101Threat Modeling 101
Threat Modeling 101Vlad Styran
 
Software Security Frameworks
Software Security FrameworksSoftware Security Frameworks
Software Security FrameworksMarco Morana
 
Secure by design and secure software development
Secure by design and secure software developmentSecure by design and secure software development
Secure by design and secure software developmentBill Ross
 
Rapid Threat Modeling : case study
Rapid Threat Modeling : case studyRapid Threat Modeling : case study
Rapid Threat Modeling : case studyAntonio Fontes
 
Presentation on vulnerability analysis
Presentation on vulnerability analysisPresentation on vulnerability analysis
Presentation on vulnerability analysisAsif Anik
 
Software Development Life Cycle – Managing Risk and Measuring Security
Software Development Life Cycle – Managing Risk and Measuring SecuritySoftware Development Life Cycle – Managing Risk and Measuring Security
Software Development Life Cycle – Managing Risk and Measuring SecurityThomas Malmberg
 
Threat Modeling And Analysis
Threat Modeling And AnalysisThreat Modeling And Analysis
Threat Modeling And AnalysisLalit Kale
 
6 Most Popular Threat Modeling Methodologies
 6 Most Popular Threat Modeling Methodologies 6 Most Popular Threat Modeling Methodologies
6 Most Popular Threat Modeling MethodologiesEC-Council
 
Classification of vulnerabilities
Classification of vulnerabilitiesClassification of vulnerabilities
Classification of vulnerabilitiesMayur Mehta
 
Threat Simulation and Modeling Training
Threat Simulation and Modeling TrainingThreat Simulation and Modeling Training
Threat Simulation and Modeling TrainingBryan Len
 
A successful application security program - Envision build and scale
A successful application security program - Envision build and scaleA successful application security program - Envision build and scale
A successful application security program - Envision build and scalePriyanka Aash
 
STRIDE And DREAD
STRIDE And DREADSTRIDE And DREAD
STRIDE And DREADchuckbt
 
Vulnerability Assesment
Vulnerability AssesmentVulnerability Assesment
Vulnerability AssesmentDedi Dwianto
 
Application Threat Modeling In Risk Management
Application Threat Modeling In Risk ManagementApplication Threat Modeling In Risk Management
Application Threat Modeling In Risk ManagementMel Drews
 
Developing a Threat Modeling Mindset
Developing a Threat Modeling MindsetDeveloping a Threat Modeling Mindset
Developing a Threat Modeling MindsetRobert Hurlbut
 
ОЛЬГА АКСЬОНЕНКО «Безпечна розробка програмного забезпечення в Agile проектах...
ОЛЬГА АКСЬОНЕНКО «Безпечна розробка програмного забезпечення в Agile проектах...ОЛЬГА АКСЬОНЕНКО «Безпечна розробка програмного забезпечення в Agile проектах...
ОЛЬГА АКСЬОНЕНКО «Безпечна розробка програмного забезпечення в Agile проектах...GoQA
 

Mais procurados (20)

Threat Modeling 101
Threat Modeling 101Threat Modeling 101
Threat Modeling 101
 
Software Security Frameworks
Software Security FrameworksSoftware Security Frameworks
Software Security Frameworks
 
Secure by design and secure software development
Secure by design and secure software developmentSecure by design and secure software development
Secure by design and secure software development
 
Rapid Threat Modeling : case study
Rapid Threat Modeling : case studyRapid Threat Modeling : case study
Rapid Threat Modeling : case study
 
Presentation on vulnerability analysis
Presentation on vulnerability analysisPresentation on vulnerability analysis
Presentation on vulnerability analysis
 
Secure Coding and Threat Modeling
Secure Coding and Threat ModelingSecure Coding and Threat Modeling
Secure Coding and Threat Modeling
 
Arved sandstrom - the rotwithin - atlseccon2011
Arved sandstrom - the rotwithin - atlseccon2011Arved sandstrom - the rotwithin - atlseccon2011
Arved sandstrom - the rotwithin - atlseccon2011
 
Null bachav
Null bachavNull bachav
Null bachav
 
Software Development Life Cycle – Managing Risk and Measuring Security
Software Development Life Cycle – Managing Risk and Measuring SecuritySoftware Development Life Cycle – Managing Risk and Measuring Security
Software Development Life Cycle – Managing Risk and Measuring Security
 
Threat Modeling And Analysis
Threat Modeling And AnalysisThreat Modeling And Analysis
Threat Modeling And Analysis
 
6 Most Popular Threat Modeling Methodologies
 6 Most Popular Threat Modeling Methodologies 6 Most Popular Threat Modeling Methodologies
6 Most Popular Threat Modeling Methodologies
 
Classification of vulnerabilities
Classification of vulnerabilitiesClassification of vulnerabilities
Classification of vulnerabilities
 
Threat Simulation and Modeling Training
Threat Simulation and Modeling TrainingThreat Simulation and Modeling Training
Threat Simulation and Modeling Training
 
A successful application security program - Envision build and scale
A successful application security program - Envision build and scaleA successful application security program - Envision build and scale
A successful application security program - Envision build and scale
 
STRIDE And DREAD
STRIDE And DREADSTRIDE And DREAD
STRIDE And DREAD
 
Vulnerability Assesment
Vulnerability AssesmentVulnerability Assesment
Vulnerability Assesment
 
Application Threat Modeling In Risk Management
Application Threat Modeling In Risk ManagementApplication Threat Modeling In Risk Management
Application Threat Modeling In Risk Management
 
Developing a Threat Modeling Mindset
Developing a Threat Modeling MindsetDeveloping a Threat Modeling Mindset
Developing a Threat Modeling Mindset
 
Red7 Software Application Security Threat Modeling
Red7 Software Application Security Threat ModelingRed7 Software Application Security Threat Modeling
Red7 Software Application Security Threat Modeling
 
ОЛЬГА АКСЬОНЕНКО «Безпечна розробка програмного забезпечення в Agile проектах...
ОЛЬГА АКСЬОНЕНКО «Безпечна розробка програмного забезпечення в Agile проектах...ОЛЬГА АКСЬОНЕНКО «Безпечна розробка програмного забезпечення в Agile проектах...
ОЛЬГА АКСЬОНЕНКО «Безпечна розробка програмного забезпечення в Agile проектах...
 

Destaque

How to Effectively Secure your Assets
How to Effectively Secure your AssetsHow to Effectively Secure your Assets
How to Effectively Secure your Assetsglobaledit®
 
Principles of secure system design
Principles of secure system designPrinciples of secure system design
Principles of secure system designJohn Scrimsher
 
Embedded Systems Security: Building a More Secure Device
Embedded Systems Security: Building a More Secure DeviceEmbedded Systems Security: Building a More Secure Device
Embedded Systems Security: Building a More Secure DevicePriyanka Aash
 
Leading Practices in Information Security & Privacy
Leading Practices in Information Security & PrivacyLeading Practices in Information Security & Privacy
Leading Practices in Information Security & PrivacyDonny Shimamoto
 
Cyber Security trends and tactics for 2015
Cyber Security trends and tactics for 2015Cyber Security trends and tactics for 2015
Cyber Security trends and tactics for 2015Scalar Decisions
 
IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13
IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13
IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13Jd Mercado
 
Lecture about network and host security to NII students
Lecture about network and host security to NII studentsLecture about network and host security to NII students
Lecture about network and host security to NII studentsAkiumi Hasegawa
 
Information systems 365 lecture eight
Information systems 365 lecture eightInformation systems 365 lecture eight
Information systems 365 lecture eightNicholas Davis
 
Usabiltyvs Security Case study of SmartPhone OS
Usabiltyvs Security Case study of SmartPhone OSUsabiltyvs Security Case study of SmartPhone OS
Usabiltyvs Security Case study of SmartPhone OSRajiv Ranjan Singh
 
Security Training: #1 What Actually a Security Is?
Security Training: #1 What Actually a Security Is?Security Training: #1 What Actually a Security Is?
Security Training: #1 What Actually a Security Is?Yulian Slobodyan
 
E-Mail - Technical Overview
E-Mail - Technical OverviewE-Mail - Technical Overview
E-Mail - Technical OverviewVenkatesh Iyer
 
Introduction to Computer Networks
Introduction to Computer NetworksIntroduction to Computer Networks
Introduction to Computer NetworksVenkatesh Iyer
 
Introduction to Peer-to-Peer Networks
Introduction to Peer-to-Peer Networks Introduction to Peer-to-Peer Networks
Introduction to Peer-to-Peer Networks Venkatesh Iyer
 
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİGÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİBGA Cyber Security
 

Destaque (20)

How to Effectively Secure your Assets
How to Effectively Secure your AssetsHow to Effectively Secure your Assets
How to Effectively Secure your Assets
 
Seguridad WiFi
Seguridad WiFiSeguridad WiFi
Seguridad WiFi
 
Principles of secure system design
Principles of secure system designPrinciples of secure system design
Principles of secure system design
 
Embedded Systems Security: Building a More Secure Device
Embedded Systems Security: Building a More Secure DeviceEmbedded Systems Security: Building a More Secure Device
Embedded Systems Security: Building a More Secure Device
 
Leading Practices in Information Security & Privacy
Leading Practices in Information Security & PrivacyLeading Practices in Information Security & Privacy
Leading Practices in Information Security & Privacy
 
BDD UI testing
BDD UI testingBDD UI testing
BDD UI testing
 
Cyber Security trends and tactics for 2015
Cyber Security trends and tactics for 2015Cyber Security trends and tactics for 2015
Cyber Security trends and tactics for 2015
 
Lecture 07 networking
Lecture 07 networkingLecture 07 networking
Lecture 07 networking
 
IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13
IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13
IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13
 
Lecture about network and host security to NII students
Lecture about network and host security to NII studentsLecture about network and host security to NII students
Lecture about network and host security to NII students
 
Information systems 365 lecture eight
Information systems 365 lecture eightInformation systems 365 lecture eight
Information systems 365 lecture eight
 
Usabiltyvs Security Case study of SmartPhone OS
Usabiltyvs Security Case study of SmartPhone OSUsabiltyvs Security Case study of SmartPhone OS
Usabiltyvs Security Case study of SmartPhone OS
 
Security Training: #1 What Actually a Security Is?
Security Training: #1 What Actually a Security Is?Security Training: #1 What Actually a Security Is?
Security Training: #1 What Actually a Security Is?
 
Lecture12
Lecture12Lecture12
Lecture12
 
Ch16
Ch16Ch16
Ch16
 
Network Security Lecture
Network Security LectureNetwork Security Lecture
Network Security Lecture
 
E-Mail - Technical Overview
E-Mail - Technical OverviewE-Mail - Technical Overview
E-Mail - Technical Overview
 
Introduction to Computer Networks
Introduction to Computer NetworksIntroduction to Computer Networks
Introduction to Computer Networks
 
Introduction to Peer-to-Peer Networks
Introduction to Peer-to-Peer Networks Introduction to Peer-to-Peer Networks
Introduction to Peer-to-Peer Networks
 
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİGÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
 

Semelhante a TUD CS4105 | 2015 | Lecture 1

4_25655_SE731_2020_1__2_1_Lecture 1 - Course Outline and Secure SDLC.ppt
4_25655_SE731_2020_1__2_1_Lecture 1 - Course Outline and Secure SDLC.ppt4_25655_SE731_2020_1__2_1_Lecture 1 - Course Outline and Secure SDLC.ppt
4_25655_SE731_2020_1__2_1_Lecture 1 - Course Outline and Secure SDLC.pptgealehegn
 
Beyond security testing
Beyond security testingBeyond security testing
Beyond security testingCu Nguyen
 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile WorldDavid Lindner
 
Lecture Course Outline and Secure SDLC.ppt
Lecture Course Outline and Secure SDLC.pptLecture Course Outline and Secure SDLC.ppt
Lecture Course Outline and Secure SDLC.pptDrBasemMohamedElomda
 
Null application security in an agile world
Null application security in an agile worldNull application security in an agile world
Null application security in an agile worldStefan Streichsbier
 
Owasp tds
Owasp tdsOwasp tds
Owasp tdssnyff
 
An integrated security testing framework and tool
An integrated security testing framework  and toolAn integrated security testing framework  and tool
An integrated security testing framework and toolMoutasm Tamimi
 
Hacker vs Tools: Which to Choose?
Hacker vs Tools: Which to Choose?Hacker vs Tools: Which to Choose?
Hacker vs Tools: Which to Choose?Security Innovation
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon
 
Security and DevOps Overview
Security and DevOps OverviewSecurity and DevOps Overview
Security and DevOps OverviewAdrian Sanabria
 
Assessing System Risk the Smart Way
Assessing System Risk the Smart WayAssessing System Risk the Smart Way
Assessing System Risk the Smart WaySecurity Innovation
 
How to develop an AppSec culture in your project
How to develop an AppSec culture in your project How to develop an AppSec culture in your project
How to develop an AppSec culture in your project 99X Technology
 
A journey into Application Security
A journey into Application SecurityA journey into Application Security
A journey into Application SecurityChristian Martorella
 
For Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSecFor Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSecLalit Kale
 
Reduce Third Party Developer Risks
Reduce Third Party Developer RisksReduce Third Party Developer Risks
Reduce Third Party Developer RisksKevo Meehan
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationDEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationFelipe Prado
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauroMatt Tesauro
 

Semelhante a TUD CS4105 | 2015 | Lecture 1 (20)

4_25655_SE731_2020_1__2_1_Lecture 1 - Course Outline and Secure SDLC.ppt
4_25655_SE731_2020_1__2_1_Lecture 1 - Course Outline and Secure SDLC.ppt4_25655_SE731_2020_1__2_1_Lecture 1 - Course Outline and Secure SDLC.ppt
4_25655_SE731_2020_1__2_1_Lecture 1 - Course Outline and Secure SDLC.ppt
 
Beyond security testing
Beyond security testingBeyond security testing
Beyond security testing
 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile World
 
Lecture Course Outline and Secure SDLC.ppt
Lecture Course Outline and Secure SDLC.pptLecture Course Outline and Secure SDLC.ppt
Lecture Course Outline and Secure SDLC.ppt
 
Null application security in an agile world
Null application security in an agile worldNull application security in an agile world
Null application security in an agile world
 
Owasp tds
Owasp tdsOwasp tds
Owasp tds
 
An integrated security testing framework and tool
An integrated security testing framework  and toolAn integrated security testing framework  and tool
An integrated security testing framework and tool
 
Hacker vs tools
Hacker vs toolsHacker vs tools
Hacker vs tools
 
Hacker vs Tools: Which to Choose?
Hacker vs Tools: Which to Choose?Hacker vs Tools: Which to Choose?
Hacker vs Tools: Which to Choose?
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
 
Security and DevOps Overview
Security and DevOps OverviewSecurity and DevOps Overview
Security and DevOps Overview
 
Assessing System Risk the Smart Way
Assessing System Risk the Smart WayAssessing System Risk the Smart Way
Assessing System Risk the Smart Way
 
How to develop an AppSec culture in your project
How to develop an AppSec culture in your project How to develop an AppSec culture in your project
How to develop an AppSec culture in your project
 
Building an AppSec Culture
Building an AppSec Culture Building an AppSec Culture
Building an AppSec Culture
 
A journey into Application Security
A journey into Application SecurityA journey into Application Security
A journey into Application Security
 
For Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSecFor Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSec
 
Reduce Third Party Developer Risks
Reduce Third Party Developer RisksReduce Third Party Developer Risks
Reduce Third Party Developer Risks
 
Careers in Cyber Security
Careers in Cyber SecurityCareers in Cyber Security
Careers in Cyber Security
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationDEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauro
 

Mais de Eelco Visser

CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingCS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingEelco Visser
 
CS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesCS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesEelco Visser
 
CS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingCS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingEelco Visser
 
CS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionCS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionEelco Visser
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionEelco Visser
 
A Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesA Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesEelco Visser
 
Declarative Type System Specification with Statix
Declarative Type System Specification with StatixDeclarative Type System Specification with Statix
Declarative Type System Specification with StatixEelco Visser
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionEelco Visser
 
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Eelco Visser
 
Compiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementCompiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementEelco Visser
 
Compiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersCompiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersEelco Visser
 
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationCompiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationEelco Visser
 
Compiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesCompiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesEelco Visser
 
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksCompiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksEelco Visser
 
Compiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisCompiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisEelco Visser
 
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionCompiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionEelco Visser
 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsEelco Visser
 
Compiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingCompiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingEelco Visser
 
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisCompiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisEelco Visser
 
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingCompiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingEelco Visser
 

Mais de Eelco Visser (20)

CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingCS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
 
CS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesCS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic Services
 
CS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingCS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | Parsing
 
CS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionCS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definition
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: Introduction
 
A Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesA Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation Rules
 
Declarative Type System Specification with Statix
Declarative Type System Specification with StatixDeclarative Type System Specification with Statix
Declarative Type System Specification with Statix
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler Construction
 
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
 
Compiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementCompiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory Management
 
Compiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersCompiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | Interpreters
 
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationCompiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code Generation
 
Compiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesCompiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual Machines
 
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksCompiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone Frameworks
 
Compiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisCompiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow Analysis
 
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionCompiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint Resolution
 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type Constraints
 
Compiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingCompiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type Checking
 
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisCompiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static Analysis
 
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingCompiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
 

Último

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 

Último (20)

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 

TUD CS4105 | 2015 | Lecture 1

  • 1. What is Software Security? Lecture 1 CS4105 - Software Security Q2 / 2015 – 2016 Eelco Visser
  • 2. Team • Prof. Dr. Eelco Visser • Software Engineering Research Group • Research: Programming Languages • TU Delft • http://eelcovisser.org • Prof. Dr. Sandro Etalle • Security Group • Research: Security • TU Eindhoven & U Twente • http://www.win.tue.nl/~setalle/ • Danny Groenewegen MSc • Software Engineering Group • Research: Web Programming Languages (WebDSL) • TU Delft • http://swerl.tudelft.nl/bin/view/Main/DannyGroenewegen
  • 4. I will not use electronic devices such as laptops, phones, or tablets during lectures.
  • 5. My answers to assignments and exams will be my own work (except for assignments that explicitly permit collaboration). http://en.wikipedia.org/wiki/File:Plagiarism_vs_Copyright_Infringement.png
  • 6. I will not make solutions to assignments and exams available to anyone else. This includes both solutions written by me, as well as any official solutions provided by the course staff. http://ucblibraries.colorado.edu/about/images/Xerox5135.jpg
  • 7. I will not engage in any other activities that will dishonestly improve my results or dishonestly improve/hurt the results of others.
  • 8. Motivation Many security problems in software systems are due to careless use of unsafe programming techniques. Preventing security problems should be an integral part of the software development process. The course studies • the nature of security vulnerabilities in software systems • techniques to detect and prevent these problems • the embedding of these techniques in a security-aware software development process.
  • 9. Objectives At the end of this course you should understand • the nature of security vulnerabilities in software systems • principles for secure software development • security testing and dynamic analysis techniques • static analysis techniques and language-based security … to some extent
  • 10. Lectures • Lecture 1: What is Software Security? (Nov 11) • Lecture 2: Memory-Based Attacks (Nov 18) • Lecture 3: Language-Based Security (Nov 25) • Lecture 4: Vulnerabilities in Web Applications (Dec 2) • Lecture 5: Language-based Security for the Web (Dec 9) • Lecture 6: Information Flow and Access Control (Dec 16) • Lecture 7: Security Testing (Jan 6)
  • 11. Assignments (Groups of 2) Security Design and Analysis • D1: Threat model: describe the functional design of a software system and apply architectural risk analysis (threat model) • D2: Threat model peer review • D3: security policies: formulate a security design, including authentication, authorization, and audit policies for the system of D1 and argue why your design is safe • D4 : security policies peer review Security Bugs and Language-Based Security • I1: Buffer overflows: construct an attack by exploiting a buffer overflow vulnerability • I2: safety by construction: implement a translation from a high-level language to a low- level language that ensures safety properties • I3: web security techniques: examine security vulnerabilities and counter measures in web programming
  • 12. Exam • January 27, 2016 • Understanding, concepts • Multiple choice and open (essay) questions • Using WebLab
  • 13. Grading • Assignment grade = Average(D1:D4,I1:I3) • Final grade = Average(Exam Grade, Assignment Grade) • Pass = Assignment Grade >= 5 & Exam Grade >= 5 & Final Grade >= 5.75
  • 18.
  • 20. Analyzing Computer Security • Charles P. Pfleeger & Shari Lawrence Pfleeger • Analyzing Computer Security: A Threat / Vulnerability / Countermeasure Approach • Prentice Hall, 2011 • Available as Kindle book from Amazon
  • 21. Threat Modeling: Designing for Security • Adam Shostack • Wiley, 2014 • Available as Kindle book from Amazon
  • 22. Building Secure Software • John Viega & Gary McGraw • Addison-Wesley, 2001
  • 23. Literature • Pfleeger & Pfleeger. Analyzing Computer Security: A Threat / Vulnerability / Countermeasure Approach • Shostack. Thread Modeling: Designing for Security • Viega & McGraw. Building Secure Software • Academic papers (available online) • Websites • Software Security course on Coursera by Michael Hicks
  • 24. What is Software Security?
  • 25. Software Security in the News Software security is about (notorious) attacks • HeartBleed • ShellShock • DigiNotar • Your PC in a botnet • … that are enabled by buffer overflow vulnerabilities in software So, software security is: understanding buffer overflows and fix them … But, why are (/ do we know that) these attacks problems?
  • 26. Software Engineering Software engineering is the application of engineering to the design, development and maintenance of software Functional requirements • functions of a system: inputs, behavior, outputs • use cases • what the system should do Non-functional requirements • performance • reliability • scalability • robustness • … Process: to ensure we get a good quality software system • requirements elicitation • design • implementation • testing • deployment
  • 27. Example: WebLab functional requirements • view, edit assignments • compute grades • execute student programs • design course • navigate course • … non-functional requirements • response time • …
  • 28. WebLab Architecture Browser WebLab LabBack DB What role does security play in the design of WebLab?
  • 29. Understanding Software Security Software security != patching security bugs We need a framework for reasoning about software security • What is the goal of software security? • When is a software system secure? • What does a secure system (not) do? • How can we verify that a software system is secure? • How can we integrate security in the software engineering process?
  • 30. Security is (subset of) Reliability • Software security is not a feature • Security is preventing bad things from happening • Cannot observe security • Can observe lack of security … when it goes wrong • “The objective of a secure system is to prevent all unauthorized use of information, a negative kind of requirement. It is hard to prove that this negative requirement has been achieved, for one must demonstrate that every possible threat has been anticipated.” Saltzer & Schroeder
  • 32. Security is Protection of Assets • “The term “security” describes techniques that control who may use or modify the computer or the information contained in it.“ Saltzer & Schroeder • “Computer security is the protection of items you value, called the assets of a computer or computer system” Pfleeger & Pfleeger • To determine what to protect, we must first identify what has value and to whom
  • 33. WebLab Assets • Assignments: lab assignments, exam assignments • Reference solutions to assignments (model answers) • Student submissions to assignments • Student grades • Account data, especially passwords What are the assets in a learning management system?
  • 34. Security Requirements (CIA) What security properties should a software system have? • Confidentiality • Integrity • Availability • Privacy • Nonrepudiation
  • 35. Confidentiality • The ability of a system to ensure that an asset is viewed only by authorized parties • Sensitive information is not leaked to unauthorized parties • Privacy for individuals, confidentiality for data Examples • Confidentiality: exam assignments should not be published (at least not until the exam is over) • Privacy: grades should only be visible to instructor and student involved
  • 36. Anonymity • Specific kind of privacy Example • Find out what kind of courses are available without being tracked by job advertisers / universities
  • 37. Integrity • The ability of a system to ensure that an asset is modified only by authorized parties • Sensitive information is not damaged by unauthorized parties Examples • Submissions are not edited by anyone other than student • Submissions are not edited by anyone after the deadline • Grades are determined only by instructor or auto-grader • Assignments, submissions, grades are not removed / only by instructor
  • 38. Availability • The ability of a system to ensure that an asset can be used by any authorized parties • A system is responsive to requests Example • Should execute program tests fast (in reasonable time) • Should be responsive when editing text/code
  • 39. Nonrepudiation / Accountability • The ability of a system to confirm that a sender cannot convincingly deny having sent something • Note: opposite of privacy/anonymity; requires a balance Examples • Student cannot deny to have edited submission after the deadline
  • 41. Security Mechanisms Provided by a system to enforce its security requirements • Authentication • Authorization • Audit
  • 42. Authentication • “verify the identity of a person (or other external agent) making a request of a computer system” • The ability of a system to confirm the identity of a sender • Determine subject of security policy • Principal: an entity that can be authenticated • Authentication factors • something the user knows; password • something the user has; smart phone, card • something the user is; fingerprint • multi-factor authentication uses several of these
  • 43. Authorization • Defines when a principal may perform an action Examples • WebLab roles • Manager may edit assignments • Grader can view and grade submissions • Student can edit own submissions • Student can view exam assignments when signed into the exam and the exam has started (and not ended)
  • 44. Auditing • The ability of a system to trace all actions related to a given asset • Retain enough information to be able to determine the circumstances of a breach or misbehavior (or establish one did not occur) • Such information, often stored in log files, must be protected from tampering, and from access that might violate other policies Examples • Maintain versions of edits to program submission • Maintain access log
  • 45. Summary: Security Design Specify functional requirements • use cases Specify security requirements • what are the assets to protect? • confidentiality • integrity • availability • which is more important? Define security mechanisms • authentication • authorization • auditing How do you know these are adequate? • assurance
  • 47. Threats • What can attackers do that violates these properties? • How do these threats violate security requirements?
  • 48. Trust Boundaries • Who controls what? • Data-flow diagram • Boxes around components indicate trust boundaries Example • Trust boundaries for WebLab
  • 49. WebLab Architecture Browser WebLab LabBack DB Who can access / control which components?
  • 50. WebLab Trust Boundaries Browser WebLab LabBack DB WebLab Server LabBack VM TU Delft Data Center
  • 51. Abuse Cases • Opposite of use cases • Illustrate security requirements • Identify things system should not do Example use case • Student logs in and edits submission Example abuse cases • Student edits submission after the deadline • Student changes grade of own submission • Student executes program that modifies/destroys database
  • 52. Finding Threats How to identify threats for you system? • Think like an attacker • Taxonomy of threats • Kohnfelder & Garg. The threats to our products. MSDN 1999 (STRIDE) • Attack trees • Attack libraries STRIDE • Spoofing • Tampering • Repudiation • Information disclosure • Denial of service • Elevation of privilege
  • 53. Spoofing Violates • Authentication Definition • Pretending to be something or someone other than yourself Abuse case • Pretending to be course manager
  • 54. Tampering Violates • Integrity Definition • Modifying something on disk, on a network, or in memory Abuse cases • Changing grade for a submission • Change code of a submission • Delete a submission, assignment, course
  • 55. Repudiation Violates • non-repudiation Definition • Claiming that you didn’t do something, or were not responsible Abuse cases • student claiming that they did not • copy solution • change grade • etc.
  • 56. Information disclosure Violates • Confidentiality Definition • Providing information to someone not authorized to see it Abuse cases • Publishing answer to assignment • Publishing exam questions before the exam
  • 57. Denial of service Violates • Availability Definition • Absorbing resources needed to provide service Abuse cases • make system do many things: request flooding • give system a big job: submitting program that runs a long time and consumes a lot of resources • make system: submitting program solution that crashes the server
  • 58. Elevation of privilege Violates • Authorization (integrity of security mechanism) Definition • Allowing someone to do something they’re not authorized to do Examples • regular user executes code / database queries Abuse cases • missing / incomplete authentication • missing authorization checks
  • 59. Attack Trees “Attack trees provide a formal, methodical way of describing the security of systems, based on varying attacks. Basically, you represent attacks against a system in a tree structure, with the goal as the root node and different ways of achieving that goal as leaf nodes” (Schneier, 1999) Using attack trees • Use existing attack tree to generate threats / abuse cases for your system • Construct new attack tree to systematically enumerate possible attacks for your system • Create attack tree for a class of systems (e.g. attacks for learning management systems)
  • 60.
  • 62. PRINCIPLES OF SECURE SOFTWARE DESIGN Read: Saltzer & Schroeder (1975) The Protection of Information in Computer Systems http://web.mit.edu/Saltzer/www/publications/protection/ Chapter 5 in Viega & McGraw: Guiding Principles for Software Security
  • 63. Categories Prevention • eliminate software defects entirely Mitigation • reduce harm from exploitation of unknown defects Detection and recovery • identify and understand an attack and undo damage
  • 64. Design Principles (Saltzer & Schroeder) • Economy of mechanism • Fail-safe defaults • Complete mediation • Open design • Separation of privilege • Least privilege • Least common mechanism • Psychological acceptability • Work factor • Compromise recording • Defense in depth • …
  • 65. Summary • Software security is a subset of software reliability • Security is about protection of assets • specified in terms of security requirements • confidentiality, integrity, availability, accountability • Security is realized through security mechanisms • authentication, authorization, auditing • Threat modeling used to identify threats against security • trust boundaries, attack surface • attack taxonomies (STRIDE), attack trees, attack libraries • Principles of secure software design • best practices to avoid known pitfalls
  • 66. NEXT
  • 67. Lectures • Lecture 1: What is Software Security? (Nov 11) • Eelco Visser in Delft • Lecture 2: Memory-Based Attacks (Nov 18) • Sandro Etalle in Twente • Lecture 3: Language-Based Security (Nov 25) • Eelco Visser in Delft • Lecture 4: Vulnerabilities in Web Applications (Dec 2) • Sandro Etalle in Twente • Lecture 5: Language-based Security for the Web (Dec 9) • Danny Groenewegen, Mark Jansen in Delft • Lecture 6: Information Flow and Access Control (Dec 16) • Eelco Visser in Delft • Lecture 7: Security Testing (Jan 6) • Eelco Visser in Delft
  • 68. Assignment D Security Design and Analysis D1: Threat Modeling • Select an existing software system or imagine one • Describe its functional design using standard modeling techniques • class diagrams • data-flow diagrams • use cases • Apply threat modeling to the design • abuses cases • attack trees D2: Threat Model Peer Review D3: Designing Security Policies • Formulate a security design, including authentication, authorization, and auditing policies for the D1 system and argue why your design is safe D4: Security Policies Peer Review
  • 69. Assignment I: Security Bugs and Language-Based Security I1: Buffer Overflows • Construct an attack by exploiting a buffer overflow vulnerability I2: Safety by Construction • Implement a translation from a high-level language to a low- level language that ensures safety properties I3: Web Security • Implement a small web application with vanilla use of a web programming language / framework • Examine security vulnerabilities in the result • What do you need to do to prevent these bugs? • Examine the counter measures in a WebDSL implementation of the same application
  • 70. The Secret Life of Mobile Applications Julia Rubin (MIT) Wed, Nov 18, 2015 at 9:15 | TU Delft, EWI, Chip Mobile applications have access to and leak user-sensitive information, such as device id, location and the user’s email address. Several static and dynamic program analysis techniques were recently proposed to identify such information leakages. Yet, distinguishing between “acceptable” and “unacceptable” leakages is still a tedious manual task: an application could send the user’s location to its own server in order to provide accurate navigation instructions, which would likely be acceptable by the majority of users. Shadowing the same information to a third-party server without any effect on the observable application behavior would likely be unacceptable. In this talk, I will present a set of techniques that attempt to automate the distinction between “acceptable” and “unacceptable” leakages. Specifically, I will describe our approach for detecting communication that does not affect the delivered application experience. As the vast majority of mobile applications are user-centric, one would expect that such communication is rare. To our surprise, that was not the case in many highly popular Android applications from Google Play.