Seguridad de microservicios ¿Cómo proteger su infraestructura de microservicios?



Este artículo sobre seguridad de microservicios analizará algunas de las mejores prácticas para proteger microservicios de manera detallada.

En el mercado actual, donde las industrias utilizan diversas arquitecturas y aplicaciones de software, es casi imposible sentir que sus datos están completamente seguros. Por lo tanto, al crear aplicaciones con , los problemas de seguridad se vuelven más importantes, ya que los servicios individuales se comunican entre sí y con el cliente. Entonces, en este artículo sobre seguridad de microservicios, discutiré las diversas formas en que puede implementar para proteger sus microservicios en la siguiente secuencia.

¿Qué son los microservicios?

Microservicios, también conocidos como arquitectura de microservicio , es un estilo arquitectónico que estructura una aplicación como una colección de pequeños servicios autónomos, modelados en torno a un dominio de negocio. Por lo tanto, puede entender los microservicios como pequeños servicios individuales que se comunican entre sí en torno a la lógica empresarial única. Si desea obtener más información sobre los microservicios en profundidad, puede





¿Qué son los microservicios? - Seguridad de microservicios - Edureka

Ahora, a menudo, cuando las empresas pasan de una arquitectura monolítica a microservicios, ven muchos beneficios, como escalabilidad, flexibilidad y ciclos de desarrollo cortos. Pero, al mismo tiempo, esta arquitectura también presenta algunos problemas complejos.



Entonces, a continuación en este artículo sobre seguridad de microservicios, comprendamos los problemas que enfrenta una arquitectura de microservicios.

Problemas enfrentados en microservicios

Los problemas que enfrentan los microservicios son los siguientes:

Problema 1:

Considere un escenario en el que un usuario necesita iniciar sesión para acceder a un recurso. Ahora, en la arquitectura de microservicios, los detalles de inicio de sesión del usuario deben guardarse de tal manera que no se le solicite verificación al usuario cada vez que intente acceder a un recurso. Ahora, esto crea un problema, ya que los detalles del usuario podrían no ser seguros y también podrían ser accedidos por 3rdfiesta.



Problema 2:

Cuando un cliente envía una solicitud, se deben verificar los detalles del cliente y también se deben verificar los permisos otorgados al cliente. Entonces, cuando usa microservicios, puede suceder que para todos y cada uno de los servicios tenga que autenticar y autorizar al cliente. Ahora, para hacer esto, los desarrolladores pueden usar el mismo código para todos y cada uno de los servicios. Pero, ¿no cree que depender de un código específico reduce la flexibilidad de los microservicios? Bueno, definitivamente lo hace. Entonces, este es uno de los principales problemas que se enfrentan a menudo en esta arquitectura.

Problema 3:

El siguiente problema que es muy importante es la seguridad de cada microservicio individual. En esta arquitectura, todos los microservicios se comunican entre sí simultáneamente además de los 3rdaplicaciones de fiesta. Entonces, cuando un cliente inicia sesión desde 3rdparty, debe asegurarse de que el cliente no tenga acceso a los datos de los microservicios, de manera que pueda explotarlos.

pros y contras de piratear

Muy bien, los problemas mencionados anteriormente no son los únicos problemas que se encuentran en una arquitectura de microservicio. Yo diría que podrías enfrentarte a muchos otros problemas relacionados con la seguridad en función de la aplicación y la arquitectura que tengas. En ese sentido, avancemos con este artículo sobre seguridad de microservicios y conozcamos la mejor manera de reducir los desafíos.

Prácticas recomendadas para la seguridad de los microservicios

Las mejores prácticas para mejorar la seguridad en los microservicios son las siguientes:

Mecanismo de defensa en profundidad

Como se sabe que los microservicios adoptan cualquier mecanismo a nivel granular, puede aplicar el mecanismo de Defensa en profundidad para hacer que los servicios sean más seguros. En términos simples, el mecanismo de Defensa en profundidad es básicamente una técnica a través de la cual puede aplicar capas de contramedidas de seguridad para proteger los servicios confidenciales. Entonces, como desarrollador, solo tiene que identificar los servicios con la información más sensible y luego aplicar una serie de capas de seguridad para protegerlos. De esta manera, puede asegurarse de que cualquier atacante potencial no pueda romper la seguridad de una sola vez y tenga que avanzar e intentar romper el mecanismo de defensa de todas las capas.

clase de escáner en el ejemplo de java

Además, dado que en una arquitectura de microservicio, puede implementar diferentes capas de seguridad en diferentes servicios, un atacante que tenga éxito en la explotación de un servicio en particular, podría no ser capaz de romper el mecanismo de defensa de los otros servicios.

Tokens y API Gateway

A menudo, cuando abre una aplicación, ve un cuadro de diálogo que dice 'Acepte el Acuerdo de licencia y el permiso para las cookies'. ¿Qué significa este mensaje? Bueno, una vez que lo aceptes, tus credenciales de usuario se almacenarán y se creará una sesión. Ahora, la próxima vez que vaya a la misma página, la página se cargará desde la memoria caché en lugar de los servidores en sí. Antes de que este concepto entrara en escena, las sesiones se almacenaban en el lado del servidor de forma centralizada. Pero, esta fue una de las mayores barreras en la aplicación de escala horizontal.

Tokens

Entonces, la solución a este problema es usar tokens para registrar las credenciales del usuario. Estos tokens se utilizan para identificar fácilmente al usuario y se almacenan en forma de cookies. Ahora, cada vez que un cliente solicita una página web, la solicitud se reenvía al servidor y, luego, el servidor determina si el usuario tiene acceso al recurso solicitado o no.

Ahora, el principal problema son los tokens donde se almacena la información del usuario. Por lo tanto, los datos de los tokens deben cifrarse para evitar cualquier explotación de 3rdrecursos del partido. Jason Web Format o más comúnmente conocido como JWT es un estándar abierto que define el formato de token, proporciona bibliotecas para varios idiomas y también cifra esos tokens.

Puertas de enlace API

Las puertas de enlace API se agregan como un elemento adicional para proteger los servicios a través de la autenticación de token. los Gateway actúa como un punto de entrada a todas las solicitudes del cliente y oculta de manera eficiente los microservicios al cliente. Por lo tanto, el cliente no tiene acceso directo a los microservicios y, por lo tanto, ningún cliente puede explotar ninguno de los servicios.

Seguimiento distribuido y gestión de sesiones

Seguimiento distribuido

Mientras usa microservicios, debe monitorear todos estos servicios continuamente. Pero, cuando tiene que monitorear una enorme cantidad de servicios simultáneamente, eso se convierte en un problema. Para evitar estos desafíos, puede utilizar un método conocido como seguimiento distribuido. El rastreo distribuido es un método para identificar las fallas e identificar la razón detrás de ellas. No solo esto, sino que también puede identificar el lugar en el que está ocurriendo la falla. Por lo tanto, es muy fácil rastrear qué microservicio enfrenta un problema de seguridad.

Gestión de sesiones

La administración de sesiones es un parámetro importante que debe considerar al proteger los microservicios. Ahora, se crea una sesión cada vez que un usuario accede a una aplicación. Entonces, puede manejar los datos de la sesión de las siguientes maneras:

  1. Puede almacenar los datos de la sesión de un solo usuario en un servidor específico. Pero este tipo de sistema depende completamente del equilibrio de carga entre los servicios y solo cumple con el escalado horizontal.
  2. Los datos completos de la sesión se pueden almacenar en una sola instancia. Luego, los datos se pueden sincronizar a través de la red. El único problema es que, en este método, se agotan los recursos de la red.
  3. Puede asegurarse de que los datos del usuario se puedan obtener del almacenamiento de sesión compartido, para asegurarse de que todos los servicios puedan leer los mismos datos de sesión. Pero, dado que los datos se recuperan del almacenamiento compartido, debe asegurarse de tener algún mecanismo de seguridad para acceder a los datos de forma segura.

Primera sesión y mutuo SSL

La idea de la primera sesión es muy sencilla. Los usuarios deben iniciar sesión en la aplicación una vez y luego pueden acceder a todos los servicios de la aplicación. Pero cada usuario debe comunicarse inicialmente con un servicio de autenticación. Bueno, esto definitivamente puede resultar en mucho tráfico entre todos los servicios y podría ser engorroso para los desarrolladores descubrir fallas en tal escenario.

las funciones que difieren solo en su tipo de retorno no se pueden sobrecargar

Al llegar a Mutual SSL, las aplicaciones a menudo enfrentan tráfico de usuarios, 3rdpartes y también microservicios que se comunican entre sí. Pero, dado que estos servicios son accedidos por los 3rdpartes, siempre existe el riesgo de ataques. Ahora, la solución para tales escenarios es SSL mutuo o autenticación mutua entre microservicios. Con esto, los datos transferidos entre los servicios serán encriptados. El único problema con este método es que, cuando aumenta la cantidad de microservicios, dado que todos y cada uno de los servicios tendrán su propio certificado TLS, será muy difícil para los desarrolladores actualizar los certificados.

3rdacceso a la aplicación del partido

Todos accedemos a aplicaciones que son 3rdaplicaciones de fiesta. Los 3rdLas aplicaciones de terceros utilizan un token de API generado por el usuario en la aplicación para acceder a los recursos necesarios. Por lo tanto, las aplicaciones de terceros pueden acceder a los datos de ese usuario en particular y no a las credenciales de otros usuarios. Bueno, esto fue con respecto a un solo usuario. Pero, ¿y si las aplicaciones necesitan acceder a datos de varios usuarios? ¿Cómo cree que se atiende a tal solicitud?

Uso de OAuth

La solución es utilizar OAuth. Cuando usa OAuth, la aplicación solicita al usuario que autorice las 3rdaplicaciones del partido, para utilizar la información requerida y generar un token para ello. Por lo general, se utiliza un código de autorización para solicitar el token y asegurarse de que no se robe la URL de devolución de llamada del usuario.

Entonces, al mencionar el token de acceso, el cliente se comunica con el servidor de autorización, y este servidor autoriza al cliente a evitar que otros falsifiquen la identidad del cliente. Entonces, cuando usa microservicios con OAuth, los servicios actúan como un cliente en la arquitectura OAuth, para simplificar los problemas de seguridad.

Bueno, amigos, no diría que estas son las únicas formas en las que pueden asegurar sus servicios. Puede proteger los microservicios de muchas formas según la arquitectura de la aplicación. Entonces, si usted es alguien que aspira a construir una aplicación basada en microservicios, recuerde que la seguridad de los servicios es un factor importante con el que debe tener cuidado. En esa nota, llegamos al final de este artículo sobre seguridad de microservicios. Espero que este artículo le haya resultado informativo.

Si desea aprender sobre microservicios y crear sus propias aplicaciones, consulte nuestra que viene con capacitación en vivo dirigida por un instructor y experiencia en proyectos de la vida real. Esta capacitación lo ayudará a comprender los microservicios en profundidad y lo ayudará a dominar el tema.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de ' Seguridad de microservicios ”Y me pondré en contacto contigo.