The OWASP Foundation Web App Access Control Design.

Slides:



Advertisements
Similar presentations
Application Security Best Practices At Microsoft Ensuring the lowest possible exposure and vulnerability to attacks Published: January 2003.
Advertisements

OWASP’s Ten Most Critical Web Application Security Vulnerabilities
OWASP Secure Coding Practices Quick Reference Guide
Operating System Security
Forms Authentication, Users, Roles, Membership Ventsislav Popov Crossroad Ltd.
APPLICATION DEVELOPMENT SECURE CODING WORKSHOP JIM MANICO VP, Security Architecture MARCH 2013.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Bypassing Client-Side Protection CSE 591 – Security and Vulnerability Analysis Spring 2015 Adam Doupé Arizona State University
WebGoat & WebScarab “What is computer security for $1000 Alex?”
Access Control Methodologies
Copyright © 2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Andrew Stone Common Security.
Securing the Broker Pattern Patrick Morrison 12/08/2005.
Security Issues and Challenges in Cloud Computing
Environmental Council of States Network Authentication and Authorization Services The Shared Security Component February 28, 2005.
Online Security Tuesday April 8, 2003 Maxence Crossley.
Information Networking Security and Assurance Lab National Chung Cheng University The Ten Most Critical Web Application Security Vulnerabilities Ryan J.W.
Using Internet Information Server And Microsoft ® Internet Explorer To Implement Security On The Intranet HTTP.
Customer confidential 1 Privilege Management Sean Moore Solutions Specialist.
Jonas Thomsen, Ph.d. student Computer Science University of Aarhus Best Practices and Techniques for Building Secure Microsoft.
Web App Access Control Design
Handling Security Threats in Kentico CMS Karol Jarkovsky Sr. Solution Architect Kentico Software
The 10 Most Critical Web Application Security Vulnerabilities
Designing Security In Web Applications Andrew Tomkowiak 10/8/2013 UW-Platteville Software Engineering Department
Web Application Vulnerabilities Checklist. EC-Council Parameter Checklist  URL request  URL encoding  Query string  Header  Cookie  Form field 
Security Risk Management Marcus Murray, CISSP, MVP (Security) Senior Security Advisor, Truesec
Web-based Document Management System By Group 3 Xinyi Dong Matthew Downs Joshua Ferguson Sriram Gopinath Sayan Kole.
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.
Introduction to Application Penetration Testing
OWASP Zed Attack Proxy Project Lead
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.
Forms Authentication, Users, Roles, Membership Svetlin Nakov Telerik Corporation
W. Sliwinski – eLTC – 7March08 1 LSA & Safety – Integration of RBAC and MCS in the LHC control system.
SSL / TLS in ITDS Arun Vishwanathan 23 rd Dec 2003.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Copyright 2007 © 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 5 “Database and Cloud Security”.
1 22 August 2001 The Security Architecture of the M&M Mobile Agent Framework P. Marques, N. Santos, L. Silva, J. Silva CISUC, University of Coimbra, Portugal.
Chapter 2. Core Defense Mechanisms. Fundamental security problem All user input is untrusted.
1 Maryland ColdFusion User Group Session Management December 2001 Michael Schuler
Lecture 16 Page 1 Advanced Network Security Perimeter Defense in Networks: Virtual Private Networks Advanced Network Security Peter Reiher August, 2014.
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.
SEC835 Runtime authentication Secure session management Secure use of cryptomaterials.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
New & Improved Events List Relationships and Joins Large List Support Field & List Item Validation.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Windows Role-Based Access Control Longhorn Update
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 16 Page 1 CS 236 Online Web Security CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Lecture 18 Page 1 CS 111 Online OS Use of Access Control Operating systems often use both ACLs and capabilities – Sometimes for the same resource E.g.,
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Operating Systems Security
February, TRANSCEND SHIRO-CAS INTEGRATION ANALYSIS.
The OWASP Foundation guarding your applications Koen Vanderloock
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Securing Web Applications Lesson 4B / Slide 1 of 34 J2EE Web Components Pre-assessment Questions 1. Identify the correct return type returned by the doStartTag()
ASP.NET 2.0 Security Alex Mackman CM Group Ltd
Business Objects XIr2 Windows NT Authentication Single Sign-on 18 August 2006.
Lecture 2 Page 1 CS 236 Online Security Policies Security policies describe how a secure system should behave Policy says what should happen, not how you.
Windows Active Directory – What is it? Definition - Active Directory is a centralized and standardized system that automates network management of user.
James F. Fox MENA Cyber Security Practice Lead Presenters Cyber Security in a Mobile and “Always-on” World Booz | Allen | Hamilton.
Database and Cloud Security
Identity and Access Management
Outline Basic concepts in computer security
Security & .NET 12/1/2018.
Presentation transcript:

The OWASP Foundation Web App Access Control Design

The OWASP Foundation Access Control Anti-Patterns Hard-coded role checks in application code Lack of centralized access control logic Untrusted data driving access control decisions Access control that is “open by default” Lack of addressing horizontal access control in a standardized way (if at all) Access control logic that needs to be manually added to every endpoint in code Access Control that is “sticky” per session Access Control that requires per-user policy

The OWASP Foundation What is Access Control? Authorization is the process where a system determines if a specific user has access to a resource Permission: Represents app behavior only Entitlement: What a user is actually allowed to do Principle/User: Who/what you are entitling Implicit Role: Named permission, user associated if (user.isRole(“Manager”)); Explicit Role: Named permission, resource associated if (user.isAuthorized(“report:view:3324”);

The OWASP Foundation Attacks on Access Control Vertical Access Control Attacks A standard user accessing administration functionality Horizontal Access Control Attacks Same role, but accessing another user's private data Business Logic Access Control Attacks Abuse of one or more linked activities that collectively realize a business objective

The OWASP Foundation Access Controls Impact Loss of accountability Attackers maliciously execute actions as other users Attackers maliciously execute higher level actions Disclosure of confidential data Compromising admin-level accounts often results in access to user’s confidential data Data tampering Privilege levels do not distinguish users who can only view data and users permitted to modify data

The OWASP Foundation Hard-Coded Roles void editProfile(User u, EditUser eu) { if (u.isManager()) { editUser(eu) } How do you change the policy of this code?

The OWASP Foundation Hard-Coded Roles if ((user.isManager() || user.isAdministrator() || user.isEditor()) && user.id() != 1132)) { //execute action }

The OWASP Foundation Hard-Coded Roles Makes “proving” the policy of an application difficult for audit or Q/A purposes Any time access control policy needs to change, new code need to be pushed RBAC is often not granular enough Fragile, easy to make mistakes

The OWASP Foundation Order- Specific Operations Imagine the following parameters Can an attacker control the sequence? Can an attacker abuse this with concurrency?

The OWASP Foundation Rarely Depend on Untrusted Data Never trust request data for access control decisions Never make access control decisions in JavaScript Never make authorization decisions based solely on: hidden fields cookie values form parameters URL parameters anything else from the request Never depend on the order of values sent from the client

The OWASP Foundation Best Practice: Centralized AuthZ Define a centralized access controller ACLService.isAuthorized(PERMISSION_CONSTANT) ACLService.assertAuthorized(PERMISSION_CONSTANT) Access control decisions go through these simple API’s Centralized logic to drive policy behavior and persistence May contain data-driven access control policy information

The OWASP Foundation Best Practice: Code to the Activity if (AC.hasAccess(“article:edit:12”)) { //execute activity } Code it once, never needs to change again Implies policy is centralized in some way Implies policy is persisted in some way Requires more design/work up front to get right

The OWASP Foundation Using a Centralized Access Controller In Presentation Layer if (isAuthorized(Permission.VIEW_LOG_PANEL)) { Here are the logs }

The OWASP Foundation Using a Centralized Access Controller In Controller try (assertAuthorized(Permission.DELETE_USER)) { deleteUser(); } catch (Exception e) { //SOUND THE ALARM }

The OWASP Foundation SQL Integrated Access Control Example Feature This SQL would be vulnerable to tampering select * from messages where messageid = Ensure the owner is referenced in the query! select * from messages where messageid = AND messages.message_owner =

The OWASP Foundation Data Contextual Access Control Data Contextual / Horizontal Access Control API examples: ACLService.isAuthorized(“car:view:321”) ACLService.assertAuthorized(“car:edit:321”) Long form: Is Authorized(user, Perm.EDIT_CAR, Car.class, 14) Check if the user has the right role in the context of a specific object Protecting data a the lowest level!

The OWASP Foundation Apache SHIRO Apache Shiro is a powerful and easy to use Java security framework. Offers developers an intuitive yet comprehensive solution to authentication, authorization, cryptography, and session management. Built on sound interface-driven design and OO principles. Enables custom behavior. Sensible and secure defaults for everything.

The OWASP Foundation Solving Real World Access Control Problems with the Apache Shiro The Problem Web Application needs secure access control mechanism The Solution if ( currentUser.isPermitted( "lightsaber:wield" ) ) { log.info("You may use a lightsaber ring. Use it wisely."); } else { log.info("Sorry, lightsaber rings are for schwartz masters only."); } if ( currentUser.isPermitted( "lightsaber:wield" ) ) { log.info("You may use a lightsaber ring. Use it wisely."); } else { log.info("Sorry, lightsaber rings are for schwartz masters only."); }

The OWASP Foundation Solving Real World Access Control Problems with the Apache Shiro The Problem Web Application needs to secure access to a specific object The Solution if ( currentUser.isPermitted( "winnebago:drive:" + win_id ) ) { log.info("You are permitted to 'drive' the 'winnebago' with license plate (id) 'eagle5'. Here are the keys - have fun!"); } else { log.info("Sorry, you aren't allowed to drive the 'eagle5' winnebago!"); } if ( currentUser.isPermitted( "winnebago:drive:" + win_id ) ) { log.info("You are permitted to 'drive' the 'winnebago' with license plate (id) 'eagle5'. Here are the keys - have fun!"); } else { log.info("Sorry, you aren't allowed to drive the 'eagle5' winnebago!"); }