1
ALTERNATIVAS DE SEGURIDAD EN APLICACIONES WEB
Yeison Gómez
Julio Cesar Cuevas
Fundación Universitaria del Área Andina
Ingeniería de Sistemas
Modelos de Programación II
Jorge Ospina Beltrán
2021
2
Resumen
Daremos a conocer la estrategias más eficientes, seguridad y confiables al momento de crear o
desarrollar una aplicación web, desktop o móvil. Adicional a esto que contenga los protocolos y
políticas necesarios para garantizar un correcto funcionamiento. Con esto evitaremos que se
vulnere la seguridad de esta.
3
Tabla de Contenidos
Capítulo 1 IM´PLEMENTACION..................................................................................................4
Agilismo......................................................................................................................................4
Seguridad.....................................................................................................................................4
Capítulo 2 Pruebas Unitarias..........................................................................................................6
Pruebas de Funcionabilidad.........................................................................................................8
Capítulo 4 Resultados y discusión..................................................................................................9
Lista de referencias........................................................................................................................10
4
Capítulo 1
IM´PLEMENTACION
Agilismo
Realizaremos la implementación aplicando los métodos agiles y de buenas prácticas
para que se puedan llevar a cabo cada una de las características de la implementación de
nuestra aplicación web garantizando así por medio de metodologías agiles el
cumplimiento el valor requerido en la solicitud de nuestro cliente.
Seguridad
Para la implementación de la aplicación web de la cooperativa encontraremos una
estructura detalla de la siguiente manera: Bases de Datos, Backend y Frontend.
Esto debido a que en la solicitud que se nos ha hecho nuestro cliente manejara, consultas
de información, aportes, retiros, descargas y transacciones en línea.
Base de Datos: en este punto daremos puntualidad a la base de datos la cual se va a
restringir en su consulta y solo se hará un mapeo de las direcciones que tenga por uso
acceso a consulta de esta misma, adicional la información más sensible en la base de
datos se guardará con acceso restringidos y solo se podrá tener acceso a ella por método
SSH garantizando que la conexión no solo es segura, sino que estar cifrada en ambos
puntos de la conexión. Para uso de contraseñas se recomendarán métodos Bcrpt
5
Backend: todos nuestros cambios en el Backend se guardarán en variables de entorno en
donde estarán: configuraciones de las bases de datos, llaves de conexión a api de
consumo. Por otra parte, haremos que las conexiones a la información como las consultas
que harán los usuarios y los certificados a los cuales se podrán acceder se harán en inicio
con autenticación usuario y clave, adicionalmente se mantendrá la conexión del usuario
por medio de tokens usando JSON web Token. Con esto podremos garantizar que se
eviten ataques por inyección a nuestra información o la más sensible.
Frontend: como manejaremos aplicación tipo web no solo daremos una visualización
fluida sino también segura por lo cual y para garantizar la seguridad y política de nuestra
aplicación no guardaremos información sensible como usuarios o contraseñas en las
cookies del navegador que se use ni tampoco el local store de la web.
6
Capítulo 2
Pruebas Unitarias
Es una forma de comprobar el correcto funcionamiento de una unidad de código. Por
ejemplo, en diseño estructurado o en diseño funcional una función o un procedimiento,
en diseño orientado a objetos una clase. Esto sirve para asegurar que cada unidad
funcione correcta y eficientemente por separado. Además de verificar que el código hace
lo que tiene que hacer, verificamos que sea correcto el nombre, los nombres y tipos de los
parámetros, el tipo de lo que se devuelve, que, si el estado inicial es válido, entonces el
estado final es válido también.
La idea es escribir casos de prueba para cada función no trivial o método en el módulo,
de forma que cada caso sea independiente del resto. Luego, con las Pruebas de
Integración, se podrá asegurar el correcto funcionamiento del sistema o subsistema en
cuestión.
Con estas pruebas unitarias garantizamos el cumplimiento de las herramientas de política
y seguridad para un correcto funcionamiento de nuestra aplicación y se obtendrán las
siguientes ventajas
Fomentan el cambio: Las pruebas unitarias facilitan que el programador cambie el
código para mejorar su estructura (lo que se ha dado en llamar refactorización),
puesto que permiten hacer pruebas sobre los cambios y así asegurarse de que los
nuevos cambios no han introducido defectos.
7
Simplifica la integración: Puesto que permiten llegar a la fase de integración con
un grado alto de seguridad de que el código está funcionando correctamente. De
esta manera se facilitan las pruebas de integración.
Documenta el código: Las propias pruebas son documentación del código, puesto
que ahí se puede ver cómo utilizarlo.
Separación de la interfaz y la implementación: Dado que la única interacción
entre los casos de prueba y las unidades bajo prueba son las interfaces de estas
últimas, se puede cambiar cualquiera de los dos sin afectar al otro, a veces
usando objetos maquetados (mock object - maqueta) que habilitan de forma
aislada (unitaria) el comportamiento de objetos complejos.
Los errores están más acotados y son más fáciles de localizar: Dado que tenemos
pruebas unitarias que pueden desenmascararlos.
De esta manera cumplimos con la excepción de caer en el top 10 de las vulnerabilidades
mas comunices reportadas por la Owasp
1. Inyección
2. Malas prácticas de autenticación
3. Exposición de datos sensibles
4. Entidades externas de XML
5. Pérdida de control de Acceso
6. Configuración de seguridad incorrecta
7. Secuencia de comandos en sitios cruzados XSS
8. Deserialización Insegura
9. Uso de componentes con vulnerabilidades conocidas
10. Registro de logs y monitoreo insuficientes
8
Pruebas de Funcionabilidad
Para las pruebas de ejecución de nuestra aplicación correremos Zap Owasp, una
aplicación de testeo de tipo web que permite validar el funcionamiento de nuestra
aplicación, niveles de seguridad, vulnerabilidades si se llegan a presentar con lo cual
garantizamos que se cumplan las condiciones establecidas en la ejecución de nuestra
aplicación
9
Capítulo 4
Resultados y discusión.
En cuanto los resultados de esta implementación encontramos que si bien es cierto que
se garantiza una correcta ejecución de una aplicación web que cumpla con los estándares
de seguridad y políticas de privacidad con los cuales se evite cualquier tipo de
vulnerabilidad, en los aspectos de tecnologías de la información el acompañamiento
continuo al usuario es indispensable ya que cada día existen mas riesgos en el ámbito
global de la web y es un continuo aprendizaje de nuevas metodologías , nuevos procesos,
nuevas herramientas que puedan ser implementadas en nuestro desarrollo de aplicaciones
web sin que se tengan que cambiar toda una infraestructura ya puesta en marcha sino que
el impacto sea el mínimo previsto.
10
Lista de referencias
Álvaro Chirou 2020 [Link]
Fabian Martínez Portantier(2013). [Link]
[Link]
Fabian Martínez Portantier(2013).
[Link]
_Quick_Reference_Guide