You are on page 1of 17

1

SOFTWARE SECURITY ENGINEERING/


APPLICATION SECURITY
ENGINEERING LIFE CYCLE/ BUILDING
SECURITY IN/SECURED SOFTWARE
DEVELOPMENT
Basic Principle of Computer Security
2

Process of establishing and


distinguishing amongst person/user &
Identity
admin ids, a program/process/another
computer ids, and data connections
and comms.
Authentication
Functions, Objects,
Patterns
Functional capabilities
Authorisation Identification
Access control lists
Security Encryption
Privacy
Information
padding
Screening

Integrity Redundancy checks Authorisation Authentication


Certificates

Durability Single session

Multi session
What is Software Security?
3

 Software security can be considered as a branch of computer security


which prime focus is on the secure design and implementation of
software (application and system software) using best practices that
are known for last 50 years (learned from failures), using good
practice design methods, applying SE principles and process of
developing secure software development practices, using best
languages and its safe and secure features, best tools and methods.
Software Security Attributes
4
Authentication Security Baselines
Viruses, Spam,
Intrusions

Remote Access
Threats

Perimeter Protection Security Applications

E-mail Web Presence

Asset Protection Access to Resources

Firewall and OS
Physical Protection Security Wireless Networks
Software Security Research Landscape
5
Application software
security

Network
security
VoIP security A Software Flaw is
Wireless network &
a software security
platform security error in the design
Software components
Convergence A Software Bug is a
Network security
& architecture security software security
error left in the
Software security implementation
Service-oriented
Cloud & Web Architecture
services
security
security

Open source
component security

https://app.box.com/s/qg0tofy8yzl06vwikg3o2fbbkmlrvmd7
Application Security
6

 1) Introduction to Application Security =


http://www.youtube.com/watch?v=CDbWvEwBBxo

2) Injection Attacks = http://www.youtube.com/watch?v=pypTYPaU7mM

3) Cross Site Scripting = http://www.youtube.com/watch?v=_Z9RQSnf8-g


 Secure Programming with Static Analysis (Fortify Software Ltd) Brian Chess
 http://www.youtube.com/watch?v=OVWHpyjqBkI
 Security Metrics Andrew Jaquith http://www.youtube.com/watch?v=biD9D714Bxc
Why Software Security Engineering?
7

SSE has emerged to apply


Increased Trust
software and security
Benefits Integrity
engineering principles to
Increased
software development availability
process, methods, and
techniques. In other words Software
Eliciting software security
requirements
Building Security In right Security Means Building secured Functions, Objects, Patterns,
Components, Frameworks, Architectures
from requirements, design, Building trust, secured database frames, secured
development, and testing web services, secured testability techniques, and
recoverability
along with software Lack of expertise on software security
development life cycle engineering
Threats Additional cost
phases. There are a number of
security specific techniques People, motivation, infrastructure, and
culture
such as misuse cases, attack
tree, threat modelling,
Microsoft Security
Development Lifecycle
(SDL)
Pillars of IT and Software Security
8

Availability

Knowledge

Integrity

Software security
touchpoints

Confidentiality

Risk Management

Compliance
Software Security Engineering
9

Software Engineering Lifecycle

Software
Requirements Design Code Testing Quality
Engineering
Assurance
Secured
Systems/
Products

Software
Security Design for Security Security Security
Requirements Security analysis Testing Assurance

Software Security Engineering Lifecycle

Secure Requirements and Design: Identify sensitive and possible threats, data, resources, and define security
requirements like confidentiality, integrity, and availability. Apply threat modelling, abuse, and misuse cases.
Apply principle secure software design by integrating security requirements into design and to prevent, mitigate possible
security breaches and cyber attacks. Main categories of secure principles are: Simplicity, Design for security (Build
Security In (BSI), Build Trust In (BTI), and Defend in Depth (all possible defence against security attacks). Example:
very Secure FTP Daemon (vsftpd: is a lightweight, stable and secure FTP server for UNIX-like systems),
https://wiki.archlinux.org/index.php/Very_Secure_FTP_Daemon
Software Security Techniques
10

Requirements Architecture Test


Engineering & Design Code Operational/Fi
Plans
and use case eld Testing
modelling

Security
Risk External Review, Static Penetration
Abuse cases, analysis & and Risk based analysis testing &
security test for code Security
security inspection, Architectural
Risk analysis security Breaks
and security
modelling Analysis
Microsoft’s Security Development Lifecycle (SDL)
11

Training Requirem Design Implementa Verificatio Release Response


ents tion n

Core Define quality Attack Response


training gates/bug bars surface Specify tools Dynamic/fuzz Response
Enforce testing plan execution
Analyse security analysis
and privacy risks Threat banned Verify threat Final
modelling functions models/attack security
Static analysis surface review
Security
archive

Secure Implementation Techniques: Apply secure coding rules and tools to prevent, mitigate,
and detect all possible security attacks.
Apply automated code review techniques such as static analysis, vulnerability analysis, and
symbolic execution which underlies whitebox fuzz testing.
Apply penetration testing to find potential flaws in the real system in a deployment
environment.
Apply fuzz testing and attack patterns.
Methods Micros McGraw’ OWAS VCGs (Byers S2D-ProM UMLSec
oft s P’s and (Essafi, (Jurjen
SDL Touchpoi CLASP Shahmehri Labed, and 2005)
Features (Howar nts (2006) 2007) Ghezala
d and (McGraw 2007)
Lipner 2004 &
2006) 2006)
Process Full set Range of A set of VCG based Risk based UML
stages/act of activities activitie based
ivities activitie s profiling
s and
support formalism
ed
Risk Part of Aspect of Aspect Not explicitly Risk based Aspect of
managem of

SSE ent
Security Threat
technique modelli
Threat
modelling
Threat
modelli
Process is
based on
Attack tree and
labelled
UMLsec

Methods s ng ng specific to
Vulunerability
Cause Graphs
directed graph
with
goals/intention

Compariso
(VCGs) s(state
transitions
diagrams)
Lifecycle 
n
    
support
Iterative      

12
Secure Mobile Cloud Computing (MCC)
Architecture
13

Mobile cloud computing architecture

Definition of MCC: A service that allows resource constrained mobile users to


adaptively adjust processing and storage capabilities by transparently partitioning and
offloading the computationally intensive and storage demanding jobs on traditional
cloud resources by providing ubiquitous wireless access.

A.N. Khan et al. Towards secure mobile cloud computing: A survey/ Future Generation
Computer Systems 29 (2013) 1278–1299
Security services on different layers

14

In addition to security and privacy, the secure cloud application services provide the user management, key
management, encryption on demand, intrusion detection, authentication, and authorization services to mobile users.
There is a need for a secure communication channel between cloud and the mobile device. The secure routing
protocols can be used to protect the communication channel between the mobile device and cloud. Virtualization
improves the utilization of cloud resources but introduces new security issues due to the lack of perfect isolation of
virtual machines hosted on a single server.
Key points
15

 Cloud computing has emerged to reduce IT costs


 SOA design principles are the key to achieving secure cloud services development and
deployment
 Different cloud delivery models for businesses
 Needs awareness training
 Security is one of the major concerns on cloud, SOA, Mobile cloud, etc
 Therefore, it is important to apply Software Security Engineering concepts, techniques,
and principles
 Principle (Design) vs. Rule (Implementation): A principle is a design goal with several
possible manifestations (design rationale) and a rule (implementation) should follow the
sound design principle.
Exercises/Tutorial/Lab
Study in detail Amazon EC2 Architecture and others
Identify a common programming security flaws in Java, C#
Develop a number of abuse cases & threat modelling for software security
for Amazon
Define terms found in cloud infrastructure and cloud architecture
diagrams
Define WS-standards services specification shown in example services for
cloud consumers– look up online
Define software security characteristics
Microsoft Threat Modelling Tool, https://
docs.microsoft.com/en-us/azure/security/azure-security-threat-modeling-t
ool
Study and re-engineer design and requirements for vsftpd, https://
wiki.archlinux.org/index.php/Very_Secure_FTP_Daemon
16
References
Ramachandran, M (2012) Software Security Engineering: Design and Applications, Nova Science Publishers, New York,
USA, 2011, ISBN: 978-1-61470-128-6, https://www.novapublishers.com/catalog/product_info.php?products_id=26331
Ramachandran, M (2011) Software components for cloud computing architectures and applications, Springer, Mahmmood,
Z and Hill, R (eds.). www.springer.com/computer/communication+networks/book/978-1-4471-2235-7
Wang, L., and Laszewski, v. G. Scientific Cloud Computing: Early Definition and Experience,
http://cyberaide.googlecode.com/svn/trunk/papers/08-cloud/vonLaszewski-08-cloud.pdf, 2008.
ACMQueue Cloud Computing: An Overview, distributed computing, 2009
Clarke, R., User Requirements for Cloud Computing Architecture, 10th IEEE/ACM International Conference on Cluster,
Cloud and Grid Computing, 2010
INFOSEC Institute S-SDLC, http://resources.infosecinstitute.com/intro-secure-software-development-life-cycle/
http://www.coverity.com/library/pdf/coverity-security-wp.pdf
http://www.isaca.org/Knowledge-Center/Blog/Lists/Posts/Post.aspx?List=ef7cbc6d-9997-4b62-96a4-a36fb7e171af&ID=432
Computer Weekly, http://www.computerweekly.com/news/2240158374/Secure-software-development-crucial-for-business
Secure software development, IT NOW, March 2015
Security RE methods:
OCTAVE by SEI, Alberts, C. & Dorofee, A. Managing Information Security Risks: The OCTAVE Approach. New York:
Addison Wesley, 2003. This is a descriptive and process-oriented book on a new security risk evaluation method, OCTAVE.
OCTAVE stands for Operationally Critical Threat, Asset, and Vulnerability Evaluation
SQUARE method by SEI, Chen, P.; Dean, M.; Lopez, L.; Mead, N. R.; Ojoko-Adams, D.; Osman, H.; & Xie, N. SQUARE
Methodology: Case Study on Asset Management System (CMU/SEI-2004-SR-015). Pittsburgh, PA: Software Engineering
Institute, Carnegie Mellon University, 2004. http://www.sei.cmu.edu/publications/documents/04.reports/04sr015.html

17

You might also like