sábado, 9 de octubre de 2010

Volver a bloggear: tarea ardúa!

Retomemos un poco



Pasó mucho tiempo desde la última vez que posteé algo en el blog y mucha agua por debajo del puente. Básicamente me perdí en el laburo y otras yerbas, pero nunca dejé de estar conectado y surfear éste universo.

Hagamos un borrón y cuenta nueva! Se puede decir que ahora si estoy terminando la facultad y aunque para mi falta mucho es evidente que estar en 5to año es estar un poco más cerca. Como tantas cosas han cambiado voy a empezar a comentarles a que me estoy dedicando actualmente y cuales son mis nuevas pasiones informáticas para que se vayan acostumbrando a ver noticias relacionadas a ellas en el blog: seguridad en informática y iOS Development.



Seguridad en Informática




Éste año tuve que encarar las últimas materias de la universidad y dentro de ese paquete de asuntos pendientes estaba la materia Seminario de Informática II que hace ya unos años cambió de nombre por Seguridad en Informática.

La razón por la que empecé a estudiar Ingeniería en Informática fue para saber bién como funcionaba el mundo de las computadoras y la información que éstas manipulaban. Si me apasionaran las computadoras per se, hubiese estudiado Ingeniería Electrónica.

Programar cosas y que éstas sean usadas por la gente es algo que quiero hacer desde que tenía trece o catorce años. Sin embargo, lo que siempre quise hacer o quiero hacer es dedicarme a buscar vulnerabilidades (de ser posible explotarlas con fines educativos), experimentar con nuevas tecnologías y hacer cosas locas a través de Internet.

Como trabajo práctico anual de la materia Seguridad en Informática tenemos que establecer un convenio legal con una empresa para revisar la seguridad de su aplicación web y como ésto afecta su presencia en Internet. A mi me surgió la posibilidad de hacerlo con el sitio de una organización gubernamental muy importante de la ciudad en la que vivo. Tuve que esperar la firma del convenio legal y mientras tanto sucedieron muchas cosas en el penetration test.

Primero tuve que hacer pruebas de SQL Injection básicas y no brindaron resultados alentadores ya que los errores se mostraban con una pantalla de error genérica. Luego con un proxy de por medio no pude enviar información modificada al servidor.

La frustación fue en aumento a medida que me encontré con nuevas barreras.

Me desvelé muchas noches a la espera de encontrar algún agujero en su implementación de seguridad en la base de datos, y luego de casi una semana haciendo Blind SQL Injection encontré una URL en la que no se filtraba bien un dato que se pasaba como parámentro y tranquilamente podría haber sido estático en el CSS del sitio.

Empecé a armar un DER inverso de cada base de datos para entender como era la estructura de las mismas. Luego con una consulta más rebuscada en la inyección me di cuenta que podía consultar otras bases de datos que estaban en el mismo servidor.

En resumidas cuentas, logré bypassear las restricciones que tenía el servidor de base de datos y realizar las consultas que necesitara. Así logré sacar cuentas de usuarios y contraseñas de ésta entidad gubernamental pero aún no tenía el convenio firmado y era problemático tener esa información tan sensible sin el pertinente respaldo legal.

Probando si la aplicación era vuelnerable a XSS, pude hacer cosas divertidas como sacar cookies e insertar iframes en las páginas y dentro de esos componentes mostrar imágenes de LOL CATZ.



Con éstos resultados más que positivos me dediqué a crear el correspondiente informe gerencial que la materia requería para entregar a la organización a la cual estábamos auditando. Correcciones más, correciones menos la cátedra de la materia me dijo que estaba en condiciones de presentar el reporte. Por eso mismo me dediqué a llamar, mandar mails y señales de humo a mi contacto de la organización, que dicho sea de paso yo venía haciendo todas las semanas, para que firmaran cuanto antes el convenio.

Luego de casi 3 semanas de tratativas y al regreso de las vacaciones de mi contacto se me informa vía mail que el convenio, que desde primer momento se había estipulado informalmente llevar a cabo, no iba a ser concretado por cuestiones internas de la organización. Con lo cual los 3 meses de trabajo, las noches de desvelos, las inyecciones de Blind SQL, y los ataques de XSS no me servían de nada como parte del trabajo de la materia. Sin embargo, la cátedra se apiadó de mi y me aceptó el reporte como si fuera la organización.



Y ahí en adelante el bichito de hacer pentesting se instaló en mi y ahora estoy involucrado en el mundo de la seguridad en informática aunque me gustaría estarlo más (luego les voy a contar de la EkoParty 2010) y dedicarme full-time a ésto.



A continuación les dejo unos eBooks relacionados a la Penetration Testing en aplicaciones web.



Syngress Penetration Testers Open Source Toolkit Volume 2 - ISBN 1597492132 (Oct 2007)

http://gog.gateit.net/books/Syngress.Penetration.Testers.Open.Source.Toolkit.Volume.2.Oct.2007.ISBN.1597492132.pdf



APress - SQL Server Security Distilled 2nd Edition - ISBN 1590592 (Sep 2008)

http://gog.gateit.net/books/Apress.SQL.Server.Security.Distilled.2nd.Edition.Sep.2008.ISBN.1590592190.chm



APress - Expert Shell Scripting - ISBN 143021841 (Jan 2009)

http://gog.gateit.net/books/Apress.Expert.Shell.Scripting.Jan.2009.ISBN.143021841X.pdf



iOS Development




A principios de Febrero de 2010, entré a trabajar en una empresa de Mar del Plata en el área de mobile ya que antes había hecho trabajos de desarrollo de aplicaciones para dispositivos móviles. Si bien nunca había desarrollado en Objective-C para iOS, no me resultó difícil empezar a escribir mis primeras líneas de código.

Se hicieron varias aplicaciones en la empresa, pero no fue necesario hacer muchas para saber y entender que desarrollar en Objective-C y Cocoa Touch era algo que me gustaba mucho.

En futuras ediciones voy a dar explicativos y tutoriales de como resolver cuestiones básicas para nuevos desarrolladores de Objective-C.

Hoy por hoy estoy desarrollando aplicaciones para iOS en Lateral View (http://www.lateralview.net) y la verdad que me siento muy cómodo afrontando desafíos.

Por cuestiones de confidencialidad no podemos contar quienes son nuestros clientes ni de que se tratan las aplicaciones, pero sepan que estamos haciendo cosas divertidas, atractivas y robustas!

Hay empresas con intenciones de apostar a lo mobile y en los últimos meses muchas empresas han estado tanteando el ambiente y la fauna informática de Mar del Plata para ver la factibilidad de venir a tomar desarrolladores iOS.



A continuación les dejo unos links con eBooks sobre desarrollo para iOS que son útiles para aquellos que desean iniciarse en el mundo del Objective-C y Cocoa Touch.



APress - iPhone Games Projects - ISBN 1430219688 (Jun 2009)

http://gog.gateit.net/books/Apress.IPhone.Games.Projects.Jun.2009.ISBN.1430219688.pdf


APress - iPhone Advanced Projects - ISBN 1430224037 (Nov 2009)

http://gog.gateit.net/books/Apress.IPhone.Advanced.Projects.Nov.2009.ISBN.1430224037.pdf


APress - iPhone User Interface Design Projects - ISBN 1430223596 (Dec 2009)

http://gog.gateit.net/books/Apress.IPhone.User.Interface.Design.Projects.Dec.2009.ISBN.1430223596.pdf


APress - Learn Xcode Tools For Mac OS X And iPhone Development - ISBN 143027221 (Jan 2010)

http://gog.gateit.net/books/Apress.Learn.Xcode.Tools.For.Mac.OS.X.And.IPhone.Development.Jan.2010.ISBN.143027221X.pdf


No hay comentarios: