Monday, August 31, 2009

No atribuir a la maldad lo que se pueda atribuir a la ignorancia


A


B

C

En el post anterior un visitante dejo una inquietud sobre como evitar que la información sensible de las empresas se encuentre disponible en Google.

La información es uno de los activos mas valiosos de la empresa, y la tarea de las personas que trabajan en seguridad informática es velar por su

Confidencialidad
Integridad
Disponibilidad

De los anteriores puntos, la confidencialidad es quien esta siendo mas amenazada debido a las nuevas tecnologías.

Yo veo esto de la siguiente manera :




Imaginemos que nuestra empresa es un cubo de madera.

Tenemos la información, que es representada por el agua

Redes sociales, dispositivos de almacenamientos móviles, smartphones, extranets, outsorcing son grietas por donde la información se puede filtrar.

Y si los anteriores conforman las grietas, Google es el sumidero donde en algun momento la información llega.


Como funciona Google ?

Google tiene un software llamados spider ( araña ) que recorre la web ( red... ) indexando todo el contenido que tiene permiso de lectura. Este proceso llamado Web Crawling se puede observar en el siguiente gráfico.


Les recomiendo visitar este link para obtener informacion en profundidad. sobre este punto.

Google indexa todo o casi todo, entre los principales tipos de documentos que reconoce tenemos, html,php,asp,cgi, pdfs, docs, planillas de calculo, archivos de texto,flash,powerpoint....

Si cualquiera de estos tipos de archivos con información confidencial, se encuentra en un directorio accesible en internet y el spider de google lo alcanza, game over.

Una anécdota

Como saben, me estoy volviendo viejo y reaccionario, unos de los achaques que llegan con la edad, es la de repetir siempre las mismas historias.

Tiempo atras, trabaje en una empresa en la cual Recursos Humanos implemento un sistema de gestion de personal, el cual no fue homologado por el departamento de seguridad del cual formaba parte.

Un buen dia recibimos por mail, que los recibos de sueldo nos serian entregados en forma digital.

Para eso, nos enviaban una direccion en la intranet, a la cual ingresábamos con nuestro numero de empleado.

Dentro de este sistema se encontraba toda la información del empleado, datos personales, sueldos, vacaciones, información de la familia.

El primer problema que encontré fue que el ingreso de usuario y password no se encontraba encriptado.

Luego de ingresar y sabiendo que mis datos podían estar en peligro, ingrese en un par de campos, caracteres que me permitían descubrir si el sistema sufría problemas de sqlinjection.

Fue una masacre.

En 15' minutos podía acceder a los datos de todo el personal.

Buscando un poco mas, podía acceder desde internet al archivo de configuración de la instancia de la aplicación.

Informe a mi superior sobre el problema, indicándole que además de estar el software con problemas en la intranet, el sistema también estaba publicado en internet con similares problemas.




Luego que de caer la lluvia radio-activa mi jefe me pidio que prepare un informe.

Cuando la gente de Recursos Humanos fue notificada de los problemas, me tiraron los perros que desarrollaron el sistema, una empresa externa.

Les entregue el informe, detallando los problemas y como solucionarlos.


A la semana, la empresa que desarrollo el sistema informa que la resolución del problema tomaría varios meses y que habia que encontrar un workaround. Y esta fue la genialidad que se les ocurrió.

Resolvieron el problema, quitando la aplicacion de internet, hasta que arreglaran los problemas de fondo y quitaron los Sqlinjection mas groseros.

Como a mi entender eso no solucionaba el problema, amplie el rango de estudio.

Primero ejecute una busqueda en Google de todos los servers publicos de la empresa que hacia hosting de la solucion :

inurl:dominio.com

Esto trajo como resultado una sorpresa, esta empresa estaba haciendo el hosting de la aplicacion para otros clientes.

Es decir, Google devolvia resultados asi :

host1.dominio.com/empresaA
host1.dominio.com/empresaB

Ejecutando un test de inyeccion sql para verificar el hostname, encuentro que todas las instancias estaban sobre el mismo equipo.

' union all select select @@servername'--
No conforme con esto y viendo el grado de descontrol que mostraba la implementacion, tengo la feliz idea de realizar el mismo procedimiento de busqueda en Google sobre el dominio de la empresa que desarrollo la aplicacion.


Por una mala configuración del webserver se podia acceder al codigo fuente de la aplicacion, patches , documentos de reuniones y bases de datos con passwords y datos de clientes.

El informe siguiente, tenia varias carillas, ya que agregue a la informacion anterior, los nuevos descubrimientos.

Resultado :



Porque ocurrió esto ?

Existía una puja política entre la direccion de RRHH y la direccion de Sistemas. La persona que ocupaba el cargo de director de RRHH habia sido desplazado por el nuevo director de Sistemas y la comunicación entre ambos sectores se habia deteriorado al punto de no seguirse las políticas que ambas direcciones habian desarrollado.


Como se puede evitar este tipo de problemas ?

Lo primero que debemos implementar es una política de seguridad que contenga entre sus puntos un procedimiento para la clasificación de la información, Data Wipping, disaster recovery....

Cada empleado debe firmar a su ingreso un documento de confidencialidad y debe tener acceso a la Política de Seguridad.

También debemos capacitar a nuestros colegas, generar campañas de concientizacion del valor de la informacion.

Cada partner debe firmar un acuerdo de confidencialidad y debe completar un documento con preguntas sobre su infraestructura de seguridad y como manejara los datos de la empresa.

Desde el punto de vista de la arquitectura de nuestras soluciones, nunca debemos colocar en internet servers que contengan informacion que confidencial. Por ejemplo, el mismo webserver contiene la aplicacion de los usuarios de un sitio de e-commerce y la interfaz de management de los mismos.

Los procedimientos standards de configuracion de Webservers deben contemplar el hardening de los mismos, incluyendo el uso de archivos robots.txt configurados para evitar el acceso de los spiders a sitios indebidos.

Debemos realizar periódicamente un pentest de nuestro sitio que contemple entre sus puntos la busqueda en google de informacion de nuestra empresa. Opcionalmente podemos tener busquedas automatizadas que nos informen cuando encuentran informacion relevante ( sql's, *.inc, archivos con passwords...)

Tal vez lo mas difícil es ser constantes !!! La seguridad es un proceso, esto nunca termina. En verdad termina solo para la información que puede ser hecha publica o es destruida.

Hoy mientras escribia este post, vi con desazon que la empresa volvio a tener los mismos problemas de antes, su proveedor luego de corregir los errores hoy luego de un año tiene nuevas vulnerabilidades expuestas en internet.

Increiblemente o no, el partner es Microsoft Gold Certificate Partner


Y esta certificado por BvQi




Por ultimo, las imágenes que encabezan el post, expresan un poco lo que ocurre muchas veces cuando uno encuentra informacion clasificada en Google.

Tanto el dueño del pobre auto que sufrio el tunning, como el pobre perrito que orino sobre el cartel no podemos condenarlos por sus actos ya que son victimas de la ignorancia, en mayor o menor medida.

En el caso de Jorge W, es diferente, ese si es un reverendo hijo de puta. ( con todo respeto )

Ustedes que opinan ?

1 comment:

amash// said...

Hayyyyyy!!!! Esto me suena tan conocido... Sistemas vs RRHH.
Nunca fallaba en mi antiguo trabajo xD!
Algo parecido pasó con una aplicación de Ticketing Interna que la abrieron para el exterior (otros clientes que teniamos afuera) la cual estaba con problemitas más que similares.

El problema a veces está en Seguridad Informatica, que no le da bola a estas cosas. Cuando no hay politica, es un desastre.

Abrazo señor y me encanto la genilaidad3 xD