{"id":9850,"date":"2024-06-18T11:19:15","date_gmt":"2024-06-18T09:19:15","guid":{"rendered":"https:\/\/geko.cloud\/?p=9850"},"modified":"2024-07-16T10:50:36","modified_gmt":"2024-07-16T08:50:36","slug":"fundamentos-de-ciberseguridad-en-kubernetes","status":"publish","type":"post","link":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/","title":{"rendered":"Fundamentos de ciberseguridad para Kubernetes"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Este art\u00edculo est\u00e1 orientado a personas o equipos responsables de la optimizaci\u00f3n y el gobierno de la arquitectura de <\/span><a href=\"https:\/\/geko.cloud\/es\/servicios-cloud\/kubernetes\/\"><span style=\"font-weight: 400;\">Kubernetes<\/span><\/a><span style=\"font-weight: 400;\">, ya que proporciona una base s\u00f3lida para comprender por qu\u00e9 Kubernetes es el objetivo de los actores de amenazas y c\u00f3mo prevenir estos ataques. Nos centramos en algunas de las debilidades de seguridad m\u00e1s comunes que pueden estar presentes en el entorno Kubernetes y explicamos c\u00f3mo remediarlas de forma inmediata.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2>\u00bfPor qu\u00e9 atacan a Kubernetes?<\/h2>\n<p><span style=\"font-weight: 400;\">Kubernetes es utilizado con frecuencia por los desarrolladores back-end, lo que permite prever que <strong>la persistencia de los ataques basados en esta tecnolog\u00eda continuar\u00e1 a medida que crezca dicho mercado<\/strong>. Los actores de amenazas, ya sean oportunistas o altamente motivados, comparten un inter\u00e9s por la eficiencia y el impacto.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Al poner el foco en tecnolog\u00edas consolidadas o de uso habitual, el coste del ataque y los recursos necesarios se reducen debido a la disponibilidad del objetivo, a los problemas de seguridad conocidos y a las t\u00e9cnicas apropiadas. Independientemente de los recursos, las habilidades o los motivos, para estos actores es simplemente l\u00f3gico desde el punto de vista empresarial adoptar las mismas herramientas que sus v\u00edctimas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>La sofisticaci\u00f3n de la arquitectura de Kubernetes<\/strong> tambi\u00e9n resulta atractiva para estos individuos y grupos porque <strong>ofrece una amplia superficie de ataque con numerosas oportunidades para acceder y exfiltrar datos confidenciales<\/strong>, destruir archivos clave, pivotar a sistemas conectados o realizar criptominer\u00eda. La complejidad inherente de Kubernetes tambi\u00e9n conlleva que los errores sean frecuentes; <\/span><a href=\"https:\/\/www.claranet.com\/es\/blog\/2024-05-09-revisiones-de-configuraci%C3%B3n-cloud-retos-y-soluciones\"><span style=\"font-weight: 400;\">las configuraciones err\u00f3neas<\/span><\/a><span style=\"font-weight: 400;\"> constituyen la principal causa de vulnerabilidades en la nube. Esto, a su vez, fomenta el desarrollo de t\u00e9cnicas de ataque sofisticadas y m\u00e1s dif\u00edciles de detectar.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Estos son algunos ejemplos de vulnerabilidades y ataques que afectaban a tecnolog\u00edas de contenedores y orquestaci\u00f3n, espec\u00edficamente en entornos de Kubernetes:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/latesthackingnews.com\/2022\/07\/18\/authentication-bypass-bug-found-in-aws-iam-authenticator-for-kubernetes\/\"><b>Vulnerabilidad en AWS IAM Authenticator<\/b><\/a><b>:<\/b><span style=\"font-weight: 400;\"> permit\u00eda la escalada de privilegios en cl\u00fasteres de Kubernetes. Esta falla fue remediada antes de que se registraran explotaciones conocidas en ambientes productivos.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.darkreading.com\/cloud\/microsoft-kinsing-malware-kubernetes-containers-postgresql\"><b>Malware Kinsing<\/b><\/a><span style=\"font-weight: 400;\">: explotaba im\u00e1genes de Kubernetes y contenedores de PostgreSQL vulnerables para infiltrarse y comprometer sistemas.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/thehackernews.com\/2023\/03\/new-cryptojacking-operation-targeting.html?m=1\"><b>Operaci\u00f3n de cryptojacking de Dero<\/b><\/a><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">: utilizaba DaemonSets para desplegar pods maliciosos en una campa\u00f1a de miner\u00eda de criptomonedas a gran escala, aprovechando los recursos del sistema infectado.<\/span><\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_9851\" aria-describedby=\"caption-attachment-9851\" style=\"width: 938px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9851 size-full\" src=\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/blog_kubernetes-attack-vectors_fig1.png\" alt=\"\" width=\"938\" height=\"528\" srcset=\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/blog_kubernetes-attack-vectors_fig1.png 938w, https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/blog_kubernetes-attack-vectors_fig1-300x169.png 300w, https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/blog_kubernetes-attack-vectors_fig1-768x432.png 768w\" sizes=\"(max-width: 938px) 100vw, 938px\" \/><figcaption id=\"caption-attachment-9851\" class=\"wp-caption-text\">Fig. 1. Diagrama que muestra varios vectores de ataque a Kubernetes.<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">Ninguno de los <\/span><a href=\"https:\/\/geko.cloud\/es\/seguridad-en-kubernetes-microservicios-macroamenazas\/\"><span style=\"font-weight: 400;\">mecanismos de seguridad integrados en Kubernetes<\/span><\/a><span style=\"font-weight: 400;\"> est\u00e1 activo por defecto, lo que hace que sus cl\u00fasteres, nodos y pods sean vulnerables por dise\u00f1o. Esto implica que la responsabilidad de comprender e implementar adecuadamente los controles de seguridad recaiga en el usuario.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Errores comunes de configuraci\u00f3n en Kubernetes<\/span><\/h2>\n<p>&nbsp;<\/p>\n<h3><strong>Controles de seguridad de pods inseguros<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Los controladores de admisi\u00f3n y las herramientas de gesti\u00f3n de pol\u00edticas pueden configurarse para limitar las capacidades de los contenedores asignadas a los pods dentro de un cl\u00faster. Sin estas restricciones, cualquier usuario con permiso para crear pods podr\u00eda asignarles privilegios no justificados o capacidades excesivas. Este escenario proporcionar\u00eda a un actor de amenazas un vector de escape del contenedor (\u00abcontainer escape\u00bb), permiti\u00e9ndole:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Acceder al nodo subyacente (host)<\/strong> y, en consecuencia, a informaci\u00f3n sensible como secretos, claves o datos de configuraci\u00f3n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Escalar sus privilegios<\/strong> accediendo a las cuentas de servicio de cada pod alojado en el nodo.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Aprovechar la configuraci\u00f3n de Kubelet<\/strong> para hacerse pasar por el propio nodo, lo que com\u00fanmente conduce a un compromiso total del cl\u00faster.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Incluso cuando no es posible una escalada directa de privilegios, los<\/span><i><span style=\"font-weight: 400;\"> threat actors<\/span><\/i><span style=\"font-weight: 400;\"> pueden intentar moverse lateralmente a la red del host, accediendo a puertos privilegiados, procesos o sistemas de archivos, o incluso a pods alojados en otros espacios de nombres, lo cual podr\u00eda desencadenar m\u00e1s ataques.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Soluciones<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Kubernetes admite varios <strong>controladores de admisi\u00f3n de seguridad<\/strong>, como el popular <\/span><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/migrate-from-psp\/\"><span style=\"font-weight: 400;\">PodSecurity Admission Controller<\/span><\/a><span style=\"font-weight: 400;\">, y herramientas de gesti\u00f3n de pol\u00edticas de terceros que pueden validar y controlar aspectos de seguridad en las especificaciones de los pods. Estas herramientas <strong>funcionan interceptando las solicitudes de creaci\u00f3n de recursos enviadas al servidor API,<\/strong> y validando cada una frente a las especificaciones de seguridad predefinidas, como la restricci\u00f3n de acceso a procesos y vol\u00famenes del host. Si una solicitud no cumple con estas especificaciones, se deniega, limitando as\u00ed cualquier intento malicioso.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Cualquiera de estas soluciones puede implantarse y aplicarse en un cl\u00faster para proporcionar la protecci\u00f3n necesaria. Una vez desplegado, el controlador necesitar\u00e1 ser configurado adecuadamente para ser efectivo. La mayor\u00eda de las herramientas de gesti\u00f3n de pol\u00edticas en Kubernetes <strong>incluyen pol\u00edticas integradas que pueden proporcionar un est\u00e1ndar de seguridad de referencia.<\/strong> No obstante, como medida de seguridad adicional, es crucial restringir proactivamente lo siguiente:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Acceso a pods privilegiados.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Uso de capacidades privilegiadas.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Acceso a espacios de nombres y procesos del host.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Acceso a montajes sensibles del sistema de archivos del host.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Acceso ra\u00edz.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Uso de redes y puertos del host.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Acceso de escritura al sistema de archivos.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Procedencia de la imagen, para garantizar que los pods solo se ejecuten con im\u00e1genes que utilizan una base aprobada y que han sido analizadas recientemente en busca de vulnerabilidades.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">En el \u00e1mbito de controladores de admisi\u00f3n y herramientas de pol\u00edticas de seguridad de pods de terceros, hay diversas opciones disponibles. Algunas de las m\u00e1s populares incluyen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Azure Policy para Azure Kubernetes Service (AKS)<\/b><span style=\"font-weight: 400;\">: las pol\u00edticas de Azure pueden activarse para asegurar que se apliquen las pol\u00edticas de seguridad adecuadas a los recursos de Kubernetes. Estas pol\u00edticas utilizan el webhook Gatekeeper para Open Policy Agent (OPA) con el fin de gestionar definiciones de pol\u00edticas individuales y grupos de pol\u00edticas (Initiatives).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>OPA\/Gatekeeper: <\/b><span style=\"font-weight: 400;\">OPA es un controlador de pol\u00edticas de c\u00f3digo abierto para implementaciones en la nube que ofrece controles de seguridad para m\u00faltiples servicios cloud, incluido Kubernetes. Gatekeeper es la implementaci\u00f3n espec\u00edfica para Kubernetes que permite la aplicaci\u00f3n de pol\u00edticas deseadas de manera activa.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Kyverno:<\/b><span style=\"font-weight: 400;\"> es un motor de pol\u00edticas nativo de Kubernetes y de c\u00f3digo abierto que facilita la gesti\u00f3n de pol\u00edticas que se tratan como recursos de Kubernetes. Kyverno puede validar, mutar y generar recursos de Kubernetes y soporta integraci\u00f3n con CI\/CD para probar autom\u00e1ticamente las pol\u00edticas y validar los recursos.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">La supervisi\u00f3n y auditor\u00eda regulares de estos controles son fundamentales para mantener la protecci\u00f3n de los pods a medida que evolucionen el entorno y las tecnolog\u00edas. <strong>Es imprescindible revisar y actualizar peri\u00f3dicamente las pol\u00edticas para incorporar las mejores pr\u00e1cticas<\/strong> y la informaci\u00f3n m\u00e1s reciente sobre vulnerabilidades. Adem\u00e1s, cuando los pods requieran capacidades privilegiadas por razones leg\u00edtimas, es esencial minimizar las excepciones a las pol\u00edticas establecidas.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>M\u00e1s informaci\u00f3n<\/strong><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/migrate-from-psp\/\"><span style=\"font-weight: 400;\">Migraci\u00f3n de seguridad de pods de Kubernetes<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/kubernetes.io\/docs\/concepts\/security\/pod-security-admission\/\"><span style=\"font-weight: 400;\">Admisi\u00f3n de seguridad de pods de Kubernetes<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/kubernetes.io\/docs\/concepts\/security\/pod-security-standards\/\"><span style=\"font-weight: 400;\">Est\u00e1ndares de seguridad de pods de Kubernetes<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/governance\/policy\/samples\/built-in-policies#kubernetes\"><span style=\"font-weight: 400;\">Pol\u00edtica de Microsoft Azure: plantillas para Kubernetes<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/kyverno.io\/policies\/?policytypes=Pod%2520Security\"><span style=\"font-weight: 400;\">Seguridad de pods con Kyverno<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/open-policy-agent.github.io\/gatekeeper-library\/website\/pspintro\/\"><span style=\"font-weight: 400;\">Seguridad de pods con OPA\/Gatekeeper<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">(Nota con respecto a las pol\u00edticas de seguridad de pods de Kubernetes (PSP): las PSP eran el controlador de admisi\u00f3n de seguridad original incorporado en Kubernetes para hacer cumplir las normas de seguridad de los pods. Aunque segu\u00edan siendo completamente funcionales, se dejaron de utilizar a partir de Kubernetes v1.21 y se eliminaron en la versi\u00f3n v1.25. Se recomienda migrar cualquier configuraci\u00f3n existente de PSP a otro controlador compatible).<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Falta de pol\u00edticas de red<\/span><\/h2>\n<p><span style=\"font-weight: 400;\"><strong>Por defecto, Kubernetes establece una red plana en la que se permiten todas las conexiones de red entrantes y salientes.<\/strong> Esto posibilita que los pods se comuniquen entre s\u00ed y con otras entidades dentro del cl\u00faster, as\u00ed como con internet p\u00fablico si existe una ruta externa disponible. En ausencia de pol\u00edticas de red espec\u00edficas, no existen restricciones sobre las comunicaciones dentro del cl\u00faster, lo que permite todo el tr\u00e1fico de red hacia y desde los pods. <strong>Un actor de amenazas podr\u00eda aprovechar esta configuraci\u00f3n para comunicarse con aplicaciones y servicios<\/strong>, y utilizarlos para lanzar ataques contra el cl\u00faster y servicios relacionados. El acceso sin restricciones a internet tambi\u00e9n podr\u00eda permitirles establecer canales de comando y control (C2), utilizando, por ejemplo, <\/span><a href=\"https:\/\/attack.mitre.org\/techniques\/T1102\/\"><span style=\"font-weight: 400;\">t\u00e9cnicas de servicios web<\/span><\/a><span style=\"font-weight: 400;\"> para filtrar datos, mantener la persistencia e instalar software malicioso.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">En entornos de cloud p\u00fablica, las comunicaciones de red sin restricciones tambi\u00e9n pueden dar a los pods acceso a recursos dentro de la red virtual de la nube. Esto puede facilitar oportunidades de movimiento lateral y acceso a datos sensibles, incluyendo los servicios de metadatos de instancia.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Soluciones<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Para restringir las comunicaciones de red, las pol\u00edticas de red de Kubernetes pueden aplicarse a trav\u00e9s de una interfaz de red de contenedores (CNI) compatible. Las pol\u00edticas de red de Kubernetes son una implementaci\u00f3n centrada en la aplicaci\u00f3n que permite a los desarrolladores controlar el tr\u00e1fico a nivel de IP\/puerto por espacio de nombres. <strong>Si no se aplica ninguna\u00a0 pol\u00edtica de red de Kubernetes dentro de un espacio de nombres, se permite todo el tr\u00e1fico de entrada y salida.<\/strong><\/span><\/p>\n<p>Es recomendable crear y aplicar pol\u00edticas de red de Kubernetes para todos los espacios de nombres dentro del cl\u00faster. Una medida muy segura podr\u00eda ser establecer una regla predeterminada que deniegue todas las comunicaciones de red de entrada y salida dentro de cada espacio de nombres. Posteriormente, se pueden aplicar conjuntos de reglas adicionales para permitir el tr\u00e1fico leg\u00edtimo necesario, dependiendo del caso de uso de cada pod y aplicaci\u00f3n.<\/p>\n<p><span style=\"font-weight: 400;\">Las pol\u00edticas de red de Kubernetes se pueden configurar para restringir el tr\u00e1fico de red bas\u00e1ndose en las siguientes designaciones:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pods que est\u00e1n permitidos.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Espacios de nombres permitidos.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Bloques IP (excepci\u00f3n: el tr\u00e1fico hacia y desde el nodo donde se ejecuta un pod siempre est\u00e1 permitido, independientemente de la direcci\u00f3n IP).<\/span><\/span><\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\"><strong>Una vez que se aplica una pol\u00edtica de red con un selector coincidente, los pods correspondientes rechazar\u00e1n todo el tr\u00e1fico que no est\u00e9 expl\u00edcitamente permitido.<\/strong> Dado que el orden de las pol\u00edticas no es espec\u00edfico, todas las pol\u00edticas aplicadas se eval\u00faan conjuntamente, y el tr\u00e1fico solo se permite si existe una regla que lo autorice. Para concretar m\u00e1s: para que se establezca una conexi\u00f3n entre un pod de origen y uno de destino, tanto la pol\u00edtica de salida del pod de origen como la pol\u00edtica de entrada del pod de destino deben permitir la conexi\u00f3n. Si alguna de las pol\u00edticas, ya sea de salida o de entrada, no permite la conexi\u00f3n, entonces esta no se establecer\u00e1.<\/span><\/p>\n<h3><\/h3>\n<p>&nbsp;<\/p>\n<h3><strong>M\u00e1s informaci\u00f3n<\/strong><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/network-policies\/\"><span style=\"font-weight: 400;\">Kubernetes: pol\u00edticas de red<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Gesti\u00f3n insegura de secretos<\/span><\/h2>\n<p><span style=\"font-weight: 400;\"><strong>Kubernetes requiere una distribuci\u00f3n segura de secretos <\/strong>para permitir la comunicaci\u00f3n de las aplicaciones con otros servicios; por ejemplo, una aplicaci\u00f3n que solicita credenciales para autenticarse en una base de datos backend y ejecutar consultas. A menudo, este aspecto de seguridad se pasa por alto, ya sea por usar sistemas inadecuados o por un manejo incorrecto de los datos. <strong>Los secretos pueden quedar expuestos de m\u00faltiples maneras<\/strong>, tales como:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Directamente dentro de un contenedor:<\/strong> cualquier persona con acceso al contenedor puede recuperar la informaci\u00f3n usando el comando &#8216;env&#8217;.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>En PodSpecs<\/strong>: cualquier usuario con permiso para obtener informaci\u00f3n sobre Pods\/ReplicaSets\/Deployments puede ver los pares de variables y valores dentro del PodSpec.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>En nodos<\/strong>: los usuarios con acceso al nodo anfitri\u00f3n pueden inspeccionar los contenedores para extraer las variables de entorno.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>En soluciones de registro<\/strong>: por ejemplo, en Azure Monitor, las variables de entorno de los contenedores se pueden acceder a trav\u00e9s de la funci\u00f3n \u00abInsights\u00bb.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dentro del c\u00f3digo de la aplicaci\u00f3n, el c\u00f3digo fuente, etc.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><strong>Soluciones<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Como primera medida, <strong>los secretos deben eliminarse de todas las fuentes de datos en texto plano,<\/strong> como los PodSpecs y los ConfigMaps. Se debe implementar una soluci\u00f3n dedicada a la gesti\u00f3n de secretos, <strong>y los valores de los secretos deben ser rotados regularmente<\/strong> para reducir la posibilidad de que una clave comprometida sea explotada. Esto ayudar\u00e1 a fortalecer la seguridad y reducir las vulnerabilidades en las operaciones de Kubernetes.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Secretos de Kubernetes<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Los secretos de Kubernetes son un recurso integrado que ofrece un m\u00e9todo eficaz para almacenar informaci\u00f3n sensible, separada de los pods y aplicaciones que dependen de ellos, lo que ayuda a reducir el riesgo de exposici\u00f3n de dicha informaci\u00f3n a trav\u00e9s del flujo de trabajo de la aplicaci\u00f3n.<strong> Para mejorar la protecci\u00f3n de los secretos, se pueden utilizar configuraciones de control de acceso basado en roles (RBAC)<\/strong> que ofrecen un control de acceso m\u00e1s detallado. Sin embargo, es importante destacar que ni el cifrado ni la rotaci\u00f3n de claves son caracter\u00edsticas predeterminadas en los secretos de Kubernetes, por lo que es crucial implementar ambas para asegurar una protecci\u00f3n adecuada.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Una limitaci\u00f3n de los secretos de Kubernetes es que no permiten restringir el acceso a secretos individuales mediante asignaciones RBAC detalladas, de modo que cualquier persona con permiso para acceder a secretos puede hacerlo en todo el espacio de nombres o el cl\u00faster, seg\u00fan los permisos asignados. <strong>El acceso a secretos es un permiso de alto riesgo que frecuentemente conduce a movimiento lateral y escalada de privilegios,<\/strong> as\u00ed como a la exposici\u00f3n de informaci\u00f3n altamente sensible. En situaciones donde se requieren controles m\u00e1s detallados, es recomendable considerar el uso de una herramienta de gesti\u00f3n de secretos dedicada de terceros.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Soluciones de gesti\u00f3n de secretos de terceros<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Existen m\u00faltiples soluciones de gesti\u00f3n de secretos de terceros disponibles que ofrecen caracter\u00edsticas de seguridad adicionales. Las opciones comunes incluyen:<\/span><\/p>\n<ul>\n<li><strong>Nube nativa:<\/strong><span style=\"font-weight: 400;\"> cada plataforma proporciona su propia soluci\u00f3n dedicada de gesti\u00f3n de secretos, como Azure Key Vault y AWS Secrets Manager. Estas soluciones almacenan y cifran los secretos dentro del entorno nativo de la nube, facilitando tambi\u00e9n la rotaci\u00f3n autom\u00e1tica de los valores secretos, la gesti\u00f3n del acceso a los secretos mediante pol\u00edticas IAM y la posibilidad de realizar auditor\u00edas centralizadas.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Herramientas de c\u00f3digo abierto: <\/b><span style=\"font-weight: 400;\">en el ecosistema de Kubernetes se pueden implementar diversas herramientas dedicadas a la gesti\u00f3n de secretos que ofrecen funciones avanzadas como secretos din\u00e1micos, espacios de nombres, arrendamientos y revocaci\u00f3n de datos secretos. Entre los productos m\u00e1s utilizados se incluyen:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Hashicorp Vault.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">CyberArk Conjur.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Lyft Confidant.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">AquaSec.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Herramientas como Hashicorp Vault pueden implementarse como un sidecar, un contenedor independiente que se ubica y ejecuta junto al contenedor de aplicaci\u00f3n principal dentro del mismo pod de Kubernetes. <strong>El contenedor sidecar es responsable de gestionar los secretos <\/strong>y transmitirlos de forma segura al contenedor de la aplicaci\u00f3n principal seg\u00fan sea necesario. Esto mejora la seguridad de los secretos al separar la gesti\u00f3n de secretos de la aplicaci\u00f3n principal, reduciendo as\u00ed el riesgo de que los secretos queden expuestos o comprometidos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Independientemente de la soluci\u00f3n de gesti\u00f3n de secretos que se elija,<strong> los siguientes controles de seguridad son necesarios<\/strong> para proporcionar una protecci\u00f3n adecuada y confiable:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Aplicar una pol\u00edtica de \u00abnecesidad de conocer\u00bb, determinando exactamente qu\u00e9 aplicaciones contenedoras necesitan acceder a cada secreto individual, con el fin de minimizar el riesgo de exposici\u00f3n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Asegurar que los controles de acceso basados en roles (RBAC) sean robustos, de modo que solo las entidades restringidas y preaprobadas tengan autorizaci\u00f3n para acceder a los secretos.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cuando sea posible, aplicar la autenticaci\u00f3n multifactor (MFA) y la gesti\u00f3n de credenciales justo a tiempo.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Registrar y auditar peri\u00f3dicamente el acceso a los secretos, eliminando el acceso a las entidades si ya no son necesarias.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Rotar y actualizar los secretos regularmente para reducir la ventana de oportunidad para que las credenciales comprometidas sean utilizadas de forma efectiva.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Uso del espacio de nombres predeterminado<\/span><\/h2>\n<p>Dentro de Kubernetes, los espacios de nombres son un mecanismo de seguridad que permite implementar l\u00edmites de seguridad y aislar recursos dentro de un mismo cl\u00faster. <strong>La mayor\u00eda de las instancias de Kubernetes vienen con varios espacios de nombres predeterminados para desplegar recursos<\/strong>, incluidos \u201ckube-system\u201d (que aloja componentes del plano de control de Kubernetes), \u201ckube-public\u201d (para recursos p\u00fablicos, cuyo uso generalmente se debe evitar) y \u201cdefault\u201d. <strong>Si no se especifica ning\u00fan espacio de nombres al programar recursos, Kubernetes utiliza el espacio de nombres \u201cdefault\u201d por defecto<\/strong>, lo que puede introducir riesgos debido a requisitos de seguridad contradictorios y a la falta de segregaci\u00f3n efectiva. Si una aplicaci\u00f3n o contenedor dentro del espacio de nombres \u201cdefault\u201d es comprometido, el actor de amenazas podr\u00eda ser capaz de acceder a todos los dem\u00e1s recursos dentro de ese mismo espacio de nombres.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Soluciones<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Para minimizar el impacto de las aplicaciones comprometidas y aprovechar al mismo tiempo controles de seguridad m\u00e1s detallados, se pueden crear espacios de nombres personalizados para segmentar los servicios en categor\u00edas aisladas seg\u00fan su caso de uso y requisitos de seguridad. <strong>El uso de espacios de nombres en Kubernetes, junto con un RBAC robusto, permite establecer l\u00edmites de seguridad entre aplicaciones y equipos, apoyando una arquitectura multi-tenant.<\/strong> Esto posibilita que cada usuario, equipo o aplicaci\u00f3n opere dentro de su propio espacio de nombres, aislado de los dem\u00e1s usuarios del cl\u00faster y funcione como si fuera la \u00fanica entidad en \u00e9l.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Como mejor pr\u00e1ctica de seguridad de Kubernetes, el espacio de nombres predeterminado no debe utilizarse para alojar servicios y aplicaciones de contenedores.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Se recomienda implementar espacios de nombres personalizados para cada servicio de aplicaci\u00f3n y\/o equipo. Luego, los administradores deben aplicar pol\u00edticas RBAC detalladas, utilizando roles y vinculaciones de roles que sigan el principio de m\u00ednimo privilegio (PoLP) para asegurar que las cuentas de servicio y los usuarios solo tengan acceso a los recursos dentro de su propio espacio de nombres.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Adem\u00e1s, deben implementarse otros controles de seguridad<\/strong> para aislar el acceso a espacios de nombres individuales, incluyendo:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Controles de seguridad de pods:<\/strong> mediante el uso del controlador de admisi\u00f3n de seguridad de pods (o plugins similares de terceros), se puede restringir el uso de normas de seguridad de pods a espacios de nombres individuales. Esto deber\u00eda utilizarse para limitar aspectos sensibles de las especificaciones de los pods, bas\u00e1ndose en los requisitos de seguridad de las implantaciones en cada espacio de nombres.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Pol\u00edticas de red:<\/strong> las pol\u00edticas de red deben limitar las comunicaciones a nivel de red \u00fanicamente a los recursos dentro del espacio de nombres correspondiente. Cuando sea necesario acceder a otros espacios de nombres, deben implementarse asignaciones de red de m\u00ednimo privilegio para reducir la posibilidad de movimiento lateral entre espacios de nombres.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Restricciones de nodo:<\/strong> pueden aplicarse <\/span><i><span style=\"font-weight: 400;\">taints<\/span><\/i><span style=\"font-weight: 400;\"> y <\/span><i><span style=\"font-weight: 400;\">tolerations<\/span><\/i><span style=\"font-weight: 400;\"> a nivel de espacio de nombres para limitar en qu\u00e9 nodos pueden colocarse los contenedores. Esto es cada vez m\u00e1s crucial en cl\u00fasteres Kubernetes autoalojados para evitar que las aplicaciones se programen en nodos maestros que contengan recursos sensibles del plano de control. Los <\/span><i><span style=\"font-weight: 400;\">taints<\/span><\/i><span style=\"font-weight: 400;\"> y <\/span><i><span style=\"font-weight: 400;\">tolerations<\/span><\/i><span style=\"font-weight: 400;\"> pueden implementarse utilizando controladores de admisi\u00f3n, como PodNodeSelector o pol\u00edticas personalizadas proporcionadas por plugins de pol\u00edticas de terceros.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Cuotas de recursos:<\/strong>\u00a0imponen restricciones para limitar el consumo de recursos por espacio de nombres y pueden prevenir que los equipos de un espacio de nombres excedan los l\u00edmites de recursos como CPU y memoria. El controlador de admisi\u00f3n LimitRanger o pol\u00edticas personalizadas tambi\u00e9n pueden implementarse para aplicar valores predeterminados a los pods que no env\u00eden requisitos de recursos.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><strong>M\u00e1s informaci\u00f3n<\/strong><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Kubernetes_Security_Cheat_Sheet.html#use-kubernetes-namespaces-to-properly-isolate-your-kubernetes-resources\"><span style=\"font-weight: 400;\">CheatSheet de OWASP: utiliza los espacios de nombres de Kubernetes para aislar adecuadamente tus recursos de Kubernetes<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/kubernetes.io\/blog\/2016\/08\/security-best-practices-kubernetes-deployment\/\"><span style=\"font-weight: 400;\">Pr\u00e1ctica recomendada de seguridad en Kubernetes.<\/span><\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Uso de cuentas de servicio predeterminadas<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Las cuentas de servicio de Kubernetes proporcionan identidades para los procesos que se ejecutan en un pod. <strong>Los ataques que explotan las cuentas de servicio predeterminadas se benefician de la manera en que estas se asignan dentro de un cl\u00faster.<\/strong> A continuaci\u00f3n se describe este proceso de asignaci\u00f3n:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cuando se crea un espacio de nombres, autom\u00e1ticamente se genera y asigna una cuenta de servicio predeterminada a ese espacio de nombres.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Esta cuenta de servicio predeterminada se asignar\u00e1 a todos los pods dentro del espacio de nombres, a menos que se especifique expl\u00edcitamente una cuenta de servicio alternativa.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cuando se asigna una cuenta de servicio a un pod, el token de la cuenta de servicio (un JSON Web Token (JWT) identificable) se monta autom\u00e1ticamente en el contenedor del pod para permitir la autenticaci\u00f3n ante la API de Kubernetes y otros servicios.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Inicialmente, la cuenta de servicio por defecto tiene permisos m\u00ednimos. Sin embargo, <strong>si un pod que utiliza esta cuenta solicita privilegios adicionales, estos se asignar\u00e1n a todos los pods que utilicen la misma cuenta de servicio predeterminada<\/strong>, lo que podr\u00eda resultar en varios pods con privilegios excesivamente altos. Para un actor de amenazas, esto representa una oportunidad de comprometer tokens de cuentas con privilegios elevados, escapar del cl\u00faster, moverse lateralmente y realizar acciones en el propio host.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Soluciones<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Es posible dejar de utilizar la cuenta de servicio predeterminada para los pods dentro de un cl\u00faster siguiendo estos pasos:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Evaluar la sensibilidad de cada carga de trabajo<\/strong>: identifica qu\u00e9 cargas de trabajo contienen datos sensibles o realizan operaciones sensibles y clasif\u00edcalas en consecuencia.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Crear cuentas de servicio personalizadas<\/strong>: para cada carga de trabajo, crea una cuenta de servicio \u00fanica y utiliza el control de acceso basado en roles (RBAC) para asignar los permisos necesarios para acceder a los recursos requeridos.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Asignar cuentas de servicio a los pods<\/strong>: asigna la cuenta de servicio adecuada a cada pod y apl\u00edcala mediante controladores de admisi\u00f3n cuando sea pertinente.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Implementar controles de acceso<\/strong>: utiliza RBAC para implementar configuraciones basadas en el principio de m\u00ednimo privilegio (PoLP) dise\u00f1adas para limitar el acceso a cada pod y sus tokens.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Supervisar y revisar<\/strong>: monitorea y revisa regularmente las cuentas de servicio y sus permisos asociados para asegurarte de que contin\u00faan siendo adecuados para las cargas de trabajo a las que est\u00e1n asignados.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Eliminar los tokens de servicio innecesarios<\/strong>: si una aplicaci\u00f3n no requiere acceso a la API de Kubernetes, config\u00farala para evitar que la cuenta de servicio se monte en sus respectivos pods, a\u00f1adiendo una medida de protecci\u00f3n adicional.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">\u00bfEres vulnerable a ataques en Kubernetes?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">La manera m\u00e1s efectiva de reducir el riesgo de ciberataques basados en Kubernetes es configurar adecuadamente el plano de control. <\/span><a href=\"https:\/\/www.gartner.com\/smarterwithgartner\/is-the-cloud-secure\"><span style=\"font-weight: 400;\">Algunos investigadores<\/span><\/a><span style=\"font-weight: 400;\"> anticipan que, <strong>para 2025, la mayor\u00eda de los fallos de seguridad en la nube provendr\u00e1n de errores de configuraci\u00f3n evitables<\/strong>. Por un lado, la dependencia de los administradores y usuarios en aplicar las mejores pr\u00e1cticas de seguridad en Kubernetes supone un gran margen para el error humano. Por otro lado, con una planificaci\u00f3n y proceso adecuados, corregir errores de configuraci\u00f3n puede tener costes m\u00ednimos y, al hacerlo uno mismo, se mantiene la autonom\u00eda sobre los entornos que se manejan a diario.\u00a0<\/span><\/p>\n<p><strong>Las evaluaciones de seguridad de Kubernetes<\/strong><span style=\"font-weight: 400;\"><strong> son un tipo de penetration testing<\/strong> que identifica vulnerabilidades en un entorno de Kubernetes simulando diferentes ataques contra \u00e9l. El objetivo de estas evaluaciones es poner a prueba la resiliencia del entorno mediante la identificaci\u00f3n de debilidades que podr\u00edan ser explotadas por un actor de amenazas. Durante la evaluaci\u00f3n, los consultores simulan varios escenarios de ataque que permiten a un <\/span><i><span style=\"font-weight: 400;\">threat actor<\/span><\/i><span style=\"font-weight: 400;\"> apuntar a configuraciones err\u00f3neas para obtener acceso no autorizado al cl\u00faster de Kubernetes, contenedores o aplicaciones y determinar el impacto global de tales riesgos. Esto puede incluir pruebas para detectar vulnerabilidades en la infraestructura de Kubernetes, errores de configuraci\u00f3n en los recursos y despliegues de Kubernetes, y vulnerabilidades en las im\u00e1genes de los contenedores o en el c\u00f3digo de las aplicaciones.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El objetivo de cualquier esfuerzo de seguridad no debe ser eliminar toda posibilidad de ataque o llegar a ser \u00abtotalmente seguro\u00bb. Con tecnolog\u00edas de r\u00e1pida evoluci\u00f3n como Kubernetes, esto es simplemente imposible. En su lugar, es mejor centrarse en la reducci\u00f3n del riesgo en los escenarios de mayor probabilidad e impacto. Aqu\u00ed es donde puede ser muy \u00fatil una evaluaci\u00f3n de seguridad de Kubernetes bien planificada.<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">Si tienes alguna pregunta o necesitas m\u00e1s detalles, no dudes en <\/span><a href=\"https:\/\/geko.cloud\/es\/contacto\/\"><span style=\"font-weight: 400;\">contactar con nosotros<\/span><\/a><span style=\"font-weight: 400;\"> o dejar un comentario.<\/span><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este art\u00edculo est\u00e1 orientado a personas o equipos responsables de la optimizaci\u00f3n y el gobierno de la arquitectura de Kubernetes, ya que proporciona una base s\u00f3lida para comprender por qu\u00e9 Kubernetes es el objetivo de los actores de amenazas y c\u00f3mo prevenir estos ataques. Nos centramos en algunas de las debilidades de seguridad m\u00e1s comunes [&hellip;]<\/p>\n","protected":false},"author":38,"featured_media":9862,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[139],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Fundamentos de ciberseguridad para Kubernetes - Geko Cloud<\/title>\n<meta name=\"description\" content=\"Explicamos c\u00f3mo remediar algunas de las debilidades de seguridad m\u00e1s comunes que pueden estar presentes en el entorno Kubernetes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fundamentos de ciberseguridad para Kubernetes - Geko Cloud\" \/>\n<meta property=\"og:description\" content=\"En Geko Cloud nos enorgullece mantenernos a la vanguardia de las tecnolog\u00edas emergentes y las mejores pr\u00e1cticas de la industria.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Geko Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-18T09:19:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-16T08:50:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/Cards-de-LinkedIn-Geko-Cloud.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Geko Cloud\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Fundamentos de ciberseguridad para Kubernetes - Geko Cloud\" \/>\n<meta name=\"twitter:description\" content=\"En Geko Cloud nos enorgullece mantenernos a la vanguardia de las tecnolog\u00edas emergentes y las mejores pr\u00e1cticas de la industria.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/04\/Co\u0301mo-cumplir.png\" \/>\n<meta name=\"twitter:creator\" content=\"@geko_cloud\" \/>\n<meta name=\"twitter:site\" content=\"@geko_cloud\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/\"},\"author\":{\"name\":\"Geko Cloud\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6\"},\"headline\":\"Fundamentos de ciberseguridad para Kubernetes\",\"datePublished\":\"2024-06-18T09:19:15+00:00\",\"dateModified\":\"2024-07-16T08:50:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/\"},\"wordCount\":4202,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/anatolii-nesterov-IQW93m8wuIg-unsplash-scaled.jpg\",\"articleSection\":[\"Ciberseguridad\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/\",\"url\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/\",\"name\":\"Fundamentos de ciberseguridad para Kubernetes - Geko Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/anatolii-nesterov-IQW93m8wuIg-unsplash-scaled.jpg\",\"datePublished\":\"2024-06-18T09:19:15+00:00\",\"dateModified\":\"2024-07-16T08:50:36+00:00\",\"description\":\"Explicamos c\u00f3mo remediar algunas de las debilidades de seguridad m\u00e1s comunes que pueden estar presentes en el entorno Kubernetes.\",\"breadcrumb\":{\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#primaryimage\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/anatolii-nesterov-IQW93m8wuIg-unsplash-scaled.jpg\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/anatolii-nesterov-IQW93m8wuIg-unsplash-scaled.jpg\",\"width\":2560,\"height\":1707,\"caption\":\"Foto de Anatolii Nesterov en Unsplash\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/geko.cloud\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fundamentos de ciberseguridad para Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/geko.cloud\/es\/#website\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"name\":\"Geko Cloud\",\"description\":\"Servicios de consultor\u00eda cloud y devops\",\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/geko.cloud\/es\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/geko.cloud\/es\/#organization\",\"name\":\"Geko Cloud\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"width\":1650,\"height\":809,\"caption\":\"Geko Cloud\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/geko_cloud\",\"https:\/\/www.instagram.com\/gekocloud\/\",\"https:\/\/www.linkedin.com\/company\/gekocloud\",\"https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6\",\"name\":\"Geko Cloud\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g\",\"caption\":\"Geko Cloud\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Fundamentos de ciberseguridad para Kubernetes - Geko Cloud","description":"Explicamos c\u00f3mo remediar algunas de las debilidades de seguridad m\u00e1s comunes que pueden estar presentes en el entorno Kubernetes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/","og_locale":"es_ES","og_type":"article","og_title":"Fundamentos de ciberseguridad para Kubernetes - Geko Cloud","og_description":"En Geko Cloud nos enorgullece mantenernos a la vanguardia de las tecnolog\u00edas emergentes y las mejores pr\u00e1cticas de la industria.","og_url":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/","og_site_name":"Geko Cloud","article_published_time":"2024-06-18T09:19:15+00:00","article_modified_time":"2024-07-16T08:50:36+00:00","og_image":[{"width":1200,"height":627,"url":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/Cards-de-LinkedIn-Geko-Cloud.png","type":"image\/png"}],"author":"Geko Cloud","twitter_card":"summary_large_image","twitter_title":"Fundamentos de ciberseguridad para Kubernetes - Geko Cloud","twitter_description":"En Geko Cloud nos enorgullece mantenernos a la vanguardia de las tecnolog\u00edas emergentes y las mejores pr\u00e1cticas de la industria.","twitter_image":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/04\/Co\u0301mo-cumplir.png","twitter_creator":"@geko_cloud","twitter_site":"@geko_cloud","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#article","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/"},"author":{"name":"Geko Cloud","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6"},"headline":"Fundamentos de ciberseguridad para Kubernetes","datePublished":"2024-06-18T09:19:15+00:00","dateModified":"2024-07-16T08:50:36+00:00","mainEntityOfPage":{"@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/"},"wordCount":4202,"commentCount":0,"publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"image":{"@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/anatolii-nesterov-IQW93m8wuIg-unsplash-scaled.jpg","articleSection":["Ciberseguridad"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/","url":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/","name":"Fundamentos de ciberseguridad para Kubernetes - Geko Cloud","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/anatolii-nesterov-IQW93m8wuIg-unsplash-scaled.jpg","datePublished":"2024-06-18T09:19:15+00:00","dateModified":"2024-07-16T08:50:36+00:00","description":"Explicamos c\u00f3mo remediar algunas de las debilidades de seguridad m\u00e1s comunes que pueden estar presentes en el entorno Kubernetes.","breadcrumb":{"@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#primaryimage","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/anatolii-nesterov-IQW93m8wuIg-unsplash-scaled.jpg","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/06\/anatolii-nesterov-IQW93m8wuIg-unsplash-scaled.jpg","width":2560,"height":1707,"caption":"Foto de Anatolii Nesterov en Unsplash"},{"@type":"BreadcrumbList","@id":"https:\/\/geko.cloud\/es\/fundamentos-de-ciberseguridad-en-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/geko.cloud\/es\/"},{"@type":"ListItem","position":2,"name":"Fundamentos de ciberseguridad para Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/geko.cloud\/es\/#website","url":"https:\/\/geko.cloud\/es\/","name":"Geko Cloud","description":"Servicios de consultor\u00eda cloud y devops","publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/geko.cloud\/es\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/geko.cloud\/es\/#organization","name":"Geko Cloud","url":"https:\/\/geko.cloud\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","width":1650,"height":809,"caption":"Geko Cloud"},"image":{"@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/geko_cloud","https:\/\/www.instagram.com\/gekocloud\/","https:\/\/www.linkedin.com\/company\/gekocloud","https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ"]},{"@type":"Person","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6","name":"Geko Cloud","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g","caption":"Geko Cloud"}}]}},"_links":{"self":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/9850"}],"collection":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/users\/38"}],"replies":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/comments?post=9850"}],"version-history":[{"count":16,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/9850\/revisions"}],"predecessor-version":[{"id":9875,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/9850\/revisions\/9875"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/media\/9862"}],"wp:attachment":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/media?parent=9850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/categories?post=9850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/tags?post=9850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}