El microservicio es un proceso muy pequeño o incluso microindependiente que se comunica y devuelve mensajes a través de mecanismos como Thrift, HTTPS y EST API . Básicamente, la arquitectura de microservicios es la combinación de muchos pequeños procesos que se combinan y forman una aplicación. En la arquitectura de microservicios, cada proceso está representado por múltiples contenedores. Cada servicio individual está diseñado para una función específica y todos los servicios juntos construyen una aplicación.
Ahora analicemos el punto real de la seguridad en la arquitectura de microservicios, hoy en día muchas aplicaciones utilizan servicios externos para construir su aplicación y con la mayor demanda, existe la necesidad de un desarrollo de software y un diseño de arquitectura de calidad. Los administradores de sistemas, los administradores de bases de datos, los proveedores de soluciones en la nube y la puerta de enlace API son los servicios básicos utilizados por la aplicación. La seguridad de los microservicios se centra principalmente en diseñar una comunicación segura entre todos los servicios que implementa la aplicación.
Cómo proteger los microservicios:
(1) Complejidad de
la contraseña: la complejidad de la contraseña es una parte muy importante ya que una característica de seguridad es una preocupación. El mecanismo implementado por el desarrollador debe poder obligar al usuario a crear una contraseña segura durante la creación de una cuenta. Todos los caracteres de la contraseña deben verificarse para evitar la combinación de contraseñas débiles que contienen solo strings o números.
(2) Mecanismo de autenticación:
en ocasiones, la autenticación no se considera de alta prioridad durante la implementación de las funciones de seguridad. Es importante bloquear las cuentas de los usuarios después de varios intentos fallidos de inicio de sesión. Al iniciar sesión, debe implementarse una limitación de velocidad para evitar el ataque de fuerza bruta. si la aplicación utiliza algún servicio externo, todas las API deben implementarse con un token de autenticación para evitar interferir con el usuario en la comunicación del extremo de la API. Utilice la autenticación multifactor en los microservicios para evitar la enumeración de nombres de usuario durante el inicio de sesión y el restablecimiento de contraseña.
(3) Autenticación entre dos servicios:
el ataque de intermediario puede ocurrir durante los encuentros durante la comunicación de servicio a servicio. Utilice siempre HTTPS en lugar de HTTP, HTTPS siempre garantiza el cifrado de datos entre dos servicios y también proporciona protección adicional contra la penetración de entidades externas en el tráfico entre cliente y servidor.
Es difícil administrar certificados SSL en servidores en escenarios de múltiples máquinas y es muy complejo emitir certificados en cada dispositivo. Hay una solución segura HMAC disponible a través de HTTPS. HMAC consta de un código de mensajería basado en hash para firmar la solicitud.
(4) Protección de los datos restantes:
es muy importante proteger los datos que no están actualmente en uso. Si el entorno es seguro, la red es segura, entonces pensamos que los atacantes no pueden acceder a los datos almacenados, pero este no es el caso, hay muchos ejemplos de violaciones de datos en el sistema protegido solo debido a mecanismos de protección débiles en la seguridad de los datos. Todos los puntos finales donde se almacenan los datos no deben ser públicos. Además, durante el desarrollo, cuide la clave API. Todas las claves de API deben ser secretas. La fuga de API privada también conduce a la exposición de datos confidenciales en público. No exponga ningún dato confidencial o puntos finales en el código fuente.
(5) Pruebas de penetración:
siempre es una buena práctica considerar las características de seguridad en el ciclo de vida del desarrollo del software en sí. pero en general, esto no siempre es cierto, teniendo en cuenta este problema siempre es importante realizar pruebas de penetración en la aplicación después del lanzamiento final. Hay algunos vectores de ataque importantes lanzados por OWASP. Siempre intente estos ataques durante las pruebas de penetración de la aplicación. Algunos de los vectores de ataque importantes se mencionan a continuación.
- Inyección SQL.
- Secuencias de comandos entre sitios (XSS).
- Divulgación de información confidencial.
- Autenticación y autorización rotas.
- Control de acceso roto.
Publicación traducida automáticamente
Artículo escrito por siddhantgore y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA