lunes, 11 de junio de 2012

Cómo defendernos de los Google Hackers

Antes de ver como podemos prevenir ser víctimas de los Google hackers, veamos que es Google Hacking. 

Google Hacking: 
Google hacking es una técnica de hacking que utiliza Google Search y otras aplicaciones de Google para encontrar brechas de seguridad en la configuración y en el código que utilizan los sitios web. –Wikipedia. 

Google es un motor de búsqueda muy potente y es capaz de hacer muchas cosas que son muy útiles para un hacker. Utilizando simples dorks de Google, es posible hackear un sitio web y muchos desarrolladores web no logran protegerse a sí mismos o a la información de sus clientes de tales ataques. Por ejemplo, usando Google dorks, el atacante puede extraer información diversa, tal como detalles de configuración de una base de datos, nombres de usuario, contraseñas, listados de directorios, mensajes de error, etc. Por ejemplo: 

intitle:index.of.config 

Estos directorios pueden dar información sobre la configuración de un servidor web. Esta información no está destinada a ser pública ya que contiene archivos con contraseñas dependiendo del nivel de seguridad. También puede contener información sobre los distintos puertos y permisos de seguridad.

La razón principal de estas fugas de información es una política de seguridad inadecuada en relación con la información que se publica en Internet. Existen unos pocos métodos con los cuales podemos proteger nuestro servidor web.

Un servidor web de acceso público se utiliza por lo regular para almacenar información a la que se accede públicamente desde internet y si en realidad nos encontramos preocupados por mantener la información de manera privada, entonces la forma más fácil y adecuada es mantenerla lejos de este tipo de servidores. A pesar de que tales archivos o documentos se puedan mantener aislados, es fácil tener acceso a dichas páginas. Todos conocemos los riesgos asociados con el hecho de que se muestren los listados directorios, los cuales pueden permitir a un usuario ver la mayoría de los archivos almacenados en el directorio raíz principal y sus subdirectorios, etc. Algunas veces, incluso el archivo .htaccess se muestra en el listado, este archivo es utilizado para proteger los contenidos de contenido del directorio del acceso no autorizado, pero una simple mala configuración puede permitir que este archivo se muestre en la lista y se pueda también conocer su contenido. Esto también es debido a que muchos administradores tienen la costumbre de cargar información importante en sus servidores para permitir el acceso desde cualquier lugar y que luego dichos contenidos son indexados por los rastreadores de los buscadores web. Una de las reglas simples puede ser que los administradores de los sitios web agreguen un archivo robots.txt que define lugares específicos del directorio principal, de forma tal que el motor de búsqueda no lo explore y no lo almacene en su caché. Para protegernos de los buscadores, podemos utilizar el archivo robots.txt para evitar la indexación de tales documentos o directorios.

Ejemplo: User-agent: *Disallow: /documentos


También, para bloquear páginas web específicas o si no queremos que una página en particular sea indexada por algún motor de búsqueda, podemos utilizar algo como el meta tag "meta name=’spider_name’ content=’NOarchive’"


Ejemplos de Robots.txt

El siguiente ejemplo permite a todos los robots visitar todos los archivos:

User-agent: * 
Disallow: 


Esta entrada mantendrá alejados los robots de todos los directorios:

User-agent: * 
Disallow: / 


Podemos especificar directorios particulares que no queremos que sean indexados. El siguiente ejemplo mantendrá alejados los robots del directorio /infosec/ y sus subdirectorios:

User-agent: * 
Disallow: /infosec/ 


Al no incluir el / final, también podemos evitar que las arañas (web spiders) hagan rastreo de los archivos contenidos en dicho directorio.


El siguiente ejemplo evitará que los robots de Google (googlebots) rastreen cualquier cosa en nuestro sitio, pero permite que otros robots accedan a todo el sitio:

User-agent: googlebot 
Disallow: / 


La siguiente meta-etiqueta (meta tag) evitará que todos los robots puedan rastrear cualquier enlace en nuestro sitio:

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">


También podemos denegar o permitir que ciertas arañas puedan utilizar esta etiqueta:

Ejemplo: <META NAME="GOOGLEBOT" CONTENT="NOINDEX, NOFOLLOW">


Para obtener mayor información, podemos visitar: http://www.robotstxt.org/wc/exclusion.html#meta.

El dork de Google para verificar la existencia del archivo .htaccess es intitle:index of “.htaccess”
Esto mostrará los sitios web que tienen el archivo .htaccess en un listado de directorios. 

El listado de directorios debería ser deshabilitado a menos que este sea requerido. El listado de directorios también ocurre cuando el archivo principal del sitio web (index.html, index.php, etc.) definido en el servidor web, se encuentra ausente. En servidores web apache, podemos deshabilitar los listados de directorios utilizando un guión o un símbolo menos (-) antes de la palabra Indexes en al archivo httpd.config.


Verifiquemos nuestros sitios: 

Este artículo intenta mostrar como podemos verificar nuestro propio sitio web con el fin de tener una idea de los posibles riesgos de seguridad y prevenirlos mediante pruebas manuales y automatizadas. Muchos desarrolladores web no conocen de hacking web o de otras técnicas de pruebas de penetración como si lo sabe un pentester. En este tema cubriremos como prevenir que nuestro sitio web sea víctima del Google hacking. Podremos observar nuestro sitio desde la perspectiva de Google. 

Iniciando con un método manual, el dork de Google más común y simple es la palabra clave site. Esta palabra se puede utilizar si queremos limitar los resultados de búsqueda de un dominio o servidor específico. Por ejemplo site:amazon.com puede listar todas las páginas del dominio amazon.com almacenadas en el caché de Google. 


Ahora podemos hacer click y abrir todos los enlaces listados y verificar si la información mostrada es supuestamente pública o no, pero parece que esto nos puede tomar bastante tiempo si los resultados de la búsqueda contienen cientos o miles de enlaces. Entonces, de acuerdo a este escenario, podemos optar por unas pruebas automatizadas.
 

Las herramientas que veremos son:
  • Gooscan
  • Sitedigger
  • Wikto


Gooscan: 

Gooscan es una herramienta basada en Linux y puede utilizarse para realizar búsquedas por volumen en Google. Esta herramienta viola los Términos de Servicio de Google (Google TOS) ya que no utiliza la API de Google. Y si utilizamos una herramienta tal que viole Google TOS, entonces podemos esperar que obtengamos algunas direcciones IP bloqueadas.

Opciones de Gooscan:

Hay una lista de opciones disponibles en esta herramienta para obtener varios resultados. Hay dos parámetros requeridos que tienen que pasarse para realizar el análisis y otros opcionales.

Los parámetros requeridos son:
  • -t target: Este es utilizado para analizar un sitio objetivo. Un objetivo puede ser un nombre de máquina o una dirección IP. 
  •  -q query | -I query_file: Este parámetro se utiliza para realizar una búsqueda esperando obtener un resultado específico. El parámetro –q toma solo un parámetro simple o en otras palabras, un dork de Google simple. Por ejemplo: -q intitle:index of ".htaccess" 

La herramienta también puede tomar múltiples búsquedas que pueden ser leidas de un archivo de texto simple.
Los parámetros opcionales son:
  • -o output_file: Si deseamos crear un archivo .html de resultados. Este contendrá todos los enlaces que fueron obtenidos como resultado de la búsqueda.
  • -p proxy:port: Para utilizar un servidor proxy de html.
  • -v: Modo detallado (Verbose mode). 
  • -s site: Como lo vimos anteriormente, puede utilizarse para obtener los resultados de un sitio o dominio específico. 


Utilizando Gooscan:

Gooscan puede utilizarse de dos formas, enviando una consulta simple o enviando múltiples consultas. Un simple ejemplo puede ser:

Gooscan –q "hack" –t www.google.com –s amazon.com


Para crear un archivo html con los resultados obtenidos

Gooscan –q "hack" –t www.google.com –o amazon.html

Realizar una búsqueda con múltiples consultas utilizando Gooscan puede causar problemas. Con el fin de evitar esto, podemos enviar pequeños lotes de consultas en lugar de enviar una grán cantidad de archivos. 

Para crear un pequeño archivo de datos, utilizamos el comando head.

Head -5 data_files.gdork.gs > data_files/small_dorks.gs

Gooscan –t www.google.com –i data_files/small_dorks.gs –o multiplequeries.html 


Una vez se haya creado el archivo de resultados, hacemos click en los enlaces que veamos sospechosos.


SiteDigger: 

La primera y mas básica herramienta es SiteDigger, creada por Foundstone (ahora propiedad de McAfee). Sitedigger se integra con la base de datos de Google hacking database y hace uso de la API de Google. Sitedigger nos permite seleccionar únicamente un sitio para hacer pruebas y seleccionar aquellas firmas de Google hacking que queremos ejecutar en este o también seleccionar cualquier categoría de dork y ejecutar la consulta, la cual mostrará los enlaces resultantes correspondientes. Seleccionamos cualquier consulta y hacemos click, los elances se mostrarán en los resultados.




Wikto:

Wikto es otra herramienta que es utilizada para Google hacking. Es una completa herramienta de análisis web, lo que significa que podemos utilizar esta herramienta para probar el servidor y las aplicaciones que corren en este. Para realizar Google hacking, tenemos un applet llamado Googler. Este applet buscará ciertos tipos de archivos en el índice de Google los cuales son importados y utilizados como backend. Existe otro applet que puede utilizarse en Wikto y es llamado GoogleHacks el cual importa la base de datos de Google Hacking (GHDB) y ejecuta las consultas desde GHDB automáticamente para cualquier sitio web.



Google Hack Honeypot: 

Google Hack Honeypot (GHH) está diseñado para proveer reconocimiento contra atacantes que utilizan motores de búsqueda como herramienta de hacking. Este implementa el concepto de honeypot para proporcionar seguridad adicional a nuestro sitio web. El mejor factor de esto es que nos permite monitorear cualquier intento de los atacantes en comprometer nuestra seguridad. GHH también tiene una funcionalidad de registro de eventos que podemos administrar y tomar las acciones correspondientes.

Podemos descargar esta herramienta de http://ghh.sourceforge.net/ 

Detalles sobre su instalación en http://ghh.sourceforge.net/gettingstarted.php 



Conclusión: 

Es esencial seguir las buenas prácticas de desarrollo seguro e implementar revisiones de seguridad de código en este alcance. Para un mejor entendimiento, podemos remitirnos a la guía OWASP para seguir las mejores prácticas. También existe una opción para solicitar la remoción inmediata del contenido del índice de Google. Esto puede lograrse mediante el envío de una solicitud a Google después de registrarse a través de una cuenta de Google en el sistema de eliminación automática de URLs de Google, ya sea después de crear las etiquetas META o el archivo 'robots.txt' en el servidor web.


Crossposted from Defending yourself from Google hackers