xz ओपन सोर्स हमले की पूरी टाइमलाइन
(research.swtch.com)- 2 साल से अधिक समय तक "Jia Tan" नाम का उपयोग करने वाला एक हमलावर xz compression library में एक मेहनती और प्रभावी contributor के रूप में सक्रिय रहा, और अंततः उसे commit access और maintainer अधिकार दे दिए गए।
- उसने इन अधिकारों का उपयोग करके liblzma में, जो xz का हिस्सा है और Debian, Ubuntu, Fedora तथा अन्य systemd-आधारित Linux सिस्टम में OpenSSH
sshdकी dependency भी है, एक बहुत ही सूक्ष्म और सावधानी से छिपाया गया backdoor स्थापित किया। - यह backdoor SSH session शुरू होने पर हमलावर द्वारा भेजे गए छिपे हुए command पर नज़र रखता था, जिससे हमलावर बिना login किए target system पर मनचाहा command चला सकता था। यह unauthenticated target remote code execution था।
- इस हमले का 29 मार्च 2024 को सार्वजनिक खुलासा हुआ, और यह व्यापक रूप से उपयोग किए जाने वाले open source software पर पहला गंभीर supply-chain attack प्रतीत होता है।
- open source supply-chain security के लिए यह एक watershed moment है।
- यह पोस्ट इस हमले के social engineering पहलुओं की एक विस्तृत timeline है, जिसकी शुरुआत संभवतः 2021 के अंत तक जाती है।
प्रस्तावना
- 2005-2008 में, Lasse Collin ने अन्य लोगों की मदद से
.xzfile format डिज़ाइन किया, जिसमें LZMA compression algorithm का उपयोग होता है और यह फ़ाइलों कोgzipकी तुलना में लगभग 70% आकार तक compress करता है। - समय के साथ यह format
tarfiles, Linux kernel images आदि को compress करने के लिए व्यापक रूप से इस्तेमाल होने लगा।
Jia Tan का उभरना और समर्थक
- 2021-10-29: Jia Tan ने
xz-develmailing list पर अपना पहला हानिरहित patch भेजा। - 2021-11-29: Jia Tan ने दूसरा हानिरहित patch भेजा।
- 2022-04-19: Jia Tan ने एक और हानिरहित patch भेजा।
- 2022-04-22: "Jigar Kumar" ने शिकायत की कि Jia Tan का patch अभी तक merge नहीं हुआ है।
- 2022-05-19: "Dennis Ens" ने XZ for Java की maintenance स्थिति के बारे में पूछा।
- 2022-05-19: Lasse Collin ने धीमे जवाब के लिए माफ़ी मांगी और उत्तर दिया कि "Jia Tan off-list XZ Utils में मदद कर रहा है, और कम से कम XZ Utils में बड़ी भूमिका ले सकता है।"
- 2022-05-27: Jigar Kumar ने patch thread पर दबाव बनाने वाला email भेजा।
- 2022-06-07: Jigar Kumar ने Java thread पर दबाव बनाने वाला email भेजा।
- 2022-06-08: Lasse Collin ने जवाब दिया कि उनकी रुचि खत्म नहीं हुई है, लेकिन mental health समस्याओं के कारण वे सीमित हैं।
- 2022-06-10: Lasse Collin ने Jia Tan द्वारा लिखा गया पहला commit merge किया।
- 2022-06-14: Jugar Kumar ने एक और दबाव वाला email भेजा।
- 2022-06-21: Dennis Ens ने maintenance किसी और को सौंपने का सुझाव देने वाला दबावपूर्ण email भेजा।
- 2022-06-22: Jigar Kumar ने C patch thread पर दबाव वाला email भेजा।
- 2022-06-29: Lasse Collin ने उत्तर में संकेत दिया कि "Jia Tan project में बड़ी भूमिका ले सकता है।"
Jia Tan maintainer बनता है
- ऐसा लगता है कि Lasse ने Jia Tan के साथ अधिक नज़दीकी से काम करना शुरू किया। Jigar Kumar और Dennis Ens संभवतः नकली व्यक्ति थे।
- 2022-09-27: Jia Tan ने 5.4.0 release summary दी।
- 2022-11-30: Lasse Collin ने bug report email को अपने निजी पते से बदलकर Jia Tan के साथ साझा alias पर कर दिया।
- 2022-12-30: Jia Tan ने
xzrepository में सीधे अपना पहला commit merge किया। - 2023-01-11: Lasse Collin ने अपनी आख़िरी release
v5.4.1को tag और build किया। - 2023-03-18: Jia Tan ने अपनी पहली release
v5.4.2को tag और build किया। - 2023-03-20: Jia Tan ने Google
oss-fuzzconfiguration अपडेट किया ताकि bug reports उसे भेजी जाएँ। - 2023-06-22: Hans Jansen ने "GNU indirect function" feature का उपयोग करने वाले patch की एक जोड़ी भेजी, जिसे Lasse Collin ने rework किया और Jia Tan ने merge किया।
- 2023-07-07: Jia Tan ने
oss-fuzzbuild के दौरानifuncsupport को disable कर दिया। - 2024-01-19: Jia Tan ने web site को GitHub Pages पर migrate किया और XZ Utils web page पर नियंत्रण हासिल कर लिया।
हमला शुरू
- 2024-02-23: Jia Tan ने test input files के भीतर छिपा backdoor binary code merge किया।
- 2024-02-24: Jia Tan ने
v5.6.0tag किया और maliciousbuild-to-host.m4शामिल करने वालाxz-5.6.0.tar.gzdistribution प्रकाशित किया। - 2024-02-24: Gentoo में 5.6.0 पर crash होना शुरू हुआ।
- 2024-02-26: Debian ने
xz-utils 5.6.0-0.1कोunstableमें जोड़ा। - 2024-02-28: Debian ने
xz-utils 5.6.0-0.2कोunstableमें जोड़ा। - 2024-02-29: GitHub पर
@teknoraverनेliblzmaकोlibsystemdसे link न करने के लिए pull request भेजा। - 2024-02-28: Jia Tan ने Landlock support की जाँच के लिए उपयोग होने वाले C program में एक सूक्ष्म typo जोड़ा, जिससे
configurescript की Landlock detection टूट गई। - 2024-03-04: RedHat distributions में
liblzmaके_get_cpuidमें Valgrind errors आने लगे। - 2024-03-05:
libsystemdPR merge हो गया औरliblzmaहटा दिया गया। - 2024-03-05: Debian ने
xz-utils 5.6.0-0.2कोtestingमें जोड़ा। - 2024-03-05: Jia Tan ने
ifuncbug fix commit किया। - 2024-03-08: Jia Tan ने Valgrind fix के लिए commit किया।
- 2024-03-09: Jia Tan ने backdoor files अपडेट करने वाला commit किया।
- 2024-03-09: Jia Tan ने
v5.6.1tag किया औरxz 5.6.1distribution प्रकाशित किया। - 2024-03-20: Lasse Collin ने kernel के
xzcompression code के maintainer के रूप में अपने और Jia Tan के नाम जोड़ने वाला patch set LKML पर भेजा। - 2024-03-25: Hans Jansen ने
xz-utilsको 5.6.1 पर अपडेट करने के लिए Debian bug file किया। - 2024-03-28: Jia Tan ने Ubuntu bug file किया ताकि Debian से
xz-utilsको 5.6.1 पर अपडेट किया जाए।
हमले का पता लगना
- 2024-03-28: Andres Freund ने bug खोजा और Debian तथा
distros@openwallको निजी रूप से सूचित किया। RedHat नेCVE-2024-3094assign किया। - 2024-03-28: Debian ने 5.6.1 rollback किया और
5.6.1+really5.4.5-1पेश किया। - 2024-03-29: Andres Freund ने सार्वजनिक
oss-security@openwalllist पर backdoor alert पोस्ट किया और कहा कि उन्होंने इसे "पिछले कुछ हफ्तों में" खोजा था। - 2024-03-29: RedHat ने घोषणा की कि backdoor वाला
xzFedora Rawhide और Fedora Linux 40 beta में वितरित किया गया था। - 2024-03-30: Debian ने builds रोक दिए और Debian stable का उपयोग करके build machines को फिर से बनाया।
GN⁺ की राय
- यह घटना open source software पर supply-chain attack के संदर्भ में एक महत्वपूर्ण turning point होगी। वजह यह है कि लंबे समय तक चले social engineering approach के ज़रिए साज़िशकर्ताओं ने भरोसा जीता, access अधिकार हासिल किए, और फिर व्यापक रूप से इस्तेमाल होने वाली core library में चुपचाप backdoor स्थापित कर दिया।
- open source projects की governance और अधिकार-हस्तांतरण प्रक्रिया पर फिर से विचार करने की ज़रूरत है। यह देखने लायक है कि distributed governance model अपनाया जाए ताकि project किसी एक core maintainer की व्यक्तिगत परिस्थितियों पर निर्भर न रहे।
- बड़े open source projects के लिए security audit और code review और भी अधिक महत्वपूर्ण होंगे। संदिग्ध changes पकड़ने और अधिकारों के दुरुपयोग को रोकने के लिए automated checking tools की भी ज़रूरत है। उदाहरण के लिए, binary data जोड़ने पर alert जैसी व्यवस्था।
- open source model के फायदों को नुकसान पहुँचाए बिना—जहाँ development सार्वजनिक रूप से होता है और कोई भी योगदान दे सकता है—ऐसे तकनीकी और संस्थागत उपाय होने चाहिए जो malicious contributors की पहचान कर सकें और हमलों को शुरुआती चरण में रोक सकें।
- जिन open source projects में security-weak languages या tools का उपयोग होता है, उनमें जोखिम अधिक होगा। memory safety, static analysis, fuzzing जैसी बहुआयामी सुरक्षा कोशिशों के साथ आधुनिक tools की ओर migration भी ज़रूरी होगा।
- backdoor के छिपे activation conditions, distribution path, और impact scope जैसी बातों पर विस्तृत analysis results में रुचि केंद्रित होगी। इससे भविष्य में ऐसे ही हमलों से बचाव के लिए महत्वपूर्ण insights मिल सकते हैं।
7 टिप्पणियां
इस घटना के बाद जो बात चिंता में डालती है..
ओपन सोर्स डेवलपर के PC को हैक करना, या उसका अपहरण/नज़रबंदी करने के बाद, या पैसे देकर खरीदकर उसमें malicious code डलवाना वगैरह..
पैसों की बात सोचकर यह भी खयाल आता है कि क्या ओपन सोर्स डेवलपर ठीक-ठाक जिंदगी जी रहे हैं?
मैं security side में काम करता हूँ, तो code review करते वक्त अगर कोई bug मिल जाए, तो ऐसा मज़ाक निकलता है—क्या तुम यह code घुसाने के लिए 5 साल पहले यहाँ join हुए थे? lol
Lesser Collin के लिए यह कई मायनों में काफ़ी मुश्किल रहा होगा...
हाँ, archlinux ने तो बहुत पहले ही patch कर दिया था~ आओ आओ, हाँ backdoor out, latest arch सबसे बढ़िया~
pacman -SyuLasse Collin ने इस घटना को समेटते हुए एक लेख पोस्ट किया है
https://tukaani.org/xz-backdoor/
Hacker News की राय
घटना का शानदार सारांश और सभी लिंक एक ही जगह पर हैं, इसलिए जो लोग यह सीखना चाहते हैं कि social engineering हमला वास्तव में कैसे सामने आता है, उनके लिए यह एकदम उपयुक्त सामग्री है.
यह बताया गया कि Fedora timeline छूट गई है.
यह राय रखी गई कि सिस्टम के भीतर समझना मुश्किल code को अब और बर्दाश्त नहीं किया जाना चाहिए.
इसे उन सकारात्मक परिणामों में से एक माना गया जो upgrades के प्रति अधिक सतर्क रवैये को बढ़ा सकते हैं.
सुझाव दिया गया कि FOSS community में अशिष्ट users पर व्यवस्थित रूप से प्रतिबंध लगाया जा सकता है, या community awareness बढ़ाकर अशिष्ट व्यवहार के प्रति अधिक कड़ी प्रतिक्रिया देने वाला सांस्कृतिक बदलाव लाया जा सकता है.
यह इंगित किया गया कि email address format को लेकर की गई टिप्पणी ग़लत थी.
इस बात पर चिंता जताई गई कि social pressure कितनी आसानी से लोगों से अपना नियंत्रण छुड़वा देता है.
एक maintainer के रूप में यह ज़ोर देकर कहा गया कि contributor या user जितना ज़्यादा लगातार दबाव डालेगा, उसकी मांग मानने की संभावना उतनी ही कम हो जाएगी.
Joe Cooper की राय का हवाला देते हुए, project maintainers पर डाले जाने वाले दबाव को लेकर उनका दृष्टिकोण साझा किया गया.
यह समझाया गया कि छिपा हुआ backdoor binary code, binary test input files के भीतर बहुत चतुराई से छिपाया गया था, और चूँकि ये files ज़्यादातर hex editor से हाथ से बनाई गई थीं, इसलिए file खुद ही सबसे अच्छा "source code" है.