{"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\/it\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","title":{"rendered":"Esploriamo la sicurezza (mancante) delle installazioni tipiche di Docker e Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Esploriamo la sicurezza (mancante) delle installazioni tipiche di Docker e Kubernetes\" src=\"\/wp-content\/uploads\/2020\/08\/805ed8f509210fcfc4d912092cc540d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLavoro nell'IT da oltre 20 anni, ma finora non mi sono mai occupato di container. In teoria capivo come erano strutturati e come funzionavano. Ma poich\u00e9 non li avevo mai incontrati nella pratica, non ero sicuro di come girassero e funzionassero le ingranaggi sotto il cofano. <\/p>\n<p><\/p>\n<p>Inoltre, non avevo idea di come fosse la loro sicurezza. Ma anche in questo caso, la teoria suona bene, e la vecchia canzone \"con l'aumento della sicurezza diminuisce la facilit\u00e0 d'uso\" mi \u00e8 rimasta impressa. Cos\u00ec ho pensato che siccome era cos\u00ec facile lavorare con i container, la sicurezza fosse a livelli molto bassi. Come si \u00e8 rivelato, avevo ragione.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Per un rapido avvio, mi sono iscritto a un corso <noindex><a rel=\"nofollow\" href=\"https:\/\/www.neowin.net\/news\/tags\/blackhat\">Black Hat<\/a><\/noindex> 2020 dal titolo \"<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\">Dalla sporcizia al potere: intrusioni e protezione degli ambienti Docker Swarm e Kubernetes<\/a><\/noindex>\u00bb. <\/p>\n<p><\/p>\n<p>Il corso, tenuto da Sheila A. Berta e Sol Ozzan, \u00e8 iniziato subito con la descrizione di come funzionano i container Docker e quale percorso seguono quando vengono distribuiti in Kubernetes. \u00c8 stata un'attivit\u00e0 completamente pratica: gli studenti dovevano installare Docker e microk8s sulle proprie macchine prima delle lezioni. \u00c8 stato un ottimo modo per vedere l'interazione degli strumenti tra di loro, trovare i punti deboli e, soprattutto, provare a bloccarli.<\/p>\n<p><\/p>\n<p>Sfortunatamente, anche se il corso prometteva di trasformarti in un \"potere\" dopo due giorni, sentivo che tutto era appena iniziato e che avevo ancora molto da imparare.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Esploriamo la sicurezza (mancante) delle installazioni tipiche di Docker e Kubernetes\" src=\"\/wp-content\/uploads\/2020\/08\/e7afd728bb757ac1e0c14d06c5e03806.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Prima di immergermi nelle mie alte osservazioni, \u00e8 importante spiegare cosa sia un container. Nel mondo dello sviluppo, \u00e8 considerato normale che il codice scritto sulla tua macchina personale funzioni perfettamente, ma quando provi a eseguirlo su un server, semplicemente non funziona. I container cercano di superare questo problema fornendo macchine autonome, che puoi facilmente trasferire da un server all'altro, sapendo che funzioneranno sempre. Come suggerisce il nome, contengono codice, librerie e altro software necessario all'operativit\u00e0. Kubernetes, d'altra parte, \u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/what-is-kubernetes\/\">una piattaforma di orchestrazione per container<\/a><\/noindex>. In sostanza, con il suo aiuto puoi gestire senza soluzione di continuit\u00e0 centinaia o migliaia di diversi container.<\/p>\n<p><\/p>\n<p>Di seguito sono alcune delle mie considerazioni dal punto di vista della squadra rossa e della squadra blu.<\/p>\n<p><\/p>\n<h2 id=\"krasnaya-komanda\">Squadra rossa<\/h2>\n<p><\/p>\n<p><strong>La maggior parte del contenuto dei container viene eseguito con i permessi di root<\/strong>: significa che se comprometti il container, otterrai accesso completo al container. Questo rende i passaggi successivi notevolmente pi\u00f9 facili.<\/p>\n<p><\/p>\n<p><strong>Il montaggio di docker.sock all'interno del container \u00e8 pericoloso<\/strong>: se hai ottenuto accesso root all'interno del container e hai anche installato Docker all'interno del container che ha il socket Docker (\\\/var\\\/run\\\/docker.sock), hai la potenziale possibilit\u00e0 di esplorare l'intero cluster, incluso l'accesso a qualsiasi altro container. Questo accesso non pu\u00f2 essere prevenuto n\u00e9 dall'isolamento di rete n\u00e9 in altri modi.<\/p>\n<p><\/p>\n<p><strong>Le variabili di ambiente spesso contengono dati sensibili<\/strong>: nella maggior parte dei casi, le persone inviano password nel container utilizzando normali variabili di ambiente. Quindi, se hai accesso all'account, puoi visualizzare queste variabili di ambiente per cercare di ampliare le tue autorizzazioni in seguito.<\/p>\n<p><\/p>\n<p><strong>L'API di Docker pu\u00f2 fornire molte informazioni<\/strong>: l'API di Docker, con le impostazioni predefinite, funziona senza autorizzazione e pu\u00f2 fornire molte informazioni. Utilizzando Shodan, \u00e8 facile trovare un elenco di porte aperte, poi ottenere informazioni dettagliate sul cluster \u2014 e procedere alla sua completa acquisizione. TrendMicro ha scritto art. <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 articolo molto interessante<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"sinyaya-komanda\">Team blu<\/h2>\n<p><\/p>\n<p><strong>Non eseguire il contenuto dei container come root<\/strong>: anche se avviare come root \u00e8 pi\u00f9 semplice, non dovresti farlo. Invece, avvia le applicazioni con i diritti ridotti, visualizzando l'uid oppure usando il parametro \u2014user quando lavori con il CLI, o specificando USER nel Dockerfile.<\/p>\n<p><\/p>\n<p><strong>Non consentire l'installazione di programmi nei container<\/strong>: quasi ogni attacco inizia con l'installazione di qualcosa. Dall'inizio di nmap fino a ifconfig e Docker stesso (all'interno del container), installare qualcosa nel container \u00e8 stato comune. Per questo motivo, \u00e8 sempre necessario bloccare tutte le porte non utilizzate. Questo aiuta anche a prevenire l'invio di comandi di controllo in caso di compromissione della tua macchina. Oltre a prevenire l'installazione di programmi, \u00e8 importante assicurarsi che nel container ci siano il minor numero possibile di applicazioni necessarie per svolgere il compito.<\/p>\n<p><\/p>\n<p><strong>Proteggi docker.sock<\/strong>: deve essere protetto, poich\u00e9 attraverso questo socket viene gestita la comunicazione tra il container e il cluster. Poich\u00e9 non voglio entrare nei dettagli in questo articolo, leggi <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/security\/https\/\">una nota di Docker<\/a><\/noindex>, cosa potrebbe succedere e come bloccare tutto questo.<\/p>\n<p><\/p>\n<p><strong>Usa i segreti di Docker invece delle variabili d'ambiente<\/strong>: I segreti ci sono <noindex><a rel=\"nofollow\" href=\"https:\/\/www.docker.com\/blog\/docker-secrets-management\/\">circa dal 2017<\/a><\/noindex>. Anche se non \u00e8 sicuro, \u00e8 comunque meglio delle variabili d'ambiente per la trasmissione di dati riservati nei container.<\/p>\n<p><\/p>\n<p>Se l'articolo ha suscitato il tuo interesse per i container, puoi installare facilmente Docker oppure microk8s (una versione ridotta di Kubernetes). <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/install\/\">Qui<\/a><\/noindex> Ci sono istruzioni per l'installazione di Docker per Linux e MacOS, e <noindex><a rel=\"nofollow\" href=\"https:\/\/microk8s.io\/\">qui<\/a><\/noindex> \u2014 istruzioni per l'installazione di microk8s per Windows, Linux e MacOS.<\/p>\n<p><\/p>\n<p>Dopo l'installazione, puoi seguire <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/get-started\/\">questa guida rapida di avvio<\/a><\/noindex> di Docker, una variante simile <noindex><a rel=\"nofollow\" href=\"https:\/\/microk8s.io\/docs\">si propone<\/a><\/noindex> esiste anche per microk8s.<\/p>\n<p><\/p>\n<p>Se desideri o hai bisogno di seguire un corso completo su Docker, in cui relatori esperti analizzano tutti i suoi strumenti: dalle astrazioni fondamentali alle opzioni di rete, alle particolarit\u00e0 del lavoro con vari sistemi operativi e linguaggi di programmazione, prova \u00ab<noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/t2D-uA\">Corso Video su Docker<\/a><\/noindex>\u00bb. Ti familiarizzerai con la tecnologia e capirai dove e come utilizzare meglio Docker. E nel contempo riceverai casi di best practice: \u00e8 meglio imparare in sicurezza e con il supporto di professionisti raccontando storie sui propri errori, piuttosto che imparare dagli errori con manici appuntiti.<\/p>\n<p>Fonte: <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.1.1 - 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\/it\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Studiamo la sicurezza (mancante) delle installazioni tipiche di Docker e Kubernetes | ProHoster","description":"Lavoro nel settore IT.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/91364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=91364"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/91364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/91365"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=91364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=91364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=91364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}