As you are modernizing your enterprise, how do you mitigate the risks
and vulnerabilities associated with transitioning into a container architecture?
Hi, my name is Charles and I'm a Cloud Developer here with IBM Cloud.
Today, I'm going to give you a general overview and an introduction to how you can begin
to secure your container environment.
Let's say that you're an enterprise and you're using VMs to host your application code
and you want to transition into using containers.
Containers are really great because they allow you
to smoothen the application development pipeline and they can be deployed just about anywhere.
However, because of this flexibility of being able to deploy just about anywhere,
a whole new variety of attack services exist surrounding the container environment.
Some of these include the images that you use to build your containers; the image registries
that we use to store our images in; the container run times
which we use to execute our containers.
And, the orchestration platforms which we use
to manage the lifecycle of multiple containers with.
And lastly, the host OS which manages the Docker client and the Docker daemon and the kernel
of which is shared with our running Docker containers.
So, when we look at images as a potential vulnerability, one of the best things
that we can do to address this vulnerability is to make sure
that we're keeping our images up to date.
And the reason this is so important is because images that are
up to date typically have the latest security patches which protect you
from the latest vulnerabilities that they track.
We also want to make sure that we're regularly scanning our images so that we can keep track
of any new vulnerabilities that may not have already been caught.
And we also want to make sure that we're signing our images.
And signing an image will essentially create a digital fingerprint that you can use
to cryptographically test and verify whoever it was
that was trying to manipulate the image with.
Now, image registries are a potential vulnerability, because they contain all
of these images which contain your application code.
And so in order to keep them secure, you want to make sure
that you're keeping your image registries private and a private registry really is one
that gives you absolute control over the types of images, how many images
and the access control of the users that are accessing the registry.
You also want to make sure that you're regularly monitoring your registry
so that you can track any vulnerabilities that may come about, and you want to make sure
that the host server for the registry is secure so that you can protect it
from being compromised and you can protect your images
and the application code from being accessed.
When it comes to the container run time, run times can be a little bit tricky
because historically security tools related to containers monitor more the communication
around them rather than what's happening inside.
So, one of the best things you can do is to make sure that you're app security is up to par
and you also want to make sure that you are monitoring your network protocols
and your network payloads.
You also want to make sure that you're monitoring the host as well.
When it comes to orchestration softwares, these are platforms
such as Kubernetes or container platforms like OCP.
And what's great about these is that they include lots of access control capabilities
which means that you can easily set limits not just on the number of privileged users
that you have -- which is an important thing to do --
but also the amount of privilege that you give any one user so that if the user is compromised,
they're not able to attack your entire orchestration platform.
You also want to make sure that you are monitoring your orchestration platform as well.
And that you're monitoring the pod communication within the orchestration platform.
When it comes to the host OS, this is potentially one of the greatest vulnerabilities
that you can have in your container environment because the host OS
if compromised will give the attacker essentially access
to your entire application environment.
So, in order to help to mitigate this, it's good to have a slim OS,
something like SE Linux is a great option.
You also want to make sure that you have access control implemented within your OS and you want
to make sure that you're also regularly monitoring the OS as well
for any vulnerabilities to protect it from being compromised.
And so these are the a few of the potential vulnerabilities that exist
in the space surrounding your container.
When it comes to protecting the container itself, there's a lot of great open source tools
that exist and one of them falls under the category of scanning.
It's sort of the de facto option when it comes to scanning tools
for containers and it's called Docker Bench.
And Docker Bench is great because it's really just a simple script that runs
and it will test your container against dozens
of different container production deployment best practices,
and it will let you know how your container does against it.
Open Scap is another great option which it sort of will collect and analyze different...oh,
sorry, it will allow you to create schedules around continuous scanning for your container.
Now, when it comes to monitoring tools, a really great option is called Prometheus,
and Prometheus is great because this one will allow you to collect
and analyze different metrics around communication between different node end points.
Lastly, when it comes to firewall tools, Cilium is a fantastic option because it will allow you
to analyze communication in your network and also the communication
between all the different application services that you have.
So, just to recap.
We've gone over a few of the vulnerabilities that exist in the environment
around the container and then we've gone over some really great open source tools
that can help to secure your container.
Thank you.
If you have questions, please drop us a line below.
If you want to see more videos like this in the future, please like and subscribe.
And don't forget, you can grow your skills and earn a badge with IBM Cloud Labs which are free,
browser based, interactive Kubernetes labs.