{"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\/nl\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","title":{"rendered":"Leren over (de ontbrekende) beveiliging van typische Docker- en Kubernetes-installaties","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Leren over (de ontbrekende) beveiliging van typische Docker- en Kubernetes-installaties\" src=\"\/wp-content\/uploads\/2020\/08\/805ed8f509210fcfc4d912092cc540d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIk werk al meer dan 20 jaar in de IT, maar ik heb me nooit eerder aan containers gewaagd. In theorie begreep ik hoe ze functioneren en werken. Maar omdat ik ze nooit in de praktijk had gezien, was ik niet zeker hoe de tandwielen onder de motorkap precies draaiden. <\/p>\n<p><\/p>\n<p>Ik had ook geen idee hoe het met hun beveiliging zat. Maar nogmaals, de theorie klinkt mooi en het oude gezegde \u2018naarmate de beveiliging toeneemt, neemt het gebruiksgemak af\u2019 spookte door mijn hoofd. Dus dacht ik dat als alles zo gemakkelijk is met containers, de beveiliging er ondermaats zou zijn. Blijkbaar had ik gelijk.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Voor een snelle start schreef ik me in voor cursussen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.neowin.net\/news\/tags\/blackhat\">Black Hat<\/a><\/noindex> 2020 met de titel \u201c<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\">Van modder naar adel: penetratie en beveiliging van Docker Swarm en Kubernetes omgevingen<\/a><\/noindex>\u00bb. <\/p>\n<p><\/p>\n<p>De cursus, geleid door Sheila A. Berta en Sol Ozzan, begon meteen met een uitleg over hoe Docker-containers werken en welke stappen ze doorlopen bij implementatie in Kubernetes. Het was een volledig praktische sessie - studenten moesten voor de lessen Docker en microk8s op hun machines installeren - een geweldige manier om de interactie tussen de tools te zien, kwetsbaarheden te vinden en, nog belangrijker, te proberen deze te verhelpen.<\/p>\n<p><\/p>\n<p>Helaas, hoewel de cursussen beloofden na twee dagen een \u2018prins\u2019 te worden, had ik het gevoel dat alles nog maar net begon en dat ik nog veel moest leren.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Leren over (de ontbrekende) beveiliging van typische Docker- en Kubernetes-installaties\" src=\"\/wp-content\/uploads\/2020\/08\/e7afd728bb757ac1e0c14d06c5e03806.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Voordat ik mijn hoge observaties deel, is het belangrijk te verklaren wat een container is. In de ontwikkelingswereld is het normaal dat code die op je persoonlijke machine perfect werkt, niet functioneert wanneer je het ergens op een server probeert te draaien. Containers proberen dit probleem op te lossen door autonome machines te bieden die je gemakkelijk van de ene server naar de andere kunt verplaatsen, met de zekerheid dat ze altijd zullen werken. Zoals de naam al suggereert, bevatten ze code, bibliotheken en andere software die nodig is voor de werking. Kubernetes daarentegen is <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/what-is-kubernetes\/\">een platform voor orchestration van containers<\/a><\/noindex>. In principe kun je daarmee naadloos honderden of duizenden verschillende containers beheren.<\/p>\n<p><\/p>\n<p>Hieronder zijn enkele van mijn bevindingen vanuit het perspectief van het rode en blauwe team.<\/p>\n<p><\/p>\n<h2 id=\"krasnaya-komanda\">Rode team<\/h2>\n<p><\/p>\n<p><strong>De meeste inhoud van containers draait onder root<\/strong>: dit betekent dat als je de container compromitteert, je volledige toegang tot de container krijgt. Dit maakt de volgende stappen veel eenvoudiger.<\/p>\n<p><\/p>\n<p><strong>Docker.sock in de container mounten is gevaarlijk.<\/strong>: als je roottoegang binnen de container hebt en ook Docker binnen de container hebt ge\u00efnstalleerd, die de Docker-socket (\\\/var\\\/run\\\/docker.sock) bevat, heb je de mogelijkheid om de hele cluster te verkennen, inclusief toegang tot elke andere container. Deze toegang kan niet worden voorkomen door netwerkisolatie of andere middelen.<\/p>\n<p><\/p>\n<p><strong>Omgevingsvariabelen bevatten vaak gevoelige gegevens.<\/strong>: in de meeste gevallen sturen mensen wachtwoorden naar de container met behulp van gewone omgevingsvariabelen. Dus als je toegang hebt tot de account, kun je deze omgevingsvariabelen inzien om vervolgens je rechten uit te breiden.<\/p>\n<p><\/p>\n<p><strong>De Docker API kan een hoop informatie prijsgeven.<\/strong>: de Docker API, als deze standaard is ingesteld, werkt zonder autorisatie en kan een hoop informatie prijsgeven. Met behulp van Shodan kun je gemakkelijk een lijst van open poorten vinden, gedetailleerde informatie over de cluster verkrijgen \u2013 en overgaan tot volledige controle. TrendMicro heeft hierover een <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 geschreven.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"sinyaya-komanda\">Het blauwe team.<\/h2>\n<p><\/p>\n<p><strong>Voer de inhoud van containers niet onder root uit.<\/strong>: hoewel het eenvoudiger is om als root uit te voeren, moet je dat niet doen. Voer in plaats daarvan applicaties uit met verlaagde rechten door de uid weer te geven of met behulp van de parameter \u2014user bij het werken met de CLI, of door USER in Dockerfile op te geven.<\/p>\n<p><\/p>\n<p><strong>Sta geen installatie van software in containers toe.<\/strong>: bijna elke aanval begint met het installeren van iets. Van nmap tot ifconfig en zelfs Docker (binnen de container), het installeren van iets in de container was gebruikelijk. Om deze reden moet je altijd alle ongebruikte poorten blokkeren. Dit helpt ook om te voorkomen dat er beheerscommando's worden verzonden bij besmetting van je machine. Naast het voorkomen van software-installaties, is het goed om ervoor te zorgen dat er in de container het minimale aantal applicaties is ge\u00efnstalleerd dat nodig is om de taak uit te voeren.<\/p>\n<p><\/p>\n<p><strong>Bescherm docker.sock.<\/strong>: het moet worden beschermd, omdat deze socket de communicatie tussen de container en de cluster afhandelt. Aangezien ik niet wil ingaan op details in dit artikel, lees <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/security\/https\/\">de notitie van Docker<\/a><\/noindex>, wat er kan gebeuren, en hoe je dit alles kunt blokkeren.<\/p>\n<p><\/p>\n<p><strong>Gebruik Docker-secreto's in plaats van omgevingsvariabelen<\/strong>: Er zijn secreto's <noindex><a rel=\"nofollow\" href=\"https:\/\/www.docker.com\/blog\/docker-secrets-management\/\">sinds ongeveer 2017<\/a><\/noindex>. Hoewel het niet veilig is, is het nog steeds beter dan omgevingsvariabelen voor het doorgeven van geheime gegevens in een container.<\/p>\n<p><\/p>\n<p>Als dit artikel je interesse in containers heeft gewekt, kun je Docker of microk8s (een kleine versie van Kubernetes) vrij eenvoudig installeren. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/install\/\">Hier<\/a><\/noindex> Er zijn instructies voor de installatie van Docker voor Linux en MacOS, en <noindex><a rel=\"nofollow\" href=\"https:\/\/microk8s.io\/\">hier<\/a><\/noindex> \u2014 instructies voor de installatie van microk8s voor Windows, Linux en MacOS.<\/p>\n<p><\/p>\n<p>Na de installatie kun je <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/get-started\/\">deze handleiding voor een snelle start<\/a><\/noindex> van Docker volgen, een vergelijkbare optie <noindex><a rel=\"nofollow\" href=\"https:\/\/microk8s.io\/docs\">wordt aangeboden<\/a><\/noindex> is er ook voor microk8s.<\/p>\n<p><\/p>\n<p>Als je de wens of de noodzaak hebt om een uitgebreide cursus over Docker te volgen, waarin praktijksprekers alle tools bespreken: van de basisabstracties tot netwerkinstellingen, nuances van het werken met verschillende besturingssystemen en programmeertalen, probeer dan \"<noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/t2D-uA\">Videocursus over Docker<\/a><\/noindex>\". Je maakt kennis met de technologie en begrijpt waar en hoe je Docker het beste kunt gebruiken. Bovendien ontvang je best practices - het is beter om veilig te leren en met ondersteuning van praktijkmensen op basis van verhalen over obstakels dan zelf op de obstakels met stekelige handvatten.<\/p>\n<p>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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\udd47Laten we (de ontbrekende) beveiliging van typische Docker- en Kubernetes-installaties onderzoeken | ProHoster","description":"Ik werk in de IT.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/izuchaem-otsutstvuyushhuyu-bezopasnost-tipichnyh-ustanovok-docker-i-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/91364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=91364"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/91364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/91365"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=91364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=91364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=91364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}