SlideShare a Scribd company logo
Built-in Security Mindfulness
for Software Developers
Phu H. Phung
Intelligent Systems Security Lab
Department of Computer Science, University of Dayton
https://isseclab-udayton.github.io/
March 11, 2020
Cyber Security Spends and Trends in Companies
•Spends and Trends: SANS 2020 IT Cybersecurity Spending
Survey
All about
network, i.e., cyber
security
But, most of cyber
attacks are not due
to network issues
1
Applications Continue To Be Companies’ Weakest
Security Link
2
Forrester: The State Of
Application Security, 2019
Top 71% of external
attacks are due to
software vulnerabilities
Software is vulnerable
3
Common Software Vulnerabilities
4
Software Security versus Network (Cyber) Security
5
Program
Process Data
(Structured Program
Internals)
Input Output
Call-out to
other programs
(also consider
input & output issues)
Software Security
Network Security Network Security
Software Security versus Network Security:
An example
•Assume that you are a Paypal user, and assume that Paypal
is on HTTPS and requires two-factor authentication, i.e.,
after providing username/password, you are required to
confirm the login in another device
Network security is fully guaranteed
•Discussion: is it safe for you to open a link like below while
you are logged in on Paypal?
https://www.paypal.com/eg/cgi-bin/cmd=flow&SESSION=Akl-tATMf1GOP-
tQu3t3x4Vju&…
6
Paypal was vulnerable to CSRF
7
Who should be responsible for the Paypal attack
example?
•The user?
 e.g., using anti-virus software?
•Your organization?
e.g., installing anti-virus software, using a proxy filtering,
firewalls?
•The Internet Provider?
e.g., installing firewalls?
Conventional Security Solutions
such as anti-virus software or
firewall cannot prevent attacks
caused by software
vulnerabilities 8
Conventional Security Mechanisms
•Firewall
•Cryptography
•Access control
•System calls/
privileged mode
Treat programs as black box,
cannot address vuneralbilities inside a program
9
Issues of Conventional Security Mechanisms and
Network Security
•Cannot address important current and future security
needs:
Downloaded, mobile code
Buffer overflow, code injection, data races, and other safety
problems
Web application security
Information flow control, e.g., privacy
10
Software Security
•Vulnerabilities in software that cause cyber attacks that can
not be prevented by conventional security mechanisms
 A vulnerability is a flaw in software mostly caused by software
developers
11
Chart source: Trend Micro and the Organization of American States (OAS)
Another Attack Example: A Buffer-Overflow
12
Enter Your PIN:
Attacker can inject
malicious code from input
to exploit vulnerable
programs
Buffer Overflow Example
• A simple program in C, e.g., myecho.c that just print the input:
• Compiling and execution
$ gcc myecho.c -o myecho
$ myecho OISC20
OISC20
Are there any issues
you can see in this
simple program?
How about?
$ myecho $(perl -e 'print "A"x150')
13
Buffer Overflow Attack Live Demo
14
Demo video: https://youtu.be/RAawLvKa-U0
Buffer-Over Flow Attack Examples
•The most common software vulnerabilities that causes
cyber attacks
•Recent and notable examples:
Wannacry, May 2017
o A Ransomware crippling systems worldwide
WhatsApp, May 2019
o Hackers compromise victims’ phone by a phone call that
automatically executes malicious code
15
Source: https://blog.securitycompass.com/wannacry-and-the-elephant-in-the-room-c9b24cfee2bd
16
17
Are buffer overflow attacks new?
•Buffer overflow is 40 years old!
18
Why does Buffer-Overflow happen?
•Data is read or written outside the bounds of a buffer
The attacker gets the program to treat the malicious data as
code
•How can this happen?
The developer did not check the data size or use insecure
functions in the program!!!
19
Software Development
•Based on a typical software engineering process
Normally developers
focus on the
functionalities
of the application
20
Image source: www.pinterest.com
Security in Software Development
•Developers mainly focus on the functionalities
Few developers know how to develop secure software
o Programming books/courses do not teach it
Most developers do not think like a hacker
o “How could this be attacked?” – be slightly paranoid
Developers do not learn from others’ security mistakes
o Most vulnerabilities caused by same mistakes over 40+ years
Credit: David A. Wheeler
21
Traditional Penetrate-and-Patch Software
Development Approach
•Once a software vulnerability is discovered (normally by
attackers), the software can be patched, but:
Unpatched systems remain vulnerable
Other vulnerabilities might still remain
New vulnerabilities might be discovered
•Zero-day vulnerability attacks exploit this Penetrate-and-
Patch approach
22
Zero-day vulnerabilities
•Undisclosed computer-software vulnerabilities
Hackers can exploit to adversely affect computer systems
oBefore the vulnerability is fixed and patched
23
Security at the source
•The developers should be responsible for security at the
design and development phase
Secure Development Lifecycle has been proposed
Source: “Improving Security Across the Software Development Lifecycle – Task Force Report”, April 1, 2004.
http://www.cyberpartnership.org/init.html; based on Gary McGraw 2004, IEEE Security and Privacy. Fair use asserted.
Credit: David A. Wheeler 24
Built-in Security Mindfulness for Software
Developers at UDayton-CS
•Understanding of the impact of software vulnerabilities (in
Software/Language-based Security course)
•Develop “Building Security In” Approach (in Secure
Application Development course)
Secure and Sustainability Principles and Practices in Application
Development
Avoid security problems at the design stage
25
Software Security/Language-based Security at
UDayton-CS
•Students will learn the practice of software security
how to identify vulnerabilities in computer systems
o white-hat hacker mindset !!!
how to defense against the possible vulnerabilities
•Students can understand the principles of language-based
security
how to design secure systems and write secure code
26
UDayton-CS hands-on example: SQLi Attacks
•Students will need to hack into a real web server (on a
Cyber Range), e.g.: http://myphoto.blog.com/
By exploring and exploiting its SQL Injection Vulnerabilities
Read the data from the database
Obtain the username/password
and login to the system
27
Detect the SQL Vulnerabilities
• Click on a link, e.g.:http://myphoto.blog.com/cat.php?id=1
 Recall HTTP GET Request, inputs are encoded in the URL
• Let’s try several different inputs to detect potential vulnerabilities:
 http://myphoto.blog.com/cat.php?id=1'
28
Detect the SQL Vulnerabilities - More
 http://myphoto.blog.com/cat.php?id=a
 http://myphoto.blog.com/cat.php?id=2-1
• Guessing?
29
SELECT xxx FROM xxx
WHERE xxx=<input>
Exploitation of SQL Injections
• We guessed the SQL
SELECT xxx FROM xxx WHERE xxx=<input>
• How to inject a SQL query for attacks?
 Use UNION:
SELECT xxx FROM xxx WHERE xxx=value UNION SELECT ???
 UNION must have the same number of columns. How do we
know?
oTrials with errors, e.g.,:
• SELECT xxx FROM xxx WHERE xxx=value UNION SELECT 1
30
Exploitation of SQL Injections - more
• We guessed the SQL
SELECT xxx FROM xxx WHERE xxx=<input>
• Trials with errors, e.g.,:
 SELECT xxx FROM xxx WHERE xxx=value UNION SELECT
1
SELECT xxx FROM xxx WHERE xxx=value
UNION SELECT 1, 2
 ...
• Students first do hands-on to identify the number of
columns
 Carry out further attacks 31
Future Software security hacking environment
• We create a practical and
real environment for students
E.g.,:
https://myphoto.ss-lbs.me
for SQL Injection Attacks
https://myblog.ss-lbs.me
for XSS, SQLi, Session Hijacking
CSRF attacks
32
Discussion: How many columns used in the SQL in
https://myphoto.ss-lbs.me/cat.php?id=1
A. *
B. 1
C. 2
D. 3
E. 4
33
Demo: Retrieving username/password
with SQLi Attacks
Students can login with the stolen
username/password
34
Secure Application Development at UDayton-CS
• How to develop application software with “Building
Security In” Approach
 Secure and Sustainability Principles and Practices in Application
Development
Robust and Defensive Programming Techniques
Avoid security problems at the design stage
o Developers with hacker mindset!!
35
Secure Application Development Example:
A Simple Login System
•Code (from the scratch) to authenticate users with
username/password
Check on real database (MySQL)
•Then think as a hacker!
 Doing self-attacks
 Implementing secure code
The query:
SELECT * FROM users where username='admin' AND
password=password('thepassword');
thepassword
36
Username/password check from Database
37
Discussion: What are the potential security risks in this SQL statement?
A. No input validation
B. Attackers can inject SQL code
C. Attackers can inject JavaScript code
D. A and B
E. A, B, and C
sql=SELECT * FROM users where username=' '
AND password=password(' ')
P4$$w0rd
admin
P4$$w0rd
Self-attack Demo: Mixed SQL and JavaScript
38
admin' #<script>alert(document.cookie)</script>
This is an example of code
injection attacks, mixing
SQL and JavaScript. Will be
covered in detail next steps
Prepared Statements in PHP/MySQL
39
Vulnerable SQL Statement
OWASP Primary Defenses against SQL Injection Attacks:
Option #1: Use of Prepared Statements
Built-in Security Mindfulness for Software
Developers at UDayton-CS: A Reflection
•Stable and increasing enrollment
•Very high positive feedback from students
Yoursecureapplication projectis veryusefulforattending interviews.
Dr.Phung,
Ijust wantedtothankyouandalsoletyouknowhowbeneficial yourclass wasinan
interviewIhadacoupleweeksago.
…
Yourclassbenefited meextremelyandIjustwantedtomakesurethatyouknewand
yousothatyoucantellyourclasses what employersmightaskabout.Iendedup
gettingajoboffer15minutes afterIleft theinterview,theysaidthattheywere
trulyimpressed with myrangeofknowledge.
40
Challenges and Opportunities
•Security courses are not mandatory for CS students
 Future developers still write insecure code !!!
•I welcome and look forward to opportunities
 Integrate security components in programming classes
 Collaborate with other colleges to explore the possibilities to
integrate security components in their curriculum
 Work with industry to propose a long-term solution
41
Thank you!
Phu H. Phung
Intelligent Systems Security Lab
Department of Computer Science, University of Dayton
https://isseclab-udayton.github.io/
March 11, 2020

More Related Content

What's hot

Developing a Threat Modeling Mindset
Developing a Threat Modeling MindsetDeveloping a Threat Modeling Mindset
Developing a Threat Modeling Mindset
Robert Hurlbut
 
Threat Modeling And Analysis
Threat Modeling And AnalysisThreat Modeling And Analysis
Threat Modeling And Analysis
Lalit Kale
 
Tech Report: On the Effectiveness of Malware Protection on Android
Tech Report: On the Effectiveness of Malware Protection on AndroidTech Report: On the Effectiveness of Malware Protection on Android
Tech Report: On the Effectiveness of Malware Protection on Android
Fraunhofer AISEC
 
Rapid Threat Modeling : case study
Rapid Threat Modeling : case studyRapid Threat Modeling : case study
Rapid Threat Modeling : case study
Antonio Fontes
 
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
Owasp A9 USING KNOWN VULNERABLE COMPONENTS   IT 6873 presentationOwasp A9 USING KNOWN VULNERABLE COMPONENTS   IT 6873 presentation
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
Derrick Hunter
 
Application Threat Modeling
Application Threat ModelingApplication Threat Modeling
Application Threat ModelingMarco Morana
 
Application Threat Modeling
Application Threat ModelingApplication Threat Modeling
Application Threat Modeling
Rochester Security Summit
 
IT system security principles practices
IT system security principles practicesIT system security principles practices
IT system security principles practices
gufranresearcher
 
From velvet to silk there is still a lot of sweat
From velvet to silk  there is still a lot of sweatFrom velvet to silk  there is still a lot of sweat
From velvet to silk there is still a lot of sweat
Stefano Maccaglia
 
Matteo Meucci Software Security in practice - Aiea torino - 30-10-2015
Matteo Meucci   Software Security in practice - Aiea torino - 30-10-2015Matteo Meucci   Software Security in practice - Aiea torino - 30-10-2015
Matteo Meucci Software Security in practice - Aiea torino - 30-10-2015
Minded Security
 
Secure coding presentation Oct 3 2020
Secure coding presentation Oct 3 2020Secure coding presentation Oct 3 2020
Secure coding presentation Oct 3 2020
Moataz Kamel
 
Module 5 (system hacking)
Module 5 (system hacking)Module 5 (system hacking)
Module 5 (system hacking)
Wail Hassan
 
Software Security Engineering (Learnings from the past to fix the future) - B...
Software Security Engineering (Learnings from the past to fix the future) - B...Software Security Engineering (Learnings from the past to fix the future) - B...
Software Security Engineering (Learnings from the past to fix the future) - B...
DebasisMohanty43
 
An Introduction to Secure Application Development
An Introduction to Secure Application DevelopmentAn Introduction to Secure Application Development
An Introduction to Secure Application Development
Christopher Frenz
 
Vulnerability assessment &amp; Penetration testing Basics
Vulnerability assessment &amp; Penetration testing Basics Vulnerability assessment &amp; Penetration testing Basics
Vulnerability assessment &amp; Penetration testing Basics
Mohammed Adam
 
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
FFRI, Inc.
 
Mobile application security and threat modeling
Mobile application security and threat modelingMobile application security and threat modeling
Mobile application security and threat modeling
Shantanu Mitra
 
Module 2 (footprinting)
Module 2 (footprinting)Module 2 (footprinting)
Module 2 (footprinting)
Wail Hassan
 
Penetration testing dont just leave it to chance
Penetration testing dont just leave it to chancePenetration testing dont just leave it to chance
Penetration testing dont just leave it to chance
Dr. Anish Cheriyan (PhD)
 

What's hot (20)

Developing a Threat Modeling Mindset
Developing a Threat Modeling MindsetDeveloping a Threat Modeling Mindset
Developing a Threat Modeling Mindset
 
Threat Modeling And Analysis
Threat Modeling And AnalysisThreat Modeling And Analysis
Threat Modeling And Analysis
 
Tech Report: On the Effectiveness of Malware Protection on Android
Tech Report: On the Effectiveness of Malware Protection on AndroidTech Report: On the Effectiveness of Malware Protection on Android
Tech Report: On the Effectiveness of Malware Protection on Android
 
Rapid Threat Modeling : case study
Rapid Threat Modeling : case studyRapid Threat Modeling : case study
Rapid Threat Modeling : case study
 
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
Owasp A9 USING KNOWN VULNERABLE COMPONENTS   IT 6873 presentationOwasp A9 USING KNOWN VULNERABLE COMPONENTS   IT 6873 presentation
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
 
Application Threat Modeling
Application Threat ModelingApplication Threat Modeling
Application Threat Modeling
 
Application Threat Modeling
Application Threat ModelingApplication Threat Modeling
Application Threat Modeling
 
IT system security principles practices
IT system security principles practicesIT system security principles practices
IT system security principles practices
 
From velvet to silk there is still a lot of sweat
From velvet to silk  there is still a lot of sweatFrom velvet to silk  there is still a lot of sweat
From velvet to silk there is still a lot of sweat
 
Matteo Meucci Software Security in practice - Aiea torino - 30-10-2015
Matteo Meucci   Software Security in practice - Aiea torino - 30-10-2015Matteo Meucci   Software Security in practice - Aiea torino - 30-10-2015
Matteo Meucci Software Security in practice - Aiea torino - 30-10-2015
 
Secure coding presentation Oct 3 2020
Secure coding presentation Oct 3 2020Secure coding presentation Oct 3 2020
Secure coding presentation Oct 3 2020
 
Module 5 (system hacking)
Module 5 (system hacking)Module 5 (system hacking)
Module 5 (system hacking)
 
Software Security Engineering (Learnings from the past to fix the future) - B...
Software Security Engineering (Learnings from the past to fix the future) - B...Software Security Engineering (Learnings from the past to fix the future) - B...
Software Security Engineering (Learnings from the past to fix the future) - B...
 
An Introduction to Secure Application Development
An Introduction to Secure Application DevelopmentAn Introduction to Secure Application Development
An Introduction to Secure Application Development
 
Vulnerability assessment &amp; Penetration testing Basics
Vulnerability assessment &amp; Penetration testing Basics Vulnerability assessment &amp; Penetration testing Basics
Vulnerability assessment &amp; Penetration testing Basics
 
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)
 
APT - Project
APT - Project APT - Project
APT - Project
 
Mobile application security and threat modeling
Mobile application security and threat modelingMobile application security and threat modeling
Mobile application security and threat modeling
 
Module 2 (footprinting)
Module 2 (footprinting)Module 2 (footprinting)
Module 2 (footprinting)
 
Penetration testing dont just leave it to chance
Penetration testing dont just leave it to chancePenetration testing dont just leave it to chance
Penetration testing dont just leave it to chance
 

Similar to Built-in Security Mindfulness for Software Developers

Uncover What's Inside the Mind of a Hacker
Uncover What's Inside the Mind of a HackerUncover What's Inside the Mind of a Hacker
Uncover What's Inside the Mind of a Hacker
IBM Security
 
How Does a Data Breach Happen?
How Does a Data Breach Happen? How Does a Data Breach Happen?
How Does a Data Breach Happen? Claranet UK
 
Reveal the Security Risks in the software Development Lifecycle Meetup 060320...
Reveal the Security Risks in the software Development Lifecycle Meetup 060320...Reveal the Security Risks in the software Development Lifecycle Meetup 060320...
Reveal the Security Risks in the software Development Lifecycle Meetup 060320...
lior mazor
 
&lt;marquee>html title testfsdjk34254&lt;/marquee>
&lt;marquee>html title testfsdjk34254&lt;/marquee>&lt;marquee>html title testfsdjk34254&lt;/marquee>
&lt;marquee>html title testfsdjk34254&lt;/marquee>
slideshareperson2
 
1_Introduction.pdf
1_Introduction.pdf1_Introduction.pdf
1_Introduction.pdf
ssuserfb92ae
 
Secure codingguide
Secure codingguideSecure codingguide
Secure codingguide
David Kwak
 
Application Security Guide for Beginners
Application Security Guide for Beginners Application Security Guide for Beginners
Application Security Guide for Beginners
Checkmarx
 
Secure coding guidelines
Secure coding guidelinesSecure coding guidelines
Secure coding guidelines
Zakaria SMAHI
 
Software Security Testing
Software Security TestingSoftware Security Testing
Software Security Testingankitmehta21
 
Network security, seriously?
Network security, seriously?Network security, seriously?
Network security, seriously?
Peter Wood
 
Application Security Testing for Software Engineers: An approach to build sof...
Application Security Testing for Software Engineers: An approach to build sof...Application Security Testing for Software Engineers: An approach to build sof...
Application Security Testing for Software Engineers: An approach to build sof...
Michael Hidalgo
 
PHP Security Basics
PHP Security BasicsPHP Security Basics
PHP Security Basics
John Coggeshall
 
Security Best Practices
Security Best PracticesSecurity Best Practices
Security Best Practices
Clint Edmonson
 
Software Security (Vulnerabilities) And Physical Security
Software Security (Vulnerabilities) And Physical SecuritySoftware Security (Vulnerabilities) And Physical Security
Software Security (Vulnerabilities) And Physical SecurityNicholas Davis
 
Software security (vulnerabilities) and physical security
Software security (vulnerabilities) and physical securitySoftware security (vulnerabilities) and physical security
Software security (vulnerabilities) and physical securityNicholas Davis
 
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
IBM Security
 
software-security.ppt
software-security.pptsoftware-security.ppt
software-security.ppt
PRALHAD MAGADUM
 
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare ☁
 
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare ☁
 

Similar to Built-in Security Mindfulness for Software Developers (20)

Uncover What's Inside the Mind of a Hacker
Uncover What's Inside the Mind of a HackerUncover What's Inside the Mind of a Hacker
Uncover What's Inside the Mind of a Hacker
 
How Does a Data Breach Happen?
How Does a Data Breach Happen? How Does a Data Breach Happen?
How Does a Data Breach Happen?
 
Reveal the Security Risks in the software Development Lifecycle Meetup 060320...
Reveal the Security Risks in the software Development Lifecycle Meetup 060320...Reveal the Security Risks in the software Development Lifecycle Meetup 060320...
Reveal the Security Risks in the software Development Lifecycle Meetup 060320...
 
" onclick="alert(1)
" onclick="alert(1)" onclick="alert(1)
" onclick="alert(1)
 
&lt;marquee>html title testfsdjk34254&lt;/marquee>
&lt;marquee>html title testfsdjk34254&lt;/marquee>&lt;marquee>html title testfsdjk34254&lt;/marquee>
&lt;marquee>html title testfsdjk34254&lt;/marquee>
 
1_Introduction.pdf
1_Introduction.pdf1_Introduction.pdf
1_Introduction.pdf
 
Secure codingguide
Secure codingguideSecure codingguide
Secure codingguide
 
Application Security Guide for Beginners
Application Security Guide for Beginners Application Security Guide for Beginners
Application Security Guide for Beginners
 
Secure coding guidelines
Secure coding guidelinesSecure coding guidelines
Secure coding guidelines
 
Software Security Testing
Software Security TestingSoftware Security Testing
Software Security Testing
 
Network security, seriously?
Network security, seriously?Network security, seriously?
Network security, seriously?
 
Application Security Testing for Software Engineers: An approach to build sof...
Application Security Testing for Software Engineers: An approach to build sof...Application Security Testing for Software Engineers: An approach to build sof...
Application Security Testing for Software Engineers: An approach to build sof...
 
PHP Security Basics
PHP Security BasicsPHP Security Basics
PHP Security Basics
 
Security Best Practices
Security Best PracticesSecurity Best Practices
Security Best Practices
 
Software Security (Vulnerabilities) And Physical Security
Software Security (Vulnerabilities) And Physical SecuritySoftware Security (Vulnerabilities) And Physical Security
Software Security (Vulnerabilities) And Physical Security
 
Software security (vulnerabilities) and physical security
Software security (vulnerabilities) and physical securitySoftware security (vulnerabilities) and physical security
Software security (vulnerabilities) and physical security
 
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
 
software-security.ppt
software-security.pptsoftware-security.ppt
software-security.ppt
 
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
 
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
Manoj Purandare - Application Security - Secure Code Assessment Program - Pre...
 

More from Phú Phùng

Web security: Securing Untrusted Web Content in Browsers
Web security: Securing Untrusted Web Content in BrowsersWeb security: Securing Untrusted Web Content in Browsers
Web security: Securing Untrusted Web Content in Browsers
Phú Phùng
 
Self-Protecting JavaScript: A Lightweight Approach to Enforcing Security Poli...
Self-Protecting JavaScript: A Lightweight Approach to Enforcing Security Poli...Self-Protecting JavaScript: A Lightweight Approach to Enforcing Security Poli...
Self-Protecting JavaScript: A Lightweight Approach to Enforcing Security Poli...
Phú Phùng
 
Web security: Securing untrusted web content at browsers
Web security: Securing untrusted web content at browsersWeb security: Securing untrusted web content at browsers
Web security: Securing untrusted web content at browsers
Phú Phùng
 
Fine-grained policy enforcement for untrusted software
Fine-grained policy enforcement for untrusted softwareFine-grained policy enforcement for untrusted software
Fine-grained policy enforcement for untrusted software
Phú Phùng
 
Governing Bot-as-a-Service in Sustainability Platforms - Issues and Approaches
Governing Bot-as-a-Service in Sustainability Platforms - Issues and ApproachesGoverning Bot-as-a-Service in Sustainability Platforms - Issues and Approaches
Governing Bot-as-a-Service in Sustainability Platforms - Issues and Approaches
Phú Phùng
 
Safe Wrappers and Sane Policies for Self Protecting JavaScript
Safe Wrappers and Sane Policies for Self Protecting JavaScript�Safe Wrappers and Sane Policies for Self Protecting JavaScript�
Safe Wrappers and Sane Policies for Self Protecting JavaScript
Phú Phùng
 
Lightweight Self-Protecting JavaScript
Lightweight Self-Protecting JavaScriptLightweight Self-Protecting JavaScript
Lightweight Self-Protecting JavaScript
Phú Phùng
 
Security Policy Enforcement for the OSGi Framework using Aspect-Oriented Pr...
Security Policy Enforcement for the OSGi Framework using Aspect-Oriented Pr...Security Policy Enforcement for the OSGi Framework using Aspect-Oriented Pr...
Security Policy Enforcement for the OSGi Framework using Aspect-Oriented Pr...
Phú Phùng
 
Lightweight Self-Protecting JavaScript
Lightweight Self-Protecting JavaScriptLightweight Self-Protecting JavaScript
Lightweight Self-Protecting JavaScript
Phú Phùng
 
A Two-Tier Sandbox Architecture for Untrusted JavaScript
A Two-Tier Sandbox Architecture for Untrusted JavaScriptA Two-Tier Sandbox Architecture for Untrusted JavaScript
A Two-Tier Sandbox Architecture for Untrusted JavaScript
Phú Phùng
 

More from Phú Phùng (10)

Web security: Securing Untrusted Web Content in Browsers
Web security: Securing Untrusted Web Content in BrowsersWeb security: Securing Untrusted Web Content in Browsers
Web security: Securing Untrusted Web Content in Browsers
 
Self-Protecting JavaScript: A Lightweight Approach to Enforcing Security Poli...
Self-Protecting JavaScript: A Lightweight Approach to Enforcing Security Poli...Self-Protecting JavaScript: A Lightweight Approach to Enforcing Security Poli...
Self-Protecting JavaScript: A Lightweight Approach to Enforcing Security Poli...
 
Web security: Securing untrusted web content at browsers
Web security: Securing untrusted web content at browsersWeb security: Securing untrusted web content at browsers
Web security: Securing untrusted web content at browsers
 
Fine-grained policy enforcement for untrusted software
Fine-grained policy enforcement for untrusted softwareFine-grained policy enforcement for untrusted software
Fine-grained policy enforcement for untrusted software
 
Governing Bot-as-a-Service in Sustainability Platforms - Issues and Approaches
Governing Bot-as-a-Service in Sustainability Platforms - Issues and ApproachesGoverning Bot-as-a-Service in Sustainability Platforms - Issues and Approaches
Governing Bot-as-a-Service in Sustainability Platforms - Issues and Approaches
 
Safe Wrappers and Sane Policies for Self Protecting JavaScript
Safe Wrappers and Sane Policies for Self Protecting JavaScript�Safe Wrappers and Sane Policies for Self Protecting JavaScript�
Safe Wrappers and Sane Policies for Self Protecting JavaScript
 
Lightweight Self-Protecting JavaScript
Lightweight Self-Protecting JavaScriptLightweight Self-Protecting JavaScript
Lightweight Self-Protecting JavaScript
 
Security Policy Enforcement for the OSGi Framework using Aspect-Oriented Pr...
Security Policy Enforcement for the OSGi Framework using Aspect-Oriented Pr...Security Policy Enforcement for the OSGi Framework using Aspect-Oriented Pr...
Security Policy Enforcement for the OSGi Framework using Aspect-Oriented Pr...
 
Lightweight Self-Protecting JavaScript
Lightweight Self-Protecting JavaScriptLightweight Self-Protecting JavaScript
Lightweight Self-Protecting JavaScript
 
A Two-Tier Sandbox Architecture for Untrusted JavaScript
A Two-Tier Sandbox Architecture for Untrusted JavaScriptA Two-Tier Sandbox Architecture for Untrusted JavaScript
A Two-Tier Sandbox Architecture for Untrusted JavaScript
 

Recently uploaded

GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 

Recently uploaded (20)

GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 

Built-in Security Mindfulness for Software Developers

  • 1. Built-in Security Mindfulness for Software Developers Phu H. Phung Intelligent Systems Security Lab Department of Computer Science, University of Dayton https://isseclab-udayton.github.io/ March 11, 2020
  • 2. Cyber Security Spends and Trends in Companies •Spends and Trends: SANS 2020 IT Cybersecurity Spending Survey All about network, i.e., cyber security But, most of cyber attacks are not due to network issues 1
  • 3. Applications Continue To Be Companies’ Weakest Security Link 2 Forrester: The State Of Application Security, 2019 Top 71% of external attacks are due to software vulnerabilities
  • 6. Software Security versus Network (Cyber) Security 5 Program Process Data (Structured Program Internals) Input Output Call-out to other programs (also consider input & output issues) Software Security Network Security Network Security
  • 7. Software Security versus Network Security: An example •Assume that you are a Paypal user, and assume that Paypal is on HTTPS and requires two-factor authentication, i.e., after providing username/password, you are required to confirm the login in another device Network security is fully guaranteed •Discussion: is it safe for you to open a link like below while you are logged in on Paypal? https://www.paypal.com/eg/cgi-bin/cmd=flow&SESSION=Akl-tATMf1GOP- tQu3t3x4Vju&… 6
  • 9. Who should be responsible for the Paypal attack example? •The user?  e.g., using anti-virus software? •Your organization? e.g., installing anti-virus software, using a proxy filtering, firewalls? •The Internet Provider? e.g., installing firewalls? Conventional Security Solutions such as anti-virus software or firewall cannot prevent attacks caused by software vulnerabilities 8
  • 10. Conventional Security Mechanisms •Firewall •Cryptography •Access control •System calls/ privileged mode Treat programs as black box, cannot address vuneralbilities inside a program 9
  • 11. Issues of Conventional Security Mechanisms and Network Security •Cannot address important current and future security needs: Downloaded, mobile code Buffer overflow, code injection, data races, and other safety problems Web application security Information flow control, e.g., privacy 10
  • 12. Software Security •Vulnerabilities in software that cause cyber attacks that can not be prevented by conventional security mechanisms  A vulnerability is a flaw in software mostly caused by software developers 11 Chart source: Trend Micro and the Organization of American States (OAS)
  • 13. Another Attack Example: A Buffer-Overflow 12 Enter Your PIN: Attacker can inject malicious code from input to exploit vulnerable programs
  • 14. Buffer Overflow Example • A simple program in C, e.g., myecho.c that just print the input: • Compiling and execution $ gcc myecho.c -o myecho $ myecho OISC20 OISC20 Are there any issues you can see in this simple program? How about? $ myecho $(perl -e 'print "A"x150') 13
  • 15. Buffer Overflow Attack Live Demo 14 Demo video: https://youtu.be/RAawLvKa-U0
  • 16. Buffer-Over Flow Attack Examples •The most common software vulnerabilities that causes cyber attacks •Recent and notable examples: Wannacry, May 2017 o A Ransomware crippling systems worldwide WhatsApp, May 2019 o Hackers compromise victims’ phone by a phone call that automatically executes malicious code 15
  • 18. 17
  • 19. Are buffer overflow attacks new? •Buffer overflow is 40 years old! 18
  • 20. Why does Buffer-Overflow happen? •Data is read or written outside the bounds of a buffer The attacker gets the program to treat the malicious data as code •How can this happen? The developer did not check the data size or use insecure functions in the program!!! 19
  • 21. Software Development •Based on a typical software engineering process Normally developers focus on the functionalities of the application 20 Image source: www.pinterest.com
  • 22. Security in Software Development •Developers mainly focus on the functionalities Few developers know how to develop secure software o Programming books/courses do not teach it Most developers do not think like a hacker o “How could this be attacked?” – be slightly paranoid Developers do not learn from others’ security mistakes o Most vulnerabilities caused by same mistakes over 40+ years Credit: David A. Wheeler 21
  • 23. Traditional Penetrate-and-Patch Software Development Approach •Once a software vulnerability is discovered (normally by attackers), the software can be patched, but: Unpatched systems remain vulnerable Other vulnerabilities might still remain New vulnerabilities might be discovered •Zero-day vulnerability attacks exploit this Penetrate-and- Patch approach 22
  • 24. Zero-day vulnerabilities •Undisclosed computer-software vulnerabilities Hackers can exploit to adversely affect computer systems oBefore the vulnerability is fixed and patched 23
  • 25. Security at the source •The developers should be responsible for security at the design and development phase Secure Development Lifecycle has been proposed Source: “Improving Security Across the Software Development Lifecycle – Task Force Report”, April 1, 2004. http://www.cyberpartnership.org/init.html; based on Gary McGraw 2004, IEEE Security and Privacy. Fair use asserted. Credit: David A. Wheeler 24
  • 26. Built-in Security Mindfulness for Software Developers at UDayton-CS •Understanding of the impact of software vulnerabilities (in Software/Language-based Security course) •Develop “Building Security In” Approach (in Secure Application Development course) Secure and Sustainability Principles and Practices in Application Development Avoid security problems at the design stage 25
  • 27. Software Security/Language-based Security at UDayton-CS •Students will learn the practice of software security how to identify vulnerabilities in computer systems o white-hat hacker mindset !!! how to defense against the possible vulnerabilities •Students can understand the principles of language-based security how to design secure systems and write secure code 26
  • 28. UDayton-CS hands-on example: SQLi Attacks •Students will need to hack into a real web server (on a Cyber Range), e.g.: http://myphoto.blog.com/ By exploring and exploiting its SQL Injection Vulnerabilities Read the data from the database Obtain the username/password and login to the system 27
  • 29. Detect the SQL Vulnerabilities • Click on a link, e.g.:http://myphoto.blog.com/cat.php?id=1  Recall HTTP GET Request, inputs are encoded in the URL • Let’s try several different inputs to detect potential vulnerabilities:  http://myphoto.blog.com/cat.php?id=1' 28
  • 30. Detect the SQL Vulnerabilities - More  http://myphoto.blog.com/cat.php?id=a  http://myphoto.blog.com/cat.php?id=2-1 • Guessing? 29 SELECT xxx FROM xxx WHERE xxx=<input>
  • 31. Exploitation of SQL Injections • We guessed the SQL SELECT xxx FROM xxx WHERE xxx=<input> • How to inject a SQL query for attacks?  Use UNION: SELECT xxx FROM xxx WHERE xxx=value UNION SELECT ???  UNION must have the same number of columns. How do we know? oTrials with errors, e.g.,: • SELECT xxx FROM xxx WHERE xxx=value UNION SELECT 1 30
  • 32. Exploitation of SQL Injections - more • We guessed the SQL SELECT xxx FROM xxx WHERE xxx=<input> • Trials with errors, e.g.,:  SELECT xxx FROM xxx WHERE xxx=value UNION SELECT 1 SELECT xxx FROM xxx WHERE xxx=value UNION SELECT 1, 2  ... • Students first do hands-on to identify the number of columns  Carry out further attacks 31
  • 33. Future Software security hacking environment • We create a practical and real environment for students E.g.,: https://myphoto.ss-lbs.me for SQL Injection Attacks https://myblog.ss-lbs.me for XSS, SQLi, Session Hijacking CSRF attacks 32
  • 34. Discussion: How many columns used in the SQL in https://myphoto.ss-lbs.me/cat.php?id=1 A. * B. 1 C. 2 D. 3 E. 4 33
  • 35. Demo: Retrieving username/password with SQLi Attacks Students can login with the stolen username/password 34
  • 36. Secure Application Development at UDayton-CS • How to develop application software with “Building Security In” Approach  Secure and Sustainability Principles and Practices in Application Development Robust and Defensive Programming Techniques Avoid security problems at the design stage o Developers with hacker mindset!! 35
  • 37. Secure Application Development Example: A Simple Login System •Code (from the scratch) to authenticate users with username/password Check on real database (MySQL) •Then think as a hacker!  Doing self-attacks  Implementing secure code The query: SELECT * FROM users where username='admin' AND password=password('thepassword'); thepassword 36
  • 38. Username/password check from Database 37 Discussion: What are the potential security risks in this SQL statement? A. No input validation B. Attackers can inject SQL code C. Attackers can inject JavaScript code D. A and B E. A, B, and C sql=SELECT * FROM users where username=' ' AND password=password(' ') P4$$w0rd admin P4$$w0rd
  • 39. Self-attack Demo: Mixed SQL and JavaScript 38 admin' #<script>alert(document.cookie)</script> This is an example of code injection attacks, mixing SQL and JavaScript. Will be covered in detail next steps
  • 40. Prepared Statements in PHP/MySQL 39 Vulnerable SQL Statement OWASP Primary Defenses against SQL Injection Attacks: Option #1: Use of Prepared Statements
  • 41. Built-in Security Mindfulness for Software Developers at UDayton-CS: A Reflection •Stable and increasing enrollment •Very high positive feedback from students Yoursecureapplication projectis veryusefulforattending interviews. Dr.Phung, Ijust wantedtothankyouandalsoletyouknowhowbeneficial yourclass wasinan interviewIhadacoupleweeksago. … Yourclassbenefited meextremelyandIjustwantedtomakesurethatyouknewand yousothatyoucantellyourclasses what employersmightaskabout.Iendedup gettingajoboffer15minutes afterIleft theinterview,theysaidthattheywere trulyimpressed with myrangeofknowledge. 40
  • 42. Challenges and Opportunities •Security courses are not mandatory for CS students  Future developers still write insecure code !!! •I welcome and look forward to opportunities  Integrate security components in programming classes  Collaborate with other colleges to explore the possibilities to integrate security components in their curriculum  Work with industry to propose a long-term solution 41
  • 43. Thank you! Phu H. Phung Intelligent Systems Security Lab Department of Computer Science, University of Dayton https://isseclab-udayton.github.io/ March 11, 2020

Editor's Notes

  1. https://youtu.be/M_IIbjBtHLY
  2. WannaCry attacks
  3. http://myphoto.blog.com/cat.php?id=1 UNION SELECT 1, 2, 3, 4
  4. http://myphoto.blog.com/cat.php?id=1 UNION SELECT 1, 2, 3, 4
  5. E. 4 http://myphoto.blog.com/cat.php?id=1 UNION SELECT 1, 2, 3, 4 http://myphoto.blog.com/cat.php?id=1 UNION SELECT 1, 'pphung1', 3, 4
  6. E. All are correct
  7. $prepared_sql = "SELECT * FROM users WHERE username= ? " . " AND password=password(?);"; if(!$stmt = $mysqli->prepare($prepared_sql)) echo "Prepared Statement Error"; $stmt->bind_param("ss", $username,$password); if(!$stmt->execute()) echo "Execute Error"; if(!$stmt->store_result()) echo "Store_result Error"; $result = $stmt;