Auditoria de Seguridad Informatica

2,473 views
2,357 views

Published on

Información de sitios web mediante el empleo de herramientas para crear una auditoría de seguridad informática.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,473
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
137
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Auditoria de Seguridad Informatica

  1. 1. Auditoría de Seguridad SEGAL 08/11/2012
  2. 2. ÍNDICE: Entorno:……………………………………………………………………………..………………………………………3 Introducción:………………………………………………………………………………………………………………4 WebScarab:………………………………………………………………………………………………………………..5 Instalación:…….…………………………………………………………………………………………………6 Utilización:……………………………………………………………………………………………….……….7 Nessus:…………………..……………………………………………………………………………………………..…..8 Instalación:…….…………………………………………………………………………………………….…..9Utilización:……………………………………………………………………………………………………….………..10Wireshark:…………………………………………………………………………………………………….…………..11 Instalación:…….…………………………………………………………………………………….…………12 Utilización:………………………………………………………………………………………………………13Nmap:……………….………………………………………………………………………………………….…………..15 Instalación:…….…………………………………………………………………………………….…………16 Utilización:………………………………………………………………………………………………………17Detección, comprobación y evaluación de vulnerabilidades……………………………………….18Web Elegida:….…………………………………………………………………………………………..………………20 2
  3. 3. ENTORNO El empleo de las herramientas se desarrollará en diversos entornos como pueden ser Windows y Linux que son con los que habitualmente trabajamos y los más extendidos sin tener en cuenta los sistemas operativos de Apple. La máquina Windows en la que trabajamos es un Sistema Operativo de 64 bits, dispone de un procesador Intel Core i3 a 2.4 GHz y dispone una memoria RAM de 4.00Gb. El sistema operativo es una versión estable; por lo que en un principio a la hora de instalar las herramientas no debería de dar ninguna clase de problema. Sin embargo, hay muchas de las herramientas que mencionamos más adelante que no están disponibles para entornos Windows y por lo tanto su instalación se llevará a cabo en máquinas Linux. Así pues, las máquinas Linux de las que disponemos son máquinas virtuales construidas en el sistema operativo Windows nombrado unas líneas atrás. La distribución de Linux empleada es la denominada Debian. Es una distribución que carece de entorno gráfico y que por lo tanto consume menos recursos de nuestra máquina real. No obstante, nuestra máquina virtual dispone de una memoria RAM de 512Mb, un procesador virtual que adquiere parte del físico sin consumir demasiado y un disco duro de 8GB (suficiente para trabajar con nuestras herramientas). Por lo tanto, podemos decir que disponemos de una máquina real Windows y una máquina virtual Debian en la que llevaremos a cabo todas las instalaciones de las herramientas de seguridad. Aunque, sin embargo, la mayor parte de las herramientas las instalaremos en Windows en lugar de Linux. 3
  4. 4. INTRODUCCIÓN El presente documento trata sobre una auditoría de seguridad. Dicho documento contendrá un análisis de seguridad sobre una página web específica con la resolución de posibles fallos y errores con las herramientas introducidas en un documento PDF ofrecido en clase. Las auditorías de seguridad informática nos dejan conocer en el momento de su realización cuál es la situación exacta en cuanto a la protección, medidas y control de un sistema informático. Estas herramientas procederán a darnos una solución a los problemas de la página web elegida así como un exhausto análisis de seguridad el cual adjuntaremos en estedocumento. No obstante, se adjuntarán los pasos necesarios para la correcta instalación de lasherramientas elegidas y el procedimiento sobre cómo utilizarlas.Así pues, las herramientas empleadas serán un total de entre 5 y 10. Entre de las cualespodríamos destacar Nessus, WebScarab, Nmap y Rkhunter, entre otras.La decisión acerca de la instalación de las herramientas sobre una máquina Windows en lugarde una con entorno GNU/Linux es muy simple de explicar. Podría empezar diciendo que lainterfaz gráfica de Windows requiere menos complejidad y desgraciada o afortunadamente(depende de la persona) menos conocimientos acerca del sistema operativo en cuestión.Sin embargo, las instalaciones posibles las vamos a realizar en entornos Windows ya que asínos privamos de encender una máquina virtual Linux después de encender la máquina realWindows. Sobre todo es por comodidad, aunque en la instalación de las aplicaciones oherramientas, se explicará cómo instalarlo en cualquiera de las dos máquinas por lo que sialguien quisiera realizarlo en una máquina con sistema operativo Linux podría hacerloperfectamente.La intención ha sido desde un primer momento instalar al menos 5 herramientas de detecciónde vulnerabilidades, pero el tiempo aprieta y nos hemos visto acorralados por él. Es por elloque en este documento solamente se explicará la instalación y utilización de tres de lasherramientas aunque en un principio en el índice hubiera puesto 5 al menos. Dichasherramientas de evaluación de vulnerabilidades serán las más importantes: Nessus,WebScarab y Nmap. 4
  5. 5. WebScarabWebScarab es una herramienta basada en java quepermite analizar las conexiones HTTP y HTTPS que serealicen en una red. Podríamos hacer una comparación con lasfuncionalidades que ofrecen diversos sniffers comoes el caso de Whireshark, con la única diferencia deque en WebScarab analiza el tráfico de internet,como hemos mencionado anteriormente, HTTP yHTTPS, mientras que los sniffers son bastante máscompletos analizando más que solo el tráfico de lared.Esta herramienta de testeo web, actúa como un proxy que intercepta al navegador web, y conello las peticiones que hace, así como las respuestas que devuelve. Como hemos visto duranteel curso, un proxy es una máquina que se sitúa entre dos ordenadores con la finalidad de queel ordenador de destino no sepa el origen del mensaje por diversos motivos como seguridad oanonimato. 5
  6. 6. INSTALACIÓNLa instalación de esta herramienta se puede realizar tanto en sistemas operativos Linux comoen Windows. La que procederemos a explicar es en torno a un sistema operativo Windows. 1- Visitar http://sourceforge.net/projects/owasp/files/WebScarab/ 2- Pinchamos en donde pone: 20070504-1631 3- Seleccionamos: webscarab-installer-20070504-1631.jar y descargamos el instalador en java. 4- Doble clic. Seguimos los pasos.NOTA: Si no tenemos Java instalado podemos instalarlo entrando a:http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html y seleccionamos el “jdk” que nos convenga. Seguimos los pasos de lainstalación.La instalación en Linux presenta una similitud con la instalación realizada en Windows ya que,como es una herramienta basada en java; necesitaremos disponer de Java en nuestro sistemaoperativo. A continuación procedemos a la instalación de WebScarab en Linux: 1- Vamos a la página oficial de descarga: http://sourceforge.net/projects/owasp/files/WebScarab/20070504-1631/ 2- Descargamos la el archivo con extensión .jar 3- Pasamos nuestro fichero “.jar” a la máquina Linux correspondiente y lo dejamos en un directorio como por ejemplo /home/alain mediante la utilización de WinSCP. 4- Ejecutamos el siguiente comando dentro de /home/alain: “java -jar ./webscarab-installer-20070504-1631.jar”***NOTA***Probablemente nos dé un fallo con el proxy. Para ello deberemos ir a opciones de internet denuestro navegador y cambiar la configuración del proxy por la siguiente:Proxy HTTP: localhost:8008 Proxy SSL: localhost:8008 6
  7. 7. UTILIZACIÓNBien, ahora que sabemos para qué se utiliza y cómo se instala WebScarab, necesitaremosaprender cómo utilizar esta herramienta. Para empezar a utilizar esta herramienta deberemosiniciarla con un doble clic en Windows y se nos abrirá la interfaz de WebScarab.Para empezar a interceptar los paquetes HTTP y HTTPS deberemos configurar dichaherramienta como proxy. Para ello deberemos ir a nuestro navegador (Internet Exporer),pinchamos en herramientas, opciones de internet; nos situamos en la pestaña denominadaconexiones y en configuración de LAN seleccionamos “Usar un Proxy para la LAN”.Introducimos localhost y el puerto 8008.Con estas opciones lo que hacemos es que toda la información que reciba o envíe nuestramáquina tenga que pasar obligatoriamente por el proxy, que en este caso es WebScarab.Una vez tengamos esas opciones configuradas correctamente para una buena utilización de laherramienta deberemos abrir las páginas que queramos y mientras vamos navegando por laspáginas, automáticamente la herramienta mostrará el tráfico que estemos generando asícomo darnos la opción de seguir adelante, cancelar la operación o abortar todo.Una vez paremos de navegar por la red, WebSacarab para automáticamente. 7
  8. 8. NESSUSNessus es una herramienta que investiga las direcciones web que le demos nosotros y haceuna evaluación de dicha página web.Esta herramienta es una de las herramientasmás famosas en torno a los sistemas operativosLinux, entre las que analizan y evalúanvulnerabilidades.Podríamos decir que Nessus se divide en“nessusd” (demonio que realiza el escaneo) y“nessus” (cliente que muestra al usuario elestado de los escaneos y el avance del análisis).Si se desea, los escaneos pueden ser extraídosen diversos formatos.Adjuntaremos uno de estos documentos sobrela analítica de la página web escogida para larealización de este trabajo. 8
  9. 9. INSTALACIÓNComo hemos comentado anteriormente, Nessus es una herramienta disponible para sistemasoperativos Linux, y por lo tanto la instalación se deberá realizar en una de las muchasdistribuciones que existen para este entorno.Nuestra máquina elegida ha sido Debian, máquina que utilizamos para trabajar diariamente enclase.NOTA: La instalación se llevará a cabo en una máquina virtual que no dispone de entornográfico y que por lo tanto se realizará mediante el uso de comandos. La instalación se realizarácomo root. 1- Entramos a nuestra máquina y nos ponemos como root para realizar la instalación. 2- ***Tecleamos: “apt-get install nessus nessusd”*** 3- Tecleamos: “nessus-adduser” para crear un nuevo usuario para Nessus. 4- Ponemos en marcha el servidor: “nessusd”***NOTA***Nessus instala el cliente mientras que nessusd instala el servidor. Quizás se diese el caso dequerer instalar únicamente el servidor (o el cliente) por lo que no es estrictamente necesarioescribir la forma de instalación tal y como hemos mencionado, sino que podríamos poner parainstalar únicamente el cliente: “apt-get install nessus” y para instalar el servidor “apt-getinstall nessusd”.Lo que sí es importante y 100% esencial es la necesidad de disponer de los dos paquetes deinstalación para poder utilizar adecuadamente esta herramienta. Dicho esto, pasemos a ver elmodo de utilización. 9
  10. 10. UTILIZACIÓNEsta herramienta de testeo de webs, es muy sencilla e intuitiva a la hora de utilizarla. Una veztengamos instalado Nessus en Linux como servidor; nuestra máquina Windows hará las vecesde cliente por lo que para que podamos conectarnos perfectamente al servidor de Nessusdeberemos hacer lo siguiente: 1- Nos desplazamos hasta la barra de direcciones de nuestro navegador web y en ella introducimos la dirección ip de nuestra máquina virtual Linux seguida de dos puntos 8834. Lo que hacemos con esto es especificar al navegador a qué puerto tiene que conectarse para hacer una conexión exitosa con Nessus. Un ejemplo sería el siguiente: 192.168.1.20:8834 En el ejemplo podemos apreciar nuestra dirección ip de la máquina Linux seguida de los dos puntos más el 8834 comentados anteriormente. 2- Como el servidor requiere de una conexión segura, antes de la dirección ip deberemos poner https:// quedando nuestra barra de direcciones de la siguiente forma: https://192.168.1.20:8834. 3- Una vez dentro de Nessus, seguramente nos aparezca un mensaje diciéndonos que no estamos utilizando una conexión segura. Ignoramos el mensaje y seguimos hacia adelante. 4- Una vez dentro, nos solicitará un usuario y una contraseña. En este apartado deberemos introducir el usuario con el cuál estemos trabajando en Linux esté lanzando el servidor, seguido de su contraseña. 5- Ya dentro de la aplicación, para lanzar un análisis de una página web cualquiera lo que deberemos hacer es pinchar en la pestaña que dice “Scans”. Pinchamos en “add”. Introducimos un nombre, el tipo lo dejamos en “run now” para que se ejecute el análisis ahora mismo, en la política seleccionamos “web app tests” y en las etiquetas ponemos la dirección de la página web a testear mismamente. 6- Se lanzará el escaneo de la página web elegida. Esperaremos hasta que termine el escaneo y finalmente dispondremos de los fallos y errores acerca de esa página en concreto. O quizás no. 10
  11. 11. WireShark Wireshark es una herramienta de las denominadas sniffers. Wireshark es una herramienta muy similar a la que hemos explicado anteriormente (WebScarab); sin embargo, Wireshark permite analizar el tráfico completo de una red mientras que WebScarab únicamente analiza los protocolos HTTP y HTTPS. Generalmente, estas herramientas son utilizadas para el análisis de protocolos y solucionar problemas en redes de comunicaciones. Para capturar paquetes directamente de la red, esnecesario tener permisos elevados, como por ejemplo ser administrador en Windows oejecutarlo como súper usuario en Linux.Esta herramienta es un software libre y se puede instalar en una gran cantidad de sistemasoperativos Unix como por ejemplo Linux, Solaris y FreeBSD entre otros.No obstante, esta herramienta también está disponible para sistemas operativos Windows asícomo Mac OS X. 11
  12. 12. INSTALACIÓNLa instalación de Wireshark en sistemas operativos Windows es muy sencillo; es básicamentecomo cualquier otra instalación en Windows por lo que: 1- Vamos a la web oficial de Wireshark: http://www.wireshark.org/ 2- Download Wireshark y seleccionamos Windows Installer. Dependiendo del sistema, puede ser de 64 o de 32 bits. Como ya hemos explicado al principio, nuestro sistema es de 64 bits por lo que elegiremos el instalador de 64 bits. 3- Seguimos los pasos indicados en el asistente de instalación e instalamos sin problemas.La instalación en Linux puede ser, quizás un poco más compleja ya que se necesita al menos unlimitado conocimiento acerca de los comandos de este sistema. Sin embargo, los pasos aseguir para su instalación dentro de nuestra máquina virtual son muy sencillos. Para sucorrecta instalación: 1- Nos ponemos como root. Para ello: “su”. 2- Una vez estemos como root. Escribimos lo siguiente: “apt-get install wireshark”. 3- Instalación finalizada. 12
  13. 13. UTILIZACIONEl primer paso a la hora de utilizar Wireshark es seleccionar nuestra tarjeta de red que estáconectada y darle a “start”.La herramienta empezará a analizar todo el tráfico de la red, y cuando digo todo, me refiero aTODO. Paquetes, peticiones, protocolos… Para analizar un protocolo en concreto como puedeser HTTP o HTTPS, mientras está lanzado el escaneo o testeo de la red (o cuando ya hayaterminado de escanear la red) podremos introducir dentro del cuadro de búsqueda la palabraclave HTTP y la aplicación nos ofrecerá todo el tráfico HTTP que se haya producido o se estéproduciendo en nuestra red.Si un ordenador está dentro de nuestra red, podemos analizar todo lo que está enviando yrecibiendo así como las direcciones de las que provienen las respuestas.Esta herramienta está orientada sobre todo a los administradores de una empresa que quierancontrolar el tráfico de la red. Sin embargo también es muy peligroso para una empresa ya quetodo el tráfico de esa empresa viaja por la red sin ninguna clase de cifrado por lo que cualquierpersona que se haya podido conectar a la red de la empresa y tenga un sniffer, podría ver todala información que envían y reciben los ordenadores de la empresa.Cuando está capturando el tráfico de la red podemos apreciar una serie de columnas. Dichascolumnas son: - No.: muestra la posición en la que se realizó esa petición. - Time: el tiempo que le ha llevado. - Source: la dirección ip de la que proviene. - Destination: la dirección a la que se dirige. - Protocol: El protocolo que ha sido utilizado. - Lenght: Longitud del tráfico. - Info: información sobre la respuesta.Finalmente, para parar la herramienta deberemos clicar en que se sitúa arriba a laizquierda junto con las opciones de “listar las interfaces disponibles”, “mostrar las opcionescapturadas”, “comenzar una captura nueva” y “reiniciar la captura”. 13
  14. 14. 14
  15. 15. NmapEsta herramienta se utiliza para descubrir servicios y servidores y para saber qué grado deseguridad dispone un sistema informático. Nmap tiene más posibilidades que simplemente lade descubrir servicios y servidores; entresus características podemos destacar: - Descubrimiento de servidores. - Identificación de puertos abiertos. - Sabe los servicios que esté ejecutando el ordenador. - Sabe que sistema operativo y versión está utilizando el ordenador. - Puede adquirir características hardware limitadas sobre la máquina que estemos analizando.Esta herramienta la podemos utilizar tanto en sistemas operativos GNU/Linux así como ensistemas operativos Windows.Nmap será instalado en este caso en una máquina Windows ya que resulta, quizás, menosengorroso y más sencillo. 15
  16. 16. INSTALACIÓNPara realizar una correcta instalación seguiremos los pasos a continuación. Como hemos dichoen la página anterior se llevará a cabo en una máquina Windows, sin embargo también lapodremos realizar en una maquina GNU/Linux sin ningún problema. 1- Descargamos el ejecutable desde la web oficial de Nmap: http://nmap.org/download.html 2- Ejecutamos el archivo descargado. 3- Seguimos los pasos de la instalación. 4- Finalmente nos dirá el asistente si queremos crear un acceso directo en el escritorio y en el menú de inicio. 5- Ejecutamos la aplicación instalada. 16
  17. 17. UTILIZACIÓNPara empezar a utilizar Nmap tenemos que abrir la aplicación con un doble clic. Acontinuación: 1- Introducimos la web que deseemos escanear en el lugar denominado “Target”. 2- Pinchamos en “Scan”. 3- Empezará el escaneo de la página web introducida. 17
  18. 18. EVALUACIÓN DEVULNERABILIDADES.Para analizar la página web utilizamos las herramientas anteriormente explicadas aunqueWireShark no nos sirviera realmente para analizar la página web. Por lo tanto, las herramientasque utilizamos han sido Nmap y Nessus ya que WebScarab hace las veces de WireShark.Así pues, las vulnerabilidades obtenidas con la herramienta Nessus fueron de lo más variadas yvariopintas. Nessus dio una serie de vulnerabilidades de distintos grados. Obtuvimos unaamenaza crítica, tres altas, cinco medias… Aunque la mayor parte de la web estaba biensegura.Analizando el informe que nos dio Nessus la vulnerabilidad crítica consistía en que no disponíade una versión soportada por el lenguaje de programación. La solución que obtenemos porparte de Nessus es actualizar la versión de PHP que está instalada.De las vulnerabilidades críticas pasamos a las altas. En las altas podemos encontrar tresbloques distintos; sin embargo, aunque estos bloques Nessus los procese por separado novienen a decir más que la versión de PHP está un poco desfasada y por lo tanto se describenlos posibles ataques que se pueden llevar a cabo contra esta web.De entre estos ataques podemos destacar la posibilidad de atacar dicha página web medianteel uso de consumo de la memoria, fallo repentino a causa de varias funcionalidades, exif.cpermite el ataque a la web a través del uso de la memoria de forma arbitraria.El servidor remoto es vulnerable a inyección a HTML por medio de los puertos abiertos quehemos analizado con Nmap. No obstante, aunque los puertos los analice de una forma másextendida esta aplicación, con Nessus también podemos obtener una descripción bastantebien detallada. Así pues, seguiremos analizando las vulnerabilidades que nos ha mostradoNessus y más adelante pasaremos a analizar los puertos de una forma más exhaustiva con laherramienta Nmap.La inyección por medio de SQL también se hace presente dentro de las vulnerabilidades altas;más concretamente, Nessus nos dice que cuando ha intentado importar una serie de variables,ha dado una clase de error y que al estar SQL débil, es más sencillo atacar mediante inyecciónSQL.Nessus nos dice también que a causa de un error con “sapi/cgi/cgi_main.c” un atacante podríaobtener el código de origen de PHP desde el servidor web. La solución que nos da Nessus esactualizar PHP a su última versión.Una vez hemos analizado ya las vulnerabilidades altas y las vulnerabilidades críticas, pasemos aanalizar las vulnerabilidades que se encuentran en el medio del análisis y que aunque no seanmuy importantes conviene mantenerlas al día y bien actualizadas. Una de estasvulnerabilidades hace referencia a XSS; más concretamente que un atacante podría utilizarmediante HTML y scripts el navegador de un usuario. La solución a este fallo es actualizar ocontactar con el desarrollador de ese software si la amenaza sigue persistiendo. 18
  19. 19. Un atacante podría también usar un software java malicioso para dañar la página ya que losscripts CGI fallan a la hora de utilizar un JavaScript malicioso. También nos muestra unavulnerabilidad con respecto a las inyecciones IFRAME. Para solucionar estas dos incidencias loque deberíamos hacer es restringir el acceso a aplicaciones vulnerables (o que provengan desitios sin certificación, es decir, que no sean de confianza), actualizar o contactar con elvendedor.PHP está configurado en el servidor remoto de tal forma que un atacante podría hacerse conmucha información sensible gracias al empleo de una URL (o varias) en concreto. Como porejemplo el desencadenamiento de URLS o la utilización de los Huevos de Pascua construidosen PHP. Podemos hacer frente a este problema accediendo a la configuración de PHP y en“php.ini”, en “expose_php” lo deberíamos de poner en “off”. Para que los cambios surjanefecto deberemos reiniciar la red.Con la finalidad de evitar bugs, existen tutoriales a disposición de la gente que los solicite quedicen que tienes que llamar a la función PHP “phpinfo()”. Con esto lo que se hace es que,accediendo por ejemplo a un archivo de los que este tutorial presenta, un atacante puededescubrir un montón de información sobre el servidor web remoto. Por ejemplo: el usuarioque instaló PHP y si es administrador o no, la dirección IP del host, la versión del sistemaoperativo, la versión del servidor web e información acerca de la instalación remota de PHP.Para poder solucionar lo anteriormente descrito, debemos eliminar lo mencionado.La última vulnerabilidad de grado medio está relacionada con el uso de JavaScript que esexactamente lo mismo que hemos comentado unos párrafos más arriba. La solución alJavaScript malicioso es contactar con el proveedor para un parche o actualizar la versión.Con esta última vulnerabilidad terminamos las amenazas críticas, altas y medias; tambiénexisten aquellas vulnerabilidades que son de menor grado pero que sin embargo no vamos ahacer mayor hincapié ya que no son maliciosas ni dañinas en absoluto para el sistema.En cuanto a la detección de puertos mediante la herramienta Nmap no podemos sacar grancosa. Esta herramienta nos dice que la página web tiene un puerto cerrado y otro puertoabierto; estos puertos son el 80 y el 443, que hacen referencia a http y https respectivamente.El puerto que nos dice que está cerrado es el 443, es decir, la conexión https. Por lo tanto seráimprobable llegar a hacer una conexión segura por medio de este puerto ya que no estádisponible.Por otro lado el puerto que está abierto es el correspondiente a http, es decir, el puerto 80. Através de este puerto podremos conectarnos a la web que a continuación describiremos.La conclusión a la que podemos llegar teniendo en cuenta todas las herramientas que hemosutilizado es que la web presenta una serie de vulnerabilidades a través de las cuales podemosllegar a interferir en el funcionamiento del servidor. Para solucionar el problema de lasvulnerabilidades deberemos actualizar las versiones en las cuales nos ha dado error o algunaclase de problemas. No obstante, aunque las herramientas nos hayan dado esta serie deerrores, la web puede funcionar perfectamente aunque con el riesgo correspondiente quehemos descrito anteriormente. 19
  20. 20. WEB ELEGIDALa web que se ha elegido ha sidohttp://markosweb.com ya que presentan lasvulnerabilidades que a continuación se muestran.Así pues, podemos destacar una serie devulnerabilidades muy perjudiciales para laseguridad de dicha web como por ejemplovulnerabilidades críticas y altas relacionadas conel uso del PHP y otras tantas de grado medio.Aunque no sea relevante, y apenas proceda con laevaluación; esta web ofrece una serie de serviciosmás o menos informáticos como por ejemplo lapuntación SEO, monitoreo de sitios web, análisisde los progresos del sitio, detectar secretos web ytendencias ocultas, supervisión del rendimiento,sitio seguro contra phising y malware y unasupervisión de la salud global del sitio web encuestión. 20

×