Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Abel Avram on Aug 19, 2008 03:03 AM
Microsoft has released .NET Framework 3.5 SP1 which includes a security change from previous versions allowing to run managed applications from network shares.
According to Microsoft, one of the .NET Framework 3.5 SP1 features is:
Managed applications that are opened from network shares have the same behavior as native applications by running with full trust.
In the past, one could not run managed code from network shares due to security reasons. That feature was introduced in .NET from the beginning to prevent security attacks coming from network locations. The feature did not resolve the respective security threats because unmanaged code always was allowed to run in such a circumstance.
A pool organized by Brad Adams, Program Manager at Microsoft, shows that many people would like to have the possibility to run managed code from network shares. Microsoft responded to the general request enabling the feature in .NET 3.5 SP1.
Vance Morrison, Architect on the .NET Runtime Team, comments on the security change:
We made a mistake. In 2001 we believed we are the avant-guard in making things 'secure by default' and thus biased our decisions believing that we would eventually 'plug' the hole of unmanaged code running from a network share. We also did not appreciate the pain this decision would cause.
However over time, we realized that we were naive. The cost/benefit of changing the behavior of unmanaged code is simply too high. Moreover it also become clear that for security to work, it must be simple, which means treating cases uniformly. Thus if you want to disallow launching exes off the network you should not have one way of doing it for managed code, and a completely different way for unmanaged code.
Vance also downplays the security risks introduced by the change:
For those of you who are concerned that we have opened security holes by doing this, we have tried to be VERY careful not to do this. The basic rationale is that we are not opening any holes that were not already there because Windows allows non-managed exes to run from a network share.
Shawn Farkas, a software engineer on the CLR team responsible for the cryptography classes, explains how the new feature works:
The core of this change is a modification in how we assign evidence to network launched applications. When we see an .exe launched directly off a network share, rather than giving that .exe Zone evidence of LocalInranet, we instead give the .exe Zone evidence of MyComputer. This causes the .exe to match the default MyComputer code group rather than the LocalIntranet group, and in default CAS policy that code group grants FullTrust.
For those who want to forbid running managed code from network locations Shawn advises:
You can set the DWORD registry value LegacyMyComputerZone to 1 in the HKLM\Software\Microsoft\.NETFramework registry key.
The assemblies will receive the rights to run in the following scenarios, according to Shawn:
In the next scenarios assemblies will not receive the rights to run:
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
No comments
Watch Thread Reply