[{"data":1,"prerenderedAt":2133},["ShallowReactive",2],{"sc:header-data-it":3,"sc:footer-data-it":489,"author-it-fabian-bader-1b470ba1ddf8b3":518,"content-it-fabian-bader":548,"content-events-it-fabian-bader":2112,"authors_data:Christopher Brumm|Fabian Bader|Thomas Naunheim":2113},{"lang":4,"home":5,"navigation":17,"meta":479,"contact":485},"de",{"name":6,"folderSwitch":7,"imgLight":10,"img":11,"languages":12},"home",[8,9],"authors","blog","/logos/gk-Logo-sw.svg","/logos/gk-Logo-rgb.svg",{"it":13},{"title":14,"url":15,"alt":16},"Home","/it","glueckkanja Logo",[18,127,231,316,395,402],{"name":19,"languages":20,"children":24},"workplace",{"it":21},{"title":22,"description":23},"Workplace","Basato su Microsoft 365 per postazioni di lavoro intelligenti, sicure e flessibili, con integrazione di tecnologie moderne e servizi di identità.",[25,55,91],{"name":26,"languages":27,"children":30},"portfolio",{"it":28},{"title":29},"Portfolio",[31,37,43,49],{"name":32,"languages":33},"managed-intune",{"it":34},{"title":35,"url":36},"Managed Intune","/it/entra-intune/managed-intune",{"name":38,"languages":39},"managed-entra",{"it":40},{"title":41,"url":42},"Managed Entra","/it/entra-intune/managed-entra",{"name":44,"languages":45},"managed-workplace",{"it":46},{"title":47,"url":48},"Managed Workplace","/it/workplace/managed-workplace",{"name":50,"languages":51},"consulting-services",{"it":52},{"title":53,"url":54},"Consulting Services","/it/workplace/consulting-services",{"name":56,"languages":57,"children":60},"microsoft-365-endpoint",{"it":58},{"title":59},"Microsoft 365 Endpoint",[61,67,73,79,85],{"name":62,"languages":63},"microsoft-entra-suite",{"it":64},{"title":65,"url":66},"Microsoft Entra Suite","/it/workplace/microsoft-entra-suite",{"name":68,"languages":69},"microsoft-intune",{"it":70},{"title":71,"url":72},"Microsoft Intune","/it/workplace/microsoft-intune",{"name":74,"languages":75},"microsoft-windows",{"it":76},{"title":77,"url":78},"Microsoft Windows","/it/workplace/microsoft-windows",{"name":80,"languages":81},"windows-365-cloud-pc",{"it":82},{"title":83,"url":84},"Windows 365 Cloud PC","/it/workplace/windows365-cloud-pc",{"name":86,"languages":87},"cloud-workplace-foundation",{"it":88},{"title":89,"url":90},"Cloud Workplace Foundation","/it/workplace/cloud-workplace-foundation",{"name":92,"languages":93,"children":96},"microsoft-365-collaboration",{"it":94},{"title":95},"Microsoft 365 Collaboration",[97,103,109,115,121],{"name":98,"languages":99},"microsoft-copilot",{"it":100},{"title":101,"url":102},"Microsoft 365 Copilot","/it/workplace/microsoft-365-copilot",{"name":104,"languages":105},"microsoft-teams",{"it":106},{"title":107,"url":108},"Teams","/it/workplace/microsoft-teams",{"name":110,"languages":111},"sharepoint-powerplatform",{"it":112},{"title":113,"url":114},"SharePoint & Power Platform","/it/workplace/sharepoint-power-platform",{"name":116,"languages":117},"exchange-online",{"it":118},{"title":119,"url":120},"Exchange Online","/it/workplace/exchange-online",{"name":122,"languages":123},"information-protection-compliance",{"it":124},{"title":125,"url":126},"Information Protection & Compliance","/it/workplace/information-protection-compliance",{"name":128,"languages":129,"children":133},"azure",{"it":130},{"title":131,"description":132},"Azure","Crescita con Azure: riduci i costi cloud, aumenta l'efficienza e spingi l'innovazione con IaaS e PaaS.",[134,151,181],{"name":135,"languages":136,"children":138},"azure-portfolio",{"it":137},{"title":29},[139,145],{"name":140,"languages":141},"azure-managed-services",{"it":142},{"title":143,"url":144},"Azure Managed Services","/it/azure/azure-managed-services",{"name":146,"languages":147},"azure-consulting",{"it":148},{"title":149,"url":150},"Azure Consulting","/it/azure/azure-consulting",{"name":152,"languages":153,"children":156},"azure-scenarios",{"it":154},{"title":155},"Scenari",[157,163,169,175],{"name":158,"languages":159},"plan-your-cloud",{"it":160},{"title":161,"url":162},"Pianifica il tuo cloud","/it/azure/plan-your-cloud",{"name":164,"languages":165},"migrate-to-the-cloud",{"it":166},{"title":167,"url":168},"Migra al cloud","/it/azure/migrate-to-the-cloud",{"name":170,"languages":171},"innovate-your-business",{"it":172},{"title":173,"url":174},"Innova la tua azienda","/it/azure/innovate-your-business",{"name":176,"languages":177},"vmware-exit",{"it":178},{"title":179,"url":180},"Ripensa la tua strategia VMware","/it/azure/vmware-exit",{"name":182,"languages":183,"children":186},"azure-practices",{"it":184},{"title":185},"Practices",[187,193,199,202,208,213,219,225],{"name":188,"languages":189},"azure-foundation",{"it":190},{"title":191,"url":192},"Azure Foundation","/it/azure/azure-foundation",{"name":194,"languages":195},"azure-ai-foundation",{"it":196},{"title":197,"url":198},"Azure AI Foundation","/it/azure/azure-ai-foundation",{"name":86,"languages":200},{"it":201},{"title":89,"url":90},{"name":203,"languages":204},"azure-data-foundation",{"it":205},{"title":206,"url":207},"Azure Data Foundation","/it/azure/azure-data-foundation",{"name":188,"languages":209},{"it":210},{"title":211,"url":212},"Azure Container Foundation","/it/azure/azure-container-foundation",{"name":214,"languages":215},"dark-tenant",{"it":216},{"title":217,"url":218},"Managed Dark Tenant","/it/azure/managed-dark-tenant",{"name":220,"languages":221},"azure-cloud-adoption-framework",{"it":222},{"title":223,"url":224},"Cloud Adoption Framework","/it/azure/cloud-adoption-framework",{"name":226,"languages":227},"azure-cloud-competence-center",{"it":228},{"title":229,"url":230},"Cloud Competence Center","/it/azure/cloud-competence-center",{"name":232,"languages":233,"children":242},"security",{"it":234},{"title":235,"description":236,"emergency":237},"Security","Vigilanza nel cloud con un managed service 24/7 pluripremiato, incident response e protezione moderna per la tua infrastruttura.",{"text":238,"href":239,"skin":240,"icon":241},"Sotto attacco?","/it/security/are-you-under-attack","primary","emergency",[243,268,289],{"name":244,"children":245},"security-security-consulting",[246,252,256,262],{"name":247,"languages":248},"managed-red-tenant",{"it":249},{"title":250,"url":251},"Managed Red Tenant","/it/security/managed-red-tenant",{"name":214,"languages":253},{"it":254},{"title":255,"url":218},"Dark Tenant",{"name":257,"languages":258},"sentinel-data-lake",{"it":259},{"title":260,"url":261},"Sentinel Data Lake","/it/security/sentinel-data-lake",{"name":263,"languages":264},"security-consulting",{"it":265},{"title":266,"url":267},"Security Consulting","/it/security/security-consulting",{"name":269,"children":270},"security-cloud-security-operations-center",[271,277,283],{"name":272,"languages":273},"cloud-security-operations-center",{"it":274},{"title":275,"url":276},"Cloud Security Operations Center","/it/security/cloud-security-operations-center",{"name":278,"languages":279},"global-secure-access",{"it":280},{"title":281,"url":282},"Global Secure Access","/it/security/global-secure-access",{"name":284,"languages":285},"my-work-id",{"it":286},{"title":287,"url":288},"MyWorkID","/it/security/my-work-id",{"name":290,"children":291},"security-preventive-services",[292,298,304,310],{"name":293,"languages":294},"preventive-services",{"it":295},{"title":296,"url":297},"Preventive Services","/it/security/preventive-services",{"name":299,"languages":300},"data-security-services",{"it":301},{"title":302,"url":303},"Data Security Service","/it/security/data-security-service",{"name":305,"languages":306},"security-copilot-agents",{"it":307},{"title":308,"url":309},"Security Copilot Agents","/it/security/security-copilot-agents",{"name":311,"languages":312},"nis2",{"it":313},{"title":314,"url":315},"Implementazione di NIS2","/it/security/red-dark-tenant-nis2",{"name":317,"languages":318,"children":322},"products",{"it":319},{"title":320,"description":321},"Prodotti","Prodotti complementari per un ambiente Microsoft sicuro e 100 % cloud-native, che rafforzano la collaborazione, l'autenticazione di rete e la gestione software.",[323,360],{"name":324,"products":325,"children":326},"lorem ipsum 1",true,[327,336,344,352],{"name":328,"img":329,"target":330,"languages":331},"realmjoin","products/realmjoin/realmjoin-nav-logo.svg","_blank",{"it":332},{"title":333,"url":334,"subtitle":335},"RealmJoin","https://www.realmjoin.com","Distribuzione software dal cloud",{"name":337,"img":338,"target":330,"languages":339},"scepman","products/scepman/scepman-nav-logo.svg",{"it":340},{"title":341,"url":342,"subtitle":343},"SCEPman","https://www.scepman.com","Distribuzione dei certificati dal cloud",{"name":345,"img":346,"target":330,"languages":347},"konnekt","products/konnekt/konnekt-nav-logo.svg",{"it":348},{"title":349,"url":350,"subtitle":351},"KONNEKT","https://www.konnekt.io","Lavora con i tuoi dati locali di Office 365",{"name":353,"img":354,"target":330,"languages":355},"realmigrator","products/realmigrator/realmigrator-nav-logo.svg",{"it":356},{"title":357,"url":358,"subtitle":359},"RealMigrator","https://www.realmigrator.com","Migra i dati da un server all'altro",{"name":361,"products":325,"children":362},"lorem ipsum 2",[363,371,379,387],{"name":364,"img":365,"target":330,"languages":366},"terraprovider","products/terraprovider/terraprovider-nav-logo.svg",{"it":367},{"title":368,"url":369,"subtitle":370},"TerraProvider","https://www.terraprovider.com","Terraform Provider for Microsoft 365",{"name":372,"img":373,"target":330,"languages":374},"radiusaas","products/radius/radius-nav-logo.svg",{"it":375},{"title":376,"url":377,"subtitle":378},"RADIUSaaS","https://www.radius-as-a-service.com","Autenticazione per la tua rete",{"name":380,"img":381,"target":330,"languages":382},"unifiedcontacts","products/unified-contacts/unifiedcontact-nav-logo.svg",{"it":383},{"title":384,"url":385,"subtitle":386},"Unified Contacts","https://www.unified-contacts.com","Trova contatti in Microsoft Teams",{"name":388,"img":389,"target":330,"languages":390},"autopilotmonitor","products/autopilot-monitor/AutopilotMonitor-nav-logo.svg",{"it":391},{"title":392,"url":393,"subtitle":394},"Autopilot Monitor","https://www.autopilotmonitor.com","Monitoraggio di Windows Autopilot in tempo reale",{"name":396,"languages":397},"casestudies",{"it":398},{"title":399,"url":400,"description":401},"Case Studies","/it/casestudies","Pioniere nel cloud: il tuo Microsoft partner di riferimento per soluzioni cloud con un approccio blueprint-based e competenza in Infrastructure-as-Code.",{"name":403,"languages":404,"children":407},"company",{"it":405},{"title":406,"description":401},"Azienda",[408,438,462],{"name":409,"languages":410,"children":413},"company-about-us",{"it":411},{"title":412},"Chi siamo",[414,420,426,432],{"name":415,"languages":416},"company-facts-figures",{"it":417},{"title":418,"url":419},"Fatti e numeri","/it/company/facts-and-figures",{"name":421,"languages":422},"company-contact",{"it":423},{"title":424,"url":425},"Contatti e sedi","/it/company/contact-and-locations",{"name":427,"languages":428},"switzerland",{"it":429},{"title":430,"url":431}," glueckkanja Switzerland","/it/company/switzerland",{"name":433,"languages":434},"austria",{"it":435},{"title":436,"url":437},"glueckkanja Austria","/it/company/austria",{"name":439,"languages":440,"children":443},"company-career",{"it":441},{"title":442},"Carriera",[444,450,456],{"name":445,"languages":446},"company-career-overview",{"it":447},{"title":448,"url":449},"Panoramica carriera","/it/career",{"name":451,"languages":452},"company-young-professionals",{"it":453},{"title":454,"url":455},"Young Professionals","/it/young-professionals",{"name":457,"languages":458},"company-jobs",{"it":459},{"title":460,"url":461},"Offerte di lavoro","/it/job-offers",{"name":463,"languages":464,"children":467},"company-latest",{"it":465},{"title":466},"Novità",[468,474],{"name":469,"languages":470},"company-blog",{"it":471},{"title":472,"url":473},"Blog","/it/blog",{"name":469,"languages":475},{"it":476},{"title":477,"url":478},"Eventi","/it/events",[480],{"name":481,"languages":482},"career-meta",{"it":483},{"title":442,"url":449,"active":484},false,{"languages":486},{"it":487},{"title":488,"url":425,"active":484},"Contatti",{"data":490},{"bgColor":491,"number":492,"mail":493,"brandLogos":494,"logos":495,"links":499,"linksIt":509},"var(--color-gk-mid-blue)","+49 69 4005520","info@glueckkanja.com",null,[496],{"img":10,"alt":16,"url":497,"class":498},"index.html","max-w-19rem",[500,503,506],{"title":501,"url":502},"Datenschutz","/de/privacy",{"title":504,"url":505},"Impressum","/de/imprint",{"title":507,"url":508},"No Cookies","/de/cookies",[510,513,516],{"title":511,"url":512},"Privacy","/it/privacy",{"title":514,"url":515},"Imprint","/it/imprint",{"title":507,"url":517},"/it/cookies",{"id":519,"title":520,"body":521,"description":527,"extension":532,"meta":533,"name":520,"navigation":325,"otherLanguages":534,"path":544,"seo":545,"stem":546,"__hash__":547},"authors/fabian-bader.md","Fabian Bader",{"type":522,"value":523,"toc":528},"minimal",[524],[525,526,527],"p",{},"Fabian Bader ist Cyber Security Architect und Microsoft MVP, der sich mit Begeisterung auf Security- und Cloud-Lösungen spezialisiert hat. Er ist Experte im Umgang mit Microsoft-Technologien. Von der Azure-Cloud bis zum on-premises Active Directory findet er stets neue Wege, um das Potenzial von Technologie zu nutzen. Dabei legt er großen Wert auf Effizienz und Automatisierung, was ihm dank seiner Expertise in PowerShell mühelos gelingt. Er ist fester Bestandteil der IT-Community. Als engagierter Redner und inspirierender Blog-Autor teilt er sein Wissen und seine Erfahrungen auf \"cloudbrothers.info\" und unterstützt Gleichgesinnte als Gastgeber der \"Hamburg PowerShell User Group\". Darüber hinaus ist er als Mitglied des Organisations-Teams von \"PowerShell Saturday Hamburg\".",{"title":529,"searchDepth":530,"depth":530,"links":531},"",2,[],"md",{},{"en":535,"es":536,"sv":537,"fi":538,"da":539,"ko":540,"nl":541,"no":542,"ja":543},"Fabian Bader is a Cyber Security Architect and Microsoft MVP who is passionate about security and cloud solutions. He is an expert in working with Microsoft technologies. From the Azure cloud to on-premises Active Directory, he is always finding new ways to leverage the potential of technology. He places great emphasis on efficiency and automation, which he accomplishes effortlessly thanks to his expertise in PowerShell. He is an integral part of the IT community. As a dedicated speaker and inspiring blog author, he shares his knowledge and experiences on \"cloudbrothers.info\" and supports like-minded people as host of the \"Hamburg PowerShell User Group\". In addition, he is a member of the organizing team of \"PowerShell Saturday Hamburg\".","Fabian Bader es Cyber Security Architect y Microsoft MVP, especializado con entusiasmo en soluciones de seguridad y cloud. Es un experto en el manejo de las tecnologías de Microsoft. Desde la nube de Azure hasta el Active Directory on-premises, encuentra siempre nuevas formas de aprovechar el potencial de la tecnología. En ello concede gran importancia a la eficiencia y la automatización, algo que logra sin esfuerzo gracias a su dominio de PowerShell. Es parte fija de la comunidad de IT. Como ponente comprometido y autor de blog inspirador, comparte sus conocimientos y experiencias en \"cloudbrothers.info\" y apoya a otros entusiastas como anfitrión de la \"Hamburg PowerShell User Group\". Además, forma parte del equipo organizador de \"PowerShell Saturday Hamburg\".","Fabian Bader är Cyber Security Architect och Microsoft MVP och har med stort engagemang specialiserat sig på säkerhets- och molnlösningar. Han är expert på Microsoft-teknik. Från Azure-molnet till on-premises Active Directory hittar han ständigt nya vägar att utnyttja teknikens potential. Han lägger stor vikt vid effektivitet och automatisering, vilket han tack vare sin expertis i PowerShell klarar utan ansträngning. Han är en fast del av IT-communityn. Som engagerad talare och inspirerande bloggförfattare delar han med sig av sin kunskap och sina erfarenheter på \"cloudbrothers.info\" och stöttar likasinnade som värd för \"Hamburg PowerShell User Group\". Dessutom är han medlem i organisationsteamet för \"PowerShell Saturday Hamburg\".","Fabian Bader on Cyber Security Architect ja Microsoft MVP, joka on innostuneesti erikoistunut tietoturva- ja pilviratkaisuihin. Hän on Microsoft-teknologioiden asiantuntija. Azure-pilvestä on-premises Active Directoryyn hän löytää jatkuvasti uusia tapoja hyödyntää teknologian mahdollisuuksia. Hän arvostaa suuresti tehokkuutta ja automaatiota, mikä onnistuu häneltä vaivatta hänen PowerShell-osaamisensa ansiosta. Hän on kiinteä osa IT-yhteisöä. Sitoutuneena puhujana ja innostavana blogikirjoittajana hän jakaa tietämystään ja kokemuksiaan sivustolla \"cloudbrothers.info\" ja tukee samanhenkisiä \"Hamburg PowerShell User Group\" -ryhmän isäntänä. Lisäksi hän on mukana \"PowerShell Saturday Hamburg\" -tapahtuman järjestelytiimissä.","Fabian Bader er Cyber Security Architect og Microsoft MVP, som med begejstring har specialiseret sig i sikkerheds- og cloud-løsninger. Han er ekspert i Microsoft-teknologier. Fra Azure-cloud til on-premises Active Directory finder han hele tiden nye måder at udnytte teknologiens potentiale på. Han lægger stor vægt på effektivitet og automatisering, hvilket lykkes ham ubesværet takket være hans ekspertise i PowerShell. Han er en fast del af IT-communityet. Som engageret taler og inspirerende blogforfatter deler han sin viden og sine erfaringer på \"cloudbrothers.info\" og støtter ligesindede som vært for \"Hamburg PowerShell User Group\". Derudover er han medlem af organisationsteamet for \"PowerShell Saturday Hamburg\".","Fabian Bader는 Cyber Security Architect이자 Microsoft MVP로, 보안 및 클라우드 솔루션에 열정을 가지고 특화되어 있습니다. 그는 Microsoft 기술을 능숙하게 다루는 전문가입니다. Azure 클라우드에서 on-premises Active Directory에 이르기까지 그는 기술의 잠재력을 활용할 새로운 방법을 끊임없이 찾아냅니다. 이 과정에서 그는 효율성과 자동화를 매우 중시하며, PowerShell에 대한 전문성 덕분에 이를 손쉽게 실현합니다. 그는 IT 커뮤니티의 확고한 일원입니다. 열정적인 강연자이자 영감을 주는 블로그 저자로서 그는 \"cloudbrothers.info\"에서 자신의 지식과 경험을 공유하고, \"Hamburg PowerShell User Group\"의 호스트로서 뜻을 같이하는 이들을 지원합니다. 또한 그는 \"PowerShell Saturday Hamburg\"의 조직 팀의 일원이기도 합니다.","Fabian Bader is Cyber Security Architect en Microsoft MVP en heeft zich met veel enthousiasme gespecialiseerd in security- en cloudoplossingen. Hij is expert in het werken met Microsoft-technologieën. Van de Azure-cloud tot het on-premises Active Directory vindt hij steeds nieuwe manieren om het potentieel van technologie te benutten. Daarbij legt hij veel nadruk op efficiëntie en automatisering, wat hem dankzij zijn expertise in PowerShell moeiteloos afgaat. Hij is een vast onderdeel van de IT-community. Als betrokken spreker en inspirerende blogauteur deelt hij zijn kennis en ervaring op “cloudbrothers.info” en ondersteunt hij gelijkgestemden als gastheer van de “Hamburg PowerShell User Group”. Daarnaast is hij lid van het organisatieteam van “PowerShell Saturday Hamburg”.","Fabian Bader er Cyber Security Architect og Microsoft MVP, som med entusiasme har spesialisert seg på security- og cloud-løsninger. Han er ekspert på Microsoft-teknologier. Fra Azure-cloud til on-premises Active Directory finner han stadig nye måter å utnytte teknologiens potensial på. Han legger stor vekt på effektivitet og automatisering, noe som takket være ekspertisen hans i PowerShell går som en lek. Han er en fast del av IT-community. Som engasjert foredragsholder og inspirerende bloggforfatter deler han kunnskapen og erfaringene sine på \"cloudbrothers.info\" og støtter likesinnede som vert for \"Hamburg PowerShell User Group\". I tillegg er han medlem av organisasjonsteamet for \"PowerShell Saturday Hamburg\".","Fabian BaderはCyber Security ArchitectでありMicrosoft MVPで、セキュリティとクラウドのソリューションに情熱を持って取り組んでいます。Microsoftテクノロジーを扱うエキスパートです。Azureクラウドからon-premises Active Directoryまで、テクノロジーの可能性を活かす新しい方法を常に見つけ出しています。その際に効率化と自動化を重視しており、PowerShellの専門知識によってそれを難なく実現しています。ITコミュニティに欠かせない存在でもあります。熱心なスピーカーとして、また刺激を与えるブログ著者として、\"cloudbrothers.info\"で知識と経験を共有し、\"Hamburg PowerShell User Group\"のホストとして同じ志を持つ人々を支えています。さらに、\"PowerShell Saturday Hamburg\"の運営チームの一員でもあります。","/fabian-bader",{"title":520,"description":527},"fabian-bader","Mvtlgx065YSlCBBI4wct1fdOV-n7SuPILVh9VLNr0Rw",[549,1292],{"id":550,"title":551,"author":552,"body":555,"cta":494,"description":529,"eventid":494,"extension":532,"hideInRecent":484,"layout":1215,"meta":1216,"moment":1220,"navigation":325,"path":1284,"seo":1285,"stem":1286,"tags":1287,"webcast":484,"__hash__":1291},"content_it/posts/2025-01-14-compliant-device-bypass.md","Compliant Device Bypass, tutto quello che devi sapere",[520,553,554],"Christopher Brumm","Thomas Naunheim",{"type":522,"value":556,"toc":1197},[557,562,565,619,623,625,638,646,657,663,666,670,672,677,680,683,687,753,756,759,763,765,769,771,786,793,796,799,801,804,807,810,818,829,832,834,837,841,843,846,851,855,857,860,863,866,1029,1033,1035,1038,1078,1082,1084,1091,1094,1097,1112,1115,1118,1172,1179,1183,1185,1188,1191,1194],[558,559,561],"h2",{"id":560},"cosa-è-successo-finora","Cosa è successo finora?",[525,563,564],{},"{: .h3-font-size}",[566,567,568,592,607,616],"ul",{},[569,570,571,572,579,580,585,586,591],"li",{},"A dicembre 2024 ",[573,574,578],"a",{"href":575,"rel":576},"https://x.com/TEMP43487580",[577],"nofollow","Yuya Chudo"," ha tenuto il suo intervento \"",[573,581,584],{"href":582,"rel":583},"https://www.blackhat.com/eu-24/briefings/schedule/#unveiling-the-power-of-intune-leveraging-intune-for-breaking-into-your-cloud-and-on-premise-42176",[577],"Unveiling the Power of Intune: Leveraging Intune for Breaking Into Your Cloud and On-Premise","\" alla conferenza Black Hat Europe. Nella sessione ha mostrato come sfruttare un'esclusione hardcoded e poco conosciuta nel Conditional Access (CA) per la device compliance, combinandola con la \"",[573,587,590],{"href":588,"rel":589},"https://github.com/secureworks/family-of-client-ids-research",[577],"FOCI-Feature","\" non documentata di Entra ID. Nel talk ha anche presentato la risposta di Microsoft MSRC (VULN-123240), secondo cui questo comportamento è by design e necessario per l'Intune Enrollment di nuovi dispositivi.",[569,593,594,595,600,601,606],{},"Alcuni giorni dopo la conferenza, Sunny Chau ha pubblicato lo strumento proof-of-concept ",[573,596,599],{"href":597,"rel":598},"https://github.com/JumpsecLabs/TokenSmith",[577],"TokenSmith"," insieme a un ",[573,602,605],{"href":603,"rel":604},"https://labs.jumpsec.com/tokensmith-bypassing-intune-compliant-device-conditional-access/",[577],"blog post di accompagnamento",", rendendo la tecnica accessibile a un pubblico più ampio.",[569,608,609,610,615],{},"Inoltre è stato pubblicato un ",[573,611,614],{"href":612,"rel":613},"https://github.com/zh54321/PoCEntraDeviceComplianceBypass/blob/main/poc_entra_compliance_bypass.ps1",[577],"PoC scritto in PowerShell",".",[569,617,618],{},"Da fine dicembre, noi di glueckkanja AG stiamo studiando come prevenire e rilevare questa tecnica. In questo blog post condividiamo alcune delle nostre osservazioni sull'attacco e discutiamo opzioni di mitigazione e rilevamento.",[558,620,622],{"id":621},"tldr","TL;DR",[525,624,564],{},[525,626,627,628,633,634],{},"Esistono alcune risorse con un'esclusione integrata su specifici Grant Control e condizioni del Conditional Access, pensata per risolvere determinati problemi. Una di queste è l'esclusione della Company Portal App dalla Device Compliance, per risolvere il classico problema dell'uovo e della gallina, ovvero far arrivare i dispositivi in Intune prima che siano considerati compliant. Questo comportamento è ",[573,629,632],{"href":630,"rel":631},"https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-alt-all-users-compliant-hybrid-or-mfa#:~:text=You%20can%20enroll,Company%20Portal%20application",[577],"documentato qui",".\n",[635,636,637],"strong",{},"Questo significa che puoi ottenere access e refresh token per questa app da un dispositivo non gestito, anche se una policy CA impone la Device Compliance per «All resources».",[525,639,640,645],{},[641,642],"img",{"alt":643,"src":644},"image.png","https://res.cloudinary.com/c4a8/image/upload/blog/pics/company-portal-ca-bypass-02.png","{: .post__screenshot}",[525,647,648,649,653,654],{},"Microsoft ha implementato una funzionalità chiamata Family of Client IDs (FOCI) che consente a un gruppo di applicazioni client OAuth Microsoft di ottenere access token come qualsiasi altro client della famiglia utilizzando il proprio refresh token. Un comportamento altrimenti non consentito dallo standard OAuth2. Leggi il ",[573,650,652],{"href":588,"rel":651},[577],"lavoro originale di Secureworks"," per maggiori dettagli.\n",[635,655,656],{},"Poiché la Company Portal App è un «family member», i Refresh Token richiesti per essa possono essere usati per ottenere token per altre app della famiglia.",[525,658,659,660],{},"La funzionalità FOCI è limitata e il consenso tra client id e resource deve essere configurato e concesso in modo esplicito. Nel caso della Company Portal App questo consenso è stato concesso, tra gli altri, per l'accesso a Microsoft Graph con uno scope ristretto e all'Azure AD Graph API con i permessi dell'utente corrente.\n",[635,661,662],{},"Questo significa che un refresh token di Company Portal può essere usato per ottenere, ad esempio, access token per l'Azure AD Graph API con lo scope user_impersonation, permettendoci di fare molte cose con AADInternals o ROADrecon.",[525,664,665],{},"Per eseguire l'attacco, l'attaccante ha bisogno delle credenziali valide della vittima e della capacità di eseguire l'MFA se richiesto dal Conditional Access, oppure di un refresh token valido.",[558,667,669],{"id":668},"quali-rischi-e-quale-blast-radius-esistono","Quali rischi e quale blast radius esistono?",[525,671,564],{},[673,674,676],"h3",{"id":675},"quali-delle-possibili-risorse-scope-sono-interessate-dallesclusione-della-compliance","Quali delle possibili risorse (scope) sono interessate dall'esclusione della compliance?",[525,678,679],{},"{: .h4-font-size}",[525,681,682],{},"L'attaccante ha la possibilità di richiedere token per un'altra applicazione FOCI, come già descritto. Microsoft, però, ha implementato il bypass dei requisiti di device compliance solo per l'accesso ai token di determinate applicazioni resource su specifici scope di permessi API. In particolare, i seguenti permessi API delegati sono sensibili e di interesse per gli attaccanti:",[684,685,686],"style",{},"\ntable {\n  font-family: arial, sans-serif;\n  border-collapse: collapse;\n  width: 100%;\n}\n\ntd, th {\n  border: 1px solid #dddddd;\n  text-align: left;\n  padding: 8px;\n}\n\ntr:nth-child(even) {\n  background-color: #dddddd;\n}\n",[688,689,690,706],"table",{},[691,692,693],"thead",{},[694,695,696,700,703],"tr",{},[697,698,699],"th",{},"Resource Application",[697,701,702],{},"Application Id",[697,704,705],{},"Delegated Permission Scope",[707,708,709,721,732,743],"tbody",{},[694,710,711,715,718],{},[712,713,714],"td",{},"AADGraph",[712,716,717],{},"00000002-0000-0000-c000-000000000000",[712,719,720],{},"user_impersonation",[694,722,723,726,729],{},[712,724,725],{},"Microsoft Graph API",[712,727,728],{},"00000003-0000-0000-c000-000000000000",[712,730,731],{},"\"email\", \"openid\", \"profile\",\"Device.Read.All\", \"DeviceManagementConfiguration.Read.All\", \"DeviceManagementConfiguration.ReadWrite.All\", \"ServicePrincipalEndpoint.Read.All\", \"User.Read\"",[694,733,734,737,740],{},[712,735,736],{},"Device Registration Service",[712,738,739],{},"01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9",[712,741,742],{},"adrs_access",[694,744,745,748,751],{},[712,746,747],{},"Windows Azure Service Management API",[712,749,750],{},"797f4846-ba00-4fd7-ba43-dac1f8f63013",[712,752,720],{},[525,754,755],{},"Poiché i permessi concessi non sono per l'applicazione stessa, l'impatto dipende dai privilegi del chiamante (account utente) e da quali scope di permessi delegati sono autorizzati a eseguire chiamate API su quello scope.",[525,757,758],{},"Diamo un'occhiata più da vicino alla criticità degli scope di permessi delegati mostrati e alle potenziali autorizzazioni per chiamare API sensibili.",[558,760,762],{"id":761},"quali-privilegi-e-scope-delegati-sono-critici","Quali privilegi e scope delegati sono critici?",[525,764,564],{},[673,766,768],{"id":767},"azure-ad-graph-api","Azure AD Graph API",[525,770,679],{},[525,772,773,774,779,780,785],{},"L'interfaccia programmatica legacy offre molte API per gestire directory settings e oggetti in Entra ID (Azure AD). Include Conditional Access policy, directory roles, operazioni CRUD su gruppi e dispositivi, oltre a operazioni sull'utente autenticato, come il cambio password. Un elenco completo di tutte le operazioni supportate è disponibile nella ",[573,775,778],{"href":776,"rel":777},"https://learn.microsoft.com/en-us/previous-versions/azure/ad/graph/api/api-catalog",[577],"documentazione dell'Azure AD Graph API",". Questa API sarà completamente ritirata il 30 giugno 2025 (in base agli ",[573,781,784],{"href":782,"rel":783},"https://learn.microsoft.com/en-us/graph/migrate-azure-ad-graph-overview",[577],"ultimi annunci di Microsoft",").",[525,787,788,789,792],{},"Lo scope delegato «user_impersonation» consente all'applicazione (in questo caso Company Portal) di agire per conto dell'utente. Ogni permesso che l'utente autenticato ha su un oggetto Entra, uno scope o a livello di directory può quindi essere usato come autorizzazione nelle chiamate API. L'utente potrebbe essere il proprietario di un oggetto Entra ID (applicazione, gruppo o altro), oppure potrebbe avere permessi assegnati tramite role assignment di Entra ID. ",[635,790,791],{},"In caso di role assignment attivi ad alto privilegio, questo consentirebbe all'attaccante di modificare oggetti o compromettere il tenant."," Anche senza alcun privilegio, i default user permission possono comunque essere usati per un'estesa ricognizione ed enumerazione degli oggetti di directory nel tenant.",[525,794,795],{},"Gli scenari e l'impatto dell'abuso dell'Azure AD Graph API dipendono quindi dai privilegi assegnati in modo attivo o permanente all'utente compromesso. Le API per accedere ai servizi Microsoft 365 (ad esempio per l'esfiltrazione da OneDrive) non sono incluse in Azure AD Graph.",[673,797,725],{"id":798},"microsoft-graph-api",[525,800,679],{},[525,802,803],{},"Rispetto ad Azure AD Graph, lo scope delegato verso Microsoft Graph API è limitato a un ambito ben definito. Include gli scope OpenID (openid, email, profile) e operazioni di lettura di base per conto dell'utente (ServicePrincipalEndpoint.Read.All, User.Read).",[525,805,806],{},"L'elenco e la lettura di tutti gli oggetti device si possono ottenere chiamando l'endpoint «device» in Microsoft Graph con i permessi di default usando «Device.Read.All». Questo può aiutare gli attaccanti a ottenere informazioni sugli oggetti device.",[525,808,809],{},"Nel caso di un utente compromesso a cui è assegnato «Intune Administrator» o una qualsiasi delega nel RBAC di Microsoft Intune, i seguenti permessi API delegati concessi vanno considerati problematici:",[566,811,812,815],{},[569,813,814],{},"«DeviceManagementConfiguration.Read.All»",[569,816,817],{},"«DeviceManagementConfiguration.ReadWrite.All»",[525,819,820],{},[635,821,822,823,828],{},"Questi permessi delegati consentono operazioni CRUD, ad esempio su Device Compliance e Configuration Policy, ma anche il deployment di ",[573,824,827],{"href":825,"rel":826},"https://learn.microsoft.com/en-us/graph/api/intune-shared-devicemanagementscript-create?view=graph-rest-beta",[577],"Management Script"," per ulteriori attività malevole sui dispositivi target.",[673,830,736],{"id":831},"device-registration-service",[525,833,679],{},[525,835,836],{},"Con questo permesso l'attaccante è in grado di fare join o register di un dispositivo su Entra ID. Questo gli permetterebbe a sua volta di enrollare il dispositivo in Intune e, a seconda della configurazione Intune, ottenere un dispositivo valido e compliant per accedere ad altri servizi protetti.",[673,838,840],{"id":839},"altre-applicazioni-foci","Altre applicazioni FOCI",[525,842,679],{},[525,844,845],{},"Richiedere l'accesso ad altre interfacce privilegiate, ad esempio l'Azure Resource Manager API, rientra nel perimetro FOCI ed è di interesse per l'attaccante. Questa resource, però, resta protetta e non è bypassata dal grant control di Conditional Access «compliant device».",[525,847,848],{},[641,849],{"alt":643,"src":850},"https://res.cloudinary.com/c4a8/image/upload/blog/pics/company-portal-ca-bypass-03.png",[558,852,854],{"id":853},"possiamo-rilevare-questa-tecnica-di-attacco","Possiamo rilevare questa tecnica di attacco?",[525,856,564],{},[525,858,859],{},"Come descritto sopra, il rischio maggiore deriva dall'accesso a MS Graph e Azure AD Graph.",[525,861,862],{},"Poiché l'application ID della Microsoft Intune Company Portal App è sempre lo stesso in questo caso, il compito principale per costruire un rilevamento è escludere l'uso legittimo dovuto ad esempio a device registration, che in base alle nostre osservazioni si distingue per quali risorse vengono accedute per prime in una sessione. In caso di attacco si tratta di solito di MS Graph o Azure AD Graph.",[525,864,865],{},"Ecco un rilevamento funzionante che abbiamo testato in diversi ambienti di dimensioni differenti:",[867,868,870,871,874,875,880,881,885,889,892,893,895,892,899,874,901,903,904,892,908,910,892,913,874,915,917,918,920,892,923,874,925,927,928,931,932,935,936,939,940,874,942,945,946,948,892,951,874,953,931,956,958,959,961,962,964,965,892,968,961,970,973,974,977,978,980,981,945,984,986,892,989,874,991,993,994,874,996,998,999,892,1002,1004,892,1006,874,1008,903,1010,892,1012,1014,892,1017,874,1019,927,1021,931,1023,935,1025,939,1027],"div",{"style":869},"background-color:#000000; font-family: 'Source Code Pro', 'Courier New', monospace; padding: 15px; color: #ffffff","\nAADSignInEventsBeta ",[872,873],"br",{},"\n| ",[876,877,879],"span",{"style":878},"color: #569CD6;","where"," Timestamp > ",[876,882,884],{"style":883},"color: #E6DB74;","ago(",[876,886,888],{"style":887},"color: #A6E22E;","7d",[876,890,891],{"style":883},")"," ",[872,894],{},[876,896,898],{"style":897},"color: #75715E;","// Access to Microsoft Intune Company Portal",[872,900],{},[876,902,879],{"style":878}," ApplicationId == ",[876,905,907],{"style":906},"color: #D69D85;","@\"9ba1a5c7-f17a-4de9-a1f1-6178c8d51223\"",[872,909],{},[876,911,912],{"style":897},"// From non joined/registered device",[872,914],{},[876,916,879],{"style":878}," isempty(AadDeviceId) ",[872,919],{},[876,921,922],{"style":897},"// Used to access resource Microsoft Graph or Windows Azure Active Directory",[872,924],{},[876,926,879],{"style":878}," ResourceId ",[876,929,930],{"style":878},"in"," (",[876,933,934],{"style":906},"\"00000002-0000-0000-c000-000000000000\"",", ",[876,937,938],{"style":906},"\"00000003-0000-0000-c000-000000000000\"",") ",[872,941],{},[876,943,944],{"style":878},"summarize by"," SessionId ",[872,947],{},[876,949,950],{"style":897},"// Find the initial logon event based on the session Id",[872,952],{},[876,954,955],{"style":878},"join kind=inner",[872,957],{},"\n    AADSignInEventsBeta ",[872,960],{},"\n    | ",[876,963,879],{"style":878}," ErrorCode == ",[876,966,967],{"style":887},"0",[872,969],{},[876,971,972],{"style":878},"summarize arg_min(","Timestamp, *",[876,975,976],{"style":878},") by"," SessionId)",[872,979],{},"\n    ",[876,982,983],{"style":878},"on",[872,985],{},[876,987,988],{"style":897},"// Ignore trusted and managed devices",[872,990],{},[876,992,879],{"style":878}," isempty(DeviceTrustType) ",[872,995],{},[876,997,879],{"style":878}," IsManaged != ",[876,1000,1001],{"style":887},"1",[872,1003],{},[876,1005,898],{"style":897},[872,1007],{},[876,1009,879],{"style":878},[876,1011,907],{"style":906},[872,1013],{},[876,1015,1016],{"style":897},"// when the first requested resource is Microsoft Graph or Windows Azure Active Directory",[872,1018],{},[876,1020,879],{"style":878},[876,1022,930],{"style":878},[876,1024,934],{"style":906},[876,1026,938],{"style":906},[872,1028],{},[558,1030,1032],{"id":1031},"come-dobbiamo-rispondere-quando-rileviamo-attività-sospette","Come dobbiamo rispondere quando rileviamo attività sospette?",[525,1034,564],{},[525,1036,1037],{},"Avvia il tuo processo di incident response utilizzando un playbook definito che contenga:",[566,1039,1040,1061,1069,1072,1075],{},[569,1041,1042,1043],{},"Hunting di attività sospette o anomale da parte dell'utente compromesso\n",[566,1044,1045,1052,1055,1058],{},[569,1046,1047,1048],{},"Riepilogo dei sign-in non interattivi verso Resource Application, inclusi IP e UserAgent basati su ",[1049,1050,1051],"code",{},"sessionId",[569,1053,1054],{},"Verifica se i Microsoft Entra Audit Log mostrano operazioni critiche da parte dell'utente o degli IP (ad esempio credenziali aggiunte a app registration di proprietà)",[569,1056,1057],{},"Identifica se l'utente ha registrato dispositivi nella sessione interessata",[569,1059,1060],{},"Controlla gli audit log di Intune per operazioni dell'applicazione «Company Portal» e dell'utente coinvolto",[569,1062,1063,1064],{},"Hunting di alert correlati sulle entità impattate\n",[566,1065,1066],{},[569,1067,1068],{},"Cerca le entità nella tabella AlertEvidence per identificare altri alert basati su SessionId, IP e utente",[569,1070,1071],{},"Identifica la criticità dell'utente (per privilegi) in Exposure Management",[569,1073,1074],{},"Revisiona i risultati dell'hunting e verifica se l'azione era legittima nell'ambito di un device enrollment.",[569,1076,1077],{},"Identifica il vettore di accesso iniziale e resetta le credenziali dell'utente, e se serve anche i dispositivi.",[558,1079,1081],{"id":1080},"possiamo-mitigare-lattacco","Possiamo mitigare l'attacco?",[525,1083,564],{},[525,1085,1086,1087,1090],{},"Poiché l'esclusione configurata è necessaria per l'Intune enrollment, ",[635,1088,1089],{},"non esiste una mitigazione che non rompa altre parti di Microsoft 365",". L'accesso alla resource Azure AD Graph non può essere ristretto o bloccato direttamente. Qualsiasi Conditional Access policy che usi «Block» come grant control impedirà l'accesso, ma potrebbe avere altre implicazioni.",[525,1092,1093],{},"Per la mitigazione è cruciale però capire che questo bypass del Conditional Access non è un attacco completo. È una tecnica che, come passaggio, abilita una serie di attacchi.",[525,1095,1096],{},"Un possibile attack path potrebbe essere:",[1098,1099,1100,1103,1106,1109],"ol",{},[569,1101,1102],{},"Account Compromise via phishing e AiTM",[569,1104,1105],{},"Bypass del Conditional Access",[569,1107,1108],{},"Reconnaissance con, ad esempio, ROADrecon, GraphRunner o AADInternals",[569,1110,1111],{},"Lateral Movement, Privilege Escalation o Persistence tramite un dispositivo appena registrato ed enrollato in Intune",[525,1113,1114],{},"Dato che non possiamo mitigare il bypass del Conditional Access senza rompere l'Intune enrollment, è più che ragionevole implementare mitigazioni negli altri step dell'attack path e mettere in campo detection adeguate.",[525,1116,1117],{},"Per ridurre probabilità e impatto suggeriamo di rafforzare gli altri controlli e implementare a breve quanto segue:",[566,1119,1120,1126,1132,1138,1144,1160,1166],{},[569,1121,1122,1125],{},[635,1123,1124],{},"Applica MFA per «All Users» e «All Cloud Apps» tramite Conditional Access."," Se applichi solo Device Compliance, con questa tecnica basta un'autenticazione a fattore singolo.",[569,1127,1128,1131],{},[635,1129,1130],{},"Non usare Device Compliance o MFA nelle tue regole, applicali sempre entrambi."," Un OR non limiterebbe mai l'accesso solo ai dispositivi compliant, perché un access token con MFA nello scope sarebbe sufficiente per accedere al tenant.",[569,1133,1134,1137],{},[635,1135,1136],{},"Restringi la Security Information Registration ai Compliant Device, alla Phishing Resistant Authentication o al TAP."," Nei nostri test non siamo riusciti a bypassare la Device Compliance per la Security Info Registration.",[569,1139,1140,1143],{},[635,1141,1142],{},"Richiedi Phishing Resistant Authentication o TAP per Join o Register Devices."," Senza questa protezione sarà possibile registrare un dispositivo, ad esempio con AADInternals e questa tecnica.",[569,1145,1146,1149,1150],{},[635,1147,1148],{},"Richiedi MFA e «Sign-in frequency every time» per l'Intune Enrollment."," Questo limita la finestra temporale in cui un attaccante potrebbe usare credenziali fresche per enrollare un nuovo dispositivo in Intune.\n",[1151,1152,1153],"blockquote",{},[525,1154,1155,1156,1159],{},"🚧\n",[635,1157,1158],{},"Attenzione, Sign-in frequency every time significa ogni cinque minuti.","\nMicrosoft applica un clock skew di cinque minuti quando in una policy di Conditional Access si seleziona «every time», in modo che agli utenti non venga chiesto di autenticarsi più di una volta ogni cinque minuti.",[569,1161,1162,1165],{},[635,1163,1164],{},"Blocca i dispositivi di proprietà personale nelle restrizioni di Intune Enrollment."," Senza queste restrizioni un attaccante potrebbe enrollare un nuovo dispositivo e guadagnare un ulteriore appoggio.",[569,1167,1168,1171],{},[635,1169,1170],{},"Imposta la device compliance in modo che fallisca quando nessuna compliance policy è assegnata a un dispositivo in Intune."," Per impostazione predefinita ogni dispositivo è considerato compliant, anche se non viene applicata alcuna policy. Cambia questo comportamento e rendi obbligatoria una device compliance policy.",[525,1173,1174,1175,615],{},"Sul lungo periodo ti incoraggiamo a investire nel rollout di autenticazione passwordless e phishing-resistant come Windows Hello for Business e Passkey (incluse le Platform Credential tramite macOS Platform SSO). Questo ti consentirà di applicare progressivamente autenticazione phishing-resistant e di bloccare gli attacchi AiTM. Al posto della password, abilita l'uso del Temporary Access Pass (TAP) per tempi e scenari limitati, ad esempio l'onboarding di nuovi dispositivi o dipendenti. Per supportare l'uso dei TAP in vari casi d'uso abbiamo costruito ",[573,1176,287],{"href":1177,"rel":1178},"https://myworkid.cloud/",[577],[558,1180,1182],{"id":1181},"conclusioni","Conclusioni",[525,1184,564],{},[525,1186,1187],{},"Il Conditional Access, come motore Zero Trust per Entra ID, è già di per sé complicato. Le esclusioni integrate aggiunte da Microsoft nel backend di Entra rendono ancora più difficile per molti capire l'impatto di policy e protezioni. Nonostante ciò, l'idea di Zero Trust e di defense in depth regge.",[525,1189,1190],{},"La device compliance policy impedisce gran parte degli attacchi AiTM e l'autenticazione a più fattori rende più difficile per qualsiasi attaccante abusare di credenziali leaked o comunque compromesse.",[525,1192,1193],{},"Tutte queste misure di sicurezza vanno usate insieme, e non l'una al posto dell'altra. Questo garantisce un ambiente sicuro anche se una delle difese viene manomessa o superata.",[525,1195,1196],{},"Consigliamo vivamente di implementare il rilevamento fornito in Microsoft Defender XDR per assicurare l'individuazione di potenziali abusi. Assicurati che il tuo SOC sia pronto a investigare questi incidenti e forniscigli i playbook necessari.",{"title":529,"searchDepth":530,"depth":530,"links":1198},[1199,1200,1201,1205,1211,1212,1213,1214],{"id":560,"depth":530,"text":561},{"id":621,"depth":530,"text":622},{"id":668,"depth":530,"text":669,"children":1202},[1203],{"id":675,"depth":1204,"text":676},3,{"id":761,"depth":530,"text":762,"children":1206},[1207,1208,1209,1210],{"id":767,"depth":1204,"text":768},{"id":798,"depth":1204,"text":725},{"id":831,"depth":1204,"text":736},{"id":839,"depth":1204,"text":840},{"id":853,"depth":530,"text":854},{"id":1031,"depth":530,"text":1032},{"id":1080,"depth":530,"text":1081},{"id":1181,"depth":530,"text":1182},"post",{"lang":1217,"seoTitle":1218,"titleClass":1219,"date":1220,"categories":1221,"blogtitlepic":1222,"socialimg":1223,"customExcerpt":1224,"keywords":1225,"contactInContent":1226,"scripts":1283},"it","Compliant Device Bypass in Microsoft Intune – Rilevamento, risposta e mitigazione","h2-font-size","2025-01-14",[235],"header-company-portal-ca-bypass","/blog/heads/header-company-portal-ca-bypass.png","In questo blog post, l'MVP di glueckkanja Fabian Bader, Chris Brumm e Thomas Naunheim raccolgono i dettagli sul Compliant Device Bypass nel Microsoft Intune Company Portal. Dopo ulteriori analisi, hanno individuato un approccio per rilevare e rispondere a questa potenziale minaccia. Trovi anche indicazioni sul Conditional Access per ridurre la superficie d'attacco e dettagli sul blast radius.","Compliant Device Bypass, Microsoft Intune, Conditional Access, Entra ID, Intune Company Portal, device compliance, esclusione CA, TokenSmith PoC, cloud security, PowerShell PoC, Fabian Bader, Christopher Brumm, Thomas Naunheim, minaccia di sicurezza, Black Hat Europe, Intune Enrollment, risposta MSRC, rilevamento attacchi, mitigazione minacce, cloud compliance, funzionalità FOCI",{"quote":484,"infos":1227},{"bgColor":1228,"color":1229,"boxBgColor":1230,"boxColor":1231,"headline":1232,"subline":1233,"level":558,"textStyling":1234,"flush":1235,"person":1236,"form":1248},"var(--color-gk-violet)","var(--color-gk-white)","var(--color-gk-yellow)","var(--color-copy)","Contattaci ora","Vuoi saperne di più sul Compliant Device Bypass e su come rilevarlo e mitigarlo in modo efficace? I nostri esperti sono pronti a illustrarti i nostri risultati e a supportarti con strategie collaudate per rafforzare la sicurezza. Non vediamo l'ora di sentirti.","text-light","justify-content-end",{"image":1237,"cloudinary":325,"alt":1238,"name":1238,"detailsHeader":1239,"details":1240},"/people/people-pam-team.png","Project & Account Management","Aspettiamo di sentirti.",[1241,1245],{"text":492,"href":1242,"details":1243,"icon":1244},"tel:+49 69 4005520","Chiama ora","site/phone",{"text":493,"href":1246,"icon":1247},"mailto:info@glueckkanja.com","site/mail",{"ctaText":1249,"cta":1250,"method":1215,"action":1252,"fields":1253},"Invia",{"skin":1251},"primary on-surface","/send",[1254,1258,1263,1266,1270,1275,1278,1281],{"type":1255,"id":1256,"value":1257},"hidden","_next","successful",{"label":1259,"type":1260,"id":1261,"required":325,"requiredMsg":1262},"Nome*","text","name","Inserisci il tuo nome.",{"label":1264,"type":1260,"id":403,"required":325,"requiredMsg":1265},"Azienda*","Inserisci la tua azienda.",{"label":1267,"type":1268,"id":1268,"required":325,"requiredMsg":1269},"Indirizzo email*","email","Inserisci il tuo indirizzo email.",{"label":1271,"type":1272,"id":1273,"required":325,"requiredMsg":1274},"I tuoi dati saranno conservati da noi per l'elaborazione e la risposta alla tua richiesta. Per maggiori informazioni sulla protezione dei dati consulta la nostra \u003Ca href=\"/it/privacy\">Privacy Policy\u003C/a>.","checkbox","dataprotection","Conferma per favore",{"type":1255,"id":1276,"value":1277},"_subject","Request Global Secure Access | IT",{"type":1255,"id":1279,"value":1280},"inbox_key","gkgab-contact-form",{"type":1255,"id":1282},"_gotcha",{"slick":325,"form":325},"/posts/2025-01-14-compliant-device-bypass",{"title":551,"description":529},"posts/2025-01-14-compliant-device-bypass",[235,1288,1289,1290,281],"Entra","Conditional Access","ITDR","HV4rDWwhNVFAY1i3tm9pTB1BEvs-Zb5flUE6gUWxvP0",{"id":1293,"title":1294,"author":1295,"body":1296,"cta":494,"description":1300,"eventid":494,"extension":532,"hideInRecent":484,"layout":1215,"meta":2082,"moment":2084,"navigation":325,"path":2105,"seo":2106,"stem":2107,"tags":2108,"webcast":484,"__hash__":2111},"content_it/posts/2025-12-31-vulnerability-consentfix.md","AuthCodeFix aka ConsentFix",[520,553,554],{"type":522,"value":1297,"toc":2062},[1298,1301,1304,1307,1313,1316,1319,1328,1333,1341,1361,1364,1370,1373,1376,1382,1387,1391,1402,1408,1411,1414,1418,1421,1427,1434,1437,1457,1467,1471,1474,1477,1480,1483,1487,1490,1493,1510,1519,1523,1527,1547,1551,1556,1567,1570,1578,1582,1596,1600,1611,1615,1618,1626,1629,1637,1640,1648,1652,1655,1676,1679,1745,1748,1751,1754,1757,1760,1766,1769,1810,1814,1829,1833,1836,1850,1853,1856,1861,1864,1875,1879,1886,1890,1896,1901,1915,1921,1927,1933,1944,1947,1953,1956,1981,1989,1993,2013,2019,2022,2028,2032],[525,1299,1300],{},"Come da tradizione poco prima della fine dell'anno, appare una nuova vulnerabilità o un vettore di attacco astuto, e i Defender si ritrovano a cercare di proteggere i loro utenti. Nel frattempo, altri attaccanti e red teamer osservano da vicino e si adattano.",[525,1302,1303],{},"Quest'anno, PushSecurity ha rilevato un attacco che ha chiamato «ConsentFix», un'evoluzione dell'attacco ClickFix che si basa sull'utente per fornire all'attaccante un URI che di fatto consegna la chiave del regno di Entra. Il metodo usato in the wild si basava su un'azione manuale di copia e incolla da parte dell'utente per funzionare. Nel giro di pochi giorni, John Hammond ha pubblicato un video che mostrava una versione migliorata dell'attacco che non richiedeva più il copia e incolla; l'utente poteva semplicemente trascinare e rilasciare il suo auth code all'attaccante.",[525,1305,1306],{},"Se esaminiamo i dettagli tecnici del motivo per cui questo attacco funziona e apparentemente aggira la device compliance e altri requisiti di Conditional Access, ci ritroviamo nell'authorization code flow di OAuth 2.0.",[525,1308,1309],{},[641,1310],{"alt":1311,"src":1312},"OAuth 2.0 authorization code flow","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-01.png",[525,1314,1315],{},"L'attaccante crea un URI di login di Microsoft Entra che punta al client «Microsoft Azure CLI» e alla risorsa «Azure Resource Manager», e apre questo URI quando l'utente visita il sito web malevolo.",[525,1317,1318],{},"Mappato all'authorization code flow, questo corrisponde al primo passo che una native public app come Azure CLI normalmente chiamerebbe per autenticare l'utente. L'applicazione crea un listener sulla macchina su cui viene eseguita, su una porta alta casuale. Questa porta viene utilizzata come cosiddetto reply URI.",[525,1320,1321,1322,1327],{},"Puoi riprodurre facilmente questo scenario, ad esempio usando ",[573,1323,1326],{"href":1324,"rel":1325},"https://github.com/f-bader/TokenTacticsV2",[577],"TokenTacticsV2",", oppure costruendo l'URI manualmente.",[525,1329,1330],{},[641,1331],{"alt":1326,"src":1332},"https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-02.png",[525,1334,1335,1336,1340],{},"Dopo che l'utente accede con successo a Entra ID, viene reindirizzato al reply URI, ad esempio ",[573,1337,1338],{"href":1338,"rel":1339},"http://localhost:3001",[577],". In uno scenario normale, Azure CLI ora accetterebbe la chiamata a questo URI e riceverebbe l'informazione importante e critica che fa parte del redirect:",[566,1342,1343,1353],{},[569,1344,1345,1347,1349,1350,1352],{},[635,1346,1049],{},[872,1348],{},"\nQuesto è l'authorization_code, che l'applicazione usa per richiedere un bearer token, il quale è composto da access, ID e opzionalmente refresh token.",[872,1351],{},"\nSecondo la documentazione, questo codice è valido per circa 10 minuti e deve essere riscattato entro questo tempo.",[569,1354,1355,1358,1360],{},[635,1356,1357],{},"state",[872,1359],{},"\nQuesto è un parametro opzionale, e l'applicazione dovrebbe verificare che sia identico nella richiesta e nella risposta.",[525,1362,1363],{},"Nello scenario di attacco, l'utente viene comunque reindirizzato, ma poiché nessuna applicazione è in esecuzione su localhost, il browser incontra un errore.",[525,1365,1366],{},[641,1367],{"alt":1368,"src":1369},"The browser runs into an error","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-03.png",[525,1371,1372],{},"Ma l'URI contiene ancora le informazioni sensibili, ed è proprio questo che l'attaccante vuole che l'utente gli fornisca. Se l'utente asseconda la richiesta, l'attaccante riscatterà ora il materiale del token e potrà poi usare l'access e il refresh token per accedere alla risorsa, in questo caso Azure Resource Manager.",[525,1374,1375],{},"In questo screenshot vedrai come recuperare il bearer token usando l'URI fornito dall'utente.",[525,1377,1378],{},[641,1379],{"alt":1380,"src":1381},"Bearer token using the URI provided by the user","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-04.png",[1151,1383,1384],{},[525,1385,1386],{},"Se vuoi testare le tue detection, assicurati di eseguire l'ultimo passaggio da un sistema diverso, in una rete diversa.",[558,1388,1390],{"id":1389},"artefatti-di-detection","Artefatti di detection",[525,1392,1393,1394,1397,1398,1401],{},"Quando riproduci l'attacco e controlli i ",[1049,1395,1396],{},"SigninLogs"," e gli ",[1049,1399,1400],{},"AADNonInteractiveUserSignInLogs",", vedrai due eventi per questa singola attività di sign-in. Il primo evento rappresenta il sign-in effettivo dell'utente, mentre il secondo proviene dall'infrastruttura dell'attaccante.",[525,1403,1404],{},[641,1405],{"alt":1406,"src":1407},"Activity Log","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-05.png",[525,1409,1410],{},"La grande differenza è che il primo evento è un sign-in interattivo, mentre il secondo è non interattivo. Questo si traduce nelle due fasi del flow di autenticazione: prima l'utente, poi l'applicazione o, nel nostro caso, l'attaccante.",[525,1412,1413],{},"Il comportamento regolare di Azure CLI sarebbe che entrambi gli eventi di sign-in provengano dallo stesso indirizzo IP. Tuttavia, nel nostro caso gli indirizzi IP sono diversi e provengono da paesi diversi. Naturalmente, quest'ultimo non è un indicatore affidabile, poiché l'attaccante potrebbe risiedere nello stesso paese della vittima per nascondere le proprie tracce.",[673,1415,1417],{"id":1416},"anello-mancante","Anello mancante",[525,1419,1420],{},"Cercando un buon modo per collegare questi due eventi, la prima idea naturale è stata di controllare lo Unique Token Identifier (UTI). Tuttavia, Microsoft usa valori diversi per l'UTI dell'authorization code e l'UTI del bearer token, quindi questo approccio non funziona come collegamento affidabile.",[525,1422,1423],{},[641,1424],{"alt":1425,"src":1426},"Unique Token Identifier","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-06.png",[525,1428,1429,1430,1433],{},"Tuttavia, il ",[1049,1431,1432],{},"SessionId"," è un buon collegamento tra i due, anche se è un ID di lunga durata e potrebbe contenere più combinazioni di questi eventi, anche legittime.",[525,1435,1436],{},"Con la conoscenza aggiuntiva dei limiti dell'auth code flow e con user id e application id come collegamenti supplementari, puoi usare il tempo come importante fattore di detection:",[566,1438,1439,1442,1445,1448,1451,1454],{},[569,1440,1441],{},"Entrambi gli eventi condividono lo stesso SessionId",[569,1443,1444],{},"Entrambi gli eventi condividono lo stesso ApplicationId",[569,1446,1447],{},"Entrambi gli eventi condividono lo stesso UserId",[569,1449,1450],{},"Il secondo evento deve essere successivo al primo",[569,1452,1453],{},"Il secondo evento deve avvenire entro una finestra temporale di circa 10 minuti dopo il primo. Non dovresti usare esattamente 10 minuti, poiché Microsoft scrive «[...] they expire after about 10 minutes»",[569,1455,1456],{},"Dovresti considerare solo il secondo evento immediatamente successivo, non quelli seguenti",[1151,1458,1459],{},[525,1460,1461,1464,1466],{},[635,1462,1463],{},"Fun fact",[872,1465],{},"\nIl ResourceIdentity non è un buon collegamento, poiché l'attaccante può cambiare la risorsa dato che non è legata all'auth code. L'application ID di destinazione non può essere modificato.",[558,1468,1470],{"id":1469},"ridurre-il-rumore","Ridurre il rumore",[525,1472,1473],{},"Questa conoscenza ci ha già fornito una detection funzionante, ma nel mix c'erano anche benign positive. Gli sviluppatori moderni usano risorse cloud che appaiono come istanze locali, ma che producono pattern di login irregolari nei log.",[525,1475,1476],{},"La differenza chiave è la componente temporale. Mentre l'attacco richiede l'interazione dell'utente per copiare e incollare o trascinare l'URI, il caso d'uso di GitHub Codespace che abbiamo identificato come fonte degli alert benign positive è completamente automatizzato e riscatta l'auth code in pochi secondi.",[525,1478,1479],{},"Quindi filtrare tutto ciò che esegue questa danza di autenticazione in pochi secondi può molto probabilmente essere rimosso come benigno.",[525,1481,1482],{},"Un'altra fonte di rumore potrebbero essere gli egress point mutevoli per il tuo traffico internet, in particolare negli scenari SD-WAN, ZTNA o Secure Web Gateway.",[558,1484,1486],{"id":1485},"applicazioni-first-party-interessate","Applicazioni first-party interessate",[525,1488,1489],{},"Mentre il report iniziale mostra «Microsoft Azure CLI» come l'applicazione abusata, ci sono molte diverse app first-party di Microsoft con pre-consent in ogni tenant che offrono localhost come redirect. E non sono le uniche a essere un obiettivo. L'attaccante potrebbe anche abusare di reply test e dev URL che non sono pubblicamente risolvibili.",[525,1491,1492],{},"Ecco una lista delle applicazioni più rilevanti che hanno anche permessi pre-consented elevati sulle risorse.",[566,1494,1495,1498,1501,1504,1507],{},[569,1496,1497],{},"Microsoft Azure CLI (04b07795-8ddb-461a-bbee-02f9e1bf7b46)",[569,1499,1500],{},"Microsoft Azure PowerShell (1950a258-227b-4e31-a9cf-717495945fc2)",[569,1502,1503],{},"Visual Studio (04f0c124-f2bc-4f59-8241-bf6df9866bbd)",[569,1505,1506],{},"Visual Studio Code (aebc6443-996d-45c2-90f0-388ff96faa56)",[569,1508,1509],{},"MS Teams PowerShell Cmdlets (12128f48-ec9e-42f0-b203-ea49fb6af367)",[525,1511,1512,1513,1518],{},"Una lista completa di queste app è ora inclusa in ",[573,1514,1517],{"href":1515,"rel":1516},"https://entrascopes.com/?authcodeFix=true",[577],"EntraScopes.com"," dal nostro collega Fabian Bader.",[558,1520,1522],{"id":1521},"mitigazioni-e-protezioni","Mitigazioni e protezioni",[673,1524,1526],{"id":1525},"limitare-la-superficie-di-attacco-e-laudience","Limitare la superficie di attacco e l'audience",[867,1528,1531,1534,1535,1537,1540,1541,1543,1546],{"className":1529},[1530],"option-block",[635,1532,1533],{},"Deployment effort:"," Low to High (depends on effort to identify legitimate users)",[872,1536],{},[635,1538,1539],{},"Mitigation:"," Medium (reduces the potential audience for the attack)",[872,1542],{},[635,1544,1545],{},"Scope:"," limited\n",[673,1548,1550],{"id":1549},"opzione-1-require-user-assignment","Opzione 1: Require User Assignment",[1552,1553,1555],"h4",{"id":1554},"prerequisiti","Prerequisiti:",[566,1557,1558,1561,1564],{},[569,1559,1560],{},"Aggiungi il service principal per le app first-party interessate usando la Microsoft Graph API o PowerShell",[569,1562,1563],{},"Applica il requisito di user assignment sull'oggetto service principal usando la Microsoft Graph API o PowerShell",[569,1565,1566],{},"Stabilisci un processo per assegnare gli utenti su richiesta tramite Access Packages, PIM-for-Groups (per accesso just-in-time), o una combinazione di entrambi.",[684,1568,1569],{},"\n.code-block {\n  background-color: #f6f8fa;\n  padding: 0 16px 16px 16px;\n  border-radius: 6px;\n  font-family: Menlo, Consolas, Monaco, \"Courier New\", monospace;\n  font-size: 14px;\n  line-height: 1.5;\n  overflow-x: auto;\n  white-space: pre;\n  border: 1px solid #d0d7de;\n}\n",[1571,1572,1575],"pre",{"className":1573},[1574],"code-block",[1049,1576,1577],{},"\n// Example for Microsoft Graph PowerShell\nConnect-MgGraph -Identity\n$AppId = \"04b07795-8ddb-461a-bbee-02f9e1bf7b46\" // Microsoft Azure CLI\n$sp = Get-MgServicePrincipal -Filter \"appId eq '$AppId'\"\nUpdate-MgServicePrincipal -ServicePrincipalId $sp.Id -AppRoleAssignmentRequired:$false\n",[1552,1579,1581],{"id":1580},"vantaggio","Vantaggio:",[566,1583,1584,1587,1590,1593],{},[569,1585,1586],{},"Consente la gestione degli user assignment tramite Access Packages o membership manuale ai gruppi per limitare l'esposizione a questa tecnica di attacco.",[569,1588,1589],{},"Opzione per fornire accesso just-in-time combinato con l'assegnazione di membership eligible ai gruppi, permettendo un accesso temporaneo ai CLI tool e riducendo ulteriormente la superficie di attacco.",[569,1591,1592],{},"Applicato prima di valutare le Conditional Access policy.",[569,1594,1595],{},"Limita la superficie di attacco anche per altri scenari.",[1552,1597,1599],{"id":1598},"svantaggio","Svantaggio:",[566,1601,1602,1605,1608],{},[569,1603,1604],{},"Può essere applicato solo a utenti specifici e non combinato con altri requisiti come l'uso di dispositivi specifici",[569,1606,1607],{},"Tutti gli utenti legittimi dei CLI tool devono essere identificati",[569,1609,1610],{},"Gli effetti collaterali e l'impatto organizzativo devono essere valutati con attenzione esaminando i sign-in precedenti.",[673,1612,1614],{"id":1613},"opzione-2-bloccare-laccesso-tramite-conditional-access-policy","Opzione 2: Bloccare l'accesso tramite Conditional Access Policy",[1552,1616,1555],{"id":1617},"prerequisiti-1",[566,1619,1620,1623],{},[569,1621,1622],{},"Crea una Conditional Access policy per bloccare l'accesso ai CLI tool, escludendo gli utenti legittimi, puntando a «Microsoft Graph Command Line Tools» e «Windows Azure Service Management API»",[569,1624,1625],{},"Gestisci le esclusioni tramite membership ai gruppi, sia manualmente sia tramite entitlement management (ad esempio, Access Packages).",[1552,1627,1581],{"id":1628},"vantaggio-1",[566,1630,1631,1634],{},[569,1632,1633],{},"Impedisce l'emissione di token per utenti non legittimi o non privilegiati.",[569,1635,1636],{},"Consente uno scoping granulare basato su condizioni aggiuntive come device o network.",[1552,1638,1599],{"id":1639},"svantaggio-1",[566,1641,1642,1645],{},[569,1643,1644],{},"Tutti gli utenti legittimi dei CLI tool devono essere identificati ed esclusi.",[569,1646,1647],{},"Gli effetti collaterali e l'impatto organizzativo devono essere valutati con attenzione esaminando i sign-in precedenti e valutando la policy in modalità report-only.",[673,1649,1651],{"id":1650},"bloccare-lemissione-di-token-tramite-authorization-code-flow","Bloccare l'emissione di token tramite authorization code flow",[684,1653,1654],{},"\n.option-block {\n  background-color: #f6f8fa;\n  padding: 16px;\n  margin-bottom:2rem;\n  border-radius: 6px;\n  overflow-x: auto;\n  border: 1px solid #d0d7de;\n}\n",[867,1656,1658,1661,1662,1664,1666,1667,1669,1666,1671,1673,1675],{"className":1657},[1530],[635,1659,1660],{},"Option:"," Require Token Protection",[872,1663],{},[635,1665,1533],{}," High",[872,1668],{},[635,1670,1539],{},[872,1672],{},[635,1674,1545],{}," Very limited\n",[1552,1677,1555],{"id":1678},"prerequisiti-2",[566,1680,1681,1684,1687,1707],{},[569,1682,1683],{},"Licenze Microsoft Entra ID P1",[569,1685,1686],{},"Dispositivi Entra ID Registered, Hybrid o Entra ID-joined su piattaforma Windows",[569,1688,1689,1690,935,1695,1700,1701,1706],{},"Abilitare Web Account Manager (WAM) in ",[573,1691,1694],{"href":1692,"rel":1693},"https://learn.microsoft.com/en-us/cli/azure/authenticate-azure-cli-interactively?view=azure-cli-latest#sign-in-with-web-account-manager-wam-on-windows",[577],"Azure CLI",[573,1696,1699],{"href":1697,"rel":1698},"https://learn.microsoft.com/en-us/powershell/azure/configure-global-settings?view=azps-15.1.0#web-account-manager-wam",[577],"Azure PowerShell"," e ",[573,1702,1705],{"href":1703,"rel":1704},"https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.authentication/set-mggraphoption?view=graph-powershell-1.0#set-web-account-manager-support",[577],"Microsoft Graph PowerShell"," (default nelle ultime versioni)",[569,1708,1709,1710],{},"Configurare Conditional Access puntando a:\n",[566,1711,1712,1726,1734],{},[569,1713,1714,1715],{},"Cloud App targeting alle seguenti app:\n",[566,1716,1717,1720,1723],{},[569,1718,1719],{},"Office 365 Exchange Online",[569,1721,1722],{},"Office 365 SharePoint Online",[569,1724,1725],{},"Microsoft Teams Services",[569,1727,1728,1729,1733],{},"Client app sotto ",[1730,1731,1732],"em",{},"Mobile apps and desktop clients"," per richiedere Token Protection.",[569,1735,1736,1737,1740,1741,1744],{},"Selezionare ",[1730,1738,1739],{},"Windows"," come ",[1730,1742,1743],{},"device platform"," per applicare la policy",[1552,1746,1581],{"id":1747},"vantaggio-2",[525,1749,1750],{},"La token protection di Microsoft Entra richiede il proof-of-possession (PoP), che può essere applicato solo quando il client comunica direttamente con un trusted token broker come il Web Account Manager (WAM) su Windows. Poiché i browser non possono stabilire questo canale sicuro, l'authorization code flow avviato in un browser viene bloccato dalle policy di token protection.",[525,1752,1753],{},"Quando la policy applica la token protection che richiede PoP gestito dal broker, l'authorization code restituito a un browser non può essere riscattato perché il browser non può produrre la prova firmata dal broker richiesta durante lo scambio da codice a token.",[525,1755,1756],{},"In questo caso, gli attacchi con AuthCodeFix saranno completamente mitigati fintanto che l'applicazione può essere protetta da Token Protection.",[525,1758,1759],{},"Come mostrato nello screenshot qui sotto, Token Protection mitiga con successo il riscatto dell'authorization code flow avviato dalla vittima tramite un'azione di phishing.",[525,1761,1762],{},[641,1763],{"alt":1764,"src":1765},"Token Protection successfully mitigates the redemption of the authorization code flow","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-07.png",[1552,1767,1599],{"id":1768},"svantaggio-2",[566,1770,1771,1801,1804,1807],{},[569,1772,1773,1774],{},"Solo le seguenti risorse sono ufficialmente supportate:\n",[566,1775,1776,1778,1780],{},[569,1777,1719],{},[569,1779,1722],{},[569,1781,1725,1782,1784,1786,1787,1700,1790,1794,1795,1800],{},[872,1783],{},[872,1785],{},"\nLa Microsoft Graph API è coperta indirettamente dalle risorse menzionate in precedenza e Microsoft Graph PowerShell è elencato come client supportato. Abbiamo potuto verificare nei nostri test che l'attacco in questo scenario viene mitigato. «Windows Azure Service Management API» non è elencata come risorsa supportata. Entrambi i client CLI (",[573,1788,1694],{"href":1692,"rel":1789},[577],[573,1791,1699],{"href":1792,"rel":1793},"https://learn.microsoft.com/en-us/powershell/azure/authenticate-interactive?view=azps-15.1.0#benefits-of-wam",[577],") supportano WAM, che è un requisito lato client per usare Token Protection. Microsoft ha annunciato ",[573,1796,1799],{"href":1797,"rel":1798},"https://techcommunity.microsoft.com/blog/microsoft-entra-blog/how-to-break-the-token-theft-cyber-attack-chain/4062700",[577],"in un blog post"," di voler estendere le capacità di token protection agli scenari di Azure management.",[569,1802,1803],{},"Alcuni bug in Microsoft Graph PowerShell ti costringono a disabilitare temporaneamente l'integrazione WAM",[569,1805,1806],{},"Gli effetti collaterali e l'impatto organizzativo devono essere valutati con attenzione esaminando i sign-in precedenti e valutando la policy in modalità report-only. Il cloud app targeting influenzerà anche l'accesso produttivo a Microsoft 365.",[569,1808,1809],{},"Scope limitato per via della disponibilità sulle piattaforme supportate e sui dispositivi integrati con Entra ID.",[673,1811,1813],{"id":1812},"bloccare-ulteriori-emissioni-di-token-tramite-compliant-network-check-o-trusted-network","Bloccare ulteriori emissioni di token tramite compliant network check o trusted network",[867,1815,1817,1819,1820,1822,1819,1824,1826,1828],{"className":1816},[1530],[635,1818,1533],{}," Medium",[872,1821],{},[635,1823,1539],{},[872,1825],{},[635,1827,1545],{}," Broad\n",[673,1830,1832],{"id":1831},"opzione-bloccare-laccesso-al-di-fuori-del-compliant-network-con-global-secure-access","Opzione: Bloccare l'accesso al di fuori del Compliant network con Global Secure Access",[1552,1834,1555],{"id":1835},"prerequisiti-3",[566,1837,1838,1841,1844,1847],{},[569,1839,1840],{},"Licenza Entra ID P1",[569,1842,1843],{},"Dispositivi Entra ID Registered, Hybrid o Entra ID-joined su piattaforma Windows, macOS, Android e iOS",[569,1845,1846],{},"Global Secure Access Client su tutti i client interessati e Entra Internet Access abilitato per M365 Traffic Profile",[569,1848,1849],{},"La Conditional Access Policy per applicare il network compliant check deve essere applicata a tutte le cloud app",[1552,1851,1581],{"id":1852},"vantaggio-3",[525,1854,1855],{},"Bloccare l'emissione di token aggiuntivi imponendo un trusted network check. Questa mitigazione garantisce che gli attaccanti non possano ottenere nuovi token usando il refresh token dell'authorization code flow. Tuttavia, non impedisce il riscatto iniziale dell'authorization code o l'emissione del primo access token, che rimane valido al di fuori del compliant network perché era stato originariamente richiesto dalla vittima.",[1151,1857,1858],{},[525,1859,1860],{},"Applicare GSA con la condizione Compliant Network blocca anche altri scenari di Token Replay e aggiunge log supplementari che possono essere molto utili per detection e hunting.",[1552,1862,1599],{"id":1863},"svantaggio-3",[566,1865,1866,1869,1872],{},[569,1867,1868],{},"Applicabile solo a utenti e dispositivi con il Global Secure Access client distribuito",[569,1870,1871],{},"Scope limitato per via della disponibilità sui dispositivi integrati con Entra ID",[569,1873,1874],{},"Applicare i Compliant Network tramite CA richiederà alcune esclusioni come Intune per evitare problemi da uovo e gallina. È necessario un test dettagliato prima del rollout",[558,1876,1878],{"id":1877},"hunting-queries","Hunting queries",[525,1880,1881,1882,1885],{},"Una volta soddisfatti tutti i prerequisiti per le mitigazioni contro il furto di token, come il deployment del client GSA (inclusa l'ingestion dei log ",[1049,1883,1884],{},"NetworkAccessTraffic",") e sfruttando l'autenticazione WAM, otteniamo opzioni aggiuntive per il threat hunting e la verifica.",[673,1887,1889],{"id":1888},"sfruttare-i-log-gsa-e-lautenticazione-wam-per-lhunting-o-per-verificare-la-confidence-sui-risultati-di-detection","Sfruttare i log GSA e l'autenticazione WAM per l'hunting o per verificare la confidence sui risultati di detection",[525,1891,1892,1893,1895],{},"Questa hunting query sfrutta i log ",[1049,1894,1884],{}," di Global Secure Access (GSA), che includono il processo iniziatore per la comunicazione con l'endpoint dei token di Microsoft Entra. Questo aiuta a determinare se una richiesta di token è originata direttamente da un browser e anche se sono state effettuate ulteriori richieste di token al di fuori della rete GSA.",[1151,1897,1898],{},[525,1899,1900],{},"Questa query funziona e fornisce risultati affidabili solo quando i prerequisiti sono soddisfatti; altrimenti porta a un alto tasso di falsi positivi.",[525,1902,1903,1906,1907,1910,1911,1914],{},[635,1904,1905],{},"Perché è importante:"," Quando si effettua il sign-in tramite CLI o moduli PowerShell usando Web Account Manager (WAM) su dispositivi Windows, il flow non coinvolge un authorization code basato su browser. Questo comportamento di sign-in è il default nell'ultima versione. Pertanto, se il processo iniziatore è un eseguibile di browser (ad esempio, ",[1049,1908,1909],{},"msedge.exe","), questo è un forte indicatore di attività sospetta. Su macOS, il processo viene iniziato dall'app Company Portal (",[1049,1912,1913],{},"com.microsoft.CompanyPortalMac.ssoextension",") quando si usa Platform SSO.",[525,1916,1917,1920],{},[635,1918,1919],{},"Token Binding e PoP:"," L'autenticazione WAM tipicamente lega i token al dispositivo imponendo il Proof-of-Possession (PoP). Gli attaccanti non possono emettere ulteriori token vincolati senza PoP, quindi un refresh token non vincolato è un altro forte indicatore.",[525,1922,1923,1926],{},[635,1924,1925],{},"Limitazioni:"," Tutti i segnali menzionati sono disponibili solo quando il dispositivo che accede è registrato o joined a Microsoft Entra ID.",[525,1928,1929,1932],{},[635,1930,1931],{},"Logica del Confidence Score:"," La query combina più segnali per calcolare un confidence score:",[566,1934,1935,1938,1941],{},[569,1936,1937],{},"Presenza di un processo browser che avvia richieste di token.",[569,1939,1940],{},"Detection e down grade a token non vincolati.",[569,1942,1943],{},"Cambiamenti del network provider (incluso da Compliant a non-compliant) tra un sign-in e l'altro.",[525,1945,1946],{},"Questi segnali possono essere usati nella query per l'hunting di attività o per derivare un confidence score in caso di incidente basato sulla detection precedente.",[525,1948,1949],{},[641,1950],{"alt":1951,"src":1952},"Signals for the hunting query","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-08.png",[525,1954,1955],{},"Verrà mostrato il seguente scoring a seconda delle condizioni:",[525,1957,1958,1961,1962,1964,1965,1967,1969,1972,1973,1975,1977,1980],{},[635,1959,1960],{},"Un confidence score molto alto"," viene mostrato quando i log ",[1049,1963,1884],{}," indicano un processo browser familiare invece dell'iniziazione di una richiesta di token, ed è stato rilevato un downgrade di un token non vincolato.",[872,1966],{},[872,1968],{},[635,1970,1971],{},"Un confidence score alto"," viene mostrato quando il sign-in avviene da un Network Provider (ASN) diverso e da una rete non compliant che coinvolge token non vincolati.",[872,1974],{},[872,1976],{},[635,1978,1979],{},"Un confidence score medio"," viene mostrato quando viene identificato solo un cambio di Network Provider e una rete compliant, insieme a un cambio del tipo di token utilizzato.",[525,1982,1983,1984,615],{},"Troverai la versione più recente della hunting query su ",[573,1985,1988],{"href":1986,"rel":1987},"https://github.com/Cloud-Architekt/AzureSentinel/blob/main/Hunting%20Queries/EID-Authentication/ConsentFix-HuntingConfidenceOnTokenAndNetworkSignals.kusto",[577],"GitHub",[673,1990,1992],{"id":1991},"hunting-per-attività-basate-sui-token-emessi","Hunting per attività basate sui token emessi",[525,1994,1995,1996,2001,2002,2005,2006,2008,2009,2012],{},"Dovresti considerare di estendere l'investigazione oltre gli eventi di sign-in per includere le attività eseguite usando i token emessi dall'attaccante. Il nostro collega Thomas Naunheim ha ",[573,1997,2000],{"href":1998,"rel":1999},"https://github.com/Cloud-Architekt/AzureSentinel/blob/main/Hunting%20Queries/EID-TokenHunting/MicrosoftCloudActivity.func",[577],"pubblicato una funzione KQL"," chiamata ",[1049,2003,2004],{},"MicrosoftCloudActivity",", che può assistere in questo processo di hunting esteso. Inoltre, il ",[1049,2007,1432],{}," interessato può essere correlato con valori ",[1049,2010,2011],{},"UniqueId"," sospetti identificati durante hunt precedenti per un'analisi più approfondita.",[525,2014,2015],{},[641,2016],{"alt":2017,"src":2018},"KQL function","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-09.png",[525,2020,2021],{},"In questo esempio, l'attaccante ha sfruttato il refresh token ottenuto durante l'attacco per emettere un access token per la Microsoft Graph API. Questo token è stato poi usato per mantenere accesso persistente e movimento laterale aggiungendo un client secret a un'applicazione posseduta dalla vittima. La query fornisce dettagli sull'operazione della Graph API, incluso lo stato di token protection e se l'operazione è avvenuta al di fuori della rete Global Secure Access.",[525,2023,2024],{},[641,2025],{"alt":2026,"src":2027},"Graph API operation screenshot","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-10.png",[558,2029,2031],{"id":2030},"ulteriori-letture","Ulteriori letture",[566,2033,2034,2041,2048,2055],{},[569,2035,2036],{},[573,2037,2040],{"href":2038,"rel":2039},"https://pushsecurity.com/blog/consentfix",[577],"ConsentFix: Analysing a browser-native ClickFix-style attack that hijacks OAuth consent grants - PushSecurity",[569,2042,2043],{},[573,2044,2047],{"href":2045,"rel":2046},"https://youtu.be/AAiiIY-Soak",[577],"Hacking Endpoint to Identity (Microsoft 365): \"ConsentFix\" - YouTube",[569,2049,2050],{},[573,2051,2054],{"href":2052,"rel":2053},"https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow",[577],"Microsoft identity platform and OAuth 2.0 authorization code flow",[569,2056,2057],{},[573,2058,2061],{"href":2059,"rel":2060},"https://entrascopes.com/?appId=04b07795-8ddb-461a-bbee-02f9e1bf7b46",[577],"Microsoft Azure CLI on entrascpes.com",{"title":529,"searchDepth":530,"depth":530,"links":2063},[2064,2067,2068,2069,2077,2081],{"id":1389,"depth":530,"text":1390,"children":2065},[2066],{"id":1416,"depth":1204,"text":1417},{"id":1469,"depth":530,"text":1470},{"id":1485,"depth":530,"text":1486},{"id":1521,"depth":530,"text":1522,"children":2070},[2071,2072,2073,2074,2075,2076],{"id":1525,"depth":1204,"text":1526},{"id":1549,"depth":1204,"text":1550},{"id":1613,"depth":1204,"text":1614},{"id":1650,"depth":1204,"text":1651},{"id":1812,"depth":1204,"text":1813},{"id":1831,"depth":1204,"text":1832},{"id":1877,"depth":530,"text":1878,"children":2078},[2079,2080],{"id":1888,"depth":1204,"text":1889},{"id":1991,"depth":1204,"text":1992},{"id":2030,"depth":530,"text":2031},{"lang":1217,"seoTitle":2083,"titleClass":1219,"date":2084,"categories":2085,"blogtitlepic":2086,"socialimg":2087,"customExcerpt":2088,"keywords":2089,"scripts":2090,"asideNav":2091,"maxContent":325,"published":325},"ConsentFix: How a New OAuth Attack Bypasses Microsoft Entra Conditional Access","2025-12-31",[235],"head-consentfix","/blog/heads/head-consentfix.jpg","Just before year's end, ConsentFix emerges: a clever OAuth-based attack that abuses legitimate authentication flows to steal the authorization code, effectively handing attackers the keys to Microsoft Entra. We break down why this works despite Conditional Access, which signals it leaves behind in the logs, and how defenders can detect and stop it before real damage is done.","ConsentFix attack, OAuth authorization code theft, Microsoft Entra OAuth attack, Azure CLI token abuse, Entra ID Conditional Access bypass, authorization code phishing, token replay attack Azure, Proof of Possession tokens, WAM authentication security, Azure sign-in log analysis, detect OAuth attacks Entra, Azure identity threat hunting, Global Secure Access token protection, Microsoft Entra security detection",{"slick":325,"form":325},{"menuItems":2092},[2093,2095,2097,2099,2101,2103],{"href":2094,"text":1390},"#artefatti-di-detection",{"href":2096,"text":1470},"#ridurre-il-rumore",{"href":2098,"text":1486},"#applicazioni-first-party-interessate",{"href":2100,"text":1522},"#mitigazioni-e-protezioni",{"href":2102,"text":1878},"#hunting-queries",{"href":2104,"text":2031},"#ulteriori-letture","/posts/2025-12-31-vulnerability-consentfix",{"title":1294,"description":1300},"posts/2025-12-31-vulnerability-consentfix",[2109,2110,281],"OAuth 2.0","Microsoft Entra ID","crdytbabaVlp4bf3StVPpQVAEAIZdHa1gwhexd7MITA",[],{"id":2114,"extension":2115,"meta":2116,"stem":8,"__hash__":2132},"authors_data/authors.json","json",{"Christopher Brumm":2117,"Fabian Bader":2123,"Thomas Naunheim":2128},{"display_name":553,"avatar":2118,"permalink":2119,"twitter":2120,"linkedin":2121,"imageOffsetTop":2122},"people/people-christopher-brumm.jpg","/authors/christopher-brumm","cbrhh","christopherbrumm","66%",{"display_name":520,"avatar":2124,"permalink":2125,"linkedin":2126,"twitter":2127},"people/people-fabian-bader.jpg","/authors/fabian-bader","fabianbader","fabian_bader",{"display_name":554,"avatar":2129,"permalink":2130,"linkedin":2131,"imageOffsetTop":2122},"people/people-thomas-naunheim.jpg","/authors/thomas-naunheim","thomasnaunheim","1csawlkJxRljy93GTOnXEkwLqAv9Lcj-apxRvoodAOY",1791383965717]