¿Cómo estimar el tiempo necesario para las pruebas de seguridad de aplicaciones web?

3

Me gustaría hacer algún tipo de estimación del tiempo que se tarda en probar vulnerabilidades de seguridad en un sitio web / aplicación web. Estaré probando sitios web contra el Top 10 de OWASP

Según mi entendimiento, el número de URL estáticas / dinámicas, el número de parámetros a probar (URL, cuerpo) en un sitio web, otros puntos de inserción como parámetros de cookies, nombre de parámetro, encabezados HTTP, parámetros de estilo REST son todos los contribuyentes hacia el tiempo tomado Por favor corrija si estoy equivocado.

Dicho esto, ¿cuáles son todos los factores que podemos incluir para llegar a un momento en que se realiza la evaluación de seguridad?

Además, dado que la estimación se debe realizar antes de que comencemos a probar y la cantidad de URL / Parámetros en un sitio web se conocerá en etapas posteriores (como después de la exploración / rastreo), ¿hay alguna manera de que podamos hacer la estimación de antemano? / p>

La lógica de negocios, la cantidad de funciones a probar, la cantidad de niveles de privilegio pueden tener una opinión sobre el tiempo empleado, pero ¿no se dividirá en la cantidad de parámetros que vamos a probar?

Me gustaría hacer esta estimación para convencer a mi cliente sobre el tiempo necesario para realizar la evaluación.

Por ejemplo, si mi cliente me pide que realice una evaluación de 10 sitios web en 'n' días, debería poder decirles con pruebas / estimaciones que tomará el tiempo 'X'.

¿Alguien podría compartir tus pensamientos? ¿Hay alguna metodología para esto?

    
pregunta Karthikaravind 19.08.2015 - 07:03
fuente

2 respuestas

3

No puede proporcionar pruebas de que tomará n días para la evaluación de vulnerabilidad. Puedes proporcionarles una estimación.

Cuando utilizo una aplicación para probar, hay algunas cosas que veo. La mayor parte es lo que ya has cubierto.

  • Qué hace la aplicación (procesar dinero o datos de recursos humanos, o publicar un blog)
  • Qué tan grande es la aplicación (algunas URL / páginas o mucho; solo contenido, o mucha funcionalidad)
  • Qué tan compleja es la aplicación (el tamaño y la complejidad no siempre son lo mismo)
  • Cuántos roles están involucrados (por ejemplo, usuario, administrador, superadministrador)
  • Cualquier API involucrada (por ejemplo, REST, SOAP, personalizada)
  • Múltiples clientes involucrados (por ejemplo, móviles, cliente pesado y web)

Al igual que cualquier cosa, se necesita experiencia para poder realizar un alcance preciso de un elemento para la prueba. Tendrá en cuenta el tiempo que una aplicación de tamaño y complejidad similar lo llevaría a probar y el alcance de manera adecuada. Dependiendo de dónde trabaje, puede haber una fórmula para el tiempo x dedicado a diferentes tipos de funcionalidad y otros factores, eso depende de su empleador.

Si tiene la opción, le sugeriría que escuche a alguien con más experiencia en su equipo, haga el análisis para que pueda entender cómo lo hacen y por qué tomaron las decisiones que tomaron. El sub-alcance o el sobre-alcance para un cliente puede causar uno o ambos problemas. Si lo subestima, es posible que usted o la persona de su equipo no tengan tiempo suficiente para completar las pruebas, y el exceso de alcance puede hacer que el cliente gaste dinero innecesariamente. Los errores se cometen, por supuesto, eso es parte del proceso de aprendizaje, pero es importante entender por qué las cosas tienen un alcance tal como están antes de saltar sin la experiencia para respaldarlo.

    
respondido por el user79537 19.08.2015 - 09:39
fuente
3

Me gustaría añadir mi opinión sobre esto. Digamos que tiene una aplicación para probar (no estoy incluyendo clientes pesados aquí porque es una aplicación web pura). Las condiciones en las que podría basarse la estimación son:

Artículos considerables

  • Número de URL que se pueden buscar a través de la araña de Burp
  • Número de parámetros que se pueden obtener a través de las herramientas Engagement de Burp
  • Número de vhosts si no apunta a los mismos recursos de la aplicación principal
  • Existencia de servicios web o API que se incluyen en el alcance

    1. Aquí desea obtener los API incluidos en los cuestionarios
    2. Asigne el parámetro de servicios web (REST o SOAP)
    3. Agregue todo esto a los indicadores de servicios web (suma)

Estimación

La complejidad y el tamaño como se discutió anteriormente en la respuesta se pueden determinar mediante el acceso a los vhosts, la cantidad de URL dinámicas (dinámica solo significa que la aplicación está hablando con el back-end en el nivel de nivel de datos). Considere el uso de casos de prueba como el que hice en una de las investigaciones que hice anteriormente para los clientes a continuación (esto es privado y uno puede definir el suyo propio):

Sinoestáaltantoycasinecesitaestimarunaentregadelalíneadetiempo,useeldiagramadeGnattparacadamódulodecasodeenvíoyprueba,esdecir,definamódulosentérminosperiódicoscomo'Casosdepruebadeseguridaddevalidacióndeentrada',Casosdepruebadeseguridaddeadministracióndesesiones',etc.Unamiradaalalíneadetiempoacontinuacióndebedarunaideaabsolutadecómoestimarunprogramadeentregaempresarialadecuado:

Peroantesdetodoesto,lomásimportanteestrazarunmapadelplanificadordelproyectoydescribiralclienteloscasosdepruebanecesariosenlahojadetrabajoparaqueelclientenecesariamentepaseporeldocumentoderequisitosyproporcioneunenvíoparaelmismoparacorregirunproblema.programacióndelíneadetiempoparausted;Estosepuedehacerdeunadeestasformas:

  1. Asignelosrequisitos,sisetratadeunacasillablanca,¿cuálessonlosrequisitosdecredenciales,etc.?
  2. Lleneloshuecos,verifiquelasolicitudantesdeconfirmar,¿quémásdetallesserequieren?
  3. Lleguesiemprealasconclusionesapartirdelasumadelomencionadoanteriormente.
  4. Agreguemáscantidaddedíasqueeloriginalderivado,deesamaneragarantizarálacalidad.

Unplanificadordeproyectospodríateneresteaspecto,loquepuedeserunanecesidadintegralparaplanificarlasfasesdelproyectodeseguridaddelaaplicaciónweb,asícomoayudarloadefinirlosplazosparaelproyecto:

La estimación nuevamente es el subproducto y no es necesariamente que no se enfrente a ningún alcance, retraso en el proyecto, recursos para el proyecto, etc. entre el proyecto ( por lo que la publicación del día adicional que asigna las líneas de tiempo). Ahora, lo que queda es señalar la ruta crítica y los puntos de ruptura del proyecto, por ejemplo. lo que podría salir mal y en qué medida, etc. Debe gestionar esto extremadamente bien y definir todo de antemano. ¡La mejor de las suertes! Espero que encuentre útil esta información.

    
respondido por el Shritam Bhowmick 19.08.2015 - 10:30
fuente

Lea otras preguntas en las etiquetas