{"id":43428,"date":"2021-10-15T00:00:00","date_gmt":"2021-10-15T00:00:00","guid":{"rendered":"https:\/\/www.trendmicro.com\/en_us\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container.html"},"modified":"2021-10-15T00:00:00","modified_gmt":"2021-10-15T00:00:00","slug":"demo-how-to-build-a-container-registry-from-a-container-cloud-advocate","status":"publish","type":"post","link":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/","title":{"rendered":"Demo: How to Build a Container Registry from a Container Cloud Advocate"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/how-to-build-container-registry.jpg\"><!-- Begin mPulse library --><!-- END mPulse library --> <head> <meta charset=\"UTF-8\"> <meta name=\"viewport\" content=\"width=device-width\"> <meta name=\"description\"> <meta name=\"robots\" content=\"index,follow\"> <meta name=\"keywords\" content=\"cloud native,azure,article,aws,how to,container security,google cloud platform,multi cloud\"> <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"> <meta name=\"template\" content=\"defaultArticleWithoutHero\"> <meta property=\"article:published_time\" content=\"2021-10-15\"> <meta property=\"article:tag\"> <meta property=\"article:section\" content=\"how to\"> <link rel=\"icon\" type=\"image\/ico\" href=\"\/content\/dam\/trendmicro\/favicon.ico\"> <link rel=\"canonical\" href=\"https:\/\/www.trendmicro.com\/en_us\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container.html\"> <title>Build a Container Registry from a Container<\/title> <link href=\"https:\/\/fonts.googleapis.com\/css?family=Open+Sans:300,300i,400,400i,600\" rel=\"stylesheet\">\n<link href=\"\/\/customer.cludo.com\/css\/296\/1798\/cludo-search.min.css\" type=\"text\/css\" rel=\"stylesheet\"> <link rel=\"stylesheet\" href=\"\/etc.clientlibs\/trendresearch\/clientlibs\/clientlib-trendresearch.min.css\" type=\"text\/css\"> <meta property=\"og:url\" content=\"https:\/\/www.trendmicro.com\/en_us\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container.html\"><br \/>\n<meta property=\"og:title\" content=\"Build a Container Registry from a Container\"><br \/>\n<meta property=\"og:site_name\" content=\"Trend Micro\"><br \/>\n<meta property=\"og:image\" content=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/how-to-build-container-registry.jpg\"><br \/>\n<meta property=\"og:locale\" content=\"en_US\"> <meta name=\"twitter:card\" content=\"summary_large_image\"><br \/>\n<meta name=\"twitter:site\" content=\"@TrendMicro\"><br \/>\n<meta name=\"twitter:title\" content=\"Build a Container Registry from a Container\"><br \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/how-to-build-container-registry.jpg\"> <\/head> <body class=\"articlepage page basicpage context-business context-devops\" id=\"readabilityBody\" readability=\"50.549054905491\"> <!-- Page Scroll: Back to Top --> <a id=\"page-scroll\" title=\"VerticalPageScroll\" href=\"javascript:jumpScroll($(this).scrollTop());\"> <span class=\"icon-chevron-up\"><\/span> <\/a> <!-- \/* Data Layer *\/ --> <\/p>\n<div class=\"root responsivegrid\">\n<div class=\"aem-Grid aem-Grid--12 aem-Grid--default--12 \">\n<div class=\"articleBodyNoHero aem-GridColumn aem-GridColumn--default--12\">\n<div class=\"research-layout article container\" role=\"contentinfo\">\n<article class=\"research-layout--wrapper row\" data-article-pageid=\"319224928\">\n<div class=\"col-xs-12 col-md-12 one-column\">\n<div class=\"col-xs-12 col-md-12\" readability=\"8.7444794952681\">\n<div class=\"article-details\" role=\"heading\" readability=\"36.921135646688\"> <span class=\"article-details__bar\" role=\"img\"><\/span> <\/p>\n<p class=\"article-details__description\">What came first the container or the container registry? Find out and learn how to build, run, and scan your very own container registry from a container itself on your laptop.<\/p>\n<p class=\"article-details__author-by\">By: Melanie Tafelski <time class=\"article-details__date\">October 15, 2021<\/time> <span>Read time:&nbsp;<\/span><span class=\"eta\"><\/span> (<span class=\"words\"><\/span> words) <\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<hr class=\"research-layout-divider\"> <main class=\"main--content col-xs-12 col-md-8 col-md-push-2\"> <\/p>\n<div class=\"richText\" readability=\"38.5\">\n<div readability=\"22\">\n<p>Containers have been around for a while now. People have been wrapping up their application\u2019s code, dependencies, and associated libraries and files literally in an eggshell, and then running them using Docker and other container-based orchestrators.<\/p>\n<p>If you are like me, you have probably used the container registry services from public cloud service providers (CSPs) such as Amazon Elastic Container Registry (ECR), Microsoft Azure Container Registry (ACR), and Google Cloud\u2122 Container Registry (GCR).&nbsp; CSPs want to logically provide a storage location to organize, tag, and store each version of their application in those container images.&nbsp; Think: eggs in a basket. One of the great mysteries in life has been solved: the container (egg) came first and then the container image repository or registry.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/GR01_Cloud%20Migration%20Article%20Series_Graphics_Article%205-01.png\" alt=\"containers in a basket\"> <\/figure>\n<\/p><\/div>\n<div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/GR01_Cloud%20Migration%20Article%20Series_Graphics_Article%205-02.png\" alt=\"chicken n egg\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"33.908450704225\">\n<div readability=\"16.012323943662\">\n<p><span class=\"body-subhead-title\">Demo Part 1: Building your container registry&nbsp;<\/span>Have you ever wanted to build your own container registry? Maybe you just want to try out building some container images locally on a dev\/test box and store the images prior to pushing them to a production registry that you must pay storage costs for. Or perhaps you are new to containers, saw this article title and thought: hey, why not? I\u2019d like to try my hand at building a container registry.&nbsp;<br \/>&nbsp;<\/p>\n<p>I am going to show you how to use Docker to build a container registry and then scan images for vulnerabilities using <a href=\"https:\/\/www.trendmicro.com\/en_us\/business\/products\/hybrid-cloud\/cloud-one-container-image-security.html\">Trend Micro Cloud One\u2122 \u2013 Container Security<\/a>. Afterward, you\u2019ll have your very own container factory running on your local laptop. Let\u2019s get started.<\/p>\n<ol>\n<li>Visit the <a href=\"https:\/\/www.docker.com\/products\/docker-desktop\" target=\"_blank\" rel=\"noopener\">Docker Desktop site<\/a> to download and install it. Docker Desktop is \u201cthe fastest way to learn about containers and containerize applications on your desktop\u201d<\/li>\n<li>After the installation is complete. Open the app and click on the \u201csettings gear\u201d to one-click enable Kubernetes.&nbsp; What\u2019s that you say? I don\u2019t have to run all kinds of setup to get Kubernetes? Nope my friends. One click away.&nbsp;&nbsp;<\/li>\n<\/ol><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/kubernetes.png\" alt=\"kubernetes\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"37.5\">\n<div readability=\"20\">\n<ol start=\"3\">\n<li>After enabling Kubernetes, Docker Desktop will restart. You should see the Docker and the Kubernetes logo in green in the lower left-hand corner, as pictured above.<\/li>\n<\/ol>\n<p>Now you are ready to deploy your very own container registry. Ironically, you can build your own container registry with a Dockerfile. Think of a Dockerfile as a recipe, but instead of providing all the ingredients you need, it has everything your container needs to run, live, and thrive! So, grab your text editor like Notepad, or if you\u2019re feeling fancy, you can use an IDE like Visual Studio Code. I recommend the Visual Studio Code option because it has Docker extensions that you can use to easily build and run your container.<\/p>\n<p>Paste this Dockerfile code into a new file in Visual Studio Code and let\u2019s have a look.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/dockerfile.PNG\" alt=\"dockerfile code\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"36.791816546763\">\n<div readability=\"19.622302158273\">\n<p>So, what\u2019s going on in here?&nbsp;<\/p>\n<p>The <b>FROM<\/b> line is used to specify a base container image that you want to use as a launchpad or a reference container to build upon.&nbsp; Docker\u2019s registry container is ready to go, we just have to configure it in the Dockerfile, which is used to build our container. How cool is that? I used the <a href=\"https:\/\/docs.docker.com\/registry\/deploying\/\" target=\"_blank\" rel=\"noopener\">deployment guide<\/a> to build the registry and use the sample Dockerfile with basic password authentication for testing.<\/p>\n<p>The two <b>RUN <\/b>lines are used to:<\/p>\n<ol>\n<li>Create a htpasswd file to set up your initial registry log-on credentials. I used \u201cadmin\u201d as the username and as the password since this is just for fun, but for \u201creal\u201d uses, it\u2019s best practice to choose stronger credentials.<\/li>\n<li>Create a certificate directory to store your self-signed certificates.&nbsp; You can always use a third-party CA signing authority, but you will have to pay for that.&nbsp; Since this is just an experiment and for fun, self-signed certificates are fine. Generate your own <a href=\"https:\/\/www.openssl.org\/\" target=\"_blank\" rel=\"noopener\">here.<\/a><\/li>\n<\/ol>\n<p>Copy your certificate key and self-signed certificate to the container so when you push and pull certificates it is done over SSL.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/certificate-key.png\" alt=\"certificate key\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"31.5\">\n<div readability=\"8\">\n<p>Install the official Docker extension for Visual Studio Code. You can do this by navigating to the extension area in the IDE environment and searching for the official Docker extension.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/docker-extension.png\" alt=\"docker\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"32.5\">\n<div readability=\"10\">\n<p>Now, right click the Dockerfile in your saved registry and choose to build the container and run it (interactively). You should see the registry image in your image directory. It will be running and listening for TLS on HTTPS port 8443 on your local computer.&nbsp;<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/dockerfile-runnning.png\" alt=\"dockerfile\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"31\">\n<div readability=\"7\">\n<p>Building Container Output:<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/building-container-output.png\" alt=\"building container output\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"32\">\n<div readability=\"9\">\n<p>Running Container Output:<\/p>\n<p>Now it\u2019s time to test logging on the container registry and pull and push a new image into it.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/test-logging.png\" alt=\"test logging\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"31.5\">\n<div readability=\"8\">\n<p>You can execute the Docker login command in PowerShell. This allows you to log into your registry with stored creds or prompt for new creds.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/execute-docker.png\" alt=\"execute docker\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"33.5\">\n<div readability=\"12\">\n<p>After you have logged in, it\u2019s time to pull and push a vulnerable test container to scan.&nbsp; You can do this with the popular DVWA container test image.&nbsp; The next steps are to pull down, tag, and push the public test image into your local registry.&nbsp;<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/windows-powershell.png\" alt=\"windows powershell\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"32.793439716312\">\n<div readability=\"14.780141843972\">\n<p>Pat yourself on the back. You now have a local test registry to interact with\u2014all running on your local system.&nbsp; The chicken and the egg scenario is complete.&nbsp; If you want to scan that container image just like you would scan a computer for vulnerabilities, deploy the next component of Container Security.<\/p>\n<p><span class=\"body-subhead-title\">Demo Part 2: Container Image Scanning with Container Security<\/span><br \/>Sign up for a <a href=\"https:\/\/cloudone.trendmicro.com\/register\" target=\"_blank\" rel=\"noopener\">free, 30-day trial<\/a> of <a href=\"https:\/\/www.trendmicro.com\/en_us\/business\/products\/hybrid-cloud.html\">Trend Micro Cloud One\u2122.<\/a> This gives you access to all seven security services that make up the platform. We will be using Container Security in this demo.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/cloud-one-trial.png\" alt=\"cloud one\"> <\/figure>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/cloud-one-platform.png\" alt=\"cloud one platform\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"32.5\">\n<div readability=\"10\">\n<p>Container Security focuses on complete lifecycle protection for containers from pre-runtime to runtime.&nbsp; There are various options to deploy security, but we are going to focus specifically on the registry.&nbsp; Select the scanners option in Container Security.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/scanners.png\" alt=\"scanners\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"31.5\">\n<div readability=\"8\">\n<p>Click <b>+Add <\/b>button to name and describe the container image scanner that you will deploy in your local Kubernetes environment to scan your local registry and test image.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/add-scanner.png\" alt=\"add scanner\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"32\">\n<div readability=\"9\">\n<p>On the screen pictured below, you will build a Kubernetes configuration or manifest file to deploy the Container Security image scanner.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/build-kubernetes.png\" alt=\"build kubernetes\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"36.839207048458\">\n<div readability=\"19.647577092511\">\n<p>Make a new file in Visual Studio Code named <b>overrides.yaml<\/b> and add the associated API key and endpoint connection information. This will allow your Kubernetes cluster to communicate with Trend Micro Cloud One.<\/p>\n<p>Next, you will need to <a href=\"https:\/\/helm.sh\/docs\/intro\/install\/\" target=\"_blank\" rel=\"noopener\">install Helm<\/a>, which is used to run a Kubernetes Helm Chart. This deploys Container Security so it can scan images directly in your Kubernetes cluster.&nbsp; Btw, I prefer using the Chocolatey method to install by using the Chocolatey package manager.<\/p>\n<p>Below is my YAML configuration file with the API key information and the secret seed information that will be used to generate a secure password.&nbsp; The secret seed parameter can be anything you choose.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/yaml-config.png\" alt=\"yaml\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"31.5\">\n<div readability=\"8\">\n<p>Below, you can see the Helm Chart deploying and executing successfully.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/helm-chart.png\" alt=\"helm chart\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"34\">\n<div readability=\"13\">\n<p>Follow the directions to obtain your initial username, password, and IP address to log onto the container image scanner in Container Security, which should be running in your Kubernetes test environment. You might need to wait for all the scanner pods to start up\u2014you can monitor that by using the following command.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/kubectl.png\" alt=\"kubect1\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"31.5\">\n<div readability=\"8\">\n<p>Now, we are going to log on and add our local container registry to be scanned.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/add-registry.png\" alt=\"add registry\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"33\">\n<div readability=\"11\">\n<p>When you first log on, you will be prompted to add a container registry to be scanned. Luckily, we have one to test with.&nbsp; Provide your connection details such as the username and password you setup in your local Dockerfile and the local IP address of your computer.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/connection-details.png\" alt=\"connection details\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"32\">\n<div readability=\"9\">\n<p>Your registry should now appear under the <b>Registries<\/b> section with the detected image that you pushed previously. Now it is ready to be scanned with your very own container image scanner. Go ahead and scan away.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/registries.png\" alt=\"registries\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"31\">\n<div readability=\"7\">\n<p>Scanning should take just a few moments before you can view the results.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/test-docker-local-registry.png\" alt=\"test docker local registry\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"32\">\n<div readability=\"9\">\n<p>After the scan is complete, all findings will be displayed on the dashboard. You can look at a high level or take a deeper look into the findings.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/scan-details.png\" alt=\"scan details\"> <\/figure>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container-\/vulnerabilities.png\" alt=\"vulnerabilities\"> <\/figure>\n<\/p><\/div>\n<div class=\"richText\" readability=\"35.623499142367\">\n<div readability=\"17.567753001715\">\n<p>For example, all vulnerabilities shown will be highlighted by severity and display whether there is a fix available in that specific layer.&nbsp; There is also the official CVE write up provided, showing the documentation for how this exploit is used with that specific vulnerability. This provides you with all the information needed for remediating the vulnerability.<\/p>\n<p><span class=\"body-subhead-title\">Conclusion<\/span><br \/>Well, that\u2019s it! Hope you enjoyed learning more about building container registries and securing your container images. To dive deeper into the features of Container Security, check out the <a href=\"https:\/\/cloudone.trendmicro.com\/docs\/container-security\/\" target=\"_blank\" rel=\"noopener\">documentation.<\/a><\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"image\">\n<figure class=\"image-figure\"> <a id=\"devopsrc-99ab3a\" href=\"https:\/\/cloudone.trendmicro.com\/register\" target=\"_blank\" rel=\"noopener noreferrer\"> <img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/trial-banners\/cloud-one-trial-banner.jpg\" alt=\"cloud-one-trial\"> <\/a> <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<section class=\"tag--list\">\n<p>Tags<\/p>\n<\/section>\n<p> <\/main> <\/article>\n<\/div>\n<\/div><\/div>\n<\/div>\n<p> <!-- \/* Core functionality javascripts, absolute URL to leverage Akamai CDN *\/ --> <!--For Modal-start--> <\/p>\n<p> <span>sXpIBdPeKzI9PC2p0SWMpUSM2NSxWzPyXTMLlbXmYa0R20xk<\/span> <\/p>\n<p> <!--For Modal-end--> <!-- Go to www.addthis.com\/dashboard to customize your tools --> <\/body> Read More <a href=\"https:\/\/www.trendmicro.com\/en_us\/devops\/21\/j\/demo--how-to-build-a-container-registry-from-a-container.html\">HERE<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What came first the container or the container registry? Find out and learn how to build, run, and scan your very own container registry from a container itself on your laptop. Read More HERE&#8230;<\/p>\n","protected":false},"author":2,"featured_media":43429,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","footnotes":""},"categories":[61],"tags":[9503,9505,9502,9501,9575,9542,9571,9507],"class_list":["post-43428","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trendmicro","tag-trend-micro-devops-article","tag-trend-micro-devops-aws","tag-trend-micro-devops-azure","tag-trend-micro-devops-cloud-native","tag-trend-micro-devops-container-security","tag-trend-micro-devops-google-cloud-platform","tag-trend-micro-devops-how-to","tag-trend-micro-devops-multi-cloud"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Demo: How to Build a Container Registry from a Container Cloud Advocate 2026 | ThreatsHub Cybersecurity News<\/title>\n<meta name=\"description\" content=\"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security &amp; Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Demo: How to Build a Container Registry from a Container Cloud Advocate 2026 | ThreatsHub Cybersecurity News\" \/>\n<meta property=\"og:description\" content=\"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security &amp; Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/\" \/>\n<meta property=\"og:site_name\" content=\"ThreatsHub Cybersecurity News\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-15T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2021\/10\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2600\" \/>\n\t<meta property=\"og:image:height\" content=\"1293\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"TH Author\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@threatshub\" \/>\n<meta name=\"twitter:site\" content=\"@threatshub\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TH Author\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/\"},\"author\":{\"name\":\"TH Author\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#\\\/schema\\\/person\\\/12e0a8671ff89a863584f193e7062476\"},\"headline\":\"Demo: How to Build a Container Registry from a Container Cloud Advocate\",\"datePublished\":\"2021-10-15T00:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/\"},\"wordCount\":1502,\"publisher\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png\",\"keywords\":[\"Trend Micro DevOps : Article\",\"Trend Micro DevOps : AWS\",\"Trend Micro DevOps : Azure\",\"Trend Micro DevOps : Cloud Native\",\"Trend Micro DevOps : Container Security\",\"Trend Micro DevOps : Google Cloud Platform\",\"Trend Micro DevOps : How To\",\"Trend Micro DevOps : Multi Cloud\"],\"articleSection\":[\"TrendMicro\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/\",\"name\":\"Demo: How to Build a Container Registry from a Container Cloud Advocate 2026 | ThreatsHub Cybersecurity News\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png\",\"datePublished\":\"2021-10-15T00:00:00+00:00\",\"description\":\"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security & Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png\",\"contentUrl\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png\",\"width\":2600,\"height\":1293},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trend Micro DevOps : Article\",\"item\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/tag\\\/trend-micro-devops-article\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Demo: How to Build a Container Registry from a Container Cloud Advocate\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/\",\"name\":\"ThreatsHub Cybersecurity News\",\"description\":\"%%focuskw%% Threat Intel \u2013 Threat Intel Services \u2013 CyberIntelligence \u2013 Cyber Threat Intelligence - Threat Intelligence Feeds - Threat Intelligence Reports - CyberSecurity Report \u2013 Cyber Security PDF \u2013 Cybersecurity Trends - Cloud Sandbox \u2013- Threat IntelligencePortal \u2013 Incident Response \u2013 Threat Hunting \u2013 IOC - Yara - Security Operations Center \u2013 SecurityOperation Center \u2013 Security SOC \u2013 SOC Services - Advanced Threat - Threat Detection - TargetedAttack \u2013 APT \u2013 Anti-APT \u2013 Advanced Protection \u2013 Cyber Security Services \u2013 Cybersecurity Services -Threat Intelligence Platform\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#organization\"},\"alternateName\":\"Threatshub.org\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#organization\",\"name\":\"ThreatsHub.org\",\"alternateName\":\"Threatshub.org\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Threatshub_Favicon1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Threatshub_Favicon1.jpg\",\"width\":432,\"height\":435,\"caption\":\"ThreatsHub.org\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/threatshub\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#\\\/schema\\\/person\\\/12e0a8671ff89a863584f193e7062476\",\"name\":\"TH Author\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g\",\"caption\":\"TH Author\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Demo: How to Build a Container Registry from a Container Cloud Advocate 2026 | ThreatsHub Cybersecurity News","description":"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security & Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.","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:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/","og_locale":"en_US","og_type":"article","og_title":"Demo: How to Build a Container Registry from a Container Cloud Advocate 2026 | ThreatsHub Cybersecurity News","og_description":"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security & Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.","og_url":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/","og_site_name":"ThreatsHub Cybersecurity News","article_published_time":"2021-10-15T00:00:00+00:00","og_image":[{"width":2600,"height":1293,"url":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2021\/10\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png","type":"image\/png"}],"author":"TH Author","twitter_card":"summary_large_image","twitter_creator":"@threatshub","twitter_site":"@threatshub","twitter_misc":{"Written by":"TH Author","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/#article","isPartOf":{"@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/"},"author":{"name":"TH Author","@id":"https:\/\/www.threatshub.org\/blog\/#\/schema\/person\/12e0a8671ff89a863584f193e7062476"},"headline":"Demo: How to Build a Container Registry from a Container Cloud Advocate","datePublished":"2021-10-15T00:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/"},"wordCount":1502,"publisher":{"@id":"https:\/\/www.threatshub.org\/blog\/#organization"},"image":{"@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/#primaryimage"},"thumbnailUrl":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2021\/10\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png","keywords":["Trend Micro DevOps : Article","Trend Micro DevOps : AWS","Trend Micro DevOps : Azure","Trend Micro DevOps : Cloud Native","Trend Micro DevOps : Container Security","Trend Micro DevOps : Google Cloud Platform","Trend Micro DevOps : How To","Trend Micro DevOps : Multi Cloud"],"articleSection":["TrendMicro"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/","url":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/","name":"Demo: How to Build a Container Registry from a Container Cloud Advocate 2026 | ThreatsHub Cybersecurity News","isPartOf":{"@id":"https:\/\/www.threatshub.org\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/#primaryimage"},"image":{"@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/#primaryimage"},"thumbnailUrl":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2021\/10\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png","datePublished":"2021-10-15T00:00:00+00:00","description":"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security & Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.","breadcrumb":{"@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/#primaryimage","url":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2021\/10\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png","contentUrl":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2021\/10\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate.png","width":2600,"height":1293},{"@type":"BreadcrumbList","@id":"https:\/\/www.threatshub.org\/blog\/demo-how-to-build-a-container-registry-from-a-container-cloud-advocate\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.threatshub.org\/blog\/"},{"@type":"ListItem","position":2,"name":"Trend Micro DevOps : Article","item":"https:\/\/www.threatshub.org\/blog\/tag\/trend-micro-devops-article\/"},{"@type":"ListItem","position":3,"name":"Demo: How to Build a Container Registry from a Container Cloud Advocate"}]},{"@type":"WebSite","@id":"https:\/\/www.threatshub.org\/blog\/#website","url":"https:\/\/www.threatshub.org\/blog\/","name":"ThreatsHub Cybersecurity News","description":"%%focuskw%% Threat Intel \u2013 Threat Intel Services \u2013 CyberIntelligence \u2013 Cyber Threat Intelligence - Threat Intelligence Feeds - Threat Intelligence Reports - CyberSecurity Report \u2013 Cyber Security PDF \u2013 Cybersecurity Trends - Cloud Sandbox \u2013- Threat IntelligencePortal \u2013 Incident Response \u2013 Threat Hunting \u2013 IOC - Yara - Security Operations Center \u2013 SecurityOperation Center \u2013 Security SOC \u2013 SOC Services - Advanced Threat - Threat Detection - TargetedAttack \u2013 APT \u2013 Anti-APT \u2013 Advanced Protection \u2013 Cyber Security Services \u2013 Cybersecurity Services -Threat Intelligence Platform","publisher":{"@id":"https:\/\/www.threatshub.org\/blog\/#organization"},"alternateName":"Threatshub.org","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.threatshub.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.threatshub.org\/blog\/#organization","name":"ThreatsHub.org","alternateName":"Threatshub.org","url":"https:\/\/www.threatshub.org\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.threatshub.org\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2025\/05\/Threatshub_Favicon1.jpg","contentUrl":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2025\/05\/Threatshub_Favicon1.jpg","width":432,"height":435,"caption":"ThreatsHub.org"},"image":{"@id":"https:\/\/www.threatshub.org\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/threatshub"]},{"@type":"Person","@id":"https:\/\/www.threatshub.org\/blog\/#\/schema\/person\/12e0a8671ff89a863584f193e7062476","name":"TH Author","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g","caption":"TH Author"}}]}},"_links":{"self":[{"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/posts\/43428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/comments?post=43428"}],"version-history":[{"count":0,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/posts\/43428\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/media\/43429"}],"wp:attachment":[{"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/media?parent=43428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/categories?post=43428"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/tags?post=43428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}