← All stories
● Covered by 1 source · 1 reportMedium impact1 neutral

Shopify Develops Overexposed Scanner for GKE Ingress and Cloud Run Exposure Detection

🔄 Updated 5d ago
New to BrevFeed? We gather this story from every outlet covering it into one summary — ranked by real-world impact, not just the latest headline — so you never miss what matters. What is BrevFeed? →

Key points

  • Shopify released Overexposed, an internal security scanner.
  • It detects unauthenticated GKE Ingresses and Cloud Run services.
  • New version uses GCP Cloud Asset Inventory and HTTP probes.
  • Reduced inconclusive Ingress verdicts by 80% after tuning.
  • Original scanner had false positives and blind spots.

Introduction of Overexposed Scanner

Shopify has developed and introduced an internal security scanner named Overexposed. This tool is designed to locate Kubernetes Ingresses on Google Kubernetes Engine (GKE) and Cloud Run services that are accessible from the internet without requiring authentication.

Addressing Previous Scanner Limitations

The initial version of the scanner relied on repository configuration files, which led to false alarms and blind spots. This approach failed because proxy authentication annotations could trigger false positives, admission controllers could rewrite settings inconsistently, and Ingresses created by other tools were missed. Shopify concluded that repository configurations show intent, but the cluster reflects what is actually enforced.

The team rebuilt the scanner using GCP Cloud Asset Inventory and an anonymous HTTP probe. This revision significantly improved accuracy, reducing inconclusive Ingress verdicts by approximately 80% within a few weeks of tuning.

Current Scanner Operation

The current Overexposed scanner operates on a schedule, querying Cloud Asset Inventory for Ingresses accepted by GKE, Cloud Run services, and load balancers. It also retrieves access policies without needing cluster credentials. This inventory-based approach also identified Cloud Run services in projects previously outside the scanner's scope.

Each potential candidate service then receives a single anonymous HTTP request. The scanner first sends a HEAD request, falls back to GET, follows up to three redirects, and checks path variations like '/ADMIN'. Results are categorized into six verdicts: exposed, expected, protected, not found, unreachable, and inconclusive. An 'expected' verdict applies to open endpoints that match a reviewed, in-code allowlist entry by exact host and path. Allowlisted endpoints are still probed, and stale entries are flagged.

Contextual Interpretation of Status Codes

Shopify emphasizes that HTTP status codes are interpreted contextually. A 404 status behind an Ingress indicates the proxy responded but the path is missing. For Cloud Run, a 404 from Google's front end before application execution is classified as inconclusive. A 403 status is not considered definitive proof of protection. For Cloud Run, the scanner differentiates between ingress settings and IAM, classifying a service as public only if 'allUsers' holds the 'invoker' role or the invoker check is disabled.

✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →

The daily brief

One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.

One email a day. Unsubscribe in one click, any time.

Today's brief

Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.

~4 min · 3 stories · Nov 07

▶ Play today's brief Listen on Spotify

New every morning, and the back catalogue is archived by date.

Reporting from

Shopify introduced Overexposed, an internal scanner that identifies internet-accessible, unauthenticated Kubernetes Ingresses on GKE and Cloud Run services. The scanner was rebuilt to use GCP Cloud Asset Inventory and anonymous HTTP probes, reducing inconclusive verdicts by approximately 80%. This tool helps Shopify identify and manage publicly exposed services more accurately than its previous configuration-file-based approach.