¿Hay mejores prácticas para probar la seguridad en una tienda de desarrollo ágil?

votos
9

En cuanto al desarrollo ágil, ¿cuáles son las mejores prácticas para probar la seguridad por lanzamiento?

Si se trata de un lanzamiento mensual, ¿hay tiendas que realicen pruebas de pluma todos los meses?

Publicado el 05/08/2008 a las 16:05
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
2

¿Cuál es tu dominio de aplicación? Depende.

Como usaste la palabra "Agile", supongo que es una aplicación web. Tengo una buena respuesta fácil para ti.

Ve a comprar una copia de Burp Suite (es el resultado # 1 de Google para "eructar", ¡un endoso seguro!); le costará 99EU, o ~ $ 180USD, o $ 98 dólares de Obama si espera hasta noviembre.

Burp funciona como un proxy web. Navega a través de su aplicación web usando Firefox o IE o lo que sea, y recoge todos los hits que genera. Estos hits se alimentan a una función llamada "Intruder", que es un web fuzzer. Intruso averiguará todos los parámetros que le proporcione a cada uno de sus manejadores de consultas. A continuación, intentará valores locos para cada parámetro, incluidos SQL, sistema de archivos y metacaracteres HTML. En una publicación de formulario compleja típica, generará alrededor de 1500 visitas, que se examinarán para identificar a las personas con miedo o, lo que es más importante, con un contexto ágil, nuevas respuestas de error.

Limpiar cada controlador de consultas en su aplicación web en cada iteración de publicación es lo # 1 que puede hacer para mejorar la seguridad de las aplicaciones sin establecer un "SDLC" formal y agregar personal. Más allá de eso, revise su código para los principales puntos calientes de seguridad de la aplicación web:

  • Use solo declaraciones de SQL preparadas parametrizadas; no siempre concatenar cadenas y alimentarlas al manejador de su base de datos.

  • Filtra todas las entradas en una lista blanca de caracteres buenos conocidos (alnum, puntuación básica) y, lo que es más importante, da salida a los datos del filtro de los resultados de tu consulta para "neutralizar" metacaracteres HTML a entidades HTML (quot, lt, gt, etc.).

  • Utilice identificadores largos y difíciles de adivinar en cualquier lugar en el que esté utilizando ID de fila enteros simples en los parámetros de consulta, y asegúrese de que el usuario X no pueda ver los datos del usuario Y simplemente adivinando esos identificadores.

  • Pruebe cada controlador de consultas en su aplicación para asegurarse de que solo funcionen cuando se presente una cookie de sesión válida y con sesión iniciada.

  • Active la protección XSRF en su pila web, lo que generará parámetros de token de forma oculta en todos sus formularios procesados, para evitar que los atacantes creen enlaces maliciosos que enviarán formularios para usuarios desprevenidos.

  • Utilice bcrypt --- y nada más --- para almacenar contraseñas hash.

Respondida el 10/09/2008 a las 22:19
fuente por usuario

votos
1

Pruebas unitarias , programación de defensa y muchos registros

Examen de la unidad

Asegúrese de que la unidad se pruebe lo antes posible (por ejemplo, la contraseña debe estar encriptada antes de enviarla, el túnel SSL está funcionando, etc.). Esto evitaría que sus programadores accidentalmente hagan inseguro el programa.

Programación de defensa

Yo personalmente llamo a esto la Programación Paranoica, pero Wikipedia nunca se equivoca ( sarcasmo ). Básicamente, agregas pruebas a tus funciones que verifican todas las entradas:

  • ¿Son válidas las cookies del usuario?
  • ¿Todavía está conectado?
  • ¿Los parámetros de la función están protegidos contra la inyección de SQL? (Aunque sepa que la entrada está generada por sus propias funciones, lo hará de todos modos)

Explotación florestal

Registra todo como loco. Es más fácil eliminar registros y agregarlos. Un usuario ha iniciado sesión? Log it ¿Un usuario encontró un 404? Log it ¿El administrador editó / eliminó una publicación? Log it ¿Alguien pudo acceder a una página restringida? Log it

No se sorprenda si su archivo de registro alcanza los 15+ Mb durante su fase de desarrollo. Durante la versión beta, puede decidir qué registros eliminar. Si lo desea, puede agregar un indicador para decidir cuándo se registra un determinado evento.

Respondida el 18/08/2008 a las 03:40
fuente por usuario

votos
1

No soy un experto en seguridad, pero creo que el hecho más importante que debe tener en cuenta, antes de probar la seguridad, es lo que está tratando de proteger. Solo si sabe lo que está tratando de proteger, puede hacer un análisis adecuado de sus medidas de seguridad y solo entonces puede comenzar a probar esas medidas implementadas.

Muy abstracto, lo sé. Sin embargo, creo que debería ser el primer paso de cada auditoría de seguridad.

Respondida el 05/08/2008 a las 18:50
fuente por usuario

votos
1

No soy un experto en desarrollo ágil, pero me imagino que integrar un software básico de prueba automática en el ciclo de construcción sería un buen comienzo. He visto varios paquetes de software que harán pruebas básicas y son adecuados para la automatización.

Respondida el 05/08/2008 a las 18:19
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more