{"id":22194,"date":"2024-01-11T10:00:00","date_gmt":"2024-01-11T09:00:00","guid":{"rendered":"https:\/\/www.riskinsight-wavestone.com\/?p=22194"},"modified":"2024-01-05T17:38:23","modified_gmt":"2024-01-05T16:38:23","slug":"safe-sailing-step-by-step-container-security","status":"publish","type":"post","link":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/","title":{"rendered":"Safe sailing: step-by-step container security\u00a0"},"content":{"rendered":"\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Containers represent an opportunity for rapid, flexible, and efficient application deployment.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">In 2019, 84% of production infrastructures were already using containers<a href=\"#_ftn1\" name=\"_ftnref1\">[1]<\/a>. As it is often the case, this massive adoption has taken place without the integration of Cybersecurity teams, sometimes out of ignorance of the technology, and sometimes out of a vision of simplicity and efficiency for development teams.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><b><span data-contrast=\"auto\">The need to secure containers is greater than ever, and it&#8217;s time for Cyber teams to understand the technology and define the right security measures.<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">We&#8217;ll start with a comparison between containers and virtual machines, then look back at the reasons for the emergence of containers. We&#8217;ll then look at how to secure them throughout their lifecycle, <\/span><b><span data-contrast=\"auto\">step by step<\/span><\/b><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span data-contrast=\"none\">Virtual machine, container: what&#8217;s the difference?<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h1>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">But why choose a container? To understand this, we first need to look at the difference between a virtual machine and a container.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The main difference between a VM (Virtual Machine) and a container lies in the elements included in the virtualized space. A container contains only the applications and dependencies required to run it, whereas a VM will contain an operating system on which one or more applications will be installed. As a container has no operating system of its own, it relies on the one of the hosts on which it runs on. This distinction makes for greater lightness and complexity.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22196 size-full\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/01-1.png\" alt=\"\" width=\"605\" height=\"303\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/01-1.png 605w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/01-1-381x191.png 381w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/01-1-71x36.png 71w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/span><\/p>\n<h2 style=\"text-align: justify;\"><span data-contrast=\"none\">So why use containers at all?\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Containers were not developed to <\/span><b><span data-contrast=\"auto\">enhance security, but rather for infrastructure purposes<\/span><\/b><span data-contrast=\"auto\">. The main advantages are:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">&#8211; <\/span><b><span data-contrast=\"auto\">Consistency<\/span><\/b><span data-contrast=\"auto\">: containers can be launched on any machine and will operate in the same way.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">&#8211; <\/span><b><span data-contrast=\"auto\">Economy<\/span><\/b><span data-contrast=\"auto\">: containers are faster and require fewer resources than VMs, so they cost less.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">&#8211; <\/span><b><span data-contrast=\"auto\">Automation<\/span><\/b><span data-contrast=\"auto\">: it&#8217;s much easier to automate the deployment of a container than the creation of a virtual machine (Cloud technologies have come a long way in this respect).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">These three advantages, combined with the popularization of the DevOps approach within companies, have led to an explosion in the use of containers. Without being side-lined, security has not been an objective in the design of containers. As a result, good security practices have been put in place as the technology has been developed and used.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h2 style=\"text-align: justify;\" aria-level=\"1\"><span data-contrast=\"none\">Execution models<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><span data-contrast=\"auto\">The advantages of containers are linked to a specific mode of operation based on very specific execution kinematics. Let&#8217;s take a look at container execution models.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">A container can be <\/span><b><span data-contrast=\"auto\">run on an on-premise or cloud-hosted machine<\/span><\/b><span data-contrast=\"auto\">. As explained above, a container contains only an application and its dependencies. It has no operating system, and thus relies on the host&#8217;s functionality. Consequently, a container requiring Linux functionality will need to run on a machine with a Linux operating system. Conversely, a container requiring Windows functionality will run on a Windows machine. However, virtualisation processes, such as Hyper-V for Windows, make it possible to overcome these constraints.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">To run a container on a machine, you simply need to install container management software (a container runtime). Among container platforms, Docker, lxd and Containerd are the most widely used.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><span data-contrast=\"auto\">This makes it easy to run a single container on a machine. However, companies often have a large number of applications. The problem then arises of managing and scaling the containers to be deployed.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">This is where <\/span><b><span data-contrast=\"auto\">container orchestrators<\/span><\/b><span data-contrast=\"auto\"> come in. An orchestrator makes it easy to manage the deployment, monitoring, lifecycle, scaling and networking of containers. These orchestrators can be configured on <\/span><b><span data-contrast=\"auto\">on-premise machines or through services made available by Cloud providers<\/span><\/b><span data-contrast=\"auto\">. In the latter case, they are easy to set up and configure, as they are managed by the Cloud provider. The most widely used orchestrator technology in companies is Kubernetes. There are also a number of products based on it, such as OpenShift. Other alternatives, such as Docker Swarn, also enable orchestration.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><span data-contrast=\"auto\">In some cases, there may be a need to manage and scale containers, all without managing the infrastructure. For this purpose<\/span><b><span data-contrast=\"auto\">, Cloud providers have made available services that enable containers to be run in a managed way<\/span><\/b><span data-contrast=\"auto\">. All the user has to do is specify a few configuration points. This type of service is called CaaS (Container as a Service).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The following infographic summarizes the execution models and the names of the technologies or services:\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22198 size-full\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/02-1.png\" alt=\"\" width=\"605\" height=\"254\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/02-1.png 605w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/02-1-437x183.png 437w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/02-1-71x30.png 71w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/>\u202f<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">This wide variety of deployment modes means that the container can be adapted to suit business needs. It&#8217;s important to remember that the <\/span><b><span data-contrast=\"auto\">security of a container at runtime also depends on the security of its infrastructure.<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h1 style=\"text-align: justify;\" aria-level=\"1\"><span data-contrast=\"none\">Focus on the <\/span><i><span data-contrast=\"none\">Kubernetes<\/span><\/i><span data-contrast=\"none\"> orchestrator\u00a0<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h1>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">As previously stated, Kubernetes and products based on this technology for orchestration are the most widespread. Kubernetes will be used to illustrate how an orchestrator works. To put it simply, let&#8217;s take the analogy of a container port.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22200 size-full\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/03-1.png\" alt=\"\" width=\"605\" height=\"419\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/03-1.png 605w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/03-1-276x191.png 276w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/03-1-56x39.png 56w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/span><\/p>\n<p>\u00a0<\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Let&#8217;s start with the <\/span><b><span data-contrast=\"auto\">worker nodes<\/span><\/b><span data-contrast=\"auto\">. These will be our <\/span><b><span data-contrast=\"auto\">container ships<\/span><\/b><span data-contrast=\"auto\">. Their role is to carry the load, i.e., to execute the orchestrator&#8217;s containers.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Kubernetes then introduces the concept of <\/span><b><span data-contrast=\"auto\">pods<\/span><\/b><span data-contrast=\"auto\">. A <\/span><b><span data-contrast=\"auto\">pod will be the containers<\/span><\/b><span data-contrast=\"auto\"> on the ships. A <\/span><b><span data-contrast=\"auto\">pod is generally made up of a single container<\/span><\/b><span data-contrast=\"auto\">. It is this component that runs the application to be deployed.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Next, we have the <\/span><b><span data-contrast=\"auto\">control plane, made up of master nodes<\/span><\/b><span data-contrast=\"auto\">. These are represented by the <\/span><b><span data-contrast=\"auto\">cranes<\/span><\/b><span data-contrast=\"auto\"> that dispatch the containers from one boat to another, according to the load each boat can accommodate. In Kubernetes technical terms, the master node will decide on which worker node(s) to execute pods. The <\/span><b><span data-contrast=\"auto\">master node is the cluster&#8217;s central point<\/span><\/b><span data-contrast=\"auto\">. It contains all the cluster&#8217;s intelligence. It&#8217;s also with this node that we interact to administer the cluster, and it&#8217;s with this node that the worker nodes interact to know what actions to perform according to the pods they&#8217;re executing (create new ones, destroy them&#8230;).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Finally, there&#8217;s a <\/span><b><span data-contrast=\"auto\">load balancer<\/span><\/b><span data-contrast=\"auto\">, represented in this analogy by the trucks carrying the containers. The load balancer distributes the load of incoming flows between pods. For example, if three pods are hosting the same application, the load balancer will distribute requests between the 3 pods, so as not to overload any one of them. The load balancer is the interface between the cluster and the outside world, just as trucks are the link to the outside of the port.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Here is a more traditional technical diagram showing the various components:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22202 size-full\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/04-1.png\" alt=\"\" width=\"1481\" height=\"904\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/04-1.png 1481w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/04-1-313x191.png 313w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/04-1-64x39.png 64w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/04-1-768x469.png 768w\" sizes=\"auto, (max-width: 1481px) 100vw, 1481px\" \/><\/p>\n<p>\u00a0<\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The following resource from the Kubernetes documentation describes the set of components.<a href=\"#_ftn2\" name=\"_ftnref1\">[2]<\/a><\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span data-contrast=\"none\">How can we secure containers at every stage of their lifecycle?<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h1>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Now that we&#8217;ve covered the basics, let&#8217;s take a look at how to secure it all. Security must be applied to every stage of a container&#8217;s lifecycle. Indeed, each stage presents its own challenges and associated security impacts. \u202f<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22204 size-full\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/05-1.png\" alt=\"\" width=\"590\" height=\"310\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/05-1.png 590w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/05-1-364x191.png 364w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/05-1-71x37.png 71w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>\u00a0<\/p>\n<h2 style=\"text-align: justify;\"><span data-contrast=\"none\">The image is first built<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The first step in the container lifecycle is to <\/span><b><span data-contrast=\"auto\">choose a base image<\/span><\/b><span data-contrast=\"auto\">. A container image is a set of lightweight software and files that includes everything needed to run an application: code, runtime, system tools, system libraries and parameters. In most cases, this image is retrieved from the Internet. There is therefore a risk of using an image from an unknown source that has already been compromised (with a backdoor, for example).\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">So, in this first stage, it&#8217;s vital to choose the source of your image carefully, to ensure that you take a &#8220;trusted image&#8221;. This can be achieved by using reference sources such as Docker Hub, or by creating your own image catalogue. In the latter case, the images are verified and validated upstream by the company&#8217;s security teams and are known as &#8220;golden images&#8221;.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The second step is to <\/span><b><span data-contrast=\"auto\">install an application on the image<\/span><\/b><span data-contrast=\"auto\">. There is therefore a classic risk of a vulnerability in the application code. Vulnerability scans, developer awareness and adherence to good development practices are essential here to prevent a vulnerability from creeping into the application code.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The third step is <\/span><b><span data-contrast=\"auto\">image configuration<\/span><\/b><span data-contrast=\"auto\">. These are default configurations applied when containers are deployed. For example, a <\/span><b><span data-contrast=\"auto\">container is run<\/span><\/b><span data-contrast=\"auto\"> with the <\/span><b><span data-contrast=\"auto\">root<\/span><\/b><span data-contrast=\"auto\"> (or system administrator) account <\/span><b><span data-contrast=\"auto\">by default<\/span><\/b><span data-contrast=\"auto\">: leaving this <\/span><b><span data-contrast=\"auto\">configuration unchanged represents a risk <\/span><\/b><span data-contrast=\"auto\">should the container be compromised. Furthermore, setting the container&#8217;s <\/span><b><span data-contrast=\"auto\">file system<\/span><\/b><span data-contrast=\"auto\"> to <\/span><b><span data-contrast=\"auto\">read-only<\/span><\/b><span data-contrast=\"auto\"> also limits the impact of a compromise. Indeed, with these two configurations, an attacker will have less free rein for his actions.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span data-contrast=\"none\">The image is then stored in a container repository<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Once the image has been built, it needs to be stored so that it can be accessed and deployed as many times as required. To do this, we use a container repository, which also needs to be secured. Indeed, if an attacker pushes a corrupted image into the container repository, it can be deployed in production.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Several security measures can be implemented to secure the container repository:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"8\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Restrict user or resource rights and permissions<\/span><\/b><span data-contrast=\"auto\"> on the repository to reduce risk: only people or resources who need to &#8220;push&#8221; or &#8220;pull&#8221; an image from the repository should be entitled to do so.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"8\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Restrict network exposure.<\/span><\/b><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"8\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Scan images<\/span><\/b><span data-contrast=\"auto\"> before they are deposited, at the time of push. This action limits the presence of compromised images on the container repository.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"8\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Sign pushed images<\/span><\/b><span data-contrast=\"auto\"> to ensure their integrity.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"8\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Keep a record of actions<\/span><\/b><span data-contrast=\"auto\"> carried out on the container repository.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span data-contrast=\"none\">This is followed by the image deployment phase<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Once the image has been built and stored, it needs to be deployed to make it accessible.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><b><span data-contrast=\"auto\">When a container is deployed, configurations are determined according to use cases.<\/span><\/b><span data-contrast=\"auto\"> Some configurations reduce the existing logical isolation between containers and the host. For example, you can authorize a container to list the host&#8217;s processes or share the same network card. Privileged configuration can even break down these isolation barriers, giving containers access to all host functions. <\/span><b><span data-contrast=\"auto\">These configurations, some of which are dangerous, can lead to container escapes<\/span><\/b><span data-contrast=\"auto\">: i.e., an attacker on a container can use these privileges to escape to the operating system. Once on the operating system, an attacker can obtain information from host files or initiate lateral moves. In other words, it&#8217;s one step further into the information system.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">In terms of deployment recommendations, the first step is to restrict container repositories to a known and trusted list. Subsequently, configurations such as AppArmor, Seccomp or the deactivation of Linux capabilities can be used to restrict system calls and resources used by containers. Finally, the container file system should be configured as read-only, and the principle of least privilege applied to configurations passed to containers. In other words, it&#8217;s <\/span><b><span data-contrast=\"auto\">necessary to limit the use of privileged configuration or the breaking of certain isolations<\/span><\/b><span data-contrast=\"auto\"> (process, network, etc.).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p>\u00a0<\/p>\n<h2 style=\"text-align: justify;\"><span data-contrast=\"none\">Finally, the container is executed<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">When it comes to execution, we&#8217;re going to focus on the methods favoured by enterprises. That is, orchestrators, often with Kubernetes, or container hosting services in the cloud, known as CaaS.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">In the case of Kubernetes orchestration, the first objective will be to <\/span><b><span data-contrast=\"auto\">verify the conformity of container deployments<\/span><\/b><span data-contrast=\"auto\">, in order to avoid the deployment of privileged dangerous containers. These may be the result of an attack or simply administrative errors. Depending on the platform, this may involve <\/span><i><span data-contrast=\"auto\">PodSecurityAdmission<\/span><\/i><span data-contrast=\"auto\">, <\/span><i><span data-contrast=\"auto\">SecurityContextConstraint<\/span><\/i><span data-contrast=\"auto\"> or external tools such as OPA <\/span><i><span data-contrast=\"auto\">Gatekeeper<\/span><\/i><span data-contrast=\"auto\">.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">It is also recommended to <\/span><b><span data-contrast=\"auto\">restrict network flows<\/span><\/b><span data-contrast=\"auto\"> within the cluster, between containers, and out of the cluster to restrict lateral movements. This restriction can be applied with <\/span><i><span data-contrast=\"auto\">NetworkPolicy<\/span><\/i><span data-contrast=\"auto\"> or again with external micro-segmentation tools. Finally, it will be necessary to <\/span><b><span data-contrast=\"auto\">have fine-grained role and user management<\/span><\/b><span data-contrast=\"auto\">, and to apply sufficient hardening to the virtual machines serving as nodes.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">In the case of CaaS, the infrastructure is managed by the cloud provider. As a user, hardening can only be achieved by enabling or disabling certain options. An analysis of each solution will be necessary to define precise recommendations, as Azure, Google Cloud Platform and Amazon Web Services all offer different options.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span data-contrast=\"none\">Eventually, monitor all stages<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Container monitoring is important for debugging purposes and for recovering evidence in the event of an incident. Unfortunately, unlike a virtual machine, a <\/span><b><span data-contrast=\"auto\">container is ephemeral<\/span><\/b><span data-contrast=\"auto\">. So are its logs&#8230; So how do you go about it?<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Monitoring can be carried out at three levels:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">At container level, by outsourcing logs (to combat the ephemeral nature of containers and their logs)<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">at container workload level<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">Infrastructure level (cluster nodes, for example)<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">This collected logging can be managed by dedicated SOC Cloud teams or centralized in the company\u2019s SIEM. <\/span><b><span data-contrast=\"auto\">Detection scenarios can then be created<\/span><\/b><span data-contrast=\"auto\"> to detect IAM modifications, abnormal resource consumption and so on.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">It\u2019s worth mentioning that CaaS solutions and Kubernetes managed by a Cloud provider (AKS, EKS, GKE, &#8230;) make it easy to centralize and externalize these logs.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">This section covered the best practices to be followed and the risks associated with each stage in a container\u2019s life cycle. The diagram below provides a summary:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\"> <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22206 size-full\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/06-1.png\" alt=\"\" width=\"605\" height=\"370\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/06-1.png 605w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/06-1-312x191.png 312w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/06-1-64x39.png 64w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span data-contrast=\"none\">CWPP, the solution to our problems?<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h1>\n<p style=\"text-align: justify;\"><b><span data-contrast=\"auto\">CWPP, Cloud Workload Protection Platform<\/span><\/b><span data-contrast=\"auto\">, is a new tool we\u2019re hearing a lot about at the moment. But what does it do?<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">A CWPP is a tool for monitoring and detecting threats to workloads, i.e., all services running in the cloud, and in particular containers. It helps to ensure security throughout the lifecycle described above. It is particularly useful for detecting secrets and vulnerabilities in application libraries, reviewing repository access, checking configurations, and managing monitoring (log collection, detection, and remediation).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Like all tools, CWPP is not magic. It will need to be deployed with or without an agent, depending on the scenarios you wish to cover. But beyond the technical aspect of deployment, it will be necessary to integrate it into the company&#8217;s processes, so that all players have a tool enabling them to optimize security. We must therefore not underestimate the work involved in defining strategy, new processes, and support for change, as well as the integration of the tool with the tools used by developers. For example, a developer will want to be informed that they need to remediate a container on their incident management tool (JIRA, issue in the project Git&#8230;) and be able to test their new container from their machine before even pushing it into the container repository. <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The functionalities of a CWPP are often already partially or fully covered by existing tools, and its implementation can help centralize vision and sometimes optimize licensing costs.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span data-contrast=\"none\">Key elements of container security<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h1>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">As you can see from this article, containers were born for infrastructure needs. Their lightness and flexibility make them a perfect asset for today&#8217;s application needs. The implementation of containers mean that new attack surfaces need to be protected, and that container security needs to be taken into account. <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Unfortunately, there is no single tool or best practice to follow. In fact, as the article illustrates, it&#8217;s a combination of elements that make it possible to secure these application boxes. Among the best practices to be observed, the following 5 points are the key elements to remember:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ol style=\"text-align: justify;\">\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:1068,&quot;335559991&quot;:708,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Control images:<\/span><\/b><span data-contrast=\"auto\"> by using a hardened trusted image, securing source code, and performing vulnerability scans.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ol>\n<ol style=\"text-align: justify;\">\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:1068,&quot;335559991&quot;:708,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Secure container isolation:<\/span><\/b><span data-contrast=\"auto\"> by avoiding dangerous configurations when deploying containers and by hardening images.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ol>\n<ol style=\"text-align: justify;\">\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:1068,&quot;335559991&quot;:708,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Ensure network segmentation:<\/span><\/b><span data-contrast=\"auto\"> by restricting the cluster&#8217;s external exposure, flows within the cluster and out of the cluster.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ol>\n<ol style=\"text-align: justify;\">\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:1068,&quot;335559991&quot;:708,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"4\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Monitoring and detection:<\/span><\/b><span data-contrast=\"auto\"> by retrieving logs at 3 different levels and setting up detection scenarios<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ol>\n<ol>\n<li style=\"text-align: justify;\" data-leveltext=\"%1.\" data-font=\"\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:1068,&quot;335559991&quot;:708,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"5\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Secure IAM access:<\/span><\/b><span data-contrast=\"auto\"> by applying fine-grained IAM management on the cluster or on the Cloud provider. This management can be accompanied by periodic reviews.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ol>\n<p><a href=\"#_ftnref1\" name=\"_ftn1\">[1]<\/a> <a href=\"https:\/\/www.lemondeinformatique.fr\/actualites\/lire-l-usage-des-containers-en-production-bondit-a-84-78347.html\">https:\/\/www.lemondeinformatique.fr\/actualites\/lire-l-usage-des-containers-en-production-bondit-a-84-78347.html<\/a><\/p>\n<p><a href=\"#_ftnref2\" name=\"_ftn1\">[2]<\/a> <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/components\/\">https:\/\/kubernetes.io\/docs\/concepts\/overview\/components\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Containers represent an opportunity for rapid, flexible, and efficient application deployment.\u00a0\u00a0 In 2019, 84% of production infrastructures were already using containers[1]. As it is often the case, this massive adoption has taken place without the integration of Cybersecurity teams, sometimes&#8230;<\/p>\n","protected":false},"author":1488,"featured_media":22187,"comment_status":"open","ping_status":"closed","sticky":true,"template":"page-templates\/tmpl-one.php","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3266,3922],"tags":[3208,4335],"coauthors":[4336,4337],"class_list":["post-22194","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-next-gen-it-security-en","category-deep-dive-en","tag-cloud-en","tag-container"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Safe sailing: step-by-step container security\u00a0 - RiskInsight<\/title>\n<meta name=\"description\" content=\"Containers represent an opportunity for rapid, flexible, and efficient application deployment. In 2019, 84% of production infrastructures were already using containers. As it is often the case, this massive adoption has taken place without the integration of Cybersecurity teams, sometimes out of ignorance of the technology, and sometimes out of a vision of simplicity and efficiency for development teams.\" \/>\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.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Safe sailing: step-by-step container security\u00a0 - RiskInsight\" \/>\n<meta property=\"og:description\" content=\"Containers represent an opportunity for rapid, flexible, and efficient application deployment. In 2019, 84% of production infrastructures were already using containers. As it is often the case, this massive adoption has taken place without the integration of Cybersecurity teams, sometimes out of ignorance of the technology, and sometimes out of a vision of simplicity and efficiency for development teams.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/\" \/>\n<meta property=\"og:site_name\" content=\"RiskInsight\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-11T09:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2250\" \/>\n\t<meta property=\"og:image:height\" content=\"1500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Elise JOUSSELIN, Th\u00e9o BOUR\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elise JOUSSELIN, Th\u00e9o BOUR\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/\"},\"author\":{\"name\":\"Elise JOUSSELIN\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/4363757bd933f82f80943cdae884ff8b\"},\"headline\":\"Safe sailing: step-by-step container security\u00a0\",\"datePublished\":\"2024-01-11T09:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/\"},\"wordCount\":2592,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg\",\"keywords\":[\"cloud\",\"container\"],\"articleSection\":[\"Cloud &amp; Next-Gen IT Security\",\"Deep-dive\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/\",\"name\":\"Safe sailing: step-by-step container security\u00a0 - RiskInsight\",\"isPartOf\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg\",\"datePublished\":\"2024-01-11T09:00:00+00:00\",\"description\":\"Containers represent an opportunity for rapid, flexible, and efficient application deployment. In 2019, 84% of production infrastructures were already using containers. As it is often the case, this massive adoption has taken place without the integration of Cybersecurity teams, sometimes out of ignorance of the technology, and sometimes out of a vision of simplicity and efficiency for development teams.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#primaryimage\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg\",\"contentUrl\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg\",\"width\":2250,\"height\":1500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.riskinsight-wavestone.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Safe sailing: step-by-step container security\u00a0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#website\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/en\/\",\"name\":\"RiskInsight\",\"description\":\"The cybersecurity &amp; digital trust blog by Wavestone&#039;s consultants\",\"publisher\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.riskinsight-wavestone.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#organization\",\"name\":\"Wavestone\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png\",\"contentUrl\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png\",\"width\":50,\"height\":50,\"caption\":\"Wavestone\"},\"image\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/4363757bd933f82f80943cdae884ff8b\",\"name\":\"Elise JOUSSELIN\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/en\/author\/elise-jousselin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Safe sailing: step-by-step container security\u00a0 - RiskInsight","description":"Containers represent an opportunity for rapid, flexible, and efficient application deployment. In 2019, 84% of production infrastructures were already using containers. As it is often the case, this massive adoption has taken place without the integration of Cybersecurity teams, sometimes out of ignorance of the technology, and sometimes out of a vision of simplicity and efficiency for development teams.","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.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/","og_locale":"en_US","og_type":"article","og_title":"Safe sailing: step-by-step container security\u00a0 - RiskInsight","og_description":"Containers represent an opportunity for rapid, flexible, and efficient application deployment. In 2019, 84% of production infrastructures were already using containers. As it is often the case, this massive adoption has taken place without the integration of Cybersecurity teams, sometimes out of ignorance of the technology, and sometimes out of a vision of simplicity and efficiency for development teams.","og_url":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/","og_site_name":"RiskInsight","article_published_time":"2024-01-11T09:00:00+00:00","og_image":[{"width":2250,"height":1500,"url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg","type":"image\/jpeg"}],"author":"Elise JOUSSELIN, Th\u00e9o BOUR","twitter_misc":{"Written by":"Elise JOUSSELIN, Th\u00e9o BOUR","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#article","isPartOf":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/"},"author":{"name":"Elise JOUSSELIN","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/4363757bd933f82f80943cdae884ff8b"},"headline":"Safe sailing: step-by-step container security\u00a0","datePublished":"2024-01-11T09:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/"},"wordCount":2592,"commentCount":0,"publisher":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#primaryimage"},"thumbnailUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg","keywords":["cloud","container"],"articleSection":["Cloud &amp; Next-Gen IT Security","Deep-dive"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/","url":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/","name":"Safe sailing: step-by-step container security\u00a0 - RiskInsight","isPartOf":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#primaryimage"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#primaryimage"},"thumbnailUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg","datePublished":"2024-01-11T09:00:00+00:00","description":"Containers represent an opportunity for rapid, flexible, and efficient application deployment. In 2019, 84% of production infrastructures were already using containers. As it is often the case, this massive adoption has taken place without the integration of Cybersecurity teams, sometimes out of ignorance of the technology, and sometimes out of a vision of simplicity and efficiency for development teams.","breadcrumb":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#primaryimage","url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg","contentUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2024\/01\/fonds-ecran.jpeg","width":2250,"height":1500},{"@type":"BreadcrumbList","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2024\/01\/safe-sailing-step-by-step-container-security\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.riskinsight-wavestone.com\/en\/"},{"@type":"ListItem","position":2,"name":"Safe sailing: step-by-step container security\u00a0"}]},{"@type":"WebSite","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#website","url":"https:\/\/www.riskinsight-wavestone.com\/en\/","name":"RiskInsight","description":"The cybersecurity &amp; digital trust blog by Wavestone&#039;s consultants","publisher":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.riskinsight-wavestone.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization","name":"Wavestone","url":"https:\/\/www.riskinsight-wavestone.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png","contentUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png","width":50,"height":50,"caption":"Wavestone"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/4363757bd933f82f80943cdae884ff8b","name":"Elise JOUSSELIN","url":"https:\/\/www.riskinsight-wavestone.com\/en\/author\/elise-jousselin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/22194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/users\/1488"}],"replies":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/comments?post=22194"}],"version-history":[{"count":3,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/22194\/revisions"}],"predecessor-version":[{"id":22209,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/22194\/revisions\/22209"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/media\/22187"}],"wp:attachment":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/media?parent=22194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/categories?post=22194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/tags?post=22194"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/coauthors?post=22194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}