1.3 Seguridad en el Front-End 1.4 Seguridad en el Back-End
David Prieto
Created on September 2, 2024
More creations to inspire you
ASTL
Presentation
TOM DOLAN
Presentation
BASIL RESTAURANT PRESENTATION
Presentation
AC/DC
Presentation
ENGLISH IRREGULAR VERBS
Presentation
ALL THE THINGS
Presentation
SANTIAGOVR_EN
Presentation
Transcript
1.3 Seguridad en el Front-End 1.4 Seguridad en el Back-End
INTEGRANTES:Orlando Yahel Luevan GarciaTadeo David Prieto DelgadoJose Alexis Silva Guerrero
1.4 Seguridad en el back-end
El back end de la aplicación administra la funcionalidad general de la aplicación web. Cuando el usuario interactúa con el front end, la interacción envía una solicitud al back end en formato HTTP. El backend procesa la solicitud y devuelve una respuesta.El backend utiliza varios protocolos y tecnologías de comunicación para completar una solicitud. Además, gestiona miles de solicitudes distintas de forma simultánea. El back end combina técnicas de concurrencia y paralelismo, como la distribución de solicitudes en muchos servidores, el almacenamiento en caché y la duplicación de datos.
1.4.1 Autenticación y Autorización
AUTENTICACIÓN
La autenticación es la comprobación de la identidad de un usuario o aplicación accediendo a una api.Esta autenticación se realiza mediante credenciales como username y contraseña, un certificado o un inicio de sesión único. Esta autenticación únicamente es válida si desde la API existe esa cuenta o credencial.
1.4.1 Autenticación y Autorización
AUTORIZACIÓN
La autorización de una API trata de determinar si un usuario o aplicación cuenta con los permisos necesarios para obtener un acceso, generalmente con uso de tokens y métodos para determinar su validez.
1.4.2 CIFRADO DE DATOS
El cifrado de datos y seguridad de información personal generalmente está basada en protocolos como https, o certificados web que determinan qué páginas cuentan con seguridad y cifrado de datos.Las API's creadas por amazon cuentan con, por lo menos, la versión más mínima del protocolo transport layer security (TLS), además de certificados SSL.
1.4.3 PROTECCIÓN CONTRA INYECCIONES
Una inyección sql es una vulnerabilidad que usa las consultas del código que ayudan al atacante a ingresar al sistema con credenciales que no tiene. Esta solicitud SQL es enviada a la base de datos como una consulta común, que al agregar ciertos parametros, la información es arrojada.La mejor manera de mitigar estos ataques es tener un control de entrada de los usuarios, desde lo más externo como el ingreso de datos, hasta el control de la base de datos, otorgando permisos precisos a cada usuario para evitar estos inconvenienties.
Ejemplo 1:
Uso de tokens para la validación de los usuarios después del uso de credenciales, eliminando la posibilidad de hacer uso de la caché y local storage para ingresar sin tener credenciales.
public function login(Request $request): JsonResponse { if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) { $user = Auth::user(); $token = $user->createToken('MyApp')->accessToken; return response()->json([ 'token'=> $token, 'id'=>$user->id, 'name'=>$user->name, 'rol_id'=>$user->rol_id, 'messagge' =>'Login succesful'],200); } else { return $this->sendError( 'Unauthorized.', ['error' => 'Unauthorized'] ); alert('Invalid Email or password.'); } }
Ejemplo 1:
sql = "SELECT id FROM users WHERE username='' AND password='contraseña' OR 1='1'
uname = request.POST['nombredeusuario'] passwd = request.POST['contraseña'] sql = "SELECT id FROM users WHERE username='" uname "' AND password='" passwd "'" database.execute(sql)
Ejemplo 2:
Los fallos de inyección permiten a un usuario proporcionar datos que contienen palabras clave que modificarán el comportamiento de las consultas realizadas en la base de datos.
Conclusión de SEGURIDAD EN EL BACK END
La seguridad desde el back end trata de proteger todos los datos internos, así como datos personales de clientes y usuarios con registro y acceso a la página.Esta protección es importante para generar confianza y tener una confidencialidad personal con los usuarios, haciendo el máximo esfuerzo por no vulnerar los datos.
- Inyección de SQL y cómo prevenirla. (2018, 7 noviembre). /. https://latam.kaspersky.com/resource-center/definitions/sql-injection?srsltid=AfmBOoqkrHV4d0JD3dDCDF8EIem1kke6nFoF_JrioENulWGHJBAovzfj
- Dlepow. (2023, 8 noviembre). Autenticación y autorización para las API: información general - Azure API Management. Microsoft Learn. https://learn.microsoft.com/es-es/azure/api-management/authentication-authorization-overview
- Cifrado de datos en Amazon API Gateway - Amazon API Gateway. (s. f.). https://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/data-protection-encryption.html
- ¿Qué es OAuth 2.0 y para qué sirve? - Auth0. (s. f.). Auth0. https://auth0.com/es/intro-to-iam/what-is-oauth-2
REFERENCIAS
1.3.1 Autenticación y Control de Accesos
Autenticación
La autenticación es cualquier proceso mediante el cual un sistema verifica la identidad de un usuario que desea acceder al sistema.Dado que el control de acceso generalmente se basa en la identidad del usuario que solicita acceso a un recurso, la autenticación es esencial para una seguridad eficaz. La autenticación del usuario se implementa a través de credenciales que, como mínimo, consisten en un ID de usuario y una contraseña.(IBM, 2021)
1.3 Seguridad en el Front-end
La seguridad en el desarrollo frontend es esencial para resguardar tanto a los usuarios como a la aplicación frente a posibles vulnerabilidades y ataques, como el Cross-Site Scripting (XSS). Como desarrolladores frontend, es nuestra responsabilidad minimizar al máximo estas amenazas potenciales.
1.3.1 Autenticación y Control de Accesos
Control de Acceso
La autorización es un sistema que otorga o revoca el acceso a ciertos datos o acciones. Tras autenticarse, un usuario puede tener permisos definidos por una lista de control de acceso (ACL). Estos permisos incluyen:
- Crear, leer, editar o eliminar archivos.
- Ejecutar programas.
- Recuperar o actualizar datos en una base de datos.(IBM, 2021)
1.3.2 XSS (Cross Site Scripting)
¿Que es?
Es un tipo de ataque en el cual actores maliciosos logran inyectar un script malicioso en un sitio web para luego ser procesado y ejecutado. (Báez, 2021)
- DOM-based Cross-Site Scripting: El Document Object Model (DOM) es una interfaz de programación para representar la estructura de un documento web y conectarlo con un lenguaje de scripting. (Báez, 2021)
1.3.2 XSS (Cross Site Scripting)
Tipos
- Reflected Cross-Site Scripting: En un ataque XSS reflejado, el payload se inyecta en un parámetro de la solicitud HTTP, es procesado por la aplicación y luego mostrado sin validación ni codificación de caract eres.
- Stored Cross-Site Scripting: En esta variante, la aplicación web almacena el valor de entrada, persiste el script inofensivo, y lo recupera para integrarlo en el documento HTML. (Báez, 2021)
1.3.3 CSRF Cross Site Request Forgery
¿Que es?
Es un tipo de ataque que se suele usar para estafas por Internet. Los delincuentes se apoderan de una sesión autorizada por el usuario (session riding) para realizar actos dañinos. El proceso se lleva a cabo mediante solicitudes HTTP. (IONOS, 2020)
1.3.3 CSRF Cross Site Request Forgery
¿Como funciona?
Para ejecutar un ataque CSRF, el atacante primero inserta código HTML en un servidor "A". Luego, la víctima establece una conexión legítima con un servidor "B". Al acceder al código malicioso, el navegador de la víctima realiza una solicitud al servidor "B" sin que el usuario lo note. (Perez, 2015)
1.3.4 mejores practicas para el desarrollo de front-end
- Validación y desinfección de inputs
- Evite los scripts inline
- Política de seguridad de contenidos (CSP)
- Solicitudes HTTP seguras
- Pruebas de penetración
- Gestión de las dependencias
- Proteccion de datos confidenciales
Ejemplo 1
Cross-Site Scripting (XSS):
Un caso famoso ocurrió con la red social MySpace en 2005, donde un ataque XSS permitió a un hacker inyectar un script malicioso que afectó a miles de usuarios. Este ataque se utilizó para robar información personal y realizar acciones no autorizadas en las cuentas de los usuarios. Este incidente resalta la importancia de validar y desinfectar las entradas del usuario para prevenir XSS.
Ejemplo 2
MFA
Un buen ejemplo de seguridad en frontend es que empresas como Dropbox y Google han implementado MFA para proteger las cuentas de los usuarios.
Conclusion
La seguridad en el Front-End es fundamental para proteger la aplicación y los usuarios. Asegurar una autenticación robusta, prevenir ataques XSS y CSRF, y seguir buenas prácticas de desarrollo son claves para mantener la integridad y la confianza. Implementar estas medidas contribuye a una experiencia segura y confiable para los usuarios.
REFERENCIAS
Acibeiro, M. (31 de 07 de 2023). godaddy.com. Obtenido de https://www.godaddy.com/resources/es/seguridad/que-es-el-cross-site-scripting-xss-y-como-puedes-evitarlo Báez, J. (28 de 09 de 2021). welivesecurity. Obtenido de https://www.welivesecurity.com/la-es/2021/09/28/que-es-ataque-xss-cross-site-scripting/ IBM. (04 de 03 de 2021). IBM Watson Content Analytics. Obtenido de https://www.ibm.com/docs/en/wca/3.0.0?topic=security-authentication-versus-access-control#:~:text=Authentication%20is%20any%20process%20by,is%20essential%20to%20effective%20security. IONOS, E. e. (24 de 02 de 2020). ionos. Obtenido de https://www.ionos.mx/digitalguide/servidores/seguridad/cross-site-request-forgery/ Perez, I. (21 de 05 de 2015). welivesecurity. Obtenido de https://www.welivesecurity.com/la-es/2015/04/21/vulnerabilidad-cross-site-request-forgery-csrf/ Vergara, S. (19 de 12 de 2023). itdo. Obtenido de https://www.itdo.com/blog/buenas-practicas-de-seguridad-para-front-end/ Queen, T. (2024, 20 junio). How Cross-Site Scripting (XSS) took down MySpace. https://www.linkedin.com/pulse/how-cross-site-scripting-xss-took-down-myspace-tim-queen--0drkeHow to turn multi-factor authentication on and off. (s. f.). Dropbox Help. https://help.dropbox.com/account-access/enable-two-step-verification