web application security testing guide
preguntas y respuestas de la entrevista de ajuste de rendimiento de Oracle
Debido a la gran cantidad de datos almacenados en las aplicaciones web y al aumento en el número de transacciones en la web, las pruebas de seguridad adecuadas de las aplicaciones web se están volviendo muy importantes día a día.
En este artículo, aprenderemos en detalle sobre los términos clave utilizados en las pruebas de seguridad del sitio web y su enfoque de prueba.
Lo que vas a aprender:
- ¿Qué son las pruebas de seguridad?
- Algunos términos clave utilizados en las pruebas de seguridad
- Herramientas de prueba de seguridad recomendadas
- Enfoque de prueba de seguridad
- Métodos para pruebas de seguridad web
- Conclusión
- Lectura recomendada
¿Qué son las pruebas de seguridad?
Pruebas de seguridad es el proceso que comprueba si el los datos confidenciales se mantienen confidenciales o no (es decir, no está expuesto a personas / entidades para las que no está destinado) y los usuarios pueden realizar solo aquellas tareas para las que están autorizados
Por ejemplo, un usuario no debe poder negar la funcionalidad del sitio web a otros usuarios o un usuario no debe poder cambiar la funcionalidad de la aplicación web de una manera no deseada, etc.
Algunos términos clave utilizados en las pruebas de seguridad
Antes de continuar, será útil familiarizarnos con algunos términos que se utilizan con frecuencia en las pruebas de seguridad de aplicaciones web:
¿Qué es la 'vulnerabilidad'?
Ésta es la debilidad de la aplicación web. La causa de tal 'debilidad' puede deberse a errores en la aplicación, una inyección (código SQL / script) o la presencia de virus.
¿Qué es la 'manipulación de URL'?
Algunas aplicaciones web comunican información adicional entre el cliente (navegador) y el servidor en la URL. Cambiar parte de la información en la URL a veces puede dar lugar a un comportamiento no deseado por parte del servidor y esto se denomina como Manipulación de URL .
¿Qué es la 'inyección SQL'?
Este es el proceso de insertar declaraciones SQL a través de la interfaz de usuario de la aplicación web en alguna consulta que luego es ejecutada por el servidor.
¿Qué es “XSS (Cross-Site Scripting)”?
Cuando un usuario inserta un script HTML / del lado del cliente en la interfaz de usuario de una aplicación web, esta inserción es visible para otros usuarios y se denomina XSS .
¿Qué es 'Spoofing'?
La creación de sitios web o correos electrónicos que se asemejan a un engaño se denomina Spoofing .
Herramientas de prueba de seguridad recomendadas
# 1) Acunetix
soporte de escritorio entrevista preguntas y respuestas pdf
Acunetix es un escáner de seguridad de aplicaciones web de extremo a extremo. Le dará una vista de 360 grados de la seguridad de su organización. Es capaz de detectar 6500 tipos de vulnerabilidades como inyecciones de SQL, XSS y contraseñas débiles, etc. Utiliza tecnología avanzada de grabación de macros para escanear formularios complejos de varios niveles.
La plataforma es intuitiva y fácil de usar. Puede programar y priorizar análisis completos, así como análisis incrementales. Contiene una funcionalidad de gestión de vulnerabilidades incorporada. Con la ayuda de herramientas de CI como Jenkins, las nuevas compilaciones se pueden escanear automáticamente.
=> Pruebe Acunetix para seguridad de aplicaciones 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 gratis
Enfoque de prueba de seguridad
Para realizar una prueba de seguridad útil de una aplicación web, el evaluador de seguridad debe tener buenos conocimientos sobre el protocolo HTTP.
Es importante comprender cómo se comunican el cliente (navegador) y el servidor mediante HTTP.
Además, el evaluador debe conocer al menos los conceptos básicos de la inyección SQL y XSS.
Con suerte, la cantidad de defectos de seguridad presentes en la aplicación web no será alta. Sin embargo, ser capaz de describir todos los defectos de seguridad con precisión con todos los detalles requeridos definitivamente ayudará.
Métodos para pruebas de seguridad web
# 1) Craqueo de contraseñas
Las pruebas de seguridad en un Aplicación web se puede iniciar con 'Craqueo de contraseñas'. Para iniciar sesión en las áreas privadas de la aplicación, uno puede adivinar un nombre de usuario / contraseña o usar alguna herramienta para descifrar contraseñas para el mismo. Hay disponible una lista de nombres de usuario y contraseñas comunes junto con crackers de contraseñas de código abierto.
Si la aplicación web no impone una contraseña compleja ( Por ejemplo, con alfabetos, números y caracteres especiales o con al menos un número requerido de caracteres), es posible que no tarde mucho en descifrar el nombre de usuario y la contraseña.
Si un nombre de usuario o contraseña se almacena en las cookies sin cifrar, un atacante puede utilizar diferentes métodos para robar las cookies y la información almacenada en las cookies como nombre de usuario y contraseña.
Para obtener más detalles, consulte un artículo sobre ' Prueba de cookies del sitio web ”.
# 2) Manipulación de URL a través de métodos HTTP GET
Un evaluador debe verificar si la aplicación pasa información importante en la cadena de consulta o no. Esto sucede cuando la aplicación usa el método HTTP GET para pasar información entre el cliente y el servidor.
La información se transmite a través de los parámetros de la cadena de consulta. El probador puede modificar el valor de un parámetro en la cadena de consulta para verificar si el servidor lo acepta.
A través de la solicitud HTTP GET, la información del usuario se transmite al servidor para la autenticación o la obtención de datos. El atacante puede manipular cada variable de entrada pasada de esta solicitud GET a un servidor para obtener la información requerida o corromper los datos. En tales condiciones, cualquier comportamiento inusual de la aplicación o del servidor web es la puerta para que el atacante acceda a una aplicación.
# 3) Inyección SQL
El siguiente factor que debe comprobarse es la inyección SQL. La aplicación debe rechazar la introducción de una comilla simple (‘) en cualquier cuadro de texto. En cambio, si el probador encuentra un error en la base de datos, significa que la entrada del usuario se inserta en alguna consulta que luego es ejecutada por una aplicación. En tal caso, la aplicación es vulnerable a la inyección de SQL.
Los ataques de inyección de SQL son muy críticos ya que un atacante puede obtener información vital de la base de datos del servidor. Para verificar los puntos de entrada de inyección de SQL en su aplicación web, busque el código de su base de código donde se ejecutan las consultas directas de MySQL en la base de datos aceptando algunas entradas de usuario.
Si los datos de entrada del usuario se elaboran en consultas SQL para consultar la base de datos, un atacante puede inyectar declaraciones SQL o parte de las declaraciones SQL como entradas del usuario para extraer información vital de una base de datos. Incluso si un atacante logra bloquear la aplicación, a partir del error de consulta SQL que se muestra en un navegador, el atacante puede obtener la información que está buscando.
Los caracteres especiales de las entradas del usuario deben manejarse / escaparse correctamente en tales casos.
# 4) Secuencias de comandos entre sitios (XSS)
Un evaluador también debe verificar la aplicación web para XSS (Cross-site scripting). Cualquier HTML Por ejemplo, o cualquier guion Por ejemplo, no debe ser aceptado por la aplicación. Si es así, la aplicación puede ser propensa a un ataque de Cross-Site Scripting.
El atacante puede utilizar este método para ejecutar un script o URL malicioso en el navegador de la víctima. Mediante el uso de secuencias de comandos entre sitios, un atacante puede utilizar secuencias de comandos como JavaScript para robar las cookies del usuario y la información almacenada en las cookies.
Muchas aplicaciones web obtienen información útil y pasan esta información en algunas variables de diferentes páginas.
Por ejemplo, http://www.examplesite.com/index.php?userid=123 &consulta = xyz
El atacante puede pasar fácilmente alguna entrada maliciosa o como un parámetro '& query' que puede explorar datos importantes del usuario / servidor en el navegador.
Importante: Durante las pruebas de seguridad, el evaluador debe tener mucho cuidado de no modificar nada de lo siguiente:
necesito un nuevo proveedor de correo electrónico
- Configuración de la aplicación o del servidor
- Servicios que se ejecutan en el servidor
- Datos de usuarios o clientes existentes alojados por la aplicación
Además, debe evitarse una prueba de seguridad en un sistema de producción.
Conclusión
El propósito de una prueba de seguridad es descubrir las vulnerabilidades de la aplicación web para que los desarrolladores puedan eliminar estas vulnerabilidades de la aplicación y hacer que la aplicación web y los datos estén a salvo de cualquier acción no autorizada.
Lectura recomendada => Diferencia entre SAST / DAST / IAST / RASP
No dude en compartir sus comentarios / sugerencias sobre este artículo.
Lectura recomendada
- Guía para principiantes sobre pruebas de penetración de aplicaciones web
- Pruebas de seguridad (una guía completa)
- Pruebas alfa y beta (una guía completa)
- 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)
- Guía completa de pruebas de verificación de compilación (pruebas de BVT)
- Las 4 mejores herramientas de prueba de seguridad de código abierto para probar aplicaciones web
- Pruebas funcionales versus pruebas no funcionales