[{"data":1,"prerenderedAt":5641},["ShallowReactive",2],{"application-flags":3,"navbar":7,"always-visible-banner":36,"navbar-about-highlight":99,"navbar-resource-highlight":173,"blog/why-browser-extension-risk-scoring-wont-predict-your-next-breach":217,"use-case-page":4602,"fa-icon-regular-faFishingRod":5623,"fa-icon-regular-faPuzzlePiece":5627,"fa-icon-regular-faUserSecret":5629,"fa-icon-regular-faRadar":5631,"fa-icon-regular-faLaptopCode":5633,"fa-icon-regular-faSatelliteDish":5635,"fa-icon-regular-faShieldCheck":5637,"fa-icon-regular-faBrainCircuit":5639},[4],{"name":5,"enabled":6},"maintenanceMode",false,[8],{"createdDate":9,"id":10,"name":11,"modelId":12,"published":13,"query":14,"data":15,"variations":20,"lastUpdated":21,"firstPublished":22,"testRatio":23,"createdBy":24,"lastUpdatedBy":25,"folders":26,"meta":27,"rev":35},1742208588866,"1c7a4e423bf54ac1a328bb4063459ef2","Banner","1c6207a5f24948ab82d4a0b17f251193","published",[],{"type":16,"url":17,"text":18,"link":19},"web-banner","https://pushsecurity.com/resources/browser-attacks-report","Get our latest report analyzing browser attack techniques in 2026",{},{},1774258294825,1742208637545,1,"CydmZnOWU1XuAaLhEDCoYNM4Z8W2","jKjF9r5jcvXU8tzZEfFQm31Iyvr2",[],{"kind":28,"lastPreviewUrl":29,"breakpoints":30,"hasAutosaves":34},"data","",{"xsmall":31,"small":32,"medium":33},320,640,768,true,"pr6pxnidxwb",{"createdDate":37,"id":38,"name":39,"modelId":40,"published":13,"query":41,"data":42,"variations":88,"lastUpdated":89,"firstPublished":90,"testRatio":23,"createdBy":91,"lastUpdatedBy":92,"folders":93,"meta":94,"rev":98},1774965361051,"fd266d0172cc47429be7ad10f48c99ad","always visible banner","0678d178ec8b41efb8a23c09dba7874d",[],{"ctaText":43,"text":44,"url":29,"blocks":45,"state":84},"ewrererw","testrfesssssssssss",[46,72],{"@type":47,"@version":48,"id":49,"component":50,"responsiveStyles":62},"@builder.io/sdk:Element",2,"builder-ca12c06a52de41d7b8743da53118cd38",{"name":51,"tag":51,"options":52,"isRSC":61},"TopBannerContent",{"text":53,"ctaText":54,"url":55,"mainText":56,"cta":59},"New Webinar Series: Join John Hammond, Troy Hunt, and Matt Johansen for the State of Browser Attacks","Save Your Spot","https://pushsecurity.com/webinar/state-of-browser-security",{"content":57,"fontSize":58},"\u003Cp>New Webinar Series: Join John Hammond, Troy Hunt, and Matt Johansen for the State of Browser Attacks\u003C/p>","text-base",{"content":60,"fontSize":58,"url":55},"\u003Cp>\u003Cstrong style=\"font-weight:700;\">Save Your Spot\u003C/strong>\u003C/p>\n",null,{"large":63},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"marginTop":69,"marginBottom":69,"fontSize":70,"fontWeight":71},"flex","column","relative","0","border-box",".56rem","1.125rem","700",{"id":73,"@type":47,"tagName":74,"properties":75,"responsiveStyles":79},"builder-pixel-x1ifay5lxl","img",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},"https://cdn.builder.io/api/v1/pixel?apiKey=f3a1111ff5be48cdbb123cd9f5795a05","true","presentation",{"large":80},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},"block","hidden","none",{"deviceSize":85,"location":86},"large",{"path":29,"query":87},{},{},1775137295127,1774968080803,"ST0tXQM8slWpFrmioqKHmENB2qe2","ax7YYfD0OCeqT1Vxxv1G4FUbqVr1",[],{"breakpoints":95,"hasLinks":6,"kind":96,"lastPreviewUrl":97,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},"component","https://pushsecurity.com/?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditCode%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CeditProjects%2CmodifyMcpServers%2CmodifyWorkflowIntegrations%2CmodifyProjectSettings%2CconnectCodeRepository%2CcreateProjects%2CindexDesignSystems%2CsendPullRequests%2CmergePullRequests&builder.user.role.name=Developer&builder.user.role.id=developer&builder.cachebust=true&builder.preview=always-visible-banner&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.always-visible-banner=fd266d0172cc47429be7ad10f48c99ad&builder.overrides.fd266d0172cc47429be7ad10f48c99ad=fd266d0172cc47429be7ad10f48c99ad&builder.options.locale=Default","3bvba0xfb9",[100,136],{"createdDate":101,"id":102,"name":103,"modelId":104,"published":13,"stageModifiedSincePublish":6,"query":105,"data":106,"variations":129,"lastUpdated":130,"firstPublished":131,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":132,"meta":133,"rev":135},1776247359804,"9136a8f18b3b4a6ba29b8653a99372b1","testimonial-inductive-automation","20d9eaa352304613b3d1a794b400703d",[],{"link":107,"type":108,"testimonialLink":109,"testimonial":110},{},"testimonial","/customer-stories/inductive-automation",{"@type":111,"id":112,"model":108,"value":113},"@builder.io/core:Reference","f028f2b685bb47cd8bf9e82a26dd5a79",{"query":114,"folders":115,"createdDate":116,"id":112,"name":117,"modelId":118,"published":13,"data":119,"variations":123,"lastUpdated":124,"firstPublished":125,"testRatio":23,"createdBy":91,"lastUpdatedBy":91,"meta":126,"rev":128},[],[],1735823466309,"We found Push to be more accurate when compared to competitors and the browser agent offered features that others couldn’t match.","42035571a56940ac98bff4544aa79aa5",{"author":120,"jobTitle":121,"quote":117,"image":122},"Jason Waits","\u003Cp>CISO at Inductive Automation\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Ff04c0c0689ce4a89ac0f0708d78c0a07",{},1735910703862,1735823501152,{"kind":28,"lastPreviewUrl":29,"breakpoints":127,"hasAutosaves":34},{"small":32,"medium":33},"k8whqhdly7n",{},1776247404986,1776247404973,[],{"breakpoints":134,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},"f42u1yumvnp",{"createdDate":137,"id":138,"name":139,"modelId":104,"published":13,"meta":140,"stageModifiedSincePublish":6,"query":142,"data":143,"variations":169,"lastUpdated":170,"firstPublished":171,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":172,"rev":135},1776255761419,"05a9322735fc427db12e2740e4302300","Report: 2026 Browser Attack Techniques",{"breakpoints":141,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},[],{"testimonial":144,"link":163,"type":166,"title":139,"description":167,"image":168},{"@type":111,"id":145,"model":108,"value":146},"192acbb1f9ca4cac918c0ec435a8bae3",{"query":147,"folders":148,"createdDate":149,"id":145,"name":150,"modelId":118,"published":13,"data":151,"variations":157,"lastUpdated":158,"firstPublished":159,"testRatio":23,"createdBy":91,"lastUpdatedBy":24,"meta":160,"rev":162},[],[],1728981467463,"Push does for identity what CrowdStrike did for the endpoint",{"video":152,"jobTitle":153,"author":154,"qoute":29,"quote":155,"image":156},"https://cdn.builder.io/o/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F8b30e8ca50064058bbaef0f3c6164575%2Fcompressed?apiKey=f3a1111ff5be48cdbb123cd9f5795a05&token=8b30e8ca50064058bbaef0f3c6164575&alt=media&optimized=true","\u003Cp>Deputy CISO at Microsoft\u003C/p>\u003Cp>Former LinkedIn, Slack, Palantir\u003C/p>","Geoff Belknap","Push does for identity what CrowdStrike did for the endpoint.","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F748f0ad0a5064a00a13f4721fcc8dea1",{},1742902158597,1728981782923,{"kind":28,"lastPreviewUrl":29,"breakpoints":161,"hasAutosaves":34},{"small":32,"medium":33},"55sozp9p5sf",{"text":164,"url":165},"Download now","/resources/browser-attacks-report","resource","Learn about the latest techniques being used in the wild.","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F7b4a5ebf81d64e8c9d7fc35f6c96c4a9",{},1776255810913,1776255810900,[],[174,196],{"createdDate":175,"id":176,"name":139,"modelId":177,"published":13,"meta":178,"stageModifiedSincePublish":6,"query":180,"data":181,"variations":191,"lastUpdated":192,"firstPublished":193,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":194,"rev":195},1776256900280,"1f429607996e4e5fae8fe3f9b9610e55","4829faa81e7c4ee8bd2d000e160e8d3c",{"breakpoints":179,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},[],{"testimonial":182,"link":190,"type":166,"title":139,"description":167,"image":168},{"@type":111,"id":145,"model":108,"value":183},{"query":184,"folders":185,"createdDate":149,"id":145,"name":150,"modelId":118,"published":13,"data":186,"variations":187,"lastUpdated":158,"firstPublished":159,"testRatio":23,"createdBy":91,"lastUpdatedBy":24,"meta":188,"rev":162},[],[],{"video":152,"jobTitle":153,"author":154,"qoute":29,"quote":155,"image":156},{},{"kind":28,"lastPreviewUrl":29,"breakpoints":189,"hasAutosaves":34},{"small":32,"medium":33},{"text":164,"url":165},{},1776256937553,1776256937540,[],"854nyflc1eh",{"createdDate":197,"id":198,"name":199,"modelId":177,"published":13,"stageModifiedSincePublish":6,"query":200,"data":201,"variations":211,"lastUpdated":212,"firstPublished":213,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":214,"meta":215,"rev":195},1776256949234,"ce043785b71b4ece98eac811ecf4ba10","inductive-automation",[],{"link":202,"type":108,"testimonial":203,"testimonialLink":109},{},{"@type":111,"id":112,"model":108,"value":204},{"query":205,"folders":206,"createdDate":116,"id":112,"name":117,"modelId":118,"published":13,"data":207,"variations":208,"lastUpdated":124,"firstPublished":125,"testRatio":23,"createdBy":91,"lastUpdatedBy":91,"meta":209,"rev":128},[],[],{"author":120,"jobTitle":121,"quote":117,"image":122},{},{"kind":28,"lastPreviewUrl":29,"breakpoints":210,"hasAutosaves":34},{"small":32,"medium":33},{},1776256974140,1776256974130,[],{"breakpoints":216,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},{"id":218,"title":219,"authorsCollection":220,"content":228,"extension":1157,"hashTags":61,"meta":1158,"metaTitle":1159,"ogImage":61,"publishedDate":1160,"relatedBlogPostsCollection":1161,"slug":4578,"stem":4579,"subtitle":61,"summary":4580,"synopsis":4591,"sys":4592,"tagsCollection":4595,"__hash__":4601},"blog/blog/why-browser-extension-risk-scoring-wont-predict-your-next-breach.json","Why relying on browser extension risk scoring is an antipattern that won’t predict your next breach",{"items":221},[222],{"fullName":223,"firstName":224,"jobTitle":225,"profilePicture":226},"Dan Green","Dan","Threat Research",{"url":227},"https://images.ctfassets.net/y1cdw1ablpvd/7jik1VhFgA3kgzXBXTm2Vw/fcd8c171da644903d0827eafcfbcaad0/Dan_Headshot_2025.png",{"json":229,"links":1057},{"data":230,"content":231,"nodeType":1056},{},[232,241,289,296,303,307,317,324,332,374,386,389,397,404,411,419,436,452,459,475,482,498,514,534,591,598,605,611,618,625,632,639,662,668,675,682,689,701,717,720,728,735,742,749,769,775,782,789,796,921,927,934,941,944,952,959,979,986,993,996,1015],{"data":233,"content":239,"nodeType":240},{"target":234},{"sys":235},{"id":236,"type":237,"linkType":238},"4Lk4sATAlk2wPcevG0cJCu","Link","Entry",[],"embedded-entry-block",{"data":242,"content":243,"nodeType":288},{},[244,249,260,264,272,275,284],{"data":245,"marks":246,"value":247,"nodeType":248},{},[],"Browser extensions have become one of the most talked-about attack surfaces in security over the past 18 months, and understandably so — a string of high-profile supply chain compromises have collectively impacted tens of millions of users since late 2024 (","text",{"data":250,"content":252,"nodeType":259},{"uri":251},"https://www.cyberhaven.com/blog/cyberhavens-chrome-extension-security-incident-and-what-were-doing-about-it",[253],{"data":254,"marks":255,"value":258,"nodeType":248},{},[256],{"type":257},"underline","Cyberhaven","hyperlink",{"data":261,"marks":262,"value":263,"nodeType":248},{},[],", ",{"data":265,"content":267,"nodeType":259},{"uri":266},"https://thehackernews.com/2025/12/darkspectre-browser-extension-campaigns.html",[268],{"data":269,"marks":270,"value":271,"nodeType":248},{},[],"DarkSpectre",{"data":273,"marks":274,"value":263,"nodeType":248},{},[],{"data":276,"content":278,"nodeType":259},{"uri":277},"https://thehackernews.com/2025/12/trust-wallet-chrome-extension-hack.html",[279],{"data":280,"marks":281,"value":283,"nodeType":248},{},[282],{"type":257},"Trust Wallet",{"data":285,"marks":286,"value":287,"nodeType":248},{},[],", among many others). ","paragraph",{"data":290,"content":291,"nodeType":288},{},[292],{"data":293,"marks":294,"value":295,"nodeType":248},{},[],"But as the industry scrambles to respond, there's a tendency to treat browser extension management as an entirely new paradigm that requires a new approach, particularly risk scoring systems that attempt to rate each extension on a spectrum from safe to dangerous.",{"data":297,"content":298,"nodeType":288},{},[299],{"data":300,"marks":301,"value":302,"nodeType":248},{},[],"We think this framing misses the point, and that it's leading security teams toward a strategy that won't protect them from the attacks that actually cause damage.",{"data":304,"content":305,"nodeType":306},{},[],"hr",{"data":308,"content":309,"nodeType":316},{},[310],{"data":311,"marks":312,"value":315,"nodeType":248},{},[313],{"type":314},"bold","The practical problem: \"just remove the high-risk ones\" doesn't work","heading-1",{"data":318,"content":319,"nodeType":288},{},[320],{"data":321,"marks":322,"value":323,"nodeType":248},{},[],"The strategy we see most often is some version of \"identify and remove the highest-risk extensions.\" On the surface this seems reasonable — you can't address everything, so you prioritize. The problem is that it doesn't materially reduce your exposure to the attacks that are actually happening.",{"data":325,"content":326,"nodeType":288},{},[327],{"data":328,"marks":329,"value":331,"nodeType":248},{},[330],{"type":314},"Browser extension attacks almost always follow one of two patterns: ",{"data":333,"content":334,"nodeType":373},{},[335,346],{"data":336,"content":337,"nodeType":345},{},[338],{"data":339,"content":340,"nodeType":288},{},[341],{"data":342,"marks":343,"value":344,"nodeType":248},{},[],"A legitimate developer is compromised through consent phishing, session theft, or AiTM phishing, and a malicious update is pushed to the existing user base. Cyberhaven is a good example of this — a developer got consent phished with a specific app that granted the attacker access to the extension store.","list-item",{"data":347,"content":348,"nodeType":345},{},[349],{"data":350,"content":351,"nodeType":288},{},[352,356,369],{"data":353,"marks":354,"value":355,"nodeType":248},{},[],"An attacker builds or acquires a clean extension, operates it legitimately until it accumulates a sufficient user base, then deploys a malicious update. GitLab's threat intelligence team documented a cluster of",{"data":357,"content":359,"nodeType":259},{"uri":358},"https://gitlab-com.gitlab.io/gl-security/security-tech-notes/threat-intelligence-tech-notes/malicious-browser-extensions-feb-2025/",[360,364],{"data":361,"marks":362,"value":363,"nodeType":248},{},[]," ",{"data":365,"marks":366,"value":368,"nodeType":248},{},[367],{"type":257},"16 extensions impacting 3.2 million users",{"data":370,"marks":371,"value":372,"nodeType":248},{},[]," where access had been acquired from original developers rather than via compromise.","unordered-list",{"data":375,"content":376,"nodeType":288},{},[377,381],{"data":378,"marks":379,"value":380,"nodeType":248},{},[],"Real-world extension breaches aren't coming from extensions that looked risky beforehand. If your strategy is \"identify and remove the highest-risk extensions,\" you're optimizing for the wrong thing — because even extensions that score as moderate or low risk by every conventional measure still have the permissions and access needed for a full compromise. ",{"data":382,"marks":383,"value":385,"nodeType":248},{},[384],{"type":314},"If you skim off the top 10% “riskiest” extensions, 90% of the extensions in your environment could still become a breach vector. ",{"data":387,"content":388,"nodeType":306},{},[],{"data":390,"content":391,"nodeType":316},{},[392],{"data":393,"marks":394,"value":396,"nodeType":248},{},[395],{"type":314},"What risk scoring is designed to measure — and why it can’t predict future compromise",{"data":398,"content":399,"nodeType":288},{},[400],{"data":401,"marks":402,"value":403,"nodeType":248},{},[],"Most extension risk scoring systems evaluate some combination of permissions, install count, user ratings, code analysis, developer reputation, and web store trust signals. Nice-to-have data points, but with a common limitation: they describe the extension as it is today, not what it will become after the next update. That makes them poor predictors of the thing that actually causes breaches — a previously-clean extension being weaponized through a supply chain compromise.",{"data":405,"content":406,"nodeType":288},{},[407],{"data":408,"marks":409,"value":410,"nodeType":248},{},[],"It's worth examining why each signal falls short as a predictor specifically of future compromise, because the failure modes are different and well-documented.",{"data":412,"content":413,"nodeType":418},{},[414],{"data":415,"marks":416,"value":417,"nodeType":248},{},[],"Permissions","heading-2",{"data":420,"content":421,"nodeType":288},{},[422,426,432],{"data":423,"marks":424,"value":425,"nodeType":248},{},[],"Permissions are the most meaningful input to a risk score, because they determine what an extension is ",{"data":427,"marks":428,"value":431,"nodeType":248},{},[429],{"type":430},"italic","capable",{"data":433,"marks":434,"value":435,"nodeType":248},{},[]," of doing if it turns malicious. An extension with access to cookies, scripting, and broad host permissions can steal session tokens, log keystrokes, and exfiltrate data from any site the user visits. This is the data that actually answers the question \"what could this extension do to us if it went bad?\"",{"data":437,"content":438,"nodeType":288},{},[439,443,448],{"data":440,"marks":441,"value":442,"nodeType":248},{},[],"The problem is that these permissions are extraordinarily common. We analyzed a sample of 20,000 unique extensions deployed across Push customers and found that ",{"data":444,"marks":445,"value":447,"nodeType":248},{},[446],{"type":314},"46.76% have the permission combinations needed to perform account takeover with no user interaction",{"data":449,"marks":450,"value":451,"nodeType":248},{},[],". ",{"data":453,"content":454,"nodeType":288},{},[455],{"data":456,"marks":457,"value":458,"nodeType":248},{},[],"These figures also understate the real exposure. One of the most straightforward attack techniques involves injecting content scripts into web pages to hook request functions and extract cookies. The user-facing warning Chrome shows for this capability — \"Read and change all your data on the websites you visit\" — is the same generic string shown for ad blockers, password managers, and translation tools. So when you score by permissions, roughly half your extension inventory gets flagged as high or critical risk.  ",{"data":460,"content":461,"nodeType":288},{},[462,466,471],{"data":463,"marks":464,"value":465,"nodeType":248},{},[],"You can't practically remove everything that ",{"data":467,"marks":468,"value":470,"nodeType":248},{},[469],{"type":430},"could",{"data":472,"marks":473,"value":474,"nodeType":248},{},[]," be dangerous, because that includes most of the extensions people actually use for work. And if you set the threshold lower to keep the list manageable, you're excluding extensions that have the same permissions and pose the same theoretical risk.",{"data":476,"content":477,"nodeType":418},{},[478],{"data":479,"marks":480,"value":481,"nodeType":248},{},[],"Install counts, ratings, developer reputation, and web store badges",{"data":483,"content":484,"nodeType":288},{},[485,489,494],{"data":486,"marks":487,"value":488,"nodeType":248},{},[],"These signals share a common failure mode, so it's worth addressing them together: they all describe the extension's ",{"data":490,"marks":491,"value":493,"nodeType":248},{},[492],{"type":430},"reputation",{"data":495,"marks":496,"value":497,"nodeType":248},{},[]," at a point in time, and attackers have both the means and the incentive to ensure that reputation looks clean.",{"data":499,"content":500,"nodeType":288},{},[501,505,510],{"data":502,"marks":503,"value":504,"nodeType":248},{},[],"Install count is sometimes used as a proxy for trustworthiness, on the assumption that widely-adopted extensions are more likely to be legitimate. In practice, high install count is often a ",{"data":506,"marks":507,"value":509,"nodeType":248},{},[508],{"type":430},"precondition",{"data":511,"marks":512,"value":513,"nodeType":248},{},[]," for the attack rather than a signal against it. ",{"data":515,"content":516,"nodeType":288},{},[517,521,530],{"data":518,"marks":519,"value":520,"nodeType":248},{},[],"Attackers who acquire or build extensions are specifically waiting for the install base to grow before weaponizing — a pattern researchers have documented as the \"",{"data":522,"content":524,"nodeType":259},{"uri":523},"https://www.malwarebytes.com/blog/news/2025/12/sleeper-browser-extensions-woke-up-as-spyware-on-4-million-devices",[525],{"data":526,"marks":527,"value":529,"nodeType":248},{},[528],{"type":257},"sleeper agent",{"data":531,"marks":532,"value":533,"nodeType":248},{},[],"\" strategy. Install counts can also be straightforwardly inflated with bots, meaning that using them as a positive risk signal actively rewards the attackers who are best at gaming the system.",{"data":535,"content":536,"nodeType":373},{},[537,559,581],{"data":538,"content":539,"nodeType":345},{},[540],{"data":541,"content":542,"nodeType":288},{},[543,547,555],{"data":544,"marks":545,"value":546,"nodeType":248},{},[],"The ",{"data":548,"content":549,"nodeType":259},{"uri":266},[550],{"data":551,"marks":552,"value":554,"nodeType":248},{},[553],{"type":257},"DarkSpectre campaign",{"data":556,"marks":557,"value":558,"nodeType":248},{},[]," accumulated over 8.8 million compromised browsers across extensions that held \"verified\" status and healthy install counts throughout a seven-year operational period. ",{"data":560,"content":561,"nodeType":345},{},[562],{"data":563,"content":564,"nodeType":288},{},[565,568,577],{"data":566,"marks":567,"value":546,"nodeType":248},{},[],{"data":569,"content":571,"nodeType":259},{"uri":570},"https://www.ox.security/blog/malicious-chrome-extensions-steal-chatgpt-deepseek-conversations/",[572],{"data":573,"marks":574,"value":576,"nodeType":248},{},[575],{"type":257},"AITOPIA",{"data":578,"marks":579,"value":580,"nodeType":248},{},[]," impersonation extensions had over 900,000 combined installs and a Google \"Featured\" badge. ",{"data":582,"content":583,"nodeType":345},{},[584],{"data":585,"content":586,"nodeType":288},{},[587],{"data":588,"marks":589,"value":590,"nodeType":248},{},[],"Cyberhaven had approximately 400,000 users at the time of compromise. ",{"data":592,"content":593,"nodeType":288},{},[594],{"data":595,"marks":596,"value":597,"nodeType":248},{},[],"User ratings suffer from the same problems. Attackers use bot networks to generate positive reviews, and even genuinely clean extensions will carry good ratings right up until they're compromised. By the time users start leaving negative reviews the attack has already run its course.",{"data":599,"content":600,"nodeType":288},{},[601],{"data":602,"marks":603,"value":604,"nodeType":248},{},[],"Developer reputation and Google's \"Featured\" and \"Verified\" badges fail for a related but slightly different reason: the attack typically doesn't come from a known-bad developer. It comes from a reputable developer whose account has been compromised, or from an extension that has changed hands. ",{"data":606,"content":610,"nodeType":240},{"target":607},{"sys":608},{"id":609,"type":237,"linkType":238},"d1C5wKxUnKFwfhf4OBQAq",[],{"data":612,"content":613,"nodeType":288},{},[614],{"data":615,"marks":616,"value":617,"nodeType":248},{},[],"The net result across all of these signals is that the extensions most likely to appear in breach headlines — established tools with large user bases, good ratings, verified badges, and reputable developers — are precisely the ones that risk scoring would rate as low-risk.",{"data":619,"content":620,"nodeType":418},{},[621],{"data":622,"marks":623,"value":624,"nodeType":248},{},[],"Code analysis",{"data":626,"content":627,"nodeType":288},{},[628],{"data":629,"marks":630,"value":631,"nodeType":248},{},[],"Static analysis of extension code is the approach that sounds most rigorous, and it's the basis for Chrome Web Store's own review process. Google operates a hybrid system combining automated analysis and manual review, with manual review typically reserved for submissions that trigger specific signals such as sensitive permissions or large code volumes.",{"data":633,"content":634,"nodeType":288},{},[635],{"data":636,"marks":637,"value":638,"nodeType":248},{},[],"The difficulty is well-established: attackers have developed reliable techniques to pass these checks, and the specific evasion methods used in major campaigns illustrate why static analysis consistently falls short. ",{"data":640,"content":641,"nodeType":373},{},[642,652],{"data":643,"content":644,"nodeType":345},{},[645],{"data":646,"content":647,"nodeType":288},{},[648],{"data":649,"marks":650,"value":651,"nodeType":248},{},[],"The Cyberhaven compromise used dynamically loaded content fetched from a remote server via service workers, with the C2 infrastructure delivering different malicious configurations to different end-users — meaning that even if a scanner fetched the remote payload, it might receive a benign configuration depending on the target profile.",{"data":653,"content":654,"nodeType":345},{},[655],{"data":656,"content":657,"nodeType":288},{},[658],{"data":659,"marks":660,"value":661,"nodeType":248},{},[],"The GhostPoster campaign (part of the broader DarkSpectre operation) took evasion further still: the extension waited 48 hours between configuration check-ins and only loaded a malicious payload 10% of the time. No sandbox is running for 48 hours, and a 10% activation rate means that nine out of ten analysis runs would see nothing at all.",{"data":663,"content":667,"nodeType":240},{"target":664},{"sys":665},{"id":666,"type":237,"linkType":238},"6jy6jvYcHTXO2uMd7kx647",[],{"data":669,"content":670,"nodeType":288},{},[671],{"data":672,"marks":673,"value":674,"nodeType":248},{},[],"It's also worth noting that Chrome Web Store policy explicitly disallows code obfuscation, precisely because it makes review impossible. The fact that attackers have found ways to hide malicious behavior without technically obfuscating their code speaks to the fundamental asymmetry at play: the attacker controls when and how malicious functionality appears, and static analysis can only evaluate what's present at the time of review.",{"data":676,"content":677,"nodeType":418},{},[678],{"data":679,"marks":680,"value":681,"nodeType":248},{},[],"But extension scores combine all of these things …",{"data":683,"content":684,"nodeType":288},{},[685],{"data":686,"marks":687,"value":688,"nodeType":248},{},[],"The obvious counterargument is that no serious risk scoring system relies on any single signal in isolation — the value is supposed to come from combining permissions, install count, ratings, code analysis, and developer reputation into a composite score that's more predictive than any individual input. In theory, this sounds like the right approach: weak signals aggregated together should produce a stronger signal.",{"data":690,"content":691,"nodeType":288},{},[692,697],{"data":693,"marks":694,"value":696,"nodeType":248},{},[695],{"type":314},"In practice, combining signals that are individually unable to predict supply chain compromise doesn't produce a signal that can. ",{"data":698,"marks":699,"value":700,"nodeType":248},{},[],"Aggregating a set of backward-looking indicators doesn't make the aggregate forward-looking; it just gives you a more detailed description of the present state, which is the state before the attack has happened. No weighting or combination of install count, code behavior, and developer reputation would have flagged Cyberhaven, or DarkSpectre, or Trust Wallet before the malicious update shipped, because at that point every input to the composite score was returning a legitimate value.",{"data":702,"content":703,"nodeType":288},{},[704,708,713],{"data":705,"marks":706,"value":707,"nodeType":248},{},[],"Meanwhile, the indicators that ",{"data":709,"marks":710,"value":712,"nodeType":248},{},[711],{"type":430},"do",{"data":714,"marks":715,"value":716,"nodeType":248},{},[]," predict real-world compromise — an extension changing ownership, a developer account being phished, an update introducing behavior that wasn't present in prior versions, or an extension being explicitly confirmed as malicious through threat intelligence — aren't typical risk score inputs. They're discrete events that require monitoring and an immediate response, not a recalculated number on a dashboard. This is an important distinction: the signals that matter are changes over time, not static attributes at a point in time, and they call for a detection-and-response workflow rather than a periodic risk review.",{"data":718,"content":719,"nodeType":306},{},[],{"data":721,"content":722,"nodeType":316},{},[723],{"data":724,"marks":725,"value":727,"nodeType":248},{},[726],{"type":314},"What works instead",{"data":729,"content":730,"nodeType":288},{},[731],{"data":732,"marks":733,"value":734,"nodeType":248},{},[],"If the goal is to reduce your exposure to extension-based supply chain compromise rather than to generate a ranked list of risk, the approach is operationally straightforward — even if it requires more discipline than deploying a scoring dashboard.",{"data":736,"content":737,"nodeType":418},{},[738],{"data":739,"marks":740,"value":741,"nodeType":248},{},[],"Reduce your attack surface through allowlisting",{"data":743,"content":744,"nodeType":288},{},[745],{"data":746,"marks":747,"value":748,"nodeType":248},{},[],"Build a complete inventory of every extension running across your environment — what's installed, how it got there (managed deployment, manual install, sideloaded, developer mode), what permissions it has, who's using it, and whether it serves a legitimate work purpose. Then create a strict allowlist of vetted and approved extensions and block everything else.",{"data":750,"content":751,"nodeType":288},{},[752,756,765],{"data":753,"marks":754,"value":755,"nodeType":248},{},[],"This is the same default-deny approach that's been best practice for firewall policy and endpoint allowlisting for decades. ",{"data":757,"content":759,"nodeType":259},{"uri":758},"https://pushsecurity.com/blog/browser-extension-management-guide/",[760],{"data":761,"marks":762,"value":764,"nodeType":248},{},[763],{"type":257},"In Push, it works like building a firewall rule",{"data":766,"marks":767,"value":768,"nodeType":248},{},[],": a global block rule at the bottom that disables all browser extensions, with explicit exceptions above it for approved tools. Users who attempt to install unapproved extensions see a block screen.",{"data":770,"content":774,"nodeType":240},{"target":771},{"sys":772},{"id":773,"type":237,"linkType":238},"97dDukjKsRsAptpHV1kpn",[],{"data":776,"content":777,"nodeType":288},{},[778],{"data":779,"marks":780,"value":781,"nodeType":248},{},[],"The key insight is that every extension you don't need but haven't blocked is attack surface that exists for no business reason. Most organizations are surprised by how many of the extensions in their environment are unused, forgotten, or have readily available alternatives. Reducing the population of installed extensions to only the ones that serve a genuine work purpose is the single most effective thing you can do — and it doesn't require a risk score to accomplish.",{"data":783,"content":784,"nodeType":418},{},[785],{"data":786,"marks":787,"value":788,"nodeType":248},{},[],"Monitor for changes that indicate compromise",{"data":790,"content":791,"nodeType":288},{},[792],{"data":793,"marks":794,"value":795,"nodeType":248},{},[],"Once you have a controlled baseline, the risk shifts from unmanaged installations (those are blocked) to changes in the extensions you've already approved. These are the signals that map to real-world attack patterns and serve as leading indicators of weaponization:",{"data":797,"content":798,"nodeType":373},{},[799,844,859,874,889],{"data":800,"content":801,"nodeType":345},{},[802],{"data":803,"content":804,"nodeType":288},{},[805,810,814,823,828,832,840],{"data":806,"marks":807,"value":809,"nodeType":248},{},[808],{"type":314},"Ownership changes",{"data":811,"marks":812,"value":813,"nodeType":248},{},[]," — an extension changing hands is one of the most reliable precursors to supply chain compromise, as demonstrated by the ",{"data":815,"content":817,"nodeType":259},{"uri":816},"https://thehackernews.com/2026/03/chrome-extension-turns-malicious-after.html",[818],{"data":819,"marks":820,"value":822,"nodeType":248},{},[821],{"type":257},"QuickLens and ShotBird attack",{"data":824,"marks":825,"value":827,"nodeType":248},{},[826],{"type":257},"s",{"data":829,"marks":830,"value":831,"nodeType":248},{},[]," and the acquired-extension clusters documented by ",{"data":833,"content":834,"nodeType":259},{"uri":358},[835],{"data":836,"marks":837,"value":839,"nodeType":248},{},[838],{"type":257},"GitLab",{"data":841,"marks":842,"value":843,"nodeType":248},{},[],".",{"data":845,"content":846,"nodeType":345},{},[847],{"data":848,"content":849,"nodeType":288},{},[850,855],{"data":851,"marks":852,"value":854,"nodeType":248},{},[853],{"type":314},"Developer contact information changes",{"data":856,"marks":857,"value":858,"nodeType":248},{},[]," — often an early indicator that an extension has been sold or that a developer account has been taken over.",{"data":860,"content":861,"nodeType":345},{},[862],{"data":863,"content":864,"nodeType":288},{},[865,870],{"data":866,"marks":867,"value":869,"nodeType":248},{},[868],{"type":314},"Permission escalations in updates",{"data":871,"marks":872,"value":873,"nodeType":248},{},[]," — a previously-scoped extension suddenly requesting broad host permissions or cookie access.",{"data":875,"content":876,"nodeType":345},{},[877],{"data":878,"content":879,"nodeType":288},{},[880,885],{"data":881,"marks":882,"value":884,"nodeType":248},{},[883],{"type":314},"Delisting from the web store",{"data":886,"marks":887,"value":888,"nodeType":248},{},[]," — can indicate that the store's review process has caught something, or that the developer has abandoned the extension.",{"data":890,"content":891,"nodeType":345},{},[892],{"data":893,"content":894,"nodeType":288},{},[895,900,904,912,917],{"data":896,"marks":897,"value":899,"nodeType":248},{},[898],{"type":314},"Known malicious classification",{"data":901,"marks":902,"value":903,"nodeType":248},{},[]," — when an extension is confirmed as weaponized or linked to an active campaign through threat intelligence. (",{"data":905,"content":906,"nodeType":259},{"uri":758},[907],{"data":908,"marks":909,"value":911,"nodeType":248},{},[910],{"type":257},"Push blocks known-bad extensions automaticall",{"data":913,"marks":914,"value":916,"nodeType":248},{},[915],{"type":257},"y",{"data":918,"marks":919,"value":920,"nodeType":248},{},[],").",{"data":922,"content":926,"nodeType":240},{"target":923},{"sys":924},{"id":925,"type":237,"linkType":238},"4PWyOD92E549plkeNH1DxO",[],{"data":928,"content":929,"nodeType":288},{},[930],{"data":931,"marks":932,"value":933,"nodeType":248},{},[],"To make this concrete: Push emits structured events via webhook whenever extension metadata changes, and these can be fed directly into your SIEM or SOAR workflows, making it easy for security teams to detect when a meaningful change occurs. An ownership change on its own warrants investigation; an ownership change paired with a new version and added permissions warrants an immediate block pending review.",{"data":935,"content":936,"nodeType":288},{},[937],{"data":938,"marks":939,"value":940,"nodeType":248},{},[],"Push detects these changes in real time and can automatically block an extension when a meaningful risk indicator fires, before the damage propagates. This is fundamentally different from a periodic risk score: rather than attempting to predict which extensions might go bad based on static attributes, Push monitors for the specific events that precede or accompany weaponization in the attacks we've actually observed.",{"data":942,"content":943,"nodeType":306},{},[],{"data":945,"content":946,"nodeType":316},{},[947],{"data":948,"marks":949,"value":951,"nodeType":248},{},[950],{"type":314},"The bottom line",{"data":953,"content":954,"nodeType":288},{},[955],{"data":956,"marks":957,"value":958,"nodeType":248},{},[],"Traditional extension risk scores — based on permissions, store metadata, code analysis, and developer reputation — are poor predictors of which extensions will actually compromise you. The extensions involved in the major breaches of the past 18 months consistently scored as normal or low-risk right up until the moment they were weaponized. If your extension management strategy is built around \"identify the riskiest extensions and remove them,\" the extension that gets you is the one that wasn't on the list.",{"data":960,"content":961,"nodeType":288},{},[962,966,975],{"data":963,"marks":964,"value":965,"nodeType":248},{},[],"Browser extensions are software. They're third-party code running with significant privilege inside the browser, capable of reading and modifying page content, accessing cookies and session tokens, and interacting with virtually every web application your employees use. Like any other software dependency — ",{"data":967,"content":969,"nodeType":259},{"uri":968},"https://pushsecurity.com/blog/unpacking-the-vercel-breach/",[970],{"data":971,"marks":972,"value":974,"nodeType":248},{},[973],{"type":257},"OAuth integrations",{"data":976,"marks":977,"value":978,"nodeType":248},{},[]," being another relevant recent example in public breaches — each one expands your attack surface. The principles behind managing browser extensions need to be the same as any other software — default-deny, build an allowlist, monitor and maintain that allowlist. ",{"data":980,"content":981,"nodeType":288},{},[982],{"data":983,"marks":984,"value":985,"nodeType":248},{},[],"This might trigger some PTSD for security teams, but it shouldn’t. On the endpoint, application allowlisting has always been operationally painful — diverse workflows, unpredictable application needs, and the overhead of vetting every binary made it impractical for most organizations outside of high-security environments. In the browser, it’s not that serious. You’re not going to brick an endpoint by blocking a third-party browser extension. ",{"data":987,"content":988,"nodeType":288},{},[989],{"data":990,"marks":991,"value":992,"nodeType":248},{},[],"The browser is one of the few environments where an allowlisting approach is both technically feasible and operationally lightweight: use it to your advantage. ",{"data":994,"content":995,"nodeType":306},{},[],{"data":997,"content":998,"nodeType":288},{},[999,1003,1011],{"data":1000,"marks":1001,"value":1002,"nodeType":248},{},[],"Push detects and blocks malicious browser extensions, and gives security teams the controls to ",{"data":1004,"content":1005,"nodeType":259},{"uri":758},[1006],{"data":1007,"marks":1008,"value":1010,"nodeType":248},{},[1009],{"type":257},"enforce an extension allowlist and monitor for risky changes",{"data":1012,"marks":1013,"value":1014,"nodeType":248},{},[]," across every browser in the environment. Combined with protection against AiTM phishing, ClickFix attacks, session hijacking, and stolen credentials — plus proactive hardening for ghost logins, SSO coverage gaps, MFA gaps, and vulnerable passwords — Push provides browser-native visibility and control where it matters most.",{"data":1016,"content":1017,"nodeType":288},{},[1018,1022,1030,1033,1041,1045,1053],{"data":1019,"marks":1020,"value":1021,"nodeType":248},{},[],"To learn more about Push, ",{"data":1023,"content":1025,"nodeType":259},{"uri":1024},"https://pushsecurity.com/resources/product-brochure",[1026],{"data":1027,"marks":1028,"value":1029,"nodeType":248},{},[],"check out our latest product overview",{"data":1031,"marks":1032,"value":263,"nodeType":248},{},[],{"data":1034,"content":1036,"nodeType":259},{"uri":1035},"https://pushsecurity.com/product-demo/",[1037],{"data":1038,"marks":1039,"value":1040,"nodeType":248},{},[],"view our demo library",{"data":1042,"marks":1043,"value":1044,"nodeType":248},{},[],", or ",{"data":1046,"content":1048,"nodeType":259},{"uri":1047},"https://pushsecurity.com/demo",[1049],{"data":1050,"marks":1051,"value":1052,"nodeType":248},{},[],"book some time with one of our team for a live demo",{"data":1054,"marks":1055,"value":843,"nodeType":248},{},[],"document",{"entries":1058},{"hyperlink":1059,"inline":1060,"block":1061},[],[],[1062,1089,1115,1141,1150],{"sys":1063,"__typename":1064,"content":1065,"name":1088,"title":61},{"id":236},"InsightTextBlockComponent",{"json":1066},{"data":1067,"content":1068,"nodeType":1056},{},[1069,1081],{"data":1070,"content":1071,"nodeType":288},{},[1072,1077],{"data":1073,"marks":1074,"value":1076,"nodeType":248},{},[1075],{"type":314},"TL;DR:",{"data":1078,"marks":1079,"value":1080,"nodeType":248},{},[]," Traditional extension risk scores — based on data like permissions, store metadata, code analysis, and developer reputation — are poor predictors of which extensions will actually lead to a compromise. The extensions behind every major breach of the past 18 months scored as normal or low-risk beforehand. ",{"data":1082,"content":1083,"nodeType":288},{},[1084],{"data":1085,"marks":1086,"value":1087,"nodeType":248},{},[],"If your strategy is \"remove the highest-risk extensions,\" you're optimizing for the wrong question. The more effective approach is to implement an allowlist, block the rest, and monitor the approved set for the changes — like ownership transfers and permission escalations — that actually precede real-world attacks. ","Browser extension risk scoring IB1",{"sys":1090,"__typename":1064,"content":1091,"name":1114,"title":61},{"id":609},{"json":1092},{"nodeType":1056,"data":1093,"content":1094},{},[1095],{"nodeType":288,"data":1096,"content":1097},{},[1098,1102,1110],{"nodeType":248,"value":1099,"marks":1100,"data":1101},"Extensions compromised in the broader campaign impacting Cyberhaven had been legitimate, well-maintained tools with strong developer reputations before the developer accounts were phished. Likewise, the ",[],{},{"nodeType":259,"data":1103,"content":1104},{"uri":816},[1105],{"nodeType":248,"value":1106,"marks":1107,"data":1109},"QuickLens and ShotBird ownership transfer attacks",[1108],{"type":257},{},{"nodeType":248,"value":1111,"marks":1112,"data":1113}," in March 2026 involved extensions acquired through a legitimate marketplace, with malicious code introduced after the sale. Developer reputation at time of installation told you nothing about the developer at time of attack. ",[],{},"Browser extension risk scoring IB2",{"sys":1116,"__typename":1064,"content":1117,"name":1140,"title":61},{"id":666},{"json":1118},{"nodeType":1056,"data":1119,"content":1120},{},[1121],{"nodeType":288,"data":1122,"content":1123},{},[1124,1128,1136],{"nodeType":248,"value":1125,"marks":1126,"data":1127},"These are not outlier techniques. Across the major campaigns documented since late 2024 — including the 108-extension campaign ",[],{},{"nodeType":259,"data":1129,"content":1131},{"uri":1130},"https://thehackernews.com/2026/04/108-malicious-chrome-extensions-steal.html",[1132],{"nodeType":248,"value":1133,"marks":1134,"data":1135},"discovered in April 2026 ",[],{},{"nodeType":248,"value":1137,"marks":1138,"data":1139},"— some combination of dynamically loaded payloads, conditional execution, time-delayed activation, and base64-encoded endpoints has been present in virtually every case. If these techniques are bypassing Google's own review infrastructure, which has both the scale and the incentive to detect them, they will bypass third-party code analysis tools as well.",[],{},"Browser extension risk scoring IB3",{"sys":1142,"__typename":1143,"title":1144,"caption":1145,"layoutMode":61,"file":1146},{"id":773},"Image","This extension is not approved for business use","Employees will see a customizable block screen when trying to use extensions that are not approved.",{"url":1147,"width":1148,"height":1149},"https://images.ctfassets.net/y1cdw1ablpvd/2hFpE2X60adttS6vAtyUIO/963e14eb2899163f583e7342db3f0650/image5.png",1440,744,{"sys":1151,"__typename":1143,"title":1152,"caption":1152,"layoutMode":61,"file":1153},{"id":925},"Push automatically blocks known-bad browser extensions.",{"url":1154,"width":1155,"height":1156},"https://images.ctfassets.net/y1cdw1ablpvd/31TgJEkYVua0s5ecwgQPmM/efb0a7048f9ecc9eacf2e29b7b2233bc/image1.png",1433,810,"json",{},"Why browser extension risk scoring won’t predict a breach","2026-04-29T00:00:00.000Z",{"items":1162},[1163,1939,3191],{"__typename":1164,"sys":1165,"content":1167,"title":1921,"synopsis":1922,"hashTags":61,"publishedDate":1923,"slug":1924,"tagsCollection":1925,"authorsCollection":1935},"BlogPosts",{"id":1166},"Lq2AFQ8VG2rMEe4h2CYuH",{"json":1168},{"nodeType":1056,"data":1169,"content":1170},{},[1171,1199,1232,1239,1245,1248,1256,1263,1269,1288,1295,1303,1323,1339,1346,1353,1356,1364,1371,1378,1441,1448,1454,1462,1474,1481,1488,1494,1502,1509,1516,1523,1530,1536,1544,1551,1638,1644,1647,1655,1662,1678,1685,1692,1698,1718,1721,1729,1736,1742,1760,1767,1774,1780,1783,1791,1798,1805,1811,1818,1824,1830,1855,1861,1873,1880,1887],{"nodeType":288,"data":1172,"content":1173},{},[1174,1178,1187,1191,1196],{"nodeType":248,"value":1175,"marks":1176,"data":1177},"This week, a user going by the name of “ShinyHunters” (though allegedly not ",[],{},{"nodeType":259,"data":1179,"content":1181},{"uri":1180},"https://pushsecurity.com/blog/scattered-lapsus-hunters/",[1182],{"nodeType":248,"value":1183,"marks":1184,"data":1186},"actual ShinyHunters",[1185],{"type":257},{},{"nodeType":248,"value":1188,"marks":1189,"data":1190},", but someone imitating them in an attempt to trade off their credibility) posted on a breach forum claiming access keys, source code, and database data stolen from cloud development platform provider ",[],{},{"nodeType":248,"value":1192,"marks":1193,"data":1195},"Vercel",[1194],{"type":314},{},{"nodeType":248,"value":451,"marks":1197,"data":1198},[],{},{"nodeType":288,"data":1200,"content":1201},{},[1202,1206,1215,1219,1228],{"nodeType":248,"value":1203,"marks":1204,"data":1205},"This happened because a Vercel employee had connected an AI app, Context.ai, into their Google Workspace tenant. When Context.ai was compromised — ",[],{},{"nodeType":259,"data":1207,"content":1209},{"uri":1208},"https://www.infostealers.com/article/breaking-vercel-breach-linked-to-infostealer-infection-at-context-ai/",[1210],{"nodeType":248,"value":1211,"marks":1212,"data":1214},"allegedly the result of an infostealer infection from an employee searching for Roblox cheats",[1213],{"type":257},{},{"nodeType":248,"value":1216,"marks":1217,"data":1218}," — the attacker was able to leverage OAuth tokens stored in Context.ai’s Supabase platform to access downstream customer accounts (pointing to a heavily permissioned victim, probably a developer, possibly even a ",[],{},{"nodeType":259,"data":1220,"content":1222},{"uri":1221},"https://pushsecurity.com/blog/browser-sync-attacks-where-personal-account-hacks-lead-to-corporate-breaches/",[1223],{"nodeType":248,"value":1224,"marks":1225,"data":1227},"personal device with access to corp credentials",[1226],{"type":257},{},{"nodeType":248,"value":1229,"marks":1230,"data":1231},"). ",[],{},{"nodeType":288,"data":1233,"content":1234},{},[1235],{"nodeType":248,"value":1236,"marks":1237,"data":1238},"This access included a Vercel employee’s Google Workspace account. This particular user had significant access to data and secrets in Vercel’s systems, including internal dashboards, employee records, API keys, NPM tokens, and GitHub tokens, which the attacker was able to exfiltrate, holding Vercel to ransom for $2 million. ",[],{},{"nodeType":240,"data":1240,"content":1244},{"target":1241},{"sys":1242},{"id":1243,"type":237,"linkType":238},"6Ft8aSnzfYVZ7j57mYeXgQ",[],{"nodeType":306,"data":1246,"content":1247},{},[],{"nodeType":316,"data":1249,"content":1250},{},[1251],{"nodeType":248,"value":1252,"marks":1253,"data":1255},"How did this happen, and what could have stopped it?",[1254],{"type":314},{},{"nodeType":288,"data":1257,"content":1258},{},[1259],{"nodeType":248,"value":1260,"marks":1261,"data":1262},"From Vercel’s perspective, this attack could have been avoided had their employees been blocked from adding new OAuth integrations without admin approval (a toggle in their Google admin panel, and an essential control in a well-configured environment). Or, if the integration had been flagged in a routine audit and removed. ",[],{},{"nodeType":240,"data":1264,"content":1268},{"target":1265},{"sys":1266},{"id":1267,"type":237,"linkType":238},"b5HFvY1m6RnuXL3a95jVt",[],{"nodeType":288,"data":1270,"content":1271},{},[1272,1276,1284],{"nodeType":248,"value":1273,"marks":1274,"data":1275},"It probably should have been removed, too. The particular OAuth app that was connected into the environment was a deprecated “AI Office Suite” product intended for consumer use. ",[],{},{"nodeType":259,"data":1277,"content":1279},{"uri":1278},"https://context.ai/security-update",[1280],{"nodeType":248,"value":1281,"marks":1282,"data":1283},"According to Context.ai",[],{},{"nodeType":248,"value":1285,"marks":1286,"data":1287},", Vercel aren’t even a registered customer — adding more evidence that this was probably the result of a self-service trial that was subsequently forgotten about. That consumer product has also since been replaced by an enterprise product. But for whatever reason, the access hadn’t been revoked (from either side). ",[],{},{"nodeType":288,"data":1289,"content":1290},{},[1291],{"nodeType":248,"value":1292,"marks":1293,"data":1294},"The elephant in the room is that Context.ai is an AI app. Most organizations are rightly nervous about employees adding unapproved AI SaaS into their environment. Having employees use shadow AI in the form of LLMs is one thing — users uploading sensitive data to unapproved apps or external tenants being the key concern. But OAuth grants are even more dangerous. Because if that app or vendor is compromised, the apps and accounts you’ve integrated it with are also at risk — which is what was exploited here. ",[],{},{"nodeType":418,"data":1296,"content":1297},{},[1298],{"nodeType":248,"value":1299,"marks":1300,"data":1302},"Where’s the fault?",[1301],{"type":314},{},{"nodeType":288,"data":1304,"content":1305},{},[1306,1310,1319],{"nodeType":248,"value":1307,"marks":1308,"data":1309},"It’s easy to point fingers here. There are multiple control gaps and failures for both parties. Vercel should have disabled OAuth grants without admin approval, and regularly audited the connections in their environment. From a vendor's perspective, they could have also default applied a control that ",[],{},{"nodeType":259,"data":1311,"content":1313},{"uri":1312},"https://vercel.com/kb/bulletin/vercel-april-2026-security-incident",[1314],{"nodeType":248,"value":1315,"marks":1316,"data":1318},"prevents secret environment variables from being read",[1317],{"type":257},{},{"nodeType":248,"value":1320,"marks":1321,"data":1322}," — which would have significantly reduced the impact to Vercel customers from the data breach. ",[],{},{"nodeType":288,"data":1324,"content":1325},{},[1326,1330,1335],{"nodeType":248,"value":1327,"marks":1328,"data":1329},"Context.ai comes off worse. They could and should have had better separation of accounts and privileges — and if true, their users really shouldn’t be downloading Roblox scripts on devices they use for work access. It’s important to say ",[],{},{"nodeType":248,"value":1331,"marks":1332,"data":1334},"if true",[1333],{"type":430},{},{"nodeType":248,"value":1336,"marks":1337,"data":1338}," here, but the prospect of third parties accessing your environment from insecure devices that they use for gaming is the stuff of nightmares for enterprise security and compliance teams.",[],{},{"nodeType":288,"data":1340,"content":1341},{},[1342],{"nodeType":248,"value":1343,"marks":1344,"data":1345},"You definitely don’t want to be Context.ai in this scenario. The reputational harm could be pretty significant, and is a wake-up call for other SaaS vendors to check that their house is in order. But although Vercel have responded quickly and transparently to the incident, this could only really have happened as a result of technical and procedural control gaps on their end.",[],{},{"nodeType":288,"data":1347,"content":1348},{},[1349],{"nodeType":248,"value":1350,"marks":1351,"data":1352},"It’s worth taking a step back and looking at the bigger picture here — and how these issues might impact your organization too. ",[],{},{"nodeType":306,"data":1354,"content":1355},{},[],{"nodeType":316,"data":1357,"content":1358},{},[1359],{"nodeType":248,"value":1360,"marks":1361,"data":1363},"Shadow AI is still just shadow SaaS – but the AI scramble is a force multiplier",[1362],{"type":314},{},{"nodeType":288,"data":1365,"content":1366},{},[1367],{"nodeType":248,"value":1368,"marks":1369,"data":1370},"Shadow IT, and in particular shadow SaaS, is not a new problem. Most organizations run heavily (or exclusively) on SaaS, accessed in the browser, with hundreds of apps per enterprise. Unmanaged, self-adopted apps have been a thorn in the side of security teams for some time. ",[],{},{"nodeType":288,"data":1372,"content":1373},{},[1374],{"nodeType":248,"value":1375,"marks":1376,"data":1377},"There are essentially four kinds of shadow IT to be wary of in the context of AI apps:",[],{},{"nodeType":373,"data":1379,"content":1380},{},[1381,1396,1411,1426],{"nodeType":345,"data":1382,"content":1383},{},[1384],{"nodeType":288,"data":1385,"content":1386},{},[1387,1392],{"nodeType":248,"value":1388,"marks":1389,"data":1391},"Shadow apps:",[1390],{"type":314},{},{"nodeType":248,"value":1393,"marks":1394,"data":1395}," Apps that employees have signed up to and are using for business purposes without business approval. This includes apps signed up to with a corporate account or personal account. ",[],{},{"nodeType":345,"data":1397,"content":1398},{},[1399],{"nodeType":288,"data":1400,"content":1401},{},[1402,1407],{"nodeType":248,"value":1403,"marks":1404,"data":1406},"Shadow tenants:",[1405],{"type":314},{},{"nodeType":248,"value":1408,"marks":1409,"data":1410}," Apps that employees are accessing with personal accounts, essentially creating shadow tenants outside of your organization’s control — even if you’ve approved the app itself.",[],{},{"nodeType":345,"data":1412,"content":1413},{},[1414],{"nodeType":288,"data":1415,"content":1416},{},[1417,1422],{"nodeType":248,"value":1418,"marks":1419,"data":1421},"Shadow extensions:",[1420],{"type":314},{},{"nodeType":248,"value":1423,"marks":1424,"data":1425}," Many AI apps come with an extension counterpart, along with countless third-party extensions that are either untrustworthy or downright malicious. Browser extensions add another angle to the equation by presenting visibility beyond the application into browser activity. ",[],{},{"nodeType":345,"data":1427,"content":1428},{},[1429],{"nodeType":288,"data":1430,"content":1431},{},[1432,1437],{"nodeType":248,"value":1433,"marks":1434,"data":1436},"Shadow integrations:",[1435],{"type":314},{},{"nodeType":248,"value":1438,"marks":1439,"data":1440}," OAuth connections across apps that aren’t known or approved. Even if an app itself is approved, plugging that app directly into your primary enterprise apps — with all the sensitive data and functionality therein — isn't necessarily also approved.  ",[],{},{"nodeType":288,"data":1442,"content":1443},{},[1444],{"nodeType":248,"value":1445,"marks":1446,"data":1447},"In the Vercel case, we’re talking specifically about shadow integrations. But all of these present a key risk to your organization. ",[],{},{"nodeType":240,"data":1449,"content":1453},{"target":1450},{"sys":1451},{"id":1452,"type":237,"linkType":238},"2hsKQ9DEspflhmtR0bE7QY",[],{"nodeType":418,"data":1455,"content":1456},{},[1457],{"nodeType":248,"value":1458,"marks":1459,"data":1461},"The web of OAuth sprawl spans way beyond Google and Microsoft ",[1460],{"type":314},{},{"nodeType":288,"data":1463,"content":1464},{},[1465,1470],{"nodeType":248,"value":1466,"marks":1467,"data":1469},"On average we see 17 unique AI app integrations per organization in Microsoft and Google alone",[1468],{"type":314},{},{"nodeType":248,"value":1471,"marks":1472,"data":1473},". If you consider that most organizations have probably approved 1 or 2 max for business use, and may have approved none at all for app-to-app OAuth connectivity, that’s quite a significant difference. ",[],{},{"nodeType":288,"data":1475,"content":1476},{},[1477],{"nodeType":248,"value":1478,"marks":1479,"data":1480},"The number of connections outside of these core platforms is significantly higher. Just think how the typical AI app operates. If you want it to be able to effectively automate workflows — pull data from one app, aggregate and analyze it in another, present that information in a report, dashboard, or presentation, and then distribute it — that’s a fair few integrations in just one workflow. MCP connections use OAuth to achieve this interconnectivity in the same way as any other SaaS app.",[],{},{"nodeType":288,"data":1482,"content":1483},{},[1484],{"nodeType":248,"value":1485,"marks":1486,"data":1487},"We used to talk about automation apps like Zapier as being a goldmine for attackers. Well, AI apps are on their way to being even more interconnected, more frequently used, and more flexible in terms of how attackers can abuse them. ",[],{},{"nodeType":240,"data":1489,"content":1493},{"target":1490},{"sys":1491},{"id":1492,"type":237,"linkType":238},"4FiWyVw7mpVBA5uBVJoOKL",[],{"nodeType":418,"data":1495,"content":1496},{},[1497],{"nodeType":248,"value":1498,"marks":1499,"data":1501},"A note on OAuth configuration complexity",[1500],{"type":314},{},{"nodeType":288,"data":1503,"content":1504},{},[1505],{"nodeType":248,"value":1506,"marks":1507,"data":1508},"A common misconception is that when a regular user consents to an OAuth app (let's use Google Workspace as the example) the app only gets access to the things they can directly access. Technically that's true — the access is scoped to that user's permissions. But in practice, the blast radius is almost always bigger than people think.",[],{},{"nodeType":288,"data":1510,"content":1511},{},[1512],{"nodeType":248,"value":1513,"marks":1514,"data":1515},"The scope includes shared drives, shared calendars, documents shared with them, and any other collaborative resources. A single well-permissioned user (think: developer with access to secrets, dashboards, and internal tooling) is more than enough to cause serious damage through a single OAuth grant. ",[],{},{"nodeType":288,"data":1517,"content":1518},{},[1519],{"nodeType":248,"value":1520,"marks":1521,"data":1522},"The scopes themselves are often deceptively broad. An app requesting https://www.googleapis.com/auth/drive gets full read/write access to everything the user can see in Drive — not just their personal files. And the blast radius is further contingent on the data and user permission hygiene in these broader environments. ",[],{},{"nodeType":288,"data":1524,"content":1525},{},[1526],{"nodeType":248,"value":1527,"marks":1528,"data":1529},"So if your environment hasn't got cleanly separated access and permissions for different users and groups, an attacker compromising a \"normal\" user account can end up with extensive access. You don't need tenant-wide admin access when a normal user's access already spans the crown jewels.",[],{},{"nodeType":240,"data":1531,"content":1535},{"target":1532},{"sys":1533},{"id":1534,"type":237,"linkType":238},"2t81AnAHx2On3fBynM4vVe",[],{"nodeType":418,"data":1537,"content":1538},{},[1539],{"nodeType":248,"value":1540,"marks":1541,"data":1543},"Unsurprisingly, OAuth breaches are stacking up",[1542],{"type":314},{},{"nodeType":288,"data":1545,"content":1546},{},[1547],{"nodeType":248,"value":1548,"marks":1549,"data":1550},"Widespread OAuth interconnectedness isn’t just an AI app problem. Attackers have been exploiting this for some time:",[],{},{"nodeType":373,"data":1552,"content":1553},{},[1554,1602],{"nodeType":345,"data":1555,"content":1556},{},[1557],{"nodeType":288,"data":1558,"content":1559},{},[1560,1564,1572,1576,1585,1589,1598],{"nodeType":248,"value":1561,"marks":1562,"data":1563},"In 2025, ",[],{},{"nodeType":259,"data":1565,"content":1566},{"uri":1180},[1567],{"nodeType":248,"value":1568,"marks":1569,"data":1571},"Scattered Lapsus$ Hunters",[1570],{"type":257},{},{"nodeType":248,"value":1573,"marks":1574,"data":1575}," launched OAuth-driven supply chain attacks against Salesforce and Google Workspace tenants after breaching Salesloft (specifically the ",[],{},{"nodeType":259,"data":1577,"content":1579},{"uri":1578},"https://www.bleepingcomputer.com/news/security/shinyhunters-claims-15-billion-salesforce-records-stolen-in-drift-hacks/",[1580],{"nodeType":248,"value":1581,"marks":1582,"data":1584},"Salesloft Drift",[1583],{"type":257},{},{"nodeType":248,"value":1586,"marks":1587,"data":1588}," platform) and ",[],{},{"nodeType":259,"data":1590,"content":1592},{"uri":1591},"https://www.bleepingcomputer.com/news/security/salesforce-investigates-customer-data-theft-via-gainsight-breach/",[1593],{"nodeType":248,"value":1594,"marks":1595,"data":1597},"Gainsight",[1596],{"type":257},{},{"nodeType":248,"value":1599,"marks":1600,"data":1601},". In total, over 1000 organizations were impacted, including Google, Cloudflare, Rubrik, Elastic, Proofpoint, JFrog, Zscaler, Tenable, Palo Alto Networks, CyberArk, BeyondTrust, Qualys, and many more, with over 1.5B records stolen. ",[],{},{"nodeType":345,"data":1603,"content":1604},{},[1605],{"nodeType":288,"data":1606,"content":1607},{},[1608,1612,1621,1625,1634],{"nodeType":248,"value":1609,"marks":1610,"data":1611},"More recently, Snowflake customers were impacted after a ",[],{},{"nodeType":259,"data":1613,"content":1615},{"uri":1614},"https://www.bleepingcomputer.com/news/security/snowflake-customers-hit-in-data-theft-attacks-after-saas-integrator-breach/",[1616],{"nodeType":248,"value":1617,"marks":1618,"data":1620},"breach at data anomaly detection company Anodot",[1619],{"type":257},{},{"nodeType":248,"value":1622,"marks":1623,"data":1624}," where the attacker attempted to leverage the stolen authentication tokens to access Salesforce data, with ",[],{},{"nodeType":259,"data":1626,"content":1628},{"uri":1627},"https://www.bleepingcomputer.com/news/security/stolen-rockstar-games-analytics-data-leaked-by-extortion-gang/",[1629],{"nodeType":248,"value":1630,"marks":1631,"data":1633},"Rockstar",[1632],{"type":257},{},{"nodeType":248,"value":1635,"marks":1636,"data":1637}," a high-profile victim of the breach (again linked to Scattered Lapsus$ Hunters). ",[],{},{"nodeType":240,"data":1639,"content":1643},{"target":1640},{"sys":1641},{"id":1642,"type":237,"linkType":238},"3oqoL9L3fxetFcIhnfQhMQ",[],{"nodeType":306,"data":1645,"content":1646},{},[],{"nodeType":316,"data":1648,"content":1649},{},[1650],{"nodeType":248,"value":1651,"marks":1652,"data":1654},"Infostealers continue to drive corporate breaches",[1653],{"type":314},{},{"nodeType":288,"data":1656,"content":1657},{},[1658],{"nodeType":248,"value":1659,"marks":1660,"data":1661},"While unverified, Hudson Rock’s case for an infostealer breach being the root cause of the Context.ai breach seems believable. Infostealer infections have been one of the leading security threats for some time, fuelling breaches powered by stolen credentials and session tokens.",[],{},{"nodeType":288,"data":1663,"content":1664},{},[1665,1669,1674],{"nodeType":248,"value":1666,"marks":1667,"data":1668},"With the assumed rise in MFA coverage, it’s often surprising to security teams that stolen credentials are still a problem. ",[],{},{"nodeType":248,"value":1670,"marks":1671,"data":1673},"But of the last million logins we saw, 1 in 4 were password logins (not SSO), 2 in 5 were not protected by MFA, and 1 in 5 used a weak, breached, or reused password. ",[1672],{"type":314},{},{"nodeType":248,"value":1675,"marks":1676,"data":1677},"Plenty of scope for abuse. ",[],{},{"nodeType":288,"data":1679,"content":1680},{},[1681],{"nodeType":248,"value":1682,"marks":1683,"data":1684},"Stolen session tokens are even more valuable to attackers, enabling them to bypass authentication controls by replaying the token in their own browser. In theory, they should only be valid for a limited timeframe, but in practice this can be as many as 90 days, and sometimes indefinite. ",[],{},{"nodeType":288,"data":1686,"content":1687},{},[1688],{"nodeType":248,"value":1689,"marks":1690,"data":1691},"In this case, it seems likely that the compromised device was a developer machine (given the access to Supabase), or potentially even a personal device (given they were installing Roblox cheats…). This is relevant because these personal, developer, and BYOD machines are often less secure — developer machines are often exempt from EDR monitoring or significantly tuned-down (too noisy), while personal devices naturally lack enterprise security software.",[],{},{"nodeType":240,"data":1693,"content":1697},{"target":1694},{"sys":1695},{"id":1696,"type":237,"linkType":238},"139oaGgwRKZbwJzyex9LA5",[],{"nodeType":288,"data":1699,"content":1700},{},[1701,1705,1714],{"nodeType":248,"value":1702,"marks":1703,"data":1704},"We’ve also seen an uptick in developer-oriented phishing and malvertising campaigns. The ",[],{},{"nodeType":259,"data":1706,"content":1708},{"uri":1707},"https://pushsecurity.com/blog/installfix/",[1709],{"nodeType":248,"value":1710,"marks":1711,"data":1713},"InstallFix campaign",[1712],{"type":257},{},{"nodeType":248,"value":1715,"marks":1716,"data":1717}," we identified, intercepting users as they attempt to install AI tools like Claude Code and NotebookLM, is an example of this — and also another way that attackers are capitalizing on AI hype. ",[],{},{"nodeType":306,"data":1719,"content":1720},{},[],{"nodeType":316,"data":1722,"content":1723},{},[1724],{"nodeType":248,"value":1725,"marks":1726,"data":1728},"Advice for security teams",[1727],{"type":314},{},{"nodeType":288,"data":1730,"content":1731},{},[1732],{"nodeType":248,"value":1733,"marks":1734,"data":1735},"There are some immediate next steps that we’ll quickly summarize here, as they've already been covered in wider reporting. If you’re a Vercel customer, you should urgently rotate every credential stored as a non-sensitive variable that could have been exposed, enable the sensitive variable feature toggle, and monitor your account for anomalous activity. And if you’re using the specific Context.ai integration, you need to revoke it ASAP and begin a full audit of the connected accounts, both inside Workspace and broader connected apps (this isn’t that easy, as we’ll highlight in a moment). ",[],{},{"nodeType":240,"data":1737,"content":1741},{"target":1738},{"sys":1739},{"id":1740,"type":237,"linkType":238},"76HViirkH2R4QAzWg605sv",[],{"nodeType":288,"data":1743,"content":1744},{},[1745,1749,1757],{"nodeType":248,"value":1746,"marks":1747,"data":1748},"Taking a step back, organizations really need to get their arms around OAuth integrations in their environment. A default-deny approach to allowing users to consent to new integrations, and routinely auditing the ones already in your environment to ensure they’re still definitely required, is essential. Each integration expands your attack surface and could potentially grant an attacker extensive access to your environment. This default-deny approach isn't exactly a new concept for security teams and is the same in principle as what we recently advised for ",[],{},{"nodeType":259,"data":1750,"content":1751},{"uri":758},[1752],{"nodeType":248,"value":1753,"marks":1754,"data":1756},"browser extension management",[1755],{"type":257},{},{"nodeType":248,"value":451,"marks":1758,"data":1759},[],{},{"nodeType":288,"data":1761,"content":1762},{},[1763],{"nodeType":248,"value":1764,"marks":1765,"data":1766},"This is fairly straightforward in your main enterprise cloud environment (think M365 or Google Workspace). But doing it across every SaaS app that allows some level of OAuth integration with another (i.e. every SaaS app) is somewhat harder. Not only do you need to have a comprehensive and up-to-date inventory, you need to be an app admin for every app (not always the case for self-adopted apps) and the particular app needs to give you the control to restrict and remove OAuth grants on behalf of users in your tenant. ",[],{},{"nodeType":288,"data":1768,"content":1769},{},[1770],{"nodeType":248,"value":1771,"marks":1772,"data":1773},"Again, this is not exclusively a Shadow AI problem, even if AI adoption is contributing significantly to the sprawl. ",[],{},{"nodeType":240,"data":1775,"content":1779},{"target":1776},{"sys":1777},{"id":1778,"type":237,"linkType":238},"XKKHUiz56G82uwYhbv2Qv",[],{"nodeType":306,"data":1781,"content":1782},{},[],{"nodeType":316,"data":1784,"content":1785},{},[1786],{"nodeType":248,"value":1787,"marks":1788,"data":1790},"How Push can help",[1789],{"type":314},{},{"nodeType":288,"data":1792,"content":1793},{},[1794],{"nodeType":248,"value":1795,"marks":1796,"data":1797},"As we’ve established, there are quite a few pieces to this puzzle. Push can help with all of them. ",[],{},{"nodeType":288,"data":1799,"content":1800},{},[1801],{"nodeType":248,"value":1802,"marks":1803,"data":1804},"Push observes every app login your employees make in their browser, building a comprehensive picture of SaaS and AI use across your organization. This includes how they’re logging in and how secure the login is: did it have MFA, what kind of MFA, was it using a weak or compromised password, did they use SSO, and so on. ",[],{},{"nodeType":240,"data":1806,"content":1810},{"target":1807},{"sys":1808},{"id":1809,"type":237,"linkType":238},"2B205bUaLm6vG8mIQ0rJvA",[],{"nodeType":288,"data":1812,"content":1813},{},[1814],{"nodeType":248,"value":1815,"marks":1816,"data":1817},"Push also tracks OAuth integrations in your environment and gives you the ability to manage and remove them in core environments like M365 and Google Workspace, providing a single platform for you to view, manage, and secure app use across your organization. ",[],{},{"nodeType":240,"data":1819,"content":1823},{"target":1820},{"sys":1821},{"id":1822,"type":237,"linkType":238},"eEbdBUfyzZsdIOjFOXHpM",[],{"nodeType":240,"data":1825,"content":1829},{"target":1826},{"sys":1827},{"id":1828,"type":237,"linkType":238},"1MTFxfROuGKxnkHQwWHe8K",[],{"nodeType":288,"data":1831,"content":1832},{},[1833,1837,1842,1846,1851],{"nodeType":248,"value":1834,"marks":1835,"data":1836},"This makes it easy to surface both vulnerabilities and possible control gaps, and do something about them. But where Push really excels is in the ability to observe and block OAuth connection requests ",[],{},{"nodeType":248,"value":1838,"marks":1839,"data":1841},"even outside of your primary enterprise apps.",[1840],{"type":314},{},{"nodeType":248,"value":1843,"marks":1844,"data":1845}," Using Push, you can detect and block OAuth integration requests as they traverse the browser. This ",[],{},{"nodeType":248,"value":1847,"marks":1848,"data":1850},"app-agnostic",[1849],{"type":314},{},{"nodeType":248,"value":1852,"marks":1853,"data":1854}," level of control is absolutely critical to halting OAuth integration sprawl. ",[],{},{"nodeType":240,"data":1856,"content":1860},{"target":1857},{"sys":1858},{"id":1859,"type":237,"linkType":238},"2VZ4uw6MXslXME2ueydGuT",[],{"nodeType":418,"data":1862,"content":1863},{},[1864,1868],{"nodeType":248,"value":1865,"marks":1866,"data":1867},"And t",[],{},{"nodeType":248,"value":1869,"marks":1870,"data":1872},"hat’s not all …",[1871],{"type":314},{},{"nodeType":288,"data":1874,"content":1875},{},[1876],{"nodeType":248,"value":1877,"marks":1878,"data":1879},"Push’s browser-based security platform also detects and blocks browser-based attacks like AiTM phishing, credential stuffing, malicious browser extensions, device code phishing, ClickFix, and session hijacking in real time. This includes the most prominent infostealer delivery vectors in terms of malvertising and *Fix-style attacks. Push analyzes every web page in every browser session and tab for threats, in real time, with no latency. ",[],{},{"nodeType":288,"data":1881,"content":1882},{},[1883],{"nodeType":248,"value":1884,"marks":1885,"data":1886},"But as we've established, you don't need to wait until it all goes wrong either — you can use Push to proactively find and fix vulnerabilities across the apps that your employees use, like ghost logins, SSO coverage gaps, MFA gaps, vulnerable passwords, risky OAuth integrations, and more to harden your attack surface.",[],{},{"nodeType":288,"data":1888,"content":1889},{},[1890,1893,1899,1902,1909,1912,1918],{"nodeType":248,"value":1021,"marks":1891,"data":1892},[],{},{"nodeType":259,"data":1894,"content":1895},{"uri":1024},[1896],{"nodeType":248,"value":1029,"marks":1897,"data":1898},[],{},{"nodeType":248,"value":263,"marks":1900,"data":1901},[],{},{"nodeType":259,"data":1903,"content":1904},{"uri":1035},[1905],{"nodeType":248,"value":1040,"marks":1906,"data":1908},[1907],{"type":257},{},{"nodeType":248,"value":1044,"marks":1910,"data":1911},[],{},{"nodeType":259,"data":1913,"content":1914},{"uri":1047},[1915],{"nodeType":248,"value":1052,"marks":1916,"data":1917},[],{},{"nodeType":248,"value":843,"marks":1919,"data":1920},[],{},"Unpacking the Vercel breach: A cautionary tale for Shadow AI and OAuth sprawl","In April 2026, Vercel was compromised via an OAuth app integrated into their Google Workspace tenant stemming from a compromised third-party AI SaaS provider.","2026-04-23T00:00:00.000Z","unpacking-the-vercel-breach",{"items":1926},[1927,1931],{"sys":1928,"name":1930},{"id":1929},"6A5RXS31ZQx3PwryGb1IMy","Browser-based attacks",{"sys":1932,"name":1934},{"id":1933},"4ksQNCFeBf8H4QIORqpRLw","Detection & response",{"items":1936},[1937],{"fullName":223,"firstName":224,"jobTitle":225,"profilePicture":1938},{"url":227},{"__typename":1164,"sys":1940,"content":1942,"title":3171,"synopsis":3172,"hashTags":61,"publishedDate":3173,"slug":3174,"tagsCollection":3175,"authorsCollection":3183},{"id":1941},"6sprbTRpfnTJsP3mGR2gKa",{"json":1943},{"nodeType":1056,"data":1944,"content":1945},{},[1946,1953,1956,1963,1970,2003,2010,2013,2020,2040,2073,2080,2087,2090,2097,2104,2111,2134,2141,2148,2151,2158,2165,2172,2179,2186,2193,2200,2207,2214,2221,2254,2261,2268,2271,2278,2285,2291,2298,2331,2338,2341,2348,2355,2362,2385,2392,2399,2406,2413,2420,2427,2434,2441,2474,2517,2524,2531,2538,2545,2552,2559,2566,2614,2620,2640,2647,2680,2687,2693,2696,2703,2710,2717,2724,2731,2738,2745,2752,2759,2762,2769,2776,2783,2790,2810,2817,2824,2857,2864,2871,2878,2885,2892,2958,2961,2968,2975,3018,3021,3028,3035,3055,3062,3069,3076,3079,3086,3093,3100,3120,3127,3134,3141,3148,3155],{"nodeType":288,"data":1947,"content":1948},{},[1949],{"nodeType":248,"value":1950,"marks":1951,"data":1952},"Inline with what was targeted in this campaign, our focus here is on the extension deployment process. All browser vendors stand to benefit from greater security in this area — we hope that sharing what we’ve learned is useful, and look forward to comments and feedback so we can collectively reduce the scope for attacks on browser extensions in the future. ",[],{},{"nodeType":306,"data":1954,"content":1955},{},[],{"nodeType":316,"data":1957,"content":1958},{},[1959],{"nodeType":248,"value":1960,"marks":1961,"data":1962},"TL;DR",[],{},{"nodeType":288,"data":1964,"content":1965},{},[1966],{"nodeType":248,"value":1967,"marks":1968,"data":1969},"In this blog, we’ll start with some background and walk through the “why” before discussing the key improvements that we feel are needed. But if you don’t care about the why or just want to cut to the chase, the key parts of defending against these attacks are:",[],{},{"nodeType":373,"data":1971,"content":1972},{},[1973,1983,1993],{"nodeType":345,"data":1974,"content":1975},{},[1976],{"nodeType":288,"data":1977,"content":1978},{},[1979],{"nodeType":248,"value":1980,"marks":1981,"data":1982},"Disable always-on access for all users to the browser extension store developer portals — you need to automate deployments through CI/CD to enable this.",[],{},{"nodeType":345,"data":1984,"content":1985},{},[1986],{"nodeType":288,"data":1987,"content":1988},{},[1989],{"nodeType":248,"value":1990,"marks":1991,"data":1992},"Implement a multiparty approval process for extension deployments.",[],{},{"nodeType":345,"data":1994,"content":1995},{},[1996],{"nodeType":288,"data":1997,"content":1998},{},[1999],{"nodeType":248,"value":2000,"marks":2001,"data":2002},"Secure your admin identities.",[],{},{"nodeType":288,"data":2004,"content":2005},{},[2006],{"nodeType":248,"value":2007,"marks":2008,"data":2009},"For details of how to do this practically, skip ahead to the “Recommended security architecture” section.",[],{},{"nodeType":306,"data":2011,"content":2012},{},[],{"nodeType":316,"data":2014,"content":2015},{},[2016],{"nodeType":248,"value":2017,"marks":2018,"data":2019},"Background: The Cyberhaven incident",[],{},{"nodeType":288,"data":2021,"content":2022},{},[2023,2027,2036],{"nodeType":248,"value":2024,"marks":2025,"data":2026},"In December 2024, a campaign targeting browser extension developers was launched, and succeeded in compromising at least ",[],{},{"nodeType":259,"data":2028,"content":2030},{"uri":2029},"https://www.bleepingcomputer.com/news/security/new-details-reveal-how-hackers-hijacked-35-google-chrome-extensions/",[2031],{"nodeType":248,"value":2032,"marks":2033,"data":2035},"35 Google Chrome extensions",[2034],{"type":257},{},{"nodeType":248,"value":2037,"marks":2038,"data":2039},". Cyberhaven’s extension was the most notable of these, and the campaign has inherited their name.",[],{},{"nodeType":288,"data":2041,"content":2042},{},[2043,2047,2056,2060,2069],{"nodeType":248,"value":2044,"marks":2045,"data":2046},"The campaign targeted extension devs through the support email address listed on the extension stores, but notably, the ",[],{},{"nodeType":259,"data":2048,"content":2050},{"uri":2049},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/consent_phishing/description.md",[2051],{"nodeType":248,"value":2052,"marks":2053,"data":2055},"consent phishing attack technique",[2054],{"type":257},{},{"nodeType":248,"value":2057,"marks":2058,"data":2059}," was used. While not a new technique, it has rarely been seen — especially given how powerful it is. Rather than a traditional credential and MFA phishing attacks which harvest credentials (or session tokens to bypass MFA), with consent phishing the attacker's goal is to trick the victim into granting them an OAuth token to perform actions on their behalf. In this case the permission or scope used by the attacker granted that token the ability to upload and publish new versions of the victim’s extension to the Chrome Web Store — which in this case included some backdoor code that executed commands that were dynamically configured by the attacker. For more in-depth information, see the ",[],{},{"nodeType":259,"data":2061,"content":2063},{"uri":2062},"https://secureannex.com/blog/cyberhaven-extension-compromise/",[2064],{"nodeType":248,"value":2065,"marks":2066,"data":2068},"excellent analysis",[2067],{"type":257},{},{"nodeType":248,"value":2070,"marks":2071,"data":2072}," by the Secure Annex team.",[],{},{"nodeType":288,"data":2074,"content":2075},{},[2076],{"nodeType":248,"value":2077,"marks":2078,"data":2079},"Because of the dynamic nature of the commands sent to backdoored extensions, it’s difficult to be sure what the impact was — but whatever the case was in this specific incident, it’s perhaps more useful to understand what the impact to users might be so we can work to mitigate future attacks.",[],{},{"nodeType":288,"data":2081,"content":2082},{},[2083],{"nodeType":248,"value":2084,"marks":2085,"data":2086},"The simple fact is that for most common extensions that operate across multiple sites (like ad-blockers etc.), using fairly typical permissions, a backdoor would likely be able to reach credentials and session tokens. This would mean an attacker could use a backdoored extension to get access to a user’s accounts on various websites. This poses a very high impact to users, and something that all extension developers should be focused on preventing. ",[],{},{"nodeType":306,"data":2088,"content":2089},{},[],{"nodeType":316,"data":2091,"content":2092},{},[2093],{"nodeType":248,"value":2094,"marks":2095,"data":2096},"How do we stop the next iteration of this attack?",[],{},{"nodeType":288,"data":2098,"content":2099},{},[2100],{"nodeType":248,"value":2101,"marks":2102,"data":2103},"Given the value of the data, the relative ease with which this attack was performed (vs. for example something like a browser 0-day), and the success of the attack, it seems very likely this type of attack will happen again. As we saw in 2024, the success of the attacks on Snowflake customers gave rise to a huge increase in infostealer attacks. Attackers are quick to identify areas of potential opportunity and capitalize on them.",[],{},{"nodeType":288,"data":2105,"content":2106},{},[2107],{"nodeType":248,"value":2108,"marks":2109,"data":2110},"As an extension user, you should be mainly worried about one of two scenarios;",[],{},{"nodeType":373,"data":2112,"content":2113},{},[2114,2124],{"nodeType":345,"data":2115,"content":2116},{},[2117],{"nodeType":288,"data":2118,"content":2119},{},[2120],{"nodeType":248,"value":2121,"marks":2122,"data":2123},"The developer of the extension adds malicious code to an extension, they publish the update to the app store, your browser automatically updates, and malicious code runs in your browser",[],{},{"nodeType":345,"data":2125,"content":2126},{},[2127],{"nodeType":288,"data":2128,"content":2129},{},[2130],{"nodeType":248,"value":2131,"marks":2132,"data":2133},"The developer of your extension is attacked, and the attacker gains access to publish an updated version of the extension to the app store, and uses this to push an update that includes their backdoor, your browser automatically updates, and malicious code runs in your browser",[],{},{"nodeType":288,"data":2135,"content":2136},{},[2137],{"nodeType":248,"value":2138,"marks":2139,"data":2140},"However, since we’re writing this for honest extension developers, and these attacks targeted the second scenario, that’s what we’ll be focussing on. ",[],{},{"nodeType":288,"data":2142,"content":2143},{},[2144],{"nodeType":248,"value":2145,"marks":2146,"data":2147},"The challenge then is to make sure that only legitimate developers can push updates to the extension store. Easy to say, harder to do in the real world.",[],{},{"nodeType":306,"data":2149,"content":2150},{},[],{"nodeType":316,"data":2152,"content":2153},{},[2154],{"nodeType":248,"value":2155,"marks":2156,"data":2157},"Primer on extension stores and the publication process",[],{},{"nodeType":288,"data":2159,"content":2160},{},[2161],{"nodeType":248,"value":2162,"marks":2163,"data":2164},"As a light intro for folks that aren’t extension developers but are still interested, here’s a very brief description of this process. It’s not critical to understand the inner workings and differences between the stores to follow this blog, but it is very interesting (in my opinion). ",[],{},{"nodeType":288,"data":2166,"content":2167},{},[2168],{"nodeType":248,"value":2169,"marks":2170,"data":2171},"At Push we publish to three main extension stores; Chrome Web Store (this lets us cover all the Chromium-based browsers including Edge and Arc), Firefox Add-ons, and the Apple Store, so these are the stores we’re covering here.",[],{},{"nodeType":288,"data":2173,"content":2174},{},[2175],{"nodeType":248,"value":2176,"marks":2177,"data":2178},"The generic process is the same for all stores. To publish an update, you first build (or package, really) your extension source, upload it to your tenant/team/org in the store, and publish it. The publishing step triggers a manual review process in the Chrome and Apple stores, and once complete, the new version appears on the extension stores. In Firefox it goes straight out immediately.",[],{},{"nodeType":288,"data":2180,"content":2181},{},[2182],{"nodeType":248,"value":2183,"marks":2184,"data":2185},"A note on the reviews; if you aren’t adding new permissions (something we haven’t seen attackers do because it triggers a new interactive approval for the end-user when the extension is updated — something an attacker wants to avoid to evade detection) then our experience is that the the manual review process is typically fairly cursory. This is likely why the checks implemented at the store level failed to discover malicious updates in these cases.",[],{},{"nodeType":288,"data":2187,"content":2188},{},[2189],{"nodeType":248,"value":2190,"marks":2191,"data":2192},"While it’s possible to do this process completely manually, developers often automate builds and include some of the deployment steps above in the build automation process — I’ll use the term CI/CD to refer to this build and deployment process in the rest of this piece. All three stores provide API keys (albeit in different ways) to enable this process.",[],{},{"nodeType":288,"data":2194,"content":2195},{},[2196],{"nodeType":248,"value":2197,"marks":2198,"data":2199},"I’ll leave it there for now, but again see the “Extension store differences” section in the Appendix for more detail.",[],{},{"nodeType":418,"data":2201,"content":2202},{},[2203],{"nodeType":248,"value":2204,"marks":2205,"data":2206},"So what's the problem with the stores?",[],{},{"nodeType":288,"data":2208,"content":2209},{},[2210],{"nodeType":248,"value":2211,"marks":2212,"data":2213},"Ok, so far it sounds like the stores are all pretty standardised, so what's the actual problem here? Why did these attacks succeed?",[],{},{"nodeType":288,"data":2215,"content":2216},{},[2217],{"nodeType":248,"value":2218,"marks":2219,"data":2220},"There are a few notable control gaps relating to the extension stores which made this attack possible, and could have mitigated it were they in place. ",[],{},{"nodeType":373,"data":2222,"content":2223},{},[2224,2234,2244],{"nodeType":345,"data":2225,"content":2226},{},[2227],{"nodeType":288,"data":2228,"content":2229},{},[2230],{"nodeType":248,"value":2231,"marks":2232,"data":2233},"Despite the massive risk related to publishing a malicious extension, none of the mainstream stores provide a mechanism to implement a multiparty approval process, increasing the number of successful phishing attempts required. ",[],{},{"nodeType":345,"data":2235,"content":2236},{},[2237],{"nodeType":288,"data":2238,"content":2239},{},[2240],{"nodeType":248,"value":2241,"marks":2242,"data":2243},"Due to the lack of granular permissions in the Chrome store, any dev with access to the store could be phished. A slightly more granular permission model — for example the ability to have one developer with the permission to upload an extension (but not publish it), and another with the ability to publish an uploaded extension (but not upload a new package) — could have addressed this. ",[],{},{"nodeType":345,"data":2245,"content":2246},{},[2247],{"nodeType":288,"data":2248,"content":2249},{},[2250],{"nodeType":248,"value":2251,"marks":2252,"data":2253},"No log stream that could be easily ingested by a SIEM tool is provided, making it much harder to detect and respond. ",[],{},{"nodeType":288,"data":2255,"content":2256},{},[2257],{"nodeType":248,"value":2258,"marks":2259,"data":2260},"But alas, we’re not here to complain about the stores — that’s a different blog post — we’re here to solve problems today!",[],{},{"nodeType":288,"data":2262,"content":2263},{},[2264],{"nodeType":248,"value":2265,"marks":2266,"data":2267},"I mentioned before that a multiparty approval process is key. But to understand why, it’s useful to think about this in terms of how this system will be attacked. Threat or attack models are typical approaches to doing this.",[],{},{"nodeType":306,"data":2269,"content":2270},{},[],{"nodeType":316,"data":2272,"content":2273},{},[2274],{"nodeType":248,"value":2275,"marks":2276,"data":2277},"Attack model for publishing a malicious extension",[],{},{"nodeType":288,"data":2279,"content":2280},{},[2281],{"nodeType":248,"value":2282,"marks":2283,"data":2284},"The main attack paths enabling an attacker to publish a malicious extension are outlined below. ",[],{},{"nodeType":240,"data":2286,"content":2290},{"target":2287},{"sys":2288},{"id":2289,"type":237,"linkType":238},"2RQTz9QmPxOxAvy4EtXIQZ",[],{"nodeType":288,"data":2292,"content":2293},{},[2294],{"nodeType":248,"value":2295,"marks":2296,"data":2297},"You don’t need to follow all the minutia of these attack paths, but some things to note about these attack paths are that they all target single points of failure (a single identity, a single endpoint), primarily through Social Engineering attacks:",[],{},{"nodeType":373,"data":2299,"content":2300},{},[2301,2311,2321],{"nodeType":345,"data":2302,"content":2303},{},[2304],{"nodeType":288,"data":2305,"content":2306},{},[2307],{"nodeType":248,"value":2308,"marks":2309,"data":2310},"A single user with access to the store needs to fall for a social engineering attack for this to work (as happened in this case). ",[],{},{"nodeType":345,"data":2312,"content":2313},{},[2314],{"nodeType":288,"data":2315,"content":2316},{},[2317],{"nodeType":248,"value":2318,"marks":2319,"data":2320},"Many paths can be completed with an identity or endpoint attack, and in most cases a single identity or endpoint is sufficient.",[],{},{"nodeType":345,"data":2322,"content":2323},{},[2324],{"nodeType":288,"data":2325,"content":2326},{},[2327],{"nodeType":248,"value":2328,"marks":2329,"data":2330},"Attacks against code repos and CI/CD flows are parallel paths, you need to trust those systems already.",[],{},{"nodeType":288,"data":2332,"content":2333},{},[2334],{"nodeType":248,"value":2335,"marks":2336,"data":2337},"So in designing a security architecture, we want to do as much to reduce single points of failure, and make social engineering ineffective (even when it succeeds).",[],{},{"nodeType":306,"data":2339,"content":2340},{},[],{"nodeType":316,"data":2342,"content":2343},{},[2344],{"nodeType":248,"value":2345,"marks":2346,"data":2347},"Recommended security architecture",[],{},{"nodeType":288,"data":2349,"content":2350},{},[2351],{"nodeType":248,"value":2352,"marks":2353,"data":2354},"You could literally write a book on everything it takes to secure identities, endpoints and code repositories in general, and we’ll certainly mention some of the identity controls we think are effective later on. One thing to note here is that whatever you implement, the attack that succeeds in the real-word today is vastly more likely to involve an element of social engineering vs. for example a vulnerability exploit. This is not just my opinion (solid as I like to think that is), but also well supported by threat reports like the Verizon DBIR, with 68% of attacks involving ‘the human element’ in the 2024 edition. ",[],{},{"nodeType":288,"data":2356,"content":2357},{},[2358],{"nodeType":248,"value":2359,"marks":2360,"data":2361},"In tackling attacks that involve social engineering, there are two main workable options:",[],{},{"nodeType":373,"data":2363,"content":2364},{},[2365,2375],{"nodeType":345,"data":2366,"content":2367},{},[2368],{"nodeType":288,"data":2369,"content":2370},{},[2371],{"nodeType":248,"value":2372,"marks":2373,"data":2374},"Remove the user’s ability to give the attacker what they need.",[],{},{"nodeType":345,"data":2376,"content":2377},{},[2378],{"nodeType":288,"data":2379,"content":2380},{},[2381],{"nodeType":248,"value":2382,"marks":2383,"data":2384},"Assume that at least some users will fall for the attack, and make it as hard as possible for the attacker.",[],{},{"nodeType":288,"data":2386,"content":2387},{},[2388],{"nodeType":248,"value":2389,"marks":2390,"data":2391},"You may note I didn’t include security or awareness training in the above — essentially because I’ve never seen it be effective enough to be relied on, which is not to say it’s not very useful (especially if it’s well targeted and relevant — like unpacking what happened to Cyberhaven with your whole extension developer team would be!), just that technical controls are generally more reliable.",[],{},{"nodeType":288,"data":2393,"content":2394},{},[2395],{"nodeType":248,"value":2396,"marks":2397,"data":2398},"Anyway, back to what I think makes the cornerstones of a solution.",[],{},{"nodeType":418,"data":2400,"content":2401},{},[2402],{"nodeType":248,"value":2403,"marks":2404,"data":2405},"Remove BAU access to extension stores",[],{},{"nodeType":288,"data":2407,"content":2408},{},[2409],{"nodeType":248,"value":2410,"marks":2411,"data":2412},"If developers don’t have access to extension stores, they cannot be manipulated into giving attackers access to API keys, they cannot grant attackers authorization to access the store on their behalf, and if the identities are compromised they cannot be used to access the store.",[],{},{"nodeType":288,"data":2414,"content":2415},{},[2416],{"nodeType":248,"value":2417,"marks":2418,"data":2419},"The key to achieving this is to lean fully into completely automated CI/CD processes for normal extension updates. This means that after you’ve configured the CI/CD flows, no developer needs access to the extension stores to do their normal work (publishing new versions of the extension).",[],{},{"nodeType":288,"data":2421,"content":2422},{},[2423],{"nodeType":248,"value":2424,"marks":2425,"data":2426},"Unfortunately, you will still need to access the web console manually for some tasks like updating branding, updating extension descriptions, and proving justification for new permissions (Chrome and Apple only). For our team, these tasks are infrequent enough that they can be handled using break-glass accounts.",[],{},{"nodeType":288,"data":2428,"content":2429},{},[2430],{"nodeType":248,"value":2431,"marks":2432,"data":2433},"A side note here: it might seem that you are just moving the risk around, from the extension store to the code repo & CI/CD system, but you are really already dependent on the security of these systems, so this is just removing the direct access to the extension store from the attack surface. You also have far greater flexibility and control in the CI/CD system as we’ll see in the “Implement multiparty approval in CI/CD” section below.",[],{},{"nodeType":418,"data":2435,"content":2436},{},[2437],{"nodeType":248,"value":2438,"marks":2439,"data":2440},"Break-glass store admin accounts",[],{},{"nodeType":288,"data":2442,"content":2443},{},[2444,2448,2457,2461,2470],{"nodeType":248,"value":2445,"marks":2446,"data":2447},"In practice you might implement this by issuing developers that need access to the extension stores a second SSO identity that is dedicated to this. You could have a ",[],{},{"nodeType":259,"data":2449,"content":2451},{"uri":2450},"mailto:john@amce.com",[2452],{"nodeType":248,"value":2453,"marks":2454,"data":2456},"john@acme.com",[2455],{"type":257},{},{"nodeType":248,"value":2458,"marks":2459,"data":2460}," Google account to do normal development work, and a ",[],{},{"nodeType":259,"data":2462,"content":2464},{"uri":2463},"mailto:john.admin@acme.com",[2465],{"nodeType":248,"value":2466,"marks":2467,"data":2469},"john.admin@acme.com",[2468],{"type":257},{},{"nodeType":248,"value":2471,"marks":2472,"data":2473}," Google account to access the extension stores. You could also:",[],{},{"nodeType":373,"data":2475,"content":2476},{},[2477,2487,2497,2507],{"nodeType":345,"data":2478,"content":2479},{},[2480],{"nodeType":288,"data":2481,"content":2482},{},[2483],{"nodeType":248,"value":2484,"marks":2485,"data":2486},"Make the .admin accounts disabled by default in Google, and enable one of them at a time as and when needed (this should be very rare).",[],{},{"nodeType":345,"data":2488,"content":2489},{},[2490],{"nodeType":288,"data":2491,"content":2492},{},[2493],{"nodeType":248,"value":2494,"marks":2495,"data":2496},"Put the .admin accounts in a separate OU in GWS, and configure that OU so that those accounts are not allowed to authorize any OAuth integrations.",[],{},{"nodeType":345,"data":2498,"content":2499},{},[2500],{"nodeType":288,"data":2501,"content":2502},{},[2503],{"nodeType":248,"value":2504,"marks":2505,"data":2506},"Ensure that all the .admin accounts use hardware backed passkeys that don’t sync anywhere (we like Yubikeys) and disable password logins.",[],{},{"nodeType":345,"data":2508,"content":2509},{},[2510],{"nodeType":288,"data":2511,"content":2512},{},[2513],{"nodeType":248,"value":2514,"marks":2515,"data":2516},"For bonus points, make sure .admin accounts can only be used on a separate dedicated endpoint (e.g. a locked-down Chromebook).",[],{},{"nodeType":288,"data":2518,"content":2519},{},[2520],{"nodeType":248,"value":2521,"marks":2522,"data":2523},"In this way you can have a setup where an attacker would have to successfully target a developer using a hardware-backed identity during the few minutes a year their account is active, and do so without using consent phishing attacks (because all OAuth integrations are disabled for your break-glass accounts). This is a majorly tall order for the attacker.",[],{},{"nodeType":418,"data":2525,"content":2526},{},[2527],{"nodeType":248,"value":2528,"marks":2529,"data":2530},"Implement multiparty approval in CI/CD",[],{},{"nodeType":288,"data":2532,"content":2533},{},[2534],{"nodeType":248,"value":2535,"marks":2536,"data":2537},"If nobody has active BAU access to extension stores for more than very brief periods, the attacker’s next best option is to target the process that developers are using to publish, i.e. committing code to the repository and waiting for the CI/CD system to publish the extension automatically.",[],{},{"nodeType":288,"data":2539,"content":2540},{},[2541],{"nodeType":248,"value":2542,"marks":2543,"data":2544},"In practice this means the attacker would need to attack the identity (account) the employee uses to access the code repository (assuming a typical cloud hosted system like GitHub here), or sneak code in through an endpoint attack. Overwhelmingly, these attacks are likely to include an element of social engineering — whether that’s phishing credentials or session tokens, or tricking the user into downloading malware, perhaps through a malicious dependency or vscode extension.",[],{},{"nodeType":288,"data":2546,"content":2547},{},[2548],{"nodeType":248,"value":2549,"marks":2550,"data":2551},"We can make the attacker’s life exponentially harder by requiring that they successfully attack two developers, at the same time, before anyone notices. Quick intuition might make it seem like we’re only doubling the difficulty, but other red-teamers with experience doing this will agree that it’s often very easy to target a random user in a large population quickly (one employee in a large corporate), but a single user in a much smaller team (say an extension dev team) might take repeated attacks. When you need to target multiple users in a small team, in a single attack, and maintain the breach concurrently while taking actions (e.g. committing malicious code hoping no-one notices) it becomes much more likely that the alarm will be raised. ",[],{},{"nodeType":418,"data":2553,"content":2554},{},[2555],{"nodeType":248,"value":2556,"marks":2557,"data":2558},"How to implement multiparty approval through CI/CD",[],{},{"nodeType":288,"data":2560,"content":2561},{},[2562],{"nodeType":248,"value":2563,"marks":2564,"data":2565},"There are probably dozens of ways to skin this cat, but I’ll share one way of doing this that works with mainstream tools and developer processes — using protected git branches.",[],{},{"nodeType":373,"data":2567,"content":2568},{},[2569,2584,2599],{"nodeType":345,"data":2570,"content":2571},{},[2572],{"nodeType":288,"data":2573,"content":2574},{},[2575,2580],{"nodeType":248,"value":2576,"marks":2577,"data":2579},"Step 1: ",[2578],{"type":314},{},{"nodeType":248,"value":2581,"marks":2582,"data":2583},"Setup multiple branches, these might be dev/stg/prd, or development/prerelease/release, and trigger automated build and deploy to the stores using CI/CD with PR merges to the prd/release branches. ",[],{},{"nodeType":345,"data":2585,"content":2586},{},[2587],{"nodeType":288,"data":2588,"content":2589},{},[2590,2595],{"nodeType":248,"value":2591,"marks":2592,"data":2594},"Step 2: ",[2593],{"type":314},{},{"nodeType":248,"value":2596,"marks":2597,"data":2598},"Use branch protection rules that require a second (or even third) named or group of developers to review and approve the PR merge. This achieves multiparty approval.",[],{},{"nodeType":345,"data":2600,"content":2601},{},[2602],{"nodeType":288,"data":2603,"content":2604},{},[2605,2610],{"nodeType":248,"value":2606,"marks":2607,"data":2609},"Step 3:",[2608],{"type":314},{},{"nodeType":248,"value":2611,"marks":2612,"data":2613}," Configure fully automated builds and deployments as part of your CI/CD flows. While this is possible for all three stores, some of the stores do make you jump through a few hoops. Take a look at the steps required to automate a publish to the Apple Store:",[],{},{"nodeType":240,"data":2615,"content":2619},{"target":2616},{"sys":2617},{"id":2618,"type":237,"linkType":238},"4b9fc1ZUj4HdKl6Iv7Yx8T",[],{"nodeType":288,"data":2621,"content":2622},{},[2623,2627,2636],{"nodeType":248,"value":2624,"marks":2625,"data":2626},"Since we’ve done the work of figuring this out once already, we extracted the critical steps into a ",[],{},{"nodeType":259,"data":2628,"content":2630},{"uri":2629},"https://github.com/pushsecurity/extension-security-guide",[2631],{"nodeType":248,"value":2632,"marks":2633,"data":2635},"companion Github repo",[2634],{"type":257},{},{"nodeType":248,"value":2637,"marks":2638,"data":2639}," to make this a bit easier to implement.",[],{},{"nodeType":288,"data":2641,"content":2642},{},[2643],{"nodeType":248,"value":2644,"marks":2645,"data":2646},"As we’ve described it so far, this is a fairly basic implementation, and there are several other controls you might consider to harden this process, including:",[],{},{"nodeType":373,"data":2648,"content":2649},{},[2650,2660,2670],{"nodeType":345,"data":2651,"content":2652},{},[2653],{"nodeType":288,"data":2654,"content":2655},{},[2656],{"nodeType":248,"value":2657,"marks":2658,"data":2659},"Make sure you use a secrets protection system to store Web Store API keys in the CI/CD (it’s no use if the attacker can read the API keys from a config file in your code).",[],{},{"nodeType":345,"data":2661,"content":2662},{},[2663],{"nodeType":288,"data":2664,"content":2665},{},[2666],{"nodeType":248,"value":2667,"marks":2668,"data":2669},"Ensure that developers don’t have access to change branch protection rules, or access CI/CD secrets (otherwise one compromised developer account can undo all this good work — let DevOps or other admin users that are not extension developers handle this admin).",[],{},{"nodeType":345,"data":2671,"content":2672},{},[2673],{"nodeType":288,"data":2674,"content":2675},{},[2676],{"nodeType":248,"value":2677,"marks":2678,"data":2679},"Enforce hardware-backed signed commits as a condition for PR merges (this makes it very very difficult to get bad code into the repo without also compromising your dev team’s Yubikeys)",[],{},{"nodeType":288,"data":2681,"content":2682},{},[2683],{"nodeType":248,"value":2684,"marks":2685,"data":2686},"Now you have strong hardware-backed multiparty authenticated deployments to the stores, and should end up with something that looks a bit like this:",[],{},{"nodeType":240,"data":2688,"content":2692},{"target":2689},{"sys":2690},{"id":2691,"type":237,"linkType":238},"6tWdfgYKyH2i2Zai05BxzB",[],{"nodeType":306,"data":2694,"content":2695},{},[],{"nodeType":316,"data":2697,"content":2698},{},[2699],{"nodeType":248,"value":2700,"marks":2701,"data":2702},"The next best attack path — IdP admin compromise",[],{},{"nodeType":288,"data":2704,"content":2705},{},[2706],{"nodeType":248,"value":2707,"marks":2708,"data":2709},"Once developers don’t have direct access to the stores, and you have multiparty approvals to get code into CI/CD, the next best attack paths are to target other single-points-of-failure — most likely the administrators. ",[],{},{"nodeType":288,"data":2711,"content":2712},{},[2713],{"nodeType":248,"value":2714,"marks":2715,"data":2716},"This might be the IdP (Google Workspace, Entra, Okta, etc.) admins, which can then be used to provision access to the stores, or simply recover one or more of the developer or break-glass accounts. Or it might target the code repo or CI/CD (GitHub in our example) admins which have access to API keys and can change branch protection rules.",[],{},{"nodeType":288,"data":2718,"content":2719},{},[2720],{"nodeType":248,"value":2721,"marks":2722,"data":2723},"Managing privileged identities like these admin accounts is a constant challenge, but continuing what is perhaps the central thread of this blog, identity attacks (likely through social engineering) are going to be the first port of call for an attacker.",[],{},{"nodeType":418,"data":2725,"content":2726},{},[2727],{"nodeType":248,"value":2728,"marks":2729,"data":2730},"Recommendations for hardening admin identities",[],{},{"nodeType":288,"data":2732,"content":2733},{},[2734],{"nodeType":248,"value":2735,"marks":2736,"data":2737},"If there’s one thing we know here at Push, it’s identity security — but I’ll fight the urge to go into too much depth with generic recommendations, and focus on where there are opportunities specific to this scope.",[],{},{"nodeType":288,"data":2739,"content":2740},{},[2741],{"nodeType":248,"value":2742,"marks":2743,"data":2744},"One of the most critical aspects of securing these admin accounts is making sure that they are phishing resistant. Where possible, you should be using phishing resistant MFA methods. Typically this means some kind of domain bound security key using the WebAuthn protocol — a passkey using your fingerprint reader is good, something like Yubikey is great. I think this is pretty well understood, but where it goes wrong most often is when backup methods and alternative login methods exist. For example, you might be using an Google OIDC login secured with a Yubikey to access the Firefox store, but not realize that this account also has a password to set that doesn’t have MFA, or has phish-able MFA like SMS or an app-code set.",[],{},{"nodeType":288,"data":2746,"content":2747},{},[2748],{"nodeType":248,"value":2749,"marks":2750,"data":2751},"Attackers are increasingly using attacks that downgrade MFA methods (so the attacker will request the least secure active MFA method when phishing you, rather than the strong method you might use day-to-day), and this is completely automated in modern MFA-bypass phishing kits.",[],{},{"nodeType":288,"data":2753,"content":2754},{},[2755],{"nodeType":248,"value":2756,"marks":2757,"data":2758},"Warning, product plug coming 🙂 — what we do at Push is help you identify issues like these at scale, across all admin, break-glass, dev, and normal user accounts. We also block credential phishing by detecting when users try to enter their SSO credentials on the wrong page, detecting session theft, and can even monitor when credentials stolen via infostealers show up on underground forums.",[],{},{"nodeType":306,"data":2760,"content":2761},{},[],{"nodeType":316,"data":2763,"content":2764},{},[2765],{"nodeType":248,"value":2766,"marks":2767,"data":2768},"Going even further to harden extension deployment",[],{},{"nodeType":288,"data":2770,"content":2771},{},[2772],{"nodeType":248,"value":2773,"marks":2774,"data":2775},"This blog is already getting way too long, but there are a lot of other controls that can really help harden extension deployment — if there is interest I might go into detail in a future blog post, but for now let me just mention some of them.",[],{},{"nodeType":418,"data":2777,"content":2778},{},[2779],{"nodeType":248,"value":2780,"marks":2781,"data":2782},"Multiparty approvals for Google",[],{},{"nodeType":288,"data":2784,"content":2785},{},[2786],{"nodeType":248,"value":2787,"marks":2788,"data":2789},"If you’re going to do multiparty approvals for extension deployments, then enabling this for admin actions that protect that infrastructure seems like a no-brainer.",[],{},{"nodeType":288,"data":2791,"content":2792},{},[2793,2797,2806],{"nodeType":248,"value":2794,"marks":2795,"data":2796},"Google allows you to enable ",[],{},{"nodeType":259,"data":2798,"content":2800},{"uri":2799},"https://support.google.com/a/answer/13790448?hl=en",[2801],{"nodeType":248,"value":2802,"marks":2803,"data":2805},"multiparty approval for sensitive actions",[2804],{"type":257},{},{"nodeType":248,"value":2807,"marks":2808,"data":2809}," in Google Workspace. We wish it was a bit more granular, and covered more configurable actions — but it’s an awesome start, nice work Google!",[],{},{"nodeType":418,"data":2811,"content":2812},{},[2813],{"nodeType":248,"value":2814,"marks":2815,"data":2816},"Admin workstations",[],{},{"nodeType":288,"data":2818,"content":2819},{},[2820],{"nodeType":248,"value":2821,"marks":2822,"data":2823},"When we used to do red-team exercises, one of the most challenging controls to work around was when the admin accounts we were targeting were only used on dedicated admin workstations. Ideally those workstations would do nothing except admin tasks, and the accounts would be locked down, so in this case that might mean:",[],{},{"nodeType":373,"data":2825,"content":2826},{},[2827,2837,2847],{"nodeType":345,"data":2828,"content":2829},{},[2830],{"nodeType":288,"data":2831,"content":2832},{},[2833],{"nodeType":248,"value":2834,"marks":2835,"data":2836},"No email access",[],{},{"nodeType":345,"data":2838,"content":2839},{},[2840],{"nodeType":288,"data":2841,"content":2842},{},[2843],{"nodeType":248,"value":2844,"marks":2845,"data":2846},"No extensions",[],{},{"nodeType":345,"data":2848,"content":2849},{},[2850],{"nodeType":288,"data":2851,"content":2852},{},[2853],{"nodeType":248,"value":2854,"marks":2855,"data":2856},"No OAuth apps",[],{},{"nodeType":288,"data":2858,"content":2859},{},[2860],{"nodeType":248,"value":2861,"marks":2862,"data":2863},"This becomes incredibly challenging to attack — but it does come with some obvious painful UX impact for admins, so I don’t think this is a no-brainer for everyone.",[],{},{"nodeType":418,"data":2865,"content":2866},{},[2867],{"nodeType":248,"value":2868,"marks":2869,"data":2870},"Isolate support emails",[],{},{"nodeType":288,"data":2872,"content":2873},{},[2874],{"nodeType":248,"value":2875,"marks":2876,"data":2877},"Sending your support emails to extension developers creates a direct path to start social engineering — something attackers used to great effect in this campaign. If your developers are not also your frontline support team, consider ringfencing developers from that public support email group so attackers have to at least do some reconnaissance work to identify the developers to target.",[],{},{"nodeType":418,"data":2879,"content":2880},{},[2881],{"nodeType":248,"value":2882,"marks":2883,"data":2884},"Detection and response",[],{},{"nodeType":288,"data":2886,"content":2887},{},[2888],{"nodeType":248,"value":2889,"marks":2890,"data":2891},"As always there are a myriad of things that can be monitored. We think high value would be doing things like:",[],{},{"nodeType":373,"data":2893,"content":2894},{},[2895,2938,2948],{"nodeType":345,"data":2896,"content":2897},{},[2898,2905],{"nodeType":288,"data":2899,"content":2900},{},[2901],{"nodeType":248,"value":2902,"marks":2903,"data":2904},"Checking whether new versions of your extension appearing in the store is directly related or caused by the CI/CD process, and:",[],{},{"nodeType":373,"data":2906,"content":2907},{},[2908,2918,2928],{"nodeType":345,"data":2909,"content":2910},{},[2911],{"nodeType":288,"data":2912,"content":2913},{},[2914],{"nodeType":248,"value":2915,"marks":2916,"data":2917},"Alert if there is no direct link here.",[],{},{"nodeType":345,"data":2919,"content":2920},{},[2921],{"nodeType":288,"data":2922,"content":2923},{},[2924],{"nodeType":248,"value":2925,"marks":2926,"data":2927},"You can configure email alerts to trigger this automated check.",[],{},{"nodeType":345,"data":2929,"content":2930},{},[2931],{"nodeType":288,"data":2932,"content":2933},{},[2934],{"nodeType":248,"value":2935,"marks":2936,"data":2937},"You could consider immediate automated roll-back to a previous version of the extension if it wasn’t published via the CI/CD system.",[],{},{"nodeType":345,"data":2939,"content":2940},{},[2941],{"nodeType":288,"data":2942,"content":2943},{},[2944],{"nodeType":248,"value":2945,"marks":2946,"data":2947},"Any activity on break-glass accounts — these accounts should only be used after they are activated by admins to complete a specific task, so this is an obvious alert to configure.",[],{},{"nodeType":345,"data":2949,"content":2950},{},[2951],{"nodeType":288,"data":2952,"content":2953},{},[2954],{"nodeType":248,"value":2955,"marks":2956,"data":2957},"Unusual activity on service accounts — this is a bit of work to profile, but very valuable.",[],{},{"nodeType":306,"data":2959,"content":2960},{},[],{"nodeType":316,"data":2962,"content":2963},{},[2964],{"nodeType":248,"value":2965,"marks":2966,"data":2967},"Our request to extension stores",[],{},{"nodeType":288,"data":2969,"content":2970},{},[2971],{"nodeType":248,"value":2972,"marks":2973,"data":2974},"I’ll use this opportunity to make an open request to the browser extension stores for a couple of features that I think would really benefit the entire ecosystem:",[],{},{"nodeType":373,"data":2976,"content":2977},{},[2978,2988,2998,3008],{"nodeType":345,"data":2979,"content":2980},{},[2981],{"nodeType":288,"data":2982,"content":2983},{},[2984],{"nodeType":248,"value":2985,"marks":2986,"data":2987},"Add the ability to configure an explicit multiparty approval process (and show the public which extensions have enabled these controls!).",[],{},{"nodeType":345,"data":2989,"content":2990},{},[2991],{"nodeType":288,"data":2992,"content":2993},{},[2994],{"nodeType":248,"value":2995,"marks":2996,"data":2997},"More granular permissions or roles (e.g. only edit descriptions, only only upload, only publish, only accept new terms).",[],{},{"nodeType":345,"data":2999,"content":3000},{},[3001],{"nodeType":288,"data":3002,"content":3003},{},[3004],{"nodeType":248,"value":3005,"marks":3006,"data":3007},"Better logs and monitoring – making it easier to ingest events related to your extension via the store into a SIEM would make alerts much easier to configure.",[],{},{"nodeType":345,"data":3009,"content":3010},{},[3011],{"nodeType":288,"data":3012,"content":3013},{},[3014],{"nodeType":248,"value":3015,"marks":3016,"data":3017},"Enforce stronger default identity security controls (even if only for risky or popular extensions) — we enforce MFA by default for GitHub repositories now, it’s about time that we require MFA to access an extension store as well.",[],{},{"nodeType":306,"data":3019,"content":3020},{},[],{"nodeType":316,"data":3022,"content":3023},{},[3024],{"nodeType":248,"value":3025,"marks":3026,"data":3027},"Conclusion",[],{},{"nodeType":288,"data":3029,"content":3030},{},[3031],{"nodeType":248,"value":3032,"marks":3033,"data":3034},"We’ve seen in the past that the successful use of new techniques seem to inspire other attackers and lead to many similar attacks, so the smart money is on this happening again.",[],{},{"nodeType":288,"data":3036,"content":3037},{},[3038,3042,3051],{"nodeType":248,"value":3039,"marks":3040,"data":3041},"There is lots to work needed to secure this process, and hopefully this blog has provided a starting point. We’d love to hear from you — let’s start ",[],{},{"nodeType":259,"data":3043,"content":3045},{"uri":3044},"https://github.com/pushsecurity/extension-security-guide/discussions",[3046],{"nodeType":248,"value":3047,"marks":3048,"data":3050},"sharing some ideas",[3049],{"type":257},{},{"nodeType":248,"value":3052,"marks":3053,"data":3054}," around hardening this process even more!",[],{},{"nodeType":288,"data":3056,"content":3057},{},[3058],{"nodeType":248,"value":3059,"marks":3060,"data":3061},"If you're a customer rather than an extension developer, this guide hopefully gives you a sense of the supply chain attacks that are likely to happen in the future. Asking your vendors which steps they’ve taken to prevent these attacks might be a sensible addition to your vendor risk assessment process (when the product includes a browser extension). ",[],{},{"nodeType":288,"data":3063,"content":3064},{},[3065],{"nodeType":248,"value":3066,"marks":3067,"data":3068},"This kind of due diligence is viable where the developer is a vendor you have a commercial relationship with, but is a non-starter when it’s an extension that’s offered for free by well meaning open source developers. In these cases a sensible response might be to require approvals for new browser extensions, a technical risk review based on (at least) the permissions the extension is asking for, and managed browser policies to control and further limit what some or all extensions can do. For example, you may decide to block access for extensions to your IdP’s domains to protect your SSO accounts. ",[],{},{"nodeType":288,"data":3070,"content":3071},{},[3072],{"nodeType":248,"value":3073,"marks":3074,"data":3075},"We’ll be releasing guidance on how to manage third party extensions used in your organization in the near future — subscribe to our mailing list to be notified when we do.",[],{},{"nodeType":306,"data":3077,"content":3078},{},[],{"nodeType":316,"data":3080,"content":3081},{},[3082],{"nodeType":248,"value":3083,"marks":3084,"data":3085},"Appendix: Extension store differences",[],{},{"nodeType":288,"data":3087,"content":3088},{},[3089],{"nodeType":248,"value":3090,"marks":3091,"data":3092},"We covered the general process of publishing extensions to the different stores in the “Primer on extension stores and the publication process” section above, now let’s talk about the differences between the stores. Let’s start with how they provision for automated deployments.",[],{},{"nodeType":418,"data":3094,"content":3095},{},[3096],{"nodeType":248,"value":3097,"marks":3098,"data":3099},"Automation keys",[],{},{"nodeType":288,"data":3101,"content":3102},{},[3103,3107,3116],{"nodeType":248,"value":3104,"marks":3105,"data":3106},"The Chrome Web Store allows automation through an OAuth app. As described in ",[],{},{"nodeType":259,"data":3108,"content":3110},{"uri":3109},"https://developer.chrome.com/docs/webstore/using-api",[3111],{"nodeType":248,"value":3112,"marks":3113,"data":3115},"their documentation",[3114],{"type":257},{},{"nodeType":248,"value":3117,"marks":3118,"data":3119},", the process is for a developer to create a custom OAuth app (a client on OAuth speak), then a user with access to the store authorizes the OAuth app to access the chrome store on their behalf using the https://www.googleapis.com/auth/chromewebstore scope. ",[],{},{"nodeType":288,"data":3121,"content":3122},{},[3123],{"nodeType":248,"value":3124,"marks":3125,"data":3126},"If this sounds familiar, that’s because this is exactly what attackers tricked developers into doing using their own OAuth app in the Cyberhave campaign. In the normal flow, the developer then uses a service key linked to the OAuth app in their CI/CD flow to automate the deployment process.",[],{},{"nodeType":288,"data":3128,"content":3129},{},[3130],{"nodeType":248,"value":3131,"marks":3132,"data":3133},"The situation is a bit simpler for Firefox and Apple, which both work by developers just creating simple static API keys, though Apple does allow you to create personal API keys linked to a single account (and that account’s permissions).",[],{},{"nodeType":418,"data":3135,"content":3136},{},[3137],{"nodeType":248,"value":3138,"marks":3139,"data":3140},"Accessing the store",[],{},{"nodeType":288,"data":3142,"content":3143},{},[3144],{"nodeType":248,"value":3145,"marks":3146,"data":3147},"In a business environment, using SSO to access apps is extremely useful as it simplifies the provisioning and security-ops work of maintaining secure identities — and often provides more secure authentication methods (e.g. hardware backed WebAuthn MFA) than the target app does (as is the case for the web stores). It also simplifies and centralizes the ability to log and monitor the use of these accounts. I can’t recommend the use of strong SSO authentication enough in cases like this where ensuring you have the right controls in place is paramount.",[],{},{"nodeType":288,"data":3149,"content":3150},{},[3151],{"nodeType":248,"value":3152,"marks":3153,"data":3154},"Fortunately all the stores provide SSO login methods. For the Chrome store, users login (only) using Google SSO accounts — and if they are part of a Google Workspace, access can be provisioned through membership to a group. Firefox allows access using a username and password, but also offers OIDC SSO logins through Google or Apple accounts. If you make use of Managed Apple IDs, Apple offers OIDC SSO authentication as well. ",[],{},{"nodeType":288,"data":3156,"content":3157},{},[3158,3162,3167],{"nodeType":248,"value":3159,"marks":3160,"data":3161},"For Chrome and Firefox there is no real concept of roles (or nothing really useful), and ",[],{},{"nodeType":248,"value":3163,"marks":3164,"data":3166},"you should assume any user with access to a team in your account has the ability to publish extension updates",[3165],{"type":257},{},{"nodeType":248,"value":3168,"marks":3169,"data":3170},". Apple offers more granular roles and permissions - and there are low privileged roles that can’t publish updates.",[],{},"Guide to secure browser extension deployment","How extension developers can improve their security controls to prevent extension compromise.","2025-01-14T00:00:00.000Z","guide-to-secure-browser-extension-deployment",{"items":3176},[3177,3181],{"sys":3178,"name":3180},{"id":3179},"3pjES4THCIfSAwhGdNwBcy","Identity security",{"sys":3182,"name":1934},{"id":1933},{"items":3184},[3185],{"fullName":3186,"firstName":3187,"jobTitle":3188,"profilePicture":3189},"Jacques Louw","Jacques","Co-founder / CRO",{"url":3190},"https://images.ctfassets.net/y1cdw1ablpvd/39m8bektV23lnCRcEq0G8h/2a08f6276a50744f1a4b499b273f6bb2/Push_Founders_at_Cahoots_October_28_2022_by_Doug_Coombe-21.jpg",{"__typename":1164,"sys":3192,"content":3194,"title":4560,"synopsis":4561,"hashTags":61,"publishedDate":4562,"slug":4563,"tagsCollection":4564,"authorsCollection":4570},{"id":3193},"wI3paLVDlEKdaRI5qMYFc",{"json":3195},{"nodeType":1056,"data":3196,"content":3197},{},[3198,3205,3228,3235,3241,3248,3255,3262,3268,3271,3279,3286,3292,3298,3314,3526,3538,3546,3553,3560,3567,3587,3593,3600,3603,3611,3618,3651,3658,3674,3695,3730,3736,3743,3762,3769,3776,3779,3787,3794,3888,3895,3902,3910,3917,3924,3931,3937,3945,3952,3959,3966,3972,3979,3987,4006,4014,4021,4027,4030,4038,4045,4052,4163,4169,4176,4183,4190,4197,4204,4212,4219,4226,4251,4257,4273,4288,4304,4310,4318,4325,4333,4340,4343,4351,4358,4391,4397,4421,4428,4431,4439,4446,4462,4468,4475,4482,4485,4493,4511,4518],{"nodeType":288,"data":3199,"content":3200},{},[3201],{"nodeType":248,"value":3202,"marks":3203,"data":3204},"Here are two things that can’t both be true:",[],{},{"nodeType":373,"data":3206,"content":3207},{},[3208,3218],{"nodeType":345,"data":3209,"content":3210},{},[3211],{"nodeType":288,"data":3212,"content":3213},{},[3214],{"nodeType":248,"value":3215,"marks":3216,"data":3217},"Users are the weakest link in security. They just need to stop clicking on things.",[],{},{"nodeType":345,"data":3219,"content":3220},{},[3221],{"nodeType":288,"data":3222,"content":3223},{},[3224],{"nodeType":248,"value":3225,"marks":3226,"data":3227},"The internet is a giant clicking-on-things machine.",[],{},{"nodeType":288,"data":3229,"content":3230},{},[3231],{"nodeType":248,"value":3232,"marks":3233,"data":3234},"In particular, when we look at the TTPs of modern browser-based attacks that target employees, it’s obvious where this disconnect has real consequences. ",[],{},{"nodeType":240,"data":3236,"content":3240},{"target":3237},{"sys":3238},{"id":3239,"type":237,"linkType":238},"2x3blnHzZYcJ8c439C4NqI",[],{"nodeType":288,"data":3242,"content":3243},{},[3244],{"nodeType":248,"value":3245,"marks":3246,"data":3247},"Here’s why: Security tooling hasn’t kept up with adversary advances, and normal human behaviors are being expressly targeted via the browser to achieve compromise of accounts and endpoints. If you list the pitfalls facing the common end-user encountering these kinds of attack methods, the picture becomes even more stark.",[],{},{"nodeType":288,"data":3249,"content":3250},{},[3251],{"nodeType":248,"value":3252,"marks":3253,"data":3254},"To solve these problems, you need security tooling that sits in line with the user where they’re already working: In the browser. In this Push product guide, we’ll cover how you can use Push to provide point-in-time guidance — everything from block pages to informational banners — to protect users from modern browser-based TTPs and to guide them to remediate common vulnerabilities that can lead to account takeover.",[],{},{"nodeType":288,"data":3256,"content":3257},{},[3258],{"nodeType":248,"value":3259,"marks":3260,"data":3261},"We’ve also recently introduced custom branding and styling options for user-facing block pages and banners so you can provide a cohesive and trustworthy experience across your security ecosystem.",[],{},{"nodeType":240,"data":3263,"content":3267},{"target":3264},{"sys":3265},{"id":3266,"type":237,"linkType":238},"7fwCnr9bz76rWWCL6EReOT",[],{"nodeType":306,"data":3269,"content":3270},{},[],{"nodeType":316,"data":3272,"content":3273},{},[3274],{"nodeType":248,"value":3275,"marks":3276,"data":3278},"Why you can’t train users to recognize modern browser-based attack methods",[3277],{"type":314},{},{"nodeType":288,"data":3280,"content":3281},{},[3282],{"nodeType":248,"value":3283,"marks":3284,"data":3285},"User awareness training can help you build your workforce’s basic security baseline. But it’s not a reliable remedy for modern browser-based TTPs. When you look at the creative methods attackers are using — and rapidly improving on — it’s obvious why.",[],{},{"nodeType":240,"data":3287,"content":3291},{"target":3288},{"sys":3289},{"id":3290,"type":237,"linkType":238},"eHla7GPCH5eTpdfEqW5Zo",[],{"nodeType":240,"data":3293,"content":3297},{"target":3294},{"sys":3295},{"id":3296,"type":237,"linkType":238},"29vUtbEUam8fhbwnQdINRJ",[],{"nodeType":288,"data":3299,"content":3300},{},[3301,3305,3310],{"nodeType":248,"value":3302,"marks":3303,"data":3304},"To avoid account or endpoint compromise while going about your daily work as a user, you would need to accomplish these ",[],{},{"nodeType":248,"value":3306,"marks":3307,"data":3309},"extremely 100% achievable activities",[3308],{"type":430},{},{"nodeType":248,"value":3311,"marks":3312,"data":3313},", including:",[],{},{"nodeType":3315,"data":3316,"content":3317},"table",{},[3318,3345,3388,3411,3446,3480],{"nodeType":3319,"data":3320,"content":3321},"table-row",{},[3322,3334],{"nodeType":3323,"data":3324,"content":3325},"table-header-cell",{},[3326],{"nodeType":288,"data":3327,"content":3328},{},[3329],{"nodeType":248,"value":3330,"marks":3331,"data":3333},"Scenario",[3332],{"type":314},{},{"nodeType":3323,"data":3335,"content":3336},{},[3337],{"nodeType":288,"data":3338,"content":3339},{},[3340],{"nodeType":248,"value":3341,"marks":3342,"data":3344},"Threat",[3343],{"type":314},{},{"nodeType":3319,"data":3346,"content":3347},{},[3348,3374],{"nodeType":3349,"data":3350,"content":3351},"table-cell",{},[3352],{"nodeType":288,"data":3353,"content":3354},{},[3355,3359,3370],{"nodeType":248,"value":3356,"marks":3357,"data":3358},"While using search engines, never click on a ",[],{},{"nodeType":3360,"data":3361,"content":3365},"entry-hyperlink",{"target":3362},{"sys":3363},{"id":3364,"type":237,"linkType":238},"2YmiesBvJHGw4wiKEKzLUq",[3366],{"nodeType":248,"value":3367,"marks":3368,"data":3369},"malicious link",[],{},{"nodeType":248,"value":3371,"marks":3372,"data":3373}," in sponsored or organic results (it's often the first link you see, too).",[],{},{"nodeType":3349,"data":3375,"content":3376},{},[3377],{"nodeType":288,"data":3378,"content":3379},{},[3380,3384],{"nodeType":248,"value":3381,"marks":3382,"data":3383},"M",[],{},{"nodeType":248,"value":3385,"marks":3386,"data":3387},"alvertising, SEO poisoning, compromised legitimate webpages, vibecoded phishing webpages.",[],{},{"nodeType":3319,"data":3389,"content":3390},{},[3391,3401],{"nodeType":3349,"data":3392,"content":3393},{},[3394],{"nodeType":288,"data":3395,"content":3396},{},[3397],{"nodeType":248,"value":3398,"marks":3399,"data":3400},"Know when to trust an email coming from an app you use every day, and when it could be malicious (it looks the same).",[],{},{"nodeType":3349,"data":3402,"content":3403},{},[3404],{"nodeType":288,"data":3405,"content":3406},{},[3407],{"nodeType":248,"value":3408,"marks":3409,"data":3410},"Using SaaS services to distribute malicious links using trusted sites (also a handy way of evading email controls).",[],{},{"nodeType":3319,"data":3412,"content":3413},{},[3414,3436],{"nodeType":3349,"data":3415,"content":3416},{},[3417],{"nodeType":288,"data":3418,"content":3419},{},[3420,3424,3432],{"nodeType":248,"value":3421,"marks":3422,"data":3423},"When reading a LinkedIn DM from a colleague, anticipate that they might have been hacked and have sent you a malicious link. (Yes, this was a ",[],{},{"nodeType":259,"data":3425,"content":3427},{"uri":3426},"https://pushsecurity.com/blog/how-push-stopped-a-high-risk-linkedin-spear-phishing-attack/",[3428],{"nodeType":248,"value":3429,"marks":3430,"data":3431},"real scenario",[],{},{"nodeType":248,"value":3433,"marks":3434,"data":3435},"). ",[],{},{"nodeType":3349,"data":3437,"content":3438},{},[3439],{"nodeType":288,"data":3440,"content":3441},{},[3442],{"nodeType":248,"value":3443,"marks":3444,"data":3445},"Abuse of social media, IM platforms, and other apps where you can be directly contacted by users external to your organization. ",[],{},{"nodeType":3319,"data":3447,"content":3448},{},[3449,3459],{"nodeType":3349,"data":3450,"content":3451},{},[3452],{"nodeType":288,"data":3453,"content":3454},{},[3455],{"nodeType":248,"value":3456,"marks":3457,"data":3458},"When logging in to an app, never follow benign-seeming but actually malicious instructions to enter a code onto a legitimate page to complete your login.",[],{},{"nodeType":3349,"data":3460,"content":3461},{},[3462],{"nodeType":288,"data":3463,"content":3464},{},[3465,3469,3477],{"nodeType":248,"value":3466,"marks":3467,"data":3468},"AiTM phishing, OAuth consent phishing, ",[],{},{"nodeType":259,"data":3470,"content":3472},{"uri":3471},"https://pushsecurity.com/blog/device-code-phishing/",[3473],{"nodeType":248,"value":3474,"marks":3475,"data":3476},"device code phishing",[],{},{"nodeType":248,"value":843,"marks":3478,"data":3479},[],{},{"nodeType":3319,"data":3481,"content":3482},{},[3483,3493],{"nodeType":3349,"data":3484,"content":3485},{},[3486],{"nodeType":288,"data":3487,"content":3488},{},[3489],{"nodeType":248,"value":3490,"marks":3491,"data":3492},"Know which instructions to follow and which are malicious when verifying that you're human on a CAPTCHA-style page.",[],{},{"nodeType":3349,"data":3494,"content":3495},{},[3496],{"nodeType":288,"data":3497,"content":3498},{},[3499,3502,3510,3514,3522],{"nodeType":248,"value":29,"marks":3500,"data":3501},[],{},{"nodeType":259,"data":3503,"content":3505},{"uri":3504},"https://pushsecurity.com/blog/the-most-advanced-clickfix-yet/",[3506],{"nodeType":248,"value":3507,"marks":3508,"data":3509},"ClickFix",[],{},{"nodeType":248,"value":3511,"marks":3512,"data":3513},"-style attacks that trick the user into running a malicious script or command, or ",[],{},{"nodeType":259,"data":3515,"content":3517},{"uri":3516},"https://pushsecurity.com/blog/consentfix/",[3518],{"nodeType":248,"value":3519,"marks":3520,"data":3521},"ConsentFix",[],{},{"nodeType":248,"value":3523,"marks":3524,"data":3525}," (which is even sneakier and simply involves copying a URL).",[],{},{"nodeType":288,"data":3527,"content":3528},{},[3529,3533],{"nodeType":248,"value":3530,"marks":3531,"data":3532},"And we're barely scratching the surface here. ",[],{},{"nodeType":248,"value":3534,"marks":3535,"data":3537},"Easy, right?",[3536],{"type":314},{},{"nodeType":418,"data":3539,"content":3540},{},[3541],{"nodeType":248,"value":3542,"marks":3543,"data":3545},"Can't we block users from interacting with bad content? ",[3544],{"type":314},{},{"nodeType":288,"data":3547,"content":3548},{},[3549],{"nodeType":248,"value":3550,"marks":3551,"data":3552},"So if you can’t train your way out of these problems, what about locking down and blocking your way out of the problem?",[],{},{"nodeType":288,"data":3554,"content":3555},{},[3556],{"nodeType":248,"value":3557,"marks":3558,"data":3559},"This, too, simply isn’t really feasible. ",[],{},{"nodeType":288,"data":3561,"content":3562},{},[3563],{"nodeType":248,"value":3564,"marks":3565,"data":3566},"Modern cloud-first adversaries routinely rotate domains on malicious pages; use trusted services like SharePoint, Adobe, Google Sites, Cloudflare, and Atlassian to deliver lures; target end-users across multiple channels, including social media, forums, chat platforms, Google search results, email, and webpages; and use legitimate security tools like bot protection to bypass detection by other legitimate security tools, such as web content scanning and analysis solutions.",[],{},{"nodeType":288,"data":3568,"content":3569},{},[3570,3574,3578,3583],{"nodeType":248,"value":3571,"marks":3572,"data":3573},"To safely navigate the internet today, y",[],{},{"nodeType":248,"value":3575,"marks":3576,"data":3577},"ou need to be able to spot malicious pages and content ",[],{},{"nodeType":248,"value":3579,"marks":3580,"data":3582},"the first time they're seen in the wild",[3581],{"type":314},{},{"nodeType":248,"value":3584,"marks":3585,"data":3586},". If you're relying on indicators of known bad, you're always a step behind, leaving users exposed.",[],{},{"nodeType":240,"data":3588,"content":3592},{"target":3589},{"sys":3590},{"id":3591,"type":237,"linkType":238},"3ZfqOLRdJZJIc78rj9E9JZ",[],{"nodeType":288,"data":3594,"content":3595},{},[3596],{"nodeType":248,"value":3597,"marks":3598,"data":3599},"To protect users while they work online, you need a purpose-built security tool that can respond in real time to modern TTPs and guide users securely — without introducing extra work or a lot of friction. Push can help with that.",[],{},{"nodeType":306,"data":3601,"content":3602},{},[],{"nodeType":316,"data":3604,"content":3605},{},[3606],{"nodeType":248,"value":3607,"marks":3608,"data":3610},"Why in-browser controls?",[3609],{"type":314},{},{"nodeType":288,"data":3612,"content":3613},{},[3614],{"nodeType":248,"value":3615,"marks":3616,"data":3617},"Simply put, using in-browser security controls gets you the closest to the user and their work in order to protect them from modern browser-based threats. Adding in-browser controls also solves two tricky problems for security teams: ",[],{},{"nodeType":373,"data":3619,"content":3620},{},[3621,3636],{"nodeType":345,"data":3622,"content":3623},{},[3624],{"nodeType":288,"data":3625,"content":3626},{},[3627,3632],{"nodeType":248,"value":3628,"marks":3629,"data":3631},"Filling the gap between solution layers",[3630],{"type":314},{},{"nodeType":248,"value":3633,"marks":3634,"data":3635}," in order to detect and block attack methods like Adversary-in-the-Middle phishing, malicious browser extensions, and ClickFix-style social engineering attacks that other tools miss.",[],{},{"nodeType":345,"data":3637,"content":3638},{},[3639],{"nodeType":288,"data":3640,"content":3641},{},[3642,3647],{"nodeType":248,"value":3643,"marks":3644,"data":3646},"Providing just-in-time security enforcement",[3645],{"type":314},{},{"nodeType":248,"value":3648,"marks":3649,"data":3650}," to end-users when it’s the right moment to act on that guidance, reducing your attack surface across your online apps, browser extensions, and accounts, and ensuring your app usage policies are followed.",[],{},{"nodeType":418,"data":3652,"content":3653},{},[3654],{"nodeType":248,"value":3655,"marks":3656,"data":3657},"Fill the gap between solution layers",[],{},{"nodeType":288,"data":3659,"content":3660},{},[3661,3665,3670],{"nodeType":248,"value":3662,"marks":3663,"data":3664},"Most existing security solutions operate just ",[],{},{"nodeType":248,"value":3666,"marks":3667,"data":3669},"outside",[3668],{"type":430},{},{"nodeType":248,"value":3671,"marks":3672,"data":3673}," the context of a user interacting with a webpage. This leaves blind spots that attackers are exploiting between layers of security tooling.",[],{},{"nodeType":288,"data":3675,"content":3676},{},[3677,3681,3691],{"nodeType":248,"value":3678,"marks":3679,"data":3680},"For example, network proxies see HTTP requests, URLs, and page headers, but not the ",[],{},{"nodeType":3360,"data":3682,"content":3686},{"target":3683},{"sys":3684},{"id":3685,"type":237,"linkType":238},"5caCcGCqMMPm5KlwUv0sbz",[3687],{"nodeType":248,"value":3688,"marks":3689,"data":3690},"structural elements",[],{},{"nodeType":248,"value":3692,"marks":3693,"data":3694}," of the DOM or on-page user interactions that are key to fingerprinting the behavior of AiTM phishing kits or ClickFix-style social engineering attacks. ",[],{},{"nodeType":288,"data":3696,"content":3697},{},[3698,3702,3712,3716,3726],{"nodeType":248,"value":3699,"marks":3700,"data":3701},"Similarly, ",[],{},{"nodeType":3360,"data":3703,"content":3707},{"target":3704},{"sys":3705},{"id":3706,"type":237,"linkType":238},"6YWYKGESlyUKQxvhKmBzeH",[3708],{"nodeType":248,"value":3709,"marks":3710,"data":3711},"EDR tools",[],{},{"nodeType":248,"value":3713,"marks":3714,"data":3715}," only see the bad thing when it hits the endpoint, and many ",[],{},{"nodeType":3360,"data":3717,"content":3721},{"target":3718},{"sys":3719},{"id":3720,"type":237,"linkType":238},"2k2aDK5dyQKlQBrk66pMXE",[3722],{"nodeType":248,"value":3723,"marks":3724,"data":3725},"cloud security tools",[],{},{"nodeType":248,"value":3727,"marks":3728,"data":3729}," rely on complex policy configurations across a core set of apps to provide security protection — leaving a gap in detection and response capabilities outside their purview.",[],{},{"nodeType":240,"data":3731,"content":3735},{"target":3732},{"sys":3733},{"id":3734,"type":237,"linkType":238},"50NyBpr96dKspvTzJTBOlC",[],{"nodeType":418,"data":3737,"content":3738},{},[3739],{"nodeType":248,"value":3740,"marks":3741,"data":3742},"Provide just-in-time security enforcement",[],{},{"nodeType":288,"data":3744,"content":3745},{},[3746,3750,3758],{"nodeType":248,"value":3747,"marks":3748,"data":3749},"As some of our customers like to say, Push provides security teams with a ",[],{},{"nodeType":259,"data":3751,"content":3753},{"uri":3752},"/customer-stories/upvest",[3754],{"nodeType":248,"value":3755,"marks":3756,"data":3757},"“seat on the user’s side”",[],{},{"nodeType":248,"value":3759,"marks":3760,"data":3761}," of the equation so you can enforce security best practices.",[],{},{"nodeType":288,"data":3763,"content":3764},{},[3765],{"nodeType":248,"value":3766,"marks":3767,"data":3768},"Having that seat on the user’s side also helps you deliver guidance in the right context for it to be followed: When the user is engaged in doing the behavior you want to influence (or prevent). The right information, at the right time, in the right format — not a belated reminder through a different channel that’s easy to ignore.",[],{},{"nodeType":288,"data":3770,"content":3771},{},[3772],{"nodeType":248,"value":3773,"marks":3774,"data":3775},"With those outcomes in mind, let’s look at some specific solutions from the Push platform.",[],{},{"nodeType":306,"data":3777,"content":3778},{},[],{"nodeType":316,"data":3780,"content":3781},{},[3782],{"nodeType":248,"value":3783,"marks":3784,"data":3786},"How Push helps you protect users from browser-based ATO, ClickFix, and similar attacks",[3785],{"type":314},{},{"nodeType":288,"data":3788,"content":3789},{},[3790],{"nodeType":248,"value":3791,"marks":3792,"data":3793},"The Push platform provides out-of-the-box detections for browser-based attacks, including:",[],{},{"nodeType":373,"data":3795,"content":3796},{},[3797,3820,3843,3865],{"nodeType":345,"data":3798,"content":3799},{},[3800],{"nodeType":288,"data":3801,"content":3802},{},[3803,3806,3816],{"nodeType":248,"value":29,"marks":3804,"data":3805},[],{},{"nodeType":3360,"data":3807,"content":3811},{"target":3808},{"sys":3809},{"id":3810,"type":237,"linkType":238},"7KRnTSnJAbbiho69gNyN0B",[3812],{"nodeType":248,"value":3813,"marks":3814,"data":3815},"AiTM phishing kits",[],{},{"nodeType":248,"value":3817,"marks":3818,"data":3819}," that can bypass MFA",[],{},{"nodeType":345,"data":3821,"content":3822},{},[3823],{"nodeType":288,"data":3824,"content":3825},{},[3826,3829,3839],{"nodeType":248,"value":29,"marks":3827,"data":3828},[],{},{"nodeType":3360,"data":3830,"content":3834},{"target":3831},{"sys":3832},{"id":3833,"type":237,"linkType":238},"jN3GN5ddMJZiDtl0fgUVd",[3835],{"nodeType":248,"value":3836,"marks":3837,"data":3838},"Cloned login pages",[],{},{"nodeType":248,"value":3840,"marks":3841,"data":3842}," designed to steal user credentials",[],{},{"nodeType":345,"data":3844,"content":3845},{},[3846],{"nodeType":288,"data":3847,"content":3848},{},[3849,3852,3862],{"nodeType":248,"value":29,"marks":3850,"data":3851},[],{},{"nodeType":3360,"data":3853,"content":3857},{"target":3854},{"sys":3855},{"id":3856,"type":237,"linkType":238},"5NyiWgjMDwk16XZ0S681JK",[3858],{"nodeType":248,"value":3859,"marks":3860,"data":3861},"Malicious browser extensions",[],{},{"nodeType":248,"value":29,"marks":3863,"data":3864},[],{},{"nodeType":345,"data":3866,"content":3867},{},[3868],{"nodeType":288,"data":3869,"content":3870},{},[3871,3874,3884],{"nodeType":248,"value":29,"marks":3872,"data":3873},[],{},{"nodeType":3360,"data":3875,"content":3879},{"target":3876},{"sys":3877},{"id":3878,"type":237,"linkType":238},"7jygmadjoz0asAHv7e5PuK",[3880],{"nodeType":248,"value":3881,"marks":3882,"data":3883},"Malicious copy and paste attacks",[],{},{"nodeType":248,"value":3885,"marks":3886,"data":3887}," like ClickFix, FileFix, and similar",[],{},{"nodeType":288,"data":3889,"content":3890},{},[3891],{"nodeType":248,"value":3892,"marks":3893,"data":3894},"For each of these attack vectors, Push delivers detection events and associated metadata for quick triage by the security team, as well as employee-facing warn or block screens, based on your selected configuration.",[],{},{"nodeType":288,"data":3896,"content":3897},{},[3898],{"nodeType":248,"value":3899,"marks":3900,"data":3901},"Here’s a snapshot of the capabilities of these controls and what end-users will experience.",[],{},{"nodeType":418,"data":3903,"content":3904},{},[3905],{"nodeType":248,"value":3906,"marks":3907,"data":3909},"The scenario:",[3908],{"type":314},{},{"nodeType":288,"data":3911,"content":3912},{},[3913],{"nodeType":248,"value":3914,"marks":3915,"data":3916},"When a user encounters a malicious page — whether that’s an AiTM phishing tool running on a webpage, or a ClickFix-style attack — or attempts to install a malicious extension, Push immediately steps in. ",[],{},{"nodeType":288,"data":3918,"content":3919},{},[3920],{"nodeType":248,"value":3921,"marks":3922,"data":3923},"Push can prevent users from entering their credentials on phishing pages, including cloned login pages, or from pasting malicious clipboard contents that can run malware on their device. Push can also prevent users from installing known-bad browser extensions. ",[],{},{"nodeType":288,"data":3925,"content":3926},{},[3927],{"nodeType":248,"value":3928,"marks":3929,"data":3930},"In each of these scenarios, Push admins get detailed detection information they can use to triage the incident.",[],{},{"nodeType":240,"data":3932,"content":3936},{"target":3933},{"sys":3934},{"id":3935,"type":237,"linkType":238},"5jR3YVUiusHGnXDOyrgYpr",[],{"nodeType":418,"data":3938,"content":3939},{},[3940],{"nodeType":248,"value":3941,"marks":3942,"data":3944},"How it works:",[3943],{"type":314},{},{"nodeType":288,"data":3946,"content":3947},{},[3948],{"nodeType":248,"value":3949,"marks":3950,"data":3951},"Rather than relying on known-bad intelligence like domains or URLs, Push performs a behavioral and structural analysis of malicious pages in real time.",[],{},{"nodeType":288,"data":3953,"content":3954},{},[3955],{"nodeType":248,"value":3956,"marks":3957,"data":3958},"That means a phishing page never has to appear in a threat intelligence feed in order to be detected and blocked.",[],{},{"nodeType":288,"data":3960,"content":3961},{},[3962],{"nodeType":248,"value":3963,"marks":3964,"data":3965},"Similarly, for malicious copy and paste attacks like ClickFix, Push analyzes the content copied to the clipboard but also evaluates the context of the page to reduce false positives. In blocking mode, Push’s control for ClickFix-style attacks replaces the malicious clipboard contents with safe text — preventing potential endpoint compromise before it can occur.",[],{},{"nodeType":240,"data":3967,"content":3971},{"target":3968},{"sys":3969},{"id":3970,"type":237,"linkType":238},"3OkejjEjV9xflBc5ouOVFn",[],{"nodeType":288,"data":3973,"content":3974},{},[3975],{"nodeType":248,"value":3976,"marks":3977,"data":3978},"Finally, for identifying malicious browser extensions, Push takes a slightly different approach — combining both behavioral detections and curated intelligence of known-bad extensions from our own research and from trusted industry sources. We’ve found this combination provides the highest-fidelity way to identify malicious extensions without relying on approaches like analyzing extension permissions, which often isn’t actionable. ",[],{},{"nodeType":418,"data":3980,"content":3981},{},[3982],{"nodeType":248,"value":3983,"marks":3984,"data":3986},"Your security team gets:",[3985],{"type":314},{},{"nodeType":288,"data":3988,"content":3989},{},[3990,3994,4002],{"nodeType":248,"value":3991,"marks":3992,"data":3993},"Readymade detection and alerting, combined with detailed telemetry. Detections and their associated metadata can be consumed via ",[],{},{"nodeType":259,"data":3995,"content":3997},{"uri":3996},"/help/audience/administrators/docs/getting-started/#api-and-webhooks",[3998],{"nodeType":248,"value":3999,"marks":4000,"data":4001},"Push’s REST API and webhooks",[],{},{"nodeType":248,"value":4003,"marks":4004,"data":4005},". ",[],{},{"nodeType":418,"data":4007,"content":4008},{},[4009],{"nodeType":248,"value":4010,"marks":4011,"data":4013},"Your end-users see:",[4012],{"type":314},{},{"nodeType":288,"data":4015,"content":4016},{},[4017],{"nodeType":248,"value":4018,"marks":4019,"data":4020},"An immediate block screen in your company colors and brand style, providing a highly memorable, contextual moment of learning — and reassuring them that an incident has been prevented.",[],{},{"nodeType":240,"data":4022,"content":4026},{"target":4023},{"sys":4024},{"id":4025,"type":237,"linkType":238},"4QfjDDfKjohKr1qqDLRT0m",[],{"nodeType":306,"data":4028,"content":4029},{},[],{"nodeType":316,"data":4031,"content":4032},{},[4033],{"nodeType":248,"value":4034,"marks":4035,"data":4037},"How Push helps you remediate account vulnerabilities at scale",[4036],{"type":314},{},{"nodeType":288,"data":4039,"content":4040},{},[4041],{"nodeType":248,"value":4042,"marks":4043,"data":4044},"Just-in-time security enforcement works best when it’s trustworthy and contextual — without making a lot more work for your team. Push also provides readymade controls for remediating common account vulnerabilities that contribute to your attack surface online, helping you harden existing accounts and reduce behaviors that introduce new risks.",[],{},{"nodeType":288,"data":4046,"content":4047},{},[4048],{"nodeType":248,"value":4049,"marks":4050,"data":4051},"With Push, you can:",[],{},{"nodeType":373,"data":4053,"content":4054},{},[4055,4078,4116,4140],{"nodeType":345,"data":4056,"content":4057},{},[4058],{"nodeType":288,"data":4059,"content":4060},{},[4061,4064,4074],{"nodeType":248,"value":29,"marks":4062,"data":4063},[],{},{"nodeType":3360,"data":4065,"content":4069},{"target":4066},{"sys":4067},{"id":4068,"type":237,"linkType":238},"6FYHbkcRUrtznPo7RarRsz",[4070],{"nodeType":248,"value":4071,"marks":4072,"data":4073},"Prevent the phishing or reuse of high-value passwords",[],{},{"nodeType":248,"value":4075,"marks":4076,"data":4077},", like your IdP, AWS, or code repository passwords.",[],{},{"nodeType":345,"data":4079,"content":4080},{},[4081],{"nodeType":288,"data":4082,"content":4083},{},[4084,4088,4098,4102,4112],{"nodeType":248,"value":4085,"marks":4086,"data":4087},"Remediate ",[],{},{"nodeType":3360,"data":4089,"content":4093},{"target":4090},{"sys":4091},{"id":4092,"type":237,"linkType":238},"2WAc5HflKonFN7Jc53ROgj",[4094],{"nodeType":248,"value":4095,"marks":4096,"data":4097},"missing MFA",[],{},{"nodeType":248,"value":4099,"marks":4100,"data":4101}," or ",[],{},{"nodeType":3360,"data":4103,"content":4107},{"target":4104},{"sys":4105},{"id":4106,"type":237,"linkType":238},"2dAP36chda6ZDGKzw0Itfs",[4108],{"nodeType":248,"value":4109,"marks":4110,"data":4111},"insecure passwords",[],{},{"nodeType":248,"value":4113,"marks":4114,"data":4115}," on any work app, even those not managed by your SSO solution.",[],{},{"nodeType":345,"data":4117,"content":4118},{},[4119],{"nodeType":288,"data":4120,"content":4121},{},[4122,4126,4136],{"nodeType":248,"value":4123,"marks":4124,"data":4125},"Use ",[],{},{"nodeType":3360,"data":4127,"content":4131},{"target":4128},{"sys":4129},{"id":4130,"type":237,"linkType":238},"2ZpKnuljaUH0jzVaae4SMN",[4132],{"nodeType":248,"value":4133,"marks":4134,"data":4135},"in-browser banners",[],{},{"nodeType":248,"value":4137,"marks":4138,"data":4139}," to add guardrails to app usage, including blocking unapproved SaaS or collecting a business reason to access an app before approving it.",[],{},{"nodeType":345,"data":4141,"content":4142},{},[4143],{"nodeType":288,"data":4144,"content":4145},{},[4146,4149,4159],{"nodeType":248,"value":29,"marks":4147,"data":4148},[],{},{"nodeType":3360,"data":4150,"content":4154},{"target":4151},{"sys":4152},{"id":4153,"type":237,"linkType":238},"3ibVBa6u0XfcXXDVtON5th",[4155],{"nodeType":248,"value":4156,"marks":4157,"data":4158},"Block unwanted or unapproved browser extensions",[],{},{"nodeType":248,"value":4160,"marks":4161,"data":4162}," from being installed, or disable them if they’ve been installed previously.",[],{},{"nodeType":288,"data":4164,"content":4165},{},[4166],{"nodeType":248,"value":3899,"marks":4167,"data":4168},[],{},{"nodeType":418,"data":4170,"content":4171},{},[4172],{"nodeType":248,"value":3906,"marks":4173,"data":4175},[4174],{"type":314},{},{"nodeType":288,"data":4177,"content":4178},{},[4179],{"nodeType":248,"value":4180,"marks":4181,"data":4182},"Push uses in-browser controls to intervene when a user is missing MFA; reusing a high-value password; using an insecure password; attempting to log in to an unapproved app; or attempting to install a blocked extension. ",[],{},{"nodeType":288,"data":4184,"content":4185},{},[4186],{"nodeType":248,"value":4187,"marks":4188,"data":4189},"Push can block users from reusing passwords set as “protected” (meaning they can’t be reused on any other page or app) or from using unapproved apps or extensions. Push can guide users to update their password or register for MFA on accounts where they lack it. Push can also provide any other specific security or policy guidance to employees via banners that appear on apps in your environment, including GenAI apps. ",[],{},{"nodeType":288,"data":4191,"content":4192},{},[4193],{"nodeType":248,"value":4194,"marks":4195,"data":4196},"For all of these scenarios, you can tune Push controls to your preferred mode (informing vs. blocking, for example) and select which employees, employee groups, and apps or accounts to focus on.",[],{},{"nodeType":288,"data":4198,"content":4199},{},[4200],{"nodeType":248,"value":4201,"marks":4202,"data":4203},"You can also customize the message that employees see, to match your organizational culture and policies.",[],{},{"nodeType":418,"data":4205,"content":4206},{},[4207],{"nodeType":248,"value":4208,"marks":4209,"data":4211},"How it works: ",[4210],{"type":314},{},{"nodeType":288,"data":4213,"content":4214},{},[4215],{"nodeType":248,"value":4216,"marks":4217,"data":4218},"The Push browser agent observes real-time user behavior and securely analyzes users’ account vulnerabilities in order to identify risks and execute your preconfigured controls. ",[],{},{"nodeType":288,"data":4220,"content":4221},{},[4222],{"nodeType":248,"value":4223,"marks":4224,"data":4225},"To identify MFA status, Push uses the app’s own API to query the logged-in user’s registered MFA methods. To analyze password security, Push creates a salted, truncated hash that is stored locally in the user’s browser and then used for comparison to find reused passwords, leaked passwords, and shared passwords. ",[],{},{"nodeType":288,"data":4227,"content":4228},{},[4229,4233,4238,4242,4247],{"nodeType":248,"value":4230,"marks":4231,"data":4232},"Using the ",[],{},{"nodeType":248,"value":4234,"marks":4235,"data":4237},"MFA enforcement",[4236],{"type":314},{},{"nodeType":248,"value":4239,"marks":4240,"data":4241}," and ",[],{},{"nodeType":248,"value":4243,"marks":4244,"data":4246},"Strong password enforcement",[4245],{"type":314},{},{"nodeType":248,"value":4248,"marks":4249,"data":4250}," controls, you can then automatically display a banner to users with those account vulnerabilities, guiding them to fix the issue.",[],{},{"nodeType":240,"data":4252,"content":4256},{"target":4253},{"sys":4254},{"id":4255,"type":237,"linkType":238},"7Ka4CumZk9it6GsdlNHREA",[],{"nodeType":288,"data":4258,"content":4259},{},[4260,4264,4269],{"nodeType":248,"value":4261,"marks":4262,"data":4263},"Using Push’s ",[],{},{"nodeType":248,"value":4265,"marks":4266,"data":4268},"Password protection",[4267],{"type":314},{},{"nodeType":248,"value":4270,"marks":4271,"data":4272}," control, you can select apps where you want to essentially “pin” the high-value password to only that app and prevent its reuse (or phishing) on any other domain. ",[],{},{"nodeType":288,"data":4274,"content":4275},{},[4276,4279,4284],{"nodeType":248,"value":4261,"marks":4277,"data":4278},[],{},{"nodeType":248,"value":4280,"marks":4281,"data":4283},"Browser extension blocking",[4282],{"type":314},{},{"nodeType":248,"value":4285,"marks":4286,"data":4287}," control, you can create a blocklist or allowlist of extensions and prevent users from installing or enabling blocked extensions.",[],{},{"nodeType":288,"data":4289,"content":4290},{},[4291,4295,4300],{"nodeType":248,"value":4292,"marks":4293,"data":4294},"Finally, using Push’s ",[],{},{"nodeType":248,"value":4296,"marks":4297,"data":4299},"App banners",[4298],{"type":314},{},{"nodeType":248,"value":4301,"marks":4302,"data":4303}," feature, you can add custom messages in a range of modes — from informing to blocking — to apps in use across your business, or even specific URL patterns.",[],{},{"nodeType":240,"data":4305,"content":4309},{"target":4306},{"sys":4307},{"id":4308,"type":237,"linkType":238},"5Mq4PEzEhW8p1qLvS9aZMm",[],{"nodeType":418,"data":4311,"content":4312},{},[4313],{"nodeType":248,"value":4314,"marks":4315,"data":4317},"Your security team gets: ",[4316],{"type":314},{},{"nodeType":288,"data":4319,"content":4320},{},[4321],{"nodeType":248,"value":4322,"marks":4323,"data":4324},"A flexible and highly configurable set of controls to solve account vulnerabilities at scale and to enforce your security controls around browser extensions and app usage.",[],{},{"nodeType":418,"data":4326,"content":4327},{},[4328],{"nodeType":248,"value":4329,"marks":4330,"data":4332},"Your end-users see: ",[4331],{"type":314},{},{"nodeType":288,"data":4334,"content":4335},{},[4336],{"nodeType":248,"value":4337,"marks":4338,"data":4339},"Contextual, actionable guidance in the midst of their actual workflow, helping them fix the issue or guiding them to safety.",[],{},{"nodeType":306,"data":4341,"content":4342},{},[],{"nodeType":316,"data":4344,"content":4345},{},[4346],{"nodeType":248,"value":4347,"marks":4348,"data":4350},"Implementation tips",[4349],{"type":314},{},{"nodeType":288,"data":4352,"content":4353},{},[4354],{"nodeType":248,"value":4355,"marks":4356,"data":4357},"Push allows you to set the scope and mode of each control, making it simple to roll out. ",[],{},{"nodeType":288,"data":4359,"content":4360},{},[4361,4365,4370,4374,4378,4382,4387],{"nodeType":248,"value":4362,"marks":4363,"data":4364},"We recommend starting in ",[],{},{"nodeType":248,"value":4366,"marks":4367,"data":4369},"Monitor",[4368],{"type":314},{},{"nodeType":248,"value":4371,"marks":4372,"data":4373}," mode for controls that intervene in end-user activities. That way, you can perform testing with sample malicious sites or scenarios like reused protected passwords, tune out any benign true positives, and develop the messaging you want to use on warn or block pages. (For controls without an explicit monitor mode, like ",[],{},{"nodeType":248,"value":4243,"marks":4375,"data":4377},[4376],{"type":314},{},{"nodeType":248,"value":4379,"marks":4380,"data":4381},", you can still monitor for related events on the ",[],{},{"nodeType":248,"value":4383,"marks":4384,"data":4386},"Events",[4385],{"type":314},{},{"nodeType":248,"value":4388,"marks":4389,"data":4390}," page, such as account security findings, or by consuming webhooks into a downstream tool.)",[],{},{"nodeType":240,"data":4392,"content":4396},{"target":4393},{"sys":4394},{"id":4395,"type":237,"linkType":238},"7vk8DHv01cM1o2C0ZpAvZu",[],{"nodeType":288,"data":4398,"content":4399},{},[4400,4404,4409,4412,4417],{"nodeType":248,"value":4401,"marks":4402,"data":4403},"When you’re ready, set the mode to ",[],{},{"nodeType":248,"value":4405,"marks":4406,"data":4408},"Warn",[4407],{"type":314},{},{"nodeType":248,"value":4099,"marks":4410,"data":4411},[],{},{"nodeType":248,"value":4413,"marks":4414,"data":4416},"Block",[4415],{"type":314},{},{"nodeType":248,"value":4418,"marks":4419,"data":4420}," and use the scope options to perform a phased rollout to your user population by adding additional user groups to the control until you have complete coverage of your population.",[],{},{"nodeType":288,"data":4422,"content":4423},{},[4424],{"nodeType":248,"value":4425,"marks":4426,"data":4427},"By consuming webhook events into your SIEM, you can integrate Push alerts into your existing security workflows, monitoring for new detections or tracking when account vulnerabilities are resolved.",[],{},{"nodeType":306,"data":4429,"content":4430},{},[],{"nodeType":316,"data":4432,"content":4433},{},[4434],{"nodeType":248,"value":4435,"marks":4436,"data":4438},"Enhancing user trust with custom branding",[4437],{"type":314},{},{"nodeType":288,"data":4440,"content":4441},{},[4442],{"nodeType":248,"value":4443,"marks":4444,"data":4445},"We recently released the option to customize the look and feel of all employee-facing banners and block pages. ",[],{},{"nodeType":288,"data":4447,"content":4448},{},[4449,4453,4458],{"nodeType":248,"value":4450,"marks":4451,"data":4452},"From the ",[],{},{"nodeType":248,"value":4454,"marks":4455,"data":4457},"Settings",[4456],{"type":314},{},{"nodeType":248,"value":4459,"marks":4460,"data":4461}," page in the Push admin console, you can upload your logo, add accent colors, and choose from light or dark backgrounds.",[],{},{"nodeType":240,"data":4463,"content":4467},{"target":4464},{"sys":4465},{"id":4466,"type":237,"linkType":238},"51lk1VRP20G7H4PAoRZANI",[],{"nodeType":288,"data":4469,"content":4470},{},[4471],{"nodeType":248,"value":4472,"marks":4473,"data":4474},"Custom branding increases the trustworthiness of these in-the-moment security guardrails so that users recognize them immediately and act on their guidance.",[],{},{"nodeType":288,"data":4476,"content":4477},{},[4478],{"nodeType":248,"value":4479,"marks":4480,"data":4481},"The result: Better compliance and lower friction for you and your employees.",[],{},{"nodeType":306,"data":4483,"content":4484},{},[],{"nodeType":316,"data":4486,"content":4487},{},[4488],{"nodeType":248,"value":4489,"marks":4490,"data":4492},"Learn more about Push",[4491],{"type":314},{},{"nodeType":288,"data":4494,"content":4495},{},[4496,4500,4507],{"nodeType":248,"value":4497,"marks":4498,"data":4499},"Push Security’s browser-based security platform stops browser-based attacks like AiTM phishing, credential stuffing, malicious browser extensions, ClickFix, and session hijacking — ",[],{},{"nodeType":259,"data":4501,"content":4502},{"uri":165},[4503],{"nodeType":248,"value":4504,"marks":4505,"data":4506},"modern attack techniques",[],{},{"nodeType":248,"value":4508,"marks":4509,"data":4510}," that are the leading cause of breaches today.",[],{},{"nodeType":288,"data":4512,"content":4513},{},[4514],{"nodeType":248,"value":4515,"marks":4516,"data":4517},"You don’t need to wait until it all goes wrong either. You can also use Push to proactively find and fix vulnerabilities across the apps that your employees use, like ghost logins, SSO coverage gaps, MFA gaps, vulnerable passwords, and more to harden your attack surface.",[],{},{"nodeType":288,"data":4519,"content":4520},{},[4521,4525,4533,4537,4545,4549,4557],{"nodeType":248,"value":4522,"marks":4523,"data":4524},"Want to learn more about Push? Check out our latest ",[],{},{"nodeType":259,"data":4526,"content":4528},{"uri":4527},"/resources/product-brochure",[4529],{"nodeType":248,"value":4530,"marks":4531,"data":4532},"product overview",[],{},{"nodeType":248,"value":4534,"marks":4535,"data":4536},", visit our ",[],{},{"nodeType":259,"data":4538,"content":4540},{"uri":4539},"/product-demo/",[4541],{"nodeType":248,"value":4542,"marks":4543,"data":4544},"demo library",[],{},{"nodeType":248,"value":4546,"marks":4547,"data":4548},", or book some time with one of our team for a ",[],{},{"nodeType":259,"data":4550,"content":4552},{"uri":4551},"/demo",[4553],{"nodeType":248,"value":4554,"marks":4555,"data":4556},"live demo",[],{},{"nodeType":248,"value":843,"marks":4558,"data":4559},[],{},"Guide: How to use Push controls to protect your users from modern browser threats","How to use in-browser controls to stop browser-based attacks before compromise can occur","2026-04-08T00:00:00.000Z","guide-how-to-use-push-controls-to-protect-your-users-from-modern-attacks",{"items":4565},[4566,4568],{"sys":4567,"name":1930},{"id":1929},{"sys":4569,"name":1934},{"id":1933},{"items":4571},[4572],{"fullName":4573,"firstName":4574,"jobTitle":4575,"profilePicture":4576},"Kelly Davenport","Kelly","Product Team",{"url":4577},"https://images.ctfassets.net/y1cdw1ablpvd/1hi8bEuVfn5sF57LivAq6d/9a3b82426c697d765e2e450e33a18424/kelly_profile_pic.jpeg","why-browser-extension-risk-scoring-wont-predict-your-next-breach","blog/why-browser-extension-risk-scoring-wont-predict-your-next-breach",{"json":4581},{"nodeType":1056,"data":4582,"content":4583},{},[4584],{"nodeType":288,"data":4585,"content":4586},{},[4587],{"nodeType":248,"value":4588,"marks":4589,"data":4590},"Why typical browser extension risk scores are poor predictors of which extensions could actually lead to a compromise.",[],{},"Why typical browser extension risk scores are poor predictors of which extensions will actually lead to a compromise.",{"id":4593,"publishedAt":4594},"6X3wP0WhtDk2l1jKH2fPIb","2026-04-29T16:22:50.758Z",{"items":4596},[4597,4599],{"sys":4598,"name":1934},{"id":1933},{"sys":4600,"name":1930},{"id":1929},"CQ_rURF-CDN4pObnPF3k_RzGELyMoImWouumCVvHsKU",[4603,4786,4905,5024,5142,5262,5382,5502],{"createdDate":4604,"id":4605,"name":4606,"modelId":4607,"published":13,"stageModifiedSincePublish":6,"query":4608,"data":4614,"variations":4774,"lastUpdated":4775,"firstPublished":4776,"testRatio":23,"screenshot":4777,"createdBy":91,"lastUpdatedBy":4778,"folders":4779,"meta":4780,"rev":4785},1744829487099,"387451215c314dd5bd654668cdc1a197","Zero-day phishing","cca4143377554c5a9163cc203a8ed2ba",[4609],{"@type":4610,"property":4611,"operator":4612,"value":4613},"@builder.io/core:Query","urlPath","is","/uc/zero-day-phishing-protection",{"inputs":4615,"customFonts":4616,"seoTitle":4663,"title":4663,"tsCode":29,"seoDescription":4664,"fontAwesomeIcon":4665,"jsCode":29,"blocks":4666,"url":4613,"state":4771},[],[4617],{"family":4618,"kind":4619,"version":4620,"lastModified":4621,"files":4622,"category":4641,"menu":4642,"subsets":4643,"variants":4646},"DM Sans","webfonts#webfont","v14","2023-07-13",{"100":4623,"200":4624,"300":4625,"500":4626,"600":4627,"700":4628,"800":4629,"900":4630,"800italic":4631,"900italic":4632,"700italic":4633,"100italic":4634,"italic":4635,"regular":4636,"200italic":4637,"500italic":4638,"300italic":4639,"600italic":4640},"https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAop1hTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAIpxhTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwA_JxhTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAkJxhTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAfJthTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwARZthTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAIpthTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAC5thTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8JCm3zRmYJpso5.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8gCm3zRmYJpso5.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat9uCm3zRmYJpso5.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-JDG3zRmYJpso5.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-JDW3zRmYJpso5.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxhTmf3ZGMZpg.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8JDW3zRmYJpso5.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-7DW3zRmYJpso5.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat_XDW3zRmYJpso5.ttf","https://fonts.gstatic.com/s/dmsans/v14/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat9XCm3zRmYJpso5.ttf","sans-serif","https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRT23z.ttf",[4644,4645],"latin","latin-ext",[4647,4648,4649,4650,4651,4652,71,4653,4654,4655,4656,4657,430,4658,4659,4660,4661,4662],"100","200","300","regular","500","600","800","900","100italic","200italic","300italic","500italic","600italic","700italic","800italic","900italic","Zero-day phishing protection","Detect phishing TTPs directly in the browser and stop credential theft.","faFishingRod",[4667,4766],{"@type":47,"@version":48,"tagName":4668,"id":4669,"children":4670},"div","builder-76c6b8d1499346c7bc1fd56ae4e93638",[4671,4688,4696,4703,4715,4730,4741,4752,4758],{"@type":47,"@version":48,"layerName":4672,"id":4673,"component":4674,"responsiveStyles":4685},"UseCaseHero","builder-5228fe062bef4a40a91e43f1112832fa",{"name":4672,"options":4675,"isRSC":61},{"title":4663,"description":4676,"points":4677,"video":4684},"\u003Cp>Push detects phishing as it happens. Autonomous agents hunt for new phishing techniques, identify kit signatures, and deploy detections within minutes of a new attack being analyzed. From cloned login pages to AiTM credential harvesting, Push sees what traditional filters miss and stops threats before they escalate.\u003C/p>",[4678,4680,4682],{"item":4679},"Detect phishing that bypasses traditional filters, including AiTM, SSO password theft, and fake login pages",{"item":4681},"Stop never-before-seen attacks with AI-native behavioral and on-page analysis inside the browser",{"item":4683},"Investigate faster with unified browser, user, and page context","https://cdn.builder.io/o/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F40433ceeb4f94b43a82e039a0f4fd411%2Fcompressed?apiKey=f3a1111ff5be48cdbb123cd9f5795a05&token=40433ceeb4f94b43a82e039a0f4fd411&alt=media&optimized=true",{"large":4686},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4687},"transparent",{"@type":47,"@version":48,"id":4689,"component":4690,"responsiveStyles":4693},"builder-96634044407e491299e291ed64669e39",{"name":4691,"options":4692,"isRSC":61},"TrustedBy",{"AllPartners":34,"backgroundTransparent":6},{"large":4694},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4695},"#000",{"@type":47,"@version":48,"id":4697,"component":4698,"responsiveStyles":4701},"builder-2c3768f930534557bb8978e32b6a6a0f",{"name":4699,"options":4700,"isRSC":61},"Diagonal",{"darkMode":34},{"large":4702},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"layerName":4704,"id":4705,"component":4706,"responsiveStyles":4713},"TextImageBlockVertical","builder-7c3c1c2840424db2ad2ccbfaf382dd64",{"name":4704,"tag":4704,"options":4707,"isRSC":61},{"darkMode":6,"maxWidth":4708,"maxTextWidth":4709,"title":4710,"description":4711,"animatedTitle":29,"image":4712,"reverse":6,"descriptionPaddingHorizontal":61},1200,800,"\u003Ch2>Why stop at the inbox?\u003C/h2>","\u003Cp>Phishing attacks have evolved. Whether attackers lure users with QR codes, instant messages, or OAuth consent screens, the outcome is the same: it plays out in the browser. Push gives you real-time detection for in-browser threats, stopping phishing and consent-based attacks before they lead to compromise\u003C/p>\u003Cp>\u003Cbr>\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F7fdcac241f0e4a049166d7076858adeb",{"large":4714},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":4716,"component":4717,"responsiveStyles":4725},"builder-41c978b3669749cf947e622b4e79e4d7",{"name":4718,"options":4719,"isRSC":61},"TextImageBlockHorizontal",{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4721,"title":4722,"description":4723,"reverse":34,"image":4724},600,100,"\u003Cp>Detect phishing at the edge\u003C/p>","\u003Cp>Push uses industry-first telemetry to detect phishing based on behavior, not static indicators. Autonomous agents analyze how phishing pages behave and how users interact with them, uncovering fake logins, credential theft, and phishing kits the moment they load in the browser.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F9df3d180c97b4e61af142af2ccd68721",{"large":4726},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"fontFamily":4727,"paddingTop":4728,"marginTop":4729},"DM Sans, sans-serif","20px","0px",{"@type":47,"@version":48,"id":4731,"component":4732,"responsiveStyles":4738},"builder-d2a7bc941feb43cdb898bc116b203cf9",{"name":4718,"options":4733,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4734,"title":4735,"description":4736,"reverse":6,"image":4737},120,"\u003Ch2>Go beyond blocklists and IOCs\u003C/h2>","\u003Cp>Push goes beyond URLs and easy-to-change indicators. It reads the full phishing playbook like script behavior, session hijacks, DOM changes, user inputs, then connects the dots in real time. This gives your team a complete picture of how the phishing attempt worked, not just an alert.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fabfd58db169b433e96d3f1261797156e",{"large":4739},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4740},"36px",{"@type":47,"@version":48,"layerName":4718,"id":4742,"component":4743,"responsiveStyles":4749},"builder-42c32198083f4880acb37c5cb76934da",{"name":4718,"options":4744,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4745,"title":4746,"description":4747,"reverse":34,"image":4748},140,"\u003Ch2>Enhance your phishing response\u003C/h2>","\u003Cp>When phishing enters your environment, speed matters. Push gives you instant access to the telemetry that counts like session data, user behavior, and page activity, so you can investigate fast, trigger in-browser prompts, or forward alerts to your SIEM or SOAR for response. All in real time, right from the browser.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fbb195aec46904056b85e8688629e558e",{"large":4750},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4751},"47px",{"@type":47,"@version":48,"id":4753,"component":4754,"responsiveStyles":4756},"builder-9a95b9cbc4854421a92ef7b90f6c7adb",{"name":4699,"options":4755,"isRSC":61},{"darkMode":6},{"large":4757},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":4759,"component":4760,"responsiveStyles":4764},"builder-0afa17a9f25c4661a90f314d5578aa18",{"name":4761,"tag":4761,"options":4762,"isRSC":61},"LatestResources",{"sectionHeading":29,"customClass":4763},"bg-black",{"large":4765},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"id":4767,"@type":47,"tagName":74,"properties":4768,"responsiveStyles":4769},"builder-pixel-8n6xsgszo8d",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},{"large":4770},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},{"deviceSize":85,"location":4772},{"path":29,"query":4773},{},{},1776275046831,1745499158657,"https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fff60c30a8442489c8ed7e0af9599d14f","kYgMv6WsbvfmlOUYqR2SFwGzw6e2",[],{"lastPreviewUrl":4781,"winningTest":61,"breakpoints":4782,"kind":4783,"hasLinks":6,"originalContentId":4784,"hasAutosaves":6},"https://pushsecurity.com/uc/zero-day-phishing-protection?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CcreateProjects%2CsendPullRequests&builder.user.role.name=Designer&builder.user.role.id=creator&builder.cachebust=true&builder.preview=use-case-page&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.use-case-page=387451215c314dd5bd654668cdc1a197&builder.overrides.387451215c314dd5bd654668cdc1a197=387451215c314dd5bd654668cdc1a197&builder.overrides.use-case-page:/uc/zero-day-phishing-protection=387451215c314dd5bd654668cdc1a197&builder.options.locale=Default",{"xsmall":31,"small":32,"medium":33},"page","2daa5670b8504fc7ba4700633e8bd921","ji4tx4wli88",{"createdDate":4787,"id":4788,"name":4789,"modelId":4607,"published":13,"stageModifiedSincePublish":6,"query":4790,"data":4793,"variations":4897,"lastUpdated":4898,"firstPublished":4899,"testRatio":23,"screenshot":4900,"createdBy":91,"lastUpdatedBy":4778,"folders":4901,"meta":4902,"rev":4785},1756833377777,"54f8256648f54d439303734b1e69221b","Browser extension security",[4791],{"@type":4610,"property":4611,"operator":4612,"value":4792},"/uc/browser-extension-security",{"seoDescription":4794,"jsCode":29,"fontAwesomeIcon":4795,"tsCode":29,"title":4789,"seoTitle":4789,"customFonts":4796,"inputs":4801,"blocks":4802,"url":4792,"state":4894},"Shine a light on risky browser extensions.","faPuzzlePiece",[4797],{"kind":4619,"family":4618,"version":4620,"files":4798,"category":4641,"lastModified":4621,"subsets":4799,"variants":4800,"menu":4642},{"100":4623,"200":4624,"300":4625,"500":4626,"600":4627,"700":4628,"800":4629,"900":4630,"100italic":4634,"italic":4635,"regular":4636,"900italic":4632,"800italic":4631,"700italic":4633,"200italic":4637,"300italic":4639,"500italic":4638,"600italic":4640},[4644,4645],[4647,4648,4649,4650,4651,4652,71,4653,4654,4655,4656,4657,430,4658,4659,4660,4661,4662],[],[4803,4889],{"@type":47,"@version":48,"tagName":4668,"id":4804,"meta":4805,"children":4806},"builder-71d0648c1d2f4ede8d0d0b5b28b7b94c",{"previousId":4669},[4807,4823,4830,4837,4846,4856,4866,4876,4883],{"@type":47,"@version":48,"id":4808,"meta":4809,"component":4810,"responsiveStyles":4821},"builder-ff325b4b8fad4edea53f38865947e854",{"previousId":4673},{"name":4672,"options":4811,"isRSC":61},{"title":4789,"description":4812,"points":4813,"video":4820},"\u003Cp>Browser extensions introduce new code, new permissions, and new potential for risk. Many include AI features, and most go completely unnoticed. Push gives you full visibility into every extension used across your workforce, across major browsers, so you can uncover shadow IT, assess risky permissions, and block unsafe tools before they lead to compromise.\u003C/p>",[4814,4816,4818],{"item":4815},"Discover every browser extension in use",{"item":4817},"Spot risky or unsanctioned behavior",{"item":4819},"Make informed decisions on extension policy","https://cdn.builder.io/o/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fc538aad95d7f403aa3c3551af72f67c0?alt=media&token=1411fa6d-2eac-4e6c-94bf-ea117da12d67&apiKey=f3a1111ff5be48cdbb123cd9f5795a05",{"large":4822},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4687},{"@type":47,"@version":48,"id":4824,"meta":4825,"component":4826,"responsiveStyles":4828},"builder-fb89d128c64e47cf9cbb11d90fc24523",{"previousId":4689},{"name":4691,"options":4827,"isRSC":61},{"AllPartners":34,"backgroundTransparent":6},{"large":4829},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4695},{"@type":47,"@version":48,"id":4831,"meta":4832,"component":4833,"responsiveStyles":4835},"builder-54388d35126c4d0096eeebaf8c4448cd",{"previousId":4697},{"name":4699,"options":4834,"isRSC":61},{"darkMode":34},{"large":4836},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"layerName":4704,"id":4838,"component":4839,"responsiveStyles":4844},"builder-3c8fa6785dd6466abf52a2470d66d85a",{"name":4704,"tag":4704,"options":4840,"isRSC":61},{"darkMode":6,"maxWidth":4708,"maxTextWidth":4709,"title":4841,"description":4842,"image":4843,"reverse":6},"\u003Ch2>Take control of browser extensions\u003C/h2>","\u003Cp>Attackers are increasingly using malicious browser extensions to gain access to data processed and stored in the browser. And the problem is, most security teams have no visibility into what extensions are being used. Push changes that. With browser-native telemetry, the Push extension continuously inventories browser extensions across your environment, flags the risky ones, and gives you intelligence to act.&nbsp;\u003C/p>\u003Cp>\u003Cbr>\u003C/p>\u003Cp>\u003Cbr>\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F0a004f16a6874f4c8fdf14344acc9fec",{"large":4845},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":4847,"meta":4848,"component":4849,"responsiveStyles":4854},"builder-93738f98109a4009affb349afd7bb182",{"previousId":4716},{"name":4718,"options":4850,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4721,"title":4851,"description":4852,"reverse":34,"image":4853},"\u003Ch2>Discover every extension in use\u003C/h2>","\u003Cp>Push gives you structured, searchable data about every extension in your environment, so you’re not just seeing what’s there, but also understanding how it got there, what it can do, and who it affects. It’s the kind of granular insight that’s nearly impossible to get from traditional tools, and it lays the groundwork for better policy decisions and faster investigations.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F0e5727ca99474f14b1b7916bf6bbb782",{"large":4855},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"fontFamily":4727,"paddingTop":4728,"marginTop":4729},{"@type":47,"@version":48,"id":4857,"meta":4858,"component":4859,"responsiveStyles":4864},"builder-83393acb12ee4fdd840839185b51edb4",{"previousId":4731},{"name":4718,"options":4860,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4734,"title":4861,"description":4862,"reverse":6,"image":4863},"\u003Ch2>Spot risky or malicious extensions\u003C/h2>","\u003Cp>Push highlights extensions with dangerous permissions, broad access, or poor reputations. This includes AI extensions that request access far beyond what their stated purpose requires. You can quickly detect sideloaded, manually installed, or development-mode extensions that bypass normal controls. And because Push shows you who’s using them and where, you can respond precisely and effectively.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fa104d58c8da34fbb8901f738fb21453b",{"large":4865},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4740},{"@type":47,"@version":48,"layerName":4718,"id":4867,"meta":4868,"component":4869,"responsiveStyles":4874},"builder-da98e3de949646d89c53a0d1c2784664",{"previousId":4742},{"name":4718,"options":4870,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4745,"title":4871,"description":4872,"reverse":34,"image":4873},"\u003Ch2>Accelerate security reviews\u003C/h2>","\u003Cp>Most teams have extension policies, they just don’t have the data to enforce them. Push reveals how each extension entered your environment, whether it was installed manually, sideloaded, or deployed in dev mode. You’ll see which users are running what, and where, so you can surface violations, investigate quickly, and respond with confidence.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F229f355be6f243b180f410d237a75bb3",{"large":4875},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4751},{"@type":47,"@version":48,"id":4877,"meta":4878,"component":4879,"responsiveStyles":4881},"builder-1a689287d1a1418997d57db578a71105",{"previousId":4753},{"name":4699,"options":4880,"isRSC":61},{"darkMode":6},{"large":4882},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":4884,"component":4885,"responsiveStyles":4887},"builder-feb4e75029f84c10b6498ef1f8f79128",{"name":4761,"tag":4761,"options":4886,"isRSC":61},{"sectionHeading":29,"customClass":4763},{"large":4888},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"id":4890,"@type":47,"tagName":74,"properties":4891,"responsiveStyles":4892},"builder-pixel-80each1029i",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},{"large":4893},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},{"deviceSize":85,"location":4895},{"path":29,"query":4896},{},{},1776275365038,1757000441666,"https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F8d496cf111644ee5afcc046b72d1ca5a",[],{"kind":4783,"winningTest":61,"breakpoints":4903,"lastPreviewUrl":4904,"hasLinks":6,"originalContentId":4605,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},"https://pushsecurity.com/uc/browser-extension-security?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CcreateProjects%2CsendPullRequests&builder.user.role.name=Designer&builder.user.role.id=creator&builder.cachebust=true&builder.preview=use-case-page&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.use-case-page=54f8256648f54d439303734b1e69221b&builder.overrides.54f8256648f54d439303734b1e69221b=54f8256648f54d439303734b1e69221b&builder.overrides.use-case-page:/uc/browser-extension-security=54f8256648f54d439303734b1e69221b&builder.options.locale=Default",{"createdDate":4906,"id":4907,"name":4908,"modelId":4607,"published":13,"query":4909,"data":4912,"variations":5015,"lastUpdated":5016,"firstPublished":5017,"testRatio":23,"screenshot":5018,"createdBy":91,"lastUpdatedBy":5019,"folders":5020,"meta":5021,"rev":4785},1744923509705,"94bebb7bb99d48629ad157e80cf4d81d","Account takeover detection",[4910],{"@type":4610,"property":4611,"operator":4612,"value":4911},"/uc/account-takeover-detection",{"title":4908,"customFonts":4913,"jsCode":29,"seoTitle":4908,"seoDescription":4918,"fontAwesomeIcon":4919,"tsCode":29,"blocks":4920,"url":4911,"state":5012},[4914],{"kind":4619,"category":4641,"variants":4915,"menu":4642,"files":4916,"family":4618,"subsets":4917,"version":4620,"lastModified":4621},[4647,4648,4649,4650,4651,4652,71,4653,4654,4655,4656,4657,430,4658,4659,4660,4661,4662],{"100":4623,"200":4624,"300":4625,"500":4626,"600":4627,"700":4628,"800":4629,"900":4630,"300italic":4639,"500italic":4638,"800italic":4631,"700italic":4633,"italic":4635,"900italic":4632,"600italic":4640,"200italic":4637,"regular":4636,"100italic":4634},[4644,4645],"Stop ATO with stolen credential and compromised token detection.","faUserSecret",[4921,5007],{"@type":47,"@version":48,"tagName":4668,"id":4922,"meta":4923,"children":4924},"builder-e7913a774cae44c5a23d6081c5c30a52",{"previousId":4669},[4925,4941,4948,4955,4964,4974,4984,4994,5001],{"@type":47,"@version":48,"id":4926,"meta":4927,"component":4928,"responsiveStyles":4939},"builder-f1f1ab1601bc4c0f8c2a8aafd173675d",{"previousId":4673},{"name":4672,"options":4929,"isRSC":61},{"title":4908,"description":4930,"points":4931,"video":4938},"\u003Cp>Attackers don’t need to phish, they just need a password that works. Push monitors for signs of credential-based attacks in real time, directly in the browser, catching account takeover attempts before the damage spreads. From ghost logins to credential stuffing, Push cuts off the paths attackers use to quietly slip in the back door.\u003C/p>\u003Cp>\u003Cbr>\u003C/p>",[4932,4934,4936],{"item":4933},"Identify credential-based ATO as it unfolds",{"item":4935},"Surface hijacked sessions and token misuse",{"item":4937},"Strengthen authentication where your IdP can’t","https://cdn.builder.io/o/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fb4dd9db24bc9495b8a686b1b4d492016%2Fcompressed?apiKey=f3a1111ff5be48cdbb123cd9f5795a05&token=b4dd9db24bc9495b8a686b1b4d492016&alt=media&optimized=true",{"large":4940},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4687},{"@type":47,"@version":48,"id":4942,"meta":4943,"component":4944,"responsiveStyles":4946},"builder-0bc0d1c78ece4994993c3a6427a4d533",{"previousId":4689},{"name":4691,"options":4945,"isRSC":61},{"AllPartners":34,"backgroundTransparent":6},{"large":4947},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4695},{"@type":47,"@version":48,"id":4949,"meta":4950,"component":4951,"responsiveStyles":4953},"builder-e45de8f3768c4f16938dbf78e4e87524",{"previousId":4697},{"name":4699,"options":4952,"isRSC":61},{"darkMode":34},{"large":4954},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":4956,"component":4957,"responsiveStyles":4962},"builder-c98e8bfd341146c1b67c02d5698ff093",{"name":4704,"tag":4704,"options":4958,"isRSC":61},{"darkMode":6,"maxWidth":4708,"maxTextWidth":4709,"title":4959,"description":4960,"image":4961,"reverse":6},"\u003Ch2>Assume less. See more.\u003C/h2>","\u003Cp>Most account takeovers don’t start with a breach, they start with a login. Whether it’s a reused password, a local account, or an outdated login flow, Push shows you how accounts are actually accessed day to day, not just how policies say they should be. That means no more blind spots around ghost logins, bypassed SSO, or stale access paths that quietly persist.\u003C/p>\u003Cp>\u003Cbr>\u003C/p>\u003Cp>\u003Cbr>\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F18630ad2746d4eb7b7fcc0428b11a8f0",{"large":4963},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":4965,"meta":4966,"component":4967,"responsiveStyles":4972},"builder-55c1fc38ddc04fd1a0d6a8e2fb819e00",{"previousId":4716},{"name":4718,"options":4968,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4721,"title":4969,"description":4970,"reverse":34,"image":4971},"\u003Ch2>Catch stolen credential use in real time\u003C/h2>","\u003Cp>Push monitors login activity directly in the browser to detect signs of credential-based attacks like leaked password use or suspicious login flows. By analyzing attacker TTPs instead of relying on known indicators, Push spots credential stuffing and account takeover attempts the moment they begin, not after they’ve succeeded.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F52b0123cac2c4dfdb1dc0af6adf9d603",{"large":4973},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"fontFamily":4727,"paddingTop":4729,"marginTop":4729},{"@type":47,"@version":48,"id":4975,"meta":4976,"component":4977,"responsiveStyles":4982},"builder-dfb31737b30948c6b95323655d571a50",{"previousId":4731},{"name":4718,"options":4978,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4734,"title":4979,"description":4980,"reverse":6,"image":4981},"\u003Ch2>Detect session hijacks and stealth access\u003C/h2>","\u003Cp>Attackers don’t always need a login screen, they often sidestep it entirely using stolen session tokens. Push detects when valid sessions are reused in unexpected ways, identifying hijacked sessions and stealth access attempts that traditional tools miss. Because we monitor directly in the browser, you see what’s happening inside active sessions in real time.\u003C/p>\u003Cp>\u003Cbr>\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F94a6859a99e04d309ffe5841f3dbdf5c",{"large":4983},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4740},{"@type":47,"@version":48,"layerName":4718,"id":4985,"meta":4986,"component":4987,"responsiveStyles":4992},"builder-f7585b90eb974d03a7dc7eae5b58d227",{"previousId":4742},{"name":4718,"options":4988,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4745,"title":4989,"description":4990,"reverse":34,"image":4991},"\u003Ch2>Harden accounts before they’re compromised\u003C/h2>","\u003Cp>Push goes beyond alerts. It identifies apps that still allow local logins, even when SSO is configured, so you can remove weak access paths. Push also flags users without MFA, reused work credentials, or weak passwords, and prompts users in-browser to fix risky behaviors before they’re exploited.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F01c1b638f1b6497093a4f2b8ceddb5bb",{"large":4993},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4751},{"@type":47,"@version":48,"id":4995,"meta":4996,"component":4997,"responsiveStyles":4999},"builder-ad81d1e3afec49a791214194eae09bdc",{"previousId":4753},{"name":4699,"options":4998,"isRSC":61},{"darkMode":6},{"large":5000},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5002,"component":5003,"responsiveStyles":5005},"builder-8dac1aa4b9d148628d92252bd8eff822",{"name":4761,"tag":4761,"options":5004,"isRSC":61},{"sectionHeading":29,"customClass":4763},{"large":5006},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"id":5008,"@type":47,"tagName":74,"properties":5009,"responsiveStyles":5010},"builder-pixel-iha8kjc0jda",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},{"large":5011},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},{"deviceSize":85,"location":5013},{"path":29,"query":5014},{},{},1770892814499,1745499162732,"https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F58b660fa94aa4b30b0faeb9b663ae41a","SfUPqW5tkibIPby49keNFMdHFTr1",[],{"lastPreviewUrl":5022,"hasLinks":6,"originalContentId":4605,"breakpoints":5023,"winningTest":61,"kind":4783,"hasAutosaves":34},"https://pushsecurity.com/uc/account-takeover-detection?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditCode%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CeditProjects%2CmodifyMcpServers%2CmodifyWorkflowIntegrations%2CmodifyProjectSettings%2CconnectCodeRepository%2CcreateProjects%2CindexDesignSystems%2CsendPullRequests&builder.user.role.name=Developer&builder.user.role.id=developer&builder.cachebust=true&builder.preview=use-case-page&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.use-case-page=94bebb7bb99d48629ad157e80cf4d81d&builder.overrides.94bebb7bb99d48629ad157e80cf4d81d=94bebb7bb99d48629ad157e80cf4d81d&builder.overrides.use-case-page:/uc/account-takeover-detection=94bebb7bb99d48629ad157e80cf4d81d&builder.options.includeRefs=true&builder.options.enrich=true&builder.options.locale=Default",{"xsmall":31,"small":32,"medium":33},{"createdDate":5025,"id":5026,"name":5027,"modelId":4607,"published":13,"query":5028,"data":5031,"variations":5134,"lastUpdated":5135,"firstPublished":5136,"testRatio":23,"screenshot":5137,"createdBy":91,"lastUpdatedBy":5019,"folders":5138,"meta":5139,"rev":4785},1745009370904,"23eb48fb56d3451cab77cb6ed140ee6d","Attack path hardening",[5029],{"@type":4610,"property":4611,"operator":4612,"value":5030},"/uc/attack-path-hardening",{"tsCode":29,"seoDescription":5032,"jsCode":29,"customFonts":5033,"fontAwesomeIcon":5038,"seoTitle":5027,"title":5027,"blocks":5039,"url":5030,"state":5131},"Harden access paths with visibility,  detection, and guardrails.",[5034],{"kind":4619,"files":5035,"version":4620,"lastModified":4621,"subsets":5036,"menu":4642,"category":4641,"variants":5037,"family":4618},{"100":4623,"200":4624,"300":4625,"500":4626,"600":4627,"700":4628,"800":4629,"900":4630,"regular":4636,"italic":4635,"800italic":4631,"500italic":4638,"600italic":4640,"200italic":4637,"900italic":4632,"700italic":4633,"100italic":4634,"300italic":4639},[4644,4645],[4647,4648,4649,4650,4651,4652,71,4653,4654,4655,4656,4657,430,4658,4659,4660,4661,4662],"faRadar",[5040,5126],{"@type":47,"@version":48,"tagName":4668,"id":5041,"meta":5042,"children":5043},"builder-1d8553eddcaa44d7bba9e2f4ca13af2a",{"previousId":4922},[5044,5060,5067,5074,5083,5093,5103,5113,5120],{"@type":47,"@version":48,"id":5045,"meta":5046,"component":5047,"responsiveStyles":5058},"builder-84fe3d7c85a743cf8cef649aa974f1ef",{"previousId":4926},{"name":4672,"options":5048,"isRSC":61},{"title":5027,"description":5049,"points":5050,"video":5057},"\u003Cp>Push continuously monitors your environment for exposed login paths, weak credentials, and missing protections like MFA. It detects the gaps attackers exploit and helps you close them before they’re used.\u003C/p>",[5051,5053,5055],{"item":5052},"Find weak spots like reused passwords, local logins, and missing MFA",{"item":5054},"Monitor how users actually log in across apps, flows, and tools",{"item":5056},"Enforce secure access with in-browser guardrails","https://cdn.builder.io/o/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fdbdcf52892034f1bbddded77f753a343%2Fcompressed?apiKey=f3a1111ff5be48cdbb123cd9f5795a05&token=dbdcf52892034f1bbddded77f753a343&alt=media&optimized=true",{"large":5059},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4687},{"@type":47,"@version":48,"id":5061,"meta":5062,"component":5063,"responsiveStyles":5065},"builder-b3f66f5b08054cc78a06fecfc3ae2337",{"previousId":4942},{"name":4691,"options":5064,"isRSC":61},{"AllPartners":34,"backgroundTransparent":6},{"large":5066},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4695},{"@type":47,"@version":48,"id":5068,"meta":5069,"component":5070,"responsiveStyles":5072},"builder-4c73418b84be49ed85e6e13d2625c5a0",{"previousId":4949},{"name":4699,"options":5071,"isRSC":61},{"darkMode":34},{"large":5073},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5075,"component":5076,"responsiveStyles":5081},"builder-dec0246085e1485c803f7152b1922a81",{"name":4704,"tag":4704,"options":5077,"isRSC":61},{"darkMode":6,"maxWidth":4708,"maxTextWidth":4709,"title":5078,"description":5079,"image":5080,"reverse":6},"\u003Ch2>Find the gaps that lead to compromise\u003C/h2>","\u003Cp>Misconfigurations don’t show up in your config files, they show up in how users actually access apps. Push monitors real login behavior in the browser, surfacing risky patterns like local login access, duplicate accounts, or missing protections that leave doors wide open.\u003C/p>\u003Cp>\u003Cbr>\u003C/p>\u003Cp>\u003Cbr>\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F309a59bba8d247a19476bb369397460e",{"large":5082},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5084,"meta":5085,"component":5086,"responsiveStyles":5091},"builder-ebf049a645604a249550996a88f8f3b6",{"previousId":4965},{"name":4718,"options":5087,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4721,"title":5088,"description":5089,"reverse":34,"image":5090},"\u003Ch2>See real login behavior\u003C/h2>","\u003Cp>Push watches authentication flows as they happen, giving you a live view of how users log in, which methods they choose, and where protections like MFA are missing. Plus, uncover every app and account in use, even shadow IT you didn’t know existed, without relying on stale config files or IdP assumptions. \u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fb51f6b0357cc451b87a7a5016d984e5e",{"large":5092},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"fontFamily":4727,"paddingTop":4728,"marginTop":4729},{"@type":47,"@version":48,"id":5094,"meta":5095,"component":5096,"responsiveStyles":5101},"builder-431d175c59004669b0b2776b07d71737",{"previousId":4975},{"name":4718,"options":5097,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4734,"title":5098,"description":5099,"reverse":6,"image":5100},"\u003Ch2>Find and fix posture drift\u003C/h2>","\u003Cp>Security posture isn’t static. Push continuously monitors for issues like missing MFA or legacy login methods. When something falls out of policy, you know immediately with custom notifications so you can act before it turns into risk.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F324e39127dfc41e592b1183dfb39892d",{"large":5102},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4740},{"@type":47,"@version":48,"layerName":4718,"id":5104,"meta":5105,"component":5106,"responsiveStyles":5111},"builder-3dffdcbe0a484e2ca4c03f019b6d40ee",{"previousId":4985},{"name":4718,"options":5107,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4745,"title":5108,"description":5109,"reverse":34,"image":5110},"\u003Ch2>Guide users with in-browser guardrails\u003C/h2>","\u003Cp>Push doesn’t just surface problems, it helps you fix them. When users sign in without MFA, reuse a password, or use insecure credentials, Push prompts them directly in the browser to secure their access. It’s faster, more effective, and actually gets results.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fee8b75d13e45488aba55434a8b49ebb0",{"large":5112},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4751},{"@type":47,"@version":48,"id":5114,"meta":5115,"component":5116,"responsiveStyles":5118},"builder-976bc222cd7647ff905f1e01cfedc453",{"previousId":4995},{"name":4699,"options":5117,"isRSC":61},{"darkMode":6},{"large":5119},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5121,"component":5122,"responsiveStyles":5124},"builder-8c47ec2fd0f74382bb3e6c870555632c",{"name":4761,"tag":4761,"options":5123,"isRSC":61},{"sectionHeading":29,"customClass":4763},{"large":5125},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"id":5127,"@type":47,"tagName":74,"properties":5128,"responsiveStyles":5129},"builder-pixel-tmjfvgqf6w9",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},{"large":5130},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},{"deviceSize":85,"location":5132},{"path":29,"query":5133},{},{},1770892844854,1745499166112,"https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F6ca12bf728a045f1a31d40c0beb3bfe5",[],{"kind":4783,"lastPreviewUrl":5140,"breakpoints":5141,"hasLinks":6,"originalContentId":4907,"winningTest":61,"hasAutosaves":6},"https://pushsecurity.com/uc/attack-path-hardening?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditCode%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CeditProjects%2CmodifyMcpServers%2CmodifyWorkflowIntegrations%2CmodifyProjectSettings%2CconnectCodeRepository%2CcreateProjects%2CindexDesignSystems%2CsendPullRequests&builder.user.role.name=Developer&builder.user.role.id=developer&builder.cachebust=true&builder.preview=use-case-page&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.use-case-page=23eb48fb56d3451cab77cb6ed140ee6d&builder.overrides.23eb48fb56d3451cab77cb6ed140ee6d=23eb48fb56d3451cab77cb6ed140ee6d&builder.overrides.use-case-page:/uc/attack-path-hardening=23eb48fb56d3451cab77cb6ed140ee6d&builder.options.includeRefs=true&builder.options.enrich=true&builder.options.locale=Default",{"xsmall":31,"small":32,"medium":33},{"createdDate":5143,"id":5144,"name":5145,"modelId":4607,"published":13,"query":5146,"data":5149,"variations":5254,"lastUpdated":5255,"firstPublished":5256,"testRatio":23,"screenshot":5257,"createdBy":91,"lastUpdatedBy":5019,"folders":5258,"meta":5259,"rev":4785},1761675020232,"ea4f309d2ffe46c5aa97ebf0fda4e2e3","ClickFix Protection",[5147],{"@type":4610,"property":4611,"operator":4612,"value":5148},"/uc/clickfix-protection",{"seoDescription":5150,"fontAwesomeIcon":5151,"customFonts":5152,"seoTitle":5157,"jsCode":29,"tsCode":29,"title":5157,"blocks":5158,"url":5148,"state":5251},"Block attacks that trick users into running malicious code.","faLaptopCode",[5153],{"files":5154,"subsets":5155,"menu":4642,"version":4620,"kind":4619,"family":4618,"lastModified":4621,"variants":5156,"category":4641},{"100":4623,"200":4624,"300":4625,"500":4626,"600":4627,"700":4628,"800":4629,"900":4630,"200italic":4637,"800italic":4631,"700italic":4633,"600italic":4640,"100italic":4634,"italic":4635,"regular":4636,"300italic":4639,"500italic":4638,"900italic":4632},[4644,4645],[4647,4648,4649,4650,4651,4652,71,4653,4654,4655,4656,4657,430,4658,4659,4660,4661,4662],"ClickFix protection",[5159,5246],{"@type":47,"@version":48,"tagName":4668,"id":5160,"meta":5161,"children":5162},"builder-d7eefdde0f2a4b2b9de3dcb2978fd6cb",{"previousId":5041},[5163,5179,5186,5193,5203,5213,5223,5233,5240],{"@type":47,"@version":48,"id":5164,"meta":5165,"component":5166,"responsiveStyles":5177},"builder-56e2c54bcce040a4af8b92ae03706c12",{"previousId":5045},{"name":4672,"options":5167,"isRSC":61},{"title":5157,"description":5168,"points":5169,"image":5176},"\u003Cp>ClickFix attacks are one of the fastest-growing threats, tricking users into copying malicious code from a webpage and running it locally. This technique bypasses traditional EDR, email gateways, and network filters, leading directly to ransomware and data theft. Push stops this attack at the source, in the browser, by detecting and blocking the malicious behavior before the user can ever paste the code.\u003C/p>\u003Cp>\u003Cbr>\u003C/p>",[5170,5172,5174],{"item":5171},"Detect ClickFix, FileFix, and fake CAPTCHA in the browser",{"item":5173},"Block malicious copy-and-paste actions before code is executed",{"item":5175},"See full telemetry into which users were targeted and what they saw","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F7b74af62889847ebb3927364485b0546",{"large":5178},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4687},{"@type":47,"@version":48,"id":5180,"meta":5181,"component":5182,"responsiveStyles":5184},"builder-05f9614d4e3e4dc88b3ee8658f54e10e",{"previousId":5061},{"name":4691,"options":5183,"isRSC":61},{"AllPartners":34,"backgroundTransparent":6},{"large":5185},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4695},{"@type":47,"@version":48,"id":5187,"meta":5188,"component":5189,"responsiveStyles":5191},"builder-c4fb5179366243c1b6c32d368675cf47",{"previousId":5068},{"name":4699,"options":5190,"isRSC":61},{"darkMode":34},{"large":5192},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5194,"meta":5195,"component":5196,"responsiveStyles":5201},"builder-261af50705fd445d8cca4a6ba20d5391",{"previousId":5075},{"name":4704,"tag":4704,"options":5197,"isRSC":61},{"darkMode":6,"maxWidth":4708,"maxTextWidth":4709,"title":5198,"description":5199,"reverse":6,"image":5200},"\u003Ch2>Stop ClickFix-style attacks before they become a breach\u003C/h2>","\u003Cp>Traditional security tools are blind to malicious copy and paste attacks because the attack exploits a gap between the browser and the endpoint. EDR only sees the payload after it runs, and network tools see only part of the picture.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F98b2f7e08dec4eafaf8e24937605b8cf",{"large":5202},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5204,"meta":5205,"component":5206,"responsiveStyles":5211},"builder-7d21b8aab8064c40b1e5dd23c4749309",{"previousId":5084},{"name":4718,"options":5207,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4721,"title":5208,"description":5209,"reverse":34,"image":5210},"\u003Ch2>Discover lures at the source\u003C/h2>","\u003Cp>Push inspects page behavior to identify ClickFix attacks as they happen. By inspecting the page, its structure, and how the user interacts with it, Push can detect and block these in-browser threats in real time. This deep, TTP-based inspection spots the trap even on novel pages that are built to bypass traditional web filters and blocklists.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F665bf47e01544c75bf9ddafd3917927b",{"large":5212},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"fontFamily":4727,"paddingTop":4728,"marginTop":4729},{"@type":47,"@version":48,"id":5214,"meta":5215,"component":5216,"responsiveStyles":5221},"builder-fb91943adf6149259ed9e1e6566c9afe",{"previousId":5094},{"name":4718,"options":5217,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4734,"title":5218,"description":5219,"reverse":6,"image":5220},"\u003Ch2>Block the malicious action\u003C/h2>","\u003Cp>When Push detects a malicious script, it intercepts the user's action and blocks the code from being copied to the clipboard. The user is protected, the attack is stopped, and no malicious code ever reaches the endpoint. Unlike broad DLP tools, this action is surgical, targeting only malicious behavior without disrupting normal work.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F5ee68f81f1ac416685cbfe91298cf827",{"large":5222},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4740},{"@type":47,"@version":48,"layerName":4718,"id":5224,"meta":5225,"component":5226,"responsiveStyles":5231},"builder-bfac95fada864e5a8259b955b5b5f98b",{"previousId":5104},{"name":4718,"options":5227,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4745,"title":5228,"description":5229,"reverse":34,"image":5230},"\u003Ch2>Accelerate ClickFix investigations\u003C/h2>","\u003Cp>When an attack happens, knowing what the user saw or did is critical. Push provides rich browser session data for rapid investigation and containment. Security teams get detailed telemetry on which users were targeted, what lure they were served, and when the block occurred. This enables defenders to reconstruct what happened and respond quickly, even when other tools miss the activity entirely.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F6cdf2a8aeddc4e9a9023cbf974e40239",{"large":5232},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4751},{"@type":47,"@version":48,"id":5234,"meta":5235,"component":5236,"responsiveStyles":5238},"builder-136892e831684a6987f87d3be67c33d1",{"previousId":5114},{"name":4699,"options":5237,"isRSC":61},{"darkMode":6},{"large":5239},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5241,"component":5242,"responsiveStyles":5244},"builder-dec26b739f2f42beb5a73cfc6c675b60",{"name":4761,"tag":4761,"options":5243,"isRSC":61},{"sectionHeading":29,"customClass":4763},{"large":5245},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"id":5247,"@type":47,"tagName":74,"properties":5248,"responsiveStyles":5249},"builder-pixel-nc10omfm6gi",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},{"large":5250},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},{"deviceSize":85,"location":5252},{"path":29,"query":5253},{},{},1770892881888,1761847585203,"https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F375467b8bef34ed1a8a1cc5b8b67d75f",[],{"lastPreviewUrl":5260,"originalContentId":5026,"winningTest":61,"hasLinks":6,"kind":4783,"breakpoints":5261,"hasAutosaves":6},"https://pushsecurity.com/uc/clickfix-protection?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditCode%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CeditProjects%2CmodifyMcpServers%2CmodifyWorkflowIntegrations%2CmodifyProjectSettings%2CconnectCodeRepository%2CcreateProjects%2CindexDesignSystems%2CsendPullRequests&builder.user.role.name=Developer&builder.user.role.id=developer&builder.cachebust=true&builder.preview=use-case-page&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.use-case-page=ea4f309d2ffe46c5aa97ebf0fda4e2e3&builder.overrides.ea4f309d2ffe46c5aa97ebf0fda4e2e3=ea4f309d2ffe46c5aa97ebf0fda4e2e3&builder.overrides.use-case-page:/uc/clickfix-protection=ea4f309d2ffe46c5aa97ebf0fda4e2e3&builder.options.includeRefs=true&builder.options.enrich=true&builder.options.locale=Default",{"xsmall":31,"small":32,"medium":33},{"createdDate":5263,"id":5264,"name":5265,"modelId":4607,"published":13,"query":5266,"data":5269,"variations":5374,"lastUpdated":5375,"firstPublished":5376,"testRatio":23,"screenshot":5377,"createdBy":91,"lastUpdatedBy":5019,"folders":5378,"meta":5379,"rev":4785},1745009743870,"a9d5556e77f84a37b5bd52310a7110c1","Incident response",[5267],{"@type":4610,"property":4611,"operator":4612,"value":5268},"/uc/incident-response",{"seoDescription":5270,"customFonts":5271,"title":5265,"jsCode":29,"fontAwesomeIcon":5276,"seoTitle":5277,"tsCode":29,"blocks":5278,"url":5268,"state":5371},"Investigate and respond faster with unique browser telemetry.",[5272],{"kind":4619,"subsets":5273,"menu":4642,"variants":5274,"category":4641,"family":4618,"version":4620,"lastModified":4621,"files":5275},[4644,4645],[4647,4648,4649,4650,4651,4652,71,4653,4654,4655,4656,4657,430,4658,4659,4660,4661,4662],{"100":4623,"200":4624,"300":4625,"500":4626,"600":4627,"700":4628,"800":4629,"900":4630,"900italic":4632,"600italic":4640,"200italic":4637,"300italic":4639,"100italic":4634,"700italic":4633,"800italic":4631,"regular":4636,"italic":4635,"500italic":4638},"faSatelliteDish","Browser based incident response",[5279,5366],{"@type":47,"@version":48,"tagName":4668,"id":5280,"meta":5281,"children":5282},"builder-653c4aed737b4def88dc4cd2d695660a",{"previousId":5041},[5283,5300,5307,5314,5323,5333,5343,5353,5360],{"@type":47,"@version":48,"id":5284,"meta":5285,"component":5286,"responsiveStyles":5298},"builder-18190bd36518467d9154d27d7e945b9b",{"previousId":5045},{"name":4672,"options":5287,"isRSC":61},{"title":5288,"description":5289,"points":5290,"video":5297},"Browser-based incident response","\u003Cp>Push gives you real-time visibility into what actually happened during a breach, right in the browser where the attack played out. From credential theft to session hijacking, Push captures high-fidelity telemetry so you can investigate quickly, contain confidently, and shut it down before it spreads.\u003C/p>\u003Cp>\u003Cbr>\u003C/p>",[5291,5293,5295],{"item":5292},"Reconstruct what happened with real browser session context",{"item":5294},"Investigate faster with real-world session context",{"item":5296},"Trigger response actions automatically through your SIEM or SOAR","https://cdn.builder.io/o/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fd00e39d3b6e346c296261d875cf55652%2Fcompressed?apiKey=f3a1111ff5be48cdbb123cd9f5795a05&token=d00e39d3b6e346c296261d875cf55652&alt=media&optimized=true",{"large":5299},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4687},{"@type":47,"@version":48,"id":5301,"meta":5302,"component":5303,"responsiveStyles":5305},"builder-8a0a8ea63f5d48dd8a6726f2d49cf0ca",{"previousId":5061},{"name":4691,"options":5304,"isRSC":61},{"AllPartners":34,"backgroundTransparent":6},{"large":5306},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4695},{"@type":47,"@version":48,"id":5308,"meta":5309,"component":5310,"responsiveStyles":5312},"builder-2df65c3f54334df2b26e7cb744886cdc",{"previousId":5068},{"name":4699,"options":5311,"isRSC":61},{"darkMode":34},{"large":5313},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5315,"component":5316,"responsiveStyles":5321},"builder-2c32c869efc2423ab69ef06b150e9f97",{"name":4704,"tag":4704,"options":5317,"isRSC":61},{"darkMode":6,"maxWidth":4708,"maxTextWidth":4709,"title":5318,"description":5319,"image":5320,"reverse":6},"\u003Ch2>See attacks unfold, not just their aftermath\u003C/h2>","\u003Cp>Attacks happen in the browser, not in logs. Push captures what traditional tools miss: what users clicked, what loaded, what was entered, and how attackers moved. That gives you real-world evidence, not just assumptions, when every second matters.\u003C/p>\u003Cp>\u003Cbr>\u003C/p>\u003Cp>\u003Cbr>\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F36fc719bd1de4a38b916f4d25c81a26d",{"large":5322},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5324,"meta":5325,"component":5326,"responsiveStyles":5331},"builder-370e53c6016e432db01e9193a2ce90f6",{"previousId":5084},{"name":4718,"options":5327,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4721,"title":5328,"description":5329,"reverse":34,"image":5330},"\u003Ch2>Investigate faster with high-fidelity data\u003C/h2>","\u003Cp>Reconstructing an incident shouldn’t feel like guesswork. Push records detailed telemetry from inside the browser: page loads, credential inputs, DOM changes, session activity, user behavior. It’s structured, exportable, and ready to plug into your investigation workflows, so you can move fast without digging through proxy logs or relying on user reports.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fa6adda040e684e67a8d68a55c5ce5f6d",{"large":5332},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"fontFamily":4727,"paddingTop":4729,"marginTop":4729},{"@type":47,"@version":48,"id":5334,"meta":5335,"component":5336,"responsiveStyles":5341},"builder-a7f3767a8d184bd08fb24520bf210e95",{"previousId":5094},{"name":4718,"options":5337,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4734,"title":5338,"description":5339,"reverse":6,"image":5340},"\u003Ch2>Contain and respond in real time\u003C/h2>","\u003Cp>When something looks off, Push doesn’t just alert you, it gives you options. Guide users with in-browser prompts. Terminate sessions. Trigger SOAR workflows. Enrich SIEM alerts. Push gives you the context and control to stop spread before it starts.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fb3dedeed5aba4847a2c2d22e10d0ec12",{"large":5342},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4740},{"@type":47,"@version":48,"layerName":4718,"id":5344,"meta":5345,"component":5346,"responsiveStyles":5351},"builder-b92036ee0ece4b32acdbdcc7c377366b",{"previousId":5104},{"name":4718,"options":5347,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4745,"title":5348,"description":5349,"reverse":34,"image":5350},"\u003Ch2>Prevent the next one\u003C/h2>","\u003Cp>Push helps you respond fast, but it also helps you fix what went wrong. It surfaces misconfigurations and risky behaviors that made the attack possible in the first place, then guides users in-browser to remediate. One tool. Full loop. No loose ends.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fc1ecc2d5d3814b62b072fac01827ff96",{"large":5352},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4751},{"@type":47,"@version":48,"id":5354,"meta":5355,"component":5356,"responsiveStyles":5358},"builder-5e8ae39655274de89da32ab573a2525a",{"previousId":5114},{"name":4699,"options":5357,"isRSC":61},{"darkMode":6},{"large":5359},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5361,"component":5362,"responsiveStyles":5364},"builder-dfd6850cfb4741d2b8a0c16c2780f00a",{"name":4761,"tag":4761,"options":5363,"isRSC":61},{"sectionHeading":29,"customClass":4763},{"large":5365},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"id":5367,"@type":47,"tagName":74,"properties":5368,"responsiveStyles":5369},"builder-pixel-k77rdwefz0g",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},{"large":5370},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},{"deviceSize":85,"location":5372},{"path":29,"query":5373},{},{},1770892908052,1745427419274,"https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fb07017bfd318431690a5bb35bda35b99",[],{"kind":4783,"breakpoints":5380,"originalContentId":5026,"winningTest":61,"lastPreviewUrl":5381,"hasLinks":6,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},"https://pushsecurity.com/uc/incident-response?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditCode%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CeditProjects%2CmodifyMcpServers%2CmodifyWorkflowIntegrations%2CmodifyProjectSettings%2CconnectCodeRepository%2CcreateProjects%2CindexDesignSystems%2CsendPullRequests&builder.user.role.name=Developer&builder.user.role.id=developer&builder.cachebust=true&builder.preview=use-case-page&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.use-case-page=a9d5556e77f84a37b5bd52310a7110c1&builder.overrides.a9d5556e77f84a37b5bd52310a7110c1=a9d5556e77f84a37b5bd52310a7110c1&builder.overrides.use-case-page:/uc/incident-response=a9d5556e77f84a37b5bd52310a7110c1&builder.options.includeRefs=true&builder.options.enrich=true&builder.options.locale=Default",{"createdDate":5383,"id":5384,"name":5385,"modelId":4607,"published":13,"query":5386,"data":5389,"variations":5494,"lastUpdated":5495,"firstPublished":5496,"testRatio":23,"screenshot":5497,"createdBy":91,"lastUpdatedBy":5019,"folders":5498,"meta":5499,"rev":4785},1746122471259,"5f118e24433d46ceb79f5099987156d7","Shadow SaaS",[5387],{"@type":4610,"property":4611,"operator":4612,"value":5388},"/uc/shadow-saas",{"seoTitle":5390,"seoDescription":5391,"customFonts":5392,"fontAwesomeIcon":5397,"title":5398,"jsCode":29,"tsCode":29,"blocks":5399,"url":5388,"state":5491},"Find and secure shadow SaaS","See and control shadow SaaS in the browser.",[5393],{"kind":4619,"variants":5394,"files":5395,"family":4618,"version":4620,"subsets":5396,"lastModified":4621,"category":4641,"menu":4642},[4647,4648,4649,4650,4651,4652,71,4653,4654,4655,4656,4657,430,4658,4659,4660,4661,4662],{"100":4623,"200":4624,"300":4625,"500":4626,"600":4627,"700":4628,"800":4629,"900":4630,"300italic":4639,"500italic":4638,"regular":4636,"900italic":4632,"italic":4635,"100italic":4634,"200italic":4637,"600italic":4640,"700italic":4633,"800italic":4631},[4644,4645],"faShieldCheck","Secure shadow SaaS",[5400,5486],{"@type":47,"@version":48,"tagName":4668,"id":5401,"meta":5402,"children":5403},"builder-04da805c4cd34652a2db452fcda52e1d",{"previousId":5280},[5404,5420,5427,5434,5443,5453,5463,5473,5480],{"@type":47,"@version":48,"id":5405,"meta":5406,"component":5407,"responsiveStyles":5418},"builder-830d414faeaf41439142f9157e8288c8",{"previousId":5284},{"name":4672,"options":5408,"isRSC":61},{"title":5390,"description":5409,"points":5410,"video":5417},"\u003Cp>SaaS sprawl is one of today’s fastest-growing security blind spots because most tools monitor around the edges. Push sees it at the source, in the browser, revealing every app users access, flagging risky tools, and helping you shut down exposure before it leads to a breach. No guesswork. No nasty surprises. Just real-time visibility and control.\u003C/p>",[5411,5413,5415],{"item":5412},"Discover every SaaS app users access, managed or not",{"item":5414},"Spot accounts with weak security postures like missing MFA, unmanaged access, and no SSO",{"item":5416},"Control usage with in-browser prompts, blocks, and security guardrails","https://cdn.builder.io/o/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F3e4eece318d04d6586e691d59d0741cf%2Fcompressed?apiKey=f3a1111ff5be48cdbb123cd9f5795a05&token=3e4eece318d04d6586e691d59d0741cf&alt=media&optimized=true",{"large":5419},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4687},{"@type":47,"@version":48,"id":5421,"meta":5422,"component":5423,"responsiveStyles":5425},"builder-cd7833f966cb4c7e8adf0d6c979414a6",{"previousId":5301},{"name":4691,"options":5424,"isRSC":61},{"AllPartners":34,"backgroundTransparent":6},{"large":5426},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4695},{"@type":47,"@version":48,"id":5428,"meta":5429,"component":5430,"responsiveStyles":5432},"builder-49d720b45430454e8b08c526f267c19f",{"previousId":5308},{"name":4699,"options":5431,"isRSC":61},{"darkMode":34},{"large":5433},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5435,"component":5436,"responsiveStyles":5441},"builder-3dde0bf6c8544e5e9ab41b18a9d68034",{"name":4704,"tag":4704,"options":5437,"isRSC":61},{"darkMode":6,"maxWidth":4708,"maxTextWidth":4709,"title":5438,"description":5439,"image":5440,"reverse":6},"\u003Ch2>Use your browser to curb Saas Sprawl\u003C/h2>","\u003Cp>Shadow SaaS isn’t hiding in your network, it’s in your browser. From AI tools to unsanctioned file-sharing sites, security risks live in the apps your users sign into every day. Push maps your organization's true SaaS footprint in real time, exposing apps and accounts with unmanaged access, poor authentication, or no security oversight.\u003C/p>\u003Cp>\u003Cbr>\u003C/p>\u003Cp>\u003Cbr>\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fb6811a214c7949b6bbe0b9a3bca62efd",{"large":5442},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5444,"meta":5445,"component":5446,"responsiveStyles":5451},"builder-e2420451ccdc4f088d0a4904cff45935",{"previousId":5324},{"name":4718,"options":5447,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4721,"title":5448,"description":5449,"reverse":34,"image":5450},"\u003Ch2>Discover hidden SaaS usage\u003C/h2>","\u003Cp>Push captures live browser telemetry across every tab and session. Whether a user signs into a sanctioned app with a personal account or tries a new AI plugin, you’ll see it in real time, with no integrations or manual tagging.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fe16e301f9af94665b95d98232a863d8a",{"large":5452},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"fontFamily":4727,"paddingTop":4729,"marginTop":4729},{"@type":47,"@version":48,"id":5454,"meta":5455,"component":5456,"responsiveStyles":5461},"builder-b36de7fce7994beea9e58d94662e7166",{"previousId":5334},{"name":4718,"options":5457,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4734,"title":5458,"description":5459,"reverse":6,"image":5460},"\u003Ch2>Spot risky access and unsafe usage\u003C/h2>","\u003Cp>Discovery is just the beginning. Push flags apps with risky traits, no MFA, no SSO, known vulnerabilities, or broad access scopes. You’ll know which tools introduce real risk, and which users are exposed so you can act with precision.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F6585f3c242da4d70ae3cb7d02f481bef",{"large":5462},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4740},{"@type":47,"@version":48,"layerName":4718,"id":5464,"meta":5465,"component":5466,"responsiveStyles":5471},"builder-dc366b5134684fe7a508edf8913103ea",{"previousId":5344},{"name":4718,"options":5467,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4745,"title":5468,"description":5469,"reverse":34,"image":5470},"\u003Ch2>Close gaps before they grow\u003C/h2>","\u003Cp>Push turns insight into action. When risky SaaS use is detected, guide users to enable MFA, block high-risk apps, or apply in-browser guardrails automatically. All without deploying new infrastructure or managing dozens of integrations.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Fe6d60b6d91414819bc6258a318f00557",{"large":5472},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4751},{"@type":47,"@version":48,"id":5474,"meta":5475,"component":5476,"responsiveStyles":5478},"builder-8708f6f0d8da4b3f9e17bf16cda70219",{"previousId":5354},{"name":4699,"options":5477,"isRSC":61},{"darkMode":6},{"large":5479},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5481,"component":5482,"responsiveStyles":5484},"builder-8ff4b38d60534cf28cb523ab0f754875",{"name":4761,"tag":4761,"options":5483,"isRSC":61},{"sectionHeading":29,"customClass":4763},{"large":5485},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"id":5487,"@type":47,"tagName":74,"properties":5488,"responsiveStyles":5489},"builder-pixel-qynlya8ox6",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},{"large":5490},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},{"deviceSize":85,"location":5492},{"path":29,"query":5493},{},{},1770892936802,1746714967208,"https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F01bfb2304521412fbd2e1a1180904d40",[],{"originalContentId":5264,"winningTest":61,"lastPreviewUrl":5500,"breakpoints":5501,"kind":4783,"hasLinks":6,"hasAutosaves":6},"https://pushsecurity.com/uc/shadow-saas?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditCode%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CeditProjects%2CmodifyMcpServers%2CmodifyWorkflowIntegrations%2CmodifyProjectSettings%2CconnectCodeRepository%2CcreateProjects%2CindexDesignSystems%2CsendPullRequests&builder.user.role.name=Developer&builder.user.role.id=developer&builder.cachebust=true&builder.preview=use-case-page&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.use-case-page=5f118e24433d46ceb79f5099987156d7&builder.overrides.5f118e24433d46ceb79f5099987156d7=5f118e24433d46ceb79f5099987156d7&builder.overrides.use-case-page:/uc/shadow-saas=5f118e24433d46ceb79f5099987156d7&builder.options.includeRefs=true&builder.options.enrich=true&builder.options.locale=Default",{"xsmall":31,"small":32,"medium":33},{"createdDate":5503,"id":5504,"name":5505,"modelId":4607,"published":13,"stageModifiedSincePublish":6,"query":5506,"data":5509,"variations":5615,"lastUpdated":5616,"firstPublished":5617,"testRatio":23,"screenshot":5618,"createdBy":91,"lastUpdatedBy":4778,"folders":5619,"meta":5620,"rev":4785},1764707470172,"b62629ce2f3741158d961cd10fe74b31","Shadow AI",[5507],{"@type":4610,"property":4611,"operator":4612,"value":5508},"/uc/shadow-ai",{"fontAwesomeIcon":5510,"jsCode":29,"tsCode":29,"seoTitle":5511,"title":5512,"customFonts":5513,"seoDescription":5518,"blocks":5519,"url":5508,"state":5612},"faBrainCircuit","Secure AI native and AI enhanced apps. ","Secure AI",[5514],{"family":4618,"subsets":5515,"category":4641,"files":5516,"variants":5517,"kind":4619,"lastModified":4621,"menu":4642,"version":4620},[4644,4645],{"100":4623,"200":4624,"300":4625,"500":4626,"600":4627,"700":4628,"800":4629,"900":4630,"800italic":4631,"100italic":4634,"600italic":4640,"italic":4635,"700italic":4633,"200italic":4637,"regular":4636,"900italic":4632,"300italic":4639,"500italic":4638},[4647,4648,4649,4650,4651,4652,71,4653,4654,4655,4656,4657,430,4658,4659,4660,4661,4662],"See and control AI apps in the browser.",[5520,5607],{"@type":47,"@version":48,"tagName":4668,"id":5521,"meta":5522,"children":5523},"builder-a6e5717a2c914d5695058e4ee201a05d",{"previousId":5401},[5524,5540,5547,5554,5564,5574,5584,5594,5601],{"@type":47,"@version":48,"id":5525,"meta":5526,"component":5527,"responsiveStyles":5538},"builder-3e0ed678683f4a0eb7aa00253cf263b2",{"previousId":5405},{"name":4672,"options":5528,"isRSC":61},{"title":5512,"description":5529,"points":5530,"image":5537},"\u003Cp>Every AI interaction traverses the browser. Employees use GenAI tools, connect AI apps to corporate accounts, and run agentic workflows, often outside security oversight. Push gives security teams the visibility to see what AI is doing across their environment and the controls to intervene before sensitive data leaves or access gets abused.\u003C/p>",[5531,5533,5535],{"item":5532},"Discover every AI tool and agent active across your workforce",{"item":5534},"Detect sensitive data being submitted to AI apps",{"item":5536},"Enforce AI policy directly in the browser","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F33cf153d920f4e389f3650253577cff7",{"large":5539},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4687},{"@type":47,"@version":48,"id":5541,"meta":5542,"component":5543,"responsiveStyles":5545},"builder-76968f8471d14893b8189d75b08fb426",{"previousId":5421},{"name":4691,"options":5544,"isRSC":61},{"AllPartners":34,"backgroundTransparent":6},{"large":5546},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"backgroundColor":4695},{"@type":47,"@version":48,"id":5548,"meta":5549,"component":5550,"responsiveStyles":5552},"builder-b55b9d4bc5a649d8839ce7f6c2043d95",{"previousId":5428},{"name":4699,"options":5551,"isRSC":61},{"darkMode":34},{"large":5553},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5555,"meta":5556,"component":5557,"responsiveStyles":5562},"builder-c3f38ef4d75d4989a29b5903175ed8a1",{"previousId":5435},{"name":4704,"tag":4704,"options":5558,"isRSC":61},{"darkMode":6,"maxWidth":4708,"maxTextWidth":4709,"title":5559,"description":5560,"image":5561,"reverse":6},"\u003Ch2>The browser is where AI lives\u003C/h2>","\u003Cp>AI activity doesn't happen at the network layer or the endpoint. It happens in the browser, where employees interact with AI tools, where agents execute tasks, and where sensitive data gets submitted to external services. Push captures live telemetry from inside the browser session, identifying every AI-native and AI-enhanced application in use. \u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F30b43bda6f1644c19478fb1efa20050c",{"large":5563},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5565,"meta":5566,"component":5567,"responsiveStyles":5572},"builder-90ee9cb9afc44e7f885523715bf51a53",{"previousId":5444},{"name":4718,"options":5568,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4721,"title":5569,"description":5570,"reverse":34,"image":5571},"\u003Ch2>Discover every AI tool users touch\u003C/h2>","\u003Cp>Most organisations are using far more AI than they've approved. Push identifies every AI-native and AI-enhanced application accessed across the workforce, which corporate identities are connected, and what new tools appear in the environment. Applications are categorized by risk and policy status so security teams can prioritize exposure before it becomes an incident.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F636e65ad0c4c43faa3e626c41e90d8a3",{"large":5573},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"fontFamily":4727,"paddingTop":4729,"marginTop":4729},{"@type":47,"@version":48,"id":5575,"meta":5576,"component":5577,"responsiveStyles":5582},"builder-9e44539fa53c4d8e87406036c921fc46",{"previousId":5454},{"name":4718,"options":5578,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4734,"title":5579,"description":5580,"reverse":6,"image":5581},"\u003Ch2>Prevent sensitive data from reaching the wrong AI tools\u003C/h2>","\u003Cp>Employees paste credentials, customer data, and internal documents into AI tools without realizsing the risk. Push detects sensitive data interactions in the browser in real time, including file uploads, clipboard activity, and form submissions to unsanctioned or high-risk AI applications. Controls can be applied to warn users, require policy acknowledgment, or block the interaction entirely.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F011332d42dab4a299f25ab3847741ed9",{"large":5583},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4740},{"@type":47,"@version":48,"layerName":4718,"id":5585,"meta":5586,"component":5587,"responsiveStyles":5592},"builder-44c1a891926f4bdeaaa37e90721fe6ac",{"previousId":5464},{"name":4718,"options":5588,"isRSC":61},{"darkMode":6,"maxWidth":4708,"imageMaxWidth":4720,"textPaddingTop":4745,"title":5589,"description":5590,"reverse":34,"image":5591},"\u003Ch2>Govern agentic AI permissions and activity\u003C/h2>","\u003Cp>AI agents operating in the browser can access applications, execute actions, and handle data on behalf of users, often with permissions that were never explicitly reviewed. Push surfaces agentic permissions and data flows so security teams can see what agents are doing, where they have access, and apply controls before that access is exploited or abused.\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F71549a73d0b84f1c8cb151c05e493e8d",{"large":5593},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68,"paddingTop":4751},{"@type":47,"@version":48,"id":5595,"meta":5596,"component":5597,"responsiveStyles":5599},"builder-dcc906f9cbe54dc68b3c672668e7a38f",{"previousId":5474},{"name":4699,"options":5598,"isRSC":61},{"darkMode":6},{"large":5600},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"@type":47,"@version":48,"id":5602,"component":5603,"responsiveStyles":5605},"builder-d2d64780c31b4349bc75805b23a07e38",{"name":4761,"tag":4761,"options":5604,"isRSC":61},{"sectionHeading":29,"customClass":4763},{"large":5606},{"display":64,"flexDirection":65,"position":66,"flexShrink":67,"boxSizing":68},{"id":5608,"@type":47,"tagName":74,"properties":5609,"responsiveStyles":5610},"builder-pixel-mrm5khnjrl9",{"src":76,"aria-hidden":77,"alt":29,"role":78,"width":67,"height":67},{"large":5611},{"height":67,"width":67,"display":81,"opacity":67,"overflow":82,"pointerEvents":83},{"deviceSize":85,"location":5613},{"path":29,"query":5614},{},{},1776875934687,1764950077593,"https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F6ce1c8d6242349f8b66cb3afa7885651",[],{"hasLinks":6,"winningTest":61,"originalContentId":5384,"kind":4783,"breakpoints":5621,"lastPreviewUrl":5622,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},"https://pushsecurity.com/uc/shadow-ai?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CcreateProjects%2CsendPullRequests&builder.user.role.name=Designer&builder.user.role.id=creator&builder.cachebust=true&builder.preview=use-case-page&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.use-case-page=b62629ce2f3741158d961cd10fe74b31&builder.overrides.b62629ce2f3741158d961cd10fe74b31=b62629ce2f3741158d961cd10fe74b31&builder.overrides.use-case-page:/uc/shadow-ai=b62629ce2f3741158d961cd10fe74b31&builder.options.locale=Default",{"w":5624,"h":5625,"d":5626},448,512,"M280.4 48c-3.2 0-6.3 .5-9.3 1.4L206.6 69.2C136.1 90.9 88 156.1 88 229.8l0 42.9c22.7 3.8 40 23.6 40 47.3l0 144c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 320c0-23.8 17.3-43.5 40-47.3l0-42.9C40 135 101.8 51.2 192.5 23.4L256.9 3.5c7.6-2.3 15.5-3.5 23.4-3.5 44 0 79.6 35.7 79.6 79.6l0 56.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56.4C312 62.2 297.8 48 280.4 48zM48 320l0 144 32 0 0-144-32 0zm208 24c0-71.6 55.6-127.8 89-148.1 4.3-2.6 9.6-2.6 14 0 33.5 20.3 89 76.6 89 148.1 0 32-16 80-64 112l27.3 27.3c3 3 4.7 7.1 4.7 11.3l0 1.4c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-1.4c0-4.2 1.7-8.3 4.7-11.3L320 456c-48-32-64-80-64-112zm128-32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z",{"w":5625,"h":5625,"d":5628},"M201.1 57.3c-7 5.3-9.1 10.7-9.1 14.7 0 4.2 2.4 10.1 10.4 15.6 7.8 5.3 13.6 14.6 13.6 25.6 0 17-13.8 30.7-30.7 30.7L56 144c-4.4 0-8 3.6-8 8l0 52.5c7.4-2.9 15.5-4.5 24-4.5 43.1 0 72 39.4 72 80s-28.9 80-72 80c-8.5 0-16.6-1.6-24-4.5L48 456c0 4.4 3.6 8 8 8l100.5 0c-2.9-7.4-4.5-15.5-4.5-24 0-43.1 39.4-72 80-72s80 28.9 80 72c0 8.5-1.6 16.6-4.5 24l52.5 0c4.4 0 8-3.6 8-8l0-129.3c0-17 13.8-30.7 30.7-30.7 11.1 0 20.3 5.8 25.6 13.6 5.5 8 11.4 10.4 15.6 10.4 4 0 9.5-2.1 14.7-9.1s9.3-17.9 9.3-30.9-4-23.8-9.3-30.9-10.7-9.1-14.7-9.1c-4.2 0-10.1 2.4-15.6 10.4-5.3 7.8-14.6 13.6-25.6 13.6-17 0-30.7-13.8-30.7-30.7l0-81.3c0-4.4-3.6-8-8-8l-81.3 0c-17 0-30.7-13.8-30.7-30.7 0-11.1 5.8-20.3 13.6-25.6 8-5.5 10.4-11.4 10.4-15.6 0-4-2.1-9.5-9.1-14.7S245 48 232 48 208.2 52 201.1 57.3zM172.3 18.9C188.5 6.8 209.6 0 232 0S275.5 6.8 291.7 18.9 320 49.5 320 72c0 8.6-1.8 16.7-4.9 24L360 96c30.9 0 56 25.1 56 56l0 44.9c7.3-3.1 15.4-4.9 24-4.9 22.5 0 41 12.2 53.1 28.3s18.9 37.3 18.9 59.7-6.8 43.5-18.9 59.7-30.6 28.3-53.1 28.3c-8.6 0-16.7-1.8-24-4.9l0 92.9c0 30.9-25.1 56-56 56l-78.1 0c-18.7 0-33.9-15.2-33.9-33.9 0-10.1 4.5-18.5 9.9-24.2 4.2-4.3 6.1-9.2 6.1-13.9 0-9.9-10.7-24-32-24s-32 14.1-32 24c0 4.7 1.9 9.5 6.1 13.9 5.5 5.7 9.9 14.1 9.9 24.2 0 18.7-15.2 33.9-33.9 33.9L56 512c-30.9 0-56-25.1-56-56L0 329.9c0-18.7 15.2-33.9 33.9-33.9 10.1 0 18.5 4.5 24.2 9.9 4.3 4.2 9.2 6.1 13.9 6.1 9.9 0 24-10.7 24-32s-14.1-32-24-32c-4.7 0-9.5 1.9-13.9 6.1-5.7 5.5-14.1 9.9-24.2 9.9-18.7 0-33.9-15.2-33.9-33.9L0 152c0-30.9 25.1-56 56-56l92.9 0c-3.1-7.3-4.9-15.4-4.9-24 0-22.5 12.2-41 28.3-53.1z",{"w":5624,"h":5625,"d":5630},"M102.7 96c10.4-53.7 31.9-112 68.3-112 9.6 0 19 3.9 27.5 8.2 8.2 4.1 18.4 7.8 25.5 7.8s17.3-3.7 25.5-7.8c8.5-4.3 17.9-8.2 27.5-8.2 36.4 0 57.8 58.3 68.3 112L376 96c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32c0 17-3.3 33.2-9.3 48l33.3 0c8.1 0 15.6 4 20 10.8s5.2 15.2 2.1 22.6l-31.5 74.2c48.9 31.2 81.4 86 81.4 148.5l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8c0-51.4-30.3-95.8-74.1-116.1-11.7-5.5-17-19.2-12-31.2l25.8-60.7-27.7 0c-1.1 0-2.1-.1-3.1-.2-22.6 20-52.3 32.2-84.9 32.2s-62.3-12.2-84.9-32.2c-1 .1-2.1 .2-3.1 .2l-27.7 0 25.8 60.7c5.1 11.9-.2 25.7-12 31.2-43.8 20.4-74.1 64.7-74.1 116.1l0 8c0 13.3-10.7 24-24 24S0 501.3 0 488l0-8c0-62.4 32.5-117.2 81.4-148.5L49.9 257.4c-3.2-7.4-2.4-15.9 2.1-22.6S63.9 224 72 224l33.3 0c-6-14.8-9.3-31-9.3-48l0-32-24 0c-13.3 0-24-10.7-24-24S58.7 96 72 96l30.7 0zm45.9 107c11.1 30.9 40.6 53 75.3 53s64.2-22.1 75.3-53c-5.7 3.2-12.3 5-19.3 5l-12.4 0c-16.5 0-31.1-10.6-36.3-26.2-2.3-7-12.2-7-14.5 0-5.2 15.6-19.9 26.2-36.3 26.2L168 208c-7 0-13.6-1.8-19.3-5zm44.8 133l61 0c9.7 0 17.5 7.8 17.5 17.5 0 4.2-1.5 8.2-4.2 11.4l-27.9 32.5 28.9 82.6c5.5 15.6-6.1 31.9-22.7 31.9l-44.3 0c-16.5 0-28.1-16.3-22.7-31.9l28.9-82.6-27.9-32.5c-2.7-3.2-4.2-7.2-4.2-11.4 0-9.7 7.8-17.5 17.5-17.5z",{"w":5625,"h":5625,"d":5632},"M304.8 173.3c-14.3-8.4-31-13.3-48.8-13.3-53 0-96 43-96 96s43 96 96 96 96-43 96-96l48 0c0 79.5-64.5 144-144 144s-144-64.5-144-144 64.5-144 144-144c31.1 0 59.9 9.9 83.4 26.6l45.7-45.7C349.7 64.8 304.8 48 256 48 141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208l48 0c0 141.4-114.6 256-256 256S0 397.4 0 256 114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8L463 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 273c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l65.7-65.7z",{"w":32,"h":5625,"d":5634},"M128 80l384 0c8.8 0 16 7.2 16 16l0 208 48 0 0-208c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 208 48 0 0-208c0-8.8 7.2-16 16-16zM52.8 400l534.4 0c-8.5 18.9-27.5 32-49.6 32l-435.2 0c-22.1 0-41.1-13.1-49.6-32zM25.6 352C11.5 352 0 363.5 0 377.6 0 434.2 45.8 480 102.4 480l435.2 0c56.6 0 102.4-45.8 102.4-102.4 0-14.1-11.5-25.6-25.6-25.6L25.6 352zM281 169c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-48 48c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM393 135c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z",{"w":5625,"h":5625,"d":5636},"M232 0c-13.3 0-24 10.7-24 24s10.7 24 24 24c128.1 0 232 103.9 232 232 0 13.3 10.7 24 24 24s24-10.7 24-24C512 125.4 386.6 0 232 0zM48 256c0-23 3.7-45 10.5-65.6l263 263C301 460.3 279 464 256 464 141.1 464 48 370.9 48 256zM72.8 136.8c-14.1-14.1-37.6-12-46.5 5.8-16.9 34.2-26.4 72.6-26.4 113.3 0 141.4 114.6 256 256 256 40.7 0 79.2-9.5 113.3-26.4 17.9-8.8 19.9-32.4 5.8-46.5L241 305 281 265c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L207 271 72.8 136.8zM208 120c0 13.3 10.7 24 24 24 75.1 0 136 60.9 136 136 0 13.3 10.7 24 24 24s24-10.7 24-24c0-101.6-82.4-184-184-184-13.3 0-24 10.7-24 24z",{"w":5625,"h":5625,"d":5638},"M256.1 0c4.6 0 9.2 1 13.3 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.2-263.9-213.7-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256.1 0zM73.1 127c-5.9 2.5-9.1 7.7-9 12.7 .5 91.4 38.4 249.3 186.4 320.1 3.6 1.7 7.8 1.7 11.3 0 148-70.8 185.9-228.7 186.3-320.1 0-5-3.1-10.2-9-12.7l-183-77.6-183 77.6zm240.3 34.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L249.8 330.9c-4.2 5.7-10.7 9.3-17.8 9.8s-14-2.2-18.9-7.3l-46.4-48c-9.2-9.5-9-24.7 .6-33.9 9.5-9.2 24.7-8.9 33.9 .6l26.5 27.4 85.6-117.7z",{"w":5625,"h":5625,"d":5640},"M123 58.1c9.5-33.5 40.4-58.1 77-58.1 21.8 0 41.6 8.7 56 22.9 14.4-14.1 34.2-22.9 56-22.9 36.6 0 67.4 24.6 77 58.1 47.4 9.7 83 51.6 83 101.9 0 11.3-1.8 22.2-5.1 32.3 22.7 19.1 37.1 47.7 37.1 79.7 0 23.7-8 45.6-21.3 63.1 3.5 10.4 5.3 21.4 5.3 32.9 0 54-41.2 98.5-93.9 103.5-15.6 24.3-42.9 40.5-74.1 40.5-25.2 0-48-10.6-64-27.6-16 17-38.8 27.6-64 27.6-31.1 0-58.4-16.2-74.1-40.5-52.7-5.1-93.9-49.5-93.9-103.5 0-11.5 1.9-22.5 5.3-32.9-13.4-17.5-21.3-39.4-21.3-63.1 0-32 14.5-60.6 37.1-79.7-3.3-10.2-5.1-21.1-5.1-32.3 0-50.3 35.6-92.2 83-101.9zM200 48c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24-30.9 0-56 25.1-56 56 0 10.5 2.9 20.3 7.9 28.6 3.4 5.7 4.3 12.5 2.5 18.9s-6.2 11.7-12 14.7c-18 9.3-30.3 28.1-30.3 49.8 0 16.1 6.8 30.7 17.8 40.9 7.9 7.4 9.9 19.2 4.8 28.8-4.2 7.8-6.5 16.7-6.5 26.3 0 30.9 25.1 56 56 56 1.1 0 2.2 0 3.2-.1 10.3-.6 19.8 5.5 23.6 15 5.9 14.7 20.4 25.1 37.1 25.1 20.4 0 37.2-15.3 39.7-35 .1-.6 .2-1.3 .3-1.9l0-135.1-40 0c-6.6 0-12 5.4-12 12l0 4.4c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-4.4c0-28.7 23.3-52 52-52l40 0 0-56-12.4 0c-7.6 16.5-24.3 28-43.6 28-26.5 0-48-21.5-48-48s21.5-48 48-48c19.4 0 36.1 11.5 43.6 28l12.4 0 0-76c0-17.7-14.3-32-32-32zm80 148l0 152 40 0c6.6 0 12-5.4 12-12l0-4.4c-16.5-7.6-28-24.3-28-43.6 0-26.5 21.5-48 48-48s48 21.5 48 48c0 19.4-11.5 36.1-28 43.6l0 4.4c0 28.7-23.3 52-52 52l-40 0 0 39.1c.1 .6 .2 1.2 .3 1.9 2.5 19.7 19.3 35 39.7 35 16.8 0 31.2-10.3 37.1-25.1 3.8-9.6 13.3-15.6 23.6-15 1.1 .1 2.2 .1 3.2 .1 30.9 0 56-25.1 56-56 0-9.5-2.4-18.5-6.5-26.3-5.1-9.6-3.1-21.4 4.8-28.8 11-10.2 17.8-24.8 17.8-40.9 0-21.6-12.2-40.4-30.3-49.8-5.9-3-10.2-8.4-12-14.7s-.9-13.2 2.5-18.9c5-8.4 7.9-18.1 7.9-28.6 0-30.9-25.1-56-56-56-13.3 0-24-10.7-24-24 0-17.7-14.3-32-32-32s-32 14.3-32 32l0 76 12.4 0c7.6-16.5 24.3-28 43.6-28 26.5 0 48 21.5 48 48s-21.5 48-48 48c-19.4 0-36.1-11.5-43.6-28L280 196zm56-36a16 16 0 1 0 0 32 16 16 0 1 0 0-32zm0 128a16 16 0 1 0 32 0 16 16 0 1 0 -32 0zM144 352a16 16 0 1 0 32 0 16 16 0 1 0 -32 0zm16-176a16 16 0 1 0 32 0 16 16 0 1 0 -32 0z",1777480123983]