{"id":91364,"date":"2020-08-12T07:42:33","date_gmt":"2020-08-12T05:42:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes"},"modified":"2020-08-12T07:42:33","modified_gmt":"2020-08-12T05:42:33","slug":"izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","title":{"rendered":"Explorando la (ausente) seguridad de las instalaciones t\u00edpicas de Docker y Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Explorando la (ausente) seguridad de las instalaciones t\u00edpicas de Docker y Kubernetes\" src=\"\/wp-content\/uploads\/2020\/08\/805ed8f509210fcfc4d912092cc540d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nHe trabajado en IT durante m\u00e1s de 20 a\u00f1os, pero nunca me hab\u00eda decidido a abordar los contenedores. En teor\u00eda entend\u00eda c\u00f3mo funcionaban y c\u00f3mo se organizaban. Pero como nunca hab\u00eda trabajado con ellos en la pr\u00e1ctica, no estaba seguro de c\u00f3mo funcionaban realmente sus engranajes internos. <\/p>\n<p><\/p>\n<p>Adem\u00e1s, no ten\u00eda idea de c\u00f3mo manejaban la seguridad. Pero de nuevo, la teor\u00eda suena bien, y la antigua canci\u00f3n \u00aba medida que aumenta la seguridad, disminuye la facilidad de uso\u00bb se me hab\u00eda quedado grabada en la cabeza. As\u00ed que pens\u00e9 que dado que es tan f\u00e1cil trabajar con contenedores, la seguridad deb\u00eda ser deficiente. Result\u00f3 que ten\u00eda raz\u00f3n.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Para un inicio r\u00e1pido, me inscrib\u00ed en un curso <noindex><a rel=\"nofollow\" href=\"https:\/\/www.neowin.net\/news\/tags\/blackhat\">Black Hat<\/a><\/noindex> 2020 titulado \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/www.blackhat.com\/us-20\/training\/schedule\/listing.html#from-zero-to-hero---pentesting-and-securing-docker-swarm--kubernetes-environments-19045\">De la pobreza a la riqueza: penetraci\u00f3n y protecci\u00f3n de entornos Docker Swarm y Kubernetes<\/a><\/noindex>\u00bb. <\/p>\n<p><\/p>\n<p>El curso, impartido por Sheila A. Berta y Sol Ozzan, comenz\u00f3 inmediatamente describiendo c\u00f3mo funcionan los contenedores Docker y qu\u00e9 recorrido siguen al desplegarse en Kubernetes. Fue una clase completamente pr\u00e1ctica: los estudiantes deb\u00edan instalar Docker y microk8s en sus m\u00e1quinas antes de las clases, una excelente manera de ver la interacci\u00f3n de las herramientas entre s\u00ed, identificar vulnerabilidades y, lo m\u00e1s importante, probar c\u00f3mo bloquearlas.<\/p>\n<p><\/p>\n<p>Desafortunadamente, aunque el curso promet\u00eda que uno se convertir\u00eda en un \u00abpr\u00edncipe\u00bb en dos d\u00edas, sent\u00eda que esto solo era el principio y que a\u00fan me quedaba mucho por aprender.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Explorando la (ausente) seguridad de las instalaciones t\u00edpicas de Docker y Kubernetes\" src=\"\/wp-content\/uploads\/2020\/08\/e7afd728bb757ac1e0c14d06c5e03806.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Antes de sumergirme en mis observaciones, es importante explicar qu\u00e9 es un contenedor. En el mundo del desarrollo, es normal que el c\u00f3digo escrito en su m\u00e1quina personal funcione a la perfecci\u00f3n, pero al intentar ejecutarlo en alg\u00fan servidor, simplemente no funcione. Los contenedores intentan superar este problema proporcionando m\u00e1quinas aut\u00f3nomas que puede transferir f\u00e1cilmente de un servidor a otro, sabiendo que siempre funcionar\u00e1n. Como su nombre indica, contienen el c\u00f3digo, las bibliotecas y otro software necesario para su funcionamiento. Kubernetes, por otro lado, es <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/what-is-kubernetes\/\">plataforma de orquestaci\u00f3n para contenedores<\/a><\/noindex>. En principio, con ello se puede gestionar sin problemas cientos o miles de diferentes contenedores.<\/p>\n<p><\/p>\n<p>A continuaci\u00f3n, se presentan algunas de mis conclusiones desde la perspectiva del equipo rojo y del equipo azul.<\/p>\n<p><\/p>\n<h2 id=\"krasnaya-komanda\">Equipo rojo<\/h2>\n<p><\/p>\n<p><strong>La mayor\u00eda del contenido de los contenedores se ejecuta bajo root<\/strong>: esto significa que si comprometes el contenedor, obtendr\u00e1s acceso completo al contenedor. Esto facilita considerablemente los pasos posteriores.<\/p>\n<p><\/p>\n<p><strong>Montar docker.sock dentro del contenedor es peligroso<\/strong>: si obtienes root dentro del contenedor y tambi\u00e9n instalas Docker dentro del contenedor que tiene el socket Docker (\\\/var\\\/run\\\/docker.sock), tienes la posibilidad de explorar todo un cl\u00faster, incluyendo el acceso a cualquier otro contenedor. Este acceso no se puede prevenir ni con aislamiento de red ni de ninguna otra forma.<\/p>\n<p><\/p>\n<p><strong>Las variables de entorno a menudo contienen datos secretos<\/strong>: en la mayor\u00eda de los casos, las personas env\u00edan contrase\u00f1as al contenedor utilizando variables de entorno comunes. As\u00ed que si tienes acceso a la cuenta, puedes ver estas variables de entorno con el fin de ampliar posteriormente tus privilegios.<\/p>\n<p><\/p>\n<p><strong>La API de Docker puede proporcionar mucha informaci\u00f3n<\/strong>: la API de Docker, cuando se configura por defecto, funciona sin autorizaci\u00f3n y puede proporcionar mucha informaci\u00f3n. Usando Shodan, puedes encontrar f\u00e1cilmente una lista de puertos abiertos, luego obtener informaci\u00f3n detallada sobre el cl\u00faster y proceder a su captura completa. TrendMicro escribi\u00f3 sobre esto <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.trendmicro.com\/trendlabs-security-intelligence\/exposed-docker-control-api-and-community-image-abused-to-deliver-cryptocurrency-mining-malware\/\">un art\u00edculo muy interesante<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"sinyaya-komanda\">Equipo azul<\/h2>\n<p><\/p>\n<p><strong>No ejecutes contenido de contenedores bajo root<\/strong>: aunque es m\u00e1s f\u00e1cil ejecutar como root, no deber\u00edas hacerlo. En su lugar, ejecuta las aplicaciones con privilegios reducidos, utilizando uid o con el par\u00e1metro \u2014user al trabajar con CLI, o especificando USER en el Dockerfile.<\/p>\n<p><\/p>\n<p><strong>No permitas la instalaci\u00f3n de programas en los contenedores<\/strong>: casi cada ataque comienza con la instalaci\u00f3n de algo. Desde nmap hasta ifconfig y el propio Docker (dentro del contenedor), instalar algo en el contenedor era una pr\u00e1ctica com\u00fan. Por esta misma raz\u00f3n, siempre debes bloquear todos los puertos no utilizados. Esto tambi\u00e9n ayuda a prevenir la transmisi\u00f3n de comandos de control durante la infecci\u00f3n de tu m\u00e1quina. Adem\u00e1s de prevenir la instalaci\u00f3n de programas, es fundamental asegurarse de que en el contenedor solo haya un n\u00famero m\u00ednimo de aplicaciones necesarias para realizar la tarea.<\/p>\n<p><\/p>\n<p><strong>Protege docker.sock<\/strong>: debes protegerlo, ya que a trav\u00e9s de este socket se maneja la comunicaci\u00f3n entre el contenedor y el cl\u00faster. Dado que no quiero entrar en detalles en este art\u00edculo, lee <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/security\/https\/\">una nota de Docker<\/a><\/noindex>, qu\u00e9 puede suceder y c\u00f3mo bloquear todo esto.<\/p>\n<p><\/p>\n<p><strong>Utiliza secretos de Docker en lugar de variables de entorno<\/strong>: Los secretos son <noindex><a rel=\"nofollow\" href=\"https:\/\/www.docker.com\/blog\/docker-secrets-management\/\">aproximadamente desde 2017<\/a><\/noindex>. Aunque no es seguro, sigue siendo mejor que las variables de entorno para transmitir datos secretos en un contenedor.<\/p>\n<p><\/p>\n<p>Si el art\u00edculo te ha interesado en los contenedores, puedes instalar Docker o microk8s (una versi\u00f3n liviana de Kubernetes) con bastante facilidad. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/install\/\">Aqu\u00ed<\/a><\/noindex> hay instrucciones para instalar Docker para Linux y MacOS, y <noindex><a rel=\"nofollow\" href=\"https:\/\/microk8s.io\/\">aqu\u00ed<\/a><\/noindex> \u2014 instrucciones para instalar microk8s para Windows, Linux y MacOS.<\/p>\n<p><\/p>\n<p>Despu\u00e9s de la instalaci\u00f3n, puedes seguir <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/get-started\/\">esta gu\u00eda de inicio r\u00e1pido<\/a><\/noindex> de Docker, con una opci\u00f3n similar <noindex><a rel=\"nofollow\" href=\"https:\/\/microk8s.io\/docs\">se sugiere<\/a><\/noindex> para microk8s.<\/p>\n<p><\/p>\n<p>Si tienes el deseo o la necesidad de seguir un curso integral sobre Docker, en el que oradores pr\u00e1cticos discuten todas sus herramientas: desde las abstracciones b\u00e1sicas hasta las opciones de red, matices de trabajo con diferentes sistemas operativos y lenguajes de programaci\u00f3n, prueba \u201c<noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/t2D-uA\">Curso de video sobre Docker<\/a><\/noindex>\u201d. Te familiarizar\u00e1s con la tecnolog\u00eda y entender\u00e1s d\u00f3nde y c\u00f3mo usar mejor Docker. Adem\u00e1s, recibir\u00e1s casos de buenas pr\u00e1cticas: es mejor aprender de manera segura y con el apoyo de profesionales que hacerlo personalmente en situaciones dif\u00edciles.<\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/514528\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 IT \u0431\u043e\u043b\u044c\u0448\u0435 20 \u043b\u0435\u0442, \u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u0440\u0443\u043a\u0438 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u0434\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438 \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043b, \u043a\u0430\u043a \u043e\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0438 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0441 \u043d\u0438\u043c\u0438 \u043d\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u2014 \u044f \u043d\u0435 \u0431\u044b\u043b \u0443\u0432\u0435\u0440\u0435\u043d \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f-\u0432\u0435\u0440\u0442\u044f\u0442\u0441\u044f \u0443 \u043d\u0438\u0445 \u0448\u0435\u0441\u0442\u0435\u0440\u0451\u043d\u043a\u0438 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044f \u0431\u044b\u043b \u0431\u0435\u0437 \u043f\u043e\u043d\u044f\u0442\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91365,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 IT.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0437\u0443\u0447\u0430\u0435\u043c (\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e) \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a Docker \u0438 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 IT.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-12T05:42:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-12T05:42:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Exploramos la (ausente) seguridad de las instalaciones t\u00edpicas de Docker y Kubernetes | ProHoster","description":"Trabajo en TI.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0437\u0443\u0447\u0430\u0435\u043c (\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e) \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a Docker \u0438 Kubernetes | ProHoster","og:description":"\u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 IT.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-12T05:42:33+00:00","article:modified_time":"2020-08-12T05:42:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91364","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:29:22","updated":"2022-09-28 18:39:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/91364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=91364"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/91364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/91365"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=91364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=91364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=91364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}