Learning Library

← Back to Library

Securing In‑Memory Data with Data Shield

Key Points

  • Pratheek Karnati introduces IBM Cloud Data Shield, a deployment‑time solution that enables confidential computing on x86/Intel SGX without code changes to protect data in use.
  • Data Shield, powered by Fortanix Runtime Encryption, supports multiple runtimes (C/C++, Java, Python, Rust) and integrates with IBM’s Hyper Protect MongoDB for fully encrypted data at rest, in transit, and in memory.
  • The demo application “Cloud Fund” illustrates a typical three‑tier containerized app on Kubernetes, where a privileged admin could dump the backend API’s memory and exfiltrate sensitive credit‑card information.
  • By applying Data Shield, the demo shows how the backend’s memory is encrypted within a trusted execution environment, mitigating privilege‑escalation attacks that target plaintext data in RAM.
  • Installation involves preparing a compatible cluster, running prerequisite commands, and deploying Data Shield via a Helm chart with your email and account details to provision a dedicated singleton instance.

Full Transcript

# Securing In‑Memory Data with Data Shield **Source:** [https://www.youtube.com/watch?v=j64WdNBqoWk](https://www.youtube.com/watch?v=j64WdNBqoWk) **Duration:** 00:06:26 ## Summary - Pratheek Karnati introduces IBM Cloud Data Shield, a deployment‑time solution that enables confidential computing on x86/Intel SGX without code changes to protect data in use. - Data Shield, powered by Fortanix Runtime Encryption, supports multiple runtimes (C/C++, Java, Python, Rust) and integrates with IBM’s Hyper Protect MongoDB for fully encrypted data at rest, in transit, and in memory. - The demo application “Cloud Fund” illustrates a typical three‑tier containerized app on Kubernetes, where a privileged admin could dump the backend API’s memory and exfiltrate sensitive credit‑card information. - By applying Data Shield, the demo shows how the backend’s memory is encrypted within a trusted execution environment, mitigating privilege‑escalation attacks that target plaintext data in RAM. - Installation involves preparing a compatible cluster, running prerequisite commands, and deploying Data Shield via a Helm chart with your email and account details to provision a dedicated singleton instance. ## Sections - [00:00:00](https://www.youtube.com/watch?v=j64WdNBqoWk&t=0s) **Securing Container Data with Data Shield** - The speaker introduces IBM Cloud Data Shield, explains its confidential‑computing approach to protect data in use across the lifecycle, and showcases its use on a Kubernetes‑based Python demo application called Cloud Fund. - [00:03:05](https://www.youtube.com/watch?v=j64WdNBqoWk&t=185s) **Deploying Data Shield for SGX Encryption** - The speaker walks through installing Data Shield via Helm on a Kubernetes worker node, using its UI to manage nodes and attestation, and converting a standard container into an SGX‑enabled, runtime‑memory‑encrypted image via a CI/CD API call without modifying application code. - [00:06:07](https://www.youtube.com/watch?v=j64WdNBqoWk&t=367s) **IBM Cloud Data Shield Pitch** - The speaker promotes IBM Cloud Data Shield as a tool that automatically safeguards sensitive in‑memory data throughout development and deployment without requiring any code changes, inviting listeners to try it and ask questions. ## Full Transcript
0:00- Hello, I am Pratheek Karnati, Security Architect 0:02for IBM Cloud. 0:04Today we are going to look at IBM Cloud Data Shield 0:07and how it enables you to protect 0:08your containerized applications data in use or in memory. 0:12We are going to see this in action with the help 0:14of a demo application we built called Cloud Fund. 0:17But first, let's talk about data protection. 0:20We believe it requires protection of data 0:22throughout its life cycle. 0:23In transit, at rest, and also in use. 0:27And we have been on a mission to address that 0:29with confidential computing which protects data 0:31in use by performing computation 0:33in hardware-based trusted execution environment. 0:36And Data Shield, is a deployment time tool 0:39that helps you adopt confidential computing 0:41on x86 platforms. 0:42Specifically, Intel Software Guard Extensions 0:45with no code changes. 0:47Let's see how this works. 0:49Cloud Fund is a Python app we built for this demo. 0:52And yes, we Data Shield power by Fortanix Runtime Encryption 0:55in addition to C/C++. 0:57We also support Java, Python and RUST runtimes on SGX. 1:02Cloud Fund is a containerized application 1:03running on Kubernetes, 1:05Cloud Fund is a typical three-tier application with a UI, 1:08backend API and a database. 1:10For the database, we are using confidential database service 1:13from a portfolio called Hyper Protect MongoDB. 1:16So it is very secure. 1:18For this demo, let's focus on the threat vectors 1:20that come at the backend API layer 1:22and how it privileged user infrastructure admin, 1:25for example, with no access to database can steal 1:27sensitive data from the backend API's memory. 1:31As a narrative element for this demo, 1:33we are using Cloud Fund to donate money to a charity. 1:36Let's see how it works. 1:39So I open the Cloud Fund application in the browser. 1:43I click donate now. 1:45Here I'm giving the details and importantly, 1:48I'm giving the personal information 1:49and also the credit card number. 1:53And the expiration date and the CVV and click submit. 1:59Now the data goes through the backend API. 2:02Now let's see how it privileges that attack and play out. 2:05Here I'm logged into the server as privileged user. 2:08So how my terminal open. 2:09I'm trying to log into the workload in question, 2:13once I'm in there, let's find the processing question. 2:15The Python app I was talking about. 2:21Once I have that, let's find a PID. 2:24Once I have that let's memory dump it. 2:30Now let's look for strings in the memory dump. 2:37That's a lot of data let's ask for my name. 2:46As you can see, this is a problem. 2:48This application is vulnerable to privileges that attacks 2:50targeting its memory contents. 2:52Now let's see how you can protect your applications data 2:55and use the Data Shield. 2:57Let's take a look at Data Shield documentation. 2:59You start your journey in the getting started page. 3:02One of the first things you do is you have the right 3:04cluster. 3:05The right worker node. 3:07And you run a couple of commands for prerequisites 3:12and you install Data Shield through this helm shot. 3:18The places value for the chart name, your email ID, 3:21account ID on English subdomain. 3:23And you get your dedicated singleton instance 3:25of Data Shield running natively on your cluster. 3:28Now let's look at the UI. 3:31You log into the UI using IBM token. 3:35Once your in there, 3:37you can manage your worker nodes 3:38and look at the attestation reports. 3:43You can create apps and bills for your pipelines. 3:47You can create tasks so it can approved or denied build. 3:50On the user section, you can add your teammates 3:53or you can manage them. 3:55Now let's go back to the application and see how easy it is 3:58to convert your application from its current state 4:01to runtime memory encrypted counterpart. 4:03Since Data Shield is a deployment time tool, 4:05you don't have to make any changes to your code. 4:08You make this API code from your CICD pipeline prior 4:11to deployment of your application. 4:16Replaces values here with your application container name 4:19and the new name for the new SGX capable image we create 4:22for you. 4:24When you call this API since it gives Data Shield, 4:26read-write privileges to your container registry 4:28at installation. 4:30Data Shield pulls the current image converts 4:32and packages to SGX capable counterpart 4:35and pushes the new image back to your registry. 4:38Now you continue with your CD process 4:41and deploy your new runtime memory encrypted backend API. 4:45Let's look at the changes you make to the YAML real quick. 4:49As you can see, all we need is a couple of volume mounts 4:51for SGX drivers. 4:53You can find an example of a YAML in our documentation. 4:57Let's go ahead and deploy this new backend API 4:59and perform the same steps as earlier. 5:02I'm on the terminal, I'm deploying the new API. 5:08Once it's up, let's go to the browser under the same steps 5:11as before. 5:13I'm in the Cloud Fund, 5:14I'm donating to Cloud Fund, I gave my name, my address, 5:19my telephone number, my credit card number 5:23and my expiration date and the CVV and click submit. 5:28Now let's go back to the terminal again 5:29and try to scrape for text in the memory dump 5:31of this process. 5:34Here I am in the worker node. 5:36I'm trying to search for the process here on the PID. 5:40Once I have the PID lets memory dump the process. 5:47Once we memory dump it, 5:48let's scan for plain text in this memory dump 5:52and to make it easier, let's give him a name. 5:56But you see nothing because the memory is encrypted. 6:00There you have it. 6:01In about five minutes, you go from an application 6:04that is vulnerable to a runtime memory encrypted 6:06counterpart. 6:07Data Shield helps you and your team do what you do best 6:10developing stellar apps. 6:13Data should takes the burden off from the development 6:15to the deployment time on how to protect your sensitive data 6:18in memory without any code changes. 6:21Please give IBM Cloud Data Shield a try 6:23and reach out if you have any questions. 6:25Thank you.