Secure Design Principles. CSC 482/582: Computer Security Slide #1

Size: px
Start display at page:

Download "Secure Design Principles. CSC 482/582: Computer Security Slide #1"

Transcription

1 Secure Design Principles CSC 482/582: Computer Security Slide #1

2 Topics Categories of Security Flaws Architecture/Design Implementation Operational Software Security: More than Just Coding Secure Design Principles Design Issues in Legacy Code Case Study: Sendmail vs. Postfix CSC 482/582: Computer Security Slide #2

3 Categories of Security Flaws 1. Architectural/design-level flaws: security issues that original design did not consider or solve correctly. 2. Implementation flaws: errors made in coding the design. 3. Operational flaws: problems arising from how software is installed or configured. CSC 482/582: Computer Security Slide #3

4 Architecture/Design Flaws Race Condition Application checks access control, then accesses a file as two separate steps, permitting an attacker to race program and substitute the accessible file for one that s not allowed. Replay Attack If an attacker can record a transaction between a client and server at one time, then replay part of the conversation without the application detecting it, a replay attack is possible. Sniffing Since only authorized users could directly access network in original Internet, protocols like telnet send passwords in the clear. CSC 482/582: Computer Security Slide #4

5 Implementation Flaws Buffer overflow Application with fixed-size buffer accepts unlimited length input, writing data into memory beyond buffer in languages w/o bounds checking like C/C++. Input validation Application doesn t check that input has valid format, such as not checking for../ sequences in pathnames, allowing attackers to traverse up the directory tree to access any file. Back door Programmer writes special code to bypass access control system, often for debugging or maintenance purposes. CSC 482/582: Computer Security Slide #5

6 Operational Flaws Denial of service System does not have enough resources or ability to monitor resources to sustain availability under large number of requests. Default accounts Default username/password pairs allow access to anyone who knows default configuration. Password cracking Poor passwords can be guessed by software using dictionaries and permutation algorithms. CSC 482/582: Computer Security Slide #6

7 How can design securely? What about using checklists? Learn from our and others mistakes. Avoid known errors: buffer overflow, code injection, race conditions, etc. Too many known problems. What about unknown problems? CSC 482/582: Computer Security Slide #7

8 How can design securely? Think about security from the beginning. Evaluate threats and risks in requirements. Once we understand our threat model, then we can begin designing an appropriate solution. Apply Secure Design Principles Guidelines for security design. Not a guarantee of security. Tradeoffs between different principles CSC 482/582: Computer Security Slide #8

9 Security Design Principles 1. Least Privilege 2. Fail-Safe Defaults 3. Economy of Mechanism 4. Complete Mediation 5. Open Design 6. Separation of Privilege 7. Least Common Mechanism 8. Psychological Acceptability CSC 482/582: Computer Security Slide #9

10 Meta Principles Simplicity (Minimization) Fewer components and cases to fail. Fewer possible inconsistencies. Easy to understand. Restriction (Isolation) Minimize access. Inhibit communication. CSC 482/582: Computer Security Slide #10

11 Least Privilege A subject should be given only those privileges necessary to complete its task. Function, not identity, controls. Rights added as needed, discarded after use. Minimal protection domain. Most common violation: Running as administrator or root. Use runas or sudo instead. CSC 482/582: Computer Security Slide #11

12 Least Privilege Example Problem: A web server. Serves files under /usr/local/http. Logs connections under /usr/local/http/log. HTTP uses port 80 by default. Only root can open ports < Solution: Web server runs as root user. How does this solution violate the Principle of Least Privilege and how could we fix it? CSC 482/582: Computer Security Slide #12

13 How do we run with least privilege? List required resources and special tasks Files Network connections Change user account Backup data Determine what access you need to resources Access Control model Do you need create, read, write, append, etc.? CSC 482/582: Computer Security Slide #13

14 Fail-Safe Defaults Default action is to deny access. When an action fails, system must be restored to a state as secure as the state it was in when it started the action. CSC 482/582: Computer Security Slide #14

15 Fail Safe Defaults Example Problem: Retail credit card transaction. Card looked up in vendor database to check for stolen cards or suspicious transaction pattern. What happens if system cannot contact vendor? Solution: No authentication, but transaction is logged. How does this system violate the Principle of Fail-Safe Defaults? CSC 482/582: Computer Security Slide #15

16 Fail Safe Defaults Example Problem: MS Office Macro Viruses. MS office files can contain Visual Basic code (macros.) MS Office automatically executes certain macros when opening a MS Office file. Users can turn off automatic execution. Don t mix code and data! Solution: MS Office XP has automatic execution of macros turned off by default. While the solution is a fail-safe default, does it follow least privilege too? CSC 482/582: Computer Security Slide #16

17 Economy of Mechanism Keep it as simple as possible (KISS). Use the simplest solution that works. Fewer cases and components to fail. Reuse known secure solutions i.e., don t write your own cryptography. CSC 482/582: Computer Security Slide #17

18 Economy of Mechanism Example Problem: SMB File Sharing Protocol. Used since late 1980s. Newer protocol version protects data integrity by employing packet signing technique. What do you do about computers with older versions of protocol? Solution: Let client negotiate which SMB version to use. How does this solution violate economy of mechanism? CSC 482/582: Computer Security Slide #18

19 Complete Mediation Check every access. Usually checked once, on first access: UNIX: File ACL checked on open(), but not on subsequent accesses to file. If permissions change after initial access, unauthorized access may be permitted. bad example: DNS cache poisoning CSC 482/582: Computer Security Slide #19

20 Open Design Security should not depend on secrecy of design or implementation. Popularly misunderstood to mean that source code should be public. It means avoiding Security through obscurity Refers to security policy and mechanism, not simple user secrets like passwords and cryptographic keys, e.g. it follows Kerchoff s Principle. CSC 482/582: Computer Security Slide #20

21 Open vs. Closed Source Is open-source software secure? Open: Some people might look at security of your application (if they care) may or may not tell you what they find Closed: not making code available does not hide much need diverse security-aware code reviews A business decision: Not a security one!

22 Open Design Example: Problem: MPAA wants control over DVDs. Region coding, unskippable commercials. Solution: CSS (Content Scrambling System) CSS algorithm kept secret. DVD Players need player key to decrypt disk key on DVD to descript movie for playing. Encryption uses 40-bit keys. People w/o keys can copy but not play DVDs. What happened next? CSS algorithm reverse engineered. Weakness in algorithm allows disk key to be recovered in an attack of complexity 2 25, which takes only a few seconds. CSC 482/582: Computer Security Slide #22

23 Flaws in the Approach What assumptions to make about adversary? Knows algorithms? Or not? Algorithms in binary secret? Attackers can probe for weaknesses reverse engineer executables observe behavior in normal vs. aberrant conditions (fault injection) Fuzzing: trying random input strings to find an exploit blackmail insiders

24 SWS Obscurity Distributing Java bytecode of SWS (and not source code) does not provide security. Tools like strings can search binary for passwords, keys, etc. Bytecode can be decompiled (see Mocha, Jad) to produce source code, including class and public member names. Machine code can be disassembled into assembly by tools like IDA Pro and even decompiled into rough C code. Debuggers and reflection tools can examine a running program. Code obfuscators offer some protection Make code harder to read by replacing readable names with meaningless ones, re-organizing code, etc. But reverse engineers can work through any obfuscation given enough time. CSC 482/582: Computer Security Slide #24

25 Disassembling SWS public void processrequest(java.net.socket); throws java/lang/exception Code: 0: new 25; //class BufferedReader 3: dup 4: new 26; //class InputStreamReader 7: dup 8: aload_1 9: invokevirtual 27; 12: invokespecial 28; 15: invokespecial 29; 18: astore_2 19: new 30; //class OutputStreamWriter 22: dup 23: aload_1 24: invokevirtual 31; 27: invokespecial 32; 30: astore_3 31: aload_2 32: invokevirtual 33; 35: astore 4 37: aconst_null 38: astore 5 40: aconst_null 41: astore 6 99: astore 8 101: aload_3 102: invokevirtual 44; 105: return 43: new 34; //class StringTokenizer 46: dup 47: aload 4 49: ldc 35; //String 51: invokespecial 36; 54: astore 7 56: aload 7 58: invokevirtual 37; 61: astore 5 63: aload 7 65: invokevirtual 37; 68: astore 6 70: aload 5 72: ldc 38; //String GET 74: invokevirtual 39; 77: ifeq 90 80: aload_0 81: aload_3 82: aload 6 84: invokevirtual 40; 87: goto 90: aload_3 91: ldc 41; 93: invokevirtual 42; 96: goto 101

26 Separation of Privilege Require multiple conditions to grant access. Separation of duty Compartmentalization (encapsulation) Defence in depth CSC 482/582: Computer Security Slide #26

27 Separation of Duty Functions are divided so that one entity does not have control over all parts of a transaction. Example: Different persons must initiate a purchase and authorize a purchase. Two different people may be required to arm and fire a nuclear missile. CSC 482/582: Computer Security Slide #27

28 Compartmentalization Problem: A security violation in one process should not affect others. Solution: Virtual Memory Each process gets its own address space. In what ways is this solution flawed? i.e., how can the compartments communicate? How could we improve compartmentalization of processes? CSC 482/582: Computer Security Slide #28

29 Defence in Depth Diverse defensive strategies Different types of defences. Protection Detection Reaction Different implementations of defences. If one layer pierced, next layer may stop. Avoid crunchy on the outside, chewy on the inside network security. Contradicts Economy of Mechanism Think hard about more than 2 layers. CSC 482/582: Computer Security Slide #29

30 Avoid M&M Architectures Inherently insecure system protected by another system mediating access to it Ex: Firewalls guard vulnerable systems within Ex: Death Star strong outer defense but vulnerable Hard outer shell should not be sole defense

31 Defence in Depth Example Problem: Bank. How to secure the money? Solution: Defence in depth. Guards inside bank. Closed-circuit cameras monitor activity. Tellers do not have access to vault. Vault has multiple defences: Time-release. Walls and lock complexity. Multiple compartments. CSC 482/582: Computer Security Slide #31

32 Least Common Mechanism Mechanisms to access resources should not be shared. Information can flow along shared channels. Covert channels. Contradicts Economy of Mechanism? CSC 482/582: Computer Security Slide #32

33 Least Common Mechanism Problem: Compromising web server allows attacker access to entire machine. Solution: Run web server as non-root user. Attacker still gains other access to filesystem. Run web server in chroot jail. CSC 482/582: Computer Security Slide #33

34 Psychological Acceptability Security mechanisms should not add to the difficulty of accessing a resource. Usability: Ease of installation, configuration, and use. Hide complexity introduced by security mechanisms. Principle of Least Astonishment: Design should match user s experience, expectations, and mental models. Follow UI conventions.

35 Psychological Acceptability Users will not read documentation. Make system secure in default configuration. Users will not read dialog boxes. Don t offer complex choices. example: Mozilla/IE certificate dialogs. Privacy vs Usability example: one-click shopping CSC 482/582: Computer Security Slide #35

36 Legacy Issues How can you design security into legacy applications without source code? Wrappers Interposition What is the best way to fix security flaws in an existing application? Code Maintenance Techniques CSC 482/582: Computer Security Slide #36

37 Retrofitting: Wrappers Move existing application to special location. Replace old application with wrapper that: Performs access control check. Performs input checks. Secures environment. Logs invocation of application. Invokes legacy application from new location. Example: AusCERT overflow_wrapper CSC 482/582: Computer Security Slide #37

38 Retrofitting: Interposition Interpose software between two programs we cannot control. Add access control. Filter communication. Example: Network proxy Router blocks all direct client/server connections. Client connects to proxy server, who makes connection to remote server on behalf of client. Access Control: disallow certain clients and/or servers. Filtering: scan for viruses, worms, etc. Auditing: all connections can be logged. CSC 482/582: Computer Security Slide #38

39 Maintenance: Sun tar flaw 1993: Every tar file produced under Solaris 2.0 contained fragments of /etc/passwd file. Tar reads and writes fixed size blocks. Last block written has contents of memory block that were not overwritten by disk read. Tar reads /etc/passwd to obtain user info. Immediately before it allocates the block read buffer. Heap allocation doesn t zero out memory. In earlier versions, other memory allocations were between reading passwd and block read alloc. CSC 482/582: Computer Security Slide #39

40 Legacy Issues: Maintenance How can you avoid adding new security flaws when performing code maintenance? Before looking at a code maintenance procedure, what design principles could have prevented the Sun tar flaw? CSC 482/582: Computer Security Slide #40

41 Legacy Issues: Maintenance 1. Understand security model and mechanisms already in place. 2. Learn how the program actually works. Read design docs, code, and profile the program. 3. When designing and coding the fix: 1. Don t violate the spirit of the design. 2. Don t introduce new trust relationships. CSC 482/582: Computer Security Slide #41

42 Case Study: Postfix vs Sendmail Traditional sendmail architecture. Single process runs as root. qmail architecture with application of separation of privilege and least privilege design principles. Slide #42

43 Key Points Categories of Security Flaws Architecture/design Implementation Operational Secure Design Principles Least Privilege Compartmentalization Psychological Acceptability Retrofitting and Maintaining Secure Design CSC 482/582: Computer Security Slide #43

44 References 1. Bishop, Matt, Introduction to Computer Security, Addison-Wesley, Graff, Mark and van Wyk, Kenneth, Secure Coding: Principles & Practices, O Reilly, Howard, Michael and LeBlanc, David, Writing Secure Code, 2 nd edition, Microsoft Press, Viega, John, and McGraw, Gary, Building Secure Software, Addison-Wesley, Wheeler, David, Secure Programming for UNIX and Linux HOWTO, programs/secure-programs- HOWTO/index.html, CSC 482/582: Computer Security Slide #44

Introduction to Assurance

Introduction to Assurance Introduction to Assurance Overview Why assurance? Trust and assurance Life cycle and assurance April 1, 2015 Slide #1 Overview Trust Problems from lack of assurance Types of assurance Life cycle and assurance

More information

Topics. Designing-In Security. Secure Design. Design features with security in mind Not as an afterthought Hard to add-on security later

Topics. Designing-In Security. Secure Design. Design features with security in mind Not as an afterthought Hard to add-on security later Secure Design Topics 1. Designing-In Security 2. Convenience and Security 3. Security By Obscurity 4. Open vs. Closed Source 5. A Game of Economics Slides adapted from "Foundations of Security: What Every

More information

Secure Programming. Course material Introduction. 3 Course material. 4 Contents

Secure Programming. Course material Introduction. 3 Course material. 4 Contents 2 Course material 1 Secure Programming Introduction Ahmet Burak Can Hacettepe University Counter Hack Reloaded:A Step-by- Step Guide to Computer Attacks and Effective Defenses, Edward Skoudis, Tom Liston,

More information

Secure Programming. Introduction. Ahmet Burak Can Hacettepe University

Secure Programming. Introduction. Ahmet Burak Can Hacettepe University Secure Programming Introduction 1 Ahmet Burak Can Hacettepe University 2 Course material Counter Hack Reloaded:A Step-by- Step Guide to Computer Attacks and Effective Defenses, Edward Skoudis, Tom Liston,

More information

Distributed Systems. Lecture 14: Security. Distributed Systems 1

Distributed Systems. Lecture 14: Security. Distributed Systems 1 06-06798 Distributed Systems Lecture 14: Security Distributed Systems 1 What is security? policies and mechanisms threats and attacks Overview Security of electronic transactions secure channels authentication

More information

C and C++ Secure Coding 4-day course. Syllabus

C and C++ Secure Coding 4-day course. Syllabus C and C++ Secure Coding 4-day course Syllabus C and C++ Secure Coding 4-Day Course Course description Secure Programming is the last line of defense against attacks targeted toward our systems. This course

More information

Distributed Systems. Lecture 14: Security. 5 March,

Distributed Systems. Lecture 14: Security. 5 March, 06-06798 Distributed Systems Lecture 14: Security 5 March, 2002 1 What is security? policies and mechanisms threats and attacks Overview Security of electronic transactions secure channels authentication

More information

Principles of Designing Secure Systems

Principles of Designing Secure Systems T H E U N I V E R S I T Y O F B R I T I S H C O L U M B I A Principles of Designing Secure Systems CPEN 442 learning objectives explain the principles recognize the principles in real-world designs explain

More information

19.1. Security must consider external environment of the system, and protect it from:

19.1. Security must consider external environment of the system, and protect it from: Module 19: Security The Security Problem Authentication Program Threats System Threats Securing Systems Intrusion Detection Encryption Windows NT 19.1 The Security Problem Security must consider external

More information

Principles of Designing Secure Systems

Principles of Designing Secure Systems T H E U N I V E R S I T Y O F B R I T I S H C O L U M B I A Principles of Designing Secure Systems EECE 412 Who Am I name: San-Tsai Sun PhD candidate/ta 412 for 3 terms web application security security

More information

Session 11: Security Policies 1

Session 11: Security Policies 1 Developing Secure Software EECE 412 Session 21 What s cell phones, ATMs, air traffic control systems, emergency service systems, healthcare equipment, and PDAs have in common? Internet security incidents

More information

Secure Programming Techniques

Secure Programming Techniques Secure Programming Techniques Meelis ROOS mroos@ut.ee Institute of Computer Science Tartu University spring 2014 Course outline Introduction General principles Code auditing C/C++ Web SQL Injection PHP

More information

CS6501: Great Works in Computer Science

CS6501: Great Works in Computer Science CS6501: Great Works in Computer Science Jan. 29th 2013 Longze Chen The Protection of Information in Computer Systems Jerome H. Saltzer and Michael D. Schroeder Jerry Saltzer Michael Schroeder 1 The Meaning

More information

CIS 5373 Systems Security

CIS 5373 Systems Security CIS 5373 Systems Security Topic 3.1: OS Security Basics of secure design Endadul Hoque Slide Acknowledgment Contents are based on slides from Ninghui Li (Purdue), John Mitchell (Stanford), Dan Boneh (Stanford)

More information

Computer Security. 04r. Pre-exam 1 Concept Review. Paul Krzyzanowski. Rutgers University. Spring 2018

Computer Security. 04r. Pre-exam 1 Concept Review. Paul Krzyzanowski. Rutgers University. Spring 2018 Computer Security 04r. Pre-exam 1 Concept Review Paul Krzyzanowski Rutgers University Spring 2018 February 15, 2018 CS 419 2018 Paul Krzyzanowski 1 Key ideas from the past four lectures February 15, 2018

More information

2. INTRUDER DETECTION SYSTEMS

2. INTRUDER DETECTION SYSTEMS 1. INTRODUCTION It is apparent that information technology is the backbone of many organizations, small or big. Since they depend on information technology to drive their business forward, issues regarding

More information

CUNY John Jay College of Criminal Justice MATH AND COMPUTER SCIENCE

CUNY John Jay College of Criminal Justice MATH AND COMPUTER SCIENCE Instructor: Prof Aftab Ahmad Office: NB 612 Telephone No. (212)393-6314 Email Address: aahmad@jjay.cuny.edu Office Hours: By appointment TEXT & REFERENCE MATERIAL Text Notes from instructor posted on Blackboard

More information

CS 356 Operating System Security. Fall 2013

CS 356 Operating System Security. Fall 2013 CS 356 Operating System Security Fall 2013 Review Chapter 1: Basic Concepts and Terminology Chapter 2: Basic Cryptographic Tools Chapter 3 User Authentication Chapter 4 Access Control Lists Chapter 5 Database

More information

COMPUTER NETWORK SECURITY

COMPUTER NETWORK SECURITY COMPUTER NETWORK SECURITY Prof. Dr. Hasan Hüseyin BALIK (1 st Week) Outline Course Information and Policies Course Syllabus 1. Overview Course Information Instructor: Prof. Dr. Hasan H. BALIK, balik@yildiz.edu.tr,

More information

Foreword by Katie Moussouris... Acknowledgments... xvii. Introduction...xix. Chapter 1: The Basics of Networking... 1

Foreword by Katie Moussouris... Acknowledgments... xvii. Introduction...xix. Chapter 1: The Basics of Networking... 1 Brief Contents Foreword by Katie Moussouris.... xv Acknowledgments... xvii Introduction...xix Chapter 1: The Basics of Networking... 1 Chapter 2: Capturing Application Traffic... 11 Chapter 3: Network

More information

Computers and Security

Computers and Security The contents of this Supporting Material document have been prepared from the Eight units of study texts for the course M150: Date, Computing and Information, produced by The Open University, UK. Copyright

More information

Module 20: Security. The Security Problem Authentication Program Threats System Threats Threat Monitoring Encryption. Operating System Concepts 20.

Module 20: Security. The Security Problem Authentication Program Threats System Threats Threat Monitoring Encryption. Operating System Concepts 20. Module 20: Security The Security Problem Authentication Program Threats System Threats Threat Monitoring Encryption 20.1 The Security Problem Security must consider external environment of the system,

More information

Threat Modeling. Bart De Win Secure Application Development Course, Credits to

Threat Modeling. Bart De Win Secure Application Development Course, Credits to Threat Modeling Bart De Win bart.dewin@ascure.com Secure Application Development Course, 2009 Credits to Frank Piessens (KUL) for the slides 2 1 Overview Introduction Key Concepts Threats, Vulnerabilities,

More information

Keys and Passwords. Steven M. Bellovin October 17,

Keys and Passwords. Steven M. Bellovin October 17, Keys and Passwords Steven M. Bellovin October 17, 2010 1 Handling Long-Term Keys Where do cryptographic keys come from? How should they be handled? What are the risks? As always, there are tradeoffs Steven

More information

Security and Authentication

Security and Authentication Security and Authentication Authentication and Security A major problem with computer communication Trust Who is sending you those bits What they allow to do in your system 2 Authentication In distributed

More information

Data Security and Privacy : Compliance to Stewardship. Jignesh Patel Solution Consultant,Oracle

Data Security and Privacy : Compliance to Stewardship. Jignesh Patel Solution Consultant,Oracle Data Security and Privacy : Compliance to Stewardship Jignesh Patel Solution Consultant,Oracle Agenda Connected Government Security Threats and Risks Defense In Depth Approach Summary Connected Government

More information

n Learn about the Security+ exam n Learn basic terminology and the basic approaches n Implement security configuration parameters on network

n Learn about the Security+ exam n Learn basic terminology and the basic approaches n Implement security configuration parameters on network Always Remember Chapter #1: Network Device Configuration There is no 100 percent secure system, and there is nothing that is foolproof! 2 Outline Learn about the Security+ exam Learn basic terminology

More information

Software Security and Exploitation

Software Security and Exploitation COMS E6998-9: 9: Software Security and Exploitation Lecture 8: Fail Secure; DoS Prevention; Evaluating Components for Security Hugh Thompson, Ph.D. hthompson@cs.columbia.edu Failing Securely and Denial

More information

CS392/681 - Computer Security. Nasir Memon Polytechnic University Module 5 Design Principles

CS392/681 - Computer Security. Nasir Memon Polytechnic University Module 5 Design Principles CS392/681 - Computer Security Nasir Memon Polytechnic University Module 5 Design Principles Course Logistics Read chapter 13. FEAU PHEW!!! Midterm in 2 weeks!! CSAW 2005 Register at http://isis.poly.edu/csaw

More information

Having learned basics of computer security and data security, in this section, you will learn how to develop secure systems.

Having learned basics of computer security and data security, in this section, you will learn how to develop secure systems. Having learned basics of computer security and data security, in this section, you will learn how to develop secure systems. In particular, we will learn threat modeling process during secure system design.

More information

Embedded/Connected Device Secure Coding. 4-Day Course Syllabus

Embedded/Connected Device Secure Coding. 4-Day Course Syllabus Embedded/Connected Device Secure Coding 4-Day Course Syllabus Embedded/Connected Device Secure Coding 4-Day Course Course description Secure Programming is the last line of defense against attacks targeted

More information

Introduction to Computer Security

Introduction to Computer Security Introduction to Computer Security Instructor: Mahadevan Gomathisankaran mgomathi@unt.edu 1 Introduction So you can specify a well-thought-out policy and a concrete model now what? Now it s time for a system

More information

IT Service Delivery and Support Week Three. IT Auditing and Cyber Security Fall 2016 Instructor: Liang Yao

IT Service Delivery and Support Week Three. IT Auditing and Cyber Security Fall 2016 Instructor: Liang Yao IT Service Delivery and Support Week Three IT Auditing and Cyber Security Fall 2016 Instructor: Liang Yao 1 Infrastructure Essentials Computer Hardware Operating Systems (OS) & System Software Applications

More information

Firewalls Network Security: Firewalls and Virtual Private Networks CS 239 Computer Software March 3, 2003

Firewalls Network Security: Firewalls and Virtual Private Networks CS 239 Computer Software March 3, 2003 Firewalls Network Security: Firewalls and Virtual Private Networks CS 239 Computer Software March 3, 2003 A system or combination of systems that enforces a boundary between two or more networks - NCSA

More information

Developing Secure Software

Developing Secure Software T H E U N I V E R S I T Y O F B R I T I S H C O L U M B I A Developing Secure Software EECE 412 Session 21 Copyright 2004 Konstantin Beznosov T H E U N I V E R S I T Y O F B R I T I S H C O L U M B I A

More information

CIS 700/002 : Special Topics : Protection Mechanisms & Secure Design Principles

CIS 700/002 : Special Topics : Protection Mechanisms & Secure Design Principles CIS 700/002 : Special Topics : Protection Mechanisms & Secure Design Principles Nikheel V Savant CIS 700/002: Security of EMBS/CPS/IoT Department of Computer and Information Science School of Engineering

More information

Web insecurity Security strategies General security Listing of server-side risks Language specific security. Web Security.

Web insecurity Security strategies General security Listing of server-side risks Language specific security. Web Security. Web Security Web Programming Uta Priss ZELL, Ostfalia University 2013 Web Programming Web Security Slide 1/25 Outline Web insecurity Security strategies General security Listing of server-side risks Language

More information

Int ernet w orking. Internet Security. Literature: Forouzan: TCP/IP Protocol Suite : Ch 28

Int ernet w orking. Internet Security. Literature: Forouzan: TCP/IP Protocol Suite : Ch 28 Int ernet w orking Internet Security Literature: Forouzan: TCP/IP Protocol Suite : Ch 28 Internet Security Internet security is difficult Internet protocols were not originally designed for security The

More information

Symlink attacks. Do not assume that symlinks are trustworthy: Example 1

Symlink attacks. Do not assume that symlinks are trustworthy: Example 1 Symlink attacks Do not assume that symlinks are trustworthy: Example 1 Application A creates a file for writing in /tmp. It assumes that since the file name is unusual, or because it encodes A's name or

More information

C1: Define Security Requirements

C1: Define Security Requirements OWASP Top 10 Proactive Controls IEEE Top 10 Software Security Design Flaws OWASP Top 10 Vulnerabilities Mitigated OWASP Mobile Top 10 Vulnerabilities Mitigated C1: Define Security Requirements A security

More information

CSC Network Security

CSC Network Security CSC 474 -- Security Topic 9. Firewalls CSC 474 Dr. Peng Ning 1 Outline Overview of Firewalls Filtering Firewalls Proxy Servers CSC 474 Dr. Peng Ning 2 Overview of Firewalls CSC 474 Dr. Peng Ning 3 1 Internet

More information

Eoin Woods Secure by Design security design principles for the rest of us

Eoin Woods Secure by Design security design principles for the rest of us Eoin Woods Endava @eoinwoodz Secure by Design security design principles for the rest of us 1 BACKGROUND Eoin Woods CTO at Endava (technology services, 3300 people) 10 years in product development - Bull,

More information

Computer Security and Privacy

Computer Security and Privacy CSE P 590 / CSE M 590 (Spring 2010) Computer Security and Privacy Tadayoshi Kohno Thanks to Dan Boneh, Dieter Gollmann, John Manferdelli, John Mitchell, Vitaly Shmatikov, Bennet Yee, and many others for

More information

Protection and Security

Protection and Security Protection and Security Security: policy for controlling access to system Protection: mechanism implementing security policy Why: users can do bad things to system either maliciously or unintentionally

More information

Design. Secure Application Development Modules 12, 13 Konstantin Beznosov. Copyright Konstantin Beznosov

Design. Secure Application Development Modules 12, 13 Konstantin Beznosov. Copyright Konstantin Beznosov Design Secure Application Development Modules 12, 13 Konstantin Beznosov Copyright 2004-2005 Konstantin Beznosov What Do you Already Know? What principles of designing secure systems do you already know?

More information

Last time. User Authentication. Security Policies and Models. Beyond passwords Biometrics

Last time. User Authentication. Security Policies and Models. Beyond passwords Biometrics Last time User Authentication Beyond passwords Biometrics Security Policies and Models Trusted Operating Systems and Software Military and Commercial Security Policies 9-1 This time Security Policies and

More information

Advanced Systems Security: Ordinary Operating Systems

Advanced Systems Security: Ordinary Operating Systems Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Buffer overflow background

Buffer overflow background and heap buffer background Comp Sci 3600 Security Heap Outline and heap buffer Heap 1 and heap 2 3 buffer 4 5 Heap Outline and heap buffer Heap 1 and heap 2 3 buffer 4 5 Heap Address Space and heap buffer

More information

Ethical Hacking and Countermeasures: Web Applications, Second Edition. Chapter 3 Web Application Vulnerabilities

Ethical Hacking and Countermeasures: Web Applications, Second Edition. Chapter 3 Web Application Vulnerabilities Ethical Hacking and Countermeasures: Web Chapter 3 Web Application Vulnerabilities Objectives After completing this chapter, you should be able to: Understand the architecture of Web applications Understand

More information

Advanced Systems Security: Ordinary Operating Systems

Advanced Systems Security: Ordinary Operating Systems Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Introduction to Security and User Authentication

Introduction to Security and User Authentication Introduction to Security and User Authentication Brad Karp UCL Computer Science CS GZ03 / M030 14 th November 2016 Topics We ll Cover User login authentication (local and remote) Cryptographic primitives,

More information

Operating Systems Design Exam 3 Review: Spring Paul Krzyzanowski

Operating Systems Design Exam 3 Review: Spring Paul Krzyzanowski Operating Systems Design Exam 3 Review: Spring 2012 Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 An Ethernet device driver implements the: (a) Data Link layer. (b) Network layer. (c) Transport layer.

More information

18-642: Security Mitigation & Validation

18-642: Security Mitigation & Validation 18-642: Security Mitigation & Validation 11/27/2017 Security Migitation & Validation Anti-Patterns for security mitigation & validation Poorly considered password policy Poorly considered privilege management

More information

Secure Design Guidelines. John Slankas CSC 515

Secure Design Guidelines. John Slankas CSC 515 Secure Design Guidelines John Slankas CSC 515 1 2 1. Securing the Weakest Link Attackers are more likely to attack a weak spot in a software system than to penetrate a heavily fortified component. Attackers

More information

CIT 380: Securing Computer Systems. Software Security

CIT 380: Securing Computer Systems. Software Security CIT 380: Securing Computer Systems Software Security Topics 1. The problem of software security 2. System security standards 3. Secure lifecycle 4. Buffer overflows 5. Integer overflows 6. Format string

More information

Hackveda Training - Ethical Hacking, Networking & Security

Hackveda Training - Ethical Hacking, Networking & Security Hackveda Training - Ethical Hacking, Networking & Security Day1: Hacking windows 7 / 8 system and security Part1 a.) Windows Login Password Bypass manually without CD / DVD b.) Windows Login Password Bypass

More information

Why bother? Default configurations Buffer overflows Authentication mechanisms Reverse engineering Questions?

Why bother? Default configurations Buffer overflows Authentication mechanisms Reverse engineering Questions? Jeroen van Beek 1 Why bother? Default configurations Buffer overflows Authentication mechanisms Reverse engineering Questions? 2 Inadequate OS and application security: Data abuse Stolen information Bandwidth

More information

CIT 380: Securing Computer Systems

CIT 380: Securing Computer Systems CIT 380: Securing Computer Systems Secure Programming Slide #1 Topics 1. The nature of trust 2. Input validation 3. Input entry points 4. Integer overflows 5. Format string attacks Slide #2 Trust Relationships

More information

Persistent key, value storage

Persistent key, value storage Persistent key, value storage In programs, often use hash tables - E.g., Buckets are an array of pointers, collision chaining For persistant data, minimize # disk accesses - Traversing linked lists is

More information

1 About Web Security. What is application security? So what can happen? see [?]

1 About Web Security. What is application security? So what can happen? see [?] 1 About Web Security What is application security? see [?] So what can happen? 1 taken from [?] first half of 2013 Let s focus on application security risks Risk = vulnerability + impact New App: http://www-03.ibm.com/security/xforce/xfisi

More information

PRACTICAL SECURITY PRINCIPLES FOR THE WORKING ARCHITECT. Eoin Woods,

PRACTICAL SECURITY PRINCIPLES FOR THE WORKING ARCHITECT. Eoin Woods, PRACTICAL SECURITY PRINCIPLES FOR THE WORKING ARCHITECT Eoin Woods, Endava @eoinwoodz BACKGROUND Eoin Woods CTO at Endava (technology services, ~4000 people) 10 years in product development - Bull, Sybase,

More information

Information Security CS 526

Information Security CS 526 Information Security CS 526 Topic 14: Key Distribution & Agreement, Secure Communication Topic 14: Secure Communication 1 Readings for This Lecture On Wikipedia Needham-Schroeder protocol (only the symmetric

More information

Access Controls. CISSP Guide to Security Essentials Chapter 2

Access Controls. CISSP Guide to Security Essentials Chapter 2 Access Controls CISSP Guide to Security Essentials Chapter 2 Objectives Identification and Authentication Centralized Access Control Decentralized Access Control Access Control Attacks Testing Access Controls

More information

Chapter 13: Design Principles

Chapter 13: Design Principles Chapter 13: Design Principles Overview Principles Least Privilege Fail-Safe Defaults Economy of Mechanism Complete Mediation Open Design Separation of Privilege Least Common Mechanism Psychological Acceptability

More information

Internet Security: Firewall

Internet Security: Firewall Internet Security: Firewall What is a Firewall firewall = wall to protect against fire propagation More like a moat around a medieval castle restricts entry to carefully controlled points restricts exits

More information

Introduction to Security

Introduction to Security IS 2150 / TEL 2810 Introduction to Security James Joshi Professor, SIS Lecture 12 2016 Intrusion Detection, Auditing System Firewalls & VPN 1 Intrusion Detection 2 Intrusion Detection/Response Denning:

More information

Overview. Handling Security Incidents. Attack Terms and Concepts. Types of Attacks

Overview. Handling Security Incidents. Attack Terms and Concepts. Types of Attacks Overview Handling Security Incidents Chapter 7 Lecturer: Pei-yih Ting Attacks Security Incidents Handling Security Incidents Incident management Methods and Tools Maintaining Incident Preparedness Standard

More information

CHAPTER 8 FIREWALLS. Firewall Design Principles

CHAPTER 8 FIREWALLS. Firewall Design Principles CHAPTER 8 FIREWALLS Firewalls can be an effective means of protecting a local system or network of systems from network-based security threats while at the same time affording access to the outside world

More information

W is a Firewall. Internet Security: Firewall. W a Firewall can Do. firewall = wall to protect against fire propagation

W is a Firewall. Internet Security: Firewall. W a Firewall can Do. firewall = wall to protect against fire propagation W is a Firewall firewall = wall to protect against fire propagation Internet Security: Firewall More like a moat around a medieval castle restricts entry to carefully controlled points restricts exits

More information

WHITEPAPER. Vulnerability Analysis of Certificate Validation Systems

WHITEPAPER. Vulnerability Analysis of Certificate Validation Systems WHITEPAPER Vulnerability Analysis of Certificate Validation Systems The US Department of Defense (DoD) has deployed one of the largest Public Key Infrastructure (PKI) in the world. It serves the Public

More information

Identity, Authentication, and Access Control

Identity, Authentication, and Access Control Identity, Authentication, and Access Control License This work by Z. Cliffe Schreuders at Leeds Metropolitan University is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

More information

Why bother? Default configurations Buffer overflows Authentication mechanisms Reverse engineering Questions?

Why bother? Default configurations Buffer overflows Authentication mechanisms Reverse engineering Questions? Jeroen van Beek 1 Why bother? Default configurations Buffer overflows Authentication mechanisms Reverse engineering Questions? 2 Inadequate OS and application security: Data abuse Stolen information Bandwidth

More information

A (sample) computerized system for publishing the daily currency exchange rates

A (sample) computerized system for publishing the daily currency exchange rates A (sample) computerized system for publishing the daily currency exchange rates The Treasury Department has constructed a computerized system that publishes the daily exchange rates of the local currency

More information

Question No: 2 Which identifier is used to describe the application or process that submitted a log message?

Question No: 2 Which identifier is used to describe the application or process that submitted a log message? Volume: 65 Questions Question No: 1 Which definition of a fork in Linux is true? A. daemon to execute scheduled commands B. parent directory name of a file pathname C. macros for manipulating CPU sets

More information

COPYRIGHTED MATERIAL. Contents. Part I: The Basics in Depth 1. Chapter 1: Windows Attacks 3. Chapter 2: Conventional and Unconventional Defenses 51

COPYRIGHTED MATERIAL. Contents. Part I: The Basics in Depth 1. Chapter 1: Windows Attacks 3. Chapter 2: Conventional and Unconventional Defenses 51 Acknowledgments Introduction Part I: The Basics in Depth 1 Chapter 1: Windows Attacks 3 Attack Classes 3 Automated versus Dedicated Attacker 4 Remote versus Local 7 Types of Attacks 8 Dedicated Manual

More information

Protection and Security

Protection and Security Protection and Security CS 502 Spring 99 WPI MetroWest/Southboro Campus Three Circles of Computer Security Inner Circle Memory, CPU, and File protection. Middle Circle Security Perimeter. Authentication

More information

Protect Your Application with Secure Coding Practices. Barrie Dempster & Jason Foy JAM306 February 6, 2013

Protect Your Application with Secure Coding Practices. Barrie Dempster & Jason Foy JAM306 February 6, 2013 Protect Your Application with Secure Coding Practices Barrie Dempster & Jason Foy JAM306 February 6, 2013 BlackBerry Security Team Approximately 120 people work within the BlackBerry Security Team Security

More information

.NET Secure Coding for Client-Server Applications 4-Day hands on Course. Course Syllabus

.NET Secure Coding for Client-Server Applications 4-Day hands on Course. Course Syllabus .NET Secure Coding for Client-Server Applications 4-Day hands on Course Course Syllabus Course description.net Secure Coding for Client-Server Applications 4-Day hands on Course Secure programming is the

More information

SSH. Partly a tool, partly an application Features:

SSH. Partly a tool, partly an application Features: Internet security SSH 1 Secure Shell: SSH Partly a tool, partly an application Features: Encrypted login and shell connections Easy, drop-in replacements for rlogin, rsh, rcp Multiple means of authentication

More information

typedef void (*type_fp)(void); int a(char *s) { type_fp hf = (type_fp)(&happy_function); char buf[16]; strncpy(buf, s, 18); (*hf)(); return 0; }

typedef void (*type_fp)(void); int a(char *s) { type_fp hf = (type_fp)(&happy_function); char buf[16]; strncpy(buf, s, 18); (*hf)(); return 0; } Dawn Song Fall 2012 CS 161 Computer Security Practice Questions 1. (6 points) Control Hijacking Indicate whether the statement is always valid. Indicate true or false, and give a one sentence explanation.

More information

Security Architecture

Security Architecture Security Architecture We ve been looking at how particular applications are secured We need to secure not just a few particular applications, but many applications, running on separate machines We need

More information

SE420 Software Quality Assurance

SE420 Software Quality Assurance SE420 Software Quality Assurance Encryption Backgrounder September 5, 2014 Sam Siewert Encryption - Substitution Re-map Alphabet, 1-to-1 and On-to (function) A B C D E F G H I J K L M N O P Q R S T U V

More information

CTF Workshop. Crim Synopsys, Inc. 1

CTF Workshop. Crim Synopsys, Inc. 1 CTF Workshop Crim2018 31.10.2018 2018 Synopsys, Inc. 1 CTF (Capture the Flag) Capture the Flag (CTF) is a computer security competition. CTF are usually designed test and teach computer security skills.

More information

Chair for Network Architectures and Services Department of Informatics TU München Prof. Carle. Network Security. Chapter 8

Chair for Network Architectures and Services Department of Informatics TU München Prof. Carle. Network Security. Chapter 8 Chair for Network Architectures and Services Department of Informatics TU München Prof. Carle Network Security Chapter 8 System Vulnerabilities and Denial of Service Attacks System Vulnerabilities and

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz II

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz II Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.893 Fall 2009 Quiz II All problems are open-ended questions. In order to receive credit you must answer

More information

Information Security CS 526

Information Security CS 526 Information Security CS 526 Topic 7: User Authentication CS526 Topic 7: User Authentication 1 Readings for This Lecture Wikipedia Password Password strength Salt_(cryptography) Password cracking Trusted

More information

Assistance with University Projects? Research Reports? Writing Skills? We ve got you covered! www.assignmentstudio.net WhatsApp: +61-424-295050 Toll Free: 1-800-794-425 Email: contact@assignmentstudio.net

More information

Protection and Security. Sarah Diesburg Operating Systems CS 3430

Protection and Security. Sarah Diesburg Operating Systems CS 3430 Protection and Security Sarah Diesburg Operating Systems CS 3430 Definitions Security: policy of authorizing accesses Prevents intentional misuses of a system Protection: the actual mechanisms implemented

More information

Advanced Ethical Hacking & Penetration Testing. Ethical Hacking

Advanced Ethical Hacking & Penetration Testing. Ethical Hacking Summer Training Internship Program 2017 (STIP - 2017) is a practical oriented & industrial level training program for all students who have aspiration to work in the core technical industry domain. This

More information

Mobile Payment Application Security. Security steps to take while developing Mobile Application s. SISA Webinar.

Mobile Payment Application Security. Security steps to take while developing Mobile Application s. SISA Webinar. Mobile Payment Application Security Security steps to take while developing Mobile Application s About SISA Payment Security Specialists PCI Certification Body (PCI Qualified Security Assessor) Payment

More information

User Authentication. Modified By: Dr. Ramzi Saifan

User Authentication. Modified By: Dr. Ramzi Saifan User Authentication Modified By: Dr. Ramzi Saifan Authentication Verifying the identity of another entity Computer authenticating to another computer Person authenticating to a local/remote computer Important

More information

Strategic Infrastructure Security

Strategic Infrastructure Security Strategic Infrastructure Security Course Number: SCPSIS Length: Certification Exam There are no exams currently associated with this course. Course Overview This course picks up right where Tactical Perimeter

More information

key distribution requirements for public key algorithms asymmetric (or public) key algorithms

key distribution requirements for public key algorithms asymmetric (or public) key algorithms topics: cis3.2 electronic commerce 24 april 2006 lecture # 22 internet security (part 2) finish from last time: symmetric (single key) and asymmetric (public key) methods different cryptographic systems

More information

CERT Secure Coding Initiative. Define security requirements. Model Threats 11/30/2010

CERT Secure Coding Initiative. Define security requirements. Model Threats 11/30/2010 Secure Coding Practices COMP620 CERT Secure Coding Initiative Works with software developers and software development organizations to reduce vulnerabilities resulting from coding errors Many of the slides

More information

CIT 480: Securing Computer Systems. Software Security

CIT 480: Securing Computer Systems. Software Security CIT 480: Securing Computer Systems Software Security Topics 1. The problem of software security 2. System security standards 3. Secure lifecycle 4. Buffer overflows 5. Integer overflows 6. Format string

More information

SECURITY STORY WE NEVER SEE, TOUCH NOR HOLD YOUR DATA

SECURITY STORY WE NEVER SEE, TOUCH NOR HOLD YOUR DATA SECURITY STORY WE NEVER SEE, TOUCH NOR HOLD YOUR DATA CTO Office www.digi.me another Engineering Briefing digi.me keeping your data secure at all times ALL YOUR DATA IN ONE PLACE TO SHARE WITH PEOPLE WHO

More information

In-Memory Fuzzing in JAVA

In-Memory Fuzzing in JAVA Your texte here. In-Memory Fuzzing in JAVA 2012.12.17 Xavier ROUSSEL Summary I. What is Fuzzing? Your texte here. Introduction Fuzzing process Targets Inputs vectors Data generation Target monitoring Advantages

More information

Curso: Ethical Hacking and Countermeasures

Curso: Ethical Hacking and Countermeasures Curso: Ethical Hacking and Countermeasures Module 1: Introduction to Ethical Hacking Who is a Hacker? Essential Terminologies Effects of Hacking Effects of Hacking on Business Elements of Information Security

More information

Computer Networks. Network Security and Ethics. Week 14. College of Information Science and Engineering Ritsumeikan University

Computer Networks. Network Security and Ethics. Week 14. College of Information Science and Engineering Ritsumeikan University Computer Networks Network Security and Ethics Week 14 College of Information Science and Engineering Ritsumeikan University Security Intro for Admins l Network administrators can break security into two

More information

Network Security and Cryptography. 2 September Marking Scheme

Network Security and Cryptography. 2 September Marking Scheme Network Security and Cryptography 2 September 2015 Marking Scheme This marking scheme has been prepared as a guide only to markers. This is not a set of model answers, or the exclusive answers to the questions,

More information