{"id":1094340,"date":"2024-11-12T09:00:00","date_gmt":"2024-11-12T17:00:00","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?p=1094340"},"modified":"2024-11-11T09:06:46","modified_gmt":"2024-11-11T17:06:46","slug":"preventing-side-channels-in-the-cloud","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/research\/blog\/preventing-side-channels-in-the-cloud\/","title":{"rendered":"Preventing side-channels in the cloud"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1400\" height=\"788\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1.jpg\" alt=\"Icons representing hardware and devices, security, privacy, and cryptography, and systems and networking on a blue to green gradient background.\" class=\"wp-image-1097250\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1.jpg 1400w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-300x169.jpg 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-1024x576.jpg 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-768x432.jpg 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-1066x600.jpg 1066w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-655x368.jpg 655w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-240x135.jpg 240w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-640x360.jpg 640w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-960x540.jpg 960w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-1280x720.jpg 1280w\" sizes=\"auto, (max-width: 1400px) 100vw, 1400px\" \/><\/figure>\n\n\n\n<p>Cloud computing delivers scalable and cost-effective compute resources to a wide range of customers. The ability for cloud providers to share components of the hardware stack across customers, or tenants, is essential for running efficient cloud systems. For example, modern central processing units (CPUs) pack hundreds of physical hardware threads sharing terabytes of dynamic random-access memory (DRAM), which can be flexibly assigned to many independent virtual machines (VMs).<\/p>\n\n\n\n<p>Preventing tenants from snooping on others who share the same hardware requires security mechanisms. <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/security\/fundamentals\/overview\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Azure<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> provides strong protection via comprehensive architectural isolation through access control mechanisms implemented across the cloud platform, including the hardware and the hypervisor. <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3453930\" target=\"_blank\" rel=\"noopener noreferrer\">Confidential computing<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> powered by trusted execution environments further hardens architectural isolation via hardware memory encryption to protect tenants even against privileged attackers.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"a-changing-threat-landscape\">A changing threat landscape<\/h2>\n\n\n\n<p>Even with perfect architectural isolation, sharing <em>micro<\/em>architectural resources, such as CPU caches and DRAM row buffers, can leak small amounts of information, because interference (due to sharing) leads to variations in the latency of memory accesses. This gives rise to so-called microarchitectural <em>side-channel attacks<\/em> where a malicious tenant can learn information about another tenant, in the worst case: their cryptographic keys.<\/p>\n\n\n\n<p>Microsoft Azure protects tenants and critical infrastructure against currently practical side-channel attacks. For example, side-channels in on-core resources (e.g., buffers, predictors, private caches) are <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/techcommunity.microsoft.com\/t5\/virtualization\/hyper-v-hyperclear-retbleed-update\/ba-p\/3576717\" target=\"_blank\" rel=\"noopener noreferrer\">comprehensively<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> mitigated by <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/techcommunity.microsoft.com\/t5\/virtualization\/hyper-v-hyperclear-mitigation-for-l1-terminal-fault\/ba-p\/382429\" target=\"_blank\" rel=\"noopener noreferrer\">Hyper-V HyperClear<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> via core scheduling, microarchitectural flushing and scrubbing, and virtual-processor address space isolation; and our cryptographic libraries are carefully hardened to prevent any secrets from being leaked via microarchitectural side-channels.&nbsp;<\/p>\n\n\n\n<p>However, the threat landscape is changing. First, side-channel attacks are becoming increasingly sophisticated: For example, recent <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3620665.3640403\" target=\"_blank\" rel=\"noopener noreferrer\">academic research<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> has shown that even cache-coherence directories can be exploited to leak information across cores. Second, future CPUs are likely to employ increasingly sophisticated microarchitectural optimizations, which are prone to new kinds of attacks: For example, the recently introduced data-dependent prefetchers have already been found to <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/gofetch.fail\/\" target=\"_blank\" rel=\"noopener noreferrer\">leak information<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>.<\/p>\n\n\n\n<div class=\"annotations \" data-bi-aN=\"margin-callout\">\n\t<article class=\"annotations__list card depth-16 bg-body p-4 annotations__list--right\">\n\t\t<div class=\"annotations__list-item\">\n\t\t\t\t\t\t\t<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/venice\/\" target=\"_self\" aria-label=\"Project Venice\" data-bi-type=\"annotated-link\" data-bi-cN=\"Project Venice\" class=\"annotations__list-thumbnail\" >\n\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"172\" height=\"96\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/03\/Venice_header_1920x720-343x193.jpg\" class=\"mb-2\" alt=\"overhead view of Venice canals and channels\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/03\/Venice_header_1920x720-343x193.jpg 343w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/03\/Venice_header_1920x720-1066x600.jpg 1066w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/03\/Venice_header_1920x720-655x368.jpg 655w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/03\/Venice_header_1920x720-640x360.jpg 640w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/03\/Venice_header_1920x720-960x540.jpg 960w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/03\/Venice_header_1920x720-1280x720.jpg 1280w\" sizes=\"auto, (max-width: 172px) 100vw, 172px\" \/>\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<span class=\"annotations__type d-block text-uppercase font-weight-semibold text-neutral-300 small\">Project<\/span>\n\t\t\t<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/venice\/\" data-bi-cN=\"Project Venice\" data-external-link=\"false\" data-bi-aN=\"margin-callout\" data-bi-type=\"annotated-link\" class=\"annotations__link font-weight-semibold text-decoration-none\"><span>Project Venice<\/span>&nbsp;<span class=\"glyph-in-link glyph-append glyph-append-chevron-right\" aria-hidden=\"true\"><\/span><\/a>\t\t\t\t\t<\/div>\n\t<\/article>\n<\/div>\n\n\n\n<p>In Azure Research\u2019s <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/venice\/\" target=\"_blank\" rel=\"noreferrer noopener\">Project Venice<\/a>, we are investigating principled defenses, to be prepared in case such emerging attacks start posing a risk to Azure customers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"preventing-microarchitectural-side-channels-with-resource-exclusive-domains\">Preventing microarchitectural side-channels with resource-exclusive domains<\/h2>\n\n\n\n<div class=\"annotations \" data-bi-aN=\"margin-callout\">\n\t<article class=\"annotations__list card depth-16 bg-body p-4 annotations__list--left\">\n\t\t<div class=\"annotations__list-item\">\n\t\t\t\t\t\t<span class=\"annotations__type d-block text-uppercase font-weight-semibold text-neutral-300 small\">Publication<\/span>\n\t\t\t<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/principled-microarchitectural-isolation-on-cloud-cpus\/\" data-bi-cN=\"Principled Microarchitectural Isolation on Cloud CPUs\" data-external-link=\"false\" data-bi-aN=\"margin-callout\" data-bi-type=\"annotated-link\" class=\"annotations__link font-weight-semibold text-decoration-none\"><span>Principled Microarchitectural Isolation on Cloud CPUs<\/span>&nbsp;<span class=\"glyph-in-link glyph-append glyph-append-chevron-right\" aria-hidden=\"true\"><\/span><\/a>\t\t\t\t\t<\/div>\n\t<\/article>\n<\/div>\n\n\n\n<p>In a <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/principled-microarchitectural-isolation-on-cloud-cpus\/\" target=\"_blank\" rel=\"noreferrer noopener\">research paper<\/a>, which has received a distinguished paper award at the ACM Conference on Computer and Communications Security (<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/www.sigsac.org\/ccs\/CCS2024\/\" target=\"_blank\" rel=\"noopener noreferrer\">ACM CCS\u201924<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>), we present a system design that can prevent cross-VM microarchitectural side-channels in the cloud. Our design provides what we call<em> resource-exclusive domains<\/em>, which extend the architectural abstraction of private physical threads and private memory to the microarchitectural level. That is, resource-exclusive domains guarantee isolation even against powerful attackers that try to mount side-channel attacks on shared microarchitectural resources.<\/p>\n\n\n\n<p>Our approach builds on <em>isolation schemes<\/em>, a novel abstraction of the way a CPU shares microarchitectural structures between its physical threads.&nbsp; Isolation schemes can be used by the hypervisor and host operating system to assign physical threads and physical memory pages, eliminating the risk of information leakage across resource-exclusive domains. Technically, for a given assignment of physical threads to resource-exclusive domains, the isolation scheme partitions each microarchitectural resource that is shared between domains (as this would leak information), but <em>without <\/em>partitioning resources that are private to a domain (as this would affect performance). We achieve this using hardware mechanisms, if available, and multi-resource memory coloring, if not.<\/p>\n\n\n\n<div class=\"annotations \" data-bi-aN=\"margin-callout\">\n\t<article class=\"annotations__list card depth-16 bg-body p-4 annotations__list--right\">\n\t\t<div class=\"annotations__list-item\">\n\t\t\t\t\t\t<span class=\"annotations__type d-block text-uppercase font-weight-semibold text-neutral-300 small\">Publication<\/span>\n\t\t\t<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/gaussian-elimination-of-side-channels-linear-algebra-for-memory-coloring\/\" data-bi-cN=\"Gaussian Elimination of Side-channels: Linear Algebra for Memory Coloring\" data-external-link=\"false\" data-bi-aN=\"margin-callout\" data-bi-type=\"annotated-link\" class=\"annotations__link font-weight-semibold text-decoration-none\"><span>Gaussian Elimination of Side-channels: Linear Algebra for Memory Coloring<\/span>&nbsp;<span class=\"glyph-in-link glyph-append glyph-append-chevron-right\" aria-hidden=\"true\"><\/span><\/a>\t\t\t\t\t<\/div>\n\t<\/article>\n<\/div>\n\n\n\n<p>In a complementary <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/gaussian-elimination-of-side-channels-linear-algebra-for-memory-coloring\/\" target=\"_blank\" rel=\"noreferrer noopener\">research paper<\/a> (appearing at <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/www.sigsac.org\/ccs\/CCS2024\/\" target=\"_blank\" rel=\"noopener noreferrer\">ACM CCS\u201924<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>), we provide the theoretical foundations and practical algorithms for computing such multi-resource memory coloring schemes for existing microarchitectures, as well as design patterns for future microarchitectures to support a large number of resource-exclusive domains.&nbsp;<\/p>\n\n\n\n<p>We have implemented our approach in a research prototype based on Microsoft Hyper-V for a modern cloud chiplet-based CPU, AMD EPYC 7543P, that supports VM-level trusted execution environments. Using a collection of microbenchmarks and cloud benchmarks, we demonstrate that our approach eliminates all identified side-channels and incurs only small performance overheads. For example, when allocating resources at chiplet and channel granularity (i.e., coupling a chiplet with one of the local DRAM channels) we observe an overhead of less than 2%; and only up to 4% when allocating resources at chiplet granularity and coloring with 2MB pages.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"co-designing-cloud-platforms-for-future-microarchitectural-isolation\">Co-designing cloud platforms for future microarchitectural isolation<\/h2>\n\n\n\n<p>To validate the effectiveness and practicality of our approach, we inferred isolation schemes for a single CPU by reverse-engineering its microarchitecture. This approach is incomplete and does not scale to the diverse hardware fleet available in the cloud. We are working with CPU vendors to develop isolation schemes for future CPUs, which will then be exposed via the hardware interface for consumption by the hypervisor\u2019s hardware abstraction layer. In this way, we will be able to reap the benefits of microarchitectural performance optimizations while continuing to provide strong security guarantees to cloud tenants.&nbsp;<\/p>\n\n\n\n<p><strong>Additional Contributors<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/fournet\">C\u00e9dric Fournet<\/a>, Senior Principal Researcher<br><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/janahofmann.github.io\/\">Jana Hofmann<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, Researcher<br><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/ololeksenko\/\">Oleksii Oleksenko<\/a>, Senior Researcher<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sophisticated side-channel attacks present new security challenges for cloud providers. Learn how Microsoft is exploring defenses against emerging attacks with principled microarchitectural isolation:<\/p>\n","protected":false},"author":43518,"featured_media":1097250,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-author-ordering":[{"type":"user_nicename","value":"Stavros Volos","user_id":"35437"},{"type":"user_nicename","value":"Boris K&ouml;pf","user_id":"37857"}],"msr_hide_image_in_river":null,"footnotes":""},"categories":[1],"tags":[],"research-area":[13552,13558,13547],"msr-region":[],"msr-event-type":[],"msr-locale":[268875],"msr-post-option":[243984],"msr-impact-theme":[],"msr-promo-type":[],"msr-podcast-series":[],"class_list":["post-1094340","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-research-blog","msr-research-area-hardware-devices","msr-research-area-security-privacy-cryptography","msr-research-area-systems-and-networking","msr-locale-en_us","msr-post-option-blog-homepage-featured"],"msr_event_details":{"start":"","end":"","location":""},"podcast_url":"","podcast_episode":"","msr_research_lab":[],"msr_impact_theme":[],"related-publications":[],"related-downloads":[],"related-videos":[],"related-academic-programs":[],"related-groups":[559983,998211],"related-projects":[923382],"related-events":[],"related-researchers":[{"type":"user_nicename","value":"Stavros Volos","user_id":35437,"display_name":"Stavros Volos","author_link":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/svolos\/\" aria-label=\"Visit the profile page for Stavros Volos\">Stavros Volos<\/a>","is_active":false,"last_first":"Volos, Stavros","people_section":0,"alias":"svolos"},{"type":"user_nicename","value":"Boris K&ouml;pf","user_id":37857,"display_name":"Boris K&ouml;pf","author_link":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/bokoepf\/\" aria-label=\"Visit the profile page for Boris K&ouml;pf\">Boris K&ouml;pf<\/a>","is_active":false,"last_first":"K\u00f6pf, Boris","people_section":0,"alias":"bokoepf"}],"msr_type":"Post","featured_image_thumbnail":"<img width=\"960\" height=\"540\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-960x540.jpg\" class=\"img-object-cover\" alt=\"Icons representing hardware and devices, security, privacy, and cryptography, and systems and networking on a blue to green gradient background.\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-960x540.jpg 960w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-300x169.jpg 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-1024x576.jpg 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-768x432.jpg 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-1066x600.jpg 1066w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-655x368.jpg 655w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-240x135.jpg 240w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-640x360.jpg 640w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1-1280x720.jpg 1280w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2024\/10\/Principled-Microarchitectural-Isolation-BlogHeroFeature-1400x788-1.jpg 1400w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/>","byline":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/svolos\/\" title=\"Go to researcher profile for Stavros Volos\" aria-label=\"Go to researcher profile for Stavros Volos\" data-bi-type=\"byline author\" data-bi-cN=\"Stavros Volos\">Stavros Volos<\/a> and <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/bokoepf\/\" title=\"Go to researcher profile for Boris K&ouml;pf\" aria-label=\"Go to researcher profile for Boris K&ouml;pf\" data-bi-type=\"byline author\" data-bi-cN=\"Boris K&ouml;pf\">Boris K&ouml;pf<\/a>","formattedDate":"November 12, 2024","formattedExcerpt":"Sophisticated side-channel attacks present new security challenges for cloud providers. Learn how Microsoft is exploring defenses against emerging attacks with principled microarchitectural isolation:","locale":{"slug":"en_us","name":"English","native":"","english":"English"},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/1094340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/users\/43518"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/comments?post=1094340"}],"version-history":[{"count":24,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/1094340\/revisions"}],"predecessor-version":[{"id":1102644,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/1094340\/revisions\/1102644"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/1097250"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=1094340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/categories?post=1094340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/tags?post=1094340"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=1094340"},{"taxonomy":"msr-region","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-region?post=1094340"},{"taxonomy":"msr-event-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event-type?post=1094340"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=1094340"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=1094340"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=1094340"},{"taxonomy":"msr-promo-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-promo-type?post=1094340"},{"taxonomy":"msr-podcast-series","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-podcast-series?post=1094340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}