beginners guide web application penetration testing
Pruebas de penetración también conocido como Pen Test es la técnica de prueba de seguridad más utilizada para aplicaciones web.
Las pruebas de penetración de aplicaciones web se realizan simulando ataques no autorizados internos o externos para obtener acceso a datos confidenciales.
Una penetración web ayuda al usuario final a descubrir la posibilidad de que un pirata informático acceda a los datos de Internet, averigüe la seguridad de sus servidores de correo electrónico y también conozca la seguridad del sitio y el servidor de alojamiento web.
Bien, veamos ahora el contenido de este artículo.
fecha de lanzamiento del casco de realidad virtual xbox one
(imagen fuente )
En este tutorial de pruebas de penetración he tratado de cubrir:
- La necesidad de Pentest para las pruebas de aplicaciones web,
- Metodología estándar disponible para Pentest,
- Enfoque para la aplicación web Pentest,
- ¿Cuáles son los tipos de pruebas que podemos realizar?
- Pasos a seguir para realizar una prueba de penetración,
- Herramientas que se pueden utilizar para realizar pruebas,
- Algunos de los proveedores de servicios de pruebas de penetración y
- Algunas de las certificaciones para las pruebas de penetración web
Herramientas de análisis de vulnerabilidades recomendadas:
# 1) parker neto
Netsparker es una plataforma de pruebas de seguridad de aplicaciones web automatizada y fácil de usar que puede utilizar para identificar vulnerabilidades reales y explotables en sus sitios web.
#2) Kiuwan
Encuentre y corrija vulnerabilidades en su código en cada etapa del SDLC.
Kiuwan cumple con los estándares de seguridad más estrictos, incluidos OWASP, CWE, SANS 25, HIPPA y más. Integre Kiuwan en su IDE para obtener comentarios instantáneos durante el desarrollo. Kiuwan es compatible con los principales lenguajes de programación y se integra con las principales herramientas de DevOps.
=> Escanea tu código gratisLo que vas a aprender:
- ¿Por qué se requieren pruebas de penetración?
- Metodología de prueba de penetración web
- Tipos de pruebas de penetración web
- Enfoque de prueba de lápiz web:
- Principales herramientas de prueba de penetración
- Principales empresas de pruebas de penetración
- Algunas certificaciones de pruebas de penetración:
- Conclusión
- Lectura recomendada
¿Por qué se requieren pruebas de penetración?
Cuando hablamos de seguridad, la palabra más común que escuchamos es Vulnerabilidad .
Cuando comencé a trabajar como tester de seguridad, solía confundirme muy a menudo con esta palabra Vulnerabilidad, y estoy seguro de que muchos de ustedes, mis lectores, caerían en el mismo barco.
Para beneficio de todos mis lectores, primero aclararé la diferencia entre vulnerabilidad y prueba de penetración.
Entonces que es Vulnerabilidad ? La vulnerabilidad es una terminología utilizada para identificar fallas en el sistema que pueden exponerlo a amenazas de seguridad.
¿Escaneo de vulnerabilidades o prueba de lápiz?
Vulnerability Scanning permite al usuario descubrir las debilidades conocidas en la aplicación y define métodos para corregir y mejorar la seguridad general de la aplicación. Básicamente, averigua si hay parches de seguridad instalados, si los sistemas están configurados correctamente para dificultar los ataques.
Pen Tests simula principalmente sistemas en tiempo real y ayuda al usuario a averiguar si usuarios no autorizados pueden acceder al sistema, en caso afirmativo, qué daños se pueden causar y a qué datos, etc.
Por lo tanto, Vulnerability Scanning es un método de control de detective que sugiere formas de mejorar el programa de seguridad y garantizar que las debilidades conocidas no resurjan, mientras que la prueba de penetración es un método de control preventivo que brinda una visión general de la capa de seguridad existente del sistema.
Sin embargo, ambos métodos tienen su importancia, pero dependerá de lo que realmente se espera como parte de la prueba.
Como probadores, es imperativo tener claro el propósito de las pruebas antes de pasar a las pruebas. Si tiene claro el objetivo, puede definir muy bien si necesita hacer un escaneo de vulnerabilidades o una prueba de lápiz.
Importancia y necesidad de las pruebas de lápiz de aplicaciones web:
- Pentest Ayuda a identificar vulnerabilidades desconocidas.
- Ayuda a comprobar la eficacia de las políticas de seguridad generales.
- Ayude a probar los componentes expuestos públicamente como firewalls, enrutadores y DNS.
- Permite al usuario descubrir la ruta más vulnerable a través de la cual se puede realizar un ataque.
- Ayuda a encontrar las lagunas que pueden conducir al robo de datos confidenciales.
Si observa la demanda actual del mercado, ha habido un fuerte aumento en el uso de dispositivos móviles, que se está convirtiendo en un gran potencial para los ataques. El acceso a sitios web a través de teléfonos móviles es propenso a ataques más frecuentes y, por lo tanto, compromete los datos.
Por lo tanto, las pruebas de penetración se vuelven muy importantes para garantizar que construimos un sistema seguro que los usuarios puedan utilizar sin preocupaciones de piratería o pérdida de datos.
Metodología de prueba de penetración web
La metodología no es más que un conjunto de pautas de la industria de seguridad sobre cómo se deben realizar las pruebas. Existen algunas metodologías y estándares bien establecidos y famosos que se pueden utilizar para las pruebas, pero dado que cada aplicación web exige que se realicen diferentes tipos de pruebas, los probadores pueden crear sus propias metodologías haciendo referencia a los estándares disponibles en el mercado.
Algunas de las metodologías y estándares de pruebas de seguridad son:
- OWASP (Proyecto de seguridad de aplicaciones web abiertas)
- OSSTMM (Manual de metodología de pruebas de seguridad de código abierto)
- PTF (Marco de prueba de penetración)
- ISSAF (Marco de evaluación de la seguridad de los sistemas de información)
- PCI DSS (Estándar de seguridad de datos de la industria de tarjetas de pago)
Escenarios de prueba:
A continuación se enumeran algunos de los escenarios de prueba que se pueden probar como parte de Prueba de penetración de aplicaciones web (WAPT):
- Secuencias de comandos entre sitios
- Inyección SQL
- Autenticación y gestión de sesiones rotas
- Errores de carga de archivos
- Ataques de servidores de caché
- Configuraciones incorrectas de seguridad
- Falsificación de solicitudes entre sitios
- Craqueo de contraseña
Aunque he mencionado la lista, los probadores no deben crear a ciegas su metodología de prueba basándose en los estándares convencionales anteriores.
Aquí hay unejemplopara demostrar por qué lo digo.
Considere que se le pide que realice una prueba de penetración en un sitio web de comercio electrónico, ahora piense si todas las vulnerabilidades de un sitio web de comercio electrónico se pueden identificar utilizando los métodos convencionales de OWASP como XSS, inyección SQL, etc.
La respuesta es un No porque el comercio electrónico funciona en una plataforma y tecnología muy diferente en comparación con otros sitios web. Para que su prueba de lápiz para el sitio web de comercio electrónico sea efectiva, los evaluadores deben diseñar una metodología que involucre fallas como la gestión de pedidos, la gestión de cupones y recompensas, la integración de la pasarela de pago y la integración del sistema de gestión de contenido.
Por lo tanto, antes de decidirse por la metodología, asegúrese de qué tipos de sitios web se esperan probar y qué método ayudará a encontrar las vulnerabilidades máximas.
Tipos de pruebas de penetración web
Las aplicaciones web pueden probarse la penetración de 2 formas. Las pruebas pueden diseñarse para simular un ataque interno o externo.
# 1) Prueba de penetración interna -
Como sugiere el nombre, la prueba de lápiz interna se realiza dentro de la organización a través de la LAN, por lo que incluye probar aplicaciones web alojadas en la intranet.
Esto ayuda a descubrir si podría haber vulnerabilidades dentro del firewall corporativo.
Siempre creemos que los ataques solo pueden ocurrir externamente y muchas veces se pasa por alto el Pentest interno o no se le da mucha importancia.
Básicamente, incluye ataques de empleados maliciosos por parte de empleados o contratistas descontentos que habrían renunciado pero conscientes de las políticas y contraseñas de seguridad internas, ataques de ingeniería social, simulación de ataques de phishing y ataques con privilegios de usuario o uso indebido de un terminal desbloqueado.
Las pruebas se realizan principalmente accediendo al entorno sin las credenciales adecuadas e identificando si un
#2) Prueba de penetración externa -
Estos son ataques realizados de manera externa desde fuera de la organización e incluyen pruebas de aplicaciones web alojadas en Internet.
preguntas de entrevista basadas en escenarios de pl sql
Los probadores se comportan como piratas informáticos que no conocen mucho el sistema interno.
Para simular tales ataques, los probadores reciben la IP del sistema de destino y no se les proporciona ninguna otra información. Deben buscar y escanear páginas web públicas y encontrar nuestra información sobre los hosts de destino y luego comprometer los hosts encontrados.
Básicamente, incluye servidores de prueba, firewalls e IDS.
Enfoque de prueba de lápiz web:
Se puede realizar en 3 fases:
# 1) Fase de planificación (antes de la prueba)
Antes de que comiencen las pruebas, es recomendable planificar qué tipos de pruebas se realizarán, cómo se realizarán las pruebas, determinar si QA necesita acceso adicional a las herramientas, etc.
- Definicion del alcance - Esto es lo mismo que nuestras pruebas funcionales, donde definimos el alcance de nuestras pruebas antes de comenzar nuestros esfuerzos de prueba.
- Disponibilidad de documentación para los probadores - Asegúrese de que los probadores tengan todos los documentos necesarios, como documentos que detallan la arquitectura web, puntos de integración, integración de servicios web, etc. El evaluador debe conocer los conceptos básicos del protocolo HTTP / HTTPS y conocer la arquitectura de aplicaciones web y las formas de interceptación del tráfico.
- Determinación de los criterios de éxito: A diferencia de nuestros casos de prueba funcional, donde podemos derivar los resultados esperados de los requisitos del usuario / requisitos funcionales, las pruebas de lápiz funcionan en un modelo diferente. Los criterios de éxito o los criterios de aprobación del caso de prueba deben definirse y aprobarse.
- Revisión de los resultados de las pruebas anteriores: Si alguna vez se realizaron pruebas previas, es bueno revisar los resultados de las pruebas para comprender qué vulnerabilidades existieron en el pasado y qué remedio se tomó para resolver. Esto siempre da una mejor imagen de los probadores.
- Entender el medio ambiente - Los evaluadores deben adquirir conocimientos sobre el medio ambiente antes de comenzar las pruebas. Este paso debe garantizar que comprendan los cortafuegos u otros protocolos de seguridad que deberían estar desactivados para realizar las pruebas. El navegador que se va a probar debe convertirse en una plataforma de ataque, generalmente mediante el cambio de proxies.
# 2) Fase de ataques / ejecución (durante la prueba):
Las pruebas de penetración web se pueden realizar desde cualquier ubicación, dado que el proveedor de Internet no debería imponer restricciones a los puertos y servicios.
- Asegúrese de ejecutar una prueba con diferentes roles de usuario: Los evaluadores deben asegurarse de ejecutar pruebas con usuarios que tengan diferentes roles, ya que el sistema puede comportarse de manera diferente con respecto a los usuarios que tienen diferentes privilegios.
- Conciencia sobre cómo manejar la posexplotación - Los evaluadores deben seguir los Criterios de éxito definidos como parte de la Fase 1 para informar de cualquier explotación, y también deben seguir el proceso definido para informar las vulnerabilidades encontradas durante las pruebas. Este paso involucra principalmente al evaluador para averiguar qué se debe hacer después de haber descubierto que el sistema se ha visto comprometido.
- Generación de informes de prueba - Cualquier prueba realizada sin los informes adecuados no ayuda mucho a la organización, lo mismo ocurre con las pruebas de penetración de aplicaciones web. Para garantizar que los resultados de la prueba se compartan correctamente con todas las partes interesadas, los evaluadores deben crear informes adecuados con detalles sobre las vulnerabilidades encontradas, la metodología utilizada para las pruebas, la gravedad y la ubicación del problema encontrado.
# 3) Fase posterior a la ejecución (después de la prueba):
Una vez que se hayan completado las pruebas y se hayan compartido los informes de las pruebas con todos los equipos interesados, todos deben trabajar en la siguiente lista:
- Sugerir remediación - Las pruebas de penetración no deben terminar simplemente identificando vulnerabilidades. El equipo en cuestión, incluido un miembro de control de calidad, debe revisar los hallazgos informados por los probadores y luego discutir la corrección.
- Vuelva a probar las vulnerabilidades - Una vez que se toma e implementa la corrección, los evaluadores deben volver a realizar la prueba para asegurarse de que las vulnerabilidades reparadas no aparecieron como parte de la nueva prueba.
- Limpiar - Como parte del Pentest, los evaluadores realizan cambios en la configuración del proxy, por lo que se debe realizar una limpieza y todos los cambios revertidos.
Principales herramientas de prueba de penetración
Ahora, dado que ya ha leído el artículo completo, creo que ahora tiene una idea mucho mejor sobre qué y cómo podemos probar la penetración de una aplicación web.
Entonces, dígame, ¿podemos realizar manualmente las pruebas de penetración o siempre sucede mediante la automatización con una herramienta? Sin duda, creo que la mayoría de ustedes está diciendo Automatización. :)
Eso es cierto porque la automatización aporta velocidad, evita errores humanos manuales, excelente cobertura y varios otros beneficios, pero en lo que respecta a Pen Test, requiere que realicemos algunas pruebas manuales.
preguntas y respuestas básicas de la entrevista sql para principiantes
La prueba manual ayuda a encontrar vulnerabilidades relacionadas con la lógica empresarial, reduciendo los falsos positivos.
Las herramientas tienden a dar muchos falsos positivos y, por lo tanto, se requiere una intervención manual para determinar si son vulnerabilidades reales.
Leer también – Cómo probar la seguridad de las aplicaciones web con la herramienta Acunetix Web Vulnerability Scanner (WVS)
Las herramientas se crean para automatizar nuestros esfuerzos de prueba. A continuación, encontrará una lista de algunas de las herramientas que se pueden utilizar para Pentest:
Para obtener más herramientas, también puede consultar – 37 potentes herramientas de prueba de pluma para cada probador de penetración
Principales empresas de pruebas de penetración
Los proveedores de servicios son empresas que brindan servicios que satisfacen las necesidades de prueba de las organizaciones. Por lo general, sobresalen y tienen experiencia en diferentes áreas de prueba y pueden realizar pruebas en su entorno de prueba alojado.
A continuación se mencionan algunas de las empresas líderes que brindan servicios de pruebas de penetración:
- PSC (Cumplimiento de seguridad de pagos)
- Netragard
- Estado seguro
- Fuego de carbón
- Seguridad HIGHBIT
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | seg
- Evaluacion de seguridad
- Sistemas de auditoría de seguridad
- Hacklabs
- CQR
Algunas certificaciones de pruebas de penetración:
Si está interesado en obtener la certificación de penetración de aplicaciones web, puede optar por las siguientes certificaciones:
- OSWE (Experto web en seguridad ofensiva)
- GWAPT (Probador de penetración de aplicaciones web GIAC)
- CWAPT (Probador de penetración de aplicaciones web certificado)
- eWPT (Probador de penetración de aplicaciones web elearnSecurity)
Conclusión
En este tutorial, presentamos una descripción general de cómo se realizan las pruebas de penetración para aplicaciones web.
Con esta información, el probador de penetración puede iniciar pruebas de vulnerabilidad.
Idealmente, las pruebas de penetración pueden ayudarnos a crear software seguro. Es un método costoso, por lo que la frecuencia se puede mantener como una vez al año.
Para saber más sobre las pruebas de penetración, lea los siguientes artículos relacionados:
- Un enfoque para las pruebas de seguridad de aplicaciones web
- Prueba de penetración: guía completa con ejemplos de casos de prueba
- Cómo probar la seguridad de las aplicaciones: técnicas de prueba de seguridad de aplicaciones de escritorio y web
Comparta sus opiniones o experiencia sobre Pentest a continuación.
Lectura recomendada
- Guía de pruebas de seguridad de aplicaciones web
- Pruebas de seguridad de red y las mejores herramientas de seguridad de red
- Mejores herramientas de prueba de software 2021 (Herramientas de automatización de pruebas de control de calidad)
- Pruebas alfa y beta (una guía completa)
- Pruebas de seguridad (una guía completa)
- Una guía completa de pruebas de penetración con ejemplos de casos de prueba
- Proveedores de servicios y herramientas de prueba de penetración de aplicaciones móviles
- Diferencia entre pruebas de escritorio, cliente-servidor y pruebas web