6 पॉइंट द्वारा GN⁺ 2026-01-29 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • WhatsApp, जिसके 3 अरब से अधिक उपयोगकर्ता हैं, ने मैलवेयर खतरों के खिलाफ अपनी सुरक्षा मजबूत करने के लिए Rust-आधारित सुरक्षा परत पेश की है
  • मीडिया consistency लाइब्रेरी को Rust में दोबारा लिखा गया और इसे अरबों डिवाइसों व ब्राउज़रों पर तैनात कर वैश्विक स्तर पर वास्तविक उपयोग में सत्यापित किया गया
  • मौजूदा C++ की 1.6 लाख लाइनों को Rust की 90 हजार लाइनों से बदलते हुए performance और memory efficiency दोनों में सुधार हुआ
  • 2015 की Stagefright vulnerability के बाद, मीडिया फ़ाइल प्रोसेसिंग की सुरक्षा बढ़ाने के लिए Rust जैसी memory-safe language अपनाने की दिशा में काम चल रहा था
  • यह बदलाव WhatsApp·Messenger·Instagram की समग्र सुरक्षा रणनीति में memory-safe languages की भूमिका बढ़ाने वाला एक turning point है

WhatsApp की मीडिया प्रोसेसिंग रणनीति

  • WhatsApp, 3 अरब से अधिक लोगों द्वारा उपयोग की जाने वाली end-to-end encrypted messaging service है, और लगातार सुरक्षा खतरों से निपटने के लिए अपनी रणनीति विकसित करता रहा है
    • जब उपयोगकर्ता image, video जैसी media फ़ाइलें साझा करते हैं, तो उनमें malware शामिल होने की संभावना रहती है
    • कुछ फ़ाइलें operating system या app की unpatched vulnerabilities का दुरुपयोग कर सकती हैं
  • इसे रोकने के लिए media sharing फीचर में Rust language को अपनाया गया, जिससे memory safety सुनिश्चित की गई
    • इसे वैश्विक स्तर पर Rust-आधारित लाइब्रेरी deployment के सबसे बड़े उदाहरणों में से एक बताया गया है

2015 Android Stagefright vulnerability और प्रतिक्रिया

  • 2015 की Android Stagefright vulnerability OS-स्तर की media processing लाइब्रेरी में मौजूद थी, इसलिए इसे app स्तर पर ठीक करना संभव नहीं था
  • WhatsApp ने अपनी C++ लाइब्रेरी wamedia को संशोधित कर MP4 standard का पालन न करने वाली फ़ाइलों का पता लगाने में सक्षम बनाया
    • इससे OS update के बिना भी उपयोगकर्ताओं की सुरक्षा संभव हुई
  • लेकिन चूंकि wamedia अविश्वसनीय input को स्वतः प्रोसेस करता है, इसलिए memory-safe language में स्थानांतरण की आवश्यकता सामने आई

Rust की ओर बदलाव: बड़े पैमाने पर पुनर्लेखन और परिणाम

  • WhatsApp ने मौजूदा C++ version के साथ-साथ wamedia का Rust version विकसित किया
    • differential fuzzing, integration tests और unit tests के माध्यम से दोनों implementations के बीच compatibility सत्यापित की गई
  • शुरुआती चरण में Rust standard library के कारण binary size में वृद्धि और build system compatibility की समस्याएं थीं, लेकिन लंबे समय के लिए support framework तैयार किया गया
  • नतीजतन C++ 1.6 लाख लाइनें → Rust 90 हजार लाइनें का बदलाव हुआ, और performance व memory उपयोग efficiency दोनों बेहतर हुए
  • Android, iOS, Mac, Web, wearable सहित सभी प्लेटफ़ॉर्म पर Rust version की पूर्ण तैनाती पूरी हो चुकी है
  • इसके बाद Kaleidoscope system पेश किया गया, जो PDF, executable files जैसी जोखिमपूर्ण फ़ाइल प्रकारों का पता लगाता है और extension forgery या MIME spoofing की पहचान करता है

WhatsApp का सुरक्षा दृष्टिकोण

  • WhatsApp end-to-end encryption, encrypted backups, key transparency, call protection features जैसी कई सुरक्षा परतें संचालित करता है
  • CVE disclosure, आंतरिक और बाहरी security audits, fuzzing और static analysis, supply chain management, attack surface analysis के जरिए जोखिमों की पहचान की जाती है
  • Bug Bounty program का विस्तार कर शोधकर्ताओं को WhatsApp network protocol का विश्लेषण करने के लिए Research Proxy उपलब्ध कराया गया
  • यह पुष्टि हुई कि कई प्रमुख vulnerabilities की जड़ C/C++ memory safety issues में है, और इसके लिए तीन रणनीतियां साथ-साथ चलाई जा रही हैं
    1. अनावश्यक attack surface को न्यूनतम करना
    2. बचे हुए C/C++ code की security assurance को मजबूत करना
    3. नए code की default language को memory-safe language में बदलना

Rust अपनाने में तेजी और आगे की दिशा

  • Rust ने WhatsApp के लिए high-performance, cross-platform security libraries बनाना संभव किया
  • यह बदलाव उपयोगकर्ता को दिखाई न देने वाली एक अतिरिक्त सुरक्षा परत प्रदान करता है और defense-in-depth रणनीति का हिस्सा है
  • WhatsApp और Meta की security teams Rust के उच्च-प्रभाव वाले उपयोग क्षेत्रों का विस्तार कर रही हैं और भविष्य में Rust adoption को तेज़ करने की योजना है

1 टिप्पणियां

 
GN⁺ 2026-01-29
Hacker News की राय
  • WhatsApp एक ऐसा messenger है जिसे हर दिन 3 अरब लोग इस्तेमाल करते हैं
    अमेरिका में इसका इस्तेमाल उतना नहीं होता, लेकिन दुनिया भर में यह बुनियादी communication infrastructure बन चुका है
    अगर आप global market के लिए product बनाना चाहते हैं, तो आपको इन users की सोच और आदतों को समझना होगा

    • एक यूरोपीय होने के नाते मैं अब भी WhatsApp इंस्टॉल करने से इनकार करता हूँ
      ऐसे स्वतंत्र लोग अभी भी दर्जनों में मौजूद हैं
      कृपया WhatsApp को और अपरिहार्य बनाने वाले काम में भाग न लें
    • जहाँ मैं रहता हूँ, मलावी में WhatsApp, email से कहीं ज़्यादा इस्तेमाल होता है
      ज़्यादातर लोग email लगभग देखते ही नहीं
      मैं एक developer community चलाता हूँ, और group member limit (1024 लोग) से अक्सर टकरा जाता हूँ
      Discord या Slack पर ले जाने की कोशिश करो, तब भी आखिर में लोग फिर WhatsApp पर लौट आते हैं
      क्योंकि carrier data bundles की वजह से WhatsApp लगभग मुफ्त पड़ता है
    • जिन markets में WhatsApp जम चुका है, वहाँ पहले से ही ads और spam बढ़ रहे हैं और quality गिर रही है
      business message spam पर TechCrunch में कई बार लेख छपे, लेकिन असल में लगभग कुछ नहीं बदला
      community feature का UX भी खास नहीं है
      आखिरकार समस्या यह है कि Facebook ecosystem पर निर्भरता और गहरी हो रही है
    • सच कहूँ तो 3 अरब का आँकड़ा बढ़ा-चढ़ाकर बताया गया लगता है
      मैं 10 साल से WhatsApp इस्तेमाल नहीं करता, और मेरे दोस्त व परिवार के ज़्यादातर लोग भी Signal पर चले गए हैं
      यूरोप में अब भी ऐसे इलाके हैं जहाँ Viber इस्तेमाल होता है
    • उत्तर अमेरिका या यूरोप के users में वास्तव में revenue generate करने वाले लोग शायद करीब 20 करोड़ होंगे
  • कहा गया कि यह Rust में लिखी library की सबसे बड़े पैमाने की deployment है, लेकिन असल में Fontations इससे भी बड़ा हो सकता है
    यह Chromium में शामिल है, और उसकी dependencies तक देखें तो इसका install base और भी बड़ा हो सकता है
    quote को देखें तो लगता है WhatsApp ने libsignal का सीधे इस्तेमाल नहीं किया

    • संदर्भ के लिए, Wamedia Meta के मुख्य apps में शामिल है और iOS, Android, Desktop, Web तक फैला हुआ deploy होता है
    • Chromium में पहले से कई Rust libraries शामिल हैं
      उदाहरण: image-png, CrabbyAvif, qr_code, icu4x
  • कोड 1.6 लाख lines से घटकर 90 हज़ार lines हो जाना अच्छा है, लेकिन parallel rollout strategy उससे भी ज़्यादा दिलचस्प है
    Rust और C++ versions को साथ चलाकर differential fuzzing से equivalence verify करना व्यावहारिक लगा
    mobile clients में binary size अहम होती है, इसलिए build tooling में निवेश करना प्रभावशाली है

    • जिज्ञासा है कि क्या उन्होंने no_std इस्तेमाल किया या standard library को फिर से संयोजित किया
      यह शायद ऐसी optimization हो सकती है जो सिर्फ nightly builds में संभव हो
  • ऐसे rewrite में सबसे मुश्किल हिस्सा Rust implementation से ज़्यादा मौजूदा parser की bug compatibility बनाए रखना होता है
    असली media files अक्सर format के हिसाब से गलत होती हैं, इसलिए बहुत सख्ती से parse करने पर user data टूट सकता है
    differential fuzzing लगभग एकमात्र व्यावहारिक तरीका है

    • Wamedia का design ऐसा लगता है कि उसने जानबूझकर bug compatibility बनाए रखने को लक्ष्य नहीं बनाया
    • यह कुछ हद तक AI द्वारा लिखा गया comment भी लग रहा है
  • यह कहना कि WhatsApp ने Rust की सबसे बड़ी deployment की है, शायद इसलिए है क्योंकि यह Windows 11 से भी ज़्यादा devices पर चलता है
    हालाँकि यह अब भी सवाल है कि क्या WhatsApp सीधे libsignal इस्तेमाल करता है

    • WhatsApp, libsignal इस्तेमाल नहीं करता
      Android खुद पहले से Rust-based code का काफ़ी हिस्सा शामिल करता है, और embedded devices में भी इसका व्यापक उपयोग होता है
    • Microsoft is Getting Rusty वीडियो देखें तो पता चलता है कि Rust adoption मुख्यतः Azure side पर आगे बढ़ रहा है,
      जबकि Windows अब भी C/C++ केंद्रित है
  • कहा गया कि Rust standard library लाने से binary size बढ़ी, लेकिन यह साफ़ नहीं बताया गया कि इसे कैसे सुलझाया गया

    • शायद जहाँ संभव हुआ वहाँ no_std इस्तेमाल किया गया होगा
      संबंधित commits: commit1, commit2
    • लगभग 300KB का overhead शायद स्वीकार किया गया होगा
      समस्या size से ज़्यादा duplicate Rust dependencies की है
      C++ और Rust mixed builds में दोनों अपनी-अपनी libstd शामिल करते हैं, इसलिए Bazel जैसे integrated build system की ज़रूरत होती है
    • वास्तव में build system optimization में काफी निवेश किया गया
      शुरू में करीब 200KiB overhead स्वीकार किया गया, लेकिन Buck2 migration से size और build time दोनों कम किए गए
      इसका श्रेय नई clang optimizations और LTO improvements को जाता है
    • संदर्भ के लिए min-sized-rust जैसा approach भी है
    • कुल मिलाकर यह लेख तकनीकी details से ज़्यादा PR प्रकृति का लगा
  • जिज्ञासा है कि क्या Signal भी ऐसा ही कुछ कर रहा है
    libsignal Rust में implement किया गया है, लेकिन बाकी हिस्सों के बारे में ज़्यादा पता नहीं

  • एक पंक्ति थी कि “3 अरब लोगों को default रूप से end-to-end encryption दिया जाता है”, लेकिन ऐसी खबरें भी आई हैं कि संदेश पढ़े जा सकते थे

    • शायद “default” शब्द ही यहाँ मुख्य है
      Skype भी default रूप से encrypted था, लेकिन server settings के हिसाब से इसे बंद किया जा सकता था
    • हर encryption आखिरकार इस बात पर निर्भर करती है कि अंतिम endpoint कौन है
      असली सवाल यह है कि क्या आप Meta पर भरोसा कर सकते हैं कि वह data में झाँक नहीं रहा
  • यह विडंबना है कि Meta phishing और prepaid card scams को नहीं रोकता, लेकिन दूसरी चीज़ों में बहुत सक्रिय है

  • Rust अपनाने से bugs काफ़ी कम हुए, यह बात प्रभावशाली है

    • Rust की stability सिर्फ memory errors को रोकने की वजह से नहीं है
      C++ में बहुत सारे undefined behaviors (UB) मौजूद हैं, जबकि Rust उन्हें संरचनात्मक रूप से रोकता है
      मजबूत type system की वजह से reliability में काफ़ी सुधार होता है