Proceso de validación del software

0

Hace dos días hice esa pregunta: ¿El navegador web puede usar la cámara sin permiso?

y obtuve una respuesta que decía: "ha habido múltiples vulnerabilidades en Flash, Chrome e incluso Facebook"

¿Existe un proceso para validar que un software desarrollado por una empresa es seguro? Quiero decir, ¿es realmente imposible probar que un software es seguro? proceso interno o externo?

Muchas gracias

    
pregunta arezkibe 25.05.2014 - 14:02
fuente

2 respuestas

1

La idea de sistemas probables de seguridad existe, pero no es práctica para bases de código grandes / dinámicas, aunque sí la ve para algún software relacionado con cryptography . Además, realizar la verificación requerida, sería mucho más esfuerzo de lo que un usuario ordinario del software podría acceder.

Para fines prácticos, es muy difícil para un usuario de software saber que es "seguro" (lo puse entre comillas ya que la palabra seguro significa diferentes cosas para diferentes personas)

Lo mejor que es práctico es generalmente mantenerse al día con las versiones de seguridad de los proveedores, evitar el software con un historial reciente de fallas de seguridad y minimizar la cantidad de software que ejecuta al acceder a contenido en una red no confiable (por ejemplo, Internet)

    
respondido por el Rоry McCune 25.05.2014 - 14:54
fuente
1

Puedes probar la existencia de algo, pero no puedes probar su ausencia. Si no existe, no puede encontrar ninguna evidencia de ello, según la definición de "no existe".

Para estar seguro, una aplicación de software no debe tener ninguna vulnerabilidad. Para probar que es seguro, debe probar que no existen vulnerabilidades en la aplicación. Como arriba, esto no se puede hacer. Tenemos que tener un objetivo diferente.

Podemos tomar el objetivo, "no tenemos vulnerabilidades conocidas inaceptables". Este es el objetivo elegido por la mayoría de las aplicaciones que realizan pruebas de seguridad. Para este objetivo, podemos usar herramientas como modelado de amenazas, análisis de código estático, análisis binario estático y análisis dinámico.

Podemos alcanzar el objetivo: los controles de seguridad de nuestra aplicación deben funcionar como se espera en todas las condiciones previsibles. Esto significa probar los controles de seguridad de la aplicación, al igual que las pruebas de control de calidad, el rendimiento y otras características de la aplicación.

Podemos tomar el objetivo ', nuestra aplicación debe construirse bajo un proceso que minimice la probabilidad de introducción de vulnerabilidades. En este caso, utilizamos un ciclo de vida de desarrollo de software seguro que incluye capacitación, hojas de trucos, listas de verificación de desarrolladores, listas de verificación de control de calidad, uso de herramientas automatizadas, uso de evaluadores expertos (pruebas de penetración), modelos de amenazas y otros procesos diseñados para minimizar el riesgo de nuevas vulnerabilidades.

Si bien todos ellos están construyendo la aplicación, sin usarla, pueden extenderse a la perspectiva del usuario. Puede intentar identificar las vulnerabilidades en la aplicación usted mismo, más fácil si tiene el código fuente. Puede intentar verificar la corrección de los controles de seguridad con sus propias pruebas de estilo de control de calidad, si puede descomponer correctamente el producto y determinar los propósitos de los controles. Puede ver el ciclo de vida de desarrollo seguro del OEM y ver cómo se compara con los demás (consulte BSIMM). También puede consultar el registro público histórico de un producto (ver NVD) e intentar extraer inferencias: por ejemplo, cuando el OEM tiene una vulnerabilidad de un tipo en un producto, ¿alguna vez volverá a tener esa vulnerabilidad en ese producto? ¿Arreglar arquitectónicamente o ayudar a la banda a resolver el problema?

    
respondido por el atk 25.05.2014 - 14:59
fuente

Lea otras preguntas en las etiquetas