Comunidad Kryteria
Sitio de encuentro para profesionales de TI
Novedades en CLR Seguridad

Continuando con la entrega de novedades de CLR para Visual Studio 2010, en esta ocasión nos enfocaremos a revisar aspectos relacionados con la seguridad. Para esta nueva versión del CLR se tienen actualizaciones relacionadas con la ejecución de código de confianza parcial en nuestras aplicaciones, y en este contenido vamos a detallar sobre estas novedades.  

Pero antes de comenzar formalmente repasemos a manera de introducción parte de los conceptos básicos del tema de seguridad.

 

Desde la salida del .NET Framework existe un modelo de seguridad que es el CAS (Code Access Security) el cual se encarga de asegurar que el código se ejecute con el mínimo de permisos necesarios y que no pueda ejecutar nada que se salga de ese contexto.

 

En este nuevo modelo hay cambios notables:

 

  1. Las aplicaciones que se ejecuten desde el Explorador de Windows o una carpeta de red compartida se ejecutarán con Full Trust. Antes de esta versión aplicaciones que se ejecutaban desde red corrían con otro conjunto de permisos.
  2. Las aplicaciones que corren en un host (sea ASP.NET, Silverlight, Sql CLR) se ejecutarán con los permisos que el host les otorgue. Por esta razón solo tendríamos que ocuparnos que el host otorgue los permisos necesarios de ejecución para nuestra aplicación.

 

¿Cómo se hacía en un principio?

Desde versiones previas del .NET Framework, la política del CAS aplica para todos los ensamblados que utilice nuestra aplicación. Por ejemplo, algo muy común que se puede presentar es que uno como desarrollador trabaja en su máquina y todo funciona de maravilla, hacemos las pruebas y todo perfecto; sin embargo el día de mañana queremos compartir esa aplicación con algunos compañeros en la red y resulta que ya no funciona igual; de pronto nos empiezan a comentar manda excepción, ya no escribe el archivo, etc.

 

Y tienen razón, porque lo que está ocurriendo es que está actuando la política del CAS que en este caso otorga un conjunto de permisos menor cuando la aplicación se ejecuta desde una intranet; por esto la aplicación comenzará a lanzar algunas excepciones del tipo SecurityException.

 

La solución para corregir esto, es actualizar manualmente en cada equipo que intente ejecutar la aplicación la política de seguridad o bien, hacer una distribución vía Click Once.

 

¿Cómo se maneja ahora entonces?

Cualquier aplicación administrada que se ejecute desde línea de comandos o desde el explorador de Windows se ejecutará con Full Trust, así como los ensamblados que cargará, incluyendo a aquellos que carga y se encuentran en una ubicación distinta a donde está el ejecutable.

Para las aplicaciones que se ejecutan desde un equipo local no hay un impacto significativo. Sin embargo para las aplicaciones que son compartidas a través de la red, esto significaría que todo deberá funcionar sin problemas, ejecutándose tal y como lo haría desde el equipo local.

Así que a probarlo y comprobar la experiencia, esperando como siempre que este contenido sea de utilidad, y agradeciendo cualquier comentario al mismo.

Nos encontramos en la próxima.


Posted 08-25-2010 1:18 PM by Marcos
Filed under: ,

Comments

Jesus Miranda wrote re: Novedades en CLR Seguridad
on 09-21-2010 5:14 PM

Hola Marcos, he leido tus post y estan muy buenos, muchas gracias!

Ahora mi pregunta sobre este post es: cómo actualizas la política de seguridad en un un equipo?

Saludos!

Marcos wrote re: Novedades en CLR Seguridad
on 09-24-2010 2:44 PM

Gracias por los comentarios! La actualización de políticas y permisos está gobernado por una herramienta que se llama caspol, dale un vistazo aquí:

msdn.microsoft.com/.../cb6t8dtz(VS.80).aspx

Cualquier duda aquí andamos

Powered by Community Server (Non-Commercial Edition), by Telligent Systems