1 पॉइंट द्वारा GN⁺ 2024-11-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें

macOS सैंडबॉक्स एस्केप का नया दौर: नज़रअंदाज़ किए गए attack surface और 10 से अधिक नई vulnerabilities की खोज

  • macOS सिस्टम में अधिकांश processes सीमित सैंडबॉक्स environment में चलते हैं। भले ही कोई attacker remote code execution (RCE) हासिल कर ले, उसकी क्षमता सीमित रहती है। अगला कदम सैंडबॉक्स को बायपास करके व्यापक file access permissions हासिल करना होता है।
  • सैंडबॉक्स एस्केप vulnerabilities खोजने के लिए मौजूदा समस्याओं की समीक्षा करने पर एक महत्वपूर्ण नज़रअंदाज़ किया गया attack surface और नई attack techniques मिलीं। इसके जरिए कई नई सैंडबॉक्स एस्केप vulnerabilities मिलीं: CVE-2023-27944, CVE-2023-32414, CVE-2023-32404, CVE-2023-41077, CVE-2023-42961, CVE-2024-27864, CVE-2023-42977 आदि।

macOS सैंडबॉक्स के बारे में

App Sandbox

  • Mac AppStore की requirement के अनुसार अधिकांश applications App Sandbox restrictions के साथ चलती हैं। सैंडबॉक्स applications के पास specific permissions होनी चाहिए, और सैंडबॉक्स में जाने के बाद वे containerized हो जाती हैं, जिससे file operations सीमित हो जाते हैं।
  • सैंडबॉक्स application द्वारा बनाई गई files डिफ़ॉल्ट रूप से isolated होती हैं, और सैंडबॉक्स app इस property को हटा नहीं सकता।
  • बिना सैंडबॉक्स वाली applications सभी user data और system resources तक असीमित access रखती हैं। इसके विपरीत, सैंडबॉक्स restrictions वाली applications को केवल सीमित access मिलता है।
  • fork किए गए child processes parent process की सैंडबॉक्स restrictions inherit करते हैं, लेकिन LaunchService.framework के जरिए शुरू किए गए processes ये restrictions inherit नहीं करते।

Service Sandbox

  • अधिकांश Apple daemon services Service Sandbox context में चलती हैं। इन्हें system locations में define किए गए sandbox profiles द्वारा सीमित किया जाता है।
  • Service Sandbox आमतौर पर containerized नहीं होता, और files डिफ़ॉल्ट रूप से isolated नहीं होतीं।

Attack Surface

मौजूदा सामान्य तरीके

LaunchService.framework के जरिए attack

  • system LaunchService framework के जरिए non-sandbox applications पर हमला करने का एक तरीका है। उदाहरण के लिए, CVE-2021-30864 system non-sandbox application Terminal.app के $HOME environment variable में हेरफेर कर सकता है।
  • नई non-sandbox application drop करके चलाना संभव है, लेकिन नई drop की गई application isolated होती है, इसलिए उसका execution रुक जाता है।

उपलब्ध Mach services पर attack

  • App Sandbox profile में listed उपलब्ध Mach services पर हमला करने का भी तरीका है। system की सभी Mach service जानकारी /System/Library/xpc/launchd.plist फ़ाइल में संग्रहीत होती है।

नए नज़रअंदाज़ किए गए तरीके

  • PID domain में मौजूद XPC services नज़रअंदाज़ की गई services हैं। ये request के आधार पर application द्वारा शुरू की जाती हैं और request करने वाली application के बंद होते ही बंद हो जाती हैं।
  • PID domain की XPC services को sandbox applications से call किया जा सकता है, और इनमें कोई अतिरिक्त permission check या sandbox check नहीं होता।

नई vulnerabilities और exploits

Beta-No-CVE-1

  • यह vulnerability केवल macOS Sonoma beta versions को प्रभावित करती है।
  • vulnerability XPC service /System/Library/PrivateFrameworks/StorageKit.framework/XPCServices/storagekitfsrunner.xpc में मौजूद है।
  • यह service बिना sandbox restrictions के चल सकती है और arbitrary system commands execute कर सकती है।

Beta-No-CVE-2

  • यह vulnerability भी केवल beta-only software को प्रभावित करती है।
  • vulnerability XPC service /System/Library/PrivateFrameworks/AudioAnalyticsInternal.framework/XPCServices/AudioAnalyticsHelperService.xpc में मौजूद है।
  • यह arbitrary paths को compress कर सकती है, और बनी हुई zip file isolated नहीं होती।

CVE-2023-27944

  • vulnerability XPC service /System/Library/PrivateFrameworks/TrialServer.framework/XPCServices/TrialArchivingService.xpc में मौजूद है।
  • यह service Service Sandbox में जाती है, लेकिन drop की गई files isolated नहीं होतीं।

CVE-2023-32414

  • vulnerability XPC service /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/XPCServices/ArchiveService.xpc में मौजूद है।
  • यह service Service Sandbox में जाती है, लेकिन drop की गई files isolated नहीं होतीं।

CVE-2023-32404

  • vulnerability XPC service /System/Library/PrivateFrameworks/WorkflowKit.framework/XPCServices/ShortcutsFileAccessHelper.xpc में मौजूद है।
  • यह service बिना sandbox restrictions के चल सकती है, और Full Disk Access के लिए special TCC permission रखती है।

CVE-2023-41077

  • vulnerability XPC service /System/Library/Frameworks/ImageCaptureCore.framework/XPCServices/mscamerad-xpc.xpc में मौजूद है।
  • यह service बिना sandbox restrictions के चल सकती है, और Photos तथा removable volumes तक सीधे access के लिए special TCC permission रखती है।

1 टिप्पणियां

 
GN⁺ 2024-11-09
Hacker News टिप्पणियाँ
  • XPC services को अलग-अलग patch करना अजीब है, और यह sandbox की अपनी design समस्या लगती है। यह सवाल उठता है कि इतने सारे XPC services sandboxed apps से accessible क्यों हैं

    • MacOS में blacklist के बजाय capability-based Darwin containers होने चाहिए
    • SBPL (sandbox profile language) दिलचस्प है। संबंधित जानकारी GitHub पर देखी जा सकती है
    • यह जानने की जिज्ञासा है कि क्या MacOS में SBPL को process करने वाला कोई Scheme interpreter है
    • लगता है कि sandbox-exec इसे process करता है
  • security framework नए मुद्दे पैदा करता है, और ऐसा नहीं लगता कि security वास्तव में ज्यादा मजबूत हुई है

    • यह Netherlands tax law की तरह patch पर patch है, और अब तो लगभग self-aware लगने लगा है
  • XPC से जुड़े flaws आगे भी मिलते रहने की संभावना है, और जब तक Apple service hardening approach को redesign नहीं करता, लगातार CVE आते रहने की उम्मीद है

  • sandbox से प्यार भी है और नफरत भी

    • sandbox एक शानदार second line of defense है, लेकिन बड़ी कंपनियाँ जब sandbox escape नहीं हो पाता तो RCE fixes से इनकार कर देती हैं और इसे primary defense की तरह इस्तेमाल करती हैं
  • MacOS को granular permissions के लिए design नहीं किया गया था, और इसे पुराने Mac OS तथा NeXTSTEP technologies के ऊपर बस जोड़कर नहीं बनाया जा सकता

    • security researcher नहीं बल्कि app developer के रूप में कई bypasses मिले, लेकिन Apple का security vulnerability reporting system इतना inefficient है कि आखिरकार छोड़ दिया
    • MacOS security theater का शिकार बन गया है, और यह users तथा developers दोनों को नुकसान पहुँचा रहा है
  • iOS में भी vulnerabilities मौजूद हैं, और लगभग 2 अरब active devices हैं

  • PID domain के XPC services sandbox restrictions को bypass करने का एक चतुर तरीका हैं, और Apple का patch एक temporary workaround जैसा लगता है

    • sandbox inheritance model को पूरी तरह redesign करने की जरूरत है
  • यह जिज्ञासा है कि sandbox escape होने पर क्या स्थिति बिना sandbox वाली अवस्था में लौटती है, या फिर उससे भी higher privilege state मिलती है