Sprint 3. Actas de Laboratorio - df-garcia/Chiper_202010_Grupo_Canem GitHub Wiki

Acta 24/04/20: Planeación y avance Sprint 3

  • Asistentes: Santiago Bolaños, Daniel García, Mario Hurtado, Nicolás Potes.
  • Reporta: Nicolás Potes.

Tareas y responsabilidades:

  • Actualizar los diagramas para reflejar las decisiones de seguridad y disponibilidad tomadas (en Lucidchart). Adicional, modificar los diagramas para satisfacer lo planteado con los ASRs:heavy_check_mark:

  • Verificar que los ASRs cumplan con los atributos de confidencialidad, integridad y disponibilidad:heavy_check_mark:

  • Implementar los ASRs en el proyecto, verificar que se disponen de al menos 3 tácticas y que cada una apunte hacia un ASR:heavy_check_mark:

  • Documentar y revisar los escenarios de prueba de cada ASR:heavy_check_mark:

  • Reportar y analizar los resultados de las pruebas de los escenarios:heavy_check_mark:

  • Recibir comentarios por partes de los instructores:heavy_check_mark:

  • Argumentar la selección de tecnologías y frameworks que se usaron en el experimento: implementación de modelos y pruebas:heavy_check_mark:

  • Actualizar constantemente la wiki:heavy_check_mark:

ASRs:

1. Como tendero, dado que el sistema funciona correctamente, cuando inicie sesión para observar la información de mi tienda, quiero que el sistema solicite una autenticación y me autorice para realizar la consulta del historial de pedidos de mi tienda. Debe suceder que el 100% de los ingresos y consultas del historial de pedidos no autorizados sean resistidos por la plataforma. :guardsman:

2. Como tendero, dado que el sistema funciona correctamente, cuando acceda a la lista de los productos recomendados de acuerdo a mi zona, quiero que el sistema utilice el ORM de Django para realizar las respectivas consultas a la base de datos. Debe suceder que el 100% de los ataques de inyección SQL realizados a las consultas a la base de datos sean resistidos por la plataforma. :closed_lock_with_key:

3. Como tendero, dado que el sistema se encuentra degradado, cuando seleccione la opción consultar el historial de pedidos a Chiper, quiero que la página redirija a una sección que indique que esta consulta se encuentra actualmente en mantenimiento. Debe suceder el 100% de las veces cuando la opción de consultar el historial de pedido esté en mantenimiento.:page_facing_up:

Escenarios de prueba de los ASRs:

ASR 1 :guardsman:: Se hará login con las credenciales de un tendero que tiene permisos sobre todas las funcionalidades de su tienda. Se comprueba que puede realizar todas sus acciones permitidas.

Se colocarán directamente sobre el browser, URLs que direccionen a funcionalidades (como consultar el historial de pedidos de la tienda) o secciones de otras tiendas (habilitadas solo para sus tenderos) donde el tendero que ingresó al inicio no debería tener acceso.

El objetivo es probar que dicho usuario no pueda acceder a estos servicios, evitando así accesos no autorizados o elevación de privilegios.

ASR 2 :closed_lock_with_key:: Luego de que el usuario tendero se haya autenticado y tenga autorización para acceder a ciertos privilegios, se modificará la URL de la lista de pedidos realizados, insertando una sentencia que pueda perjudicar el resultado y a la base de datos. El propósito de esto es garantizar que la integridad de la información no se ve afectada.

ASR 3 :page_facing_up:: Se desactiva la opción de consultar el historial de pedidos, después se suspende el servidor que contiene el manejador de pedidos (servidor donde corre la funcionalidad) y para ambos escenarios se valida que como usuario tendero al realizar la consulta, se despliegue la página con el mensaje que indica que se encuentra en mantenimiento.

Tácticas a implementar:

Autenticación (ASR 1):

La táctica corresponde al atributo de calidad de verificación del acceso de un usuario a una aplicación; esta se garantiza haciendo uso de Auth0 y de JWT. La primera herramienta permite el manejo de bases de datos destinadas para usuarios, claves y otros parámetros que servirán para autenticar a un usuario con base a unas credenciales para que tenga acceso a la aplicación. Por otro lado, la segunda permite disponer de tokens que se agregan a las peticiones Web para garantizar que la fuente de un estímulo es un usuario válido.

Autorización (ASR 1):

La táctica corresponde al atributo de calidad de verificar a qué componentes (o funcionalidades) de una aplicación puede acceder un usuario, dado su rol; esta se garantiza haciendo uso de Auth0 y de JWT. La primera herramienta permite el manejo de bases de datos destinadas para usuarios, claves y otros parámetros que servirán para autenticar a un usuario con base a unas credenciales para que tenga acceso a la aplicación. Por otro lado, la segunda permite disponer de tokens que se agregan a las peticiones Web para garantizar que la fuente de un estímulo es un usuario válido.

ORM (ASR 2):

La táctica corresponde al atributo de calidad de asegurar la correctitud y completitud de los mensajes recibidos y la información almacenada (integridad). Para garantizar el cumplimiento de este atributo, se empleará el ORM de Django. Al usar esta herramienta se evita la inyección de código debido a que las consultas se encuentran paramétrizadas. El código SQL de una consulta se define por separado de los parámetros y luego, Django internamente valida que la sentencia SQL generada no atente contra la seguridad de la aplicación.

Fallar con gracia (ASR 3):

La táctica corresponde al atributo de calidad de asegurar que siempre se le pueda dar una respuesta al usuario (disponibilidad), incluso si el sistema se encuentra en estado degradado. Para garantizarlo, es necesario crear una página de error en la que se le notifique al usuario que el sistema está fallando, esto con miras a reducir la indisposición que la falla genere sobre el usuario.

Acta 8/04/20: Retrospectiva y lanzamiento del nuevo Sprint

  • Asistentes: Santiago Bolaños, Daniel García, Mario Hurtado, Nicolás Potes.
  • Reporta: Nicolás Potes.
  • En el laboratorio se empleó la retrospectiva Estrella de Mar para hacer un análisis y reflexión sobre las cosas que: Hay que empezar a hacer, hacer más de, Seguir haciendo, hacer menos de y dejar de hacer. Estas características serán tenidas en cuenta para los Sprint posteriores. El resultado se muestra a continuación:

image

Con el fin de evaluar el desempeño y la evolución del trabajo en equipo para el Sprint 3 frente al Sprint 2, se formularon las siguientes preguntas:

  • ¿Cuáles son las similitudes y diferencias entre las dos retrospectivas?

Las principales similitudes entre las dos retrospectivas giran en torno al tema del manejo del tiempo. En ambas se plantea procrastinar menos, perder menos tiempo y empezar con antelación el desarrollo del Sprint. Por otra parte, las principales diferencias encontradas corresponden a las secciones "Seguir Haciendo" y "Comenzar a Hacer", y están enfocadas en pasar de realizar actividades básicas de monitoreo y desarrollo a otras actividades más complejas como la planeación de tareas y de los tiempos asociados a éstas.

  • ¿Reflejan las diferencias alguna mejora en la dinámica de trabajo en equipo?

Si, debido a que las diferencias muestran una progresión en el objetivo del trabajo en equipo. Se encuentra una evolución en las tareas. Por ejemplo, se pasó de una actividad básica como "Conectarse a las sesiones virtuales" a "Prestar atención a la retroalimentación de las actividades realizadas en clase".

  • Si no hay mejoras, ¿cuáles son las barreras que impiden el mejoramiento continuo?

Tal como se mencionó anteriormente, si se encontraron mejoras en la dinámica de trabajo en equipo. Sin embargo, también se encontró que la principal barrera que impide el mejoramiento continuo es el manejo del tiempo, dado que el inicio de las actividades de desarrollo de cada Sprint se postergan considerablemente.

Diseño y Planeación Sprint 4

El lider para el Sprint 4 será Mario Andres Hurtado.

Por otro lado, las acciones identificadas para el Sprint 4 son las siguientes:

  1. Planear actividades de reunión semanales.
  2. Asistir a todas las sesiones de clase magistral de curso.
  3. Cumplir con las actividades individuales a tiempo.
  4. Reportar al grupo acciones de desarrollo por medio de los canales establecidos.
  5. Dividir la carga de trabajo de forma equitativa.
  6. Respetar las fechas de inicio y finalización de las actividades planeadas.

De forma específica, las acciones concretas en las que se enfocará cada estudiante para el desarrollo del Sprint 4 son:

Nombre integrante Acciones concretas
Nicolás Potes García Estudiar de manera autodidacta contenidos relacionados con tecnologías y frameworks que sirvan para el desarrollo del Sprint 4, de igual manera, que contribuyan a mi proceso de aprendizaje de este tema que es de interés. Por otro lado, me comprometo a realizar las actividades semanales con mayor dedicación para aprovecharlas al máximo y estar constantemente en comunicación con los integrantes de mi equipo.
Daniel Felipe García Planear actividades semanales de planeación y desarrollo, así como cumplir con los plazos establecidos para las tareas planteadas. Estudiar de forma autónoma diferentes herramientas tecnológicas que apoyen el desarrollo del Sprint 4. Además, desarrollar a cabalidad los laboratorios y las actividades de la clase magistral.
Mario Andres Hurtado Prestar más atención a los contenidos vistos en las clases y repasarlos, para así poder entender mejor todo lo relacionado con el Sprint. De igual manera, desarrollar los laboratorios sin falta, ya que estos son los que permiten entender la manera en la que se usan las herramientas que se brindan para el desarrollo del Sprint.
Santiago Bolaños Vega Participar de forma más activa en las clases. Buscar mes fuentes bibliográficas y herramientas tecnológicas que sean de utilidad para el desarrollo del Sprint. Empezar las actividades con mayor antelación para entregar un producto de mayor calidad.

Además, se realizó la coevaluación de los integrantes del grupo en la cual se distribuyeron 100 puntos entre los integrantes en función del trabajo realizado por cada uno. Los resultados de la coevaluación son los siguientes:

image