+ All Categories
Home > Documents > Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET...

Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET...

Date post: 09-Aug-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
32
Transcript
Page 1: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project
Page 2: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Security Model in .NET Framework

Mikhail Shcherbakov senior software developer

Positive Technologies

.NEXT conference

Page 3: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

About me ― Senior software developer at Positive Technologies ― Working on Application Inspector - source code analysis product ― Former team lead at Acronis and Luxoft

Page 4: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Knowledge in Practice ― Sandboxing is the base of security

― Development of extensible and security-sensitive applications ― Troubleshooting and knowledge about the internals

§  ASP.NET / IIS §  Silverlight

§  SQL CLR §  XBAP

§  ClickOnce §  Sharepoint

Page 5: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Knowledge in Practice

― Are there some security features in Paint.NET that restrict what a plugin can do and what it can access?

― There are no security features. And no, there is no guarantee of safety… ― If there are no security features, then ... whenever Paint.NET was running, it

could look for interesting files and send them off to Russia.

“Plugins & Security?” topic, Paint.NET Forum http://bit.ly/1ABI3sH

#send2Russia

Page 6: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Terms

C# 5.0 Language Specification http://bit.ly/1tXdOI2 Common Language Infrastructure (CLI) Standard ECMA-335 http://bit.ly/1IesnAK

Page 7: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

.NET Framework 4 Security Architecture

Page 8: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

.NET Framework 4 Security Architecture

Page 9: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

.NET Framework 4 Security Architecture

Page 10: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

.NET Framework 4 Security Architecture

Page 11: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Application Domains

Page 12: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

The verification process

Page 13: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Just-in-time verification

Page 14: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Code Access Security

Page 15: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Policy

Page 16: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Policy

deprecated  in .NET

Framework 4

Page 17: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Permissions

Page 18: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Permissions

Page 19: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Enforcement

Page 20: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Fully Trusted code in Partially Trusted AppDomain

Page 21: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Transparency Model

Page 22: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Level 2 Security Transparency

Critical Full Trust code that can do anything

Safe Critical Full Trust code Provides access to Critical code

Transparent Only verifiable code Cannot p/invoke Cannot elevate/assert

Page 23: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Security Transparency Attributes

Assembly Level

Type Level Member Level

SecurityTransparent ü û û SecuritySafeCritical û ü ü SecurityCritical ü ü ü AllowPartiallyTrustedCallers ü û û

SecAnnotate.exe – .NET Security Annotator Tool http://bit.ly/1A3vMw3

Page 24: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Stack walking

Page 25: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Sandbox implementation

Page 26: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

ASP.NET Partial Trust applications

2005 2014 2005   2006   2007   2008   2009   2010   2011   2012   2013  

Use Medium trust in shared hosting environments bit.ly/1yABGqf August 2005

For Web servers that are Internet-facing, Medium trust is recommended bit.ly/1z83LVV July 2008

ASP.NET Partial Trust does not guarantee application isolation bit.ly/1CRv3Ux June 2012

ASP.NET Security and the Importance of KB2698981 in Cloud Environments bit.ly/1vXJ50J April 2013

“The official position of the ASP.NET team is that Medium Trust is obsolete”

-Levi Broderick, security developer at Microsoft bit.ly/1If14Gv

June 2013 ASP.NET MVC 5 no longer supports partial trust bit.ly/1w0xxuX

October 2013

Page 27: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Trusted Chain attack ― DynamicMethod class ― MS13-015 vulnerability Could Allow Elevation of Privilege (KB2800277)

Page 28: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Trusted Chain attack ― DynamicMethod class ― MS13-015 vulnerability Could Allow Elevation of Privilege (KB2800277)

Page 29: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Summary

http://goo.gl/A5QrZm

Page 30: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Summary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project bit.ly/1vCfknm ― Troy Hunt blog www.troyhunt.com ― The WASC Threat Classification v2.0 bit.ly/1G5d8rM

Sandboxing: ― Exploring the .NET Framework 4 Security Model bit.ly/1zBHDl7 ― New Security Model: Moving to a Better Sandbox bit.ly/1qdLTYf ― How to Test for Luring Vulnerabilities bit.ly/1G5asdG ― Using SecAnnotate to Analyze Your Assemblies for Transparency Violations

bit.ly/12AtGZF

Page 31: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Thank  you  for  your  a6en8on!

Mikhail Shcherbakov

linkedin.com/in/mikhailshcherbakov [email protected] github.com/yuske @yu5k3

Positive Technologies

Page 32: Security Model in .NET Frameworkpublic.jugru.org/dotnext/2014/moscow/scherbakov.pdfSummary .NET Security: ― OWASP Top 10 for .NET developers bit.ly/1mpvG9R ― OWASP .NET Project

Recommended