Twitter
RSS

QA: Security Testing

Ya hace un tiempo que no escribo en el blog, y es debido a que me estuve especializando en nuevos temas relacionados con testing. Actualmente estoy desarrollando tareas relacionadas con Seguridad en aplicaciones web, donde además de realizar pruebas también fomento la participación de los equipos de QA en el trabajo de focalizar fuerzas para atacar todo tipo de vulnerabilidades.

¿Pero de qué se trata el Testing de Seguridad?
Durante las prácticas tradicionales de testing, como QA, nos focalizamos en verificar que:
  • Se cumplan las especificaciones
  • No se permita realizar acciones fuera de las especificaciones
  • Etc
Casi siempre... por no decir "siempre" sin tener en cuenta pruebas de seguridad, con esto no me refiero a que la calidad del producto sea "mala", no, sino a que como digo: "calidad no garantiza seguridad".

Esto se debe a que debido a que hay muchos aspectos distintos, una aplicación web que presenta cumplir todas las características de calidad, puede fallar ante mínimas pruebas de seguridad.

Algunas de las pruebas más comunes que realizo a diario llevan a descubierto vulnerabilidades como:
  • SQL Injection 
  • XSS (Cross Site Scripting)
  • CSRF (Cross Site Request Forgery)
  • Failure to restrict URL Access
Hay otros tipos de vulnerabilidades que también se encuentran pero principalmente de las aplicaciones que he tenido que validar en aspectos de seguridad, siempre me encontré con al menos una vulnerabilidad de cada tipo de las nombradas.

Como QA, ¿cómo puedo validar esto?

Sencillo, en si cada vez que se arme el plan de testing, se pueden incluir test cases genéricos que realicen validaciones mínimas de estas vulnerabilidades. En algunos casos estos casos pueden están también definidos para ser utilizados junto con aplicaciones de escaneo de vulnerabilidades (hablaré de ellas en próximos posts).

Pruebas de set de datos como:
  • SQLi : or 1 = 1;#--  o and 1 = 1;#-- donde se encuentren campos con IDs puede llevar a localizar algunos problemas de SQLi
  • XSS: <script> alert(1); </script>
 puede llevar a detectar posibles casos de cross site scripting
  • CSRF: la ausencia de tokens, o algún mecanismo para identificar cada acción del usuario puede llevar a encontrar CSRF
  • Failure to restrict URL Access : cada URL que se forme en el sistema (incluso las de administración) deben ser verificadas con todos los roles/perfiles del sistema, puede hacerse uso de spiders para esto

  • En si, con un conjunto reducido, y previamente planificado, se pueden detectar vulnerabilidades de seguridad y prevenir que estas salgan a producción en ambientes de desarrollo donde no se cuente con un equipo especializado en seguridad.

    En próximos post hablaré de:
    • Scanners de seguridad
    • Aplicaciones para explotar SQLi
    • Uso de Pry y automatización
    Gracias!

    Comments (1)

    Hola gracias por la introduccion a security testing, me gustaria saber si puedes hablar de pruebas de carga que me parece que tambien es un area importante del QA. saludos

    Publicar un comentario