Metodología para la auditoría de seguridad de aplicaciones web
Y Seguridad en Aplicaciones Web
Transcript of Y Seguridad en Aplicaciones Web
1
UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE
INGENIERÍA EN INFORMÁTICA
Tesina
“Pruebas de Intrusión a Aplicaciones Web Y Seguridad en Aplicaciones Web”
Para cumplir la acreditación de las estadías profesionales y contar con los créditos necesarios para obtener el grado de Ingeniero en Informática
Autor:
Aarón Enrique Moreno Imperial
Asesor:
Dr. Rodolfo Ostos Robles.
Asesor OR:
MSI. Rosa Karina Gonzales Trigueros
2
Mazatlán, Sinaloa 22 de septiembre de 2017
Tabla de contenido Tabla de Imágenes ................................................................................................................................... 5
Contenido de tablas ............................................................................................................................... 6
Glosario ..................................................................................................................................... 7
Resumen .....................................................................................................................................9
Summary .....................................................................................................................................9
Introducción .............................................................................................................................12
Antecedentes ............................................................................................................................13
Objetivos de la empresa........................................................................................................................ 13
Organigrama de la empresa .................................................................................................................. 14
Misión ................................................................................................................................................. 14
Visión .................................................................................................................................................. 14
Planteamiento del Problema ..................................................................................................15
Justificación .............................................................................................................................16
Objetivos generales y específicos ...........................................................................................16
Hipótesis ...................................................................................................................................17
Limitaciones .............................................................................................................................17
Marco referencial ....................................................................................................................18
Fundamentos teóricos de seguridad informática .............................................................................. 19
Seguridad en aplicaciones web .......................................................................................................... 21
Vulnerabilidades web ......................................................................................................................... 22
Cross-site Scripting ......................................................................................................................... 22
SQL injection .................................................................................................................................. 24
Cross-site request forgery .............................................................................................................. 24
Remote file inclusion ..................................................................................................................... 25
Buffer overflow .............................................................................................................................. 27
Metodología OWASP ........................................................................................................................ 28
Modo Pasivo .................................................................................................................................. 28
Modo Activo ................................................................................................................................... 28
3
Metodología ISSAF ............................................................................................................................ 29
Recopilación de información ......................................................................................................... 29
Mapeo de la red ............................................................................................................................. 29
Identificación de vulnerabilidades ................................................................................................. 32
Intrusión ......................................................................................................................................... 33
Ganando acceso y escalando privilegios ....................................................................................... 33
Enumeración adicional ................................................................................................................... 33
Comprometer usuarios / sitios remotos ........................................................................................ 34
Mantener el acceso ........................................................................................................................ 34
Cubriendo Pistas ............................................................................................................................ 34
Reporte Final .................................................................................................................................. 35
Clasificación de pentest .......................................................................................................................... 36
Pruebas basadas en información ....................................................................................................... 37
Pruebas por el punto inicial de los ataques ....................................................................................... 38
Herramientas de pruebas de intrusión ......................................................................................... 41
Herramientas de análisis de sistema operativo y servicios ............................................................... 41
Nmap .............................................................................................................................................. 41
Nessus ............................................................................................................................................ 42
Herramientas para explotar vulnerabilidades web............................................................................ 43
SQLMAP ......................................................................................................................................... 43
BEEF framework ............................................................................................................................. 44
Herramientas de intrusión de infraestructura de red ........................................................................ 45
Metasploit ...................................................................................................................................... 45
Armitage......................................................................................................................................... 45
Herramientas de acceso remoto ........................................................................................................ 46
WEEVELY ........................................................................................................................................ 46
Resultados ................................................................................................................................. 48
Introducción ....................................................................................................................................... 49
Metodología de desarrollo ................................................................................................................. 49
Elección de la metodología ................................................................................................................ 49
Implementación del pentest ............................................................................................................. 50
Resultados .......................................................................................................................................... 51
4
Identificación de los riesgos ............................................................................................................... 54
Recomendaciones .............................................................................................................................. 56
Conclusiones ...................................................................................................................................... 57
Referencias bibliográficas ....................................................................................................... 58
5
Tabla de Imagenes Imagen Organigrama de Universidad Politécnica de Sinaloa 1.1. .....................................10
Imagen Modelo CIA 2.1 ..........................................................................................................16
Imagen XSS reflejado 2.2 ......................................................................................................18
Imagen Stored xss 2.3..............................................................................................................19
Imagen Ejemplo de un ataque CSRF 2.4 ..............................................................................21
Imagen Ejemplo de una imagen con payload 2.5 .................................................................22
Imagen Ejemplo de conexión reversa 2.6 ..............................................................................23
Imagen Ejemplo de buffer overflow 2.7 ................................................................................23
Imagen Ejemplo de inspección con firebug Ajax apps 2.8 ..................................................25
Imagen Flujo de trabajo 2.9 ...................................................................................................26
Imagen Metodología de pentest 2.10 .....................................................................................28
Imagen clasificación de penetration test 2.11 .......................................................................32
Imagen penetration testing en una red interna analizando paquetes del servicio ftp ......34
Imagen red operations CTF simulando un ataque del mundo real externo 2.13 ..............35
Imagen stealth scan 2.14 .........................................................................................................37
Imagen cliente web nessus 2.15 .............................................................................................38
Imagen sqlmap 2.16 ................................................................................................................39
Imagen Interfaz BEEF framework 2.17 ................................................................................40
Imagen metasploit pivoting 2.18 ............................................................................................41
Imagen interfaz armitage GUI 2.19 ......................................................................................42
Imagen web Shell obfuscate 2.20 ..........................................................................................43
Imagen metodologías de pentesting 3.1 ................................................................................46
Imagen código fuente de aplicación web inseguro 3.2 ........................................................47
Imagen interceptando cookies 3.3 .........................................................................................48
Imagen mostrando usuarios del servidor web 3.4 ................................................................49
Imagen exploit kernel Ubuntu 3.5 .........................................................................................50
Imagen clasificación de riesgos 3.6. .......................................................................................51
6
Contenido de tablas Tabla Reglas para desarrollar aplicaciones y servicios web seguros 2.1 ...........................17
Tabla resumen resultados exitosos y fallidos testeados en el servidor web. 3.1. ...............47
7
Glosario
Cloud Computing: consiste en la posibilidad de ofrecer servicios a través de Internet
OWASP: Open Web Application Security Project (OWASP)
ISSAF: information systems security assessment framework
SDLC: ciclo de vida de desarrollo de sistemas
XSS: cross site scripting
LFI: local file inclusion
RFI: remote file inclusion
CSFR: cross site forgery request
Session hijacking: secuestro o robo de sesión
Phishing: suplantación de identidad.
CVE: Common Vulnerabilities and Exposures.
HTTP: Protocolo de transferencia de hipertexto.
HTML: HyperText Markup Language (lenguaje de marcas de hipertexto).
Script: un programa usualmente simple, que por lo regular se almacena en un archivo
de texto plano.
AJAX: Asynchronous JavaScript And XML (JavaScript asíncrono y XML).
DOS: ataque a un sistema de computadoras o red que causa que un servicio o
recurso sea inaccesible a los usuarios legítimos
WHOIS: es un servicio del Internet utilizado para capturar información de una dirección de IP
o un dominio
8
DNS: nombres de dominio (DNS, por sus siglas en inglés, Domain Name System)
OISSG Open Information Systems Security Group
SQL: (por sus siglas en inglés Structured Query Language; en español lenguaje de
consulta estructurada)
DBMS: por sus siglas en ingles DBMS (Data Base Management System, en español
Sistemas de Gestión de Bases de Datos (SGBD).
Payload: En seguridad informática, la carga útil es la parte del texto privado del
usuario que también podría contener malware, como gusanos o virus, que realiza la
acción maliciosa.
exploit: fragmento de datos o secuencia de comandos o acciones, utilizada con el fin
de aprovechar una vulnerabilidad de seguridad de un sistema de información.
VPN: Una red privada virtual (RPV), en inglés: Virtual Private Network (VPN)
DMZ: En seguridad informática, una zona desmilitarizada (conocida también como DMZ, sigla en
inglés de demilitarized zone) o red perimetral
Firewall: es un dispositivo de seguridad de la red que monitorea el tráfico que entra y
sale de una red
9
10
11
12
13
Resumen
En la actualidad contar con tareas de pruebas de pentest hacía los distintos sistemas
de información no solo es un lujo, sino también una necesidad. Las empresas ya sean
grandes, medianas o pequeñas, deben entrar al mundo donde la información es el
activo más importante si quieren resguardar la información y proteger los datos ante
un posible ataque informático ya sea externo o desde la misma empresa y seguir
siendo competencia en el ámbito empresarial y tener esa reputación de confianza
hacia la empresa como para el cliente.
Las pruebas de pentest ayudan a las empresas a tener un mejor control de todos sus
sistemas, infraestructura de red, etc.; minimizando los riesgos de perdida de datos y
de ataques informáticos, México es uno de los países con alta demanda de
inseguridad informática que hay en el mundo, donde los usuarios no pueden estar a
gusto en un entorno digital por miedo de ser víctimas de ciberataques , robo de
identidad , secuestro del ordenador etc. Por lo tanto tener cultura de seguridad
informática no ayudara en no tener una infraestructura de red vulnerable sustentable
a ataques, sistemas informáticos vulnerables.
14
Summary
Currently having pen testing tasks towards the different information systems is not only
a luxury, but also a necessity. Companies, whether large, medium or small, must enter
the world where information is the most important asset if they want to safeguard
information and protect data against a possible computer attack either externally or
from the same company and continue to be competent in the business environment
and have that reputation of trust towards the company as for the client.
Pentest tests help companies to have better control of all their systems, network
infrastructure, etc.; minimizing the risks of data loss and computer attacks, Mexico is
one of the countries with high demand for computer insecurity in the world, where users
cannot be comfortable in a digital environment for fear of being victims of cyber-attacks,
identity theft, computer hijacking etc. Therefore having a computer security culture will
not help in not having a vulnerable network infrastructure to attacks, vulnerable
computer systems.
15
Capitulo I
En este capítulo se muestran temas sobre la información de la institución
Donde se realizaron las estadías, la visión, misión, entre otros.
__________________________________________________________________________________
16
Introducción
La información es el activo más importante para toda organización, asegurarla trae
beneficios y confiabilidad para ella, entonces nos preguntamos ¿Dónde se encuentra
la información almacenada o quien la manipula? Es fundamental saber hoy en día la
información se encuentra una aplicación o software, pero es muy importante conocer
que el incremento de las tecnologías de la información y la comunicación y el Cloud
Computing ha llevado a alcanzar o desarrollar aplicaciones orientadas a la web
Por eso debemos preguntarnos ¿la información es realmente segura?, por lo tanto no
podemos dejar de hablar de la seguridad en aplicaciones basadas en la web, ya que
a partir de ellas podemos obtener información. Ofrecer una idea metodológica para
determinar la seguridad en una aplicación web puede ser de gran utilidad.
La idea metodológica contiene metodologías existentes tales como Open Web
Application Security Project (OWASP) e Information Systems Security Assessment
Framework (ISSAF)
OWASP es una metodología que tiene en cuenta la seguridad en el ciclo de desarrollo
de software (SDLC). Por otro lado, ISSAF es una metodología para pruebas de
intrusión en un sistema informático.
17
Antecedentes
La Universidad Politécnica de Sinaloa es una institución encargada de formar
profesionistas con alta capacidad tecnológica, espíritu emprendedor y sólido bases
humanistas y generar conocimiento científico y tecnológico, mediante servicios de la
calidad sustentados en programas académicos pertinentes con un modelo educativo
basado en competencias y centrado en el aprendizaje.
El área de Ingeniería en Informática de la Universidad Politécnica de Sinaloa
actualmente lleva a cabo muchos proyectos, uno de estos es el fomentar la
importancia de la seguridad ofensiva y defensiva sobre las aplicaciones web.
Dicho proyecto se enfoca por ahora en mostrar a los alumnos las técnicas y las
metodología con la que se lleva a cabo una prueba de intrusión en aplicaciones web,
cuya finalidad es para detectar vulnerabilidades, configuraciones erróneas y más.
Objetivos de la empresa
Formar ingenieros competentes en la implementación y administración de soluciones
de negocio para la investigación basada en computadora, con una amplia visión de la
ciencia y las nuevas tecnologías de la información, bajo el modelo de educación
18
basado en competencias.
Organigrama de una empresa
Imagen Organigrama de Universidad Politécnica de Sinaloa 1.1.
Misión
Formar profesionistas con alta capacidad tecnológica, espíritu emprendedor y sólidas
bases humanistas; generar, aplicar y difundir conocimiento, mediante servicios de
calidad, sustentados en programas académicos pertinentes, en un modelo educativo
basado en competencias y en estándares internacionales, contribuyendo al desarrollo
regional y del país.
Visión
La Universidad Politécnica de Sinaloa es reconocida nacionalmente, como una
institución pública de educación superior que ofrece programas educativos de
excelencia, vinculada a organismos nacionales e internacionales, desarrollando y
aplicando líneas de investigación que impulsan la asimilación, transferencia y mejora
19
de la tecnología e incrementando la especialización de la fuerza laboral del país a
través de la educación continua y vinculación con el sector productivo.
Planteamiento del problema
Durante años las aplicaciones han sido vulneradas, pero más las aplicaciones web ya
que están públicas y a causa de esto cualquiera puede atacarlas remotamente
permitiendo el acceso no autorizado a datos confidenciales y causando perdida de
información. México está por debajo del promedio internacional en Seguridad
informática en la página consultada https://www.cynthus.com.mx/blog/seguridad-de-
la-informacion/mexico-y-la-seguridad-informatica/
El mundo de la informática nuestro planeta esta interconectado, nuestros sistemas
nuestras identidades, nuestra seguridad es vulnerable por no tener esa cultura de
seguridad informática.
La seguridad informática en aplicaciones web se ha convertido en un tema de
importancia, vislumbrado a través de las cifras considerables de un 39.9%[1] que se
ha convertido en un objetivo fácil cabe entonces, el preguntarse ¿porque no tener esa
cultura de seguridad informática para determinar el nivel de seguridad informática de
las aplicaciones?
La importancia de seguridad informática en las universidades debe ser más que un
requisito una importancia ya que a la falta de esto las universidades, también son
sujetas a los ataques y más si tienen un sistema escolar basado en tecnologías web
ya que es accesible de cualquier parte del mundo o por la falta de medidas de
seguridad informática ya que con conocimientos básicos en programación y redes se
puede realizar un ataque hacia la universidad desde un alumno hasta un empleado no
necesariamente tiene que ser un experto en el área de informática para que pueda
tener éxito en el ataque informático. Las universidades muchas de ellas son empresas
que realizan servicios hacia otras instituciones y sin tener las meditas correctas de
seguridad informática pueden tener fuga de información, proyectos propios de la
universidad o de quien le brindan el servicio entre muchas cosas.
20
Justificación
Dado a partir del año 1982 se han incrementado los ataques a los distintos tipos de
empresas y organizaciones así como google, Yahoo!, eBay, etc. De igual forma han
evolucionado las técnicas de los atacantes para realizar delitos informáticos; surge la
necesidad de implementar las formas de proteger los sistemas informáticos.
Una de las formas es a través de pen tests es la práctica para poner a prueba un
sistema informático, red o aplicación web para encontrar vulnerabilidades que un
atacante puede explotar [2]. Debido que es una prueba de este tipo los tipos buenos
están tratando de entrar a la fuerza, usando las mismas técnicas que un atacante
realizaría para cometer los delitos.
Un pen test nos ayudará a valorar los controles de protección de la organización, así
como mostrarnos los puntos débiles de una infraestructura que a simple vista no
podemos ver.
Objetivo Generales y específicos
Desarrollar a propuesta metodológica para determinar la seguridad en las
aplicaciones, a partir del pen test para descubrir vulnerabilidades y crear más
aplicaciones más seguras y menos susceptible a fallos a seguridad.
Objetivo específicos
✓ Analizar los conceptos y fundamentos de seguridad en aplicaciones web.
✓ Determinar los tipos de vulnerabilidades en aplicaciones web.
✓ Mejorar la seguridad de una infraestructura organizacional general.
✓ Mejora la seguridad de un sistema informático, aplicación.
21
Hipótesis
A partir de las pruebas de pen test los sistemas informáticos, las redes, y las
infraestructuras evitarían los problemas de se seguridad en un 90%, las aplicaciones
no serán tan vulnerables como en un principio estarán más protegidas ya que se
solucionó descubrió el fallo de seguridad a tiempo antes de que un atacante la
encontrara y explotara la vulnerabilidad.
Limitaciones
El pen test son prácticas útiles que pueden tener un valor enorme para reforzar la
seguridad de cualquier sistema o producto. Sin embargo, el pen test tiene sus
limitaciones. Primero, el pen test puede no identificar todas las vulnerabilidades debido
a la restricción de tiempo o la limitación de una prueba centrada en testear algo
específico.
22
Capitulo II
___________________________________________________________________________
En este capítulo se muestran temas sobre seguridad informática, modelo CIA,
vulnerabilidades, metodologías de pruebas de intrusión y herramientas utilizadas.
__________________________________________________________________________________
23
Seguridad Informática
El objetivo de la seguridad informática será mantener la confidencialidad, integridad,
disponibilidad, control y autenticidad de la información manejada por computadora. [3]
Así pues, la seguridad Informática no es otra cosa que la capacidad de proteger la
información en un sistema informático. Sin embargo, la seguridad Informática abarca
mucho más que la protección de la información, pero sin duda ésta el lado más
atractivo para los hackers, teniendo en cuenta que la información es la base
económica de las empresas.
La seguridad informática se basa en tres principios básicos:
1. Confidencialidad
2. Integridad
3. Disponibilidad
Confidencialidad
En seguridad informática, confidencialidad “es la prioridad, esa información no está
disponible ni se divulga a personas, entidades o procesos no autorizados” (ISO27000)
Integridad
En seguridad informática, integridad de datos significa mantener, y garantizar la
precisión e integridad de los datos a lo largo de todo su ciclo de vida.[3] Esto significa
que datos no pueden ser modificados de manera no autorizada o no detectada.
Disponibilidad
Para que cualquier sistema de información cumpla su propósito, la información debe
estar disponible cuando sea necesaria. Esto significa que los sistemas informáticos
utilizados para almacenar y procesar la información, los controles de seguridad
24
utilizados para protegerla y los canales de comunicación utilizados para acceder a ella
deben funcionar correctamente. Los sistemas de alta disponibilidad apuntan a
permanecer disponibles en todo momento, evitando interrupciones en el servicio
debido a cortes de energía, fallas de hardware y actualizaciones del sistema.
Garantizar la disponibilidad también implica prevenir los ataques de denegación de
servicio, como una avalancha de mensajes entrantes al sistema objetivo,
esencialmente obligándolo a cerrar.[3]
Imagen Modelo CIA 2.1
25
Seguridad en aplicaciones web
La organización Open Web Application Security Project (OWASP) elaboró una guía
para construir aplicaciones web seguras y servicios web seguros. Esta guía toma
cuenta vulnerabilidades antiguas hasta las más actuales como Phishing, Session
hijacking, Cross-Site Scripting (XSS), LFI, RFI y más. Esto con objetivo de ayudar a
desarrolladores, revisores de código, arquitectos de software, entre otros para tener
normas de seguridad para evitar estos problemas en el desarrollo. [4]
La guía para desarrollar Aplicaciones y servicios Web Seguros está compuesta por
los siguientes ítems:
Tabla Reglas para desarrollar aplicaciones y servicios web seguros 2.1
26
Vulnerabilidades web
Son todos aquellos problemas de seguridad que afectan las páginas web, por lo
general estos problemas permiten modificación y extracción de la información, lo cual
es muy grave para las organizaciones; la mayoría de éstos son registrados por medio
de un identificador de CVE (Common Vulnerabilty Exposure), él cual es un diccionario
de las vulnerabilidades de la seguridad de información públicamente conocidas.
A continuación de hablaran algunas de las vulnerabilidades existentes:
Cross-site Scripting
Es una técnica hacking que termine a un atacante explotar vulnerabilidades en
aplicaciones web e inyectar payloads del lado del cliente.[5] Un ataque exitoso puede
permitir al atacante realizar otros vectores de ataque como session hijacking, robo de
información sensible o cambiar la información en el sitio web.
Hay dos tipos principales de XSS:
• No persistente o reflejado.
• Persistente o almacenado.
No persistente o reflejado
Este ataque es uno de los más comunes, la principal vulnerabilidad es el manejo
inapropiado (falta de validación) de solicitudes de datos HTTP por el código del
servidor, permitiendo a los sitios maliciosos reflejar código malicioso y atacar a otros
usuarios. El principal vector de ataque es usualmente un mensaje de correo que
contiene una URL maliciosa, cuando el usuario da clic en la URL, el código malicioso
es ejecutado. Esta vulnerabilidad aprovecha el concepto de arquitectura cliente-
servidor el navegador ejecuta el código porque cree que es el código original y no uno
alterado.
27
Imagen XSS reflejado 2.2
Persistente o almacenado.
Este ataque no requiere usuarios que den clic en una URL con el fin de ejecutar código
malicioso. En este caso el código es capaz de vivir en el servidor vulnerable y está
embebido en el código HTML.[6] Una vez más, este tipo de ataque es el resultado
directo de falta de validaciones en el lado del servidor, lo que permite forzar entradas
maliciosas que pueden ser mostradas en el sitio web. Este tipo de ataque es
particularmente riesgoso, no solo porque no requiere una intervención directa del
usuario sino porque tiene un alcance global más peligroso así como robo de sesión
de bancos.
Imagen Stored xss 2.3
28
SQL injection
Un ataque de Inyección SQL consiste en la inserción o "inyección" de datos en una
Un ataque de Inyección SQL consiste en la inserción o "inyección" de datos en una
consulta SQL desde un cliente de la aplicación. El éxito en una inyección SQL puede
leer datos sensibles de la base de datos, modificar los datos
(insertar/actualizar/borrar), realizar operaciones de administración sobre la base de
datos (como reiniciar el DBMS), recuperar el contenido de un archivo del sistema de
archivos del DBMS y, en algunos casos, ejecutar órdenes en el sistema operativo. Los
ataques de inyección SQL son un tipo de ataques de inyección, en los que ordenes
SQL son inyectados en texto para afectar la correcta realización de una consulta SQL
predefinida por ejemplo [7]:
$sql = "SELECT username, password FROM user_id ="+$id;
La variable id puede recibir consultas SQL en este caso ya que se puede realizar con
múltiples base de datos, y el atacante puede aprovecharse para modificar la consulta
y sacar información.
Cross-site request forgery
Es un ataque que obliga a un usuario final a ejecutar acciones no deseadas en una
aplicación web en la que actualmente está autenticado. Ataques CSRF especialmente
se dirigen a las solicitudes que cambian el estado, no al robo de datos, ya que el
atacante no tiene forma de ver a respuesta a la solicitud falsificada. Con un poco de
ayuda de ingeniería social (como enviar un enlace por correo electrónico o chat), un
atacante puede engañar a los usuarios de una aplicación web para que ejecuten las
acciones que el atacante elija.[8]
29
Imagen Ejemplo de un ataque CSRF2.4
Remote file inclusion
Es una técnica usada para explotar inclusión de archivos dinámicos. Cuando
aplicaciones web toman la entrada del usuario (URL, valores del parámetro, etc.) y lo
pasan en un archivo que puede hacer realizar comandos, la aplicación web puede ser
engañada incluyendo remotos archivos con código malicioso. [9]La mayoría de todas
las aplicaciones web incluyen soporte para la vulnerabilidad de inclusión de archivos
remotos en su mayoría para los sitios pueden ser en PHP, Python, Perl, etc. La
mayoría de las aplicaciones web y en general ya que esta vulnerabilidad puede ser un
difícil de evitar la subida de archivos remotos en aplicaciones web, ya que se
pueden ocultar modificando el formato digital de los archivos y agregando el payload
en este caso una web Shell a la imagen y puede ser evitadas las validaciones en los
sitios web ya que estas no examinan los archivos a un nivel más bajo como es el
formato digital de los archivos como se puede ver en la imagen:
30
Imagen Ejemplo de una imagen con payload 2.5
Ejemplo de código vulnerable a RFI
$incfile = $_REQUEST["file"];
include($incfile.".php");
Si observamos desde la url http://www.target.com/vuln_page.php?file=foto_2.jpg
El valor asignado es una foto pero imaginamos si en lugar de una foto inocente, fuera
una imagen con una foto con una bind shell oculta como en este caso fue una Shell
Image pero oculta en el error 404 y una vez que nosotros ingresáramos una URL del
mismo dominio incorrecto, la URL nos dará una conexión reversa a nosotros a través
del puerto 5555 como podemos ver en la imagen
31
Imagen Ejemplo de conexión reversa 2.6
Buffer overflow
este ataque ocurre cuando un usuario malicioso sobre carga la memoria del sistema
temporal (llamado buffer) para causar males en la máquina de la víctima.[10] A
menudo, los atacantes también incluyen código de instrucción para aprovechar más
la vulnerabilidad, como por ejemplo ejecutar código malicioso acceder o modificar
datos confidenciales o incluso enviar información al atacante.
Imagen Ejemplo de buffer overflow 2.7
32
Metodología OWSAP [11]
Las pruebas de intrusión nunca serán una ciencia exacta mediante la cual se pueda
definir una lista completa de todas las incidencias posibles que deberían ser
comprobadas. De hecho, las pruebas de intrusión son sólo una técnica apropiada para
comprobar la seguridad de aplicaciones web bajo ciertas circunstancias. El objetivo es
recopilar todas las técnicas de comprobación posibles, explicarlas y mantener la guía
actualizada. La metodología de pruebas de intrusión de aplicación web OWASP se
basa en un enfoque / acercamiento de caja negra. La persona que realiza las pruebas
tiene poca, o ninguna, información sobre la aplicación que va a ser comprobada. El
modelo de pruebas consta de:
• Auditor: La persona que realiza las actividades de comprobación
• Herramientas y metodología: El núcleo de este proyecto de guía de pruebas
• Aplicación: La caja negra sobre la que realizar las pruebas
Las pruebas se dividen en 2 fases:
• Pasivo
• Activo
Modo Pasivo
En el modo pasivo, el personal encargado de la realización de las pruebas trata de
comprometer la lógica de la aplicación, juega con la aplicación, puede usarse una
utilidad para la recopilación de información
Como por ejemplo: https://www.example.com/login/Authentic_Form.html
Modo Activo
En esta fase el personal está a cargo de la comprobación empieza a realizar
pruebas usando la metodología descripta en los siguientes apartados:
• Pruebas de gestión de la configuración
• Pruebas de la lógica de negocio
• Pruebas de Autenticación
• Pruebas de Autorización
33
• Pruebas de gestión de sesiones
• Pruebas de validación de datos
• Pruebas de denegación de Servicio
• Pruebas de Servicios Web
• Pruebas de AJAX
Imagen Ejemplo de inspección con firebug Ajax apps 2.8
Metodología ISSAF
Information Systems Security Assessment Framework (ISSAF) [es una metodología
estructurada revisada por pares diseñado por el Open Information Systems Security
Group (OISSG). [12] La metodología definida por ISSAF cubre todos los aspectos
relacionados con las evaluaciones de seguridad: desde una perspectiva de alto nivel
(por ejemplo, impacto empresarial y modelos organizacionales) hasta técnicas
prácticas (por ejemplo, pruebas de seguridad de contraseñas, sistemas, redes, etc.).
34
La metodología está dividida en cuatro fases principales estructuradas en varios
paquetes de trabajo (llamados "actividades"). Las cuatro fases son, respectivamente:
Planificación, Evaluación, Tratamiento y Acreditación. La Figura 2.10 muestra el flujo
de trabajo de ISSAF.
Imagen Flujo de trabajo 2.9
La fase de planificación se refiere a todas las operaciones necesarias para definir un
plan de proyecto para todo el proceso de evaluación. Antes de continuar con la parte
operativa, las organizaciones deben motivar la evaluación para corroborar las
preocupaciones subyacentes. Además, las organizaciones deben preparar un plan de
negocios para cubrir los costos e identificar el personal y los recursos disponibles. Los
principales pasos en esta fase son: [13]:
• Recopilación de información
• Proyecto de fletamento
• Identificación de recursos
35
• Presupuesto
• Flujo de fondos
• Estructura de desglose del trabajo
Recopilación de información
ISSAF define la recopilación de información en el más amplio sentido posible.
Comprende métodos técnicos y no técnicos. El anterior busca registros DNS y explota
herramientas como WHOIS. Este último implementa algunos métodos de ingeniería
social (por ejemplo, usar motores de búsqueda y listas de correo para encontrar
Información sobre el objetivo). Cuanto más sepa un pentester sobre su víctima, más,
mejorará sus posibilidades de atacarlo con éxito. Durante esta fase, el atacante no
siempre necesita establecer un contacto con el objetivo. Importante la información
también se puede recopilar de fuentes públicas (por ejemplo, Internet)[13].
Mapeo de la red
• Encontrar hosts disponibles
• Escaneo de puertos y servicios
• Mapo de firewall y enrutadores
• Identificación de servicios críticos
• Identificación del tipo de sistema operativo
• Identificación de versiones y software en servicios
36
Imagen Metodología de pentest 2.10
• Identificación de vulnerabilidades
• Intrusión
• Ganando acceso y escalando privilegios
• Enumeración adicional
• Comprometer usuarios / sitios remotos
• Mantener el acceso
• Cubrir rastros
Identificación de vulnerabilidades
Antes de comenzar esta fase, el pentester / auditor debe escoger los puntos
específicos a probar y la manera como probarlos.[14] Durante la identificación de
vulnerabilidades, el pentester tendrá que realizar varias actividades para detectar y
explotar puntos débiles. Estas actividades incluyen:
• Identificación de servicios usando servicios de banners
• CVE
• CERT
37
• Enumerar las vulnerabilidades encontradas
• Clasificar vulnerabilidades por impacto
• Identificar rutas de ataque y escenarios de explotación
Intrusión
El pentester en esta fase intentara obtener acceso no autorizado, para evitar las
medidas de seguridad y tratara de llegar al mayor nivel de acceso posible. Este
proceso se puede dividir en los siguientes pasos [15]:
• Desarrollar herramientas/scripts.
• Hacer pruebas de concepto/herramienta.
• Personalizar pruebas de concepto/herramienta en un entorno aislado.
• Verificar y desaprobar la existencia de vulnerabilidades.
• Obtener mayor cantidad de puntos de acceso no autorizados como sea
posible.
• Documentar los hallazgos.
Ganando acceso y escalando privilegios
En esta fase, los pentesters confirmarán la posibilidad de acceder al objetivo. Para
hacer eso, el atacante tiene que comprometer todos los sistemas intermedios en el
camino que lleva al sistema físico. (Por ejemplo, firewalls, enrutadores, etc.).[16]
Además, el atacante generalmente accederá al sistema con los menores privilegios
posibles e intentará obtener los derechos del administrador explotando
vulnerabilidades locales con root-kits
Enumeración adicional
Esta fase enumera actividades maliciosas que el atacante puede realizar dentro del
sistema comprometido. Tales actividades son [17]:
• Obtener contraseñas encriptadas para crackearlas en modo offline
38
• Obtener contraseñas mediante el uso de sniffing u otras técnicas
• Detecta el tráfico y analízalo
• Recopilar cookies y usarlas para explotar sesiones y para ataques de contraseñas
• Recolección correo electrónico
• Identificar nuevas rutas y redes
• Mapeo de redes internas
Comprometer usuarios / sitios remotos
Esta fase se enfoca en la presencia de comunicaciones (por ejemplo, redes privadas
virtuales) entre usuarios / sitios remotos y red de empresas. En este escenario, los
atacantes pueden intentar extender su control a usuarios remotos y redes aisladas.
En caso de éxito, el atacante repetirá todos los pasos previos en el nuevo entorno.
[18]
Mantener el acceso
En esta fase, los pentesters se aseguran de controlar el sistema también en el futuro.
Como una vulnerabilidad siempre puede ser parcheado por los operadores del sistema
un atacante puede instalar código malicioso en el sistema para crear canales ocultos
y puertas traseras. Tal verificación muestra el grado de exposición que un sistema
puede tener una vez comprometido. La fase de mantenimiento de acceso a menudo
no se realiza como parte de una prueba de penetración debido a los riesgos
involucrados (por ejemplo, un atacante real capaz de tomar posesión del canal secreto
y obtener acceso al sistema).[18]
Cubriendo Pistas
Esta fase asegura que los atacantes sean invisibles para un análisis posterior. Por lo
general, durante una prueba de penetración, los atacantes deben ser lo más abiertos
posible sobre sus operaciones (a menos que la compañía expresamente solicite lo
39
contrario). Ahí son varias acciones que los pentesters pueden realizar para ocultar sus
rastros [18]
• Ocultar archivos modificados y herramientas usadas
• Borrar registros al verificar el historial y editar archivos de registro
• Derrota la comprobación de integridad
• Derrota a los antivirus
• Implementar kits de raíz personalizados
Reporte Final
Es una presentación en con resultados detallados de la prueba. Cada vulnerabilidad
descubierta debe ser presentada con contramedidas relacionadas y una propuesta
sobre cómo implementarlos. El informe debe seguir una estructura bien documentada.
ISSAF propone una lista de información necesaria para documento:
• Resumen de gestión
• Alcance del proyecto
• Herramientas que se han utilizado
• Fechas y horas de las pruebas reales en los sistemas
• Salidas de pruebas realizadas
• Una lista de todas las vulnerabilidades identificadas con recomendaciones
incluidas sobre cómo
• para resolver problemas encontrados
• Una lista de puntos de acción
Finalmente, toda la información que se crea y / o almacena durante la prueba en los
sistemas de destino debería ser removido. Si esto no es posible, dicha información
(por ejemplo, archivos y directorios) debe mencionarse a los operadores del sistema
para proceder a su eliminación. [19]
40
Clasificación de pentest
Para afirmar una prueba de pentesting eficiente y efectiva, el encargando de las
pruebas de pentesting debe concentrarse en factores tales como qué criterios se
pueden usar para describir una prueba de pentesting?, ¿qué distingue una prueba de
penetración de otra? Funciones distintivas, como la extensión de los sistemas que se
probarán, la cautela o la agresividad de las pruebas.[20]Una prueba de pentesting
apropiada debe definirse sobre la base de ciertos criterios. La Imagen 2.11 muestra
una clasificación de posibles pruebas de penetración. A la izquierda, están los criterios
para definir las pruebas de penetración y, a la derecha, las métricas correspondientes
para los criterios.
Imagen clasificación de penetration test 2.11
41
Cualquier prueba de pentest se puede clasificar métricamente a partir de los criterios.
Aunque, todas las combinaciones son posibles, pero no pueden ser útiles. Las
pruebas de test debe tener cuidado en su interpretación engañosa. La prueba de
pentest que combina un ataque agresivo desde un enfoque oculto es un ejemplo de
una mala selección de combinación de técnicas. Los seis criterios y sus posibles
métricas son breves y se analizan a continuación:
Pruebas basadas en información
Dada la cantidad de información disponible para los PenTesters antes de las pruebas
sobre el sistema a testear, [21] se realiza una distinción entre la prueba de caja negra
y la prueba de caja blanca
• En una prueba de caja blanca, los testers tienen o se les proporciona un
conocimiento completo sobre la red de destino o la infraestructura del sistema. Esta
prueba se puede considerar como una simulación de un ataque de cualquier
persona interna que pueda estar en posesión del conocimiento del sistema. El
objetivo principal de una prueba de pentest de caja blanca es proporcionar
información a los testers para que puedan ver el funcionamiento del sistema y
elaborar la prueba en base al conocimiento obtenido. Por ejemplo, prueba de
penetración de la infraestructura de caja blanca, información que contiene mapas
de red y detalles de la infraestructura. Se proporcionan y en el caso de la prueba
de penetración de la aplicación, se proporciona el código fuente de la aplicación
junto con la información de diseño, etc.
• En una prueba de caja negra cuentan o no cuentan información previa sobre la
infraestructura del sistema objetivo. Este tipo de pruebas puede ser considerado
una simulación de un ataque del mundo real por un extraño. Hackers éticos o
testers necesitan obtener la información de fuentes públicas para buscar
información sobre el objetivo, correos electrónicos, dominios, mapear la red,
sistemas operativos, servicios son típicamente para las pruebas de caja negra.
42
Pruebas por el punto inicial de los ataques
Una prueba de pentest define el punto de ataque inicial donde PenTester comienza
una prueba externa o interna a la red de una organización. Un punto desde donde el
tester elige llevar a cabo un ataque es el punto inicial. [22]Por lo general, los puntos
de partida son firewall, servicios de acceso remoto, servidores web y redes
inalámbricas.
• Una prueba de penetración realizada desde un entorno interno, el penTester
es conectado a la infraestructura interna con acceso básico al sistema
informático. La simulación de este ataque facilita a la organización información
valiosa sobre cómo proteger los sistemas contra sus empleados descontentos.
Durante las pruebas internas, el PenTester puede evaluar el impacto de un
error en la configuración del firewall junto con el acceso físico del sistema para
simular un ataque de personas con acceso a la red interna.
Imagen penetration testing en una red interna analizando paquetes del servicio
ftp 2.12
43
• En una prueba de penetración realizada desde un entorno externo, el
PenTester intenta romper la seguridad desde el exterior con un enfoque en la
red conectada a internet. Dichas pruebas establecen al PenTester en la misma
posición que cualquier otro atacante y proporciona una imagen general del
ataque como podría esperar. Tales ataques generalmente se hacen desde
cero, con o sin divulgación de información de acceso al PenTester.
Normalmente, los centros de datos de Internet (IDC), los firewalls, los VPN, los
puntos de acceso remoto y el entorno DMZ son los objetivos obvios para los
intentos de ataque.
Imagen red operations CTF simulando un ataque del mundo real externo 2.13
44
Como podemos ver en imagen vemos que hemos vulnerado el firewall desde una
conexión a internet atreves de una cadena de proxis para probar la configuración del
firewall y en efecto tuvimos un ataque exitoso pero además logramos escalar los
privilegios.
45
Herramientas de pruebas de intrusión
Las herramientas de pruebas de intrusión nos permitirán automatizar y agilizar el
tiempo a la hora de realizar un pentesting otra un objetivo u organización con la
finalidad te probar la seguridad ya sea del firewall, los IDPS, malas configuraciones
etc.
Herramientas de análisis de sistema operativo y servicios
1. NMAP
Es una herramienta de seguridad informática para escanear servicios que están
disponibles y en que puertos, es muy útil para descubrir qué tipo de sistema
operativo tiene el host, como también que versiones de servicios y software
instalado, también nos puede servir como un escaneador de vulnerabilidades.[23]
Imagen stealth scan 2.14
Como podeos ver en la imagen realizamos un escaneo en modo stealth que quiere
decir en modo stealth que lo estamos realizando de una manera sijilosa y evitar
46
ser registrado en el firewall o posible ip/ids , una ves terminado el scaneo vemos
que nos regresa diferentes servicios instalados en el host con su respectivo puerto.
2. Nessus
es un escanner de vulnerabilidades que ofrece diariamente actualizaciones , sobre
problemas de seguridad facilitando analizar qué tipo de problemas se encuentra
en nuestros sistemas[23] tales como la vulnerabilidad ms17-010 más bien
conocida como enternalblue para después solucionar el problema de seguridad
como se puede observar en lo siguiente.
Imagen cliente web nessus 2.15
Nessus tiene clientes para Windows, Linux y Mac este se conecta al servidor de
nessus y agrega host objetivó para buscar los posibles fallos de seguridad en el
sistema.
47
Herramientas para explotar vulnerabilidades web
Las herramientas automatizadas para explotar vulnerabilidades web pueden ser de
gran ayuda al momento de realizar un web pentest pero a veces estas herramientas
pueden causar un problema debido que muchas están en la lista negra y al momento
de realizar un escaneo o una explotación de dicha vulnerabilidad somos baneados
1. SQLMAP Es una herramienta de prueba de intrusión para agilizar el proceso de detección y
explotación de inyección SQL, con el fin de tomar control de la base de datos. [25]
Imagen sqlmap 2.16
Esta poderosa herramienta viene con un motor de detección de fallas de inyección
SQL sorprendente y una amplia gama de modalidades para acceder al sistema
operativo y ejecutar inyecciones SQL.
2. BEEF framework
48
Esta herramienta es una de muchas herramientas de intrusión para la parte del
cliente (browser) que su objetivó es permitir testear un aplicación web con posibles
errores de validación al momento de mandar los datos.
Imagen Interfaz BEEF framework 2.17
También cómo podemos ver esta herramienta es capaz de crear payloads
automatizados, ingeniería social, y muchos más.
49
Herramientas de intrusión de infraestructura de red.
1. Metasploit
Es una herramienta de intrusión, esta poderosa herramienta nos ayuda mucho
sobre la información de vulnerabilidades, pruebas de pentest, ejecución de
explotación de vulnerabilidades, pivoting e movimiento lateral,[27] dicha
herramienta nos ayuda a lograr ataques informáticos de una manera muy
sistematizada y automatizada como podemos ver a continuación.
Imagen metasploit pivoting 2.18
Esta herramienta es considerada unas de las más usadas dentro del mundo de la
seguridad informática, hacking ético como ilegal.
2. Armitage
Esta herramienta es la versión visual de metasploit framework pero aún más
potente ya que dicha herramienta es una herramienta colaborativa donde varios
miembros pueden trabajar otras tareas en el mismo objetivó y estar aportando
mientras otros realizan otras tareas[28] como podemos ver
50
Imagen interfaz armitage GUI 2.19
También esta herramienta es muy común ultizada en operaciones red team, que
quiero decir con operaciones red team es un equipo altamente especializado en tareas
de hacking tal y como grupos de hackers lo harían todos aportando ya sea uno
realizando la tarea de recolección de datos, otro escaneando puertos y servicios y así
sucesivamente.
Como podemos ver en la imagen las fechas verdes brillantes quieren decir que
miembros del equipo tienen una conexión tunelizada en pivoting.
51
Herramientas de acceso remoto
1. WEEVELY es un shell web diseñado para la administración remota de servidores y las
pruebas de penetración que pueden extenderse a través de la red en tiempo de
ejecución con más de 30 módulos.[29]
Ejecuta código remoto a través de un agente PHP ofuscado ubicado en el
servidor HTTP comprometido
.
Imagen web Shell obfuscate 2.20
La Shell es un script PHP pequeño y polimorfo que apenas es detectable por el
software AV, y la comunicación entre el cliente y el agente se ofusca dentro de las
solicitudes HTTP.
52
Capitulo III
En este capítulo se habla de las metodologías de desarrollo, elección correcta de la
metodología, implementación, resultados, recomendaciones y más.
_________________________________________________________________________________
53
Introducción
Este capítulo resume los resultados obtenidos durante la prueba de penetración en un
laboratorio de red, brinda una breve descripción de la necesidad de contar con una
metodología de prueba de penetración e intenta evaluar si las metas y las
declaraciones de problemas establecidas en el primer capítulo se abordaron
satisfactoriamente o no. Este enfoque finalmente conduce a una discusión sobre las
contribuciones hechas por este trabajo de tesis y trabajo futuro.
Metodología de desarrollo
La metodología de desarrollo de una de pentest, forma parte fundamental para el
desarrollo y prevención de mantener los sistemas seguros menos vulnerables así se
lleva a cabo de una manera adecuada y confidencial estos tipos de pruebas de
vulnerabilidades ya que se contenten datos críticos que fueron descubiertos durante
la fase de recolección de datos y escaneo de puertos y servicios. Estas metodologías
facilitan el desarrollo siempre y cuando se tome la metodología adecuada como la ya
conocida ISSAF y OWASP.
La metodología que se utilizó para la evaluar los posibles ataques que puede sufrir la
organización, así que se decidió utilizar esta metodología, para determinar todos los
distintos tipos de ataques susceptible hacia dicha organización.
Elección de la metodología
Durante la elección de la metodología adecuada para realizar dicho trabajo fue algo
muy difícil porque tuvimos que clasificar cual era la mejor metodología para realizar el
trabajo ya que no todas las metodologías dentro de la seguridad informática puede
que no nos den el resultado que nosotros esperamos y por eso una vez analizado todo
elegimos por la metodología ISSAF que es la más cercana a lo que realizaremos
54
Imagen metodologías de pentesting 3.1
Implementación del pentest
La implementación del pentest existen muchos casos donde en la organización ha
sufrido incidentes que podrían haberse evitado si los mecanismos de protección
hubieran sido reforzados en su momento. Los incidentes alcanzan sucesos tales como
fuga de información, accesos no autorizados, alteración de datos, entre muchos otros.
El análisis de los mecanismos de protección debe ser una tarea proactiva permitiendo
al pentester (persona que lleva adelante la auditoría) encontrar las vulnerabilidades
dentro de los mismos y brindar una solución antes de que un atacante aproveche esta
debilidad. Como podemos observar
55
Imagen código fuente de aplicación web inseguro 3.2
al momento de implementar las soluciones para una mejor para solucionar los
problemas de seguridad encontramos que desde las malas prácticas de
programación, no validar correctamente tenemos estos tipos de fallas y mal
comportamiento de la aplicación dejando el poder tener acceso no autorizado y todo
lleva de la mano un gran falta de controles de seguridad para dicha aplicación entre
otras cosas.
Resultados
El resumen de los resultados exitosos y fallidos obtenidos en la prueba de pentest
aplicada por cada uno de los campos de evaluación como puede se puede ver en la
tabla siguiente:
Tabla resumen resultados exitosos y fallidos testeados en el servidor web. 3.1
Como se puede observar en la tabla, teniendo resultados exitosos en las pruebas
aplicadas dirigidas a la inclusión de archivos transversales, manejo del esquema de
autorización, escalamiento de privilegios y referencias a objetos potencialmente
inseguros. Por otro lado y el siguiente campo en el que presenta fortalezas es en el
de autenticación de usuarios (Authentication), aquí se hace un paréntesis aclarando
que este campo es diferente a la autorización de usuarios. Al hablar de
autenticación, se refiere al proceso o a la forma como el sistema verifica la identidad
del usuario al acceder o al intentar acceder a la aplicación, en cambio al hablar de
56
Imagen interceptando cookies 3.3
Autorización se refiere a como el sistema valida y gestiona los accesos a recursos del
sistema y los permisos asignados al usuario. Continuando con el análisis y a lo que se
refiere a autenticación de usuarios, presenta fortalezas en el esquema de
autenticación implementado el cual fue revisado a través de las pruebas específicas
de acceso forzoso a páginas directas y predicción del identificador de sesión, adicional
a esto permite parametrizar el número de intentos de accesos fallidos a la aplicación,
por lo cual esto debe ser determinado cuidadosamente por el usuario administrador
de la aplicación. Sin embargo, presenta conformidades principalmente en el campo de
manejo de identidad del usuario teniendo vulnerabilidades en el proceso de registro
del usuario en la aplicación y en la verificación de usuarios existentes en la aplicación;
en el campo del manejo de sesión donde fue posible acceder a los valores de las
cookies correspondientes donde además se identificó la ausencia de atributos de
seguridad importantes para evitar el robo de sesión. Pero, uno de los campos en los
57
cuales se realizaron cinco pruebas con resultados fallidos sobre seis en total, fue el
correspondiente al lado del cliente (Client-Side) donde los scripts implementados del
lado de la interfaz del usuario presentaron una no conformidad mayor al vulnerar
incluso los datos del sistema, permitiendo inyectar código malicioso para que el
usuario realizara acciones de alto impacto sin intención del usuario como puede en
este caso subimos un web Shell
Imagen mostrando usuarios del servidor web 3.4
Una vez obtenida la sesión de la conexión inversa en el servidor podemos ahora
seguir obteniendo vectores tal como son las vulnerabilidades de acceso local
En este caso vamos a tratar de explotar una vulnerabilidad de acceso local, una vez
que vimos que es un servidor web corriendo en Ubuntu en una versión antigua nos
dimos cuenta que el kernel es vulnerable a un fallo crítico que nos da acceso a root
como podemos ver en lo siguiente:
58
Imagen exploit kernel Ubuntu 3.5
Como se muestra en la imagen tuvimos éxito en la explotación de la vulnerabilidad
del kernel de Ubuntu y nos dio un acceso a root que quiero decir con root, que tengo
permisos muy elevados de hacer cualquier acción pero en este caso hasta aquí fue
pedido realizar el pentest.
Identificación de los riesgos
A continuación se relaciona un riesgo por cada vulnerabilidad encontrada(es decir, se
relaciona solamente a los resultados que fueron fallidos o no tuvieron éxito de ser
explotados o vulnerados
Imagen clasificación de riesgos 3.6
59
Como se puede ver en la clasificación de riesgos dicha aplicación que usamos una
herramienta automatizada para realizar un escaneo más a profundidad de las
vulnerabilidades y clasificarlas según el riesgo que nos podría causar y si como nos
imaginamos dicha aplicación nos marca vulnerabilidades en estado alto o critico esto
se refiere que tiene un gran alto porcentaje de ser vulnerado remotamente o local en
la aplicación nos muestra 5 colores pero los más importantes son el anaranjado y el
rojo que significan vulnerabilidades de mediano impacto y los rojos por lógica de alto
impacto o críticos
60
Recomendaciones
• Mantener el sistema operativo donde se aloja la aplicación web, debida que
puede ser un hueco de seguridad.
• Incluir dentro de la política de seguridad, las políticas de programación segura
para mitigar las vulnerabilidades.
• Incluir mecanismos de seguridad físicos tales como son el firewall, IDS(sistema
de detección de intrusos), entre otros para detectar posibles ataques al sistema
y contrarrestarlos.
• Utilizar planes de contingencia para preservar el principio de la disponibilidad,
por si un sistema informático ha sido vulnerado.
• Crear una buena configuración de ACL en la red donde se aloja el sistema
informático y la organización.
• Mantener los servicios en la última versión disponible pero estable.
61
Conclusiones
Como resultado de la investigación se llegó a una conclusión de que muchas
empresas, universidades ven la seguridad informática como algo aparte y no como un
valor agregado al desarrollar una aplicación , al crear una infraestructura de red, ya
que esto proporciona prestigio y confiabilidad con los clientes. En la actualidad existen
muchos métodos de como poder vulnerar un sitio web, un servidor FTP, APACHE,
por mencionar algunos algunas vulnerabilidades pueden ser fáciles de vulnerar como
también algunas pueden ser muy complejas de vulnerar desde minutos hasta días ,
semanas , meses. Las técnicas investigadas de las diferentes metodologías como
llevar acabo un pen test, operaciones red team, en un área como la metodología
OWASP el en el clico de desarrollo de software para aplicaciones web seguras, para
las pruebas de intrusión y operaciones red team tenemos ISSAF, efectivamente cada
una de ella no son susceptibles la una de la otra, de lo contrario se complementan y
aportan a la seguridad, crear una guía de diseño , políticas de seguridad , protocolos
y buenas prácticas de programación que involucren los controles de seguridad en una
empresa. La seguridad en las aplicaciones y red deben considerares desde un
principio , debido a que reparar las vulnerabilidades cuando esté terminada puede ser
muy costoso y más cuando son redes muy grandes o aplicaciones.
62
Referencias bibliográficas
[1]https://www.cynthus.com.mx/blog/seguridad-de-la-informacion/mexico-y-la-
seguridad-informatica/ ISACA 6.10.2017
[2]http://searchdatacenter.techtarget.com/es/definicion/Prueba-de-penetracion-pen-
test 6.10.2017
[3] Boritz, J. Efrim. "IS Practitioners' Views on Core Concepts of Information Integrity".
International Journal of Accounting Information Systems. Elsevier. 6 (4): 260–279.
6.10.2017
[4] Loukas, G.; "Protection Against Denial of Service Attacks: A Survey" (PDF).
Comput. J. 53 (7): 1020–1037. doi:10.1093/comjnl/bxp078. 8.10.2017
[5]https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) Cross site Scripting
(XSS) OWASP Foundation 8.10.2017
[6] https://www.owasp.org/index.php/Types_of_Cross-Site_Scripting Types of Cross-
Site Scripting – OWASP Foundation 8.10.2017
[7] https://www.owasp.org/images/8/80/Guía_de_pruebas_de_OWASP_ver_3.0.pdf
Guia de pruebas OWSAP OWASP Foundation 9.10.2017
[8]https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) 9.10.2017
Cross-Site Request Forgery (CSRF) - OWASP Foundation 9.10.2017
[9]http://projects.webappsec.org/w/page/13246955/Remote%20File%20Inclusion
Remote File Inclusion Robert Auger 9.11.2017
[10] https://www.owasp.org/index.php/Buffer_Overflows Buffer Overflows -
OWASP Foundation 9.11.2017
[11]https://www.ibm.com/developerworks/library/se-owasptop10/se-owasptop10-
pdf.pdf OWASP top 10 vulnerabilities IBM Corporation 10.11.2017
63
[12] http://www.oissg.org/files/issaf0.2.1A.pdf Information Systems Security
Assessment Framework (ISSAF) Open Information Systems Security Group
12.11.2017
[13] Balwant Rathore, Mark Brunner, Miguel Dilaj, Omar Herrera, Piero Brunati, Rama
K Subramaniam, Subash Raman, and Umesh Chavan. Issaf 0.2.1 - information
systems security assessment framework, 12.11.2017
[14]http://resources.infosecinstitute.com/penetration-testing-methodologies-and-
standards/#gref Penetration Testing Methodologies and Standards InfoSec Resources
12.11.2017
[15] M. Prandini and M. Ramilli. Towards a practical and effective security testing
methodology. In Computers and Communications (ISCC), 2010 IEEE Symposium on,
pages 320–325. 14.11.2017
[16] D.P. Duggan, M. Berg, J. Dillinger, and J. Stamp. Penetration testing of industrial
control systems. Sandia National Laboratories, 14.11.2017
[17] P Herzog. Osstmm 3–the open source security testing methodology manual.
barcelona, España: Isecom, 14.11.2017
[18] Karen Scarfone, Murugiah Souppaya, Amanda Cody, and Angela Orebaugh. Nist
special publication 800-115: Technical guide to information security testing and
assessment. 15.11.2017
[19]K. Xynos, I. Sutherlan, H. Read, E. Everitt, and J C A. Blyth. ”penetration testing
andvulnerabilityassessments:Aprofessionalapproach”.InProceedingsofThe1st
International Cyber Resilience Conference. Edith Cown University, Perth, Western
Australia,SECAU-SecurityResearchCentre. 15.11.2017
[20] B.Kang. ”about effective penetration testing methodology”. 15.11.2017
64
[21] C. T. Wai and SANS Info Tech Reading Room. ”conducting a penetration test on
an organization”. http://www.sans.org/, 17.11.2017
[22] J. Wack, M. Tracy, and M. Souppaya. ”guideline on network security testing”.
http://www.iwar.org.uk/comsec/resources/netsec-testing/sp800-42.pdf. 19.11.2017
[23] https://nmap.org/ Nmap: the Network Mapper - Free Security Scanner Rob
Fitzpatrick, Paulino Calderon 17.11.2017
[24] https://www.chmag.in/articles/toolgyan/nessus/ CH Magazine | Nessus
17.11.2017
[25] http://sqlmap.org/ sqlmap: automatic SQL injection and database takeover tool
Bernardo Damele Assumpcao Guimaraes and Miroslav Stampar 20.11.2017
[26] http://beefproject.com/ BeEF - The Browser Exploitation Framework Project Wade
Alcorn 21.11.2017
[27] https://www.metasploit.com/ Rapid7, Inc 23.11.2017
[28] http://www.fastandeasyhacking.com/manual Strategic Cyber LLC 24.11.2017
[29] https://github.com/epinna/weevely3 Weevely Developers 27.11.2017