¿Cómo realizar pruebas de vulnerabilidad de caja negra (sin fuente)?

0

¿Cómo podría (o) qué software utilizaría para realizar la aplicación local (almacenada en la PC) caja negra (sin fuente / fuente cerrada) fallas o pruebas de vulnerabilidad para Windows? Acabo de usar el sentido común, como el uso de números negativos y demás, cadenas transversales de directorios, todo eso. Me siento cómodo usando Linux si es necesario.

También, ¿qué es exactamente fuzzing? A mi entender, es que ingresa cantidades masivas de datos aleatorios a un programa, pero no puedo encontrar "fuzzers" utilizables para aplicaciones locales.

    
pregunta noodles 15.07.2017 - 00:58
fuente

1 respuesta

0

Fuzzing se refiere a prueba de entrada aleatoria . Contrasta esto con un escenario en el que sometes un programa a un conjunto de entradas conocidas, que de otro modo podrías llamar pruebas de unidad . La idea básica es que usted genere mediante programación una gran cantidad de entradas a un programa con la esperanza de encontrar alguna combinación de entradas que cause un comportamiento incorrecto, ya sea para detectar errores o para buscar la base para construir un ataque. En realidad, no hay herramientas de uso general para el fuzzing porque el fuzzing tiende a ser específico de la aplicación y las entradas no pueden ser completamente aleatorias.

Por ejemplo, suponga que tiene un programa que lee un archivo XML, realiza algunos cálculos en ese archivo y luego produce otro archivo como salida. Para borrar ese programa, puedes generar aleatoriamente archivos XML y enviarlos al programa. No necesariamente puede saber qué salida debería producir su programa (o de lo contrario no habría necesitado el programa), pero podría decir:

  1. El programa siempre debe terminar en 10 segundos
  2. El programa no debería fallar
  3. El programa siempre debe producir un archivo de salida, incluso si no podemos verificar que el archivo de salida sea correcto
  4. Es posible que pueda verificar algunos atributos de la salida; por ejemplo, si el archivo de entrada XML tiene 27 etiquetas de nivel superior, entonces su archivo de salida debería tener 27 líneas.

Entonces, genera un millón de archivos XML que ejecutan aleatoriamente su programa un millón de veces, y cada vez que no se cumple una de esas condiciones, registra qué entradas causaron el problema aparente. Luego, un desarrollador puede usar esas entradas para, con suerte, encontrar cualquier condición que las haya causado.

Tenga en cuenta que estamos usando archivos XML aleatorios, no archivos totalmente aleatorios. Un archivo de entrada totalmente aleatorio sería una secuencia aleatoria de caracteres. Hay una gran cantidad de archivos totalmente aleatorios que no constituyen XML válido y no probarán su programa de manera productiva. Un fuzzer totalmente aleatorio probablemente nunca generaría un archivo XML válido para probar realmente la lógica del programa. Esta es la razón básica por la que no existe un programa general de fuzzing: las entradas aleatorias deben ser significativas en lugar de total y verdaderamente aleatorias en la mayoría de los casos.

La generación de entradas inválidas totalmente aleatorias puede ser significativa, especialmente si desea asegurarse de que su programa no se bloquee en entradas mal formadas. Pero esto es esencialmente probar la validación de entrada y no la lógica del programa. Puedes usar fuzzing para probar ambas cosas.

    
respondido por el David 15.07.2017 - 06:36
fuente

Lea otras preguntas en las etiquetas