Test Driven Secure Development


Details
En la reunión de mayo, Carlos Pantelides facilitará una actividad en donde veremos el desarrollo de un sencillo sitio web de mensajes utilizando TDD y focalizando en aspectos de seguridad de la aplicación.
En lugar de diseñar el sitio completo, implementarlo y testearlo, iremos resolviendo los requisitos y las vulnerabilidades mediante "baby steps", precedidos por los tests, en un ciclo de "crear test", "fallar test", "implementar", "pasar test" y "refactorizar".
Algunos de los requisitos de nuestra aplicación serán:
Que reciba un mensaje Que reciba mensajes de usuarios autenticados Que persista los mensajes Que el usuario se autentique una sóla vez
Algunas de las vulnerabilidades que hallaremos y quizás resolveremos son:
SQL injection (A1) Session Fixation (A2) XSS (stored/reflected) (A3) Insecure storage (sans 8/25 (cwe 311- missing encryption on sensitive data))
Herramientas:
Apache/Mysql/Php sin ningún tipo de framework para el desarrollo y shunit2 para el testing, considerando que es una combinación sencilla de mostrar y comprender.
Dependiendo del tiempo, veremos en mayor o menor profundidad
Wireshark/tshark Tamper Data wget grep
Requisitos: Un conocimiento muy básico de desarrollo web mejora el aprovechamiento de la exposición, pero no es indispensable.

Test Driven Secure Development