Comprender la seguridad nativa de la nube en un artículo

El nacimiento de los nativos de la nube

En 2013, Matt Stine de Pivotal propuso por primera vez el concepto de Cloud Native. Con el paso del tiempo, el concepto actual de cloud native se puede resumir en cuatro puntos principales: microservicios, contenerización, DevOPS y entrega continua .

La nube nativa está ligada al entorno de la nube durante el desarrollo del proyecto. Para la seguridad nativa de la nube, es necesario considerar simultáneamente la seguridad de la aplicación en la nube cuando se crea un entorno de nube, de modo que los problemas de seguridad de la aplicación se puedan desplazar hacia la izquierda y los problemas de seguridad se deban Cargada al frente.

Si la aplicación utiliza una arquitectura nativa de la nube, los problemas de seguridad del software tradicional no desaparecerán, pero causarán más problemas debido a la complejidad de la arquitectura de la nube y al aumento de las llamadas directas a los componentes. La construcción del sistema de protección de seguridad nativo de la nube debe basarse en el ciclo de vida de las aplicaciones nativas de la nube. El ciclo de vida completo se divide en construcción-distribución-operación, que involucra seguridad de desarrollo, seguridad de imagen, seguridad de contenedor, seguridad de máquina host, seguridad de aplicaciones y plataforma de orquestación de contenedores Seguridad, que también es el modelo de seguridad de aplicaciones defendido por DevSecOps en el desarrollo ágil.

Antes de hablar sobre la seguridad nativa de la nube, echemos un vistazo a los cuatro puntos principales de la seguridad nativa de la nube.

01 Microservicios

Antes de entender los microservicios, primero entendamos qué es una aplicación monolítica. Tan pronto como MVC (Spring + iBatis/Hibernate + Tomcat) era la pila de tecnología principal, nació el concepto de aplicación monolítica, porque la arquitectura MVC está diseñada para aplicaciones monolíticas. Sí, el desarrollador iniciará y cargará el paquete WAR escrito a través de tomcat para proporcionar servicios externos. La arquitectura MVC es adecuada para escenarios donde la escala empresarial es pequeña y el equipo de desarrollo es pequeño.

Sin embargo, con el desarrollo continuo de TI, cada vez más negocios se llevan a cabo mediante proyectos digitales y aparecen las desventajas de una sola aplicación. Por ejemplo, cuando el equipo de desarrollo colabora con varias personas, el código se envía, empaqueta e implementa juntos para la prueba. Una vez que hay una función en la fase de prueba Si hay un problema con el módulo, debe volver a compilarse, empaquetarse, implementarse y luego probarse Todos los desarrolladores relevantes deben participar en él, lo que resulta en mayores costos de desarrollo, baja eficiencia de desarrollo y baja eficiencia de despliegue.

La arquitectura MVC tradicional implementa todas las funciones en el mismo paquete war y se ejecuta en el mismo contenedor tomcat, lo que destruirá todo a la vez, lo que provocará la falta de disponibilidad de todos los servicios en el proceso de JVM.

En base a lo anterior, surgieron los microservicios .

En 2014, la madurez de la tecnología de contenedorización representada por Docker y el auge de la cultura DevOps evolucionaron lentamente hacia los microservicios con los que estamos familiarizados hoy.

Características de los microservicios: los servicios se implementan de forma independiente. Por ejemplo, una máquina física puede implementar varias instancias de Docker, que se pueden subdividir en un submódulo, y puede formar un microservicio de forma independiente y mantenerse de forma independiente.

Los microservicios pueden ejecutarse en su "propio programa". En la arquitectura de microservicios, solo las funciones requeridas deben agregarse a servicios específicos sin afectar la arquitectura general del proceso. Con la expansión continua de la escala de Internet móvil, el desarrollo y la práctica del desarrollo ágil, la entrega continua y la teoría DevOps, y la madurez gradual de la tecnología de contenedorización basada en Docker, la arquitectura de microservicios se ha vuelto popular y gradualmente se ha convertido en el futuro. dirección de la evolución de la arquitectura de la aplicación.

02 Contenedorización

Cuando se trata de contenerización, comencemos con docker. Docker es una plataforma de contenedorización de código abierto. La característica de Docker es "creación o configuración única, y puede ejecutarse normalmente en cualquier lugar". , y el entorno original se copia exactamente durante la instalación. Una copia eliminará el problema de los diferentes resultados de ejecución de diferentes máquinas.

Los componentes básicos de Docker incluyen: contenedor, imagen, almacén

Duplicación : la duplicación se implementa en función de las capas. Como plantilla de solo lectura, los archivos se pueden agregar y eliminar en cada capa.

La duplicación puede crear contenedores docker y se pueden crear varios contenedores.

Contenedor : Puede entenderse como una aplicación que docker utiliza contenedores para ejecutarse de forma independiente. La instancia en ejecución creada por la imagen es el contenedor. La relación entre el contenedor y la imagen: la imagen es responsable del almacenamiento y la distribución, y el contenedor es responsable de la ejecución, al igual que las clases y las instancias en Java, se pueden crear instancias de objetos específicos a través de clases y se pueden llamar métodos en la clase. a través de objetos específicos.

Almacén : en Docker, un almacén es un lugar donde se almacenan imágenes de manera centralizada. Es un servicio centralizado de almacenamiento y distribución de imágenes. Cada almacén puede contener múltiples etiquetas, y cada etiqueta corresponde a una imagen. Por lo general, un almacén contendrá imágenes de diferentes versiones del mismo software y, a menudo, se utilizan etiquetas para corresponder a cada versión del software.

Las ventajas de Docker son muchas: en comparación con las máquinas virtuales, los contenedores de Docker son los siguientes:

Las universidades utilizan los recursos del sistema, un tiempo de inicio más rápido, un entorno operativo consistente, entrega continua devops, implementación continua, acoplamiento bajo y mantenimiento y expansión más fáciles.

03 desarrolladores

DevOps incluye desarrollo y operaciones, que es el término general para desarrollo y operación y mantenimiento.Para consolidar los resultados del diseño y desarrollo de software, el desarrollo, la operación y el mantenimiento y las pruebas se combinan para formar un modelo de gestión de desarrollo de software DevOps.

04 Entrega continua

Es difícil lanzar con frecuencia nuevas funciones a los usuarios sin afectar el uso de los servicios por parte de los usuarios. Es difícil lograr esto en el desarrollo y la entrega tradicionales. Los lanzamientos frecuentes y los lanzamientos en línea tendrán diferentes grados de impacto en diferentes usuarios. Ahora, la tecnología nativa de la nube convencional puede lograr una entrega continua sin afectar el uso de los usuarios a través de microservicios, contenedores y desarrollo.

Basado en principios nativos de la nube

Cree aplicaciones RASP seguras nativas de la nube

Nativo de la nube se refiere a la combinación de varias tecnologías de mejora y eficiencia basadas en la nube, eliminando el almacenamiento físico y realizando una optimización profesional de la aplicación y una mejora de la eficiencia. Después de comprender los principios de la nube nativa, podemos mirar hacia atrás a la seguridad nativa de la nube para conocer nuestro enfoque.La seguridad nativa de la nube puede incluir seguridad de desarrollo de software, seguridad de imagen, seguridad de host y seguridad de tiempo de ejecución de software.

La plataforma de protección de seguridad de aplicaciones de seguridad de red de código abierto (RASP) utiliza tecnología stub para realizar la detección y protección de ataques sin intervención manual y sin percepción. Para las empresas de Internet y los proyectos de aplicaciones distribuidas, la eficiencia de implementación y el efecto de protección de la plataforma RASP son más evidentes.

Aplicación de seguridad de RASP en escenarios nativos de la nube:

La función principal de RASP es la protección de seguridad del tiempo de ejecución de la aplicación. Además de la detección de vulnerabilidades, el endurecimiento de la aplicación, la defensa de día cero, la protección de debilidad de seguridad y la detección de la línea de base de seguridad del tiempo de ejecución de la aplicación que se muestra en la figura anterior, RASP tiene muchas otras funciones. .

Este es el final del intercambio de este problema. Bienvenidos a todos a ingresar a la cuenta pública de seguridad de red de código abierto, haga clic en la barra de menú - servicio de producto - RASP para probar la plataforma RASP de seguridad de red de código abierto.

Supongo que te gusta

Origin blog.csdn.net/weixin_55163056/article/details/131086394
Recomendado
Clasificación