Steve Milner es un analista de seguridad informatica de Carolina del Norte (Estados Unidos). Utiliza Fedora para auditar aplicaciones web y hallar brechas de seguridad. Steve nos muestra algunas aplicaciones de Fedora ideales para llevar a cabo análisis de seguridad, y además nos ofrece algunos consejos para que podamos mantener nuestros sistemas siempre seguros!
Por todos los Estados Unidos de Norteamérica. Actualmente vivo en Raleigh.
Analista de seguridad/Desarrollador.
Ashcrow. Cuando estaba en la escuela secundaria realmente me fascinaba "The Crow". Usaría muchas distintas referencias con Crow en mis apodos de IRC, pero ashcrow fue el único con el que me quedé.
Mi primer contacto con Fedora fue Fedora Core 2. En ese momento era un usuario de Debian "de los duros". Ya que había utilizado Red Hat Linux en el pasado, decidí darle Fedora Core 2 una oportunidad. Honestamente pienso que Fedora Core 2 era simplemente buena, pero Fedora Core 3 me impresionó tanto que decidí instalarla en la computadora de mis padres. ¡Y a mi mamá realmente le encantó!
Leyendo código. En bachillerato estaba muy interesado en escribir código pero la mayor parte de los libros de programación eran bastante caros para mí. Recuerdo haber obtenido una copia de un viejo libro de lenguaje C, a mediados de los 90's con un disquete de 5 1/4" que me enseñó un poco. Pero la mayor ganancia que obtuve fue ver realmente a programadores de software libre y código abierto, haciendo su trabajo. Desde ese momento, comencé a escribir código y enviar parches a proyectos, y terminé siendo contratado en una pequeña empresa antes de su expansión al desarrollo de aplicaciones web, en Orlando, Florida.
En pocas palabras, auditoría de seguridad es buscar problemas de seguridad en una aplicación o sistema. Una vez hallados, los riesgos son registrados y se reportan a los desarrolladores con información sobre como corregir esos problemas. Principalmente hago auditorías de seguridad de aplicaciones web y pentests (pruebas de penetración).
La primer línea de riesgos sobre los cuales indago, son los mismos listados en OWASP's Top Ten (Proyecto Abierto de Seguridad de Aplicaciones Web). De los 10 listados comienzo a buscar lo que pueda encontrar acerca de los más comunes: inyecciones de código, scripting de sitios cruzados (XSS), falsificaciones de petición de sitios cruzados (CSRF) y redirecciones sin validar. Después de detectar las más comunes, comienzo a indagar más a fondo en la aplicación y encontrar problemas en la lógica de programación, mensajes de error, etcétera... que ayudarán a descubrir otros riesgos de seguridad.
Nmap, ratproxy y python.
Cuando se hace una auditoría es importante se capaz de escribir ataques rápidos de prueba de concepto (POC). Python tiene una plétora de módulos que hacen ataques POC una delicia. Para enumerar algunos:
ipython y bpython son también ambientes de escribe-mientras-avanzas para intentar rápidas variaciones en ataques de POC. Usar módulos de Python así como herramientas generales de seguridad controladas por Python, rápidamente hacen de este lenguaje de programación una herramienta indispensable.
Nmap (http://nmap.org/) es una herramienta de exploración de red. Nmap escanea un equipo o un conjunto de equipos y responde con información. Es comúnmente usado como un analizador de puertos.
Nmap puede encontrar o escanear prácticamente cualquier máquina en la red. La he usado desde hace tiempo cuando auditaba máquinas con Windows u OS-X también.
Yo uso Nmap como parte de mis auditorías junto con NSE (Motor de scripts de Nmap), scripts que en su mayoría provienen directamente del proyecto Nmap. Usualmente lo utilizo para revisar el estado del cortafuegos, servicios abiertos en un sistema y que versiones de los servicios están corriendo. Eso ya te arroja un reconocimiento inicial.
Ratproxy (http://code.google.com/p/ratproxy/) es un proxy de auditoria pasiva de aplicaciones web. Se sitúa entre el navegador y la aplicación web que usted este auditando y recoge información según usted se vaya moviendo en el sitio. Este puede analizar casi cualquier aplicación web, sin importar el sistema operativo en el cual se este ejecutando. Como Ratproxy es pasivo se puede utilizar con aplicaciónes ajax.
Utilizo una instalación de dos máquinas y tres monitores, con GNOME y synergy. Realmente espero que GNOME Shell sea considerado estable. ¡Lo uso en mis computadoras personales y realmente me encanta! Y si puedo, intento correr prácticamente todo a través de la terminal. Encuentro las aplicaciones en la terminal mucho más fáciles especialmente desde que comando todo a través de byobu/screen.
Uniendo una redirección sin validar y una petición falsificada de sitio cruzado, monté un vínculo que haría lo siguiente:
¡No confíes en tus usuarios! Deberías escribir código con la expectativa de que habrá al menos un usuario malicioso que no se detendrá ante nada para encontrar problemas en tu aplicación.
¡No olviden lo fundamental! Mantengan actualizando, usen reglas adecuadas para el cortafuegos (y usen el cortafuegos), apaguen servicios que no necesiten y usen contraseñas adecuadas.