Días difíciles se acercan… para nosotros los Administradores de Red(BOFH) .. y lo que deberíamos hacer al respecto

No quiero ser Pesimista…., ya casi todos saben que salió  el Service Pack 3 de Windows XP,  Service Pack 1 de Windows Vista … ( aun no sale el link de descarga..)  gran alegría en muchos lados,  más la desconfianza en otros, pero cuantos se han puesto a Pensar en los tan sufridos Administradores de red (BOFH)…  y los problemas que les causara esto?.


No digo que estén mal los Service Pack o las nuevas versiones .., pero algo que ocurre siempre  que sale algo nuevo es que el internet se  satura a nivel mundial…. ya que muchas personas se ponen a descargarlo… eso trae problemas siempre… los usuarios normales se quejan por que su pagina X  se demora mas en cargar… y piensan que de todo nosotros tenemos la culpa…


Algo que es muy recomendable ( en la mayoría de veces.. no en todas ) es dejar las actualizaciones automáticas en automático.. así se instalaran siempre sin tener que hacernos tantos líos… el problema viene cuando sale un Service Pack, ya sea de Windows, Office..o demás…


Cuanto Pesa el Service pack de Vista?, cuanto el de Windows XP..?   lo suficiente para poner mal una red que no este bien administrada….


Lo Lógico y correcto es  que en nuestra red  tengamos un WSUS u otro que controle las actualizaciones de Windows de la red…  “PERO!!!” ….. ( si como siempre el Ddaz y sus malditos peros..) , la realidad es que no todas las redes tienen un WSUS ( gratuito ) o la versión pagada…    cuando hago  auditoria a alguna red, casi siempre empiezo con la pregunta : 


¿Tienes instalado el WSUS? ….. y algunas de las respuestas que obtuve fueron…..


  1. Silencio… ( no dijeron nada pero su expresión era de “JUAT!!!???”, entiendase por desconocimiento.. )
  2. “NO, La Empresa no Tiene Dinero Suficiente para desperdiciar una pc solo para eso” ( en muchos de estos casos  la persona que dice esto tiene una workstation muy potente…  que sirve para ver sus películas bajadas de la www… o peor aun su “servidor”  tiene instalado el emule, Ares, LimeWire o  algún otro programa de P2P )
  3. “NO, Eso no ayuda.. además solo trae los parches de Windows… “  ( en este caso hubiera preferido el “juat!?”)
  4. “Tengo demasiado Trabajo… no puedo perder el tiempo en eso…” ( Si supiera que muchos de sus problemas se resolverían  teniendo su laboratorio de pruebas, y lógicamente el WSUS… )
  5. “SI, tengo….el Instalador… pero no se donde lo deje.. luego lo instalo…” ( pueda ser que estaba mintiendo, solo para excusarse… o que realmente lo haya bajado con la intención de instalarlo y se le olvido… y casi seguro que se le vuelve a olvidar.. )
  6. “SI lo tengo, ya Instale el Servidor de WSUS hace como medio año…. solo que no e tenido tiempo de configurar a los clientes…” ( como diría mi mama.. “al menos tuvo la intención”… pero.. un trabajo sin terminar es lo mismo que un trabajo no realizado… de nada sirve si no terminamos lo que empezamos.. )
  7. “Si lo tenia, pero lo tuve que quitar … “ ( en muy pocos casos esto es cierto… la mayoría de veces..  es una simple excusa… ya que o no saben lo que es  o no supieron como o simplemente no les dio la gana… pero no querían dar la impresión de ser “Mensos” frente a quien los audita) .
  8. “Si, lo tengo instalado, aunque e tenido algunos problemas con algunos equipos” ( quien me dijo esto ya obtuvo toda mi atención…  y lógicamente le ayudo a solucionar sus problemas con muchas ganas.. y tengo mas esperanzas de que sea una red bien administrada, o al menos en buen estado - es que hay redes que cuando uno va y las ve,  no sabe si reír o llorar..- )
  9. “Si, lo tengo instalado, configurado y me funciona  de maravilla”  ( los que me conocen saben que soy una persona  que  difícilmente se le ve riendose…,  y no me refiero a burla…- por que si soy algo burlón-  sino a una sonrisa real…, en estos pocos casos …. suelo hasta sonreír y pienso “Dios Existe!!”)

Lamentablemente no con todas las personas  que me encuentro y están encargadas de una red, podría llamarles “Administradores”… de causas y problemas lo tocare en otro post…


Supongamos que realmente la empresa es muy pequeña, o es un cyber,  o simplemente en nuestra casa….  debemos poner en automático y poner que windowsupdate descargue e instale el Service pack, ya sea del windows xp o del Vista…… lo que yo les diría ( y aclaro eso.. que es mi opinión personal )  … es que “NO!!!, NO DEJEN QUE WindowsUpdate Descargue e intale el Service pack de windows u office o lo que sea..”,  si.. ya se que dirán pero por que?? allí les van algunos  mis motivos.


Si Eres Administrador de RED (No Usas WSUS) :


  • (ANCHO de BANDA )Todas tus PC’s comenzaran a descargar cientos de Megas  de la Web de Microsoft casi en simultáneo, haciendo que tus peores pesadillas se vuelvan realidad… donde ni google podras abrir…

Si Eres Administrador de RED ( y si tienes WSUS)


  • ( CONTROL ) Una de los motivos de que WSUS funcione de proxy de actualizaciones, es que tengas el poder de aprobar  las actualizaciones de tu red….¿ por que ?, en el siguiente punto lo detallo.

Si Eres Administrador de RED ( con o sin WSUS)


  • (Funcionalidad ) Algo que es muy común con las actualizaciones ( por eso se creo WSUS) es que muchas veces un parche arreglaba algo… pero malograba otra cosa… y curiosamente en algunos casos esa cosa que se malograba… tenia que ver con el trabajo de la red que teníamos… ya sea un service pack, un driver, algo como el Internet Explorer 7 ( un ejemplo… la pagina web del banco que uso no soporta IE7 … y como vista usa IE7 cada vez que quiero entrar al banco tengo que usar una pc virtual con win xp e ie6… como el banco es de Peru.. la única forma de interactuar con mi cuenta es por internet ya que estoy en México ) , asi que por eso antes de instalar un parche o Service Pack… tenemos que hacer simulaciones  y probar que al instalarlo no  dejara de funcionar algún sistema o en general el modo de trabajo de nuestra red; recien luego de probar todos los tipos de variables de nuestra red y ver si funciona en esos casos  recién deberíamos permitir a nuestra red poder instalar el Service pack … ya sea con o sin WSUS  debemos de bloquear la Instalación  hasta que hayamos hechos las pruebas… si no tenemos pcs, podemos usar máquinas virtuales, pero hagan pruebas….. Por si piensen que para eso existió el Beta de SP… les diria.. no todos entran al Beta… y aunque duela decirlo ( soy beta tester de ms y en algunos casos alpha)  muchas veces el producto RTM tiene mas problemas que la versión Beta o RC :(.

Si Eres Administrador de RED Sin WSUS, una persona que no es el administrador o un Usuario Común y silvestre  de casa:


  • (Ahorro de tiempo) Siempre nos pasa que por X o Y motivo tenemos que formatear… nuestra PC  o quizá la de alguien mas… y luego de hacer la instalación a bajar todos los parches… y mas tiempo nos demora instalar los parches y SP que la misma instalación… por eso  lo mejor es que bajemos el “Redistribuible Package” del Service Pack, lo grabemos en un CD  o DVD ( en el caso de vista seria un DVD para el SP, si no me equivoco)  y asi para la siguiente vez que tengamos que formatear nuestra pc o la de alguien mas… nos ahorraremos el tiempo de descarga de la pc..

“Si pero como bloqueo la Instalación del Service Pack ???? “


Para estos casos Microsoft comenzó a publicar “bloqueadores de Service pack’s”, los cuales no siempre son conocidos por todos…. pero es algo que ya deberíamos todos tener instalados en nuestras pcs :)


la Herramienta en cuestión es el: Windows Service Pack Blocker Tool Kit , lo pueden bajar de : http://www.microsoft.com/downloads/details.aspx?FamilyID=d7c9a07a-5267-4bd6-87d0-e2a72099edb7&DisplayLang=en  , con esto bloquearemos la instalación automática de Service Packs , si no tenemos el WSUS ya sea en casa o trabajo…( por que en el WSUS uno debería de ir aprobando las actualizaciones una a una ) .


Si, Ya se que me extendí demasiado… ( como diría FER. …”NO se por que no me sorprende” )  en esta vez quisiera que pregunten ustedes ( suponiendo que no son los que administran la red donde trabajan…, o quizá a algún administrador de red  que conozcan )  “¿Tienes Instalado el WSUS?” y ustedes mismos vean las respuestas que les dan, ojalá y sea un “si  y lo tengo funcionando”


lo recalco por ultima vez… ya sea que sean Administradores de Red,  o no … les aconsejo que se bajen el instalador FULL y lo graben en un CD, mejor aun si pueden luego juntar el Instalador del SO con el del SP y tengan un Instalador con el sp incluido… ( lógicamente los que tengan suscripción MSDN o TECHNET  no tendrán este problema ya que MS se los dará…) .


Y bueno creo que también debería dejar en claro que no estoy en contra de los Service Packs, ya que la idea de estos es que arreglen algunos problemas, y/o traigan funcionalidad nueva a nuestros SO, el fin de este post es ver unos cuantos vicios en la Administración de Redes con respecto a las actualizaciones.


Para mas Información del WSUS :  http://www.microsoft.com/spain/technet/seguridad/herramientas/wsus.mspx 


pdta: por si no entendieron lo de BOFH : Bastard Operator from Hell – Wikipedia, la enciclopedia libre 


Hasta la Próxima…


Salu2


Ddaz ( El Dacito )

:) Publicacion cruzada desde Geeks.ms :) http://geeks.ms/blogs/ddaz

Controles de Validación – ¿Son Realmente Seguros?

Antes de empezar, se que este post puede ser vetado, por muchos motivos, solo quiero esperar que lo tomen de por el lado amable…, aquí muestro mis ideas y mi percepción al respecto, agradecería me dieran sus comentarios sobre esto, ni intento atacar a alguna persona en especial , la razón de este post es  poder ayudar a las personas a que  utilicen algo mas de seguridad en sus sistemas.


Este post se a vuelto una respuesta a un post puesto por un empleado de Microsoft, y en general a la imagen que da Microsoft y algunos expositores http://blogs.msdn.com/hackers/archive/2008/01/06/first-line-of-defense-for-web-applications-conclusion.aspx


ACLARACION :   “Este post no demuestra ninguna buena practica…, sino que  mas bien demuestra como “No deben de programar”; es la forma en la que muchos programan equivocadamente. Segundo, el ASP.NET SI hace una validacion del lado del servidor, aunque esta es una validacion  que  en este caso  es muy facil de saltarse, ya que no se ingresa codigo malicioso ( XSS, Sql Injection, etc ).    Y una cosa mas  sobre lo de “Page.IsValid esta omitido de  forma premeditada, para que el ejemplo sea mas facil de entender, pero aun asi,  si lo hubiera puesto… el resultado es el mismo, ya que  eso solo valida que no ingrese codigo malicioso :), esto a pedido de Misael :)


En los tiempos actuales se habla mucho sobre seguridad, ¿ pero esta realmente se aplica?


soy una persona que  utiliza diariamente las tecnologías de Microsoft, pero en mi trabajo como consultor en seguridad e visto muchos  vicios de programación, que han sido originados por una incorrecta forma ( a mi parecer ) de mostrar las cualidades de ASP.NET.


¿A que me refiero en especifico?  me refiero a los controles de validación, si , seguro habrán escuchados de ellos, el de campo requerido, el de  expresión regular, etc.


Eh Escuchado en Múltiples conferencias de Microsoft y en otras de algunos colegas expositores y  algunos ex colegas MVP’s ( si,  si..  yo fui el que dejo de serlo je je ) ,   sobre la idea de que “Los controles de Validación”, hacen que una aplicación sea segura, hace unos minutos estaba debatiendo esto con mi amigo Guino, sobre la Seguridad, y el me decía que la seguridad se implementa en varias capas, que no se puede implementar en una sola capa, con lo cual concuerdo, pero algo que le replique es sobre  que pasa si le das una imagen errónea a las personas sobre la seguridad, ya sea como Microsoft o  como Expositores, influenciamos a los desarrolladores, y esto influye en muchos aspectos de como programan…. ¿ si.. pero cual es mi punto ?


Mi punto es el siguiente:


Los Controles de Validación sirven para 2 cosas,

  • Para que el usuario común y silvestre… (si de esos que andan rondando libremente por allí… sin domesticar..) , puedan ingresar datos correctos en una determinada aplicación de una forma mas rápida, ya que antiguamente había el problema de los muchos postback  que eran molestos,  y como una guía para que ellos ( que nunca hacen las cosas como se debe ) puedan hacer un trabajo correctamente.
  • Para Evitar evitar demasiados postback ( si si ya lo había puesto )  ya que estos hacen que la aplicación sea mas lenta,  el trabajo para ese usuario común  y silvestre que no sabe  ni poner su apellido correctamente …. tenga que ir rellenando todo de nuevo por que escribió mal algo, y así liberamos algo de carga al servidor en cuestión.

Para que No Sirve :

  • No sirve para Implementar seguridad real, como dije antes esto sirve solo para que el usuario común y silvestre ingrese la información correcta, o quizá pueda contra un simple y diminuto “Lamer” , pero sobre seguridad real no ayuda en nada, como me dijo Guino “¿¿que código JavaScript es seguro..??” el código JavaScript, en su mayoría tiene como finalidad darle una mejor experiencia al usuario, es código muerto que no corre bajo el CRL, eso si puede ser generado…

En muchas literaturas, se habla sobre código seguro y e ellas se dice ( algo en lo que estoy de acuerdo)  “que se tiene que validar todas las entradas de usuario, una y otra vez, que no hay que confiar en nada que venga del usuario” en conclusión el usuario es un ser  en el cual no se puede confiar…  hasta allí todo muy bien y correcto…. pero ahora viene lo malo…. ¿como?


Muchas personas interpretan eso ( sobre validar las entradas del usuario)  con validar usando controles de validación..  y que con eso su aplicación ya es segura y recibirá siempre los datos correctos , cosa que no es cierto… lamentablemente las personas no acostumbran desarrollar código seguro, y se confían de que el CRL del ASP.NET les ayudara en todo.


hace un tiempo salió una vulnerabilidad que demostró que el “Validate Request” del ASP.Net no es “invulnerable” http://www.buayacorp.com/archivos/validaterequest-no-es-suficiente-para-protegernos-de-ataques-xss/ , y en este otro post se muestra la mínima validación que hace el “validate request” http://www.buayacorp.com/archivos/seguridad-en-aspnet-xss/ ,  asi que por eso no podemos confiar en que eso ayudara en la seguridad, quizá si filtrara muchos de los intentos, pero.. no podemos confiar en que eso hará nuestras aplicaciones seguras.


Si reconozco que en seguridad ASP.NET a dado un gran salto, ya que por ejemplo en aplicaciones PHP  hay que hacer a mano muchas de las validaciones, pero aun así tenemos que seguir programando pensando en seguridad… pero en seguridad real.


Seguro pensaran…  este mucho habla y poco demuestra…o este es un charlatán…. pero calma, ya viene lo bueno…. pero adelanto.. que no diré exactamente el como lo hago pero si mostrare imágenes que de por si ya mostraran.


empecemos!. para el ejemplo siguiente crearemos una simple pagina ASP.NET Con un simple botón, una caja de texto y le agregaremos un control de validación….  haber podría ser cualquiera, para este caso pongamos el de “Regular Expression Validator”, y  como expresión a validar pongamos la de “email”,  como muestra la imagen:



el único código que le aplicaremos en este caso, será el siguiente:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Response.Write(TextBox1.Text)

End Sub

como ven   simplemente escribe  lo que recibe de la caja de texto… lógicamente el evento clic no se ejecuta si es que no sea cumplido  la condición del control de validación… por si no creen aquí les dejo otras imágenes… en la primera lo que pasa si no pongo la condición correcta ( un email )



y si se cumple se muestra algo asi:



allí se escribió el email


Bueno luego prendemos el Paros ( véase el anterior post que  puse Previo a un Post Importante, Herramienta impresincible ) , para la configuración de ese soft pueden ver en la ayuda…  de su programa… si .. deben de leer.., bueno para poder atrapar el trafico habilitamos en la pestaña trap, la opción de “trap response” y “trap request” y llamamos a la pagina, lógico que se  detendrá y no avanzara hasta que  en el paros le demos en “Continue” varias veces. hasta que se carga la pagina y en el paros ya no se ve nada…,


luego simplemente escribimos un email ( ósea un valor que cumple la condición ósea algo@algo.com )   y damos clic en el botón, lógico que paros capturara el evento. y veremos algo así….



se dan cuenta… quizá en este momento seria buena idea para cambiar el valor puesto originalmente por el que realmente querremos poner… en este caso pondré “datocambiado” y ponemos “continue” el siguiente clic mostraría el HTML que se procesara.. ( ósea el que validara…)  y si buscamos en el código podríamos ver algo asi :



ven algo conocido?… algo parecido a una expresión regular..?.. que pasaria si modifico lo que esta entre las comillas y por ejemplo dejo solo : \\w+([-+.\']\\w+)*…  y luego doy en continue…   seran como 4 clic en continue y luego ya de hacer todo eso podremos ver en el navegador :



ven? aparecio el dato que modificamos..


como quizá digan, “pero no te metiste a la DB  o no hiciste cosas complicadas… ” … y les respondería… justo es lo que quería hacer… demostrar lo simple que es saltarse los controles de validación,    y en que casos nos puede afectar esto?  es simple…


en el mundo actualmente existen muchas personas ( lo e comprobado ) que equivocadamente piensan que lo que en los libros de código seguro dice  “valida la entrada” significa usar controles de validación… y eso significa que no tenemos que meternos dentro de la app, robar sesiones ni cosas asi para poder hacer destrozos…  ejemplos..? ya depende de cada uno….,


Esto es un bug?  personalmente creo que NO, pero eso es por que yo desde un principio considere a los controles de validación como algo para ayudar a los usuarios  a ingresar bien los datos, pero no como algo para seguridad…,  lo que si creo que es un Error o Bug, es a las personas  que enseñan y  dan a entender que esto hace que la aplicación sea segura, lo cual es falso, quizá podríamos decir “esto  seria uno de los puntos en los cuales puedes  ayudar a que tu aplicación sea segura”,pero siempre aclarando explícitamente que el fin de esto no es la seguridad, sino que mejora la experiencia del usuario.


creo personalmente que Microsoft debería  de cambiar su forma de mostrar este tipo de controles, ya que esta haciendo que las personas tengan una perspectiva equivocada  de esto, aunque lógico si me hacen caso o no ya no depende de mi .


y Bueno luego de este rollo.. que podemos hacer?  la respuesta es simple “Validación en el lado del Servidor”, ojo que no digo que “no hagan validación del lado del cliente” , lo que digo es que hagan doble validación, bueno al menos en este aspecto.


quiero agradecer a Nazul por haberme proporcionado el link donde se habla de los controles de validación…..


Bueno espero  no haber ofendido a nadie con este post, ni tampoco quiero atacar a Microsoft,tan solo doy mi punto de vista con respecto a ese post y en general a los controles de validación.


Si no Es Vetado este post, podría poner otros tips de seguridad, ya sea en .net o en servidores Windows… .. mas información?  : http://www.google.com


Hasta la proxima!


Salu2


Ddaz ( El Dacito )

:) Publicacion cruzada desde Geeks.ms :) http://geeks.ms/blogs/ddaz

Previo a un Post Importante, Herramienta impresincible


Bueno hace mucho mucho tiempo, quería publicar una información, la cual era algo critica en algunos aspectos sobre seguridad, y bueno pasaron muchas cosas en estos días, entre ellas iba a enviar un email al team de ASPNET, y creo que si terminare escribiéndolo, y bueno al fin me anime a postearlo, en esto tengo que agradecer a Nazul , que me paso un link importante con el cual me puedo basar para responder.


En este post no hablare de eso, pero si de la herramienta que usare para probar “mi teoría” sobre la seguridad en aplicaciones web, la cual espero no sea la única vez que hable sobre esto….. la herramienta que usare en los ejemplos de los próximos post sera una que ya publique hace algún tiempo atrás en algún blog ( no recuerdo donde) es un analizador de Seguridad web, la cual ya tiene un buen tiempo en la web ( yo la uso desde el 2004 ) , lógico esta no es la única herramienta, pero es con la que mas me acople. esta herramienta es “paros proxy” http://parosproxy.org/ el cual es un testeador de seguridad de paginas web, es independiente al lenguaje , ya que no analiza del lado del servidor, sino del lado del cliente…, así que pueden testear tanto Asp.Net, como PHP, jsp, etc….


Básicamente este programa analiza el http Request y el Response, y hace unas pruebas básicas sobre Sql injection entre otras cosas.. y luego entrega un informe de en que parte es vulnerable y el por que.. si como lo ven dice el por que y el como…., lógicamente que algunas veces el programa inconscientemente hace literalmente un ataque al servidor… y puede hasta llegar a inyectar parámetros de verdad en una aplicación….


Como dije esta no es la única herramienta, hay otras mas, y hay hasta un complemento para Firefox…. este programa esta basado en java,… si como lo ven no es en .net… hasta allí todo bien.. no?… pero este programa tiene algo mas que lo hace interesante… este programa para poder funcionar tiene que ser un proxy entre la aplicación y el Internet…, así que todo lo que pase por el Navegador, pasa por esta aplicación… y uno puede ver como Firefox y Google se roban info de lo que navegamos … mismo spyware…,


Entre otras cosas, podemos ver encabezados http, el response y el request…., y no solo eso….. “podemos modificarlo”!!, … o si lo desean… podrían navegar directamente…. bueno mejor por ahora no digo mas…. quizá ya se están dando ideas al respecto….


este programa tiene muchas opciones…..


Puse esta información en post aparte ya que no quiero mezclar información.


Este tipo de herramientas, me hacen recordar a mi profesor de física de la universidad donde estudie ( UNI ) , el cual me decía que  no importa la herramienta que usemos, que podía parecer muy simple, pero que muchas veces las limitaciones las ponía el , ese profesor se apellidaba Cisneros, estaba bien loco, se perdía en la biblioteca,  como dicen en México, se le iba el avión…., pero en física era un genio, y el usaba  el LOGO para los laboratorios de física, hacia cálculos matemáticos complejos además de animaciones de gráficos que  obtenía de los datos ingresados.., así que cuando encontré esta herramienta hace un par de años atrás , me puse a investigarla y … como dice el lema de la web  “MITM Proxy + Spider + Scanner + Your Imagination!!” , con este programa se pueden hacer maravillas, ya depende cada uno…  y de que tan lejos quieran llegar.


pueden descargar el programa desde : http://sourceforge.net/project/showfiles.php?group_id=84378


el post que viene ( espero que salga hoy… sino sin falta mañana … seria sobre la seguridad en Asp.Net, logicamente que no del lado que le gusta a microsoft.. )


Hasta Luego.


Dacito ( El Ddaz)

:) Publicacion cruzada desde Geeks.ms :) http://geeks.ms/blogs/ddaz