La aparición de arquitecturas nativas de la nube ha cambiado drásticamente la forma en que se desarrollan, implementan y administran las aplicaciones. Si bien las arquitecturas nativas de la nube ofrecen importantes beneficios en términos de escalabilidad, elasticidad y flexibilidad, también presentan desafíos de seguridad únicos. Estos desafíos a menudo difieren de los asociados con las aplicaciones monolíticas tradicionales. Comprender estos matices es crucial para los desarrolladores, particularmente porque las aplicaciones modernas nativas de la nube son una combinación de desafíos de seguridad nuevos y antiguos que deben abordarse de manera integral. Este artículo describe seis prácticas de codificación segura que son esenciales para construir plataformas de nube seguras, resilientes y escalables. Aplicaciones nativas. Estas prácticas no son simplemente “es bueno tenerlas”, sino principios fundamentales que contribuyen a la postura de seguridad general de cualquier aplicación nativa de la nube.6 mejores prácticas de seguridad para la arquitectura de confianza cero nativa de la nube Validación de entradas Control de exposición a Internet Almacenamiento seguro de archivos Principio de mínimo Privilegio Enmascaramiento de datos de registro Arquitectura de confianza cero En el ecosistema nativo de la nube, la naturaleza modular de los microservicios crea tanto una ventaja como un desafío. Al desarrollar un microservicio, no se deben hacer suposiciones sobre su consumo dentro del contexto más amplio de la aplicación. La esencia misma de los microservicios es que pueden ser componentes modulares reutilizables. Esto significa que el mismo microservicio, inicialmente diseñado para un propósito específico dentro de una aplicación, podría luego integrarse en una aplicación diferente con restricciones de seguridad completamente diferentes. Dada esta fluidez, es fundamental abordar cada microservicio con una mentalidad de confianza cero. Al hacerlo, garantiza que ningún servicio confíe ciegamente en otro, fortaleciendo así las defensas de cada microservicio, independientemente de su contexto de uso. Dos elementos clave de la confianza cero son la microsegmentación y la autenticación de servicio a servicio. La microsegmentación implica dividir su aplicación en componentes (microservicios) más pequeños y manejables y configurar controles de seguridad independientes para cada uno. Esto garantiza que incluso si un componente se ve comprometido, la superficie de ataque sea limitada. Ejemplo: en una aplicación de comercio electrónico nativa de la nube, separaría el inventario, el pago y la autenticación de usuarios en diferentes microservicios, cada uno con sus propios protocolos de seguridad. En lugar de depender únicamente de la autenticación del usuario, la autenticación de servicio a servicio garantiza que los servicios se autentiquen entre sí antes de intercambiar información. Esto se puede hacer utilizando técnicas como TLS mutuo (mTLS). Ejemplo: cuando el microservicio de inventario en una plataforma de comercio electrónico solicita detalles de pago del microservicio de pago, se podría usar TLS mutuo para validar las identidades de ambos servicios. Validación de entrada Los ataques como las inyecciones de SQL y los recorridos de rutas de archivos a menudo explotan una validación de entrada deficiente. En una aplicación nativa de la nube donde los microservicios pueden exponer varias API, el riesgo de tales ataques se multiplica. Garantizar una validación y desinfección rigurosas de cada entrada es fundamental para la seguridad. Esto significa que todos los datos, ya sea que provengan de un usuario final, de otro servicio o incluso de una base de datos interna, deben tratarse como potencialmente maliciosos. Las rigurosas medidas de seguridad de API incluyen verificación de tipos, validación de límites y listas blancas. La verificación de tipos y la validación de límites implican validar el tipo de datos de las entradas, garantizar que coincidan con el tipo esperado y establecer límites para ciertos tipos de entradas para evitar desbordamiento, subdesbordamiento u otros ataques maliciosos basados ​​en entradas. Ejemplo: si es un comercio electrónico El sitio tiene un campo para la cantidad de un artículo a comprar, asegúrese de que solo acepte números enteros positivos. Rechace entradas como números negativos o caracteres alfabéticos. También establezca un límite superior, como 100 artículos, para evitar pedidos poco realistas o potencialmente dañinos. La inclusión en la lista blanca implica mantener una lista de entradas o rangos de valores aceptados. Sólo se deben aceptar entradas que cumplan con estos criterios predefinidos. Ejemplo: para una API que acepta entradas de color para una función de personalización, use una lista blanca para permitir solo códigos de color específicos como #FF0000 para el rojo. Control de exposición a InternetCuantos más elementos de su aplicación estén expuestos a Internet, mayor será su superficie de ataque. Esto es especialmente cierto para las aplicaciones nativas de la nube, donde las funcionalidades a menudo se dividen entre múltiples servicios poco acoplados. Restringir el acceso a Internet únicamente a los componentes esenciales limita los posibles puntos de entrada para los atacantes. Los controles clave de exposición a Internet incluyen reglas de firewall, nubes privadas virtuales (VPC) y gestión de desviaciones. Utilice la configuración avanzada del firewall para bloquear todos los puertos no esenciales. Segmente su red para aislar diferentes servicios y minimizar la exposición de cada servicio. Ejemplo: aísle su pasarela de pago del servicio de su aplicación principal, garantizando que incluso si un servicio se ve comprometido, el otro permanezca seguro. Implemente una VPC para aislar diferentes partes de su aplicación. Esto debe incluir subredes separadas para cada tipo de servicio y ACL de red para restringir el tráfico entre ellos. Ejemplo: divida su aplicación de comercio electrónico en VPC separadas para la autenticación de usuarios, el catálogo de productos y el procesamiento de pagos. Supervise las variaciones de configuración en sus servicios. A menudo, los servicios internos pueden quedar expuestos al público sin darse cuenta debido a cambios en otros lugares, como modificaciones para dar cabida a una solicitud de API no relacionada. Establezca alertas para cualquier cambio de configuración no deseado y aborde rápidamente cualquier desviación. Ejemplo: supongamos que hay un servicio de informes interno destinado únicamente al acceso administrativo. Si una modificación de API no relacionada expone inadvertidamente este servicio al personal en general o al público, las herramientas de gestión de deriva alertarían al equipo de desarrollo de esta exposición no intencional, lo que provocaría una solución inmediata. Almacenamiento seguro de archivos El almacenamiento de datos en archivos, especialmente datos confidenciales, requiere un mayor nivel de seguridad. Si bien las bases de datos tienen sus propios riesgos, el almacenamiento de archivos puede ser aún más precario si no se maneja con cuidado. Los datos basados ​​en archivos siempre deben cifrarse cuando están en reposo. Además, deben existir controles rigurosos para restringir quién puede acceder a estos archivos. Las prácticas de almacenamiento seguro de archivos incluyen cifrado en reposo y controles de acceso basados ​​en roles. También vigile de cerca los archivos temporales. Los archivos temporales no son tan temporales. Utilice siempre métodos de cifrado nativos de la plataforma para garantizar el almacenamiento de datos más seguro. Incluso si un mal actor obtiene acceso a su almacenamiento físico, no podrá leer los datos. Por ejemplo, utilice métodos de cifrado integrados proporcionados por su solución de almacenamiento en la nube para cifrar los datos del usuario antes de almacenarlos. Utilice un mecanismo de control de acceso basado en roles (RBAC) para gestionar el acceso a los archivos almacenados. Registre todos los accesos para crear un registro de auditoría. Ejemplo: en una aplicación de atención médica, permita que solo cierto personal médico acceda a los registros de los pacientes. Tenga cuidado al generar archivos temporales durante los procesos o la depuración. Es posible que, sin darse cuenta, contengan información confidencial. Implemente rutinas para limpiar automáticamente estos archivos y garantizar que no permanezcan más tiempo del necesario. Ejemplo: si un desarrollador genera registros temporales para solucionar errores de autenticación del usuario, es crucial tener un proceso automatizado que purgue estos registros una vez que se resuelva el problema. garantizar que los datos confidenciales no queden atrás. Recuerde, los descuidos pueden ocurrir fácilmente (incluso para Microsoft), por lo que la diligencia en los procesos de limpieza es vital. Principio de privilegio mínimo La aplicación del principio de privilegio mínimo es fundamental para el desarrollo de aplicaciones nativas de la nube. Los servicios deben tener sólo los permisos necesarios para realizar sus funciones. Esto minimiza el riesgo de que un servicio comprometido se utilice para atacar otras partes del sistema. Los pasos prácticos para aplicar privilegios mínimos en el código incluyen permisos de alcance, credenciales temporales y auditorías periódicas. Ajuste la configuración de permisos para alinearse con las responsabilidades específicas de cada componente. Esto es importante desde muchas perspectivas y, a menudo, se pasa por alto la perspectiva de la API. ¿Su API necesita leer y escribir? Si es así, conviértalas en dos API distintas y proporcióneles la cantidad mínima de privilegios requerida en cada una. Ejemplo: un servicio de registro de usuarios (que presumiblemente realiza cambios) debe tener un conjunto de permisos de alcance diferente al de un servicio de solo lectura que informa datos. Credenciales de corta duración para cualquier operación que requiera más permisos de lo habitual. Asegúrese de que caduquen tan pronto como se complete la tarea. Ejemplo: para operaciones de respaldo que requieren permisos elevados, use credenciales temporales que caduquen tan pronto como se complete el respaldo. Realice auditorías periódicas y frecuentes para identificar roles demasiado permisivos y tomar medidas correctivas. Las herramientas automatizadas pueden señalar dichos roles y sugerir medidas correctivas. Ejemplo: utilice una herramienta de auditoría automatizada para revisar periódicamente las funciones y permisos de su sistema, destacando aquellos que tengan más acceso del necesario. Luego, tome medidas correctivas para recuperar el alcance de esos permisos. Enmascaramiento de datos de registro El registro es esencial para el monitoreo y la depuración, pero los registros también pueden contener información confidencial. El enmascaramiento de datos garantiza que cuando aparece información confidencial en los registros, se reemplaza con versiones ocultas, lo que reduce el riesgo de fuga de datos. Los componentes clave para implementar el enmascaramiento de datos en los registros incluyen herramientas de redacción automatizadas, administración de registros centralizada y políticas de retención de registros. Utilice herramientas de software especializadas para escanear y redactar automáticamente información confidencial en los registros. Estas herramientas se pueden programar para reconocer patrones como números de Seguro Social, números de tarjetas de crédito o contraseñas. Ejemplo: en una aplicación financiera, asegúrese de que la información de la tarjeta de crédito se elimine automáticamente antes de registrarse, dejando solo los últimos cuatro dígitos visibles como referencia. Implemente un sistema de gestión de registros centralizado que agregue registros de varias fuentes. Esto no solo mejora el monitoreo, sino que también garantiza que las políticas de enmascaramiento y redacción se apliquen de manera uniforme en todos los registros, lo que reduce la posibilidad de fuga de datos confidenciales. Ejemplo: en una aplicación nativa de la nube distribuida con múltiples microservicios, agregue registros de todos los servicios en un sistema centralizado, asegurando que las reglas de enmascaramiento de datos se apliquen de manera consistente a todos los registros entrantes. Desarrolle una política estricta sobre cuánto tiempo se conservan los archivos de registro. Alinee esta política con cualquier requisito de cumplimiento y automatice la eliminación de registros que excedan este período. Ejemplo: De conformidad con el RGPD, configure los registros que contienen datos personales para que se eliminen automáticamente después de 30 días, a menos que sea necesario por razones legales o de auditoría. Avanzar hacia mejores prácticas de seguridad La creación de aplicaciones nativas de la nube seguras, resistentes y escalables requiere un nuevo conjunto de mejores prácticas que difieren del desarrollo tradicional de aplicaciones. La clave es integrar estas prácticas, desde la arquitectura de confianza cero hasta el enmascaramiento de datos de registro, en el ciclo de vida del desarrollo lo antes posible, haciendo de la seguridad una parte integral del proceso de diseño e implementación. Al mismo tiempo, es primordial reconocer los desafíos prácticos. de implementaciones en el mundo real. En un entorno de desarrollo acelerado, integrar todas estas prácticas de seguridad simultáneamente puede parecer una tarea hercúlea. Dicho esto, es fundamental que los desarrolladores sean conscientes de los riesgos asociados. En lugar de aspirar a la perfección instantánea, priorice la comprensión de cada práctica y luego decida estratégicamente cuál integrar y cuándo, en función de las necesidades y el contexto de su aplicación específica. A medida que los panoramas de ciberseguridad evolucionan perpetuamente, también deben hacerlo nuestras estrategias para proteger estos sistemas intrincados y distribuidos. Con las prácticas y los conocimientos expuestos en este artículo, estará mejor preparado para trazar un viaje informado y ágil hacia la seguridad de aplicaciones nativas de la nube. Yossi Pik es cofundador y director de tecnología de Backslash Security. —New Tech Forum ofrece un lugar para que los líderes tecnológicos, incluidos proveedores y otros contribuyentes externos, exploren y debatan la tecnología empresarial emergente con una profundidad y amplitud sin precedentes. La selección es subjetiva y se basa en nuestra elección de las tecnologías que creemos que son importantes y de mayor interés para los lectores de InfoWorld. InfoWorld no acepta garantías de marketing para su publicación y se reserva el derecho de editar todo el contenido aportado. Envíe todas sus consultas a doug_dineley@foundryco.com. Copyright © 2023 IDG Communications, Inc.

Source link