Get a Demo
Under Attack?
context-first-data

Why Context-First Data Is the Future of Cloud Security

Miguel De Los Santos February 27, 2026

The Problem Nobody Wants to Admit 

More data doesn’t automatically mean better security. It often means more homework.

Anyone who has sat in a security engineering seat knows the drill: map private to public IPs, line up container IDs with hosts, connect GUIDs to service accounts, and reconcile correlation IDs across distributed apps. Each source speaks a different dialect. You end up building a custom Rosetta Stone—parsers, lookup tables, and duct tape—hoping nothing breaks upstream.

image-1024x632

Context-First Data Is The Future Of Cloud Security

The Problem Nobody Wants to Admit 

More data doesn’t automatically mean better security. It often means more homework.

Anyone who has sat in a security engineering seat knows the drill: map private to public IPs, line up container IDs with hosts, connect GUIDs to service accounts, and reconcile correlation IDs across distributed apps. Each source speaks a different dialect. You end up building a custom Rosetta Stone—parsers, lookup tables, and duct tape—hoping nothing breaks upstream.

Collecting data is easy. Using it—in time to matter—is hard.

The Shift

From Tool-Centric to Data-Centric we’re conditioned to think in categories and dashboards. But the real question isn’t “Which tool fits this box?” it’s “Which data, with the right context, helps us decide and act now?”

At Upwind, we call the answer a Security Fabric: a data layer that arrives pre-correlated across:

  • Cloud control plane: who did what, when, and to which resources
  • Data plane: what actually flows through your infrastructure
  • Runtime telemetry: process, network, file activity
  • The crosswalk: how a container IP maps to a Kubernetes service, to an API endpoint, to an IAM role

The magic isn’t aggregation. It’s correlation.

The Hidden Tax of “Bring Your Own Context” Alerts

Without context, they’re a tax on engineer hours—enrichment, correlation, and investigation that should have been built in from the start. 

Vulnerability noise is a perfect example: mountains of “critical” items that never execute in production, drowning teams in work that doesn’t change risk. When findings are validated against real runtime behavior, you get fewer, clearer, more trustworthy signals—ready for action and automation inside your environment.

A Concrete Example: “Is This Lambda Supposed To Be Public?” 

Here’s a scenario everyone has seen: a Lambda behind a public API endpoint. Sometimes that’s intentional (a payment webhook). Sometimes it’s a mistake (an internal function accidentally exposed). The difference really matters.

A minimal Terraform snippet that could be risky:

resource "aws_lambda_function" "payment_webhook" {
  function_name = "payment-webhook"
  runtime       = "python3.11"
  handler       = "handler.main"
  role          = aws_iam_role.lambda_role.arn
}

resource "aws_api_gateway_rest_api" "webhook_api" {
  name = "payment-webhook-api"
  # ⚠️ NO authentication configured!
}

resource "aws_api_gateway_method" "webhook_post" {
  rest_api_id   = aws_api_gateway_rest_api.webhook_api.id
  resource_id   = aws_api_gateway_resource.webhook.id
  http_method   = "POST"
  authorization = "NONE"  # ⚠️ Public access!
}

Why does this get messy fast? In real life, context is scattered. 

  1. CloudTrail records API calls like CreateFunction, PutMethod, UpdateRolePolicy, CreateRestApi, DeployStage—each a breadcrumb.
  2. IAM tells you who touched what. Tags tell you “why” (if you’re lucky). API Gateway shows exposure details. Lambda config shows handlers and env vars. VPC settings influence reachability.

None of that meaning lives in one place. You stitch it together.

The Human Element

What you end up doing is the “human join.”

  • You scan CloudTrail to see when the function and API were created, by whom, and if access changed recently.
  • You check the IAM role to confirm permissions are scoped.
  • You look for expected inbound sources (e.g., calls from Stripe IPs) and whether requests are signature-verified.
  • You ask: Is this endpoint documented? Is it receiving the traffic we think it is? Is it running in a VPC? Does runtime behavior match the intended purpose?

Every one of those bullets maps to a log, event, or config you’d have to correlate by hand. That’s the tax.

Traveling with Context

This is what a Security Fabric delivers: alerts that arrive complete, trustworthy, and immediately actionable:

{
  "first_seen_time": "2024-07-29T15:51:28.071Z",
  "id": "vuln-lambda-payment-webhook-urllib3-CVE-2021-33503",
  "package": {
    "framework": "aws-lambda-python",
    "in_use": true,
    "name": "urllib3",
    "type": "python",
    "version": "1.26.5"
  },
  "remediation": [
    {
      "type": "OFFICIAL_FIX",
      "data": {
        "fixed_in_version": "1.26.18"
      }
    }
  ],
  "resource": {
    "cloud_provider": "AWS",
    "id": "arn:aws:lambda:us-east-1:123456789012:function:payment-webhook",
    "name": "payment-webhook",
    "region": "us-east-1",
    "internet_exposure": { "ingress": { "active_communication": true } },
    "risk_categories": [
      "Public Endpoint",
      "Runtime-Used Package Vulnerability"
    ],
    "type": "AWS::Lambda::Function"
  },
  "status": "OPEN",
  "vulnerability": {
    "nvd_cve_id": "CVE-2021-33503",
    "name": "urllib3 request splitting",
    "nvd_cvss_v3_score": "3.7",
    "nvd_cvss_v3_severity": "LOW",
    "exploitable": true,
    "description": "urllib3 < 1.26.18 may allow header injection in specific redirect scenarios.",
    "nvd_publish_time": "2021-06-01T00:00:00.000Z"
  }
}

Same surface symptom (a public Lambda). Completely different response—because context traveled with the alert.

What Your Security Fabric Should Provide

To understand the broader concept of a genuine Security Fabric—beyond the preceding example—let’s examine it step by step.

First, a pre-correlated identity mapping: Tie cloud resources, network identities, and humans—no manual lookups.

image-1-1024x776

Runtime validation: Prioritize what actually executes and is reachable in production.

image-2-1024x776

Topology awareness: Know if a finding touches a public entry point versus an internal batch job.

image-4-1024x848

Temporal context: Detects new behavior, recent changes, and the actors behind them.

image-5-1024x762

Actionability: High-confidence findings should plug directly into your workflows for automated handling where appropriate.

image-6-1024x645

The Path Forward 

We’ve proven that aggregating diverse sources adds value. We’ve also proven that correlation-as-homework doesn’t scale. The next wave isn’t “more feeds”—it’s data that arrives already contextualized and decision-ready. That’s what a Security Fabric is for: delivering signal, not noise.

When you evaluate your security approach, don’t start with categories. Start with questions:

  • What decisions do we need to make quickly?
  • What context must arrive with each signal to make those decisions?
  • How much effort does it take to get that context today?

If the answer is “a lot,” you’re paying the wrong tax.

Final Thoughts 

We’ve all heard that a picture is worth a thousand words. What we forget is that a picture is made of thousands of pixels. A single pixel means nothing. It’s just noise. Meaning appears when pixels connect – when colors align, edges form, and contrast creates depth.

That’s the promise of the Upwind Security Fabric.

Every AWS account, Azure subscription, GCP project, bucket, workload, identity, and network flow is a pixel. On its own, it’s an inventory. Connected, it becomes understanding. You don’t query five tools to trace traffic. You don’t pivot across dashboards to map identity, workload, and data flow. The picture is already rendered.

For years, security has focused on collecting more pixels – more logs, more telemetry, more coverage. But coverage isn’t clarity.

The next evolution in security isn’t adding data. It’s connecting it. When evaluating a security platform, ask one simple question: How fast can I see the full picture?

If it takes hours to assemble, you’re not seeing the story.

You’re just counting pixels.

See It In Action 

If you’d like to see how this feature fits into your environment – or to explore how Upwind can help you prioritize and remediate risk more effectively – schedule a customized demo with us. We’ll walk through your use cases, integrations, and security goals to show how Upwind delivers actionable cloud security at scale.

Contents

Further Reading

Yuval_ArgoCD Research

ArgoCD repoURL XSS: How a Missing Scheme Check Becomes Cluster Takeover 

Executive Summary  This stored cross-site scripting (XSS) vulnerability in ArgoCD [versions <= 3.4.4] allows an attacker who can create or modify an Application to persist a malicious repoURL, which is subsequently executed in an administrator's browser within the Argo CD origin. Because the payload executes in the context of the administrator's authenticated session, and because…
Custom-Reporting-Hero

Security Reporting Built Around Your Program

We've all been there: it's 3:00 PM on a Friday, and you get that "quick" request for a specific security status report. Suddenly, your afternoon is gone as you juggle filters, export CSVs, and try to explain to someone outside the security team why these numbers actually matter. Reporting shouldn't feel like a fire drill…
Blue-agent-blog

Introducing the Upwind Blue Agent: Autonomous Threat Investigation for the SOC

We’re excited to announce that the Upwind Blue Agent is now available in Beta. Blue is an AI-powered SOC investigator that autonomously investigates Upwind Threat Stories end to end. It gathers and correlates security context across the customer environment, evaluates the available evidence, and delivers one of three clear verdicts: Each verdict includes supporting reasoning…
Add the Upwind RSS Feed to Slack
Connect the Upwind RSS Feed to your Slack.
Follow the how-to here.
Threat RSS
Add the Upwind RSS Feed to Slack
Connect the Upwind RSS Feed to your Slack.
Follow the how-to here.
Main RSS