© Blackboard, Inc. All rights reserved. Developing Secure Software Bob Alcorn, Blackboard Inc.

Slides:



Advertisements
Similar presentations
Webgoat.
Advertisements

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Risk Assessment What is RISK?  requires vulnerability  likelihood of successful attack  amount of potential damage Two approaches:  threat modeling.
Bridging the gap between software developers and auditors.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
1 Chapter 8 Fundamentals of System Security. 2 Objectives In this chapter, you will: Understand the trade-offs among security, performance, and ease of.
Engineering Secure Software. Uses of Risk Thus Far  Start with the functionality Use cases  abuse/misuse cases p(exploit), p(vulnerability)  Start.
Security and Integrity
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-
1 An Overview of Computer Security computer security.
It’s always better live. MSDN Events Security Best Practices Part 2 of 2 Reducing Vulnerabilities using Visual Studio 2008.
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.
Security Engineering II. Problem Sources 1.Requirements definitions, omissions, and mistakes 2.System design flaws 3.Hardware implementation flaws, such.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Maintaining and Updating Windows Server 2008
BUILDING A SECURE STANDARD LIBRARY Information Assurance Project I MN Tajuddin hj. Tappe Supervisor Mdm. Rasimah Che Mohd Yusoff ASP.NET TECHNOLOGY.
Dec 13 th CS555 presentation1 Yiwen Wang --“Securing the DB may be the single biggest action an organization can take to protect its assets” David C. Knox.
The 10 Most Critical Web Application Security Vulnerabilities
Security Architecture Dr. Gabriel. Security Database security: –degree to which data is fully protected from tampering or unauthorized acts –Full understanding.
Web Application Security
Security Risk Management Marcus Murray, CISSP, MVP (Security) Senior Security Advisor, Truesec
OWASP Mobile Top 10 Why They Matter and What We Can Do
D ATABASE S ECURITY Proposed by Abdulrahman Aldekhelallah University of Scranton – CS521 Spring2015.
Threat Modeling for Cloud Computing (some slides are borrowed from Dr. Ragib Hasan) Keke Chen 1.
SEC835 Database and Web application security Information Security Architecture.
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.
Architecting secure software systems
A Framework for Automated Web Application Security Evaluation
Chapter 13 Processing Controls. Operating System Integrity Operating system -- the set of programs implemented in software/hardware that permits sharing.
Copyright © 2008, CIBER Norge AS 1 Web Application Security Nina Ingvaldsen 22 nd October 2008.
A Security Review Process for Existing Software Applications
OSI and TCP/IP Models And Some Vulnerabilities AfNOG th May 2011 – 10 th June 2011 Tanzania By Marcus K. G. Adomey.
Top Five Web Application Vulnerabilities Vebjørn Moen Selmersenteret/NoWires.org Norsk Kryptoseminar Trondheim
1 Vulnerability Assessment of Grid Software James A. Kupsch Computer Sciences Department University of Wisconsin Condor Week 2007 May 2, 2007.
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
nd Joint Workshop between Security Research Labs in JAPAN and KOREA Marking Scheme for Semantic- aware Web Application Security HPC.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Module 6: Designing Security for Network Hosts
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Lecture slides prepared for “Computer Security: Principles and Practice”, 3/e, by William Stallings and Lawrie Brown, Chapter 1 “Overview”. © 2016 Pearson.
Practical Threat Modeling for Software Architects & System Developers
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 9 1COMP9321, 15s2, Week.
Database Security Cmpe 226 Fall 2015 By Akanksha Jain Jerry Mengyuan Zheng.
OWASP Building Secure Web Applications And the OWASP top 10 vulnerabilities.
Introduction and Overview of Information Security and Policy By: Hashem Alaidaros 4/10/2015 Lecture 1 IS 332.
What is RISK?  requires vulnerability  likelihood of successful attack  amount of potential damage Two approaches:  threat modeling  OCTAVE Risk/Threat.
Chapter 19: Building Systems with Assurance Dr. Wayne Summers Department of Computer Science Columbus State University
INTRODUCTION TO COMPUTER & NETWORK SECURITY INSTRUCTOR: DANIA ALOMAR.
Chapter 1: Security Governance Through Principles and Policies
Security-Enhanced Linux Stephanie Stelling Center for Information Security Department of Computer Science University of Tulsa, Tulsa, OK
Database Security. Introduction to Database Security Issues (1) Threats to databases Loss of integrity Loss of availability Loss of confidentiality To.
Carrie Estes Collin Donaldson.  Zero day attacks  “zero day”  Web application attacks  Signing up for a class  Hardening the web server  Enhancing.
Threat Modeling: Employing the 5 Ws Security Series, December 13, 2013 Jeff Minelli Penn State ITS
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Database and Cloud Security
Threat Modeling for Cloud Computing
Information Security, Theory and Practice.
Threat Modeling - An Overview All Your Data is Mine
Secure Software Confidentiality Integrity Data Security Authentication
Evaluating Existing Systems
Evaluating Existing Systems
A Security Review Process for Existing Software Applications
Lecture 2 - SQL Injection
How to Mitigate the Consequences What are the Countermeasures?
WWW安全 國立暨南國際大學 資訊管理學系 陳彥錚.
Copyright Gupta Consulting, LLC.
Engineering Secure Software
Presentation transcript:

© Blackboard, Inc. All rights reserved. Developing Secure Software Bob Alcorn, Blackboard Inc.

About Forward-Looking Statements » We may make statements regarding our product development and service offering initiatives, including the content of future product upgrades, updates or functionality in development. While such statements represent our current intentions, they may be modified, delayed or abandoned without prior notice and there is no assurance that such offering, upgrades, updates or functionality will become available unless and until they have been made generally available to our customers.

Session Outline » Security Overview » Blackboard Academic Suite™ Security Infrastructure » Integrating Security Analysis into the Development Lifecycle » Some Vulnerabilities

Oh, … » A bug comes in from the field, demonstrating that code fails to check a permission, and allows a user to delete large swaths of data… » A client reports that failure validate input exposes the ability for a user to view the contents of any file on the system… » Investigation of client performance issues reveals that code performs an expensive operation, but doesn’t handle multiple, repeated requests, resulting in system response crashing… » …How do you proactively address these issues before you get the “oh, ” client call?

General Security Principles » Authentication » Who a user is » Authorization » What a user can do » Confidentiality » What a user can see » Non-repudiation » Did a user really perform an action » Availability » The system is ready for user activity

Authentication » Verifying users’ identities » The “factors” in authentication… » What a user “is” » What a user “has” » What a user “knows” » One vs. Multi-Factor Authentication » Blackboard as one-factor authentication: » Knows a username/password combination » ATM Card as two-factor authentication: » Has the card AND » Knows the PIN

Authorization » Once authenticated, verifying what a user can do » Mandatory Access Control » Determined by system or administrator policy » Discretionary Access Control » Determined by the data owner

Authorization – RBAC » Role-based access control » Form of mandatory access control » Blackboard uses “Contextual” RBAC for most operations » Role to use dependent on data being accessed; users can have multiple, even contradictory, roles that are selected based on which data is being accessed

Authorization – Discretionary Access Control » Access defined by the data owner » Access Control Lists » ACL is a collection of Access Control Entries » Principal » Privilege

Non-Repudiation » The ability to definitively state that a particular transaction has or has not occurred » Logging/Auditing » Signatures

Why Model Security? » “I already apply all those principles in my design…” » Bugs in your code… » Bugs in Bb code… » Bugs in infrastructure code…

Security in the Development Cycle » Security Analysis in Development is a Risk Mitigation Strategy » You will not find all the bugs… » You will not see all the vulnerabilities… » Your design will have errors of omission and oversight

Security Modeling » Techniques to evaluate an application’s overall security or assess the impact of a specific threat » Objectively identify vulnerabilities and address countermeasures » Integrated steps to take in the development process

Security Modeling – The Process » Define threats » Consider the data stored in the system, and how it can be misused » Consider the architecture of the system, and the opportunities it affords malicious users » Assess the Impact » You’ve found a vulnerability… what happens if someone actually finds it? How badly would you or your users be affected? » Implement a Countermeasure » Mitigate the risk to the best of your ability – code a preventative action, limit the exposure

Defining the Threats » Decompose your application to ask questions about how each use case or application component could go awry » STRIDE » Spoofing Identity » Tampering with Data » Repudiation » Information Disclosure » Denial of Service » Elevation of Privilege » Unlike DREAD, STRIDE is not for “scoring” threats, just for classification in general threat modeling

Assessing Vulnerabilities » DREAD aims to quantify a threat » Assign a value between 1 and 10 and use the mean » Damage Potential » 0 – no damage; 10 – complete system damage » Reproducibility » 0 – Almost impossible to reproduce; 10 – can reproduce at any time » Exploitability » 0 – Extremely sophisticated skills required; 10 – anybody with a browser » Affected Users » 0 – No users; 10 – All users (or beyond… think VA data leak) » Discoverability » 0 – Requires source code; 9 – details of exploit are in public domain; 10 – it’s in easily discoverable data in the application itself.

Assessing Vulnerabilities » Microsoft Threat Modeling » Identify objectives » Decompose application » Identify threats » Identify vulnerabilities » …repeat » Relies on specific terminology » Asset – resource of value » Threat – Undesired event, such as a data leak » Vulnerability – A specific code or configuration weakness that enables an exploit » Exploit – Attack that utilizes one or more vulnerabilities to realize a threat » Countermeasure – Attempt to reduce probability of attack and impact of a threat

Assessing Vulnerabilities » Components work together or independently » Full threat model will use components of the others, such as DREAD to prioritize the identified threats » Process is iterative » A full picture of the application cannot be generated all at once » Vulnerabilities can be found at any level of the application » For more information: OWASP » Open Web Application Security Project

OWASP Top-Ten List » Unvalidated Input » Broken Access Control » Broken Authentication and Session Management » Cross-Site Scripting » Buffer Overflow » Injection Flaws » Improper Error Handling » Insecure Storage » Application Denial of Service » Insecure Configuration Management Not all necessarily apply at all times/layers of the application…

Unvalidated Input » Client provided data is not properly validated for boundaries, format, etc. » Approaches: » Validate inputs before allowing business processing » Do not rely on client-side validation » Ensure correct error handling

Broken Session Management » The system does not properly track sessions, or authentication isn’t properly enforced » Approaches » Within the Building Block itself, treat this as Blackboard’s problem, unless you are creating a custom scheme (as in Web Service authentication)

Cross-Site Scripting (XSS) » A user can enter JavaScript that hijacks another user’s browser session » Approaches: » Do not allow markup (e.g., always render as plain text) » Validate/scrub input » blackboard.util.XSSUtil

Injection Flaws » A variant of unvalidated input: a script takes request parameters and uses them directly to construct a command passed to another process » Typically realized as SQL Injection – parameters such as column names or where clause fragments are explicitly used in statement construction » Approaches » Validate input » Always use symbolic values » If building statements, always use prepared statements

Improper Error Handling » Incomplete error handling which allows inappropriate data to bubble to an end user » Approaches » No unhandled exceptions » Use a webapp error handling policy

Denial of Service » A transaction can be abused or overloaded in such a way as to render the system unusable » Approaches » Performance engineering during development » Error handling

Others on the Top Ten » Buffer Overflows » Insecure Configuration Management » Insecure Storage » … still important to consider, but less prevalent for the Building Blocks developer

…but wait! There’s More! » Unnecessary and Malicious Code » Broken Thread Safety and Concurrent Programming » Unauthorized Information Gathering » Accountability Problems and Weak Logging » Data Corruption » Broken Caching, Pooling, and Reuse

Looking Ahead » Apply threat modeling to the application development cycle » During requirements and design, understand the risks and threats » Use a method to evaluate the impact and prioritize; ideally looking at each vulnerability against each asset/threat » Identify critical transactions and risks » Know the countermeasures » Awareness leads to coding practices that eliminate most vulnerabilities – e.g., unvalidated input or code-injection flaws » Other tools to help » XSSUtil – to scrub for potentially harmful markup » Access Control infrastructure to determine trust (e.g., some users are allowed to enter markup)

Questions?