{"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\/da\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","title":{"rendered":"Unders\u00f8ger (den manglende) sikkerhed i typiske Docker- og Kubernetes-installationer","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Unders\u00f8ger (den manglende) sikkerhed i typiske Docker- og Kubernetes-installationer\" src=\"\/wp-content\/uploads\/2020\/08\/805ed8f509210fcfc4d912092cc540d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nJeg har arbejdet i IT i mere end 20 \u00e5r, men jeg har aldrig f\u00e5et arbejdet med containere. Teoretisk forstod jeg, hvordan de fungerer, og hvordan de arbejder. Men da jeg aldrig har m\u00f8dt dem i praksis, var jeg ikke sikker p\u00e5, hvordan tandhjulene svinger under motorhjelmen. <\/p>\n<p><\/p>\n<p>Derudover havde jeg ingen anelse om, hvordan det st\u00e5r til med sikkerheden. Men igen, teoria lyder smukt, og det gamle ordsprog \"da sikkerheden vokser, falder brugervenligheden\" sad fast i mit hoved. S\u00e5 jeg t\u00e6nkte, at n\u00e5r det er s\u00e5 let at arbejde med containere, s\u00e5 m\u00e5 sikkerheden v\u00e6re under minimum. Som det viste sig, havde jeg ret.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>For en hurtig start tilmeldte jeg mig et kursus <noindex><a rel=\"nofollow\" href=\"https:\/\/www.neowin.net\/news\/tags\/blackhat\">Black Hat<\/a><\/noindex> i 2020 med titlen \"<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\">Fra mudder til konger: indtr\u00e6ngen og beskyttelse af Docker Swarm- og Kubernetes-milj\u00f8er<\/a><\/noindex>\u00bb. <\/p>\n<p><\/p>\n<p>Kurset, der blev undervist af Sheila A. Berta og Sol Ozzan, startede straks med at beskrive, hvordan Docker-containere fungerer, samt hvilken vej de tager ved implementering i Kubernetes. Det var en helt praktisk session - deltagerne skulle have installeret Docker og microk8s p\u00e5 deres maskiner inden kurset - en fremragende m\u00e5de at se, hvordan v\u00e6rkt\u00f8jerne interagerer, finde svagheder og, vigtigst af alt, pr\u00f8ve at blokere dem.<\/p>\n<p><\/p>\n<p>Desv\u00e6rre, selvom kurserne lovede at g\u00f8re mig til \"kongen\" efter to dage, f\u00f8lte jeg, at det hele kun lige var begyndt, og jeg stadig havde meget at l\u00e6re.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Unders\u00f8ger (den manglende) sikkerhed i typiske Docker- og Kubernetes-installationer\" src=\"\/wp-content\/uploads\/2020\/08\/e7afd728bb757ac1e0c14d06c5e03806.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>F\u00f8r jeg dykker ned i mine h\u00f8je observationer, er det vigtigt at forklare, hvad en container er. I udviklingsverdenen anses det som normalt, at koden, der er skrevet p\u00e5 din egen maskine, fungerer perfekt, men n\u00e5r man pr\u00f8ver at k\u00f8re den et eller andet sted p\u00e5 en server, s\u00e5 virker den bare ikke. Containere fors\u00f8ger at overvinde dette problem ved at tilbyde autonome maskiner, som du nemt kan flytte fra server til server og vide, at de altid vil fungere. Som navnet antyder indeholder de koden, bibliotekerne og andet software, der er n\u00f8dvendigt for at arbejde. Kubernetes, p\u00e5 den anden side, er <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/what-is-kubernetes\/\">en orkestreringsplatform for containere<\/a><\/noindex>. I princippet kan man bruge det til ubesv\u00e6ret at styre hundreder eller tusinder af forskellige containere.<\/p>\n<p><\/p>\n<p>Her er nogle af mine konklusioner set fra et r\u00f8dt og bl\u00e5t teams perspektiv.<\/p>\n<p><\/p>\n<h2 id=\"krasnaya-komanda\">R\u00f8dt team<\/h2>\n<p><\/p>\n<p><strong>De fleste indhold i containerne k\u00f8rer under root<\/strong>: det betyder, at hvis du kompromitterer containeren, f\u00e5r du fuld adgang til containeren. Det g\u00f8r de efterf\u00f8lgende skridt betydeligt lettere.<\/p>\n<p><\/p>\n<p><strong>Montering af docker.sock indeni containeren er farligt<\/strong>: hvis du har f\u00e5et rootadgang i containeren, og ogs\u00e5 har installeret Docker inden i en container med Docker-socketen (\/var\/run\/docker.sock), har du en potentiel mulighed for at udforske hele klyngen, inklusive adgang til enhver anden container. Denne adgang kan ikke forhindres hverken ved netv\u00e6rksisolering eller p\u00e5 andre m\u00e5der.<\/p>\n<p><\/p>\n<p><strong>Milj\u00f8variabler indeholder ofte hemmelige data<\/strong>: i de fleste tilf\u00e6lde sender folk adgangskoder ind i containeren ved hj\u00e6lp af almindelige milj\u00f8variabler. S\u00e5 hvis du har adgang til kontoen, kan du s\u00f8ge disse milj\u00f8variabler for at udvide dine rettigheder senere.<\/p>\n<p><\/p>\n<p><strong>Docker API kan udlevere en masse information<\/strong>: Docker API, n\u00e5r det er konfigureret som standard, fungerer uden godkendelse og kan udlevere en masse information. Ved at bruge Shodan kan du nemt finde en liste over \u00e5bne porte, dern\u00e6st f\u00e5 detaljeret information om klyngen \u2014 og g\u00e5 videre til dens fulde overtagelse. TrendMicro har skrevet en <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\/\">interessant artikel<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"sinyaya-komanda\">Den bl\u00e5 team<\/h2>\n<p><\/p>\n<p><strong>K\u00f8r ikke containerindhold som root<\/strong>: selvom det er enklere at k\u00f8re som root, b\u00f8r du ikke g\u00f8re det. I stedet skal du k\u00f8re applikationer med nedsatte rettigheder ved at vise uid enten ved hj\u00e6lp af parameteren \u2014user, n\u00e5r du arbejder med CLI, eller ved at angive USER i Dockerfile.<\/p>\n<p><\/p>\n<p><strong>Tillad ikke installation af programmer i containerne<\/strong>: n\u00e6sten hver angreb starter med installation af noget. Fra nmap til ifconfig og selve Docker (inden i containeren) har installation af noget i containeren v\u00e6ret en almindelig praksis. Af samme grund skal alle ubrugte porte altid blokeres. Dette hj\u00e6lper ogs\u00e5 med at forhindre overf\u00f8rsel af kontrolkommandoer, hvis din maskine bliver inficeret. Udover at forhindre installation af programmer, er det vigtigt at sikre, at der i selve containeren kun er installeret det minimale antal applikationer, der er n\u00f8dvendige for at udf\u00f8re opgaven.<\/p>\n<p><\/p>\n<p><strong>Beskyt docker.sock<\/strong>: det skal beskyttes, da kommunikationen mellem containeren og klyngen behandles gennem denne socket. Da jeg ikke \u00f8nsker at g\u00e5 ind i detaljerne i denne artikel, l\u00e6s venligst <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/security\/https\/\">notatet fra Docker<\/a><\/noindex>, hvad der kan ske, samt hvordan man kan blokere alt dette.<\/p>\n<p><\/p>\n<p><strong>Brug Docker-hemmeligheder i stedet for milj\u00f8variabler<\/strong>: Der er hemmeligheder <noindex><a rel=\"nofollow\" href=\"https:\/\/www.docker.com\/blog\/docker-secrets-management\/\">siden cirka 2017<\/a><\/noindex>. Selvom det ikke er sikkert, er det stadig bedre end milj\u00f8variabler til at overf\u00f8re hemmelige data til containeren.<\/p>\n<p><\/p>\n<p>Hvis artiklen har vakt din interesse for containere \u2014 kan du forholdsvis nemt installere Docker eller microk8s (en lille version af Kubernetes). <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/install\/\">Her<\/a><\/noindex> Der findes installationsvejledninger til Docker for Linux og MacOS, og <noindex><a rel=\"nofollow\" href=\"https:\/\/microk8s.io\/\">her<\/a><\/noindex> \u2014 installationsvejledninger til microk8s for Windows, Linux og MacOS.<\/p>\n<p><\/p>\n<p>Efter installationen kan du f\u00f8lge <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/get-started\/\">denne hurtigstartguide<\/a><\/noindex> fra Docker, en lignende version <noindex><a rel=\"nofollow\" href=\"https:\/\/microk8s.io\/docs\">tilbys<\/a><\/noindex> findes ogs\u00e5 for microk8s.<\/p>\n<p><\/p>\n<p>Hvis du har lyst eller behov for at gennemf\u00f8re et omfattende kursus i Docker, hvor praktiserende talere gennemg\u00e5r alle dets v\u00e6rkt\u00f8jer: fra grundl\u00e6ggende abstraktioner til netv\u00e6rksindstillinger, detaljerne i arbejdet med forskellige operativsystemer og programmeringssprog, s\u00e5 pr\u00f8v \"<noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/t2D-uA\">Videokursus om Docker<\/a><\/noindex>\". Du vil l\u00e6re teknologien at kende og forst\u00e5, hvor og hvordan Docker bedst kan bruges. Og samtidig f\u00e5 best practice cases \u2014 det er bedre at l\u00e6re i sikkerhed og med praktisk st\u00f8tte p\u00e5 historier om at snuble over det, end selv at snuble over de samme problemer med spidse h\u00e5ndtag.<\/p>\n<p>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Vi unders\u00f8ger (den manglende) sikkerhed ved typiske installationer af Docker og Kubernetes | ProHoster","description":"Jeg arbejder i IT.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/91364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=91364"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/91364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/91365"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=91364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=91364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=91364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}