[{"data":1,"prerenderedAt":2116},["ShallowReactive",2],{"sc:header-data-ja":3,"sc:footer-data-ja":489,"author-ja-fabian-bader-1b470ba1ddf8b3":519,"content-ja-fabian-bader":549,"content-events-ja-fabian-bader":2095,"authors_data:Christopher Brumm|Fabian Bader|Thomas Naunheim":2096},{"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",{"ja":13},{"title":14,"url":15,"alt":16},"ホーム","/ja","glueckkanja Logo",[18,127,231,316,395,402],{"name":19,"languages":20,"children":24},"workplace",{"ja":21},{"title":22,"description":23},"Workplace","Microsoft 365を基盤に、スマートで安全な、柔軟性の高いワークプレイスを実現します。最新のテクノロジーとアイデンティティサービスが一つにつながります。",[25,55,91],{"name":26,"languages":27,"children":30},"portfolio",{"ja":28},{"title":29},"Portfolio",[31,37,43,49],{"name":32,"languages":33},"managed-intune",{"ja":34},{"title":35,"url":36},"Managed Intune","/ja/entra-intune/managed-intune",{"name":38,"languages":39},"managed-entra",{"ja":40},{"title":41,"url":42},"Managed Entra","/ja/entra-intune/managed-entra",{"name":44,"languages":45},"managed-workplace",{"ja":46},{"title":47,"url":48},"Managed Workplace","/ja/workplace/managed-workplace",{"name":50,"languages":51},"consulting-services",{"ja":52},{"title":53,"url":54},"Consulting Services","/ja/workplace/consulting-services",{"name":56,"languages":57,"children":60},"microsoft-365-endpoint",{"ja":58},{"title":59},"Microsoft 365 Endpoint",[61,67,73,79,85],{"name":62,"languages":63},"microsoft-entra-suite",{"ja":64},{"title":65,"url":66},"Microsoft Entra Suite","/ja/workplace/microsoft-entra-suite",{"name":68,"languages":69},"microsoft-intune",{"ja":70},{"title":71,"url":72},"Microsoft Intune","/ja/workplace/microsoft-intune",{"name":74,"languages":75},"microsoft-windows",{"ja":76},{"title":77,"url":78},"Microsoft Windows","/ja/workplace/microsoft-windows",{"name":80,"languages":81},"windows-365-cloud-pc",{"ja":82},{"title":83,"url":84},"Windows 365 Cloud PC","/ja/workplace/windows365-cloud-pc",{"name":86,"languages":87},"cloud-workplace-foundation",{"ja":88},{"title":89,"url":90},"Cloud Workplace Foundation","/ja/workplace/cloud-workplace-foundation",{"name":92,"languages":93,"children":96},"microsoft-365-collaboration",{"ja":94},{"title":95},"Microsoft 365 Collaboration",[97,103,109,115,121],{"name":98,"languages":99},"microsoft-copilot",{"ja":100},{"title":101,"url":102},"Microsoft 365 Copilot","/ja/workplace/microsoft-365-copilot",{"name":104,"languages":105},"microsoft-teams",{"ja":106},{"title":107,"url":108},"Teams","/ja/workplace/microsoft-teams",{"name":110,"languages":111},"sharepoint-powerplatform",{"ja":112},{"title":113,"url":114},"SharePoint & Power Platform","/ja/workplace/sharepoint-power-platform",{"name":116,"languages":117},"exchange-online",{"ja":118},{"title":119,"url":120},"Exchange Online","/ja/workplace/exchange-online",{"name":122,"languages":123},"information-protection-compliance",{"ja":124},{"title":125,"url":126},"Information Protection & Compliance","/ja/workplace/information-protection-compliance",{"name":128,"languages":129,"children":133},"azure",{"ja":130},{"title":131,"description":132},"Azure","Azureで成長を後押しします。IaaSとPaaSによって、クラウドのコストを下げ、効率を高め、イノベーションを進めます。",[134,151,181],{"name":135,"languages":136,"children":138},"azure-portfolio",{"ja":137},{"title":29},[139,145],{"name":140,"languages":141},"azure-managed-services",{"ja":142},{"title":143,"url":144},"Azure Managed Services","/ja/azure/azure-managed-services",{"name":146,"languages":147},"azure-consulting",{"ja":148},{"title":149,"url":150},"Azure Consulting","/ja/azure/azure-consulting",{"name":152,"languages":153,"children":156},"azure-scenarios",{"ja":154},{"title":155},"シナリオ",[157,163,169,175],{"name":158,"languages":159},"plan-your-cloud",{"ja":160},{"title":161,"url":162},"クラウドを計画する","/ja/azure/plan-your-cloud",{"name":164,"languages":165},"migrate-to-the-cloud",{"ja":166},{"title":167,"url":168},"クラウドへ移行する","/ja/azure/migrate-to-the-cloud",{"name":170,"languages":171},"innovate-your-business",{"ja":172},{"title":173,"url":174},"ビジネスを刷新する","/ja/azure/innovate-your-business",{"name":176,"languages":177},"vmware-exit",{"ja":178},{"title":179,"url":180},"VMware戦略を立て直す","/ja/azure/vmware-exit",{"name":182,"languages":183,"children":186},"azure-practices",{"ja":184},{"title":185},"Practices",[187,193,199,202,208,213,219,225],{"name":188,"languages":189},"azure-foundation",{"ja":190},{"title":191,"url":192},"Azure Foundation","/ja/azure/azure-foundation",{"name":194,"languages":195},"azure-ai-foundation",{"ja":196},{"title":197,"url":198},"Azure AI Foundation","/ja/azure/azure-ai-foundation",{"name":86,"languages":200},{"ja":201},{"title":89,"url":90},{"name":203,"languages":204},"azure-data-foundation",{"ja":205},{"title":206,"url":207},"Azure Data Foundation","/ja/azure/azure-data-foundation",{"name":188,"languages":209},{"ja":210},{"title":211,"url":212},"Azure Container Foundation","/ja/azure/azure-container-foundation",{"name":214,"languages":215},"dark-tenant",{"ja":216},{"title":217,"url":218},"Managed Dark Tenant","/ja/azure/managed-dark-tenant",{"name":220,"languages":221},"azure-cloud-adoption-framework",{"ja":222},{"title":223,"url":224},"Cloud Adoption Framework","/ja/azure/cloud-adoption-framework",{"name":226,"languages":227},"azure-cloud-competence-center",{"ja":228},{"title":229,"url":230},"Cloud Competence Center","/ja/azure/cloud-competence-center",{"name":232,"languages":233,"children":242},"security",{"ja":234},{"title":235,"description":236,"emergency":237},"Security","受賞歴のある24時間365日のManaged Service、インシデント対応、最新水準の保護で、クラウドの安全を見守り、インフラを守ります。",{"text":238,"href":239,"skin":240,"icon":241},"サイバー攻撃の渦中ですか？","/ja/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",{"ja":249},{"title":250,"url":251},"Managed Red Tenant","/ja/security/managed-red-tenant",{"name":214,"languages":253},{"ja":254},{"title":255,"url":218},"Dark Tenant",{"name":257,"languages":258},"sentinel-data-lake",{"ja":259},{"title":260,"url":261},"Sentinel Data Lake","/ja/security/sentinel-data-lake",{"name":263,"languages":264},"security-consulting",{"ja":265},{"title":266,"url":267},"Security Consulting","/ja/security/security-consulting",{"name":269,"children":270},"security-cloud-security-operations-center",[271,277,283],{"name":272,"languages":273},"cloud-security-operations-center",{"ja":274},{"title":275,"url":276},"Cloud Security Operations Center","/ja/security/cloud-security-operations-center",{"name":278,"languages":279},"global-secure-access",{"ja":280},{"title":281,"url":282},"Global Secure Access","/ja/security/global-secure-access",{"name":284,"languages":285},"my-work-id",{"ja":286},{"title":287,"url":288},"MyWorkID","/ja/security/my-work-id",{"name":290,"children":291},"security-preventive-services",[292,298,304,310],{"name":293,"languages":294},"preventive-services",{"ja":295},{"title":296,"url":297},"Preventive Services","/ja/security/preventive-services",{"name":299,"languages":300},"data-security-services",{"ja":301},{"title":302,"url":303},"Data Security Service","/ja/security/data-security-service",{"name":305,"languages":306},"security-copilot-agents",{"ja":307},{"title":308,"url":309},"Security Copilot Agents","/ja/security/security-copilot-agents",{"name":311,"languages":312},"nis2",{"ja":313},{"title":314,"url":315},"NIS2を技術で実装する","/ja/security/red-dark-tenant-nis2",{"name":317,"languages":318,"children":322},"products",{"ja":319},{"title":320,"description":321},"製品","完全に安全で100%クラウドネイティブなMicrosoft環境のためのCompanion製品です。協働、ネットワーク認証、ソフトウェア管理を強化します。",[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",{"ja":332},{"title":333,"url":334,"subtitle":335},"RealmJoin","https://www.realmjoin.com","クラウドベースのソフトウェア配布",{"name":337,"img":338,"target":330,"languages":339},"scepman","products/scepman/scepman-nav-logo.svg",{"ja":340},{"title":341,"url":342,"subtitle":343},"SCEPman","https://www.scepman.com","クラウドからの証明書配布",{"name":345,"img":346,"target":330,"languages":347},"konnekt","products/konnekt/konnekt-nav-logo.svg",{"ja":348},{"title":349,"url":350,"subtitle":351},"KONNEKT","https://www.konnekt.io","Office 365のデータをローカルで利用",{"name":353,"img":354,"target":330,"languages":355},"realmigrator","products/realmigrator/realmigrator-nav-logo.svg",{"ja":356},{"title":357,"url":358,"subtitle":359},"RealMigrator","https://www.realmigrator.com","サーバー間のデータ移行",{"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",{"ja":367},{"title":368,"url":369,"subtitle":370},"TerraProvider","https://www.terraprovider.com","Microsoft 365向けのTerraform Provider",{"name":372,"img":373,"target":330,"languages":374},"radiusaas","products/radius/radius-nav-logo.svg",{"ja":375},{"title":376,"url":377,"subtitle":378},"RADIUSaaS","https://www.radius-as-a-service.com","ネットワークの認証",{"name":380,"img":381,"target":330,"languages":382},"unifiedcontacts","products/unified-contacts/unifiedcontact-nav-logo.svg",{"ja":383},{"title":384,"url":385,"subtitle":386},"Unified Contacts","https://www.unified-contacts.com","Microsoft Teamsで連絡先を探す",{"name":388,"img":389,"target":330,"languages":390},"autopilotmonitor","products/autopilot-monitor/AutopilotMonitor-nav-logo.svg",{"ja":391},{"title":392,"url":393,"subtitle":394},"Autopilot Monitor","https://www.autopilotmonitor.com","Windows Autopilotのリアルタイム監視",{"name":396,"languages":397},"casestudies",{"ja":398},{"title":399,"url":400,"description":401},"導入事例","/ja/casestudies","当社はクラウドの先駆者として、包括的なクラウドソリューションを提供するMicrosoftのトップパートナーです。ブループリントに基づくアプローチとInfrastructure as Codeの知見が土台にあります。",{"name":403,"languages":404,"children":407},"company",{"ja":405},{"title":406,"description":401},"会社",[408,438,462],{"name":409,"languages":410,"children":413},"company-about-us",{"ja":411},{"title":412},"会社概要",[414,420,426,432],{"name":415,"languages":416},"company-facts-figures",{"ja":417},{"title":418,"url":419},"Facts & Figures","/ja/company/facts-and-figures",{"name":421,"languages":422},"company-contact",{"ja":423},{"title":424,"url":425},"お問い合わせと拠点","/ja/company/contact-and-locations",{"name":427,"languages":428},"switzerland",{"ja":429},{"title":430,"url":431},"スイスのglueckkanja","/ja/company/switzerland",{"name":433,"languages":434},"austria",{"ja":435},{"title":436,"url":437},"オーストリアのglueckkanja","/ja/company/austria",{"name":439,"languages":440,"children":443},"company-career",{"ja":441},{"title":442},"キャリア",[444,450,456],{"name":445,"languages":446},"company-career-overview",{"ja":447},{"title":448,"url":449},"採用情報","/ja/career",{"name":451,"languages":452},"company-young-professionals",{"ja":453},{"title":454,"url":455},"Young Professionals","/ja/young-professionals",{"name":457,"languages":458},"company-jobs",{"ja":459},{"title":460,"url":461},"募集職種","/ja/job-offers",{"name":463,"languages":464,"children":467},"company-latest",{"ja":465},{"title":466},"最新情報",[468,474],{"name":469,"languages":470},"company-blog",{"ja":471},{"title":472,"url":473},"ブログ","/ja/blog",{"name":469,"languages":475},{"ja":476},{"title":477,"url":478},"イベント","/ja/events",[480],{"name":481,"languages":482},"career-meta",{"ja":483},{"title":442,"url":449,"active":484},false,{"languages":486},{"ja":487},{"title":488,"url":425,"active":484},"お問い合わせ",{"data":490},{"bgColor":491,"number":492,"mail":493,"brandLogos":494,"logos":495,"links":499,"linksJa":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},"プライバシーポリシー","/ja/privacy",{"title":514,"url":515},"運営者情報","/ja/imprint",{"title":517,"url":518},"Cookieなし","/ja/cookies",{"id":520,"title":521,"body":522,"description":528,"extension":533,"meta":534,"name":521,"navigation":325,"otherLanguages":535,"path":545,"seo":546,"stem":547,"__hash__":548},"authors/fabian-bader.md","Fabian Bader",{"type":523,"value":524,"toc":529},"minimal",[525],[526,527,528],"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":530,"searchDepth":531,"depth":531,"links":532},"",2,[],"md",{},{"en":536,"es":537,"sv":538,"fi":539,"da":540,"ko":541,"nl":542,"no":543,"ja":544},"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":521,"description":528},"fabian-bader","Mvtlgx065YSlCBBI4wct1fdOV-n7SuPILVh9VLNr0Rw",[550,1287],{"id":551,"title":552,"author":553,"body":556,"cta":494,"description":530,"eventid":494,"extension":533,"hideInRecent":484,"layout":1210,"meta":1211,"moment":1215,"navigation":325,"path":1279,"seo":1280,"stem":1281,"tags":1282,"webcast":484,"__hash__":1286},"content_ja/posts/2025-01-14-compliant-device-bypass.md","Compliant Device Bypass - 知っておくべきことのすべて",[521,554,555],"Christopher Brumm","Thomas Naunheim",{"type":523,"value":557,"toc":1192},[558,562,565,619,623,625,638,646,657,663,666,669,671,676,679,682,686,752,755,758,761,763,767,769,784,791,794,797,799,802,805,808,816,827,830,832,835,839,841,844,849,852,854,857,860,863,1026,1029,1031,1034,1074,1077,1079,1086,1089,1092,1107,1110,1113,1167,1175,1178,1180,1183,1186,1189],[559,560,561],"h2",{"id":561},"これまでの経緯",[526,563,564],{},"{: .h3-font-size}",[566,567,568,592,607,616],"ul",{},[569,570,571,572,579,580,585,586,591],"li",{},"2024年12月、",[573,574,578],"a",{"href":575,"rel":576},"https://x.com/TEMP43487580",[577],"nofollow","Yuya Chudo","氏がBlack Hat Europeカンファレンスで「",[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","」と題した講演を行いました。このセッションでは、デバイスコンプライアンスに関する条件付きアクセス（CA）のハードコードされたほとんど知られていない除外設定を、Entra IDの文書化されていない「",[573,587,590],{"href":588,"rel":589},"https://github.com/secureworks/family-of-client-ids-research",[577],"FOCI機能","」と組み合わせて悪用する方法が示されました。講演では、この挙動は仕様どおりであり新しいデバイスのIntune Enrollmentを成功させるために必要である、というMicrosoft MSRC（VULN-123240）の回答も紹介されています。",[569,593,594,595,600,601,606],{},"カンファレンスの数日後、Sunny Chau氏が概念実証ツール",[573,596,599],{"href":597,"rel":598},"https://github.com/JumpsecLabs/TokenSmith",[577],"TokenSmith","を",[573,602,605],{"href":603,"rel":604},"https://labs.jumpsec.com/tokensmith-bypassing-intune-compliant-device-conditional-access/",[577],"関連するブログ記事","とともに公開しました。これによってこの手法はより広い層に知られることになりました。",[569,608,609,610,615],{},"さらに、",[573,611,614],{"href":612,"rel":613},"https://github.com/zh54321/PoCEntraDeviceComplianceBypass/blob/main/poc_entra_compliance_bypass.ps1",[577],"PowerShellで書かれたPoC","も公開されています。",[569,617,618],{},"12月末以降、私たちglueckkanja AGはこの手法をどのように防止し検知できるかを調査してきました。本記事では、この攻撃に関する知見の一部を共有し、緩和策と検知の選択肢について述べます。",[559,620,622],{"id":621},"tldr","TL;DR",[526,624,564],{},[526,626,627,628,633,634],{},"条件付きアクセスには、特定の課題を解決するために、一部のGrant Controls/Conditionsに対する除外があらかじめ組み込まれているリソースが存在します。そのひとつが、デバイスコンプライアンスに対するCompany Portal Appの除外です。これは、デバイスがコンプライアンス準拠と判定される前にIntuneへ登録しなければならないという、鶏と卵の問題を解決するためのものです。この挙動は",[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],"こちらに文書化されています","。\n",[635,636,637],"strong",{},"つまり、CAポリシーが「All resources」に対してDevice Complianceを強制していても、管理されていないデバイスからこのアプリのアクセストークンとリフレッシュトークンを取得できるということです。",[526,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}",[526,647,648,649,653,654],{},"MicrosoftはFamily of Client IDs（FOCI）という機能を実装しています。これは、あるグループに属するMicrosoftのOAuthクライアントアプリケーションが、自らのリフレッシュトークンを使ってそのファミリー内の別のクライアントとしてアクセストークンを取得できるようにするものです。本来OAuth2標準では認められていない挙動です。詳細は",[573,650,652],{"href":588,"rel":651},[577],"Secureworksの元の調査","をご覧ください。\n",[635,655,656],{},"Company Portal Appは「ファミリーメンバー」であるため、そのために要求したリフレッシュトークンを使って、同じファミリー内の他のアプリ向けのトークンを取得できます。",[526,658,659,660],{},"FOCI機能には制限があり、クライアントIDとリソースの間のコンセントは明示的に構成され付与されている必要があります。Company Portal Appの場合、このコンセントは、制限されたスコープでのMicrosoft Graphへのアクセスや、現在のユーザーの権限でのAzure AD Graph APIへのアクセスなどに対して付与されています。\n",[635,661,662],{},"つまり、Company Portalのリフレッシュトークンを使って、たとえばスコープuser_impersonationでAzure AD Graph APIのアクセストークンを取得でき、AADInternalsやROADreconなどで多くの操作が可能になります。",[526,664,665],{},"この攻撃を実行するには、攻撃者は被害者の有効な資格情報に加え、条件付きアクセスが要求する場合はMFAを実行できることが必要です。あるいは、有効なリフレッシュトークンが必要です。",[559,667,668],{"id":668},"どのようなリスクと影響範囲があるのか",[526,670,564],{},[672,673,675],"h3",{"id":674},"コンプライアンスの除外の影響を受けるリソーススコープはどれか","コンプライアンスの除外の影響を受けるリソース（スコープ）はどれか",[526,677,678],{},"{: .h4-font-size}",[526,680,681],{},"攻撃者は、前述のとおり別のFOCIアプリケーション向けのトークンを要求できます。ただしMicrosoftは、特定のリソースアプリケーションの一部のAPIアクセス許可スコープへのトークン取得についてのみ、デバイスコンプライアンス要件のバイパスを実装しています。とりわけ次の委任されたAPIアクセス許可は機微であり、攻撃者にとって関心の対象となります。",[683,684,685],"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",[687,688,689,705],"table",{},[690,691,692],"thead",{},[693,694,695,699,702],"tr",{},[696,697,698],"th",{},"Resource Application",[696,700,701],{},"Application Id",[696,703,704],{},"Delegated Permission Scope",[706,707,708,720,731,742],"tbody",{},[693,709,710,714,717],{},[711,712,713],"td",{},"AADGraph",[711,715,716],{},"00000002-0000-0000-c000-000000000000",[711,718,719],{},"user_impersonation",[693,721,722,725,728],{},[711,723,724],{},"Microsoft Graph API",[711,726,727],{},"00000003-0000-0000-c000-000000000000",[711,729,730],{},"“email\", \"openid\", \"profile\",\"Device.Read.All\", \"DeviceManagementConfiguration.Read.All\", \"DeviceManagementConfiguration.ReadWrite.All\", \"ServicePrincipalEndpoint.Read.All\", \"User.Read”",[693,732,733,736,739],{},[711,734,735],{},"Device Registration Service",[711,737,738],{},"01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9",[711,740,741],{},"adrs_access",[693,743,744,747,750],{},[711,745,746],{},"Windows Azure Service Management API",[711,748,749],{},"797f4846-ba00-4fd7-ba43-dac1f8f63013",[711,751,719],{},[526,753,754],{},"付与されたアクセス許可はアプリケーション自身に対するものではないため、影響の大きさは呼び出し元（ユーザーアカウント）の権限と、どの委任されたアクセス許可スコープがそのスコープでのAPI呼び出しを認可されているかによって変わります。",[526,756,757],{},"ここで示した委任されたアクセス許可スコープの重大性と、機微なAPIを呼び出せる可能性について、もう少し詳しく見ていきましょう。",[559,759,760],{"id":760},"どの権限と委任スコープが危険か",[526,762,564],{},[672,764,766],{"id":765},"azure-ad-graph-api","Azure AD Graph API",[526,768,678],{},[526,770,771,772,777,778,783],{},"このレガシーなプログラミングインターフェイスは、Entra ID（Azure AD）のディレクトリ設定とオブジェクトを管理するための多数のAPIを提供します。条件付きアクセスポリシー、ディレクトリロール、グループやデバイスに対するCRUD、そしてパスワード変更などサインイン中のユーザーに対する操作が含まれます。サポートされる操作の全一覧は",[573,773,776],{"href":774,"rel":775},"https://learn.microsoft.com/en-us/previous-versions/azure/ad/graph/api/api-catalog",[577],"Azure AD Graph APIリファレンス","にあります。このAPIは",[573,779,782],{"href":780,"rel":781},"https://learn.microsoft.com/en-us/graph/migrate-azure-ad-graph-overview",[577],"Microsoftの最新のアナウンス","にもとづき、2025年6月30日に完全に廃止されます。",[526,785,786,787,790],{},"割り当てられた委任スコープ「user_impersonation」は、アプリケーション（この場合はCompany Portal）がユーザーに代わって動作することを可能にします。したがって、サインイン中のユーザーがEntraのオブジェクト、スコープ、ディレクトリレベルに対して持つあらゆるアクセス許可が、API呼び出しの認可として利用され得ます。そのユーザーはEntra IDオブジェクト（アプリケーション、グループ、その他のオブジェクト）の所有者であるかもしれませんし、Entra IDのロール割り当てを通じてアクセス許可を得ているかもしれません。 ",[635,788,789],{},"高い権限を持つロールがアクティブに割り当てられている場合、攻撃者はオブジェクトを変更したり、テナントを侵害したりできてしまいます。"," 少なくとも、何の権限がなくても、既定のユーザー権限だけでテナント内のディレクトリオブジェクトを広範に偵察・列挙することが可能です。",[526,792,793],{},"そのため、Azure AD Graph APIを悪用するシナリオと影響は、対象となるユーザーにアクティブまたは恒久的に割り当てられた権限に左右されます。Microsoft 365のサービスにアクセスするAPI（たとえばOneDriveからの情報持ち出しに使われるもの）はAzure AD Graphには含まれていません。",[672,795,724],{"id":796},"microsoft-graph-api",[526,798,678],{},[526,800,801],{},"Azure AD Graphと比べると、Microsoft Graph APIへの委任スコープは限定されています。OpenIDのスコープ（openid、email、profile）と、ユーザーに代わって行う基本的な読み取り操作（ServicePrincipalEndpoint.Read.All、User.Read）が含まれます。",[526,803,804],{},"「Device.Read.All」を使えば、既定のアクセス許可のままMicrosoft Graphの「device」エンドポイントを呼び出して、すべてのデバイスオブジェクトを一覧表示し読み取ることができます。これは攻撃者がデバイスオブジェクトの情報を得るのに役立ってしまいます。",[526,806,807],{},"「Intune Administrator」が割り当てられているユーザー、またはMicrosoft IntuneのRBACで何らかの委任を受けているユーザーが侵害された場合、次の委任APIアクセス許可は問題があると考えるべきです。",[566,809,810,813],{},[569,811,812],{},"”DeviceManagementConfiguration.Read.All”",[569,814,815],{},"“DeviceManagementConfiguration.ReadWrite.All”",[526,817,818],{},[635,819,820,821,826],{},"これらの委任されたアクセス許可により、たとえばDevice ComplianceやConfigurationのポリシーに対するCRUD操作に加え、対象デバイス上でさらなる悪意ある活動を行うための",[573,822,825],{"href":823,"rel":824},"https://learn.microsoft.com/en-us/graph/api/intune-shared-devicemanagementscript-create?view=graph-rest-beta",[577],"Management Scripts","の展開も可能になります。",[672,828,735],{"id":829},"device-registration-service",[526,831,678],{},[526,833,834],{},"このアクセス許可があれば、攻撃者はデバイスをEntra IDにjoinまたは登録できます。その結果、そのデバイスをIntuneに登録することさえ可能になり、Intuneの構成によっては有効でコンプライアンス準拠のデバイスを手に入れ、さらに多くの保護されたサービスにアクセスできてしまいます。",[672,836,838],{"id":837},"その他のfociアプリケーション","その他のFOCIアプリケーション",[526,840,678],{},[526,842,843],{},"たとえばAzure Resource Manager APIのような他の特権インターフェイスへのアクセス要求もFOCIの対象であり、攻撃者の関心事です。ただしこのリソースは依然として保護されており、条件付きアクセスの許可制御「compliant device」はバイパスされません。",[526,845,846],{},[641,847],{"alt":643,"src":848},"https://res.cloudinary.com/c4a8/image/upload/blog/pics/company-portal-ca-bypass-03.png",[559,850,851],{"id":851},"この攻撃手法を検知できるか",[526,853,564],{},[526,855,856],{},"前述のとおり、最大のリスクはMS GraphとAzure AD Graphへのアクセスから生じます。",[526,858,859],{},"このケースでは常にMicrosoft Intune Company Portal AppのアプリケーションIDが使われるため、検知を作るうえでの主な課題は、デバイス登録などの正当な利用を除外することです。当社の観測では、その切り分けはセッション内で最初にどのリソースへアクセスするかによって決まります。攻撃の場合は、たいていMS GraphかAzure AD Graphです。",[526,861,862],{},"以下は、当社がさまざまな規模の複数の環境で検証した、実際に機能する検知です。",[864,865,867,868,871,872,877,878,882,886,889,890,892,889,896,871,898,900,901,889,905,907,889,910,871,912,914,915,917,889,920,871,922,924,925,928,929,932,933,936,937,871,939,942,943,945,889,948,871,950,928,953,955,956,958,959,961,962,889,965,958,967,970,971,974,975,977,978,942,981,983,889,986,871,988,990,991,871,993,995,996,889,999,1001,889,1003,871,1005,900,1007,889,1009,1011,889,1014,871,1016,924,1018,928,1020,932,1022,936,1024],"div",{"style":866},"background-color:#000000; font-family: 'Source Code Pro', 'Courier New', monospace; padding: 15px; color: #ffffff","\nAADSignInEventsBeta ",[869,870],"br",{},"\n| ",[873,874,876],"span",{"style":875},"color: #569CD6;","where"," Timestamp > ",[873,879,881],{"style":880},"color: #E6DB74;","ago(",[873,883,885],{"style":884},"color: #A6E22E;","7d",[873,887,888],{"style":880},")"," ",[869,891],{},[873,893,895],{"style":894},"color: #75715E;","// Access to Microsoft Intune Company Portal",[869,897],{},[873,899,876],{"style":875}," ApplicationId == ",[873,902,904],{"style":903},"color: #D69D85;","@\"9ba1a5c7-f17a-4de9-a1f1-6178c8d51223\"",[869,906],{},[873,908,909],{"style":894},"// From non joined/registered device",[869,911],{},[873,913,876],{"style":875}," isempty(AadDeviceId) ",[869,916],{},[873,918,919],{"style":894},"// Used to access resource Microsoft Graph or Windows Azure Active Directory",[869,921],{},[873,923,876],{"style":875}," ResourceId ",[873,926,927],{"style":875},"in"," (",[873,930,931],{"style":903},"\"00000002-0000-0000-c000-000000000000\"",", ",[873,934,935],{"style":903},"\"00000003-0000-0000-c000-000000000000\"",") ",[869,938],{},[873,940,941],{"style":875},"summarize by"," SessionId ",[869,944],{},[873,946,947],{"style":894},"// Find the initial logon event based on the session Id",[869,949],{},[873,951,952],{"style":875},"join kind=inner",[869,954],{},"\n    AADSignInEventsBeta ",[869,957],{},"\n    | ",[873,960,876],{"style":875}," ErrorCode == ",[873,963,964],{"style":884},"0",[869,966],{},[873,968,969],{"style":875},"summarize arg_min(","Timestamp, *",[873,972,973],{"style":875},") by"," SessionId)",[869,976],{},"\n    ",[873,979,980],{"style":875},"on",[869,982],{},[873,984,985],{"style":894},"// Ignore trusted and managed devices",[869,987],{},[873,989,876],{"style":875}," isempty(DeviceTrustType) ",[869,992],{},[873,994,876],{"style":875}," IsManaged != ",[873,997,998],{"style":884},"1",[869,1000],{},[873,1002,895],{"style":894},[869,1004],{},[873,1006,876],{"style":875},[873,1008,904],{"style":903},[869,1010],{},[873,1012,1013],{"style":894},"// when the first requested resource is Microsoft Graph or Windows Azure Active Directory",[869,1015],{},[873,1017,876],{"style":875},[873,1019,927],{"style":875},[873,1021,931],{"style":903},[873,1023,935],{"style":903},[869,1025],{},[559,1027,1028],{"id":1028},"不審な活動を検知したらどう対応すべきか",[526,1030,564],{},[526,1032,1033],{},"次の内容を含む定義済みのプレイブックを用いて、インシデント対応プロセスを開始してください。",[566,1035,1036,1057,1065,1068,1071],{},[569,1037,1038,1039],{},"侵害されたユーザーによる不審または異常な活動のハンティング\n",[566,1040,1041,1048,1051,1054],{},[569,1042,1043,1047],{},[1044,1045,1046],"code",{},"sessionId","をもとにした、IPアドレスとUserAgentを含むリソースアプリケーションへの非対話型サインインの要約",[569,1049,1050],{},"Microsoft Entra Audit Logsに、そのユーザーやIPアドレスによる重大な操作（たとえば所有するアプリ登録への資格情報の追加）が記録されていないかの確認",[569,1052,1053],{},"該当セッションでそのユーザーがデバイスを登録していないかの特定",[569,1055,1056],{},"アプリケーション「Company Portal」と対象ユーザーによる操作について、Intuneの監査ログの確認",[569,1058,1059,1060],{},"影響を受けたエンティティに関連するアラートのハンティング\n",[566,1061,1062],{},[569,1063,1064],{},"AlertEvidenceテーブルでエンティティを照会し、SessionId、IPアドレス、ユーザーにもとづく他のアラートを特定",[569,1066,1067],{},"Exposure Managementで、そのユーザーの重大性を権限の観点から特定",[569,1069,1070],{},"ハンティング結果を精査し、その操作がデバイス登録の一環として正当なものだったかを検証",[569,1072,1073],{},"初期侵入経路を特定し、ユーザーの資格情報を、必要に応じてデバイスもリセット",[559,1075,1076],{"id":1076},"攻撃を緩和できるか",[526,1078,564],{},[526,1080,1081,1082,1085],{},"構成されている除外はIntuneの登録に必要なものであるため、 ",[635,1083,1084],{},"Microsoft 365の他の部分を壊さずに済む緩和策はありません。"," Azure AD Graphリソースへのアクセスは、直接スコープを絞ることも遮断することもできません。許可制御に「Block」を用いる条件付きアクセスポリシーはアクセスを防ぎますが、他の影響が生じるおそれがあります。",[526,1087,1088],{},"ただし緩和を考えるうえで重要なのは、この条件付きアクセスのバイパスがそれ単体で完結した攻撃ではないという点です。これは、一連の攻撃を可能にする一段階としての手法です。",[526,1090,1091],{},"想定される攻撃経路は次のようなものです。",[1093,1094,1095,1098,1101,1104],"ol",{},[569,1096,1097],{},"フィッシングとAiTMによるアカウントの侵害",[569,1099,1100],{},"条件付きアクセスのバイパス",[569,1102,1103],{},"ROADrecon、GraphRunner、AADInternalsなどを用いた偵察",[569,1105,1106],{},"Intuneに登録した新しいデバイスを介したラテラルムーブメント、権限昇格、または永続化",[526,1108,1109],{},"Intuneの登録を壊さずに条件付きアクセスのバイパスを緩和することはできないため、攻撃経路の他の段階で緩和策を講じ、あわせて妥当な検知を実装することが十分に理にかなっています。",[526,1111,1112],{},"発生確率と影響を下げるために、他の統制の強度を高め、次の対策を早期に実施することをお勧めします。",[566,1114,1115,1121,1127,1133,1139,1155,1161],{},[569,1116,1117,1120],{},[635,1118,1119],{},"条件付きアクセスで「All Users」と「All Cloud Apps」に対してMFAを強制してください。"," Device Complianceのみを強制している場合、この手法では単要素認証だけで十分になってしまいます。",[569,1122,1123,1126],{},[635,1124,1125],{},"ルールセットでDevice ComplianceとMFAのどちらか一方を使うのではなく、常に両方を強制してください。"," ORを使うと、コンプライアンス準拠のデバイスへのアクセス制限が徹底されません。MFAがスコープに含まれるアクセストークンがあれば、テナントにアクセスできてしまうからです。",[569,1128,1129,1132],{},[635,1130,1131],{},"セキュリティ情報の登録を、コンプライアンス準拠デバイス、フィッシング耐性のある認証、またはTAPに限定してください。"," 当社のテストでは、セキュリティ情報の登録についてDevice Complianceをバイパスすることはできませんでした。",[569,1134,1135,1138],{},[635,1136,1137],{},"デバイスのJoinまたはRegisterにフィッシング耐性のある認証またはTAPを要求してください。"," これがないと、たとえばAADInternalsとこの手法でデバイスを登録できてしまいます。",[569,1140,1141,1144,1145],{},[635,1142,1143],{},"Microsoft Intuneの登録にMFAと「Sign-in frequency every time」を要求してください。"," これにより、攻撃者が新しいデバイスをIntuneに登録するために新鮮な資格情報を使える時間を限定できます。\n",[1146,1147,1148],"blockquote",{},[526,1149,1150,1151,1154],{},"🚧\n",[635,1152,1153],{},"注意: Sign-in frequency every time = 5分ごと","\nMicrosoftは、条件付きアクセスポリシーで「every time」を選択した場合、ユーザーが5分に1回より頻繁に認証を求められないよう、5分のクロックスキューを考慮します。",[569,1156,1157,1160],{},[635,1158,1159],{},"Intuneの登録制限で個人所有デバイスをブロックしてください。"," この制限がないと、攻撃者が新しいデバイスを登録してさらなる足がかりを得られます。",[569,1162,1163,1166],{},[635,1164,1165],{},"Intuneでデバイスにコンプライアンスポリシーが割り当てられていない場合に、デバイスコンプライアンスを不準拠とする設定にしてください。"," 既定では、実際にはポリシーが適用されていなくても各デバイスはコンプライアンス準拠と見なされます。これを変更し、デバイスコンプライアンスポリシーを必須にしてください。",[526,1168,1169,1170,1174],{},"長期的には、Windows Hello for Businessやパスキー（macOS Platform SSOによるPlatform Credentialsを含む）のような、パスワードレスでフィッシング耐性のある認証の展開に投資されることをお勧めします。そうすることで、その後フィッシング耐性のある認証を強制し、AiTM攻撃を遮断できるようになります。パスワードの代わりに、新しいデバイスや従業員のオンボーディングなど、期間とシナリオを限定してTemporary Access Pass（TAP）の利用を許可してください。さまざまなユースケースでTAPを活用できるよう、当社は",[573,1171,287],{"href":1172,"rel":1173},"https://myworkid.cloud/",[577],"を開発しました。",[559,1176,1177],{"id":1177},"まとめ",[526,1179,564],{},[526,1181,1182],{},"Entra IDのゼロトラストエンジンである条件付きアクセスは、それ自体がすでに複雑です。さらにMicrosoftがEntraのバックエンドに組み込んだ除外設定によって、ポリシーや保護の効果を理解することは多くの人にとって一層難しくなっています。それでも、ゼロトラストと多層防御という考え方は有効なままです。",[526,1184,1185],{},"デバイスコンプライアンスポリシーはほとんどのAiTM攻撃を防ぎ、多要素認証（MFA）は、漏えいしたりその他の形で侵害されたりした資格情報の悪用を攻撃者にとって難しくします。",[526,1187,1188],{},"これらのセキュリティ対策は、どれか一方を他方の代わりにするのではなく、組み合わせて使わなければなりません。そうすることで、防御のひとつが改ざんされたり突破されたりしても、安全な環境を維持できます。",[526,1190,1191],{},"悪用の可能性を確実に検知できるよう、ここで示した検知をMicrosoft Defender XDRに展開することを強くお勧めします。自社のSOCがこうしたインシデントを調査できる体制を整え、必要なプレイブックを用意しておいてください。",{"title":530,"searchDepth":531,"depth":531,"links":1193},[1194,1195,1196,1200,1206,1207,1208,1209],{"id":561,"depth":531,"text":561},{"id":621,"depth":531,"text":622},{"id":668,"depth":531,"text":668,"children":1197},[1198],{"id":674,"depth":1199,"text":675},3,{"id":760,"depth":531,"text":760,"children":1201},[1202,1203,1204,1205],{"id":765,"depth":1199,"text":766},{"id":796,"depth":1199,"text":724},{"id":829,"depth":1199,"text":735},{"id":837,"depth":1199,"text":838},{"id":851,"depth":531,"text":851},{"id":1028,"depth":531,"text":1028},{"id":1076,"depth":531,"text":1076},{"id":1177,"depth":531,"text":1177},"post",{"lang":1212,"seoTitle":1213,"titleClass":1214,"date":1215,"categories":1216,"blogtitlepic":1217,"socialimg":1218,"customExcerpt":1219,"keywords":1220,"contactInContent":1221,"scripts":1278},"ja","Microsoft IntuneのCompliant Device Bypass: 検知、対応、緩和","h2-font-size","2025-01-14",[235],"header-company-portal-ca-bypass","/blog/heads/header-company-portal-ca-bypass.png","本記事では、glueckkanjaのMVPであるFabian Bader、Chris Brumm、Thomas NaunheimがMicrosoft Intune Company PortalのCompliant Device Bypassについて詳しく解説します。追加の調査により、この潜在的な脅威を検知し対応するための手法を見つけ出しました。攻撃対象領域を減らすための条件付きアクセスの指針と、影響範囲（blast radius）の詳細もあわせてご紹介します。","Compliant Device Bypass, Microsoft Intune, 条件付きアクセス, Entra ID, Intune Company Portal, デバイスコンプライアンス, CAの除外, TokenSmith PoC, クラウドセキュリティ, PowerShell PoC, Fabian Bader, Christopher Brumm, Thomas Naunheim, セキュリティ脅威, Black Hat Europe, Intune Enrollment, MSRCの回答, 攻撃の検知, 脅威の緩和, クラウドのコンプライアンス, FOCI機能",{"quote":484,"infos":1222},{"bgColor":1223,"color":1224,"boxBgColor":1225,"boxColor":1226,"headline":1227,"subline":1228,"level":559,"textStyling":1229,"flush":1230,"person":1231,"form":1243},"var(--color-gk-violet)","var(--color-gk-white)","var(--color-gk-yellow)","var(--color-copy)","今すぐご相談ください","Compliant Device Bypassと、その効果的な検知・緩和の方法について詳しくお知りになりたいですか。当社の専門家が調査結果をご説明し、セキュリティ強化に向けた実証済みの戦略でご支援します。皆様とお話しできることを楽しみにしています。","text-light","justify-content-end",{"image":1232,"cloudinary":325,"alt":1233,"name":1233,"detailsHeader":1234,"details":1235},"/people/people-pam-team.png","Project & Account Management","皆様からのご連絡をお待ちしています",[1236,1240],{"text":492,"href":1237,"details":1238,"icon":1239},"tel:+49 69 4005520","今すぐ電話する","site/phone",{"text":493,"href":1241,"icon":1242},"mailto:info@glueckkanja.com","site/mail",{"ctaText":1244,"cta":1245,"method":1210,"action":1247,"fields":1248},"送信",{"skin":1246},"primary on-surface","/send",[1249,1253,1258,1261,1265,1270,1273,1276],{"type":1250,"id":1251,"value":1252},"hidden","_next","successful",{"label":1254,"type":1255,"id":1256,"required":325,"requiredMsg":1257},"お名前*","text","name","お名前を入力してください",{"label":1259,"type":1255,"id":403,"required":325,"requiredMsg":1260},"会社名*","会社名をご記入ください",{"label":1262,"type":1263,"id":1263,"required":325,"requiredMsg":1264},"メールアドレス*","email","メールアドレスを入力してください",{"label":1266,"type":1267,"id":1268,"required":325,"requiredMsg":1269},"ご入力いただいたデータは、お問い合わせの処理と回答のために当社で保存されます。データ保護に関する詳細は\u003Ca href=\"/ja/privacy\">プライバシーポリシー\u003C/a>をご覧ください。","checkbox","dataprotection","ご確認ください",{"type":1250,"id":1271,"value":1272},"_subject","Request Global Secure Access",{"type":1250,"id":1274,"value":1275},"inbox_key","gkgab-contact-form",{"type":1250,"id":1277},"_gotcha",{"slick":325,"form":325},"/posts/2025-01-14-compliant-device-bypass",{"title":552,"description":530},"posts/2025-01-14-compliant-device-bypass",[235,1283,1284,1285,281],"Entra","Conditional Access","ITDR","sy32hQ4l98na4Cpln-J8l23KMR3xkua_vk9ZxB030UA",{"id":1288,"title":1289,"author":1290,"body":1291,"cta":494,"description":1295,"eventid":494,"extension":533,"hideInRecent":484,"layout":1210,"meta":2065,"moment":2067,"navigation":325,"path":2088,"seo":2089,"stem":2090,"tags":2091,"webcast":484,"__hash__":2094},"content_ja/posts/2025-12-31-vulnerability-consentfix.md","AuthCodeFix aka ConsentFix",[521,554,555],{"type":523,"value":1292,"toc":2045},[1293,1296,1299,1302,1308,1311,1314,1323,1328,1336,1356,1359,1365,1368,1371,1377,1382,1385,1396,1402,1405,1408,1411,1414,1420,1427,1430,1450,1460,1463,1466,1469,1472,1475,1478,1481,1484,1501,1510,1513,1516,1536,1540,1545,1556,1559,1567,1571,1585,1589,1600,1604,1607,1615,1618,1626,1629,1637,1640,1643,1664,1667,1731,1734,1737,1740,1743,1746,1752,1755,1796,1799,1814,1818,1821,1835,1838,1841,1846,1849,1860,1863,1870,1874,1880,1885,1899,1905,1911,1917,1928,1931,1937,1940,1965,1974,1977,1997,2003,2006,2012,2015],[526,1294,1295],{},"年末が近づくと恒例のように、新しい脆弱性か巧妙な攻撃手口が現れ、守る側はユーザーを守ろうと奔走することになります。その傍らで、他の攻撃者やレッドチームはそれをよく見て取り入れていきます。",[526,1297,1298],{},"今年はPushSecurityが「ConsentFix」と名付けた攻撃を見つけました。ClickFix攻撃の発展形で、Entraという王国の鍵をそのまま攻撃者に渡すことになるURIを、ユーザー自身に提供させるものです。実際に観測された手口は、ユーザーが手でコピー＆ペーストすることを前提にしていました。その数日後、John Hammondがコピー＆ペーストを不要にした改良版を実演する動画を公開しました。こちらではユーザーが認可コードを攻撃者にドラッグ＆ドロップするだけで済みます。",[526,1300,1301],{},"この攻撃がなぜ成立し、デバイスのコンプライアンスをはじめとする条件付きアクセスの要件を一見すり抜けてしまうのか。その技術的な詳細をたどると、OAuth 2.0の認可コードフローに行き着きます。",[526,1303,1304],{},[641,1305],{"alt":1306,"src":1307},"OAuth 2.0の認可コードフロー","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-01.png",[526,1309,1310],{},"攻撃者は「Microsoft Azure CLI」クライアントと「Azure Resource Manager」リソースを対象にしたMicrosoft Entraのログインurlを作り、ユーザーが悪意あるサイトを訪れたときにそれを開きます。",[526,1312,1313],{},"認可コードフローに当てはめると、これはAzure CLIのようなネイティブのパブリックアプリがユーザーを認証するために通常最初に呼び出す手順にあたります。アプリケーションは実行中のマシン上で、ランダムな高位ポートにリスナーを立てます。このポートがいわゆるリプライURIとして使われます。",[526,1315,1316,1317,1322],{},"これは自分でも簡単に再現できます。たとえば",[573,1318,1321],{"href":1319,"rel":1320},"https://github.com/f-bader/TokenTacticsV2",[577],"TokenTacticsV2","を使うか、URIを手で組み立ててください。",[526,1324,1325],{},[641,1326],{"alt":1321,"src":1327},"https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-02.png",[526,1329,1330,1331,1335],{},"ユーザーがEntra IDへのサインインに成功すると、リプライURI（たとえば ",[573,1332,1333],{"href":1333,"rel":1334},"http://localhost:3001",[577]," ）へリダイレクトされます。通常であれば、ここでAzure CLIがこのURIへの呼び出しを受け取り、リダイレクトに含まれる重要かつ決定的な情報を手にします。",[566,1337,1338,1348],{},[569,1339,1340,1342,1344,1345,1347],{},[635,1341,1044],{},[869,1343],{},"\nこれがauthorization_codeです。アプリケーションはこれを使ってベアラートークンを要求します。ベアラートークンはアクセストークン、IDトークン、場合によってはリフレッシュトークンから成ります。",[869,1346],{},"\nドキュメントによれば、このコードの有効期間はおよそ10分で、その間に引き換える必要があります。",[569,1349,1350,1353,1355],{},[635,1351,1352],{},"state",[869,1354],{},"\nこれは省略可能なパラメーターで、アプリケーションは要求と応答で同じ値かどうかを検証すべきです。",[526,1357,1358],{},"攻撃の筋書きでもユーザーはリダイレクトされますが、localhostで動いているアプリケーションがないため、ブラウザーはエラーになります。",[526,1360,1361],{},[641,1362],{"alt":1363,"src":1364},"ブラウザーがエラーになる様子","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-03.png",[526,1366,1367],{},"それでもURIには機微な情報が残っており、攻撃者はユーザーにこれを渡させようとします。ユーザーが応じてしまうと、攻撃者はトークンを引き換え、アクセストークンとリフレッシュトークンを使って対象のリソース、この場合はAzure Resource Managerにアクセスできます。",[526,1369,1370],{},"次のスクリーンショットでは、ユーザーから渡されたURIを使ってベアラートークンを取得する様子が分かります。",[526,1372,1373],{},[641,1374],{"alt":1375,"src":1376},"ユーザーから渡されたURIを使ったベアラートークンの取得","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-04.png",[1146,1378,1379],{},[526,1380,1381],{},"検知の仕組みを試す場合は、最後の手順を別のネットワークにある別のシステムから実行してください。",[559,1383,1384],{"id":1384},"検知に使えるアーティファクト",[526,1386,1387,1388,1391,1392,1395],{},"攻撃を再現して",[1044,1389,1390],{},"SigninLogs","と",[1044,1393,1394],{},"AADNonInteractiveUserSignInLogs","を確認すると、この1回のサインイン活動に対して2つのイベントが見つかります。1つ目は実際のユーザーのサインインを表し、2つ目は攻撃者側の基盤から発生したものです。",[526,1397,1398],{},[641,1399],{"alt":1400,"src":1401},"アクティビティログ","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-05.png",[526,1403,1404],{},"大きな違いは、1つ目が対話的なサインインイベントであるのに対し、2つ目が非対話的である点です。これは認証フローの2つの段階に対応します。まずユーザー、次にアプリケーション、この場合は攻撃者です。",[526,1406,1407],{},"Azure CLIの通常の挙動であれば、2つのサインインイベントは同じIPアドレスから発生します。しかしこの例ではIPアドレスが異なり、しかも別の国から来ています。もちろん後者は当てにできる指標ではありません。攻撃者が足跡を隠すために被害者と同じ国に居ることもありうるからです。",[672,1409,1410],{"id":1410},"欠けているつながり",[526,1412,1413],{},"この2つのイベントを結びつける良い手がかりを探したとき、まず思いつくのはUnique Token Identifier（UTI）を見ることです。ところがMicrosoftは認可コードのUTIとベアラートークンのUTIに別の値を使うため、この方法は確かなつながりにはなりません。",[526,1415,1416],{},[641,1417],{"alt":1418,"src":1419},"Unique Token Identifier","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-06.png",[526,1421,1422,1423,1426],{},"一方で",[1044,1424,1425],{},"SessionId","は2つを結ぶ良い手がかりになります。ただし長く使われ続けるIDなので、正当なものを含めてこの組み合わせが複数含まれることもあります。",[526,1428,1429],{},"認可コードフローの制約という知識に加えて、ユーザーIDとアプリケーションIDも手がかりに使えば、時間が重要な検知の材料になります。",[566,1431,1432,1435,1438,1441,1444,1447],{},[569,1433,1434],{},"両方のイベントのSessionIdが同じであること",[569,1436,1437],{},"両方のイベントのApplicationIdが同じであること",[569,1439,1440],{},"両方のイベントのUserIdが同じであること",[569,1442,1443],{},"2つ目のイベントが1つ目より後であること",[569,1445,1446],{},"2つ目のイベントが1つ目からおよそ10分以内に収まっていること。ちょうど10分にすべきではありません。Microsoftは「[...] they expire after about 10 minutes」と書いているからです",[569,1448,1449],{},"対象にするのは直後の2つ目のイベントだけで、それ以降のものは含めないこと",[1146,1451,1452],{},[526,1453,1454,1457,1459],{},[635,1455,1456],{},"豆知識",[869,1458],{},"\nResourceIdentityは良い手がかりではありません。リソースは認可コードに紐づいていないため攻撃者が変更できるからです。対象のアプリケーションIDは変更できません。",[559,1461,1462],{"id":1462},"ノイズを減らす",[526,1464,1465],{},"ここまでの知識ですでに十分に使える検知ができましたが、それでも良性の検出が混ざっていました。最近の開発者は、ローカルのインスタンスのように見えるクラウドのリソースを使うため、ログには不規則なログインの並びが残ります。",[526,1467,1468],{},"決め手になるのは時間の要素です。この攻撃はURIをコピー＆ペーストするかドラッグ＆ドロップするというユーザーの操作を必要とするのに対し、良性の検出の発生源として特定したGitHub Codespaceの使い方は完全に自動化されていて、認可コードを数秒のうちに引き換えます。",[526,1470,1471],{},"そのため、この認証のやり取りを数秒で済ませているものを除外すれば、ほぼ良性として取り除けます。",[526,1473,1474],{},"もう1つのノイズの原因になりうるのが、インターネット通信の出口が変わることです。とくにSD-WAN、ZTNA、Secure Web Gatewayを使う構成で起こります。",[559,1476,1477],{"id":1477},"影響を受けるファーストパーティアプリケーション",[526,1479,1480],{},"最初の報告では悪用されたアプリケーションとして「Microsoft Azure CLI」が挙げられていますが、どのテナントにも事前同意済みで存在し、localhostをリダイレクト先として認めるMicrosoftのファーストパーティアプリは他にもたくさんあります。しかも対象はそれだけではありません。攻撃者は、公開名前解決できないテスト用や開発用のリプライURLも悪用できます。",[526,1482,1483],{},"リソースに対する事前同意の権限が強い、とくに注意すべきアプリケーションを挙げます。",[566,1485,1486,1489,1492,1495,1498],{},[569,1487,1488],{},"Microsoft Azure CLI (04b07795-8ddb-461a-bbee-02f9e1bf7b46)",[569,1490,1491],{},"Microsoft Azure PowerShell (1950a258-227b-4e31-a9cf-717495945fc2)",[569,1493,1494],{},"Visual Studio (04f0c124-f2bc-4f59-8241-bf6df9866bbd)",[569,1496,1497],{},"Visual Studio Code (aebc6443-996d-45c2-90f0-388ff96faa56)",[569,1499,1500],{},"MS Teams PowerShell Cmdlets (12128f48-ec9e-42f0-b203-ea49fb6af367)",[526,1502,1503,1504,1509],{},"こうしたアプリの全一覧は、同僚のFabian Baderによって",[573,1505,1508],{"href":1506,"rel":1507},"https://entrascopes.com/?authcodeFix=true",[577],"EntraScopes.com","に収録されています。",[559,1511,1512],{"id":1512},"緩和策と保護",[672,1514,1515],{"id":1515},"攻撃面と対象範囲を絞る",[864,1517,1520,1523,1524,1526,1529,1530,1532,1535],{"className":1518},[1519],"option-block",[635,1521,1522],{},"導入の手間："," 低〜高（正当な利用者を洗い出す手間による）",[869,1525],{},[635,1527,1528],{},"緩和の効果："," 中（攻撃の対象になりうる範囲を狭める）",[869,1531],{},[635,1533,1534],{},"適用範囲："," 限定的\n",[672,1537,1539],{"id":1538},"選択肢1ユーザーの割り当てを必須にする","選択肢1：ユーザーの割り当てを必須にする",[1541,1542,1544],"h4",{"id":1543},"前提条件","前提条件：",[566,1546,1547,1550,1553],{},[569,1548,1549],{},"対象となるファーストパーティアプリのサービスプリンシパルを、Microsoft Graph APIまたはPowerShellで追加する",[569,1551,1552],{},"サービスプリンシパルのオブジェクトに対して、Microsoft Graph APIまたはPowerShellでユーザー割り当ての要件を適用する",[569,1554,1555],{},"Access Packages、PIM-for-Groups（Just-in-Timeアクセス用）、またはその組み合わせによって、申請に応じてユーザーを割り当てる手順を整える。",[683,1557,1558],{},"\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",[1560,1561,1564],"pre",{"className":1562},[1563],"code-block",[1044,1565,1566],{},"\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",[1541,1568,1570],{"id":1569},"利点","利点：",[566,1572,1573,1576,1579,1582],{},[569,1574,1575],{},"Access Packagesや手動のグループ所属を通じてユーザーの割り当てを管理でき、この攻撃手法にさらされる範囲を絞れます。",[569,1577,1578],{},"対象候補としてのグループ所属と組み合わせてJust-in-Timeアクセスを提供でき、CLIツールへのアクセスを一時的なものにすることで攻撃面をさらに狭められます。",[569,1580,1581],{},"条件付きアクセスのポリシーを評価する前に適用されます。",[569,1583,1584],{},"他の筋書きに対しても攻撃面を狭めます。",[1541,1586,1588],{"id":1587},"欠点","欠点：",[566,1590,1591,1594,1597],{},[569,1592,1593],{},"対象を絞れるのは特定のユーザーまでで、特定のデバイスの利用といった他の要件とは組み合わせられません",[569,1595,1596],{},"正当なCLIツールの利用者をすべて洗い出す必要があります",[569,1598,1599],{},"これまでのサインインを確認しながら、副作用と組織への影響を丁寧に見極める必要があります。",[672,1601,1603],{"id":1602},"選択肢2条件付きアクセスのポリシーでアクセスを遮断する","選択肢2：条件付きアクセスのポリシーでアクセスを遮断する",[1541,1605,1544],{"id":1606},"前提条件-1",[566,1608,1609,1612],{},[569,1610,1611],{},"「Microsoft Graph Command Line Tools」と「Windows Azure Service Management API」を対象に、正当な利用者を除外したうえでCLIツールへのアクセスを遮断する条件付きアクセスのポリシーを作成する",[569,1613,1614],{},"除外はグループ所属で管理する。手動でも、エンタイトルメント管理（Access Packagesなど）でもよい。",[1541,1616,1570],{"id":1617},"利点-1",[566,1619,1620,1623],{},[569,1621,1622],{},"正当でない利用者や権限のない利用者へのトークン発行を防ぎます。",[569,1624,1625],{},"デバイスやネットワークといった追加の条件に基づいて、きめ細かく対象を絞れます。",[1541,1627,1588],{"id":1628},"欠点-1",[566,1630,1631,1634],{},[569,1632,1633],{},"正当なCLIツールの利用者をすべて洗い出して除外する必要があります。",[569,1635,1636],{},"これまでのサインインを確認し、ポリシーをレポート専用モードで評価しながら、副作用と組織への影響を丁寧に見極める必要があります。",[672,1638,1639],{"id":1639},"認可コードフローによるトークン発行を遮断する",[683,1641,1642],{},"\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",[864,1644,1646,1649,1650,1652,1654,1655,1657,1654,1659,1661,1663],{"className":1645},[1519],[635,1647,1648],{},"選択肢："," トークン保護を必須にする",[869,1651],{},[635,1653,1522],{}," 高",[869,1656],{},[635,1658,1528],{},[869,1660],{},[635,1662,1534],{}," 非常に限定的\n",[1541,1665,1544],{"id":1666},"前提条件-2",[566,1668,1669,1672,1675,1694],{},[569,1670,1671],{},"Microsoft Entra ID P1のライセンス",[569,1673,1674],{},"Windowsプラットフォーム上のEntra ID登録デバイス、ハイブリッド参加デバイス、またはEntra ID参加デバイス",[569,1676,1677,1682,1683,1682,1688,1693],{},[573,1678,1681],{"href":1679,"rel":1680},"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,1684,1687],{"href":1685,"rel":1686},"https://learn.microsoft.com/en-us/powershell/azure/configure-global-settings?view=azps-15.1.0#web-account-manager-wam",[577],"Azure PowerShell",[573,1689,1692],{"href":1690,"rel":1691},"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","でWeb Account Manager（WAM）を有効にする（最近のバージョンでは既定）",[569,1695,1696,1697],{},"条件付きアクセスを次のように構成する。\n",[566,1698,1699,1713,1720],{},[569,1700,1701,1702],{},"クラウドアプリの対象を次のアプリに設定する。\n",[566,1703,1704,1707,1710],{},[569,1705,1706],{},"Office 365 Exchange Online",[569,1708,1709],{},"Office 365 SharePoint Online",[569,1711,1712],{},"Microsoft Teams Services",[569,1714,1715,1719],{},[1716,1717,1718],"em",{},"モバイルアプリとデスクトップクライアント"," のクライアントアプリにトークン保護を必須とする。",[569,1721,1722,1723,1726,1727,1730],{},"ポリシーの対象とする ",[1716,1724,1725],{},"デバイスプラットフォーム"," として ",[1716,1728,1729],{},"Windows"," を選ぶ",[1541,1732,1570],{"id":1733},"利点-2",[526,1735,1736],{},"Microsoft Entraのトークン保護はproof-of-possession（PoP）を要求します。これは、クライアントがWindowsのWeb Account Manager（WAM）のような信頼されたトークンブローカーと直接やり取りする場合にしか強制できません。ブラウザーはこの安全な経路を確立できないため、ブラウザーで開始された認可コードフローはトークン保護のポリシーによって遮断されます。",[526,1738,1739],{},"ポリシーがブローカー経由のPoPを要求するトークン保護を強制している場合、ブラウザーに返された認可コードは引き換えられません。コードをトークンに交換する際に必要となる、ブローカーが署名した証明をブラウザーが作れないからです",[526,1741,1742],{},"この場合、対象のアプリケーションをトークン保護で守れる限り、AuthCodeFixによる攻撃は完全に緩和されます。",[526,1744,1745],{},"下のスクリーンショットのとおり、フィッシングによって被害者に開始させた認可コードフローの引き換えを、トークン保護がしっかり止めています。",[526,1747,1748],{},[641,1749],{"alt":1750,"src":1751},"認可コードフローの引き換えをトークン保護が止めている様子","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-07.png",[1541,1753,1588],{"id":1754},"欠点-2",[566,1756,1757,1787,1790,1793],{},[569,1758,1759,1760],{},"公式にサポートされているリソースは次のものだけです。\n",[566,1761,1762,1764,1766],{},[569,1763,1706],{},[569,1765,1709],{},[569,1767,1712,1768,1770,1772,1773,1391,1776,1780,1781,1786],{},[869,1769],{},[869,1771],{},"\nMicrosoft Graph APIは前述のリソースを通じて間接的に含まれ、Microsoft Graph PowerShellはサポート対象のクライアントとして挙げられています。この筋書きでも攻撃が緩和されることは、当社の検証で確認できました。「Windows Azure Service Management API」はサポート対象のリソースとして挙げられていません。2つのCLIクライアント（",[573,1774,1681],{"href":1679,"rel":1775},[577],[573,1777,1687],{"href":1778,"rel":1779},"https://learn.microsoft.com/en-us/powershell/azure/authenticate-interactive?view=azps-15.1.0#benefits-of-wam",[577],"）はどちらもWAMに対応しており、これはトークン保護を使うためのクライアント側の要件です。MicrosoftはAzureの管理シナリオ向けにトークン保護の機能を広げることを",[573,1782,1785],{"href":1783,"rel":1784},"https://techcommunity.microsoft.com/blog/microsoft-entra-blog/how-to-break-the-token-theft-cyber-attack-chain/4062700",[577],"ブログ記事","で表明しています。",[569,1788,1789],{},"Microsoft Graph PowerShellにいくつか不具合があり、WAMの連携を一時的に無効にせざるをえない場合があります",[569,1791,1792],{},"これまでのサインインを確認し、ポリシーをレポート専用モードで評価しながら、副作用と組織への影響を丁寧に見極める必要があります。クラウドアプリを対象にすると、Microsoft 365の日常業務のアクセスにも影響します。",[569,1794,1795],{},"対応するプラットフォームとEntra ID連携デバイスでしか使えないため、適用範囲は限られます。",[672,1797,1798],{"id":1798},"準拠ネットワークの確認または信頼済みネットワークで以降のトークン発行を遮断する",[864,1800,1802,1804,1805,1807,1804,1809,1811,1813],{"className":1801},[1519],[635,1803,1522],{}," 中",[869,1806],{},[635,1808,1528],{},[869,1810],{},[635,1812,1534],{}," 広い\n",[672,1815,1817],{"id":1816},"選択肢global-secure-accessで準拠ネットワークの外からのアクセスを遮断する","選択肢：Global Secure Accessで準拠ネットワークの外からのアクセスを遮断する",[1541,1819,1544],{"id":1820},"前提条件-3",[566,1822,1823,1826,1829,1832],{},[569,1824,1825],{},"Entra ID P1のライセンス",[569,1827,1828],{},"Windows、macOS、Android、iOSの各プラットフォーム上のEntra ID登録デバイス、ハイブリッド参加デバイス、またはEntra ID参加デバイス",[569,1830,1831],{},"対象となるすべてのクライアントにGlobal Secure Accessクライアントを導入し、M365 Traffic Profile向けにEntra Internet Accessを有効にすること",[569,1833,1834],{},"ネットワークの準拠確認を強制する条件付きアクセスのポリシーを、すべてのクラウドアプリに適用すること",[1541,1836,1570],{"id":1837},"利点-3",[526,1839,1840],{},"信頼済みネットワークの確認を強制することで、以降のトークン発行を遮断します。この緩和策により、攻撃者は認可コードフローで得たリフレッシュトークンを使って新しいトークンを取得できなくなります。ただし、最初の認可コードの引き換えや最初のアクセストークンの発行そのものは防げません。そのトークンはもともと被害者が要求したものなので、準拠ネットワークの外でも有効なままです。",[1146,1842,1843],{},[526,1844,1845],{},"準拠ネットワークの条件とともにGSAを強制すると、他のトークンリプレイの筋書きも遮断でき、検知やハンティングにとても役立つログも増えます。",[1541,1847,1588],{"id":1848},"欠点-3",[566,1850,1851,1854,1857],{},[569,1852,1853],{},"Global Secure Accessクライアントを導入したユーザーとデバイスにしか適用できません",[569,1855,1856],{},"Entra ID連携デバイスでしか使えないため、適用範囲は限られます",[569,1858,1859],{},"条件付きアクセスで準拠ネットワークを強制する際は、鶏と卵の問題を避けるためにIntuneなどいくつかの除外が必要になります。展開前に入念な検証が要ります",[559,1861,1862],{"id":1862},"ハンティングクエリ",[526,1864,1865,1866,1869],{},"トークン窃取の緩和に必要な前提が整ったら、つまりGSAクライアントを展開し（",[1044,1867,1868],{},"NetworkAccessTraffic","ログの取り込みを含む）、WAM認証を活かせるようになったら、脅威ハンティングと裏づけの手立てが増えます。",[672,1871,1873],{"id":1872},"gsaのログとwam認証を使ったハンティングまたは検知結果の確度の確認","GSAのログとWAM認証を使ったハンティング、または検知結果の確度の確認",[526,1875,1876,1877,1879],{},"このハンティングクエリは、Global Secure Access（GSA）の",[1044,1878,1868],{},"ログを使います。このログには、Microsoft Entraのトークンエンドポイントとの通信を開始したプロセスが含まれます。これにより、トークン要求がブラウザーから直接出たものかどうか、またGSAのネットワークの外で追加のトークン要求が行われたかどうかを判断できます。",[1146,1881,1882],{},[526,1883,1884],{},"このクエリは前提条件が満たされている場合にのみ動作し、信頼できる結果を返します。そうでなければ誤検知が多くなります。",[526,1886,1887,1890,1891,1894,1895,1898],{},[635,1888,1889],{},"なぜこれが効くのか","。WindowsデバイスでWeb Account Manager（WAM）を使ってCLIやPowerShellのモジュールからサインインする場合、ブラウザーを介した認可コードは関与しません。このサインインの挙動は最近のバージョンでは既定です。したがって、開始したプロセスがブラウザーの実行ファイル（たとえば",[1044,1892,1893],{},"msedge.exe","）であれば、それは疑わしい活動の強い手がかりになります。macOSでは、Platform SSOを使っているとCompany Portalアプリ（",[1044,1896,1897],{},"com.microsoft.CompanyPortalMac.ssoextension","）がプロセスを開始します。",[526,1900,1901,1904],{},[635,1902,1903],{},"トークンのバインドとPoP","。WAM認証では通常、Proof-of-Possession（PoP）を強制することでトークンがデバイスに紐づきます。攻撃者はPoPなしにはさらに紐づいたトークンを発行できないため、紐づいていないリフレッシュトークンもまた強い手がかりです。",[526,1906,1907,1910],{},[635,1908,1909],{},"制約","。ここで挙げた手がかりはいずれも、アクセス元のデバイスがMicrosoft Entra IDに登録または参加している場合にしか得られません。",[526,1912,1913,1916],{},[635,1914,1915],{},"確度スコアの考え方","。このクエリは複数の手がかりを組み合わせて確度スコアを算出します。",[566,1918,1919,1922,1925],{},[569,1920,1921],{},"トークン要求を開始したブラウザーのプロセスがあるか。",[569,1923,1924],{},"紐づいていないトークンへの降格を検知したか。",[569,1926,1927],{},"サインインの間にネットワークプロバイダーが変わったか（準拠から非準拠への変化を含む）。",[526,1929,1930],{},"これらの手がかりは、活動を探すためにクエリの中で使うこともできますし、先の検知に基づいてインシデントが起きた際の確度スコアを導くのにも使えます。",[526,1932,1933],{},[641,1934],{"alt":1935,"src":1936},"ハンティングクエリで使う手がかり","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-08.png",[526,1938,1939],{},"条件に応じて、次のようにスコアが表示されます。",[526,1941,1942,1945,1946,1948,1949,1951,1953,1956,1957,1959,1961,1964],{},[635,1943,1944],{},"非常に高い確度","は、",[1044,1947,1868],{},"のログがトークン要求の開始元として見慣れたブラウザーのプロセスを示し、かつ紐づいていないトークンへの降格が検知された場合に表示されます。",[869,1950],{},[869,1952],{},[635,1954,1955],{},"高い確度","は、別のネットワークプロバイダー（ASN）からのサインインであり、かつ紐づいていないトークンを伴う非準拠ネットワークだった場合に表示されます。",[869,1958],{},[869,1960],{},[635,1962,1963],{},"中程度の確度","は、ネットワークプロバイダーの変化と準拠ネットワークだけが確認され、あわせて使われたトークンの種類が変わっている場合に表示されます。",[526,1966,1967,1968,1973],{},"ハンティングクエリの最新版は",[573,1969,1972],{"href":1970,"rel":1971},"https://github.com/Cloud-Architekt/AzureSentinel/blob/main/Hunting%20Queries/EID-Authentication/ConsentFix-HuntingConfidenceOnTokenAndNetworkSignals.kusto",[577],"GitHub","にあります。",[672,1975,1976],{"id":1976},"発行されたトークンによる活動を追う",[526,1978,1979,1980,1983,1984,1989,1990,1992,1993,1996],{},"調査はサインインのイベントだけにとどめず、攻撃者が発行させたトークンを使って行われた活動まで広げて考えるべきです。同僚のThomas Naunheimが",[1044,1981,1982],{},"MicrosoftCloudActivity","という",[573,1985,1988],{"href":1986,"rel":1987},"https://github.com/Cloud-Architekt/AzureSentinel/blob/main/Hunting%20Queries/EID-TokenHunting/MicrosoftCloudActivity.func",[577],"KQL関数を公開しており","、この広げた調査に役立ちます。さらに、対象の",[1044,1991,1425],{},"を、先のハンティングで見つけた疑わしい",[1044,1994,1995],{},"UniqueId","と突き合わせれば、より深く分析できます。",[526,1998,1999],{},[641,2000],{"alt":2001,"src":2002},"KQL関数","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-09.png",[526,2004,2005],{},"この例では、攻撃者は攻撃中に得たリフレッシュトークンを使ってMicrosoft Graph API向けのアクセストークンを発行させました。そのトークンを使って被害者が所有するアプリケーションにクライアントシークレットを追加し、居座りと横展開を図っています。このクエリは、トークン保護の状態や、その操作がGlobal Secure Accessのネットワークの外で行われたかどうかを含め、Graph APIの操作の詳細を示します。",[526,2007,2008],{},[641,2009],{"alt":2010,"src":2011},"Graph APIの操作のスクリーンショット","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-10.png",[559,2013,2014],{"id":2014},"さらに読む",[566,2016,2017,2024,2031,2038],{},[569,2018,2019],{},[573,2020,2023],{"href":2021,"rel":2022},"https://pushsecurity.com/blog/consentfix",[577],"ConsentFix: Analysing a browser-native ClickFix-style attack that hijacks OAuth consent grants - PushSecurity",[569,2025,2026],{},[573,2027,2030],{"href":2028,"rel":2029},"https://youtu.be/AAiiIY-Soak",[577],"Hacking Endpoint to Identity (Microsoft 365): \"ConsentFix\" - YouTube",[569,2032,2033],{},[573,2034,2037],{"href":2035,"rel":2036},"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,2039,2040],{},[573,2041,2044],{"href":2042,"rel":2043},"https://entrascopes.com/?appId=04b07795-8ddb-461a-bbee-02f9e1bf7b46",[577],"Microsoft Azure CLI on entrascpes.com",{"title":530,"searchDepth":531,"depth":531,"links":2046},[2047,2050,2051,2052,2060,2064],{"id":1384,"depth":531,"text":1384,"children":2048},[2049],{"id":1410,"depth":1199,"text":1410},{"id":1462,"depth":531,"text":1462},{"id":1477,"depth":531,"text":1477},{"id":1512,"depth":531,"text":1512,"children":2053},[2054,2055,2056,2057,2058,2059],{"id":1515,"depth":1199,"text":1515},{"id":1538,"depth":1199,"text":1539},{"id":1602,"depth":1199,"text":1603},{"id":1639,"depth":1199,"text":1639},{"id":1798,"depth":1199,"text":1798},{"id":1816,"depth":1199,"text":1817},{"id":1862,"depth":531,"text":1862,"children":2061},[2062,2063],{"id":1872,"depth":1199,"text":1873},{"id":1976,"depth":1199,"text":1976},{"id":2014,"depth":531,"text":2014},{"lang":1212,"seoTitle":2066,"titleClass":1214,"date":2067,"categories":2068,"blogtitlepic":2069,"socialimg":2070,"customExcerpt":2071,"keywords":2072,"scripts":2073,"asideNav":2074,"maxContent":325,"published":325},"ConsentFix：新しいOAuth攻撃がMicrosoft Entraの条件付きアクセスをすり抜ける仕組み","2025-12-31",[235],"head-consentfix","/blog/heads/head-consentfix.jpg","年の瀬を前にConsentFixが現れました。正規の認証フローを悪用して認可コードを盗み出し、事実上Microsoft Entraの鍵を攻撃者に渡してしまう巧妙なOAuthベースの攻撃です。条件付きアクセスがあってもなぜ通ってしまうのか、ログにどんな痕跡が残るのか、そして守る側が実害の出る前にどう検知し止められるのかを解きほぐします。","ConsentFix攻撃, OAuth認可コードの窃取, Microsoft Entra OAuth攻撃, Azure CLIのトークン悪用, Entra IDの条件付きアクセス回避, 認可コードのフィッシング, Azureのトークンリプレイ攻撃, Proof of Possessionトークン, WAM認証のセキュリティ, Azureサインインログの分析, EntraでのOAuth攻撃の検知, AzureのIDに対する脅威ハンティング, Global Secure Accessのトークン保護, Microsoft Entraのセキュリティ検知",{"slick":325,"form":325},{"menuItems":2075},[2076,2078,2080,2082,2084,2086],{"href":2077,"text":1384},"#検知に使えるアーティファクト",{"href":2079,"text":1462},"#ノイズを減らす",{"href":2081,"text":1477},"#影響を受けるファーストパーティアプリケーション",{"href":2083,"text":1512},"#緩和策と保護",{"href":2085,"text":1862},"#ハンティングクエリ",{"href":2087,"text":2014},"#さらに読む","/posts/2025-12-31-vulnerability-consentfix",{"title":1289,"description":1295},"posts/2025-12-31-vulnerability-consentfix",[2092,2093,281],"OAuth 2.0","Microsoft Entra ID","PNbueD9hk4t4KmFdYJ8BNvZ152w8svOjQBWemi2StAk",[],{"id":2097,"extension":2098,"meta":2099,"stem":8,"__hash__":2115},"authors_data/authors.json","json",{"Christopher Brumm":2100,"Fabian Bader":2106,"Thomas Naunheim":2111},{"display_name":554,"avatar":2101,"permalink":2102,"twitter":2103,"linkedin":2104,"imageOffsetTop":2105},"people/people-christopher-brumm.jpg","/authors/christopher-brumm","cbrhh","christopherbrumm","66%",{"display_name":521,"avatar":2107,"permalink":2108,"linkedin":2109,"twitter":2110},"people/people-fabian-bader.jpg","/authors/fabian-bader","fabianbader","fabian_bader",{"display_name":555,"avatar":2112,"permalink":2113,"linkedin":2114,"imageOffsetTop":2105},"people/people-thomas-naunheim.jpg","/authors/thomas-naunheim","thomasnaunheim","1csawlkJxRljy93GTOnXEkwLqAv9Lcj-apxRvoodAOY",1791383965954]