Pete LePage Senior Product Manager Microsoft Corporation SESSION CODE: WEB301.

Slides:



Advertisements
Similar presentations
Nick Feamster CS 6262 Spring 2009
Advertisements

Cross-site Request Forgery (CSRF) Attacks
Ron Jacobs Technical Evangelist Microsoft Corporation SESSION CODE: DEV207.
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.
2 Internet Explorer 8: Pushing the Web Forward Travis Leithead Program Manager, IE Team.
Jonas Thomsen, Ph.d. student Computer Science University of Aarhus Best Practices and Techniques for Building Secure Microsoft.
 Proxy Servers are software that act as intermediaries between client and servers on the Internet.  They help users on private networks get information.
Lab 3 Cookie Stealing using XSS Kara James, Chelsea Collins, Trevor Norwood, David Johnson.
Jason Tolley Technical Director ROK Technology Pty Ltd SESSION CODE: WEM305.
Varun Sharma Security Engineer | ACE Team | Microsoft Information Security
Martin Kruliš by Martin Kruliš (v1.0)1.
Introduction to SQL 2005 Security Nick Ward SQL Server Specialist Nick Ward SQL Server Specialist
Session 11: Security with ASP.NET
Origins, Cookies and Security – Oh My! John Kemp, Nokia Mobile Solutions.
Prevent Cross-Site Scripting (XSS) attack
+ Websites Vulnerabilities. + Content Expand of The Internet Use of the Internet Examples Importance of the Internet How to find Security Vulnerabilities.
CSCI 6962: Server-side Design and Programming Secure Web Programming.
Juergen Thomas Principal Program Manager Microsoft Corporation SESSION CODE: DAT314.
Securing Web Applications. IE 7 significantly reduced attack surface against the browser and local machine…
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.
© 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
Ashwin Sarin Program Manager Microsoft Corporation SESSION CODE: COS204.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Securing a Microsoft ASP.NET Web Application.
Maciej Pilecki Consultant, SQL Server MVP Project Botticelli Ltd. SESSION CODE: DAT403.
Olivier Bloch Technical Evangelist Microsoft Corporation SESSION CODE: WEM307.
Boris Jabes Senior Program Manager Microsoft Corporation SESSION CODE: DEV319 Scale & Productivity in Visual C
Peter Provost Sr. Program Manager Microsoft Corporation SESSION CODE: DEV403.
Top Five Web Application Vulnerabilities Vebjørn Moen Selmersenteret/NoWires.org Norsk Kryptoseminar Trondheim
Bradley Millington Senior Program Manager Microsoft Corporation SESSION CODE: WEB 306.
Suhail Dutta Program Manager Microsoft Corporation SESSION CODE: DEV402.
Matt winkler program manager microsoft corporation SESSION CODE: ASI303.
Aaron Skonnard & Keith Brown Cofounders, Pluralsight SESSION CODE: ASI308 Programming AppFabric: Moving.NET to the Cloud.
SQL INJECTIONS Presented By: Eloy Viteri. What is SQL Injection An SQL injection attack is executed when a web page allows users to enter text into a.
Web Applications Testing By Jamie Rougvie Supported by.
Satya SK Jayanty Director & Principal Architect D BI A Solutions Peter Saddow Senior Program Manager Microsoft Corporation -SQL Server SESSION CODE: DAT312.
Thomas Deml Principal Program Manager Web Platform and Tools Microsoft Corporation SESSION CODE: WEB308.
THE DEVIL IS IN THE (IMPLEMENTATION) DETAILS: AN EMPIRICAL ANALYSIS OF OAUTH SSO SYSTEMS SAN-TSAI SUN & KONSTANTIN BEZNOSOV PRESENTED BY: NAZISH KHAN COMPSCI.
Jeff King Senior Program Manager, Visual Studio Microsoft Corporation SESSION CODE: WEB305.
Lori Dirks Expression Community Manager Microsoft Corporation SESSION CODE: WEB309.
University of Central Florida The Postman Always Rings Twice: Attacking & Defending postMessage in HTML5 Websites Ankur Verma University of Central Florida,
Chris Mayo Microsoft Corporation SESSION CODE: UNC207.
Web Security Lesson Summary ●Overview of Web and security vulnerabilities ●Cross Site Scripting ●Cross Site Request Forgery ●SQL Injection.
Olivier Bloch Technical Evangelist Microsoft Corporation SESSION CODE: WEM308.
Richard Campbell Co-Founder Strangeloop Networks SESSION CODE: WEB315.
Reza Chitsaz Senior Program Manager Microsoft Corporation SESSION CODE: DEV302 Building a SharePoint Collaboration Application in Visual Studio 2010.
Andrew Connell, MVP Developer, Instructor & Author Critical Path Training, LLC. SESSION CODE: OSP305.
David Ollason Lead Program Manager Microsoft Corporation SESSION CODE: UNC322 The New Communicator “14” Platform.
BIO202 | Building Effective Data Visualizations and Maps with Microsoft SQL Server 2008 Reporting Services BIU08-INT | Using.
Ted Pattison Author / Instructor Critical Path Training SESSION CODE: OSP315.
Martin Woodward Program Manager Microsoft Corporation SESSION CODE: DEV308.
SESSION CODE: COS301. So what do we do?
David A. Carley Senior SDE Microsoft Corporation SESSION CODE: DEV318.
By: Paul D. Sheriff or SESSION CODE: WCL206.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
Christophe Fiessinger & Jan Kalis Senior Technical Product Manager Microsoft Corporation SESSION CODE: OSP209.
Ken Getz Senior Consultant MCW Technologies, LLC SESSION CODE: WCL202.
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,
Tobias Ternstrom Senior Program Manager Lead SQL Server Engine SESSION CODE: DAT404.
Luke Hoban Senior Program Manager Microsoft Corporation SESSION CODE: DEV307.
Windows Vista Configuration MCTS : Internet Explorer 7.0.
Andrew Connell, MVP Developer, Instructor & Author Critical Path Training, LLC. SESSION CODE: OSP319.
Stephen Forte Chief Strategy Officer Telerik stephenforte.net SESSION CODE: DEV303 Building Data Driven RESTful Applications.
Building Secure ColdFusion Applications
Web Application Vulnerabilities
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
World Wide Web policy.
CSC 495/583 Topics of Software Security Intro to Web Security
A Lap Around Internet Explorer 9 For Developers
Presentation transcript:

Pete LePage Senior Product Manager Microsoft Corporation SESSION CODE: WEB301

A Little History Securing Your Infrastructure Trust User Input At Your Own Peril SQL Injection Attacks Cross Site Scripting Attacks ClickJacking Attacks Native JSON Building Mash-Ups

Making The Correct Tradeoffs is Hard

Internet Explorer 8: Secure by default Security Feature Improvements Secure Features Provide Security and Compatibility Create security features that address the top vulnerabilities today and in the future Reduce attack surface of existing code by closing legacy holes Apply security-focused rigors against new code Users understand that improved security is a reason to upgrade

A Little History Securing Your Infrastructure Trust User Input At Your Own Peril SQL Injection Attacks Cross Site Scripting Attacks ClickJacking Attacks Native JSON Building Mash-Ups

Creating Secure Connections

Help users to quickly and accurately determine whether or not they are visiting the expected site

Supported by all major browsers Over 10,000 sites with extended validation certificates

...

Ensure you’re using SSL when appropriate Check users aren’t being prompted for mixed content? Make sure you’re servers up to date Use best-practices for user accounts, and passwords

A Little History Securing Your Infrastructure Trust User Input At Your Own Peril SQL Injection Attacks Cross Site Scripting Attacks ClickJacking Attacks Native JSON Building Mash-Ups

Client-side string sanitization, based on the Microsoft Anti-XSS Library. window.toStaticHTML("This is some HTML with embedded script following... alert('bang!'); !"); Returns: This is some HTML with embedded script following... !

Don’t rely on client side validation for input Use toStaticHTML() as one method to sanitize data

A Little History Securing Your Infrastructure Trust User Input At Your Own Peril SQL Injection Attacks Cross Site Scripting Attacks ClickJacking Attacks Native JSON Building Mash-Ups

Source:

Constrain User Input Use Type Safe SQL Parameters SqlDataAdapter myCommand = new SqlDataAdapter("AuthorLogin", conn); myCommand.SelectCommand.CommandType = CommandType.StoredProcedure; SqlParameter parm = SqlDbType.VarChar, 11); parm.Value = Login.Text; Using Escape Routines private string SafeSqlLiteral(string inputSQL) { return inputSQL.Replace("'", "''"); }

Assume all user input is evil! Use parameterized statements instead of building queries

A Little History Securing Your Infrastructure Trust User Input At Your Own Peril SQL Injection Attacks Cross Site Scripting Attacks ClickJacking Attacks Native JSON Building Mash-Ups

Launch CSRF Steal browser history Abuse browser/AX vulnerabilities Evade phishing filters Circumvent HTTPS Steal cookies Log keystrokes Deface sites Steal credentials (of a sort) Port-scan the Intranet Researcher Bryan Sullivan

Website Vulnerabilities by Class Source: Whitehat Security 8/08

Identifies & prevent majority of XSS reflection attacks

Original script: Generated Signature: Neutered Script

Use the ASP.NET Anti-Cross Site Scripting Library Disable US-ASCII codepage Disable sniffing of UTF-7 codepage Fix other codepage-related bugs Disable CSS expressions in Standards mode

A Little History Securing Your Infrastructure Trust User Input At Your Own Peril SQL Injection Attacks Cross Site Scripting Attacks ClickJacking Attacks Native JSON Building Mash-Ups

ClickJacking

<iframe AllowTransparency="Yes" style="position:absolute; left:0px; top:30px; width: 581px; height: 1000px; z-index: 5;" id="I1" src=" name="I1" border="0" frameborder="0" class="style2"> Frames disabled.

Use HTTP Response Header X-Frame-Options Don’t use “sameorigin” if you have any page on your domain which accepts an arbitrary URL to frame

A Little History Securing Your Infrastructure Trust User Input At Your Own Peril SQL Injection Attacks Cross Site Scripting Attacks ClickJacking Attacks Native JSON Building Mash-Ups

{"Weather": { "City": "Seattle", "Zip": 98052, "Forecast": { "Today": "Sunny", "Tonight": "Dark", "Tomorrow": "Sunny" } }}

Based on Douglas Crockford’s implementation of JSON2 and standardized in ECMAScript 5 JSON.stringify() JSON.parse()

Use JSON over eval() to transfer data between client and server Check for native JSON support before using other libraries

A Little History Securing Your Infrastructure Trust User Input At Your Own Peril SQL Injection Attacks Cross Site Scripting Attacks ClickJacking Attacks Native JSON Building Mash-Ups

Securing Mash Ups

Provides a web developer a more secure mechanism to build cross domain communication Enables two domains to establish a trust relationship to exchange object messages Part of the HTML5 specification

// Find target frame var oFrame = document.getElementsByTagName('iframe')[0]; // postMessage will only deliver the 'Hello’ // message if the frame is currently // at the expected target site oFrame.contentWindow.postMessage('Hello', '

// Listen for the event. For non-IE, use // addEventListener instead. document.attachEvent('onmessage', function(e){ if (e.domain == 'expected.com') { // e.data contains the string // We can use it here. But how? } });

Provides a mechanism to establish trust between domains through an explicit acknowledgement of sharing cross domain (as well as both parties knowing which sites are sharing information) Enables web developers to more securely communicate between domains Proposed to W3C for standardization

// Creates a new XDR object xdr = new XDomainRequest(); xdr.onload = alert_loaded; xdr.timeout = timeout; xdr.open("get", url); // The request is then sent to the server xdr.send();

Use Cross Document Messaging when transferring data between iFrames on a page Use Cross Domain Requests when transferring data between different domains Cross-domain requests are anonymous, so only request and respond with cross-domain data that is not sensitive or personally identifiable

Required Slide Track PMs will supply the content for this slide, which will be inserted during the final scrub.

Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31 st You can also register at the North America 2011 kiosk located at registration Join us in Atlanta next year