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

Meta के Messenger की certificate pinning तोड़ना (macOS)

  • Meta का macOS के लिए Messenger application, standalone desktop application Texts.com model के समान है।
  • Texts.com में Meta platform project का नेतृत्व करने वाले Batuhan İçöz का मानना है कि network requests को intercept करना पहला महत्वपूर्ण कदम है।
  • Meta ने security मजबूत करने के लिए certificate pinning लागू की है, और MITM(मैन-इन-द-मिडल) attack के ज़रिए server requests के analysis को रोकती है।

certificate pinning क्या है?

  • Proxy client सेट करते समय उसे "certificate authority" पर trust करने के लिए configure करना होता है।
  • certificate authority द्वारा जारी certificate का उपयोग करके requests की जानकारी को intercept और decrypt किया जा सकता है।
  • अगर service certificate pinning लागू करती है, तो वह केवल किसी विशेष certificate authority द्वारा जारी certificate ही स्वीकार करती है, जिससे user की certificate authority द्वारा जारी certificate का उपयोग नहीं किया जा सकता।

डिफ़ॉल्ट व्यवहार

  • certificate pinning को disable किए बिना सभी requests "internal error" के रूप में लौटती हैं, और proxy software "SSL handshake failure" दिखाता है।
  • क्योंकि request अपना lifecycle पूरा नहीं कर पाती, इसलिए request के बारे में जानकारी infer नहीं की जा सकती।

वांछित व्यवहार

  • MITM attack का उपयोग करके network debugging tool में requests, responses और headers को सफलतापूर्वक पढ़ा जा सकता है।

संभावित approach

  • पहले काम कर चुके तरीकों में से एक binary में URL string को ऐसे unsafe self-hosted endpoint से बदलना था जो TLS implement नहीं करता।
  • Frida जैसी dynamic instrumentation library का उपयोग किया जा सकता है, लेकिन Messenger खासकर hooking के दौरान crash होने की प्रवृत्ति रखता है।
  • Frida का उपयोग करना एक जटिल deployment process भी शामिल करता है।

approach

  • Messenger डाउनलोड करके उसे Applications folder में ले जाने के बाद, ARM binary को Hopper में import किया गया।
  • Hopper का उपयोग करके binary को disassemble, decompile, recompile, debug और visualize किया जा सकता है।
  • बदलाव को न्यूनतम रखने के लिए "SSL pinning validation failed" जैसी strings खोजी गईं।
  • "Using custom sandbox -> turn off SSL verification" string मिली, और संबंधित function ढूँढकर उसे modify किया गया।
  • IsUsingSandbox function को हमेशा true पर सेट करके certificate pinning को disable किया गया।

परिणाम

  • नई executable file export करने और signature हटाने के बाद, मूल Messenger binary को नई binary से replace किया गया।
  • Messenger को restart करने पर proxy tool में headers, response body और सभी request जानकारी दिखाई देने लगी।
  • binary के 97,477,728 bytes में से सिर्फ 4 bytes बदलकर request interception सफल हुआ।

deployment

  • binary को compile करने के बाद उसे Batuhan को भेजा गया।
  • Batuhan ने signing certificate लेकर उसे install किया और application पर sign किया।
  • signing पूरा होने के बाद वह अपने system पर binary का उपयोग करके अपनी requests देख सकता था।

GN⁺ की राय

  • यह लेख एक दिलचस्प उदाहरण देता है कि security researchers Meta के Messenger app में certificate pinning को कैसे bypass करते हैं।
  • certificate pinning, man-in-the-middle attacks को रोकने वाला एक महत्वपूर्ण security feature है, लेकिन researchers द्वारा इसे bypass करने के तरीके खोज निकालना security community को महत्वपूर्ण insights देता है।
  • यह तकनीक developers को अपने apps या services की security मज़बूत करने में मदद कर सकती है, और security vulnerabilities खोजने व उन्हें ठीक करने में योगदान दे सकती है।
  • हालांकि, ऐसे research का दुरुपयोग malicious उद्देश्यों के लिए भी हो सकता है, इसलिए findings साझा करते समय सावधानी बरतनी चाहिए।
  • समान functionality देने वाले अन्य tools में Wireshark या Burp Suite जैसे network analysis tools शामिल हैं, जिनका उपयोग network traffic को monitor और analyze करने के लिए व्यापक रूप से किया जाता है।

1 टिप्पणियां

 
GN⁺ 2024-03-06
Hacker News की राय
  • कानूनी पहलू को लेकर जिज्ञासा

    • इस तरह की कार्रवाई की वैधता को लेकर जिज्ञासा जताई गई।
    • तकनीकी रूप से यह DMCA का उल्लंघन होगा, ऐसा मान लिया था, लेकिन अब इस धारणा पर संदेह है कि शायद यह गलत भी हो सकती है।
    • कानूनी रूप से यह कैसे संभव है, इस पर सवाल उठाया गया।
  • decompile और recompile की कोशिश तथा समर्पण

    • इसी तरह का रास्ता अपनाने की कोशिश की, लेकिन decompile/edit/recompile चरण पर आकर छोड़ दिया।
    • इस स्तर के समर्पण पर हैरानी जताते हुए, इसमें लगाए गए समय के बारे में जिज्ञासा दिखाई गई।
    • कहा कि वे खुद समय-सीमा तय करते हैं और उसका पालन करते हैं।
  • पुरानी तकनीकी जानकारी का खो जाना

    • +Orc के दौर को याद किया गया।
    • अनचाहे branch को ढूंढकर हटाने जैसे उस समय के ज्ञान का अधिकांश हिस्सा अब भुला दिया गया है।
    • अब सीखने के लिए दूसरी तकनीकें कहीं अधिक हैं।
  • Meta के RE defenses पर अवलोकन

    • यह बताया गया कि Meta, खासकर Messenger, की reverse engineering (RE) defenses काफ़ी उदार हैं।
    • production build में IsUsingSandbox() को हटाना आसान होगा, ऐसा कहा गया।
    • यह भी कहा गया कि advanced obfuscation techniques के बिना भी ऐसी defenses आसान होंगी।
  • sandbox mode में certificate pinning

    • sandbox mode में भी certificate pinning लागू करने के तरीकों का ज़िक्र किया गया।
    • कॉलेज के दिनों में Snapchat traffic पर man-in-the-middle (MitM) हमला करने की कोशिश की थी, लेकिन असफल रहे—यह अनुभव साझा किया गया।
  • runtime binary checksum की उपयोगिता

    • सवाल उठाया गया कि क्या runtime binary checksum modifications को जटिल बनाने में मददगार होता।
    • यह भी पूछा गया कि क्या mobile apps में यह सामान्य प्रक्रिया नहीं है, और क्या iOS या Android SDK ऐसी सुविधा देते हैं।
    • चूंकि अंतिम समाधान सिर्फ binary के कुछ bytes बदलना था, इसलिए लगा कि इसे रोका जा सकता था।
  • proxy tool के उपयोग पर सवाल

    • लिखे गए लेख में इस्तेमाल किए गए proxy tool के बारे में पूछा गया।
    • यह जिज्ञासा भी जताई गई कि क्या वह tool चलते समय सभी applications के traffic को route करता है।
  • बड़ी कंपनियों के applications की security

    • सवाल उठाया गया कि बड़ी कंपनियों के applications पूरी तरह obfuscate क्यों नहीं होते, और उनमें modified binaries के execution को अस्वीकार करने वाली दूसरी protections क्यों नहीं होतीं।
  • Meta app traffic intercept करने की संभावना

    • यह दावा किया गया कि Meta apps के traffic को intercept करना ज़रूरी नहीं है।
    • Meta के bug bounty training page का लिंक साझा किया गया।
  • traffic monitoring का महत्व

    • इस बात पर ज़ोर दिया गया कि Facebook app माइक्रोफ़ोन के ज़रिए यूज़र की जासूसी करके targeted ads दिखाता है—इस तरह की conspiracy theory को खारिज करने में यह महत्वपूर्ण है।
    • app और Facebook server के बीच के traffic को monitor करके इसका खंडन करना सबसे आसान तरीकों में से एक है, लेकिन certificate pinning इसमें बाधा डालता है।
    • conspiracy theory मानने वालों को समझाना कठिन है, फिर भी यह जानना महत्वपूर्ण है कि इस तरह की monitoring संभव है।