Misuse and Abuse Cases: Getting Past the Positive.

Slides:



Advertisements
Similar presentations
Chapter 1  Introduction 1 Chapter 1: Introduction.
Advertisements

Chapter 1  Introduction 1 Chapter 1: Introduction “Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.”
Topic 8: Secure communication in mobile devices. Choice of secure communication protocols, leveraging SSL for remote authentication and using HTTPS for.
Security Issues and Challenges in Cloud Computing
INDEX  Ethical Hacking Terminology.  What is Ethical hacking?  Who are Ethical hacker?  How many types of hackers?  White Hats (Ethical hackers)
Barracuda Web Application Firewall
CSA 223 network and web security Chapter one
1 Steve Chenoweth Friday, 10/21/11 Week 7, Day 4 Right – Good or bad policy? – Asking the user what to do next! From malware.net/how-to-remove-protection-system-
Slide 1 Client / Server Paradigm. Slide 2 Outline: Client / Server Paradigm Client / Server Model of Interaction Server Design Issues C/ S Points of Interaction.
How to Prepare for the Fall Exam COM380/CIT304 Harry Erwin, PhD University of Sunderland.
It’s always better live. MSDN Events Security Best Practices Part 2 of 2 Reducing Vulnerabilities using Visual Studio 2008.
Access 2007 Product Review. With its improved interface and interactive design capabilities that do not require deep database knowledge, Microsoft Office.
Information Networking Security and Assurance Lab National Chung Cheng University The Ten Most Critical Web Application Security Vulnerabilities Ryan J.W.
Information Networking Security and Assurance Lab National Chung Cheng University 1 Top Vulnerabilities in Web Applications (I) Unvalidated Input:  Information.
Building Secure Software Chapter 9 Race Conditions.
Chapter 1  Introduction 1 Chapter 1: Introduction “Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.”
Jonas Thomsen, Ph.d. student Computer Science University of Aarhus Best Practices and Techniques for Building Secure Microsoft.
Department Of Computer Engineering
Science Inquiry Minds-on Hands-on.
Designing Security In Web Applications Andrew Tomkowiak 10/8/2013 UW-Platteville Software Engineering Department
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
Introduction to Application Penetration Testing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Basic Security Networking for Home and Small Businesses – Chapter 8.
Malicious Code Brian E. Brzezicki. Malicious Code (from Chapter 13 and 11)
Security.NET Chapter 1. How Do Attacks Occur? Stages of attack Examples of attacker actions 1. FootprintRuns a port scan on the firewall 2. PenetrationExploits.
Information Systems Security Computer System Life Cycle Security.
Security Security is a measure of the system’s ability to protect data and information from unauthorized access while still providing access to people.
A Security Review Process for Existing Software Applications
Quality Attributes of Web Software Applications – Jeff Offutt By Julia Erdman SE 510 October 8, 2003.
© All rights reserved. Zend Technologies, Inc. PHP Security Kevin Schroeder Zend Technologies.
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications James Walden Northern Kentucky University
3-Protecting Systems Dr. John P. Abraham Professor UTPA.
CHAPTER 11 Spoofing Attack. INTRODUCTION Definition Spoofing is the act of using one machine in the network communication to impersonate another. The.
Top Five Web Application Vulnerabilities Vebjørn Moen Selmersenteret/NoWires.org Norsk Kryptoseminar Trondheim
OWASP Top Ten #1 Unvalidated Input. Agenda What is the OWASP Top 10? Where can I find it? What is Unvalidated Input? What environments are effected? How.
Fundamentals of Proxying. Proxy Server Fundamentals  Proxy simply means acting on someone other’s behalf  A Proxy acts on behalf of the client or user.
SEC835 Runtime authentication Secure session management Secure use of cryptomaterials.
CSCE 522 Secure Software Development Best Practices.
CIS 450 – Network Security Chapter 14 – Specific Exploits for UNIX.
Security CS Introduction to Operating Systems.
Lecture 16 Page 1 CS 236 Online Web Security CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Client-Server Model of Interaction Chapter 20. We have looked at the details of TCP/IP Protocols Protocols Router architecture Router architecture Now.
Topic 5: Basic Security.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Lesson 19-E-Commerce Security Needs. Overview Understand e-commerce services. Understand the importance of availability. Implement client-side security.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Tussle in Cyberspace: Defining Tomorrow’s Internet Presented by: Khoa To.
Protecting Browsers from Extension Vulnerabilities Paper by: Adam Barth, Adrienne Porter Felt, Prateek Saxena at University of California, Berkeley and.
ITGS Network Architecture. ITGS Network architecture –The way computers are logically organized on a network, and the role each takes. Client/server network.
CSCE 201 Secure Software Development Best Practices.
Cryptography and Network Security Sixth Edition by William Stallings.
ICM – API Server & Forms Gary Ratcliffe.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Secure Software Development Abuse Cases Chapter 8 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Staff addresses Availability tradeoffs December 13, 2012.
Forms of Network Attacks Gabriel Owens COSC 352 February 24, 2011.
Carrie Estes Collin Donaldson.  Zero day attacks  “zero day”  Web application attacks  Signing up for a class  Hardening the web server  Enhancing.
What is Kerberos? Network authentication protocol Developed at MIT in the mid 1980s Kerberos is a three-headed dog Available as open source or in supported.
HIPS. Host-Based Intrusion Prevention Systems  One of the major benefits to HIPS technology is the ability to identify and stop known and unknown attacks,
Network Security Presented by: JAISURYA BANERJEA MBA, 2ND Semester.
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Web Application Protection Against Hackers and Vulnerabilities
Evaluating Existing Systems
Evaluating Existing Systems
A Security Review Process for Existing Software Applications
Website Security Testing: Why Business Need It Very Badly.
A gentle introduction to RESTful APIs
A gentle introduction to RESTful APIs
Presentation transcript:

Misuse and Abuse Cases: Getting Past the Positive

Background Software development is all about making software do something: when software vendors sell their products, they talk about what the products do to make customers’ lives easier, such as encapsulating business processes or something similarly positive

Experienced customers are beginning to demand secure and reliable software. To create secure and reliable software, we first must anticipate abnormal behavior. We don’t normally describe non-normative behavior in use cases, nor do we describe it with UML, but we must have some way to talk about and prepare for it. “Misuse” (or “abuse”) cases can help organizations begin to see their software in the same light that attackers do.

Security is not a set of features Cryptography of one kind or another is usually necessary to create a secure system, but security features alone are not sufficient for building secure software. It cannot be patched in after attacks have occurred in the field. It must be built as a critical part of the design from the very beginning (requirements specification) and included in every subsequent development phase all the way through fielding a complete system.

For example, ease of use might be paramount in a medical system designed for secretaries in doctors’ offices, but complex authentication procedures, such as obtaining and using a cryptographic identity, can be hard to use. Technical approaches must go far beyond the obvious features, deep into the many-tiered heart of a software system to provide enough security: authentication and authorization can’t stop at a program’s front door.

The best, most cost-effective approach to software security incorporates thinking beyond normative features and incorporates that thinking throughout the development process. Every time a new requirement, feature, or use case is created, someone should spend some time thinking about how that feature might be unintentionally misused or intentionally abused. Professionals who know how features are attacked and how to protect software should play an active role in this kind of analysis.

Comparison of Original and proposed software development life cycle

Thinking about what you can’t do Attackers always probe well-known locations— boundary conditions, edges, intersystem communication, and system assumptions—in the course of their attacks. Clever attackers will try to undermine the assumptions on which a system was built. If the software design assumes that the client never modifies its Web browser cookies before they are sent back to the requesting server, attackers will intentionally cause problems by modifying the cookies Building Secure Software teaches us that we have to be on guard with all of our assumptions.

A system’s creators are not the best security analysts of that system Knowledge to the benefit of security and reliability, can be gained by asking and answering the following critical questions: 1. What assumptions are implicit in our system? 2. What kinds of things make our assumptions false? 3. What kinds of attack patterns will an attacker bring to bear? Subject matter experts (SMEs) and security analysts can ferret out base assumptions in a system under analysis and think through the ways an attacker will approach the software.

Creating useful misuse cases One of the goals of misuse cases is to decide and document a priori how software should react to illegitimate use. The simplest, practical method for creating misuse cases is usually with the process of brainstorming. A more practical approach is team security and reliability experts with SMEs. This approach relies heavily on expertise and covers a lot of ground quickly.

To guide brainstorming, software security experts ask many questions of a system’s designers to help identify the places where the system is likely to have weaknesses. Such brainstorming involves a careful look at all user interfaces and considers events that developers assume a person can’t or won’t do. Attackers, unfortunately, can make these cant's and won’ts happen.

An abuse case example Cigital recently reviewed a client-server application and found a classic software security problem. The architecture had been set up so that the server relied on the client-side application, which manipulated a financially sensitive database, to manage all data-access permissions & no permissions were enforced on the server itself. The client also enforced which messages were sent to the server, the server assumed that any messages coming from the client had passed the client software’s access control system and were, therefore, legitimate.

By intercepting network traffic, corrupting values in the client software’s cache, or building a hostile client, malicious users could inject data into the database that they were not even supposed to read and write. Determining the cant's and won’ts in such a case is difficult for those who think only about positive features. Attack patterns can provide some guidance while we are creating misuse and abuse cases.

Attack patterns Attack patterns are extremely useful in generating valid abuse and misuse cases. Few of the attackers pattern are shown here: ▫ Make the client invisible ▫ Target programs that write to privileged OS resources ▫ Attack user-supplied configuration files that run commands to elevate privilege ▫ Leverage configuration file search paths ▫ Manipulate terminal devices ▫ Perform simple script injection ▫ Pass local file names to functions that expect a URL ▫ Inject functions into content-based file systems ▫ Use alternative IP addresses and encodings ▫ Force a buffer overflow in an API call

Thank You Sridhar Rayappagari Vinod Kothapalli Ashwin Karmilla Pradeep Vasamsetti