Quantify the value of Netskope One SSE – Get the 2024 Forrester Total Economic Impact™ study

Schließen
Schließen
  • Warum Netskope? Chevron

    Verändern Sie die Art und Weise, wie Netzwerke und Sicherheit zusammenarbeiten.

  • Unsere Kunden Chevron

    Netskope betreut weltweit mehr als 3.400 Kunden, darunter mehr als 30 der Fortune 100

  • Unsere Partner Chevron

    Unsere Partnerschaften helfen Ihnen, Ihren Weg in die Cloud zu sichern.

Ein führendes Unternehmen im Bereich SSE. Jetzt ein führender Anbieter von SASE.

Erfahren Sie, warum Netskope im Gartner® Magic Quadrant™️ 2024 für Single-Vendor Secure Access Service Edge als Leader debütiert

Report abrufen
Kundenvisionäre im Rampenlicht

Lesen Sie, wie innovative Kunden mithilfe der Netskope One-Plattform erfolgreich durch die sich verändernde Netzwerk- und Sicherheitslandschaft von heute navigieren.

Jetzt das E-Book lesen
Kundenvisionäre im Rampenlicht
Die partnerorientierte Markteinführungsstrategie von Netskope ermöglicht es unseren Partnern, ihr Wachstum und ihre Rentabilität zu maximieren und gleichzeitig die Unternehmenssicherheit an neue Anforderungen anzupassen.

Erfahren Sie mehr über Netskope-Partner
Gruppe junger, lächelnder Berufstätiger mit unterschiedlicher Herkunft
Ihr Netzwerk von morgen

Planen Sie Ihren Weg zu einem schnelleren, sichereren und widerstandsfähigeren Netzwerk, das auf die von Ihnen unterstützten Anwendungen und Benutzer zugeschnitten ist.

Whitepaper lesen
Ihr Netzwerk von morgen
Netskope Cloud Exchange

Cloud Exchange (CE) von Netskope gibt Ihren Kunden leistungsstarke Integrationstools an die Hand, mit denen sie in jeden Aspekt ihres Sicherheitsstatus investieren können.

Erfahren Sie mehr über Cloud Exchange
Luftaufnahme einer Stadt
  • Security Service Edge Chevron

    Schützen Sie sich vor fortgeschrittenen und cloudfähigen Bedrohungen und schützen Sie Daten über alle Vektoren hinweg.

  • SD-WAN Chevron

    Stellen Sie selbstbewusst sicheren, leistungsstarken Zugriff auf jeden Remote-Benutzer, jedes Gerät, jeden Standort und jede Cloud bereit.

  • Secure Access Service Edge Chevron

    Netskope One SASE bietet eine Cloud-native, vollständig konvergente SASE-Lösung eines einzelnen Anbieters.

Die Plattform der Zukunft heißt Netskope

Security Service Edge (SSE), Cloud Access Security Broker (CASB), Cloud Firewall, Next Generation Secure Web Gateway (SWG), and Private Access for ZTNA built natively into a single solution to help every business on its journey to Secure Access Service Edge (SASE) architecture.

Netskope Produktübersicht
Netskope-Video
Next Gen SASE Branch ist hybrid – verbunden, sicher und automatisiert

Netskope Next Gen SASE Branch vereint kontextsensitives SASE Fabric, Zero-Trust Hybrid Security und SkopeAI-Powered Cloud Orchestrator in einem einheitlichen Cloud-Angebot und führt so zu einem vollständig modernisierten Branch-Erlebnis für das grenzenlose Unternehmen.

Erfahren Sie mehr über Next Gen SASE Branch
Menschen im Großraumbüro
SASE-Architektur für Dummies

Holen Sie sich Ihr kostenloses Exemplar des einzigen Leitfadens zum SASE-Design, den Sie jemals benötigen werden.

Jetzt das E-Book lesen
SASE-Architektur für Dummies – E-Book
Steigen Sie auf marktführende Cloud-Security Service mit minimaler Latenz und hoher Zuverlässigkeit um.

Mehr über NewEdge erfahren
Beleuchtete Schnellstraße mit Serpentinen durch die Berge
Ermöglichen Sie die sichere Nutzung generativer KI-Anwendungen mit Anwendungszugriffskontrolle, Benutzercoaching in Echtzeit und erstklassigem Datenschutz.

Erfahren Sie, wie wir den Einsatz generativer KI sichern
ChatGPT und Generative AI sicher aktivieren
Zero-Trust-Lösungen für SSE- und SASE-Deployments

Erfahren Sie mehr über Zero Trust
Bootsfahrt auf dem offenen Meer
Netskope erhält die FedRAMP High Authorization

Wählen Sie Netskope GovCloud, um die Transformation Ihrer Agentur zu beschleunigen.

Erfahren Sie mehr über Netskope GovCloud
Netskope GovCloud
  • Ressourcen Chevron

    Erfahren Sie mehr darüber, wie Netskope Ihnen helfen kann, Ihre Reise in die Cloud zu sichern.

  • Blog Chevron

    Erfahren Sie, wie Netskope die Sicherheits- und Netzwerktransformation durch Secure Access Service Edge (SASE) ermöglicht

  • Events und Workshops Chevron

    Bleiben Sie den neuesten Sicherheitstrends immer einen Schritt voraus und tauschen Sie sich mit Gleichgesinnten aus

  • Security Defined Chevron

    Finden Sie alles was Sie wissen müssen in unserer Cybersicherheits-Enzyklopädie.

Security Visionaries Podcast

Die Zukunft der Sicherheit: Quanten, KI und makropolitischer Wandel
Emily Wearmouth und Max Havey sprechen mit Sanjay Beri, CEO von Netskope, und Krishna Narayanaswamy, CTO über die Zukunft der Sicherheit.

Podcast abspielen Alle Podcasts durchsuchen
Die Zukunft der Sicherheit: Quanten, KI und makropolitischer Wandel
Neueste Blogs

Lesen Sie, wie Netskope die Zero-Trust- und SASE-Reise durch SASE-Funktionen (Secure Access Service Edge) ermöglichen kann.

Den Blog lesen
Sonnenaufgang und bewölkter Himmel
SASE Week 2024 auf Abruf

Erfahren Sie, wie Sie sich in den neuesten Fortschritten bei SASE und Zero Trust zurechtfinden können, und erfahren Sie, wie sich diese Frameworks an die Herausforderungen der Cybersicherheit und Infrastruktur anpassen

Entdecken Sie Sitzungen
SASE Week 2024
Was ist SASE?

Erfahren Sie mehr über die zukünftige Konsolidierung von Netzwerk- und Sicherheitstools im heutigen Cloud-dominanten Geschäftsmodell.

Erfahre mehr zu SASE
  • Unternehmen Chevron

    Wir helfen Ihnen, den Herausforderungen der Cloud-, Daten- und Netzwerksicherheit einen Schritt voraus zu sein.

  • Karriere Chevron

    Join Netskope's 3,000+ amazing team members building the industry’s leading cloud-native security platform.

  • Kundenlösungen Chevron

    Wir sind für Sie da, stehen Ihnen bei jedem Schritt zur Seite und sorgen für Ihren Erfolg mit Netskope.

  • Schulungen und Akkreditierungen Chevron

    Netskope-Schulungen helfen Ihnen ein Experte für Cloud-Sicherheit zu werden.

Unterstützung der Nachhaltigkeit durch Datensicherheit

Netskope ist stolz darauf, an Vision 2045 teilzunehmen: einer Initiative, die darauf abzielt, das Bewusstsein für die Rolle der Privatwirtschaft bei der Nachhaltigkeit zu schärfen.

Finde mehr heraus
Unterstützung der Nachhaltigkeit durch Datensicherheit
Helfen Sie mit, die Zukunft der Cloudsicherheit zu gestalten

Bei Netskope arbeiten Gründer und Führungskräfte Schulter an Schulter mit ihren Kollegen, selbst die renommiertesten Experten kontrollieren ihr Ego an der Tür, und die besten Ideen gewinnen.

Tritt dem Team bei
Karriere bei Netskope
Die engagierten Service- und Support-Experten von Netskope sorgen dafür, dass Sie unsere Plattform erfolgreich einsetzen und den vollen Wert ihrer Plattform ausschöpfen können.

Gehen Sie zu Kundenlösungen
Netskope Professional Services
Mit Netskope-Schulungen können Sie Ihre digitale Transformation absichern und das Beste aus Ihrer Cloud, dem Web und Ihren privaten Anwendungen machen.

Erfahren Sie mehr über Schulungen und Zertifizierungen
Gruppe junger Berufstätiger bei der Arbeit

CORS Exploitation in the Cloud

Jan 09 2020

Cross-Origin Resource Sharing (CORS) is a mechanism which uses HTTP headers to tell a browser that a web application running at one origin has permission to access selected resources from a server at a different origin. This functionality exists for cases where an application developer would want to deliberately ignore a same origin policy (SOP) which mitigates many common attacks against browsers (notably cross-site scripting). This makes it a powerful tool for applications deployed on our increasingly distributed Internet but also a potential source of vulnerability. 

Background: What is the Same-Origin Policy?

The Same-Origin Policy is a mitigating control which restricts how scripts or other resources from one origin interact with resources from a third party. 

Some examples of cross-origin requests are:

  • A different domain (example.com to test.com)
  • A different subdomain (example.com to test.example.com)
  • A different port (example.com to example.com:8080)
  • A different protocol (https://example.com to http://example.com)

The Same-Origin policy mitigates some common web application attacks and is a critical tool for protecting users and applications on the modern web.

More details are available at the Mozilla Developer Network.

How Does CORS Work?

There are two headers which primarily govern CORS: Access-Control-Allow-Origin, and Access-Control-Allow-Credentials. When a script from foo.com wants to make a request to bar.com, the browser sends a pre-flight request to bar.com with foo.com in the Origin header. This is how the browser asks for permission for the resource to interact with the requesting site. The service on bar.com will then return an Access-Control-Allow-Origin response header if the domain matches an allowed origin. Only if the domain matches the one hosting the script does the browser send the HTTP request.

The Access Control Allow Origin header accepts various origins:

  • Domains and subdomains (http://blah.example.com, https://example.com)
  • Wildcards (*)
  • ‘Null’

The case of the ‘Null’ origin is interesting and can result in some misconfigurations which we do not explore in this article. ‘Null’ is an origin assigned by default to many documents, sandboxed code, and redirects. While this is useful, it  can potentially open up your application to attack. The Mozilla Developer Network and w3c specify that the null origin should not be used. More details about that vulnerability are available in Portswigger’s blog on the subject.

Access-Control-Allow-Credentials is a boolean – that is, it can be only True or False. If our application requires a user to be authenticated to use it, and that application makes CORS requests on behalf of that logged in user, we require Access-Control-Allow-Credentials to be true. If the resources we are accessing do not absolutely require that the user’s credentials be passed to the cross-domain resource, we should set this to False. 

In some cases, you may want to bypass the same-origin policy to share content from a CDN, an S3 bucket, or an on-premises server.

  • If you host your website in S3, but want to use JavaScript to be able to make authenticated GET and PUT requests against the same bucket by using the Amazon S3 API endpoint for the bucket.
  • Loading a web font.
  • Loading dynamic content from another webpage.
  • Making an authenticated GET request to an on-prem server.

If you want to allow any domain to make a cross-origin request, you can certainly use the setting Access-Control-Allow-Origin: *

Unfortunately, per the CORS specification – if you have wildcards in your ACAO header, then Access-Control-Allow-Credentials cannot be true. While you might think that maintaining a list of allowed origins makes good sense, it turns out that CORS policy cannot accept a list either! So in order to allow credentials to be passed over a CORS request, you must process the origin and ensure that it’s valid. As we’ll explain, this is a recipe for disaster when developers are not careful.

CORS in the Cloud

In addition to the fact that any VM you deploy in your IaaS environment which supports HTTP can enable CORS, many individual services support CORS, including: 

  • Azure Functions
  • Azure Logic Apps
  • Azure Blob Storage
  • Google Cloud Functions
  • Google Cloud Storage
  • Google Cloud Endpoints
  • Amazon Lambda
  • Amazon S3
  • Amazon API Gateway

Clearly, this is a functionality that is widespread, and often used by web developers. As your infrastructure grows and matures, CORS is very likely to see use across your cloud infrastructure.

In the case of Lambda and API Gateway, Amazon provides the following guidance:

“To enable cross-origin resource sharing (CORS) for a proxy integration, you must add Access-Control-Allow-Origin: <domain_name> to the output headers. <domain_name> can be * for any domain name.”

As mentioned above, this works wonderfully, as long as you don’t need the Access-Controls-Allow-Credentials field to be true. If you need credentials, you’ll need to process the user-supplied origin. If you have never deployed CORS before and turn to the Internet for a template, you may end up using one of the many code examples which only reflect the origin and do not provide specific instructions on ensuring CORS is deployed securely.

Realistically, the most secure configuration is a hard-coded allow list that is maintained by the developer. However, as discussed below, even this does not stop CORS from opening up an exploitable hole.

Exploiting Misconfigurations

One of the most common misconfigurations, as mentioned above, is reflecting the user-supplied origin header in the server response, effectively allowing requests from any origin. As an example, consider an AWS Lambda and API Gateway serverless architecture where the Lambda accesses data stored in a DynamoDB instance. If you want to include more than a single domain in the ACAO header (e.g., you have more than one subdomain that will need to access the API), then you’ll need to write a Lambda to handle the headers. Note that while we use AWS and Amazon services here as examples, these same sorts of vulnerabilities can also occur with the same architecture in both Azure and GCP. In the Azure case, this architecture would be comprised of Azure Application Gateway, Azure Functions, and CosmosDB. In GCP, the corresponding services would be Cloud Endpoints, Google Cloud Functions, and BigTable.

Figure 1: Simple CORS-enabled API Gateway Architecture

Now in this case, we can see that a request made to the API Gateway will trigger the lambda which generates the CORS headers. As we mentioned with this misconfiguration – the lambda is simply reflecting the origin provided by the user, and that request is then handed off to the second lambda to make database queries by way of the API gateway. This database can contain whatever sort of information you might access via API but don’t want disclosed to the world (e.g. customer records, API keys, etc.). 

This means that all an attacker needs to do is get an unwitting but authorized user to make the request on their behalf from their domain. This can be attained by any number of methods: script injection, phishing, or any other way that a user might inadvertently navigate to an attacker-controlled resource. When the victim navigates to the attacker controlled resource, the sensitive request is made from the attacker’s origin with the authorized user’s credentials, and CORS allows this to occur, providing the sensitive data back to the attacker.

Impacts of CORS Misconfigurations

Examples of CORS misconfigurations being exploited:

  • A US Department of Defense Website had an improper access control in CORS which allowed an attacker to steal user sessions.
  • A bitcoin exchange had a vulnerability which could steal users’ private API key, allowing all of their BTC to be transferred to an arbitrary address.

These vulnerabilities and others like them underscore the need to verify that your CORS configuration is correct. This means ensuring that you are not simply reflecting the origin that you are provided by the browser, but maintaining an accurate, up-to-date allow list. 

The Cream in Your XSS Coffee

(AUTHOR NOTE: It doesn’t matter if you personally like cream in your coffee. This is just a euphemism. I personally favor a venti Americano with a splash of cream and 3 splenda.)

Using CORS trust relationships, we can actually use even properly configured environments to make a cross-site scripting vulnerability on one site far more damaging. Given an XSS vulnerability on a page which is trusted via CORS, an attacker can retrieve sensitive information from the site which trusts the vulnerable page. 

In this scenario, we’ll use the same API Gateway configuration as above, but assume that it actually does the CORS Origin checks correctly – that is, it looks for a valid subdomain and returns only if the user is authenticated and the request comes from a subdomain which is on an accurate allow list. 

Figure 2: Simple CORS-enabled S3 Front-End for API Gateway Architecture

In this scenario, there is no CORS misconfiguration, but instead the page on the S3 Bucket is vulnerable to Cross-Site Scripting. In this scenario, the attacker exploits that cross-site scripting vulnerability and instead injects JavaScript which retrieves information from the database. All of this happens because the API gateway, and therefore the database, trust the website hosted in the bucket. 

These attacks and more have been detailed in a non-cloud context by the folks over at Portswigger, the makers of Burp Suite. 

Even though these are hypothetical examples, knowing about CORS security is key because cross-domain requests are even more common in the cloud than they are in on-premises systems and so there are more opportunities for these sorts of vulnerabilities to exist and be exploited. So how do we deal with attacks that target our CORS-enabled cloud applications?

Thinking About CORS Under ATT&CK

The MITRE ATT&CK framework provides a useful way of looking at where CORS, whether configured correction and used to exploit trust relationships or misconfigured and exploited, can impact your enterprise and the ripple effects of ensuring that your web applications are safe from cross-site scripting. In this section, we summarize the associated tactics and techniques.

Enticing a user to access a page with a malicious script

Tactics: User Execution
Techniques: Drive-by Compromise, Spearphishing Link
Mitigations: Restrict Web-Based Content

Blocking JavaScript is a powerful tool for preventing this entire exploit chain in the first place. Of course, this can be difficult to do generally due to the ubiquity of JavaScript on the modern web. Having an allow list for running Javascript from trusted sources is crucial.
This mitigation is, due to the nature of the attack, the only one in this list designed to protect users on the endpoint rather than protect the application from exploitation.

Using the CORS misconfiguration to gain privileged access via origin reflection

Tactics: Initial Access
Techniques: Attacker in the Browser
Mitigations (proposed): Application Developer Guidance, Vulnerability Scanning

Although MITRE does not currently link Application Developer Guidance to Attacker in the Browser, ensuring CORS is properly configured is an application developer responsibility. Some vulnerability scanners will detect CORS misconfigurations.

 Exploiting cross-site scripting on a vulnerable page

Tactics: Initial Access
Techniques: Exploit Public-Facing Application
Mitigations: Vulnerability Scanning

Cross-site scripting can be challenging to notice in code review, but there are lots of good tools for automatically finding cross-site scripting. In particular, input validation is one of the most powerful tools for mitigating XSS.

Exploiting the trust relationship between the page and the API gateway

Tactics: Privilege Escalation
Techniques: Process Injection
Mitigations: Vulnerability Scanning

Although conventionally, process injection refers to applications running on the endpoint, here we’re still making the same connection – an application is issuing commands on behalf of an attacker via injected code. By expanding our definition of process injection to include web applications, we cover the case of an application with a cross-site scripting vulnerability making a malicious call on behalf of an attacker.  Unfortunately, the only mitigation is to ensure that applications which are CORS-enabled do not have latent vulnerabilities.

Returning sensitive data from the database

Tactics: Collection
Techniques: Data from Information Repositories
Mitigations: Audit

More than auditing the database itself for sensitive data or for access from unauthorized places, it is crucial to audit the applications which access and allow access to sensitive data. 

Conclusion

If you’re running cloud infrastructure, especially APIs in the cloud, you almost certainly have CORS deployed somewhere. Verifying that you do not have CORS misconfigurations in your cloud apps is a critical step in securing your cloud infrastructure. However, even if you have CORS properly configured, it can bite you if the apps which leverage CORS connections are not themselves secure since CORS can act as an amplifier for any latent vulnerability. By using the Mitre ATT&CK framework, we can create tabletop scenarios which allow us to profile and emulate attacks before they happen and give us a holistic view of our defense posture against certain types of exploits.

author image
Erick Galinkin
Browse recent articles by Erick Galinkin, one of the contributors at Netskope. Discover the latest trends and updates within the cloud and network space.

Bleiben Sie informiert!

Abonnieren Sie den Netskope-Blog