Ofuscacion en

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Ofuscacion en ASP.

NET | Blog de Jorge Pedraza

http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/

Blog de Jorge Pedraza


junio 20, 2010
Ofuscacion en ASP.NET
Archivado en: Aplicaciones Web JorgePedraza @ 12:34 am Tags: Dotfuscator, Ofuscacin, Reflector, Reflexin Hola la presente de este articulo es para resaltar de manera general el tema de ofuscacin en el area de desarrollo web ASP.NET. En la actualidad la plataforma .NET esta equipada con mecanismo que permite almacenar y explorar los objetos y tipos de datos contenido en determinado ensamblado. Dicho mecanismo se denomina reflexin (Reflection), y este se encargar de interrogar los metadatos acerca de un ensamblado, modulo y tipos relacionado con el CLR. La reflexin tiene un conjunto de acciones dentro de la plataforma .NET: A nivel de diseo de aplicacin, en tiempo de ejecucin, medios de exploracin para algunas IDE, etc. Un ejemplo de esto es el navegador de objeto propio Visual Studio 2010:

A partir de esto y basado en el principio de que la plataforma .NET generalmente trata las aplicaciones finales como un ensamblado .NET (*.DLL o *.EXE) , cuyo elemento contiene codigo compilado en lenguaje de maquina virtual especifico, en este caso Lenguaje Intermedio IL para su ejecucin por parte del CLR de .NET Framework. Entonce el IL (Lenguaje Intermedio) brinda un mundo de posibilidades para ir ms alla de la reflexin elemental; una opcin de esto es una via alterna para obtener una descripcin completa del contenido de una aplicacin, representada en algn lenguaje de programacin de alto nivel. Para logra dicho proposito se puede contar con la herramienta .NET Reflector. .NET Reflector Es una herramienta que permite analizar y explorar los ensamblados compilados en .NET, visualizando en ellos: codigo C#, Visual Basic, IL y otros. En vista de este argumento, mucho se pregunta como se puede proteger el cdigo de una aplicacin, tal es el caso de ASP.NET. Para esto existe una series de mecanismos de proteccin, entre los cuales se menciona la Ofuscacin. El principio bsico de la ofuscacin es renombrar (cambiar de nombre) las series de identificadores

1 de 9

17/06/2013 12:56 p.m.

Ofuscacion en ASP.NET | Blog de Jorge Pedraza

http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/

cadenas de caracteres utilizados durante el desarrollo de una aplicacin bien sea a nivel de codigo fuente o aplicacin compilada en codigo de maquina. Un ejemplo sencillo puede ser: public int Suma(int valor1, int valor2) { return valor1 + valor2; } Ahora aplicando Ofuscacin: public int a(int a_0, int a_1) { return a_0 + a_1; } Con esto se busca impedir o hacer ms difcil los intentos de ingeniera reversa y desensamblado de una aplicacin, para la obtencin del cdigo fuente cercano a la forma original. En ocasiones la ofuscacin, hace que los programas resultantes sean ms pequeos (aunque puede hacer que los programas sean ms grandes en otros casos). Entonce desde aqu empresa como preemptive desarrolla soluciones relacionada con la ofuscacin de aplicaciones, como es el caso del Ofuscador .NET. .NET Obfuscator (Ofuscador .NET) conocido tambien como Dotfuscator es una herramienta que ayuda proteger los programas .NET contra la ingenieria reversa, adems de hacerlos ms pequeo y eficiente. Versiones de Dotfuscator: Dotfuscator Software Services Community Edition (Edicin de Instrumentacin y Endurecimiento de Aplicaciones Ligeras): Esta edicin reducida es incluida en t copia de Visual Studio. Esta es una solucin ideal para aquellos que requiere el nivel ms basico de protecin de ingenieria reversa sobre aplicaciones sencillas. Dotfuscator Commercial Edition (Edicin de Instrumentacin y Endurecimiento de Aplicaciones Empresariales): La versin de grado comercial de Dotfuscator, pretende apoyar desarrolladores y organizaciones que requiere el nivel ms alto de protecin para su aplicaciones. S tu desarrolla software comercial, esta solucin asegura soporte y protecin de la aplicacin. Dotfuscator Software Services Community Edition. Ofuscacin Renombrar ensamblado cruz Renombrar Esquemas Renombrar Prefijos Mejora de la induccin de sobrecarga Ofuscacin Incremental Reporte HTML de renombramiento Flujo de control Dotfuscator Commercial Edition.

2 de 9

17/06/2013 12:56 p.m.

Ofuscacion en ASP.NET | Blog de Jorge Pedraza

http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/

Encriptacin de Cadena Interfaz de Usuario Interfaz de usuario Independiente Integracin con Visual Studio Linea de comando MSBuild Tipos de aplicaciones soportadas Aplicaciones Office Aplicaciones SQL CRL ClickOnce Integrado SilverLight XAP Directory WildCard Mtodos y Tipos genericos Soporte de ensamblado C++ Administrado (modo mezclado) Soporte de ensamblado satlite Construir / Empaquetar Resigning ensamblado nombrado fuertemente. Firmar Authenticode Eventos pre y pos construicin Ruta de busqueda de ensamblado dependiente definido por usuario. Soporte de Depuracin Ida y Vuelta de PDB Traduccin de siguimiento de pila Optimizacin de Implementacin Vinculo de ensamblado Reporte de eliminacin HTML/XML Eliminacin de codigo sin Uso Eliminacin de constante Avanzada Protecin de aplicacin Deteccin de manipulacin Notificaciones de manipulacin Marca de agua Administracin de ciclo de vida Token de vida incrustado Expiracin sobre accin por defecto Expiracin sobre accin personalizado

3 de 9

17/06/2013 12:56 p.m.

Ofuscacion en ASP.NET | Blog de Jorge Pedraza

http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/

Origen de Token de vida personalizado Soporte Inteligente de Tiempo de ejecucin Punto Final personalizado Punto Final RIS Comercial Punto Final Portal de comunidades Soporte entrada y salida Opt Seguimiento de Aplicaciones Mensajes SSL Llaves extendidas (carga de datos personalizado) Enviar PII Enviar ID de instancia personalizada (Numero de serial de aplicacin) Tipos de mensajes inteligente de tiempo de ejecucin Caracterstica Tick Caracterstica Duracin Prueba de Rendimiento Perfil de sistema Precio Descarga Incluido gratis en visual Studio 2010 Solicitud de Couta Limitado Limitado

Incluido gratis en visual Descarga de evaluacin Studio 2010

Una vez comprendido el marco teorico, se procede a la practica donde se trata con enfoque una solucin sencilla de un proyecto tipo aplicacin ASP.NET 4.0 en lenguaje C# 4.0 junto a la herramienta Dotfuscator Software Services Community Edition. PASOS SENCILLOS PARA USAR DOTFUSCATOR CE (COMMUNITY EDITION): 1. 2. 3. 4. 5. Se abre una solucin del tipo aplicacin Windows o Web en Visual Studio 2010. Se pulsa clic sobre la opcin Tools o Herramientas de la barra de menu de Visual Studio 2010. Se pulsa clic sobre la opcin Dotfuscator Software Services. Se pulsa boton derecho del mouse sobre el nodo Dotfuscator1, y se hace clic en Add Assemblies. Se selecciona y abre el ensamblado previamente generado que esta ubicado en la carpeta BIN del proyecto de dicha solucin. 6. Ahora se dirige al nodo Configuration Options, nodo Renaming, Pestaa Exclusions. Finalmente desde aqu se marca aquellos elementos de codigo que no desea Osfucar o sea excluir. 7. Se pulsa clic en el boton en forma de Triangulo situado en la barra de herramienta o la opcin Build Project (Ctrl+B) del Menu Build. 8. Finalmente nuestro ensamblado .NET ofuscado esta situado en la carpeta, por ejemplo: C:\Dotfuscated. PUNTOS IMPORTANTES DE DOTFUSCATOR CE CON ASP.NET:

4 de 9

17/06/2013 12:56 p.m.

Ofuscacion en ASP.NET | Blog de Jorge Pedraza

http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/

Cuando planifique la ofuscacin de un ensamblado .NET por ejemplo *.DLL con la herramienta Dotfuscator CE, cercirese que la opcin Library Mode este desmarcada, ya que esta opcin le indica al Dotfuscator que los elementos publicos de la clase no sean renombrados, y as se mantenie intacto la accesibilidad de los mismos a llamadas externas. Como bien se conoce la estructura de un proyecto de aplicacin ASP.NET; en una pagina ASPX se va encontrar vinculado tres archivos; un ejemplo esto es : Pagina.ASPX, Pagina.ASPX.cs, Pagina.ASPX.designer.cs, los cuales durante la compilacin son procesados y vinculado en un archivo de extension *.DLL y Pagina Web ASPX (Pagina.ASPX). Ahora s procede a ofuscar el archivo con extensin *.DLL, se debe tomar como precaucin la exclusin primordial de los nombres de paginas, controles y eventos que estn referenciados en dicho ensamblado .NET los cuales tiene relacin con nuestro pagina ASPX y as se logra mantener vinculado los identificadores usados en el desarrollo con la pagina ASPX.

Despus de ofuscar el archivo *.DLL, se obtiene el siguiente resultado visualizado a travs de la herramienta Reflector .NET:

Finalmente se puede colocar el archivo con extensin *.dll en la carpeta bin y las paginas ASPX relacionadas en la raz de determinado directorio de aplicacin del IIS.

Otro punto que se puede resaltar en este tema, es la gestin de aplicaciones escrita en el Lenguaje Visual Basic 2010. Para el cual se va encontrar limitado de ciertas caractersticas mencionadas previamente para Dotfuscator CE. Por ejemplo las aplicaciones bien sea del tipo Windows o Web en Visual Basic van a
5 de 9 17/06/2013 12:56 p.m.

Ofuscacion en ASP.NET | Blog de Jorge Pedraza

http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/

estar limitada para la ofuscacin, ya que estas internamente gestiona el uso de mtodos y tipos genericos a travs del objeto My intrnseco de Visual Basic. Entonce para estos casos se sugiere usar la versin sn limitaciones de Dotfuscator (Dotfuscator Commercial Edition). En resumen se puede notar que dentro del desarrollo de aplicaciones .NET, vamos a encontrar un tema de gran importancia como es la proteccin de la propiedad intelectual, a travs de ciertos mecanismos como la ofuscacin de codigo. Y esto puede ser posible con la herramienta Dotfuscator de la empresa preemptive. Anexo Cdigo fuente para ilustrar el tema: TestObfuscator (ASP.NET 4.0, C# 4.0)
About these ads

Se el primero en decir que te gusta.

Comentarios (3)

3 comentarios
1. Un comentario, creo que est errneo el comentario Cuando planifique la ofuscacin de un ensamblado .NET por ejemplo *.DLL con la herramienta Dotfuscator CE, cercirese que la opcin Library Mode este desmarcada, debera ser Library Mode marcado. Citando como fuente la informacin de la documentacin propia de la herramienta DotOfuscator. Library mode: This setting tells Dotfuscator that the selected input assembly constitutes a library. For obfuscation purposes, a library is defined as an assembly that is referenced from other components not specified as one of the inputs in this run. When an assembly is obfuscated in Library Mode, publicly visible items are not renamed, thus keeping your public API accessible to external callers. Comentario por sergio octubre 27, 2011 @ 7:07 am | Responder

Hola Sergio.

6 de 9

17/06/2013 12:56 p.m.

Ofuscacion en ASP.NET | Blog de Jorge Pedraza

http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/

Gracias por t comentario! T explico: S revisa bien el articulo, yo coloque un titulo previo denominado: PUNTOS IMPORTANTES DE DOTFUSCATOR CE CON ASP.NET que se relaciona con el comentario resaltado por ti previamente. Una solucin ASP.NET Web Application, por ejemplo son: Paginas.aspx + WebApp.DLL (Biblioteca de Vinculo Dinmico) bajo .NET Framework. S la intencin es Ofuscar dicha Biblioteca (WebApp.DLL) se debe desmarca Library mode. Por que? Significado de Library mode segn la documentacin de PreEmptive es: Esta opcin le indica a Dotfuscator que el ensamblado de entrada seleccionado constituye una biblioteca. Para fines de ofuscacin, una biblioteca se define como un conjunto que se hace referencia en otros componentes no especificados como una de las entradas en esta ejecucin. Cuando un Assembly est ofuscado en modo de biblioteca (Library mode), elementos visibles pblicamente No se renombra, manteniendo su API pblica accesible a los llamadores externos. Entonces s verifica el codigo de ejemplo, se esta usando un clase llamada Matematica donde hay un elemento visiblemente publico Suma que ser generado dentro del resultado WebApplication3.dll, para el cual se necesita Ofuscar (renombrar la clase Matematica y su mtodo pblico) en dicho resultado y demostrar la ofuscacin de una Aplicacin Web ASP.NET. Bueno eso es todo por lo momento. Espero que esto sea de utilidad para aclara la duda generada. Saludos. Comentario por jorgepedraza octubre 27, 2011 @ 12:39 pm | Responder 2. Gracias por la aclaracin, fue un error mio de interpretacin. Un saludo Comentario por Sergio noviembre 17, 2011 @ 5:40 pm | Responder

RSS feed para los comentarios de esta entrada. TrackBack URI

Deja un comentario

Pginas Acerca de

7 de 9

17/06/2013 12:56 p.m.

También podría gustarte