Copyright 2010 Justin C. Klein Keane Balancing Security & Usability The link between interface and security Justin C. Klein Keane

Slides:



Advertisements
Similar presentations
©2009 Justin C. Klein Keane PHP Code Auditing Session 3 – Tools of the Trade & Crafting Malicious Input Justin C. Klein Keane
Advertisements

1 Chapter 8 Fundamentals of System Security. 2 Objectives In this chapter, you will: Understand the trade-offs among security, performance, and ease of.
©2009 Justin C. Klein Keane PHP Code Auditing Session 5 XSS & XSRF Justin C. Klein Keane
©2009 Justin C. Klein Keane PHP Code Auditing Session 4.3 – Information Disclosure & Authentication Bypass Justin C. Klein Keane
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
WebGoat & WebScarab “What is computer security for $1000 Alex?”
Cross Site Scripting a.k.a. XSS Szymon Siewior. Disclaimer Everything that will be shown, was created for strictly educational purposes. You may reuse.
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
Configuring Windows Vista Security Chapter 3. IE7 Pop-up Blocker Pop-up Blocker prevents annoying and sometimes unsafe pop-ups from web sites Can block.
It’s always better live. MSDN Events Security Best Practices Part 2 of 2 Reducing Vulnerabilities using Visual Studio 2008.
Chapter 9 Web Applications. Web Applications are public and available to the entire world. Easy access to the application means also easy access for malicious.
It’s always better live. MSDN Events Securing Web Applications Part 1 of 2 Understanding Threats and Attacks.
Downloading and Installing AutoCAD Architecture 2015 This is a 4 step process 1.Register with the Autodesk Student Community 2.Downloading the software.
Jonas Thomsen, Ph.d. student Computer Science University of Aarhus Best Practices and Techniques for Building Secure Microsoft.
Varun Sharma Security Engineer | ACE Team | Microsoft Information Security
New School Websites Teacher Pages. Visit the SCUSD Website for videos tutorials: For more information.
Designing Security In Web Applications Andrew Tomkowiak 10/8/2013 UW-Platteville Software Engineering Department
Lesson 46: Using Information From the Web copy and paste information from a Web site print a Web page download information from a Web site customize Web.
Lesson 46: Using Information From the Web copy and paste information from a Web site print a Web page download information from a Web site customize Web.
Website Design. Designing and creating different elements involved in developing a website for e- commerce can help you identify and describe the components.
Web-based Document Management System By Group 3 Xinyi Dong Matthew Downs Joshua Ferguson Sriram Gopinath Sayan Kole.
Hosted Exchange The purpose of this Startup Guide is to familiarize you with ExchangeDefender's Exchange and SharePoint Hosting. ExchangeDefender.
An Introduction to Content Management. By the end of the session you will be able to... Explain what a content management system is Apply the principles.
Web Security Demystified Justin C. Klein Keane Sr. InfoSec Specialist University of Pennsylvania School of Arts and Sciences Information Security and Unix.
Lecture 7 Page 1 CS 236 Online Password Management Limit login attempts Encrypt your passwords Protecting the password file Forgotten passwords Generating.
1 Infrastructure Hardening. 2 Objectives Why hardening infrastructure is important? Hardening Operating Systems, Network and Applications.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Systems Analysis and Design in a Changing World, 6th Edition
Drupal Security Securing your Configuration Justin C. Klein Keane University of Pennsylvania School of Arts and Sciences Information Security and Unix.
Prevent Cross-Site Scripting (XSS) attack
CSCI 6962: Server-side Design and Programming Secure Web Programming.
Chapter 9 Web Applications. Web Applications are public and available to the entire world. Easy access to the application means also easy access for malicious.
Web Browser Security Prepared By Mohammed EL-Batta Mohammed Soubih Supervised By Eng. Eman alajrami Explain Date 10. may University of Palestine.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Copyright Justin C. Klein Keane Drupal Threat Landscape.
Lecture 16 Page 1 CS 236 Online SQL Injection Attacks Many web servers have backing databases –Much of their information stored in a database Web pages.
3-Protecting Systems Dr. John P. Abraham Professor UTPA.
Security & Usability Charles Frank. Convenience is the Antithesis to Security  Computer systems must employ mechanisms that are difficult to use!
Microsoft Internet Explorer and the Internet Using Microsoft Explorer 5.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
Downloading and Installing Autodesk Revit 2016
Simplify TeleHealth - Copyright 2012 Emerge.MD inc - Confidential Single Sign On via Active Directory Federation Services 4.6 Release (March 2014) Updates.
Week 10-11c Attacks and Malware III. Remote Control Facility distinguishes a bot from a worm distinguishes a bot from a worm worm propagates itself and.
Web Applications Testing By Jamie Rougvie Supported by.
Downloading and Installing Autodesk Inventor Professional 2015 This is a 4 step process 1.Register with the Autodesk Student Community 2.Downloading the.
Lecture 16 Page 1 CS 236 Online Web Security CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Mtivity Client Support System Quick start guide. Mtivity Client Support System We are very pleased to announce the launch of a new Client Support System.
MEMBERSHIP AND IDENTITY Active server pages (ASP.NET) 1 Chapter-4.
Securing Passwords Against Dictionary Attacks Presented By Chad Frommeyer.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
SCSC 455 Computer Security Chapter 3 User Security.
CHAPTER 2 Laws of Security. Introduction Laws of security enable user make the judgment about the security of a system. Some of the “laws” are not really.
Computer Security By Duncan Hall.
Usability Olaa Motwalli CIS764, DR Bill – KSU. Overview Usability factors. Usability guidelines.  Software application.  Website. Common mistakes. Good.
Introduction: Introduction: As technology advances, we have cheaper and easier ways to stay connected to the world around us. We are able to order almost.
Sessions and cookies (part 2) MIS 3501, Fall 2015 Brad N Greenwood, PhD Department of MIS Fox School of Business Temple University 11/19/2015.
1 CSE 403 Web Patterns and Design These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides written by Valentin.
Slide #13-1 Design Principles CS461/ECE422 Computer Security I Fall 2008 Based on slides provided by Matt Bishop for use with Computer Security: Art and.
1 Saltzer [1974] and later Saltzer and Schroeder [1975] list the following principles of the design of secure protection systems, which are still valid:
By Collin Donaldson. Hacking is only legal under the following circumstances: 1.You hack (penetration test) a device/network you own. 2.You gain explicit,
NETWORK SECURITY LAB 1170 REHAB ALFALLAJ CT1406. Introduction There are a number of technologies that exist for the sole purpose of ensuring that the.
Windows Vista Configuration MCTS : Internet Explorer 7.0.
Downloading and Installing GRASP-AF Workshop Ian Robson Information Analyst, North of England Cardiovascular Network.
SlideSet #20: Input Validation and Cross-site Scripting Attacks (XSS) SY306 Web and Databases for Cyber Operations.
USABILITY Ben Aaron.
IT Security  .
Copyright Justin C. Klein Keane
Technical Integration Guide
Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Presentation transcript:

Copyright 2010 Justin C. Klein Keane Balancing Security & Usability The link between interface and security Justin C. Klein Keane Twitter: madirish2600

Copyright 2010 Justin C. Klein Keane About Me I assume you don't care because you're already here I suck at creating slide decks I suck at design Why should I be qualified to talk about UI then? – I use UI flaws to develop attacks all the time >:)

Copyright 2010 Justin C. Klein Keane How to Use UI for Security Because is deprecated: <!-- p#blinking {text-decoration: blink;} -->

Copyright 2010 Justin C. Klein Keane Outline Attacks that leverage UI How to use UI to your advantage – For end users – For application administration – Pitfalls! Overall architectural approaches

Copyright 2010 Justin C. Klein Keane User Interface (UI) and Security Two Points: – Security is very much related to usability – Web applications follow models of user expectations (common web paradigms) In this talk I'd like to highlight – How attackers are exploiting UI – Importance of UI in application security

Copyright 2010 Justin C. Klein Keane Principles of Good Web Application User Interface “Don't make me think” - Steve Krug's first law of usability Use of web pages should be self evident Easily recognizable page elements Intuitive navigation Conformity to user expectations

Copyright 2010 Justin C. Klein Keane Where this falls down Attackers know that your efforts to enhance usability utilize accepted conventions Attackers will exploit these conventions to their advantage Classic confidence trick

Copyright 2010 Justin C. Klein Keane Example 1 - Phishing

Copyright 2010 Justin C. Klein Keane Example 2 – Fake Websites Attackers clone your site using a tool like the Social Engineering Toolkit (SET) Attackers trick victims into visiting the site The site looks exactly like the legitimate one Victims enter their credentials, which are stored Victim is then redirected to your site Attacking the users rather than the auth mechanism

Copyright 2010 Justin C. Klein Keane Abuse of UI Example 3 – Rogue AV

Copyright 2010 Justin C. Klein Keane UI Problems Unfortunately the UI problems in these scenarios exist in the application, not your site Clues to users aren't obvious or can be spoofed – Use lock as the favicon – Use deeply nested domain name – DNS spoofing The user can authenticate to your app, but can your app authenticate to the user?

Copyright 2010 Justin C. Klein Keane Solutions don't involve UI The solution to many of these issues is SSL Normal users have no idea what SSL is (or how it works) There are no easy visual clues to help users leverage SSL Properly used SSL requires users to type domain names in, using SSL prefix ' For more check out the OWASP TLS Cheat Sheet

Copyright 2010 Justin C. Klein Keane Failed Attempts to Use UI Secondary mechanisms – “Your icon” picture recognition – Onscreen keyboard – Third party authentication (OpenID) Why they fail – Will users realize it isn't there? – Malware adapts to do screen captures or intercept DNS calls Can these help? Sure, but they're not a solution

Copyright 2010 Justin C. Klein Keane XSS – the UI Problem Cross site scripting (XSS) is probably the most dangerous vulnerability in web apps today It is also the most underrated What is cross site scripting – Arbitrary script injection – Stored, Reflected, DOM Interface created from user input can become dangerous! Consider content your users provide

Copyright 2010 Justin C. Klein Keane What is XSS User supplied data is displayed in the web application The app fails to strip out content that could be used to alter display properties Typical example is that the user causes Javascript to execute when page is rendered Controls to limit users ability to manipulate content interface are missing

Copyright 2010 Justin C. Klein Keane OMFG!!!

Copyright 2010 Justin C. Klein Keane Consequences of XSS What is possible with XSS? – Annoying JavaScript pop-up – Arbitrary script injection! Steal the user cookies Inject an iframe to a remote source Reference a (vulnerable) third party plugin – Flash object, Java applet, PDF XSS can quickly become a client side exploitation attempt!

Copyright 2010 Justin C. Klein Keane What can we do? There are steps you can take to enhance security using UI

Copyright 2010 Justin C. Klein Keane Building UI to Enhance Security Despite these problems, UI can be used to enhance security Security and usability are often expressed as dichotomous Good security starts with good usability

Copyright 2010 Justin C. Klein Keane Psychological Acceptability Saltzer & Schroeder 1975 The Protection of Information in Computer Systems Examined several 'design principles' associated with security Psychological acceptability is the principle that the closer security conforms to user expectations the better

Copyright 2010 Justin C. Klein Keane To Quote: h) Psychological acceptability: It is essential that the human interface be designed for ease of use, so that users routinely and automatically apply the protection mechanisms correctly. Also, to the extent that the user's mental image of his protection goals matches the mechanisms he must use, mistakes will be minimized. If he must translate his image of his protection needs into a radically different specification language, he will make errors.

Copyright 2010 Justin C. Klein Keane Psychological Acceptability Means Users won't jump through hoops if they don't understand why such measures are necessary Users will take advantage of security that doesn't impede their work Subtext – make your users allies in maintaining a secure application

Copyright 2010 Justin C. Klein Keane Strategies

Copyright 2010 Justin C. Klein Keane UI, Trust, and Security Trust is an essential element of security To encourage user trust be sure to: – Use good design – Ensure ease of use – Provide a professional image – Don't try and deceive users with ad content – Be consistent – Provide explanations about your security and privacy practices

Copyright 2010 Justin C. Klein Keane Make Users into Allies Provide simple mechanisms for users to assist with security Let users audit their own activity: – Your last login was at 12:34 PM on April 1, 2010 from yourmachine.dhcp-phila.verizon.net Users will audit their own activity a lot more aggressively than you will

Copyright 2010 Justin C. Klein Keane Make Security Easy Expectations should be clear Sometimes users will default to patterns of behavior – I see an account provisioning form – I fill out the form and hit submit – I probably don't read any of the fine print Don't confound users choices or they'll choose worse ones! Provide (dynamic) suggestions

Copyright 2010 Justin C. Klein Keane Example

Copyright 2010 Justin C. Klein Keane A Word (Rant) on Cookies Don't request your users have cookies enabled Check for cookies yourself – If they're enabled save the text – If they're not enabled let the user know politely Cookies, like SSL, is one of those technologies most people shouldn't be expected to understand

Copyright 2010 Justin C. Klein Keane Keys to Success Make feedback immediate Make feedback clear and easy to understand Try to accommodate users – Check permutations to cut down on back/forth Give hints to help users – Password security display If you do HCI testing – include security!

Copyright 2010 Justin C. Klein Keane Use UI to Protect Don't provide unnecessary information to unauthenticated users Make security context clear – Change UI elements when users authenticate Protect services with authentication – “You must log in to search for other users” Stagger responsiveness to protect against automation

Copyright 2010 Justin C. Klein Keane Provide Users with Security Controls Provide users with easy methods to delegate and revoke access and authority For instance, allow users to configure permission to view content or profile information Make such security controls obvious and easy to use Such controls promote ownership

Copyright 2010 Justin C. Klein Keane Enumerate Consequences If users make a choice that will have security consequences make sure those consequences are clearly enumerated Be judicious though, avoid warning fatigue! Don't provide interface for options that are not allowed, this will frustrate users Use proximity rather than aggressiveness

Copyright 2010 Justin C. Klein Keane Remediate Rather than Warn “Warning: you are about to download a file that might contain a virus or other executable content” “Warning: you are about to view content which could contain malicious scripts” Don't expose your users to risk, fix the problems or don't include the features

Copyright 2010 Justin C. Klein Keane Error Messages Error message should be – Helpful – Actionable Good error messages help your users debug your applications Bad error messages enable attackers

Copyright 2010 Justin C. Klein Keane Example: Bad Error Message An error occurred – Error code Please contact an administrator with details of this message.

Copyright 2010 Justin C. Klein Keane Example: Worse Error Message Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /var/www/html/test.php on line 9 Call Stack: {main}() /var/www/html/test.php: mysql_connect() /var/www/html/test.php:9 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Copyright 2010 Justin C. Klein Keane Example: Good Error Message There was a problem processing your request. A notice has been sent to the server administrators about this issue. If you would like further details about this error or to provide further details please We apologize for the inconvenience. The data you submitted was invalid, it must be in an integer format, you supplied 'chars'

Copyright 2010 Justin C. Klein Keane Beware: Don't Provide too Much “The username you entered does not exist” “The password you entered does not match” “The password for this account has been mailed to

Copyright 2010 Justin C. Klein Keane Application Administration Recognize that in most applications there are two classes of users: – End users – Application administrators So far we've mostly discussed the former, now let's discuss the latter

Copyright 2010 Justin C. Klein Keane Make Security Configuration Easy If your application has a complex security configuration model try to simplify it Too many options confound administrators and they tend to 'fail open' Provide tools to help make your tool secure!

Copyright 2010 Justin C. Klein Keane Group Security UI Thoughtfully Providing security may mean adding extra controls Take special care to group these controls in meaningful (and obvious ways) Obscure or difficult UI can guarantee that controls are not utilized If possible, provide help in the application itself such as context specific help links or FAQ's Use expressive icons or other UI elements

Copyright 2010 Justin C. Klein Keane What the?!?

Copyright 2010 Justin C. Klein Keane Provide Security Interfaces Build easy to use reporting mechanisms for administrators Don't track security data in difficult to review places (dusty log files) Make important security events visually apparent Provide tools with easy to use UI to aid in security, reporting, and investigation

Copyright 2010 Justin C. Klein Keane Pitfalls

Copyright 2010 Justin C. Klein Keane Onerous is the Enemy of Security Forcing users to change their passwords Making password complexity requirements that contravene chosen passwords Making users think up wacky questions Asking user to remember “the chicken” Overloading users with messages On, and on

Copyright 2010 Justin C. Klein Keane Results of Confounding Users If users are not clear about security requirements or they feel they are onerous – Users will ignore security (reuse bad passwords) – Users will forget security (raising help calls) – Users may get confused and degrade your security (leaving post-it notes or posting details to public forums) – Ultimately security will fail in it's functional purpose

Copyright 2010 Justin C. Klein Keane Don't Revoke User Controls! Users exercise a certain level of control over applications via their browsers Don't revoke these controls or you risk degrading trust Allow users to use browser buttons Allow users to raise, lower, resize, close windows and view window toolbars Don't block page elements with invisible divs

Copyright 2010 Justin C. Klein Keane Don't Forget Accessibility Be sure any security feature you implement is 508 compliant If it isn't you may alienate users Be sure though that mechanisms are backwards vulnerable! If accessibility features are less secure guess which version attackers will target?

Copyright 2010 Justin C. Klein Keane Architecture Security from the top down

Copyright 2010 Justin C. Klein Keane Principle of Least Privilege Don't give users any more privilege than required This limits damage a user can do It also makes for a cleaner interface, without useless elements cluttering up display

Copyright 2010 Justin C. Klein Keane Make Secure the Default If you design applications that implement security mechanisms, make sure they install with these mechanisms enabled Don't rely on users to have to configure security, make all reasonable configurations first, then allow admins to relax security posture

Copyright 2010 Justin C. Klein Keane Make Security Open Provide an easy security contact for your application Encourage feedback on security from your users Engage security researchers or vulnerability discoverers, maintain communication, and elicit help in resolution

Copyright 2010 Justin C. Klein Keane When Security Fails Trust is a key component of any application security In the face of security breach try to be transparent with your users Inform users about what went wrong and how you are correcting the issue

Copyright 2010 Justin C. Klein Keane Bake Security In It is critical to the success of any security feature that it be included by design Don't bolt security on once you're done – Doing so will probably result in interrupting flow to enforce security (not psychologically acceptable) Include security in your initial information architecture (IA) and design Consult with a security specialist if possible to develop threat models and countermeasures

Copyright 2010 Justin C. Klein Keane References W3C Web Security Context: User Interface Guidelines ui/ ui/ The Protection of Information in Computer Systems by Jerome Saltzer and Michael Schroeder Social Engineering Toolkit Cranor & Garfinkle eds. Security and Usability,Cambridge: O'Reilly, 2005 OWASP TLS Protection Cheat Sheet -

Copyright 2010 Justin C. Klein Keane Thank you Questions?