[{"data":1,"prerenderedAt":3045},["ShallowReactive",2],{"application-flags":3,"navbar":7,"always-visible-banner":36,"navbar-about-highlight":108,"navbar-resource-highlight":182,"blog/introducing-set-and-forget-controls-that-stop-real-world-identity-attacks":226},[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,"ga0kpxjhh76",{"createdDate":37,"id":38,"name":39,"modelId":40,"published":13,"stageModifiedSincePublish":6,"query":41,"data":42,"variations":97,"lastUpdated":98,"firstPublished":99,"testRatio":23,"createdBy":100,"lastUpdatedBy":101,"folders":102,"meta":103,"rev":107},1774965361051,"fd266d0172cc47429be7ad10f48c99ad","always visible banner","0678d178ec8b41efb8a23c09dba7874d",[],{"ctaText":43,"text":44,"url":29,"blocks":45,"state":93},"ewrererw","testrfesssssssssss",[46,73,81],{"@type":47,"@version":48,"id":49,"component":50,"responsiveStyles":63},"@builder.io/sdk:Element",2,"builder-ca12c06a52de41d7b8743da53118cd38",{"name":51,"tag":51,"options":52,"isRSC":62},"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>Meet Push's browser security experts at BlackHat 2026.\u003C/p>","text-base",{"content":60,"fontSize":58,"url":61},"\u003Cp>Book a meeting →\u003C/p>","https://pushsecurity.com/events/blackhat-2026-meeting",null,{"large":64},{"display":65,"flexDirection":66,"position":67,"flexShrink":68,"boxSizing":69,"marginTop":70,"marginBottom":70,"fontSize":71,"fontWeight":72},"flex","column","relative","0","border-box",".56rem","1.125rem","700",{"@type":47,"@version":48,"id":74,"component":75,"responsiveStyles":79},"builder-a2e1f4b9f30b464bb814d7f5de5b0aa7",{"name":76,"options":77,"isRSC":62},"Custom Code",{"code":78,"scriptsClientOnly":6},"\u003Cstyle>\n  .top-banner.bg-web-orange{background:rgb(114, 79, 255);}\n\u003C/style>\n",{"large":80},{"display":65,"flexDirection":66,"position":67,"flexShrink":68,"boxSizing":69},{"id":82,"@type":47,"tagName":83,"properties":84,"responsiveStyles":88},"builder-pixel-o503s4fpvk","img",{"src":85,"aria-hidden":86,"alt":29,"role":87,"width":68,"height":68},"https://cdn.builder.io/api/v1/pixel?apiKey=f3a1111ff5be48cdbb123cd9f5795a05","true","presentation",{"large":89},{"height":68,"width":68,"display":90,"opacity":68,"overflow":91,"pointerEvents":92},"block","hidden","none",{"deviceSize":94,"location":95},"large",{"path":29,"query":96},{},{},1783541846936,1774968080803,"ST0tXQM8slWpFrmioqKHmENB2qe2","kYgMv6WsbvfmlOUYqR2SFwGzw6e2",[],{"kind":104,"lastPreviewUrl":105,"hasLinks":6,"breakpoints":106,"hasErrors":6,"hasAutosaves":6},"component","https://pushsecurity.com/?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=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",{"xsmall":31,"small":32,"medium":33},"kyujw1aptq",[109,145],{"createdDate":110,"id":111,"name":112,"modelId":113,"published":13,"stageModifiedSincePublish":6,"query":114,"data":115,"variations":138,"lastUpdated":139,"firstPublished":140,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":141,"meta":142,"rev":144},1776247359804,"9136a8f18b3b4a6ba29b8653a99372b1","testimonial-inductive-automation","20d9eaa352304613b3d1a794b400703d",[],{"link":116,"type":117,"testimonialLink":118,"testimonial":119},{},"testimonial","/customer-stories/inductive-automation",{"@type":120,"id":121,"model":117,"value":122},"@builder.io/core:Reference","f028f2b685bb47cd8bf9e82a26dd5a79",{"query":123,"folders":124,"createdDate":125,"id":121,"name":126,"modelId":127,"published":13,"data":128,"variations":132,"lastUpdated":133,"firstPublished":134,"testRatio":23,"createdBy":100,"lastUpdatedBy":100,"meta":135,"rev":137},[],[],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":129,"jobTitle":130,"quote":126,"image":131},"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":136,"hasAutosaves":34},{"small":32,"medium":33},"e8bsg4qrgtu",{},1776247404986,1776247404973,[],{"breakpoints":143,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},"g9lqcuxphw7",{"createdDate":146,"id":147,"name":148,"modelId":113,"published":13,"meta":149,"stageModifiedSincePublish":6,"query":151,"data":152,"variations":178,"lastUpdated":179,"firstPublished":180,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":181,"rev":144},1776255761419,"05a9322735fc427db12e2740e4302300","Report: 2026 Browser Attack Techniques",{"breakpoints":150,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},[],{"testimonial":153,"link":172,"type":175,"title":148,"description":176,"image":177},{"@type":120,"id":154,"model":117,"value":155},"192acbb1f9ca4cac918c0ec435a8bae3",{"query":156,"folders":157,"createdDate":158,"id":154,"name":159,"modelId":127,"published":13,"data":160,"variations":166,"lastUpdated":167,"firstPublished":168,"testRatio":23,"createdBy":100,"lastUpdatedBy":24,"meta":169,"rev":171},[],[],1728981467463,"Push does for identity what CrowdStrike did for the endpoint",{"video":161,"jobTitle":162,"author":163,"qoute":29,"quote":164,"image":165},"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":170,"hasAutosaves":34},{"small":32,"medium":33},"ulhc0im1hfo",{"text":173,"url":174},"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,[],[183,205],{"createdDate":184,"id":185,"name":148,"modelId":186,"published":13,"meta":187,"stageModifiedSincePublish":6,"query":189,"data":190,"variations":200,"lastUpdated":201,"firstPublished":202,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":203,"rev":204},1776256900280,"1f429607996e4e5fae8fe3f9b9610e55","4829faa81e7c4ee8bd2d000e160e8d3c",{"breakpoints":188,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},[],{"testimonial":191,"link":199,"type":175,"title":148,"description":176,"image":177},{"@type":120,"id":154,"model":117,"value":192},{"query":193,"folders":194,"createdDate":158,"id":154,"name":159,"modelId":127,"published":13,"data":195,"variations":196,"lastUpdated":167,"firstPublished":168,"testRatio":23,"createdBy":100,"lastUpdatedBy":24,"meta":197,"rev":171},[],[],{"video":161,"jobTitle":162,"author":163,"qoute":29,"quote":164,"image":165},{},{"kind":28,"lastPreviewUrl":29,"breakpoints":198,"hasAutosaves":34},{"small":32,"medium":33},{"text":173,"url":174},{},1776256937553,1776256937540,[],"xggsv10v1q9",{"createdDate":206,"id":207,"name":208,"modelId":186,"published":13,"stageModifiedSincePublish":6,"query":209,"data":210,"variations":220,"lastUpdated":221,"firstPublished":222,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":223,"meta":224,"rev":204},1776256949234,"ce043785b71b4ece98eac811ecf4ba10","inductive-automation",[],{"link":211,"type":117,"testimonial":212,"testimonialLink":118},{},{"@type":120,"id":121,"model":117,"value":213},{"query":214,"folders":215,"createdDate":125,"id":121,"name":126,"modelId":127,"published":13,"data":216,"variations":217,"lastUpdated":133,"firstPublished":134,"testRatio":23,"createdBy":100,"lastUpdatedBy":100,"meta":218,"rev":137},[],[],{"author":129,"jobTitle":130,"quote":126,"image":131},{},{"kind":28,"lastPreviewUrl":29,"breakpoints":219,"hasAutosaves":34},{"small":32,"medium":33},{},1776256974140,1776256974130,[],{"breakpoints":225,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},{"id":227,"title":228,"authorsCollection":229,"content":237,"extension":1131,"faqItemsCollection":1132,"faqTitle":62,"featured":6,"hashTags":62,"meta":1134,"metaTitle":1135,"ogImage":62,"publishedDate":1136,"relatedBlogPostsCollection":1137,"slug":3021,"stem":3022,"subtitle":62,"summary":3023,"synopsis":3034,"sys":3035,"tagsCollection":3038,"__hash__":3044},"blog/blog/introducing-set-and-forget-controls-that-stop-real-world-identity-attacks.json","Introducing set-and-forget controls that stop real-world identity attacks",{"items":230},[231],{"fullName":232,"firstName":233,"jobTitle":234,"profilePicture":235},"Kelly Davenport","Kelly","Product Team",{"url":236},"https://images.ctfassets.net/y1cdw1ablpvd/1hi8bEuVfn5sF57LivAq6d/9a3b82426c697d765e2e450e33a18424/kelly_profile_pic.jpeg",{"json":238,"links":1047},{"nodeType":239,"data":240,"content":241},"document",{},[242,251,260,314,321,328,345,352,359,447,454,460,468,475,490,497,505,529,554,560,580,587,594,625,632,639,645,663,670,677,684,691,697,715,722,729,736,743,749,768,775,782,788,807,814,821,828,876,883,954,969,975,982,989,996,1003,1021,1028],{"nodeType":243,"data":244,"content":250},"embedded-entry-block",{"target":245},{"sys":246},{"id":247,"type":248,"linkType":249},"7rud2H1hcTAOhxh9zHzxP6","Link","Entry",[],{"nodeType":252,"data":253,"content":254},"paragraph",{},[255],{"nodeType":256,"value":257,"marks":258,"data":259},"text","If someone asked you where you work, you probably wouldn’t answer, “My browser.” But that would be the truth.",[],{},{"nodeType":252,"data":261,"content":262},{},[263,267,276,280,288,291,299,302,310],{"nodeType":256,"value":264,"marks":265,"data":266},"(Threat actors already know where you work, of course, and they’ve been capitalizing on the massive shift to cloud-based workforces. Just look at any of the ",[],{},{"nodeType":268,"data":269,"content":271},"hyperlink",{"uri":270},"https://www.crowdstrike.com/global-threat-report/",[272],{"nodeType":256,"value":273,"marks":274,"data":275},"latest",[],{},{"nodeType":256,"value":277,"marks":278,"data":279}," ",[],{},{"nodeType":268,"data":281,"content":283},{"uri":282},"https://redcanary.com/threat-detection-report/techniques/cloud-accounts/",[284],{"nodeType":256,"value":285,"marks":286,"data":287},"threat",[],{},{"nodeType":256,"value":277,"marks":289,"data":290},[],{},{"nodeType":268,"data":292,"content":294},{"uri":293},"https://www.verizon.com/business/resources/reports/dbir/",[295],{"nodeType":256,"value":296,"marks":297,"data":298},"research",[],{},{"nodeType":256,"value":277,"marks":300,"data":301},[],{},{"nodeType":268,"data":303,"content":305},{"uri":304},"https://www.lab539.com/blog/6-months-tracking-aitm-campaigns",[306],{"nodeType":256,"value":307,"marks":308,"data":309},"reports",[],{},{"nodeType":256,"value":311,"marks":312,"data":313}," on identity-based attacks to see how good a job they’ve been doing.)",[],{},{"nodeType":252,"data":315,"content":316},{},[317],{"nodeType":256,"value":318,"marks":319,"data":320},"To get visibility of your infrastructure in order to build a strong detection and response program, the equation used to look something like:",[],{},{"nodeType":252,"data":322,"content":323},{},[324],{"nodeType":256,"value":325,"marks":326,"data":327},"Network traffic + Logs + Endpoints = Profit!",[],{},{"nodeType":252,"data":329,"content":330},{},[331,335,341],{"nodeType":256,"value":332,"marks":333,"data":334},"But now there’s a missing piece, as identity infrastructure sprawls across IdPs, core apps, shadow SaaS and third-party integrations: ",[],{},{"nodeType":256,"value":336,"marks":337,"data":340},"Browser telemetry",[338],{"type":339},"bold",{},{"nodeType":256,"value":342,"marks":343,"data":344},".",[],{},{"nodeType":252,"data":346,"content":347},{},[348],{"nodeType":256,"value":349,"marks":350,"data":351},"As a browser agent, Push is uniquely positioned to provide telemetry you can’t easily get anywhere else. We believe that this missing piece is the key to stopping identity attacks by providing the context both for first-class detections and security controls, as well as key correlations for events you observe in traditional log sources.",[],{},{"nodeType":252,"data":353,"content":354},{},[355],{"nodeType":256,"value":356,"marks":357,"data":358},"Now we have a better way to bring Push’s data to life to solve meaningful security challenges:",[],{},{"nodeType":360,"data":361,"content":362},"unordered-list",{},[363,395],{"nodeType":364,"data":365,"content":366},"list-item",{},[367],{"nodeType":252,"data":368,"content":369},{},[370,375,379,391],{"nodeType":256,"value":371,"marks":372,"data":374},"Plug-and-play security controls",[373],{"type":339},{},{"nodeType":256,"value":376,"marks":377,"data":378},", accessible from the new ",[],{},{"nodeType":380,"data":381,"content":385},"entry-hyperlink",{"target":382},{"sys":383},{"id":384,"type":248,"linkType":249},"BtDLgVZRWQ3Ov4WgDQX1W",[386],{"nodeType":256,"value":387,"marks":388,"data":390},"Controls",[389],{"type":339},{},{"nodeType":256,"value":392,"marks":393,"data":394}," page in the Push platform",[],{},{"nodeType":364,"data":396,"content":397},{},[398],{"nodeType":252,"data":399,"content":400},{},[401,406,410,418,422,430,434,443],{"nodeType":256,"value":402,"marks":403,"data":405},"Choose-your-own-adventure tooling",[404],{"type":339},{},{"nodeType":256,"value":407,"marks":408,"data":409},", including a ",[],{},{"nodeType":268,"data":411,"content":413},{"uri":412},"https://pushsecurity.redoc.ly/rest-v1/",[414],{"nodeType":256,"value":415,"marks":416,"data":417},"REST API",[],{},{"nodeType":256,"value":419,"marks":420,"data":421},", ",[],{},{"nodeType":268,"data":423,"content":425},{"uri":424},"https://pushsecurity.redoc.ly/webhooks-v1/",[426],{"nodeType":256,"value":427,"marks":428,"data":429},"webhooks",[],{},{"nodeType":256,"value":431,"marks":432,"data":433},", and a new ",[],{},{"nodeType":268,"data":435,"content":437},{"uri":436},"/help/audience/administrators/docs/connect-to-siem-or-soar/#using-the-events-page",[438],{"nodeType":256,"value":439,"marks":440,"data":442},"Events",[441],{"type":339},{},{"nodeType":256,"value":444,"marks":445,"data":446}," page to help you visualize and build custom detections and automations.",[],{},{"nodeType":252,"data":448,"content":449},{},[450],{"nodeType":256,"value":451,"marks":452,"data":453},"Let’s take a closer look.",[],{},{"nodeType":243,"data":455,"content":459},{"target":456},{"sys":457},{"id":458,"type":248,"linkType":249},"6iKFd9Qys2SSuNqKVQB7ka",[],{"nodeType":461,"data":462,"content":463},"heading-1",{},[464],{"nodeType":256,"value":465,"marks":466,"data":467},"Plug-and-play controls",[],{},{"nodeType":252,"data":469,"content":470},{},[471],{"nodeType":256,"value":472,"marks":473,"data":474},"Security visibility without security control is a recipe for a stress headache, so we’re big believers in providing meaningful interventions that are easy to use.",[],{},{"nodeType":252,"data":476,"content":477},{},[478,482,486],{"nodeType":256,"value":479,"marks":480,"data":481},"With the new ",[],{},{"nodeType":256,"value":387,"marks":483,"data":485},[484],{"type":339},{},{"nodeType":256,"value":487,"marks":488,"data":489}," page in the Push admin console, you can now find these preconfigured detections and interventions in one place. They cover use cases that any organization can benefit from, and take a unique browser-based approach to solving some thorny issues.",[],{},{"nodeType":252,"data":491,"content":492},{},[493],{"nodeType":256,"value":494,"marks":495,"data":496},"These controls include:",[],{},{"nodeType":498,"data":499,"content":500},"heading-2",{},[501],{"nodeType":256,"value":502,"marks":503,"data":504},"Phishing tool detection",[],{},{"nodeType":252,"data":506,"content":507},{},[508,512,517,521,526],{"nodeType":256,"value":509,"marks":510,"data":511},"Detect and block when employees visit webpages that use advanced phishing tools such as Evilginx or EvilNoVNC, among others. These adversary-in-the-middle (AitM) toolkits can mimic legitimate login screens, such as an Okta login page, to steal ",[],{},{"nodeType":256,"value":513,"marks":514,"data":516},"credentials",[515],{"type":339},{},{"nodeType":256,"value":518,"marks":519,"data":520}," and ",[],{},{"nodeType":256,"value":522,"marks":523,"data":525},"MFA codes",[524],{"type":339},{},{"nodeType":256,"value":342,"marks":527,"data":528},[],{},{"nodeType":252,"data":530,"content":531},{},[532,536,541,545,550],{"nodeType":256,"value":533,"marks":534,"data":535},"Push emits a webhook event when the browser agent detects attributes of these malware. You can also set Push to ",[],{},{"nodeType":256,"value":537,"marks":538,"data":540},"Warn",[539],{"type":339},{},{"nodeType":256,"value":542,"marks":543,"data":544}," or ",[],{},{"nodeType":256,"value":546,"marks":547,"data":549},"Block",[548],{"type":339},{},{"nodeType":256,"value":551,"marks":552,"data":553}," mode to display a customizable message to end-users when they encounter a phishing site.",[],{},{"nodeType":243,"data":555,"content":559},{"target":556},{"sys":557},{"id":558,"type":248,"linkType":249},"2ylIkR0JXHkFStGuCFRjlN",[],{"nodeType":252,"data":561,"content":562},{},[563,567,577],{"nodeType":256,"value":564,"marks":565,"data":566},"More about ",[],{},{"nodeType":380,"data":568,"content":572},{"target":569},{"sys":570},{"id":571,"type":248,"linkType":249},"7KRnTSnJAbbiho69gNyN0B",[573],{"nodeType":256,"value":574,"marks":575,"data":576},"phishing tool detection",[],{},{"nodeType":256,"value":29,"marks":578,"data":579},[],{},{"nodeType":498,"data":581,"content":582},{},[583],{"nodeType":256,"value":584,"marks":585,"data":586},"SSO password protection",[],{},{"nodeType":252,"data":588,"content":589},{},[590],{"nodeType":256,"value":591,"marks":592,"data":593},"Prevent employees from reusing their corporate SSO password on any page that doesn’t belong to the identity provider, including phishing sites. This means that even if that employee was the first person to get phished using a new attacker site, Push still detects it and blocks it.",[],{},{"nodeType":252,"data":595,"content":596},{},[597,601,605,608,612,616,621],{"nodeType":256,"value":598,"marks":599,"data":600},"Customize the message that end-users see in ",[],{},{"nodeType":256,"value":537,"marks":602,"data":604},[603],{"type":339},{},{"nodeType":256,"value":542,"marks":606,"data":607},[],{},{"nodeType":256,"value":546,"marks":609,"data":611},[610],{"type":339},{},{"nodeType":256,"value":613,"marks":614,"data":615}," mode, or start out in ",[],{},{"nodeType":256,"value":617,"marks":618,"data":620},"Monitor",[619],{"type":339},{},{"nodeType":256,"value":622,"marks":623,"data":624}," mode to catch any false positives before you enforce the control.",[],{},{"nodeType":252,"data":626,"content":627},{},[628],{"nodeType":256,"value":629,"marks":630,"data":631},"This feature supports the following identity providers: Okta, Microsoft 365, Google Workspace, JumpCloud, Duo, and Ping Identity.",[],{},{"nodeType":252,"data":633,"content":634},{},[635],{"nodeType":256,"value":636,"marks":637,"data":638},"Push will also emit a webhook event when an SSO password is used, and if an employee clicks through the warning screen.",[],{},{"nodeType":243,"data":640,"content":644},{"target":641},{"sys":642},{"id":643,"type":248,"linkType":249},"25c8M2gWYFST7yYxGEji2s",[],{"nodeType":252,"data":646,"content":647},{},[648,651,660],{"nodeType":256,"value":564,"marks":649,"data":650},[],{},{"nodeType":380,"data":652,"content":656},{"target":653},{"sys":654},{"id":655,"type":248,"linkType":249},"6FYHbkcRUrtznPo7RarRsz",[657],{"nodeType":256,"value":584,"marks":658,"data":659},[],{},{"nodeType":256,"value":29,"marks":661,"data":662},[],{},{"nodeType":498,"data":664,"content":665},{},[666],{"nodeType":256,"value":667,"marks":668,"data":669},"URL blocking",[],{},{"nodeType":252,"data":671,"content":672},{},[673],{"nodeType":256,"value":674,"marks":675,"data":676},"When you find malicious sites you want to block, such as when responding to a phishing incident, add them to a blocklist and prevent other employees from accessing those sites. ",[],{},{"nodeType":252,"data":678,"content":679},{},[680],{"nodeType":256,"value":681,"marks":682,"data":683},"URL blocking can be used in tandem with Push’s anti-phishing controls, so that as you discover malicious sites, you can block them from a central blocklist. This offers a kind of herd immunity where you can block other users from visiting a malicious site as soon as you have a single incident.",[],{},{"nodeType":252,"data":685,"content":686},{},[687],{"nodeType":256,"value":688,"marks":689,"data":690},"You can programmatically manage the blocklist using the Push REST API or sync to other threat intelligence sources you consume.",[],{},{"nodeType":243,"data":692,"content":696},{"target":693},{"sys":694},{"id":695,"type":248,"linkType":249},"3m00cFiUDAnddsOBOpkeiZ",[],{"nodeType":252,"data":698,"content":699},{},[700,703,712],{"nodeType":256,"value":564,"marks":701,"data":702},[],{},{"nodeType":380,"data":704,"content":708},{"target":705},{"sys":706},{"id":707,"type":248,"linkType":249},"P0coHgQAdRL0YTu4Rwd4z",[709],{"nodeType":256,"value":667,"marks":710,"data":711},[],{},{"nodeType":256,"value":29,"marks":713,"data":714},[],{},{"nodeType":498,"data":716,"content":717},{},[718],{"nodeType":256,"value":719,"marks":720,"data":721},"Session token theft detection",[],{},{"nodeType":252,"data":723,"content":724},{},[725],{"nodeType":256,"value":726,"marks":727,"data":728},"Inject a unique marker provided by the Push browser agent into the User Agent string of sessions that occur in browsers enrolled in Push. ",[],{},{"nodeType":252,"data":730,"content":731},{},[732],{"nodeType":256,"value":733,"marks":734,"data":735},"By analyzing logs from your IdP, you can identify activity from the same session that both has the Push marker and that lacks the marker. This can only ever happen when a session is extracted from a browser and maliciously imported into a different browser.",[],{},{"nodeType":252,"data":737,"content":738},{},[739],{"nodeType":256,"value":740,"marks":741,"data":742},"This is a high-fidelity signal that a session token has been stolen and is being used.",[],{},{"nodeType":243,"data":744,"content":748},{"target":745},{"sys":746},{"id":747,"type":248,"linkType":249},"43rk3TCqN269Vr2YWT4llP",[],{"nodeType":252,"data":750,"content":751},{},[752,755,765],{"nodeType":256,"value":564,"marks":753,"data":754},[],{},{"nodeType":380,"data":756,"content":760},{"target":757},{"sys":758},{"id":759,"type":248,"linkType":249},"1UMZdjyNQt4Y7NBb2wuK4L",[761],{"nodeType":256,"value":762,"marks":763,"data":764},"session token theft detection",[],{},{"nodeType":256,"value":29,"marks":766,"data":767},[],{},{"nodeType":498,"data":769,"content":770},{},[771],{"nodeType":256,"value":772,"marks":773,"data":774},"App banners",[],{},{"nodeType":252,"data":776,"content":777},{},[778],{"nodeType":256,"value":779,"marks":780,"data":781},"Add guardrails to employees’ use of SaaS apps with in-browser app banner messages you customize with your own text. You can require users to acknowledge having read a message before they can access an app, or even require them to submit a reason for using an app before they can log in.",[],{},{"nodeType":243,"data":783,"content":787},{"target":784},{"sys":785},{"id":786,"type":248,"linkType":249},"5nEKTBz6mauHI5mg8jB4ea",[],{"nodeType":252,"data":789,"content":790},{},[791,794,804],{"nodeType":256,"value":564,"marks":792,"data":793},[],{},{"nodeType":380,"data":795,"content":799},{"target":796},{"sys":797},{"id":798,"type":248,"linkType":249},"2ZpKnuljaUH0jzVaae4SMN",[800],{"nodeType":256,"value":801,"marks":802,"data":803},"app banners",[],{},{"nodeType":256,"value":29,"marks":805,"data":806},[],{},{"nodeType":461,"data":808,"content":809},{},[810],{"nodeType":256,"value":811,"marks":812,"data":813},"Choose your own adventure",[],{},{"nodeType":252,"data":815,"content":816},{},[817],{"nodeType":256,"value":818,"marks":819,"data":820},"Want to do something creative? We've got you covered. Push provides a wealth of raw telemetry via the Push REST API and webhook events. Use this data to build both proactive and reactive security operations workflows, or add missing context to other sources, such as your IdP, application, or endpoint logs.",[],{},{"nodeType":252,"data":822,"content":823},{},[824],{"nodeType":256,"value":825,"marks":826,"data":827},"You can use this browser telemetry to:",[],{},{"nodeType":360,"data":829,"content":830},{},[831,846,861],{"nodeType":364,"data":832,"content":833},{},[834],{"nodeType":252,"data":835,"content":836},{},[837,842],{"nodeType":256,"value":838,"marks":839,"data":841},"Harden identities and reduce account compromise",[840],{"type":339},{},{"nodeType":256,"value":843,"marks":844,"data":845},", such as alerting you when passwords are identified in public data breaches or when employees are using an unapproved app or when an SSO app is accessed via local account.",[],{},{"nodeType":364,"data":847,"content":848},{},[849],{"nodeType":252,"data":850,"content":851},{},[852,857],{"nodeType":256,"value":853,"marks":854,"data":856},"Monitor for suspicious activity or high-risk changes",[855],{"type":339},{},{"nodeType":256,"value":858,"marks":859,"data":860},", such as checking for MFA method changes, or flagging when employees reuse corporate SSO passwords or visit sites running phishing malware.",[],{},{"nodeType":364,"data":862,"content":863},{},[864],{"nodeType":252,"data":865,"content":866},{},[867,872],{"nodeType":256,"value":868,"marks":869,"data":871},"Investigate indicators of compromise",[870],{"type":339},{},{"nodeType":256,"value":873,"marks":874,"data":875},", such as correlating login events with platform logs, searching for recent signups to risky apps, or identifying post-compromise lateral movement opportunities.",[],{},{"nodeType":252,"data":877,"content":878},{},[879],{"nodeType":256,"value":880,"marks":881,"data":882},"In the “make my life easier” category, you can also use Push telemetry to:",[],{},{"nodeType":360,"data":884,"content":885},{},[886,905,924,939],{"nodeType":364,"data":887,"content":888},{},[889],{"nodeType":252,"data":890,"content":891},{},[892,896,901],{"nodeType":256,"value":893,"marks":894,"data":895},"Automate a workflow ",[],{},{"nodeType":256,"value":897,"marks":898,"data":900},"showing you all the accounts and apps used by an offboarded employee",[899],{"type":339},{},{"nodeType":256,"value":902,"marks":903,"data":904},", and their account login methods.",[],{},{"nodeType":364,"data":906,"content":907},{},[908],{"nodeType":252,"data":909,"content":910},{},[911,915,920],{"nodeType":256,"value":912,"marks":913,"data":914},"Automate a workflow to",[],{},{"nodeType":256,"value":916,"marks":917,"data":919}," revoke licenses on SaaS after a period of inactivity",[918],{"type":339},{},{"nodeType":256,"value":921,"marks":922,"data":923},", saving money.",[],{},{"nodeType":364,"data":925,"content":926},{},[927],{"nodeType":252,"data":928,"content":929},{},[930,935],{"nodeType":256,"value":931,"marks":932,"data":934},"Build an approved apps list in your company wiki",[933],{"type":339},{},{"nodeType":256,"value":936,"marks":937,"data":938},", synced from Push’s source of truth.",[],{},{"nodeType":364,"data":940,"content":941},{},[942],{"nodeType":252,"data":943,"content":944},{},[945,950],{"nodeType":256,"value":946,"marks":947,"data":949},"Force-reset an IdP password if Push finds a compromised password",[948],{"type":339},{},{"nodeType":256,"value":951,"marks":952,"data":953}," on an employee account.",[],{},{"nodeType":252,"data":955,"content":956},{},[957,961,965],{"nodeType":256,"value":958,"marks":959,"data":960},"To help you visualize and plan how you will use this telemetry, Push also provides an ",[],{},{"nodeType":256,"value":439,"marks":962,"data":964},[963],{"type":339},{},{"nodeType":256,"value":966,"marks":967,"data":968}," page in the admin console with a rolling 7-day snapshot of all the events in your environment.",[],{},{"nodeType":243,"data":970,"content":974},{"target":971},{"sys":972},{"id":973,"type":248,"linkType":249},"2a3bJ5sN8dJ0c1kQtZiag7",[],{"nodeType":252,"data":976,"content":977},{},[978],{"nodeType":256,"value":979,"marks":980,"data":981},"The Events page can help you see real-world examples, understand the attributes of each event, and gauge event volume before you ingest data into a SIEM or other platform.",[],{},{"nodeType":461,"data":983,"content":984},{},[985],{"nodeType":256,"value":986,"marks":987,"data":988},"What if you don’t have a SIEM?",[],{},{"nodeType":252,"data":990,"content":991},{},[992],{"nodeType":256,"value":993,"marks":994,"data":995},"While you’d need a SIEM for writing detections and performing log correlations, you can still get a lot of value out of Push telemetry if you don’t have one.",[],{},{"nodeType":252,"data":997,"content":998},{},[999],{"nodeType":256,"value":1000,"marks":1001,"data":1002},"Use Push’s webhook events to send alerts directly to your Slack, Teams, or other chat platform, or build workflows that hook into your ticketing system or SOAR platform.",[],{},{"nodeType":252,"data":1004,"content":1005},{},[1006,1010,1017],{"nodeType":256,"value":1007,"marks":1008,"data":1009},"Review our ",[],{},{"nodeType":268,"data":1011,"content":1012},{"uri":424},[1013],{"nodeType":256,"value":1014,"marks":1015,"data":1016},"webhooks documentation",[],{},{"nodeType":256,"value":1018,"marks":1019,"data":1020}," for a list of events.",[],{},{"nodeType":461,"data":1022,"content":1023},{},[1024],{"nodeType":256,"value":1025,"marks":1026,"data":1027},"Find out more",[],{},{"nodeType":252,"data":1029,"content":1030},{},[1031,1035,1043],{"nodeType":256,"value":1032,"marks":1033,"data":1034},"If you want to see Push in action, ",[],{},{"nodeType":268,"data":1036,"content":1038},{"uri":1037},"/demo/",[1039],{"nodeType":256,"value":1040,"marks":1041,"data":1042},"book a demo",[],{},{"nodeType":256,"value":1044,"marks":1045,"data":1046},". We’ll be happy to show you these features, along with how we discover all the apps your employees are using — even the ones not behind SSO.",[],{},{"entries":1048},{"inline":1049,"hyperlink":1050,"block":1083},[],[1051,1057,1063,1068,1073,1078],{"sys":1052,"__typename":1053,"linkedFromParent":62,"title":1054,"slug":1055,"audience":1056},{"id":384},"DocumentationPage","Manage security controls","manage-security-controls","administrators",{"sys":1058,"__typename":1059,"title":1060,"slug":1061,"articleId":1062},{"id":571},"HelpArticle","Can I use Push to detect phishing tools like Evilginx, Modlishka, NakedPages, or Muraena?","can-i-use-push-to-detect-phishing-tools-like-evilnovnc-and-evilginx",10113,{"sys":1064,"__typename":1059,"title":1065,"slug":1066,"articleId":1067},{"id":655},"How does Push protect passwords from being reused or phished?","how-does-push-detect-and-prevent-phishing-attacks",10109,{"sys":1069,"__typename":1059,"title":1070,"slug":1071,"articleId":1072},{"id":707},"Can Push block users from visiting websites?","can-push-block-users-from-visiting-websites",10112,{"sys":1074,"__typename":1059,"title":1075,"slug":1076,"articleId":1077},{"id":759},"How does Push help detect session token theft?","how-does-push-help-detect-session-token-theft",10114,{"sys":1079,"__typename":1059,"title":1080,"slug":1081,"articleId":1082},{"id":798},"What can I use the app banner for? Templates and examples","what-can-i-use-the-app-banner-for-templates-and-examples",10106,[1084,1093,1100,1106,1111,1115,1119,1123],{"sys":1085,"__typename":1086,"title":1087,"youTubeUrl":1088,"imagePlaceholder":1089},{"id":247},"ExternalVideo","Introducing the Push set-and-forget controls page and events feed","https://www.youtube.com/watch?v=rdbEjLtHVeI",{"url":1090,"width":1091,"height":1092},"https://images.ctfassets.net/y1cdw1ablpvd/3erssFxQsawGjQYO1OgpaY/6dce14e1031c59a31c16fc3a4aef7052/Screenshot_2024-08-15_at_07.18.14.png",3330,1866,{"sys":1094,"__typename":1095,"type":1096,"ctaText":1097,"buttonLabel":1098,"buttonColour":1099,"buttonUrl":62},{"id":458},"CtaWidget","Demo","Learn how Push can help you secure identities across your org","Book a demo!","sunny orange",{"sys":1101,"__typename":1102,"title":1103,"arcadeDemoUrl":1104,"playText":1105},{"id":558},"ArcadeDemo","Phishing tool detection demo","https://demo.arcade.software/56g5alxkmegzjvQnZxrC?embed","1 min",{"sys":1107,"__typename":1102,"title":1108,"arcadeDemoUrl":1109,"playText":1110},{"id":643},"SSO password protection demo","https://demo.arcade.software/tydMEka88g65V2KMU018?embed","2 mins",{"sys":1112,"__typename":1102,"title":1113,"arcadeDemoUrl":1114,"playText":1110},{"id":695},"URL blocking demo","https://demo.arcade.software/A6pdxTOHjVl2BaPJ98Vj?embed",{"sys":1116,"__typename":1102,"title":1117,"arcadeDemoUrl":1118,"playText":1110},{"id":747},"Session theft detection demo","https://demo.arcade.software/ALltBFZnFbBmVFUgx7z5?embed",{"sys":1120,"__typename":1102,"title":1121,"arcadeDemoUrl":1122,"playText":1110},{"id":786},"App banners demo","https://demo.arcade.software/TlBO2p8454bN4szY4Jxq?embed",{"sys":1124,"__typename":1125,"title":1126,"caption":62,"layoutMode":62,"file":1127},{"id":973},"Image","Events page - event details - docs - Connect to SIEM or SOAR",{"url":1128,"width":1129,"height":1130},"https://images.ctfassets.net/y1cdw1ablpvd/l6JvepRcU8ZCviZaSWM4T/2b0288c3080c3aa0040de13d73f4c782/events_page_filtered_20260305.png",3016,1726,"json",{"items":1133},[],{},"Stop identity attacks with Push's security controls","2024-07-02T00:00:00.000Z",{"items":1138},[1139,1657,2523],{"__typename":1140,"sys":1141,"content":1143,"title":1639,"synopsis":1640,"hashTags":62,"publishedDate":1641,"slug":1642,"tagsCollection":1643,"authorsCollection":1653},"BlogPosts",{"id":1142},"6Uvqu6LcWzOVfA9mxtu841",{"json":1144},{"nodeType":239,"data":1145,"content":1146},{},[1147,1153,1160,1193,1200,1221,1228,1274,1281,1288,1295,1301,1308,1397,1404,1411,1434,1441,1448,1455,1462,1469,1476,1528,1535,1541,1559,1565,1572,1579,1586,1593,1600,1607,1614,1620],{"nodeType":243,"data":1148,"content":1152},{"target":1149},{"sys":1150},{"id":1151,"type":248,"linkType":249},"2HffP4X7owzpfj41jnzXmV",[],{"nodeType":252,"data":1154,"content":1155},{},[1156],{"nodeType":256,"value":1157,"marks":1158,"data":1159},"To detect session token theft, you need three things:",[],{},{"nodeType":360,"data":1161,"content":1162},{},[1163,1173,1183],{"nodeType":364,"data":1164,"content":1165},{},[1166],{"nodeType":252,"data":1167,"content":1168},{},[1169],{"nodeType":256,"value":1170,"marks":1171,"data":1172},"Robust logs that provide an identifier to help tie activity to a specific session",[],{},{"nodeType":364,"data":1174,"content":1175},{},[1176],{"nodeType":252,"data":1177,"content":1178},{},[1179],{"nodeType":256,"value":1180,"marks":1181,"data":1182},"A well-oiled SOC to correlate observed activity in those logs",[],{},{"nodeType":364,"data":1184,"content":1185},{},[1186],{"nodeType":252,"data":1187,"content":1188},{},[1189],{"nodeType":256,"value":1190,"marks":1191,"data":1192},"And telemetry to tie those logs to a trusted endpoint",[],{},{"nodeType":252,"data":1194,"content":1195},{},[1196],{"nodeType":256,"value":1197,"marks":1198,"data":1199},"The only problem? That third thing didn’t really exist. So we created it.",[],{},{"nodeType":252,"data":1201,"content":1202},{},[1203,1207,1217],{"nodeType":256,"value":1204,"marks":1205,"data":1206},"In this article, we’ll cover how Push’s recently released ",[],{},{"nodeType":268,"data":1208,"content":1210},{"uri":1209},"https://pushsecurity.com/help/10114#start",[1211],{"nodeType":256,"value":1212,"marks":1213,"data":1216},"session theft detection",[1214],{"type":1215},"underline",{},{"nodeType":256,"value":1218,"marks":1219,"data":1220}," feature works, why we built it, and why the unique control point provided by a browser agent unlocks new capabilities for blue teams fighting the effects of infostealer malware and other stolen credential-based attacks.",[],{},{"nodeType":461,"data":1222,"content":1223},{},[1224],{"nodeType":256,"value":1225,"marks":1226,"data":1227},"(You probably already know) Why this matters",[],{},{"nodeType":252,"data":1229,"content":1230},{},[1231,1235,1244,1248,1257,1261,1270],{"nodeType":256,"value":1232,"marks":1233,"data":1234},"Session token theft is a ",[],{},{"nodeType":268,"data":1236,"content":1238},{"uri":1237},"https://owasp.org/www-community/attacks/Session_hijacking_attack",[1239],{"nodeType":256,"value":1240,"marks":1241,"data":1243},"session hijacking",[1242],{"type":1215},{},{"nodeType":256,"value":1245,"marks":1246,"data":1247}," technique where endpoint malware is used to extract sessions from an endpoint, and until recently it was ",[],{},{"nodeType":268,"data":1249,"content":1251},{"uri":1250},"https://www.microsoft.com/en-us/security/blog/2022/11/16/token-tactics-how-to-prevent-detect-and-respond-to-cloud-token-theft/",[1252],{"nodeType":256,"value":1253,"marks":1254,"data":1256},"relatively rare",[1255],{"type":1215},{},{"nodeType":256,"value":1258,"marks":1259,"data":1260},". It’s easier to ",[],{},{"nodeType":268,"data":1262,"content":1264},{"uri":1263},"https://pushsecurity.com/blog/what-is-credential-stuffing/",[1265],{"nodeType":256,"value":1266,"marks":1267,"data":1269},"gain access via a password",[1268],{"type":1215},{},{"nodeType":256,"value":1271,"marks":1272,"data":1273}," than it is to steal a session cookie. ",[],{},{"nodeType":252,"data":1275,"content":1276},{},[1277],{"nodeType":256,"value":1278,"marks":1279,"data":1280},"But there’s an inverse relationship between session-based attacks and MFA adoption. As MFA becomes widespread, adversaries turn to new effective methods of initial entry.",[],{},{"nodeType":252,"data":1282,"content":1283},{},[1284],{"nodeType":256,"value":1285,"marks":1286,"data":1287},"An increasingly common approach involves the use of infostealer malware, which can extract saved credentials, browser cookies, cryptowallets, and other valuable data from the infected endpoint.",[],{},{"nodeType":252,"data":1289,"content":1290},{},[1291],{"nodeType":256,"value":1292,"marks":1293,"data":1294},"Using stolen tokens, adversaries don’t need to bypass MFA directly. They can simply import the tokens into their browser and assume an already authorized session.",[],{},{"nodeType":243,"data":1296,"content":1300},{"target":1297},{"sys":1298},{"id":1299,"type":248,"linkType":249},"66B5MBFIhbmky7VuLGbuM3",[],{"nodeType":252,"data":1302,"content":1303},{},[1304],{"nodeType":256,"value":1305,"marks":1306,"data":1307},"A few recent stats show the scope of the problem:",[],{},{"nodeType":360,"data":1309,"content":1310},{},[1311,1333,1355,1376],{"nodeType":364,"data":1312,"content":1313},{},[1314],{"nodeType":252,"data":1315,"content":1316},{},[1317,1321,1330],{"nodeType":256,"value":1318,"marks":1319,"data":1320},"Nearly half of the malware detected last year by Sophos targeted victims’ data specifically, and the majority of that malware was classified as infostealers. Source: ",[],{},{"nodeType":268,"data":1322,"content":1324},{"uri":1323},"https://news.sophos.com/en-us/2024/03/12/2024-sophos-threat-report/",[1325],{"nodeType":256,"value":1326,"marks":1327,"data":1329},"2024 Sophos Threat Report",[1328],{"type":1215},{},{"nodeType":256,"value":29,"marks":1331,"data":1332},[],{},{"nodeType":364,"data":1334,"content":1335},{},[1336],{"nodeType":252,"data":1337,"content":1338},{},[1339,1343,1352],{"nodeType":256,"value":1340,"marks":1341,"data":1342},"Information-stealing malware accounted for nearly 10 percent of activity that Red Canary was able to associate with named threats last year. They also found a rise in stealer malware targeting macOS compared to previous years. Source: ",[],{},{"nodeType":268,"data":1344,"content":1346},{"uri":1345},"https://redcanary.com/threat-detection-report/trends/info-stealers/",[1347],{"nodeType":256,"value":1348,"marks":1349,"data":1351},"2024 Red Canary Threat Detection Report",[1350],{"type":1215},{},{"nodeType":256,"value":29,"marks":1353,"data":1354},[],{},{"nodeType":364,"data":1356,"content":1357},{},[1358],{"nodeType":252,"data":1359,"content":1360},{},[1361,1365,1373],{"nodeType":256,"value":1362,"marks":1363,"data":1364},"Stolen credentials continued to rank as the top initial access method for breaches analyzed by Verizon. Source: ",[],{},{"nodeType":268,"data":1366,"content":1367},{"uri":293},[1368],{"nodeType":256,"value":1369,"marks":1370,"data":1372},"2024 Data Breach Investigations Report",[1371],{"type":1215},{},{"nodeType":256,"value":29,"marks":1374,"data":1375},[],{},{"nodeType":364,"data":1377,"content":1378},{},[1379],{"nodeType":252,"data":1380,"content":1381},{},[1382,1386,1394],{"nodeType":256,"value":1383,"marks":1384,"data":1385},"The number of token replay attacks is increasing, with Microsoft detecting 147,000 attacks in 2023, a 111% increase year-over-year. Source: ",[],{},{"nodeType":268,"data":1387,"content":1389},{"uri":1388},"https://techcommunity.microsoft.com/t5/microsoft-entra-blog/how-to-break-the-token-theft-cyber-attack-chain/ba-p/4062700",[1390],{"nodeType":256,"value":1391,"marks":1392,"data":1393},"Microsoft Blog",[],{},{"nodeType":256,"value":29,"marks":1395,"data":1396},[],{},{"nodeType":461,"data":1398,"content":1399},{},[1400],{"nodeType":256,"value":1401,"marks":1402,"data":1403},"What's missing from current defenses",[],{},{"nodeType":252,"data":1405,"content":1406},{},[1407],{"nodeType":256,"value":1408,"marks":1409,"data":1410},"When defending against infostealer malware or other forms of session and credential theft, there are a few common challenges that organizations may face:",[],{},{"nodeType":360,"data":1412,"content":1413},{},[1414,1424],{"nodeType":364,"data":1415,"content":1416},{},[1417],{"nodeType":252,"data":1418,"content":1419},{},[1420],{"nodeType":256,"value":1421,"marks":1422,"data":1423},"Their endpoint security tooling doesn’t provide complete coverage across their device fleet, though they thought it did.",[],{},{"nodeType":364,"data":1425,"content":1426},{},[1427],{"nodeType":252,"data":1428,"content":1429},{},[1430],{"nodeType":256,"value":1431,"marks":1432,"data":1433},"The malware is good enough to evade EDR detection, or it was able to execute and exfiltrate sessions or other data before it was stopped.",[],{},{"nodeType":252,"data":1435,"content":1436},{},[1437],{"nodeType":256,"value":1438,"marks":1439,"data":1440},"Existing approaches to detecting stolen sessions also pose a noisy problem. Relying on IP-based or geolocation-based signals can result in frequent false positives. (And not all identity provider logs include a session identifier that you can use to perform correlations in the first place.)",[],{},{"nodeType":252,"data":1442,"content":1443},{},[1444],{"nodeType":256,"value":1445,"marks":1446,"data":1447},"The missing piece is a trusted signal for legitimate sessions that you can use to correlate with other data in order to identify unexpected activity that indicates a compromised identity and device.",[],{},{"nodeType":461,"data":1449,"content":1450},{},[1451],{"nodeType":256,"value":1452,"marks":1453,"data":1454},"Generating unique telemetry via the browser",[],{},{"nodeType":252,"data":1456,"content":1457},{},[1458],{"nodeType":256,"value":1459,"marks":1460,"data":1461},"Push’s solution to detecting stolen sessions falls into the category of “so simple, why didn’t this already exist?”",[],{},{"nodeType":252,"data":1463,"content":1464},{},[1465],{"nodeType":256,"value":1466,"marks":1467,"data":1468},"The answer: Because you need to be in the browser to do it. The Push browser agent sits in a unique position that we can leverage to provide telemetry that otherwise would be extremely difficult to create.",[],{},{"nodeType":252,"data":1470,"content":1471},{},[1472],{"nodeType":256,"value":1473,"marks":1474,"data":1475},"Here’s how it works:",[],{},{"nodeType":360,"data":1477,"content":1478},{},[1479,1489,1499],{"nodeType":364,"data":1480,"content":1481},{},[1482],{"nodeType":252,"data":1483,"content":1484},{},[1485],{"nodeType":256,"value":1486,"marks":1487,"data":1488},"Via the Push browser agent, Push injects a unique marker into the user agent string of sessions that occur in browsers enrolled in Push.",[],{},{"nodeType":364,"data":1490,"content":1491},{},[1492],{"nodeType":252,"data":1493,"content":1494},{},[1495],{"nodeType":256,"value":1496,"marks":1497,"data":1498},"Administrators then add the list of domains where they wish to inject the marker into sessions, such as an identity provider like Okta or Microsoft.",[],{},{"nodeType":364,"data":1500,"content":1501},{},[1502],{"nodeType":252,"data":1503,"content":1504},{},[1505,1509,1515,1519,1524],{"nodeType":256,"value":1506,"marks":1507,"data":1508},"By analyzing logs from the IdP, you can identify activity from the same session that both ",[],{},{"nodeType":256,"value":1510,"marks":1511,"data":1514},"has",[1512],{"type":1513},"italic",{},{"nodeType":256,"value":1516,"marks":1517,"data":1518}," the Push marker and that ",[],{},{"nodeType":256,"value":1520,"marks":1521,"data":1523},"lacks",[1522],{"type":1513},{},{"nodeType":256,"value":1525,"marks":1526,"data":1527}," the marker. This can only ever happen when a session is extracted from a browser and maliciously imported into a different browser.",[],{},{"nodeType":252,"data":1529,"content":1530},{},[1531],{"nodeType":256,"value":1532,"marks":1533,"data":1534},"This is a high-fidelity signal that a stolen session token is in use.",[],{},{"nodeType":243,"data":1536,"content":1540},{"target":1537},{"sys":1538},{"id":1539,"type":248,"linkType":249},"3zQamWSaZFIbMUhQZtM2II",[],{"nodeType":252,"data":1542,"content":1543},{},[1544,1548,1556],{"nodeType":256,"value":1545,"marks":1546,"data":1547},"Learn more about configuring this feature in our ",[],{},{"nodeType":268,"data":1549,"content":1550},{"uri":1209},[1551],{"nodeType":256,"value":1552,"marks":1553,"data":1555},"Help Center",[1554],{"type":1215},{},{"nodeType":256,"value":342,"marks":1557,"data":1558},[],{},{"nodeType":243,"data":1560,"content":1564},{"target":1561},{"sys":1562},{"id":1563,"type":248,"linkType":249},"35dpGqNY6cTM0fSQRflLiO",[],{"nodeType":461,"data":1566,"content":1567},{},[1568],{"nodeType":256,"value":1569,"marks":1570,"data":1571},"Unlocking new capabilities for blue teams",[],{},{"nodeType":252,"data":1573,"content":1574},{},[1575],{"nodeType":256,"value":1576,"marks":1577,"data":1578},"As we’ve said before, we see browser telemetry and browser-based controls as the missing piece in security strategies to stop identity attacks — particularly for modern organizations with complex identity ecosystems that span IdPs, SaaS apps, OAuth-connected apps, and more.",[],{},{"nodeType":252,"data":1580,"content":1581},{},[1582],{"nodeType":256,"value":1583,"marks":1584,"data":1585},"Where the browser agent approach particularly shines is that it’s application-agnostic. ",[],{},{"nodeType":252,"data":1587,"content":1588},{},[1589],{"nodeType":256,"value":1590,"marks":1591,"data":1592},"As long as the app you want to monitor provides robust logs, you can inject the Push-supplied marker into any session on any app. ",[],{},{"nodeType":252,"data":1594,"content":1595},{},[1596],{"nodeType":256,"value":1597,"marks":1598,"data":1599},"This allows you to detect suspicious activity even on internal corporate assets, such as an intranet. ",[],{},{"nodeType":252,"data":1601,"content":1602},{},[1603],{"nodeType":256,"value":1604,"marks":1605,"data":1606},"A tidy side effect is that you can also use this feature to identify unmanaged devices accessing sensitive corporate internal resources because they will lack the Push browser agent-supplied marker.",[],{},{"nodeType":252,"data":1608,"content":1609},{},[1610],{"nodeType":256,"value":1611,"marks":1612,"data":1613},"There are probably a few other creative use cases for this feature, so we look forward to seeing what you come up with!",[],{},{"nodeType":461,"data":1615,"content":1616},{},[1617],{"nodeType":256,"value":1025,"marks":1618,"data":1619},[],{},{"nodeType":252,"data":1621,"content":1622},{},[1623,1627,1635],{"nodeType":256,"value":1624,"marks":1625,"data":1626},"To see Push in action, ",[],{},{"nodeType":268,"data":1628,"content":1630},{"uri":1629},"https://pushsecurity.com/demo/",[1631],{"nodeType":256,"value":1040,"marks":1632,"data":1634},[1633],{"type":1215},{},{"nodeType":256,"value":1636,"marks":1637,"data":1638},". We’ll be happy to show you this feature, along with how we discover all the apps your employees are using, even the ones not behind SSO, and how we detect vulnerable identities and stop identity attacks with browser-based controls.",[],{},"Introducing session token theft detection: Why browser is best","Push's browser agent identifies session token theft by adding telemetry to the user agent string to create a new high-fidelity signal for your security team.","2024-06-25T00:00:00.000Z","introducing-session-token-theft-detection-why-browser-is-best",{"items":1644},[1645,1649],{"sys":1646,"name":1648},{"id":1647},"4ksQNCFeBf8H4QIORqpRLw","Detection & response",{"sys":1650,"name":1652},{"id":1651},"5jk0kqjSdSK2L0YiistQjY","Release notes",{"items":1654},[1655],{"fullName":232,"firstName":233,"jobTitle":234,"profilePicture":1656},{"url":236},{"__typename":1140,"sys":1658,"content":1660,"title":2503,"synopsis":2504,"hashTags":62,"publishedDate":2505,"slug":2506,"tagsCollection":2507,"authorsCollection":2515},{"id":1659},"7DJnckJxP4CXyXhPJJpby5",{"json":1661},{"nodeType":239,"data":1662,"content":1663},{},[1664,1671,1678,1685,1692,1699,1706,1713,1720,1727,1733,1740,1747,1754,1811,1818,1825,1845,1852,1859,1866,1899,1915,1922,1929,1936,1943,1950,1957,1977,1997,2105,2112,2132,2139,2146,2153,2159,2166,2173,2180,2212,2219,2226,2259,2266,2273,2369,2388,2395,2402,2409,2416,2474,2481,2485,2492,2497],{"nodeType":252,"data":1665,"content":1666},{},[1667],{"nodeType":256,"value":1668,"marks":1669,"data":1670},"Phishing attacks have always been a go-to technique for both red teamers and real-world threat actors alike. Whether focused on harvesting creds or running malicious payloads, phishing has continued to be adapted to circumvent defenses and has remained highly effective due to this.",[],{},{"nodeType":252,"data":1672,"content":1673},{},[1674],{"nodeType":256,"value":1675,"marks":1676,"data":1677},"As MFA has become more common, classic password harvesting focused phishing attacks have become less effective. Typically, for a full account compromise, an MFA push notification or a one-time passcode (OTP) needs to be entered at the time of login. This means harvesting passwords and using them later is no longer effective alone, because an MFA factor is still required each time a valid login is performed.",[],{},{"nodeType":252,"data":1679,"content":1680},{},[1681],{"nodeType":256,"value":1682,"marks":1683,"data":1684},"Adversary-in-the-Middle (AitM) phishing is a newer variant of phishing that allows attackers to circumvent MFA protection. In this article, we’re going to look at what AitM phishing is, how it works, and what you can do about it.",[],{},{"nodeType":461,"data":1686,"content":1687},{},[1688],{"nodeType":256,"value":1689,"marks":1690,"data":1691},"What is AitM phishing?",[],{},{"nodeType":252,"data":1693,"content":1694},{},[1695],{"nodeType":256,"value":1696,"marks":1697,"data":1698},"AitM phishing is a technique that uses dedicated tooling to act as a proxy between the target and a legitimate login portal for an application, principally to make it easier to defeat MFA protection. ",[],{},{"nodeType":252,"data":1700,"content":1701},{},[1702],{"nodeType":256,"value":1703,"marks":1704,"data":1705},"While any login portal can be a target, attackers typically look for SSO login portals such as Microsoft Entra, Okta, or Google Workspace. This allows the target to log in successfully with a legitimate service they use and even continue to interact with it, while providing additional access to connected SSO apps if the attack is successful. ",[],{},{"nodeType":252,"data":1707,"content":1708},{},[1709],{"nodeType":256,"value":1710,"marks":1711,"data":1712},"As it’s a proxy to the real application, the page will appear exactly as the user expects, because they are logging into the legitimate site – just taking a detour via the attacker’s device. For example, if accessing their webmail, the user will see all their real emails; if accessing their cloud file store then all their real files will be present, etc. This gives the method an increased sense of authenticity and makes the compromise less obvious to the user. However, because the attacker is sitting in the middle of this connection, they are able to observe all interactions and also take control of the authenticated session to gain control of the user account. ",[],{},{"nodeType":252,"data":1714,"content":1715},{},[1716],{"nodeType":256,"value":1717,"marks":1718,"data":1719},"While this access is technically temporary, since the attacker is unable to re-authenticate in future without additional MFA prompts, in practice authenticated sessions can often last as long as 30 days or more if kept active. Additionally, there are a wide range of persistence techniques that allow an attacker to maintain some level of access to the user account and/or targeted application indefinitely. ",[],{},{"nodeType":252,"data":1721,"content":1722},{},[1723],{"nodeType":256,"value":1724,"marks":1725,"data":1726},"We’ll revisit this point later, but for now let’s consider the two main techniques that are used to implement AitM phishing: Reverse web proxies and Browser-in-the-Middle techniques.",[],{},{"nodeType":243,"data":1728,"content":1732},{"target":1729},{"sys":1730},{"id":1731,"type":248,"linkType":249},"6WEolDcviadCgAW4dCgTPW",[],{"nodeType":498,"data":1734,"content":1735},{},[1736],{"nodeType":256,"value":1737,"marks":1738,"data":1739},"Reverse web proxy techniques",[],{},{"nodeType":252,"data":1741,"content":1742},{},[1743],{"nodeType":256,"value":1744,"marks":1745,"data":1746},"One common AitM phishing approach is to use tooling that acts as a reverse web proxy. For example, let’s say a victim is tricked into visiting a malicious domain. Under the hood, HTTP requests are passed between the victim’s browser and the real site via the malicious site. When the malicious site receives an HTTP request, it forwards this request on to the legitimate site it is impersonating, receives the response, and then forwards that on to the victim. ",[],{},{"nodeType":252,"data":1748,"content":1749},{},[1750],{"nodeType":256,"value":1751,"marks":1752,"data":1753},"In practice, there are many technical challenges, such as rewriting all links and references to the impersonated site to ensure everything continues to be sent to the attacker. However, at a high level, it really is just acting as a reverse web proxy.",[],{},{"nodeType":252,"data":1755,"content":1756},{},[1757,1761,1770,1773,1782,1786,1795,1799,1808],{"nodeType":256,"value":1758,"marks":1759,"data":1760},"This is arguably the most scalable and reliable approach from an attacker’s point of view. Open-source tools that demonstrate this method include ",[],{},{"nodeType":268,"data":1762,"content":1764},{"uri":1763},"https://github.com/drk1wi/Modlishka",[1765],{"nodeType":256,"value":1766,"marks":1767,"data":1769},"Modlishka",[1768],{"type":1215},{},{"nodeType":256,"value":419,"marks":1771,"data":1772},[],{},{"nodeType":268,"data":1774,"content":1776},{"uri":1775},"https://github.com/muraenateam/muraena",[1777],{"nodeType":256,"value":1778,"marks":1779,"data":1781},"Muraena",[1780],{"type":1215},{},{"nodeType":256,"value":1783,"marks":1784,"data":1785},", and the ever popular ",[],{},{"nodeType":268,"data":1787,"content":1789},{"uri":1788},"https://github.com/kgretzky/evilginx2",[1790],{"nodeType":256,"value":1791,"marks":1792,"data":1794},"Evilginx",[1793],{"type":1215},{},{"nodeType":256,"value":1796,"marks":1797,"data":1798},". In the criminal world, there are also similar private toolsets available that have been used in many breaches in the past. A good example of this would be ",[],{},{"nodeType":268,"data":1800,"content":1802},{"uri":1801},"https://www.bleepingcomputer.com/news/security/evilproxy-uses-indeedcom-open-redirect-for-microsoft-365-phishing/",[1803],{"nodeType":256,"value":1804,"marks":1805,"data":1807},"Evilproxy",[1806],{"type":1215},{},{"nodeType":256,"value":342,"marks":1809,"data":1810},[],{},{"nodeType":252,"data":1812,"content":1813},{},[1814],{"nodeType":256,"value":1815,"marks":1816,"data":1817},"One downside to this approach is that there are controls that can be put in place to block it. For example, application developers can hide obfuscated JavaScript code that will fail if the correct value is not produced, checking that the origin matches the expected (legitimate) domains or contains encrypted tokens including this material sent as part of the login process. ",[],{},{"nodeType":252,"data":1819,"content":1820},{},[1821],{"nodeType":256,"value":1822,"marks":1823,"data":1824},"While your average small website is not going to be implementing such checks, major identity providers have a strong vested interest in evolving their defenses to block these techniques. At this point, it’s a cat-and-mouse game. ",[],{},{"nodeType":252,"data":1826,"content":1827},{},[1828,1832,1841],{"nodeType":256,"value":1829,"marks":1830,"data":1831},"If you want to know more about this space, then definitely check out ",[],{},{"nodeType":268,"data":1833,"content":1835},{"uri":1834},"https://www.youtube.com/watch?v=C-Fh4sIdY8c",[1836],{"nodeType":256,"value":1837,"marks":1838,"data":1840},"Kuba Gretzky’s talk on this at x33fcon",[1839],{"type":1215},{},{"nodeType":256,"value":1842,"marks":1843,"data":1844},".  ",[],{},{"nodeType":498,"data":1846,"content":1847},{},[1848],{"nodeType":256,"value":1849,"marks":1850,"data":1851},"Browser-in-the-Middle (BitM) techniques ",[],{},{"nodeType":252,"data":1853,"content":1854},{},[1855],{"nodeType":256,"value":1856,"marks":1857,"data":1858},"Another common approach is known as Browser-in-the-Middle (BitM). Rather than act as a reverse web proxy, this technique tricks a target into directly controlling the attacker’s own browser remotely using desktop screen sharing and control approaches, much like VNC and RDP. This enables the attacker to harvest not just the username and password, but all other associated secrets and tokens that go along with the login. ",[],{},{"nodeType":252,"data":1860,"content":1861},{},[1862],{"nodeType":256,"value":1863,"marks":1864,"data":1865},"In this case, the victim isn’t interacting with a fake website clone or proxy. They are literally remotely controlling the attacker’s browser to log in to the legitimate application without realizing. This is the virtual equivalent of an attacker handing their laptop to their victim, asking them to login to Okta for them, and then taking their laptop back afterwards. Thanks very much!",[],{},{"nodeType":252,"data":1867,"content":1868},{},[1869,1873,1882,1886,1895],{"nodeType":256,"value":1870,"marks":1871,"data":1872},"Practically speaking, the most common approach for implementing this technique is using the open-source project noVNC, which is a JavaScript-based VNC client that allows VNC to be used in the browser. Probably the most well-known example of an offensive tool implementing this is ",[],{},{"nodeType":268,"data":1874,"content":1876},{"uri":1875},"https://github.com/JoelGMSec/EvilnoVNC",[1877],{"nodeType":256,"value":1878,"marks":1879,"data":1881},"EvilnoVNC",[1880],{"type":1215},{},{"nodeType":256,"value":1883,"marks":1884,"data":1885},", which spins up Docker instances of VNC and proxies access to them, while also logging keystrokes and cookies to facilitate account compromise. Tools like ",[],{},{"nodeType":268,"data":1887,"content":1889},{"uri":1888},"https://posts.specterops.io/phishing-with-dynamite-7d33d8fac038",[1890],{"nodeType":256,"value":1891,"marks":1892,"data":1894},"Cuddlephish",[1893],{"type":1215},{},{"nodeType":256,"value":1896,"marks":1897,"data":1898}," offer similar functionality using WebRTC. ",[],{},{"nodeType":252,"data":1900,"content":1901},{},[1902,1906,1911],{"nodeType":256,"value":1903,"marks":1904,"data":1905},"The advantage of this approach is that ",[],{},{"nodeType":256,"value":1907,"marks":1908,"data":1910},"it is incredibly difficult for the target websites to do anything to stop it",[1909],{"type":339},{},{"nodeType":256,"value":1912,"marks":1913,"data":1914},". From their perspective, all they see is a legitimate browser accessing their website and logging in. None of the JavaScript tricks for checking the origin will work. They aren’t in a position to be able to see that the browser is secretly being controlled remotely by the victim user without their knowledge. ",[],{},{"nodeType":252,"data":1916,"content":1917},{},[1918],{"nodeType":256,"value":1919,"marks":1920,"data":1921},"On the downside, while noVNC can be extremely convincing, the illusion can sometimes be broken due to it not behaving exactly like a real website would due it being a graphical rendering. For example, something as simple as resizing the browser window can introduce render resolution issues. It’s also more difficult to scale for attacking large numbers of users than a reverse proxy technique.",[],{},{"nodeType":252,"data":1923,"content":1924},{},[1925],{"nodeType":256,"value":1926,"marks":1927,"data":1928},"Footnote: BitM is not to be confused with Browser-in-the-Browser (BitB), which is more of a malicious pop-up (think when a login button spawns a new browser window). ",[],{},{"nodeType":461,"data":1930,"content":1931},{},[1932],{"nodeType":256,"value":1933,"marks":1934,"data":1935},"Beyond initial access",[],{},{"nodeType":252,"data":1937,"content":1938},{},[1939],{"nodeType":256,"value":1940,"marks":1941,"data":1942},"So maybe you’re thinking now “OK, sounds kinda bad, but I’m not that worried. Maybe some user accounts get compromised by this method despite all my MFA protections, but at least the attacker only has temporary access, right?” ",[],{},{"nodeType":252,"data":1944,"content":1945},{},[1946],{"nodeType":256,"value":1947,"marks":1948,"data":1949},"In theory, access is temporary as sessions time out. And if spotted, the security team can respond by killing the authenticated sessions and forcing password changes for the compromised users. Then the attacker is back to square one, right? Their session is lost, they still don’t have MFA, and even the password they keylogged has now been changed.",[],{},{"nodeType":252,"data":1951,"content":1952},{},[1953],{"nodeType":256,"value":1954,"marks":1955,"data":1956},"In practice, it’s not this simple. We mentioned earlier how SSO portals are often the most common targets for these attacks. For most modern organizations, this means their core identity provider, which just so happens to be the gateway to accessing many other web applications, whether internal applications or a multitude of SaaS applications. ",[],{},{"nodeType":252,"data":1958,"content":1959},{},[1960,1964,1973],{"nodeType":256,"value":1961,"marks":1962,"data":1963},"Let’s consider the example of an organization using Okta where their Okta login portal has been used as the target for AitM phishing. A smart attacker is going to immediately leverage this access to establish authenticated sessions on every single application that Okta provides the user access to. They are also going to ",[],{},{"nodeType":268,"data":1965,"content":1967},{"uri":1966},"https://pushsecurity.com/blog/okta-swa/",[1968],{"nodeType":256,"value":1969,"marks":1970,"data":1972},"abuse Okta SWA",[1971],{"type":1215},{},{"nodeType":256,"value":1974,"marks":1975,"data":1976}," to steal valid credentials for whichever applications support this method. And if that’s not enough, there are a variety of simple methods to achieve persistence on most downstream SaaS applications and sometimes even identity providers themselves.",[],{},{"nodeType":252,"data":1978,"content":1979},{},[1980,1984,1993],{"nodeType":256,"value":1981,"marks":1982,"data":1983},"While the full details of these persistence attacks are outside the scope of this article, more details on some key attacks can be found in a resource we created called the ",[],{},{"nodeType":268,"data":1985,"content":1987},{"uri":1986},"https://github.com/pushsecurity/saas-attacks",[1988],{"nodeType":256,"value":1989,"marks":1990,"data":1992},"SaaS attacks matrix",[1991],{"type":1215},{},{"nodeType":256,"value":1994,"marks":1995,"data":1996},". Some of the most common techniques that apply here are: ",[],{},{"nodeType":360,"data":1998,"content":1999},{},[2000,2021,2042,2063,2084],{"nodeType":364,"data":2001,"content":2002},{},[2003],{"nodeType":252,"data":2004,"content":2005},{},[2006,2009,2018],{"nodeType":256,"value":29,"marks":2007,"data":2008},[],{},{"nodeType":268,"data":2010,"content":2012},{"uri":2011},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/api_keys/description.md",[2013],{"nodeType":256,"value":2014,"marks":2015,"data":2017},"SAT1004 - API keys",[2016],{"type":1215},{},{"nodeType":256,"value":29,"marks":2019,"data":2020},[],{},{"nodeType":364,"data":2022,"content":2023},{},[2024],{"nodeType":252,"data":2025,"content":2026},{},[2027,2030,2039],{"nodeType":256,"value":29,"marks":2028,"data":2029},[],{},{"nodeType":268,"data":2031,"content":2033},{"uri":2032},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/link_sharing/description.md",[2034],{"nodeType":256,"value":2035,"marks":2036,"data":2038},"SAT1022 - Link sharing",[2037],{"type":1215},{},{"nodeType":256,"value":29,"marks":2040,"data":2041},[],{},{"nodeType":364,"data":2043,"content":2044},{},[2045],{"nodeType":252,"data":2046,"content":2047},{},[2048,2051,2060],{"nodeType":256,"value":29,"marks":2049,"data":2050},[],{},{"nodeType":268,"data":2052,"content":2054},{"uri":2053},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/ghost_logins/description.md",[2055],{"nodeType":256,"value":2056,"marks":2057,"data":2059},"SAT1017 - Ghost logins",[2058],{"type":1215},{},{"nodeType":256,"value":29,"marks":2061,"data":2062},[],{},{"nodeType":364,"data":2064,"content":2065},{},[2066],{"nodeType":252,"data":2067,"content":2068},{},[2069,2072,2081],{"nodeType":256,"value":29,"marks":2070,"data":2071},[],{},{"nodeType":268,"data":2073,"content":2075},{"uri":2074},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/oauth_tokens/description.md",[2076],{"nodeType":256,"value":2077,"marks":2078,"data":2080},"SAT1027 - OAuth tokens",[2079],{"type":1215},{},{"nodeType":256,"value":29,"marks":2082,"data":2083},[],{},{"nodeType":364,"data":2085,"content":2086},{},[2087],{"nodeType":252,"data":2088,"content":2089},{},[2090,2093,2102],{"nodeType":256,"value":29,"marks":2091,"data":2092},[],{},{"nodeType":268,"data":2094,"content":2096},{"uri":2095},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/shadow_workflows/description.md",[2097],{"nodeType":256,"value":2098,"marks":2099,"data":2101},"SAT1033 - Shadow workflows",[2100],{"type":1215},{},{"nodeType":256,"value":29,"marks":2103,"data":2104},[],{},{"nodeType":252,"data":2106,"content":2107},{},[2108],{"nodeType":256,"value":2109,"marks":2110,"data":2111},"Suddenly, containing the breach just got a LOT more complicated.",[],{},{"nodeType":252,"data":2113,"content":2114},{},[2115,2119,2128],{"nodeType":256,"value":2116,"marks":2117,"data":2118},"It’s not just application-level lateral movement and persistence to worry about, though. It’s possible the attacker can start moving laterally across other user accounts. If they have selected their targets well, they might even find they have admin access to some downstream SaaS application that has been configured for SAML logins using Okta. For example, maybe they compromise a finance employee who has admin access to their business expenses SaaS application. Then the attacker might be able to use a new technique like ",[],{},{"nodeType":268,"data":2120,"content":2122},{"uri":2121},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/samljacking/description.md",[2123],{"nodeType":256,"value":2124,"marks":2125,"data":2127},"SAMLjacking",[2126],{"type":1215},{},{"nodeType":256,"value":2129,"marks":2130,"data":2131}," to start attacking other users in a watering hole attack to achieve lateral movement.",[],{},{"nodeType":461,"data":2133,"content":2134},{},[2135],{"nodeType":256,"value":2136,"marks":2137,"data":2138},"Video demo – chaining it all together",[],{},{"nodeType":252,"data":2140,"content":2141},{},[2142],{"nodeType":256,"value":2143,"marks":2144,"data":2145},"OK, so we’ve just jumped from an account compromise for initial access using an AitM phishing attack to bringing up a huge number of other connected techniques. Let’s look at a quick video demonstration of an AitM phishing attack chained together with post-exploitation steps for persistence and lateral movement so we can see how it all fits together.",[],{},{"nodeType":252,"data":2147,"content":2148},{},[2149],{"nodeType":256,"value":2150,"marks":2151,"data":2152},"In this case, we’ll use EvilnoVNC targeting Okta as the core example for the AitM phishing attack:",[],{},{"nodeType":243,"data":2154,"content":2158},{"target":2155},{"sys":2156},{"id":2157,"type":248,"linkType":249},"QGTEWzmOL1vrgjXPuV4Gg",[],{"nodeType":252,"data":2160,"content":2161},{},[2162],{"nodeType":256,"value":2163,"marks":2164,"data":2165},"We can see here that AitM phishing attacks are not only highly effective even in the presence of MFA, but that post-exploitation steps have become so numerous that effective response and containment for even a low-privileged user account are now a significant challenge.",[],{},{"nodeType":461,"data":2167,"content":2168},{},[2169],{"nodeType":256,"value":2170,"marks":2171,"data":2172},"Post-exploitation automation is coming",[],{},{"nodeType":252,"data":2174,"content":2175},{},[2176],{"nodeType":256,"value":2177,"marks":2178,"data":2179},"There is a saying that attacks only become more effective over time. In the past, toolsets like Metasploit and Cobalt Strike became increasingly focused on post-exploitation and automation to enable much more sophisticated compromises.",[],{},{"nodeType":252,"data":2181,"content":2182},{},[2183,2187,2199,2203,2208],{"nodeType":256,"value":2184,"marks":2185,"data":2186},"As AitM becomes increasingly popular (for example, researchers at Lab539 have reported ",[],{},{"nodeType":268,"data":2188,"content":2189},{"uri":304},[2190,2195],{"nodeType":256,"value":2191,"marks":2192,"data":2194},"a significant ramp up in attacker infrastructure linked to AitM campaigns",[2193],{"type":1215},{},{"nodeType":256,"value":2196,"marks":2197,"data":2198},")",[],{},{"nodeType":256,"value":2200,"marks":2201,"data":2202}," it’s only a matter of time now before we see AitM phishing frameworks moving in the same direction and performing many of the lateral movement and persistence steps we saw above – automatically on every successful account compromise. The threat will increase ",[],{},{"nodeType":256,"value":2204,"marks":2205,"data":2207},"significantly",[2206],{"type":339},{},{"nodeType":256,"value":2209,"marks":2210,"data":2211}," when this becomes the case.",[],{},{"nodeType":461,"data":2213,"content":2214},{},[2215],{"nodeType":256,"value":2216,"marks":2217,"data":2218},"Impact summary",[],{},{"nodeType":252,"data":2220,"content":2221},{},[2222],{"nodeType":256,"value":2223,"marks":2224,"data":2225},"We’ve covered a lot of ground here, so let’s take a step back and consider the key points of impact:",[],{},{"nodeType":360,"data":2227,"content":2228},{},[2229,2239,2249],{"nodeType":364,"data":2230,"content":2231},{},[2232],{"nodeType":252,"data":2233,"content":2234},{},[2235],{"nodeType":256,"value":2236,"marks":2237,"data":2238},"AitM phishing techniques are highly effective and increasingly common, and can bypass most common forms of MFA.",[],{},{"nodeType":364,"data":2240,"content":2241},{},[2242],{"nodeType":252,"data":2243,"content":2244},{},[2245],{"nodeType":256,"value":2246,"marks":2247,"data":2248},"These techniques are being used by real threat actors and red teamers alike, with both criminal and open-source tools available for performing these attacks.",[],{},{"nodeType":364,"data":2250,"content":2251},{},[2252],{"nodeType":252,"data":2253,"content":2254},{},[2255],{"nodeType":256,"value":2256,"marks":2257,"data":2258},"There are many options for lateral movement and persistence after an account compromise, so simple containment actions like password resets for SSO credentials are not nearly enough to contain a knowledgeable attacker.",[],{},{"nodeType":461,"data":2260,"content":2261},{},[2262],{"nodeType":256,"value":2263,"marks":2264,"data":2265},"What can blue teams do about it?",[],{},{"nodeType":252,"data":2267,"content":2268},{},[2269],{"nodeType":256,"value":2270,"marks":2271,"data":2272},"It’s important that organizations develop their capability to detect and respond to AitM attacks. Possible approaches include:",[],{},{"nodeType":360,"data":2274,"content":2275},{},[2276,2291,2326,2354],{"nodeType":364,"data":2277,"content":2278},{},[2279],{"nodeType":252,"data":2280,"content":2281},{},[2282,2287],{"nodeType":256,"value":2283,"marks":2284,"data":2286},"Move to FIDO MFA where possible",[2285],{"type":339},{},{"nodeType":256,"value":2288,"marks":2289,"data":2290}," (though, if no more susceptible backup methods are enabled, this does introduce operational challenges if passkeys are lost).",[],{},{"nodeType":364,"data":2292,"content":2293},{},[2294],{"nodeType":252,"data":2295,"content":2296},{},[2297,2302,2305,2310,2314,2323],{"nodeType":256,"value":2298,"marks":2299,"data":2301},"Detect and block known-bad malicious",[2300],{"type":339},{},{"nodeType":256,"value":277,"marks":2303,"data":2304},[],{},{"nodeType":256,"value":2306,"marks":2307,"data":2309},"sites",[2308],{"type":339},{},{"nodeType":256,"value":2311,"marks":2312,"data":2313}," used in phishing campaigns. There are many threat intelligence feeds that can be ingested to achieve this. Usually, a domain has to be used in a malicious campaign before it can be catalogued – meaning there's typically a window of opportunity before the infrastructure is burned. That said, security researchers at Lab539 (yes, another shout out) have developed a way of identifying sites running AitM tooling – even before they are used for the first time. ",[],{},{"nodeType":268,"data":2315,"content":2317},{"uri":2316},"https://www.lab539.com/aitm",[2318],{"nodeType":256,"value":2319,"marks":2320,"data":2322},"You can sign up to get access to their feed here.",[2321],{"type":1215},{},{"nodeType":256,"value":29,"marks":2324,"data":2325},[],{},{"nodeType":364,"data":2327,"content":2328},{},[2329],{"nodeType":252,"data":2330,"content":2331},{},[2332,2337,2341,2350],{"nodeType":256,"value":2333,"marks":2334,"data":2336},"Introduce controls to detect phishing toolkits and cloned websites",[2335],{"type":339},{},{"nodeType":256,"value":2338,"marks":2339,"data":2340},". You can never rely on blocking malicious sites via TI feeds alone, so additional layers of defence are required. Push customers benefit from detection of AitM toolkits like Evilginx and EvilNoVNC in the browser (more to come on this soon!), while Thinkst Canary has developed ",[],{},{"nodeType":268,"data":2342,"content":2344},{"uri":2343},"https://blog.thinkst.com/2024/01/defending-against-the-attack-of-the-cloned-websites.html",[2345],{"nodeType":256,"value":2346,"marks":2347,"data":2349},"methods of detecting whenever your website or login portal is cloned",[2348],{"type":1215},{},{"nodeType":256,"value":2351,"marks":2352,"data":2353}," – very cool.  ",[],{},{"nodeType":364,"data":2355,"content":2356},{},[2357],{"nodeType":252,"data":2358,"content":2359},{},[2360,2365],{"nodeType":256,"value":2361,"marks":2362,"data":2364},"Update IR playbooks to to deal with SSO account compromise,",[2363],{"type":339},{},{"nodeType":256,"value":2366,"marks":2367,"data":2368}," factoring in lateral movement and persistence across cloud apps. This really necessitates that you understand what business apps your organization is using, how they are accessed (e.g. SSO or username and password) and what functionality exists that could be abused by an attacker. ",[],{},{"nodeType":252,"data":2370,"content":2371},{},[2372,2376,2384],{"nodeType":256,"value":2373,"marks":2374,"data":2375},"If you want to know more about how Push detects and blocks phishing tools in the browser, you can ",[],{},{"nodeType":268,"data":2377,"content":2379},{"uri":2378},"https://pushsecurity.com/blog/introducing-aitm-phishing-toolkit-detection-powered-by-the-push-browser/",[2380],{"nodeType":256,"value":2381,"marks":2382,"data":2383},"check out our article here",[],{},{"nodeType":256,"value":2385,"marks":2386,"data":2387},". ",[],{},{"nodeType":461,"data":2389,"content":2390},{},[2391],{"nodeType":256,"value":2392,"marks":2393,"data":2394},"Conclusion",[],{},{"nodeType":252,"data":2396,"content":2397},{},[2398],{"nodeType":256,"value":2399,"marks":2400,"data":2401},"We’ve seen in this article how there are multiple ways to perform AitM phishing attacks and how they can be extremely effective at targeting users even when their accounts are protected by MFA.  ",[],{},{"nodeType":252,"data":2403,"content":2404},{},[2405],{"nodeType":256,"value":2406,"marks":2407,"data":2408},"Very few organizations are universally using phishing-resistant MFA, such as FIDO-based methods, and even those that do often have fallback options to handle situations where they cannot be used and/or tokens malfunction or are lost. Therefore, the vast majority of organizations are at risk of AitM phishing attacks.",[],{},{"nodeType":252,"data":2410,"content":2411},{},[2412],{"nodeType":256,"value":2413,"marks":2414,"data":2415},"To make things worse, there are lateral movement and persistence techniques that can be exploited to greatly extend the depth of compromise even for a single low-privilege user account. This makes response and containment a significant challenge.",[],{},{"nodeType":252,"data":2417,"content":2418},{},[2419,2423,2432,2435,2444,2448,2457,2461,2470],{"nodeType":256,"value":2420,"marks":2421,"data":2422},"Phishing attacks are clearly evolving. Phishing attacks are no longer limited to email-based delivery mechanisms or being hosted on custom domains. There are many options now for delivering phishing attacks using ",[],{},{"nodeType":268,"data":2424,"content":2426},{"uri":2425},"https://pushsecurity.com/blog/slack-phishing-for-initial-access/",[2427],{"nodeType":256,"value":2428,"marks":2429,"data":2431},"Slack",[2430],{"type":1215},{},{"nodeType":256,"value":542,"marks":2433,"data":2434},[],{},{"nodeType":268,"data":2436,"content":2438},{"uri":2437},"https://pushsecurity.com/blog/phishing-microsoft-teams-for-initial-access/",[2439],{"nodeType":256,"value":2440,"marks":2441,"data":2443},"Microsoft Teams",[2442],{"type":1215},{},{"nodeType":256,"value":2445,"marks":2446,"data":2447},", using ",[],{},{"nodeType":268,"data":2449,"content":2451},{"uri":2450},"https://pushsecurity.com/blog/samljacking-a-poisoned-tenant/",[2452],{"nodeType":256,"value":2453,"marks":2454,"data":2456},"SAMLjacking attacks",[2455],{"type":1215},{},{"nodeType":256,"value":2458,"marks":2459,"data":2460}," to host the initial landing page on legitimate SaaS web domains or even using ",[],{},{"nodeType":268,"data":2462,"content":2464},{"uri":2463},"https://pushsecurity.com/blog/oktajacking/",[2465],{"nodeType":256,"value":2466,"marks":2467,"data":2469},"Okta to keylog credentials",[2468],{"type":1215},{},{"nodeType":256,"value":2471,"marks":2472,"data":2473}," on behalf of the attacker. ",[],{},{"nodeType":252,"data":2475,"content":2476},{},[2477],{"nodeType":256,"value":2478,"marks":2479,"data":2480},"Increasingly, we should expect to see AitM toolkits being used as a standard part of phishing campaigns, and featured in Initial Access Broker tooling – AitM will effectively supersede legacy phishing methods in line with MFA adoption. Rather, it already is. ",[],{},{"nodeType":2482,"data":2483,"content":2484},"hr",{},[],{"nodeType":252,"data":2486,"content":2487},{},[2488],{"nodeType":256,"value":2489,"marks":2490,"data":2491},"If you're interested in seeing some more AitM tools in action, you can watch our recent webinar on-demand via the link below. ",[],{},{"nodeType":243,"data":2493,"content":2496},{"target":2494},{"sys":2495},{"id":1731,"type":248,"linkType":249},[],{"nodeType":252,"data":2498,"content":2499},{},[2500],{"nodeType":256,"value":29,"marks":2501,"data":2502},[],{},"Phishing 2.0 – how phishing toolkits are evolving with AitM","Attackers are using Adversary in the Middle (AitM) phishing toolkits to bypass MFA. We look at what AitM is, how it works, and what you can do about it.","2024-05-23T00:00:00.000Z","phishing-2-0-how-phishing-toolkits-are-evolving-with-aitm",{"items":2508},[2509,2513],{"sys":2510,"name":2512},{"id":2511},"6A5RXS31ZQx3PwryGb1IMy","Browser-based attacks",{"sys":2514,"name":1648},{"id":1647},{"items":2516},[2517],{"fullName":2518,"firstName":2519,"jobTitle":2520,"profilePicture":2521},"Luke Jennings","Luke","Vice President, R&D",{"url":2522},"https://images.ctfassets.net/y1cdw1ablpvd/4Hosb4zKi1dA0PUyDLMe1h/27e09d894861f2196ba794037986fb08/T016S22KZ96-U02NVQM7ZD4-57761d542d83-512.jpeg",{"__typename":1140,"sys":2524,"content":2526,"title":3003,"synopsis":3004,"hashTags":62,"publishedDate":3005,"slug":3006,"tagsCollection":3007,"authorsCollection":3013},{"id":2525},"7yCGcUryKQGOHYHRtipn6W",{"json":2527},{"nodeType":239,"data":2528,"content":2529},{},[2530,2537,2544,2551,2558,2565,2572,2579,2586,2593,2611,2629,2636,2643,2663,2670,2682,2725,2732,2751,2759,2766,2773,2780,2787,2794,2860,2867,2873,2880,2887,2894,2901,2921,2928,2935,2942,2949,2956,2963,2970,2977,2984,2990,2996],{"nodeType":252,"data":2531,"content":2532},{},[2533],{"nodeType":256,"value":2534,"marks":2535,"data":2536},"User web activity can be a rich source of attack detection data. To this end, most organizations today ingest some form of network traffic data for security monitoring purposes. ",[],{},{"nodeType":252,"data":2538,"content":2539},{},[2540],{"nodeType":256,"value":2541,"marks":2542,"data":2543},"Typically, network traffic data is gathered by analyzing web proxy and/or DNS logs. But, we regularly speak to organizations that are frustrated with the challenge of piecing together web traffic data, without understanding the opportunity presented by the alternatives.",[],{},{"nodeType":252,"data":2545,"content":2546},{},[2547],{"nodeType":256,"value":2548,"marks":2549,"data":2550},"Even with proxies that can terminate TLS-encrypted datastreams, it’s difficult for even expert security teams to collect and analyze any meaningful data from web proxy logs. While the kind of data needed might be technically possible to extract, the process of reconstructing proxy data to analyze the specific data points that you really need, at scale, is prohibitively complicated.",[],{},{"nodeType":252,"data":2552,"content":2553},{},[2554],{"nodeType":256,"value":2555,"marks":2556,"data":2557},"The old “needle in a haystack” adage is very apt here! Rather than trying to piece together half-broken data – overlaying noisy proxy logs with other sources such as app and IdP telemetry – we think that the browser presents a much simpler way of analyzing relevant data points, particularly when it comes to identity attacks. ",[],{},{"nodeType":252,"data":2559,"content":2560},{},[2561],{"nodeType":256,"value":2562,"marks":2563,"data":2564},"Before we get on to detection opportunities in the browser, let’s take a deeper look at the web proxy situation.",[],{},{"nodeType":461,"data":2566,"content":2567},{},[2568],{"nodeType":256,"value":2569,"marks":2570,"data":2571},"Detection based on web proxy – how does it work and what are the limitations?",[],{},{"nodeType":252,"data":2573,"content":2574},{},[2575],{"nodeType":256,"value":2576,"marks":2577,"data":2578},"Web proxies generate common data points that can be used for threat detection, particularly when looking for indicators of an endpoint compromise. They work by inspecting network traffic to and from the endpoint, which includes web activity in the browser. ",[],{},{"nodeType":252,"data":2580,"content":2581},{},[2582],{"nodeType":256,"value":2583,"marks":2584,"data":2585},"The classic use case would be inspecting traffic from an endpoint to networked servers and devices, either on the local network or over the internet (e.g. via VPN), to detect signs of suspicious/malicious behavior from the device (indicating a potential compromise). Data is then shipped to a central proxy server where it can be analyzed for indicators of malicious activity. ",[],{},{"nodeType":252,"data":2587,"content":2588},{},[2589],{"nodeType":256,"value":2590,"marks":2591,"data":2592},"The traditional proxy setup has a number of limitations: ",[],{},{"nodeType":360,"data":2594,"content":2595},{},[2596],{"nodeType":364,"data":2597,"content":2598},{},[2599],{"nodeType":252,"data":2600,"content":2601},{},[2602,2607],{"nodeType":256,"value":2603,"marks":2604,"data":2606},"The proxy needs to be in a position to intercept traffic.",[2605],{"type":339},{},{"nodeType":256,"value":2608,"marks":2609,"data":2610}," It may only be active when a user is in the office, on a VPN and/or for external web traffic only. It might not work if a user is on their home or other other Wi-Fi – e.g. when working from Starbucks, or visiting a customer site, which isn’t an ideal setup in the era of remote working.  ",[],{},{"nodeType":360,"data":2612,"content":2613},{},[2614],{"nodeType":364,"data":2615,"content":2616},{},[2617],{"nodeType":252,"data":2618,"content":2619},{},[2620,2625],{"nodeType":256,"value":2621,"marks":2622,"data":2624},"Most web traffic is protected by TLS – so a proxy has to decrypt this to inspect what’s inside.",[2623],{"type":339},{},{"nodeType":256,"value":2626,"marks":2627,"data":2628}," At the very least you’re going to need to deploy a CA cert to every endpoint. But, some websites use things like certificate pinning or other SSL-enforcement controls to straight up prevent this. Unless you’re doing TLS-termination at scale with a COTS solution, then the ability to do proxy-based monitoring is seriously limited. ",[],{},{"nodeType":498,"data":2630,"content":2631},{},[2632],{"nodeType":256,"value":2633,"marks":2634,"data":2635},"Proxies under the hood",[],{},{"nodeType":252,"data":2637,"content":2638},{},[2639],{"nodeType":256,"value":2640,"marks":2641,"data":2642},"Let’s pop the hood and take a look at the data you can collect using a web proxy that is useful for threat detection. ",[],{},{"nodeType":252,"data":2644,"content":2645},{},[2646,2650,2659],{"nodeType":256,"value":2647,"marks":2648,"data":2649},"Typically, you’re looking at data points such as domain names or IP addresses. If the proxy is terminating TLS, you might also have web URLs, the type of web content accessed, and other HTTP-level metadata. Higher level data like file uploads/downloads can sometimes be reconstructed when using very vanilla methods. More advanced proxies might run or open downloaded files in a sandbox for dynamic analysis to identify potentially malicious properties, which has ",[],{},{"nodeType":268,"data":2651,"content":2653},{"uri":2652},"https://www.cyfirma.com/research/html-smuggling-a-stealthier-approach-to-deliver-malware/",[2654],{"nodeType":256,"value":2655,"marks":2656,"data":2658},"given rise to techniques like HTML smuggling",[2657],{"type":1215},{},{"nodeType":256,"value":2660,"marks":2661,"data":2662}," to hide these file downloads from advanced proxies. ",[],{},{"nodeType":252,"data":2664,"content":2665},{},[2666],{"nodeType":256,"value":2667,"marks":2668,"data":2669},"In practice this means that you might see that an endpoint at IP address X accessed google.com. If it’s an authenticated proxy, you might see the user of the endpoint as well. Using this data, it’s possible to see which endpoint’s owner accessed the web domain, but not the identity/account they used, or whether they actually logged in at all. So for the majority of in-house proxy setups not doing TLS-termination… that’s it. Even then, without decrypting TLS you can’t be sure you’re seeing the actual/final domain because of technologies like domain fronting that are commonly implemented in modern CDNs. ",[],{},{"nodeType":252,"data":2671,"content":2672},{},[2673,2677],{"nodeType":256,"value":2674,"marks":2675,"data":2676},"With TLS termination, it’s possible to see a lot more by inspecting/unpacking the HTTP data. At this point there are two possible approaches: Manual analysis after the fact, or automated analysis on the fly. ",[],{},{"nodeType":256,"value":2678,"marks":2679,"data":2681},"Unfortunately, there are problems with both options. ",[2680],{"type":339},{},{"nodeType":360,"data":2683,"content":2684},{},[2685,2705],{"nodeType":364,"data":2686,"content":2687},{},[2688],{"nodeType":252,"data":2689,"content":2690},{},[2691,2696,2700],{"nodeType":256,"value":2692,"marks":2693,"data":2695},"There is too much HTTP data to store and manually analyze everything:",[2694],{"type":339},{},{"nodeType":256,"value":2697,"marks":2698,"data":2699}," Usually, organizations limit the data being stored to specific metadata as opposed to trying to store everything (terabytes of data per day), which would be impossibly expensive to store (and also to build the server infrastructure required to index and search it – effectively a mini-datacenter). ",[],{},{"nodeType":256,"value":2701,"marks":2702,"data":2704},"Not to mention that storing detailed HTTP body data presents a significant security risk, as it includes valid session tokens/cookies for all your identities…  ",[2703],{"type":1513},{},{"nodeType":364,"data":2706,"content":2707},{},[2708],{"nodeType":252,"data":2709,"content":2710},{},[2711,2716,2720],{"nodeType":256,"value":2712,"marks":2713,"data":2715},"Each web app is custom, making automated analysis (virtually) impossible:",[2714],{"type":339},{},{"nodeType":256,"value":2717,"marks":2718,"data":2719}," Proxy-based solutions have to reconstruct the data after TLS encryption. HTTP data is usually stored in large application JSON/XML objects or even in totally custom encoding – per each app. This means that complex, custom code is required per each app to be able to perform automated analysis. When businesses today are using hundreds of apps on average, ",[],{},{"nodeType":256,"value":2721,"marks":2722,"data":2724},"automating this process is not feasible as it requires constant reverse engineering of every web app. ",[2723],{"type":339},{},{"nodeType":252,"data":2726,"content":2727},{},[2728],{"nodeType":256,"value":2729,"marks":2730,"data":2731},"So what does this mean? Well, even organizations with a TLS-terminating proxy are limited to manual analysis of select metadata after-the-fact, which massively reduces its utility. You could sink a day or more’s analysis into gathering a small amount of useful data, for example whether a URL was accessed, but not necessarily which device/user, or what account/creds were used to log in). This means you’re probably going to use proxy data to aid in the investigation of a known incident rather than anything proactive. ",[],{},{"nodeType":252,"data":2733,"content":2734},{},[2735,2740,2746],{"nodeType":256,"value":2736,"marks":2737,"data":2739},"It might be ",[2738],{"type":339},{},{"nodeType":256,"value":2741,"marks":2742,"data":2745},"theoretically",[2743,2744],{"type":1513},{"type":339},{},{"nodeType":256,"value":2747,"marks":2748,"data":2750}," possible to sift through decrypted HTTP data to identify and correlate identities and actions, effectively reconstructing web pages from the network traffic automatically and on the fly (in the same way that it’s theoretically possible to remove my head and transplant it onto your body), but is it practical or reasonable for most organizations to do this? No. ",[2749],{"type":339},{},{"nodeType":461,"data":2752,"content":2753},{},[2754],{"nodeType":256,"value":2755,"marks":2756,"data":2758},"Browser data: a better alternative?",[2757],{"type":339},{},{"nodeType":252,"data":2760,"content":2761},{},[2762],{"nodeType":256,"value":2763,"marks":2764,"data":2765},"One way of overcoming some of the limitations of the classic web proxy setup is to use a browser-based solution. It’s much easier to collect data at the browser level before it’s encrypted. ",[],{},{"nodeType":252,"data":2767,"content":2768},{},[2769],{"nodeType":256,"value":2770,"marks":2771,"data":2772},"A browser agent isn’t just a proxy for pre-TLS HTML data, though. In the browser, you’re able to dynamically interact with the DOM or the rendered web application, including its JS code. This makes it easy to find, for example, input fields for usernames and passwords. You can see what information the user is inputting and where, without needing to figure out how the data is encoded and sent back to the app. These are fairly generic fields that can be identified across your suite of apps without needing complex custom code. To put it in perspective, approximately 10 login cases cover the entirety of the SaaS apps we support (~1000). Using a proxy-based solution, each of these would require custom development.   ",[],{},{"nodeType":252,"data":2774,"content":2775},{},[2776],{"nodeType":256,"value":2777,"marks":2778,"data":2779},"While it's technically possible to keep track of multiple sessions for thousands of users across hundreds of apps via proxy, it’s no mean feat – made much easier when each extension is tracking one user, in one browser, and even knows the browser tab it’s running in. You also get additional context at the identity layer such as the email address, authentication protocol, and credentials used, neatly mapped to that specific user and browser profile – no more trying to link the owner of an IP address to log events!",[],{},{"nodeType":252,"data":2781,"content":2782},{},[2783],{"nodeType":256,"value":2784,"marks":2785,"data":2786},"The browser also has the added benefit of being a natural enforcement point. You can collect and analyze data dynamically, and produce an immediate response – rather than taking info away, analyzing it, and coming back with a detection minutes or hours later (and potentially prompting a manual response). ",[],{},{"nodeType":252,"data":2788,"content":2789},{},[2790],{"nodeType":256,"value":2791,"marks":2792,"data":2793},"Let’s look at a couple of examples based on how we’re using our browser agent to detect and block identity attacks. ",[],{},{"nodeType":360,"data":2795,"content":2796},{},[2797,2819,2839],{"nodeType":364,"data":2798,"content":2799},{},[2800],{"nodeType":252,"data":2801,"content":2802},{},[2803,2806,2815],{"nodeType":256,"value":29,"marks":2804,"data":2805},[],{},{"nodeType":268,"data":2807,"content":2809},{"uri":2808},"https://pushsecurity.com/blog/introducing-sso-password-protection/",[2810],{"nodeType":256,"value":2811,"marks":2812,"data":2814},"Pinning passwords to the legitimate site they are linked with",[2813],{"type":1215},{},{"nodeType":256,"value":2816,"marks":2817,"data":2818},". This is made possible by interacting with the DOM to observe passwords being entered – enabling the Push agent to intercept and block before an HTTP network request can even be made. ",[],{},{"nodeType":364,"data":2820,"content":2821},{},[2822],{"nodeType":252,"data":2823,"content":2824},{},[2825,2828,2835],{"nodeType":256,"value":29,"marks":2826,"data":2827},[],{},{"nodeType":268,"data":2829,"content":2830},{"uri":2378},[2831],{"nodeType":256,"value":2832,"marks":2833,"data":2834},"Detecting and blocking malicious phishing tools",[],{},{"nodeType":256,"value":2836,"marks":2837,"data":2838}," running on websites by observing behavioral attributes in the browser, such as Javascript calls being made or data structures saved to local storage.",[],{},{"nodeType":364,"data":2840,"content":2841},{},[2842],{"nodeType":252,"data":2843,"content":2844},{},[2845,2848,2856],{"nodeType":256,"value":29,"marks":2846,"data":2847},[],{},{"nodeType":268,"data":2849,"content":2851},{"uri":2850},"https://pushsecurity.com/blog/manage-third-party-data-access/",[2852],{"nodeType":256,"value":2853,"marks":2854,"data":2855},"Observing users signing up to and using risky apps",[],{},{"nodeType":256,"value":2857,"marks":2858,"data":2859},", or changing or removing authentication methods, MFA methods, and configuration methods, which could indicate account takeover. ",[],{},{"nodeType":252,"data":2861,"content":2862},{},[2863],{"nodeType":256,"value":2864,"marks":2865,"data":2866},"It’s always useful to refer back to the concept of the Pyramid of Pain in these situations. The opportunities to detect and block in the browser tend to align with indicators at the apex of the pyramid, meaning they are a significant obstruction for attackers – and difficult to circumvent. This contrasts the indicators aligned with proxy-based solutions, which are much easier to bypass through, for example, IP masking using residential proxy networks, or changing the domains and URLs used for phishing campaigns.  ",[],{},{"nodeType":243,"data":2868,"content":2872},{"target":2869},{"sys":2870},{"id":2871,"type":248,"linkType":249},"HrK2xQak6KfjInDbeSgv8",[],{"nodeType":252,"data":2874,"content":2875},{},[2876],{"nodeType":256,"value":2877,"marks":2878,"data":2879},"In summary: Browser data provides high-fidelity indicators of malicious activity, without the complications of proxy-based approaches. The scope for response in the browser is significant and immediate, meaning it’s a great enforcement point for security controls to be able to disrupt attacks. ",[],{},{"nodeType":461,"data":2881,"content":2882},{},[2883],{"nodeType":256,"value":2884,"marks":2885,"data":2886},"Won’t my app and IdP logs cover this?",[],{},{"nodeType":252,"data":2888,"content":2889},{},[2890],{"nodeType":256,"value":2891,"marks":2892,"data":2893},"App and IdP logs are useful (when you can get them), but neither give you the full picture. ",[],{},{"nodeType":498,"data":2895,"content":2896},{},[2897],{"nodeType":256,"value":2898,"marks":2899,"data":2900},"App logs are limited in availability, scope, and ease of ingestion ",[],{},{"nodeType":252,"data":2902,"content":2903},{},[2904,2908,2917],{"nodeType":256,"value":2905,"marks":2906,"data":2907},"When relying on app logs, you’re naturally constrained by the app provider. Many smaller apps provide no security logging, while others ",[],{},{"nodeType":268,"data":2909,"content":2911},{"uri":2910},"https://audit-logs.tax/",[2912],{"nodeType":256,"value":2913,"marks":2914,"data":2916},"lock security logging behind the premium tier subscription",[2915],{"type":1215},{},{"nodeType":256,"value":2918,"marks":2919,"data":2920},". When logs are available, you’re limited to the events that the third-party deems suitable to log. ",[],{},{"nodeType":252,"data":2922,"content":2923},{},[2924],{"nodeType":256,"value":2925,"marks":2926,"data":2927},"Out of the 100 most popular apps we see across our customers, and perhaps the few dozen or so that are security critical, only a small handful provide any useful logging. This means, naturally, that the majority of apps do not. ",[],{},{"nodeType":252,"data":2929,"content":2930},{},[2931],{"nodeType":256,"value":2932,"marks":2933,"data":2934},"To top it all off, the process of extracting these logs and feeding them into your SIEM (or equivalent) is also not straightforward. The lack of out-of-the-box connectors for many apps means that complex custom architectures are required for collecting data. Some vendors place constraints on the format and mechanism for extracting logs which can make ingestion difficult to feed reliable detections – even before any meaningful analysis of the data can take place. ",[],{},{"nodeType":252,"data":2936,"content":2937},{},[2938],{"nodeType":256,"value":2939,"marks":2940,"data":2941},"Until application security logs are made widely available (and at no additional cost) it’s unlikely you’re going to be able to get the visibility you need from app logs, for every app your employees use (though of course there are exceptions – and we hope to see more vendors in future treating security as a minimum requirement, not a chargeable addon). ",[],{},{"nodeType":498,"data":2943,"content":2944},{},[2945],{"nodeType":256,"value":2946,"marks":2947,"data":2948},"IdP logs cover only SSO integrated apps and are limited in scope",[],{},{"nodeType":252,"data":2950,"content":2951},{},[2952],{"nodeType":256,"value":2953,"marks":2954,"data":2955},"You might think, “but all of our business apps are behind SSO, right?” In reality, only about 1 in 3 apps support SSO (and even fewer at the ‘free’ tier). And in practice, our data shows us that only 1 in 5 apps on average are actually behind SSO per organization. The theoretical security benefit of IdP logs is that they provide context, a foundation for the user’s activity across (and between) a suite of apps. But because of the lack of coverage, this isn’t the case. ",[],{},{"nodeType":252,"data":2957,"content":2958},{},[2959],{"nodeType":256,"value":2960,"marks":2961,"data":2962},"IdP logs are naturally focused on authentication, and so don’t compensate for any gaps in app logging. Naturally, they are only able to observe what happens on the IdP side – and so are blind to client side attacks like phishing (which we’ve already shown the browser provides superior visibility of compared to typical alternatives like proxy logs).   ",[],{},{"nodeType":498,"data":2964,"content":2965},{},[2966],{"nodeType":256,"value":2967,"marks":2968,"data":2969},"Browser is best for stopping identity attacks",[],{},{"nodeType":252,"data":2971,"content":2972},{},[2973],{"nodeType":256,"value":2974,"marks":2975,"data":2976},"This is where the browser comes in. Think of your browser as your source of truth, a broad data baseline for user activity where the browser provides complete context of the browser profile, employee, accounts, credentials, auth methods, and MFA types – as well as employee interaction with web sites.",[],{},{"nodeType":252,"data":2978,"content":2979},{},[2980],{"nodeType":256,"value":2981,"marks":2982,"data":2983},"The TL;DR is that your visibility in the browser is theoretically limitless. Every page loaded (and its source, javascript state, local storage), every user interaction can be observed. And best of all, this analysis is done securely in the browser and only the results of detections are reported back, rather than decrypting the entire raw traffic stream including all session data in an additional centralized system. ",[],{},{"nodeType":243,"data":2985,"content":2989},{"target":2986},{"sys":2987},{"id":2988,"type":248,"linkType":249},"5jPCGPO1tnIkoI7MKW4oUi",[],{"nodeType":461,"data":2991,"content":2992},{},[2993],{"nodeType":256,"value":2392,"marks":2994,"data":2995},[],{},{"nodeType":252,"data":2997,"content":2998},{},[2999],{"nodeType":256,"value":3000,"marks":3001,"data":3002},"As an industry, we need to start looking at browser-based detection and response as the next logical evolution to stop identity attacks. There are clear parallels with the emergence of EDR – which came about because existing endpoint log sources were not sufficient. Today, we wouldn’t dream of trying to detect and respond to endpoint-based attacks without EDR – it’s time we started thinking about cloud identity attacks and the browser in the same way.  ",[],{},"The web proxy is dead… long live the browser extension!","Right now the majority of detections for identity attacks rely on web proxy telemetry. Here’s why the browser can be a better alternative.","2024-06-11T00:00:00.000Z","the-web-proxy-is-dead-long-live-the-browser-extension",{"items":3008},[3009,3011],{"sys":3010,"name":1648},{"id":1647},{"sys":3012,"name":2512},{"id":2511},{"items":3014},[3015],{"fullName":3016,"firstName":3017,"jobTitle":3018,"profilePicture":3019},"Dan Green","Dan","Threat Research",{"url":3020},"https://images.ctfassets.net/y1cdw1ablpvd/7jik1VhFgA3kgzXBXTm2Vw/fcd8c171da644903d0827eafcfbcaad0/Dan_Headshot_2025.png","introducing-set-and-forget-controls-that-stop-real-world-identity-attacks","blog/introducing-set-and-forget-controls-that-stop-real-world-identity-attacks",{"json":3024},{"data":3025,"content":3026,"nodeType":239},{},[3027],{"data":3028,"content":3029,"nodeType":252},{},[3030],{"data":3031,"marks":3032,"value":3033,"nodeType":256},{},[],"Enable plug-and-play detections and interventions in the browser using Push’s new security controls, or create your own automations from unique browser telemetry provided via API and webhooks.","Enable detections and interventions in the browser using Push’s new security controls.",{"id":3036,"publishedAt":3037},"20FcoPvHu7zXkTQyv9MmK0","2026-01-30T09:19:46.911Z",{"items":3039},[3040,3042],{"sys":3041,"name":1652},{"id":1651},{"sys":3043,"name":1648},{"id":1647},"187qkkG8XxPizLh8VAzJ5NPfQaMLoZUykSMTvQ7dxbg",1784196730072]