XZ बैकडोर: “यह auth bypass नहीं बल्कि RCE है, इसमें gate है और इसे replay नहीं किया जा सकता”
(bsky.app)- xz बैकडोर के reverse engineering के प्रारंभिक विश्लेषण के अनुसार, यह व्यवहार साधारण auth bypass नहीं बल्कि remote code execution (RCE) के अधिक करीब है
- हुक किया गया
RSA_public_decryptसर्वर host key के signature को एक स्थिरEd448key से verify करता है; यही flow का मुख्य बिंदु है - signature verification पास होने पर payload को
system()में भेजा जा सकता है और execute किया जा सकता है - यह विश्लेषण अनुमति लेकर साझा किए गए प्रारंभिक निष्कर्षों पर आधारित है, और Bluesky पोस्ट में quoted post या embedded content शामिल है
- बैकडोर को gated और unreplayable रूप में संक्षेपित किया गया है, इसलिए इसे उसी input के साधारण पुन: उपयोग वाले हमले की तरह नहीं देखना चाहिए
xz बैकडोर का execution flow
- अनुमति लेकर साझा किया गया reverse engineering का प्रारंभिक विश्लेषण हुक किए गए
RSA_public_decryptपर केंद्रित है- यह सर्वर की host key के signature को एक स्थिर
Ed448key से verify करता है - verification के बाद payload को
system()में पास करता है
- यह सर्वर की host key के signature को एक स्थिर
वर्गीकरण और सीमाएँ
- इस व्यवहार को auth bypass नहीं बल्कि remote code execution (RCE) के रूप में वर्गीकृत किया जाता है
- बैकडोर को gated/unreplayable विशेषताओं वाला बताया गया है
- मूल Bluesky पोस्ट में quoted post या अन्य embedded content शामिल है
1 टिप्पणियां
Hacker News की राय
इस मामले पर अतिरिक्त reverse engineering के नतीजे आए हैं। इसमें उस prefix trie से निकाली गई symbol remapping जानकारी शामिल है जिसका इस्तेमाल backdoor strings छिपाने के लिए करता था, और लगता है कि reverse engineering/analysis से खुद को भी छिपाने की कोशिश की गई थी
https://gist.github.com/smx-smx/a6112d54777845d389bd7126d6e9...
decode की गई strings की पूरी सूची यहाँ है
https://gist.github.com/q3k/af3d93b6a1f399de28fe194add452d01
OpenSSL internals को अच्छी तरह न जानने वाले के नज़रिये से देखें तो, N वैल्यू शायद
rsa_stकेnfield से ली जाती हैhttps://github.com/openssl/openssl/blob/56e63f570bd5a479439b...
यह वैल्यू
BIGNUMहै, और यह एक variable-length type लगती हैhttps://github.com/openssl/openssl/blob/56e63f570bd5a479439b...
backdoor remote attacker से मिले certificate से यह वैल्यू निकालता है, उसे ChaCha20 से decrypt करने की कोशिश करता है, और सफल होने पर
system()को दे देता है।system()लगभग एक simple wrapper है जो मौजूदा process जिस user privileges के साथ चल रहा है, उन्हीं के साथ shell script की एक लाइन चलाता हैअगर मैंने इसे सही समझा है, तो यह public key bypass से भी बदतर है। public key bypass होने पर सैद्धांतिक रूप से सिर्फ उसी user के privileges मिलते जिसके रूप में login करने की कोशिश हो रही है, और hardened SSH settings में root login रोका गया हो सकता था
लेकिन यह
sshdprocess के अपने ही context में remote code execution है, इसलिए अगरsshdroot के रूप में चल रहा हो, तो payload भी root के रूप में चल सकता है। व्यापक रूप से फैल सकने वाले remote code execution के हिसाब से यह व्यावहारिक रूप से लगभग सबसे खराब स्थिति हैअगर यह backdoor performance issue की वजह से न पकड़ा जाता, तो बाद में इसके पकड़े जाने की कितनी संभावना थी, यह जानने की जिज्ञासा है। मेरी समझ में performance problem code की गलती/ऐसी defect थी जिसे ठीक किया जा सकता था, इसलिए यह भी अहम है कि क्या ऐसे tools थे जो इसे पकड़ सकते थे
ऐसे सवाल इस बात को समझने से जुड़े हैं कि क्या इस तरह का backdoor पहली बार था, या बस पहली बार सामने आया है
एक छोटी सी गलती से सब कुछ बिखर सकता है, और कभी-कभी एक ही वाक्य से chain reaction शुरू होकर बारीकी से बनाई गई योजना उजागर हो जाती है
आपराधिक जाँचें रोज़ ऐसे ही होती हैं। पुलिस के पास resource constraints होते हैं, लेकिन software को रोज़ hobby के तौर पर analyze करने वाले लोग, hobby की तरह लगातार analyze करने वाले experts, और पेशेवर तौर पर analyze करने वाले experts देखते रहते हैं
आख़िरकार, इसके कभी न कभी पकड़े जाने की संभावना काफ़ी थी
XZ attack बहुत अच्छी तरह अंजाम दिया गया था, लगभग एक masterpiece जैसा। अगर इसमें किसी state agency की भूमिका रही हो तो मुझे हैरानी नहीं होगी। लेकिन साथ ही यह बेहद lucky भी था। अभी जो चीज़ें problem के रूप में दिख रही हैं, उनमें से कोई एक भी मिल जाती, तो मैं ही नहीं मेरे कई सहकर्मी भी लंबी investigation में लग जाते
इससे निकलने वाला एक निष्कर्ष यह है कि अगर xz/liblzma open source न होता, तो ऐसी समस्या ढूँढना असंभव होता। बेशक open source होने की वजह से यह शुरुआत में संभव भी हुआ, लेकिन ज़रा सोचिए कि अगर यही चीज़ Windows या MacOS के अंदर होती तो क्या होता
लेकिन इस्तेमाल न करने पर इसका उद्देश्य पूरा नहीं होता। जितना ज़्यादा इस्तेमाल होगा, उतनी ही बाद में detect होने की संभावना बढ़ेगी। इसकी तुलना SolarWinds से की जा सकती है
निजी तौर पर मुझे
system()call कुछ ढीला लगा, और संभव है कि binary feature scanner उस path को संभावित रूप से पकड़ सकता थाsshdpatching linking stage पर होती है, जो एक स्वीकार्य चरण है, और अगर यह analysis सही है तो यह master key backdoor भी नहीं है, इसलिए सामान्य login audit traces नहीं मिलते। औरsshdका दूसरे processes शुरू करना अपने-आप में स्वाभाविक रूप से अनुमत हो सकता हैबहुत सख़्त SELinux policy हो तो शायद यह पकड़ा जा सके कि
sshdshell के अलावा कुछ और चला रहा है, लेकिन उस स्तर की hardening बहुत दुर्लभ होगीtarget के बाहर से खोजने वाली समस्या का भी जैसे परीक्षण हो चुका है। कई लोगों ने
valgrindवगैरह से payload को देखा, लेकिन कुछ नहीं दिखा। इसे debugging environments में न पकड़ा जाए, इसके लिए भी काफ़ी अच्छी सुरक्षा की गई लगती है। क्योंकि payload के नीचे की उजागर infrastructure, ASan जैसे tools के साथ compatible नहीं हैभले ही यह link हो जाए, code
main()से बहुत पहले execute हो जाता है, इसलिए debugger सेliblzmaके आसपास देखने पर भी आम तौर पर execution का वह क्षण दिखाई नहीं देगाstraceके साथ process बनने के बाद के सभी system calls और linker actions देखे जा सकते हैं। लेकिन अब तक जो समझ आया है, उसके अनुसार payload उस चरण में activation तय करने के लिए system calls नहीं करता, बल्किargvऔरenvironजैसी चीज़ों को देखता है[0] https://en.wikipedia.org/wiki/PWB/UNIX
[1] https://news.ycombinator.com/item?id=38020792
लगता है कि binary payload के अंदर एक encoded string है
https://gist.github.com/q3k/af3d93b6a1f399de28fe194add452d01...
यह string एक kill switch की तरह काम करती है
https://piaille.fr/@zeno/112185928685603910
अगर सच में ऐसा है, तो एक mitigation यह हो सकता है
-aज़रूर शामिल करें। नहीं तो environment file मिट सकती है। और सामान्य तौर पर सही उपाय यही है कि malicious code रहित version पर upgrade करें और restart करेंक्या कोई संक्षेप में बता सकता है कि backdoor ठीक-ठीक क्या करता है? क्या यह अभी पता है? ऐसा नहीं लगता कि backdoor खुद payload है, तो क्या इसके लिए कोई malicious archive चाहिए, या यह
sshdprocess में hook लगाकर remote attacker के malicious packets सुनता है?मूल पोस्ट से ऐसा लगता है कि attacker SSH session के authentication से पहले वाले चरण में malicious payload भेज सकता है, लेकिन यह क्यों कहा जा रहा है कि exploit शायद कभी सामने ही न आए, यह समझ नहीं आता। अगर code को reverse engineer किया जा सकता है, तो proof of concept भी लिखा जा सकता है, है न?
आखिर attacker इस backdoor वाले machine पर control कैसे पाता है?
यहाँ भी स्थिति कुछ ऐसी ही है। xz कोई संदिग्ध काम करने से पहले कुछ data को decrypt करने की कोशिश करता है। यह asymmetric तरीका है, इसलिए secret encryption key दिए बिना भी decryption verify किया जा सकता है। क्योंकि matching public key मौजूद है
secret key को ढूँढना व्यावहारिक रूप से असंभव है, और payload decryption विफल होने पर इसका व्यवहार किसी स्पष्ट तरीके से अलग नहीं दिखता, इसलिए हो सकता है कि exploit code कभी सार्वजनिक न हो। exploit code बनाने का एकमात्र तरीका यही है कि secret key किसी तरह मिल जाए, और व्यावहारिक रूप से यह तभी होगा जब backdoor developer ही उसे leak करे
sshdशुरू होता है,libsystemdको load करता है, और वह XZ library को load करती है जिसमें hacked code मौजूद हैXZ library RSA signature verify करने वाली OpenSSL functions के अपने versions inject करती है
जब कोई SSH में login करते समय authentication के लिए signed SSH certificate पेश करता है, तो वही modified functions call होती हैं
certificate में सामान्य login प्रक्रिया के दौरान username या role जैसी assertions हो सकती हैं, जिनसे तय होता है कि certificate किसी खास user login के लिए valid है या नहीं। लेकिन अगर modified functions किसी खास attacker key से signed certificate पहचान लें, तो वे certificate के कुछ subfields निकालकर उन्हें system command के रूप में execute करती हैं। execution context
sshdका होता है, यानी root userदुर्भाग्य से attacker की signing key ज्ञात नहीं है, और केवल वही public key ज्ञात है जिसका उपयोग hacked code verification के लिए करता है। मूल रूप से attacker संक्रमित system पर root के रूप में arbitrary command execution कर सकता है, और निशान शायद ज़्यादा से ज़्यादा failed login attempt जैसा ही दिखेगा। अगर system internet-exposed है, तो वैसे भी ऐसे attempts बहुत आते रहते हैं
attacker key के signature की ज़रूरत होना ही मुख्य बात है। जब तक वह key leak न हो जाए या RSA algorithm टूट न जाए, तब तक दूसरे researchers या तीसरे पक्ष के लिए इस backdoor का दुरुपयोग करना असंभव है। अगर RSA टूट जाए तो यह उससे भी बड़ी समस्या होगी
फिलहाल केवल attacker ही exploit चला सकता है, इसलिए scanning भी संभव नहीं है। performance degradation जैसे secondary effects को छोड़ दें तो इसे detect करना कठिन है, और वास्तव में यह उसी तरह पकड़ा गया
यह समझना मुश्किल है कि इतना महत्वपूर्ण package, जिसे इतने सारे Linux servers रोज़ इस्तेमाल करते हैं, funding की कमी के कारण अपने मूल लेखक द्वारा maintain नहीं किया जा सका। open source में कुछ बदलना चाहिए
एक समाधान ऐसा license हो सकता है जो एक निश्चित आकार से बड़ी companies या businesses को maintenance cost चुकाने के लिए बाध्य करे
इसलिए vendors के पास open source को सुरक्षित बनाए रखने की प्रेरणा होगी। जैसे maintainers को पैसा देना, code audit करवाना, या full-time कर्मचारियों को hire करके contribution कराना
अगर आप अभी xz repository में जाएँ, तो वह GitHub Terms of Service violation के कारण disabled दिख रही है। disabled होना तो स्वाभाविक है, लेकिन अच्छा होता अगर GitHub code और history को रहने देता, एक banner दिखाता, और केवल exploitable functionality को block करता
इससे researchers और दूसरे लोग exploit को सीख सकते। कम गंभीर मामलों में अगर कोई library malicious code host करते हुए repository हटवा दे, तो लोग शायद उसे मामूली बात समझकर नज़रअंदाज़ कर दें
अगर source code में रुचि है, तो उसे ढूँढना आसान है। यह code और Git repository दुनिया भर की कई Git repositories से जुड़ी हुई है, और releases में source कई बार bundled रहा है
एक कम-ज्ञात open source गेम का व्यावहारिक रूप से मेंटेनर होने के नाते, मैंने डेवलपर्स को आते-जाते देखा है। जो भी मूल्यवान योगदान होता है, उसे बस मर्ज कर देता हूँ
कुछ सहयोगी अलग-अलग coding style के साथ C और C++ के मिले-जुले कोडबेस में काफ़ी गहराई तक बदलाव करते हैं। मैं हमेशा implementation details पूरी तरह नहीं समझ पाता, लेकिन मन के एक कोने में यह डर रहता है कि अगर कोई सचमुच बुरा backdoor डाल दे, तो प्रोजेक्ट बर्बाद हो सकता है
अच्छी बात यह है कि गेम इतना obscure है और इसका attack surface भी बहुत छोटा है। फिर भी, इससे कम-से-कम Windows binaries को नेक इरादे से sign करने का लालच छोड़ दिया है
यह xz backdoor वाकई एक बहुत बड़ा दुःस्वप्न है, और मूल डेवलपर्स तथा इसमें फँसे हर व्यक्ति के लिए दुख होता है
जब आप जंगल के रास्ते पर चल रहे होते हैं, तो कोई गुज़रती कार आपको बस टक्कर मारकर निकल सकती है। ड्राइवर के पकड़े जाने की संभावना कम है, इसे रोकने का कोई तरीका नहीं, और पुलिस भी पास नहीं है। software backdoor से कहीं ज़्यादा डरावना यह परिदृश्य दरअसल उन न्यूनतम जोखिमों में से है जिन्हें कुछ करते हुए जीने के लिए स्वीकार करना पड़ता है। और हाँ, ऐसा वास्तव में होता भी है
लेकिन अंततः ज़्यादातर लोग सक्रिय रूप से दूसरों को नुकसान पहुँचाने की कोशिश नहीं करते। इंसानों के हर काम की बुनियाद हमेशा से इसी धारणा पर रही है, और आज भी है
यह भ्रम कि code review को थोड़ा और सख़्त कर देने, linter, CI और pattern matching का ज़्यादा इस्तेमाल करने, code signing को और फैलाने, और लोगों की पहचान सत्यापित करने से ऐसी चीज़ें रुक जाएँगी—असल समस्या वही है। यह उस Silicon Valley शैली के भ्रम का लक्षण है कि दुनिया को हर सूक्ष्म स्तर पर प्रबंधित और नियंत्रित किया जा सकता है, और किया जाना चाहिए। ऐसे “इलाज” अक्सर उस बीमारी से भी बदतर हो सकते हैं जिसे वे रोकना चाहते हैं
[1]: http://hintjens.com/blog:106
मैं यह समझता हूँ कि इससे ऐसा community बन सकता है जहाँ contributors प्रोजेक्ट में भाग लेकर अच्छा महसूस करें। लेकिन मुझे यह हमेशा ऐसा लगा कि इससे प्रोजेक्ट बिना किसी स्पष्ट vision या direction के बढ़ता जाता है, और अंत में दूसरे लोगों के योगदानों को किसी साझा मानक तक लाने का असंगत बोझ maintainers पर डाल देता है
असली code review किसी अज्ञात भविष्य के समय तक टल जाता है, और तब वह review कितना गहरा होगा, कौन उसकी ज़िम्मेदारी लेगा, या समस्याओं को कौन ठीक करेगा—यह सब अस्पष्ट रहता है। अंत में यह मुझे ऐसे नुस्खे जैसा लगता है जो इस बात पर से नियंत्रण ही हटा देता है कि users तक वास्तव में क्या ship हो रहा है
इसमें malicious code के distribution की समस्या भी है। उस blog post की comments में भी यह मुद्दा उठता है, और Pieter ठीक वही scenario बताते हैं जो xz मामले में हुआ
“मान लीजिए Mallory धैर्यवान, छलपूर्ण है, और काफ़ी समय तक एक वैध contributor जैसा व्यवहार करके प्रोजेक्ट पर नियंत्रण पा लेता है, फिर धीरे-धीरे backdoor डालना शुरू करता है। तब सावधानीपूर्वक code review भी मदद नहीं करेगा। Mallory को बस इतना trust हासिल करना है कि वह maintainer बन सके; यह संभव है या नहीं, इसका नहीं बल्कि कैसे का सवाल है।”
वे निष्कर्ष निकालते हैं कि “सबसे अच्छी रक्षा community का आकार और विविधता है”
लेकिन मेरा मानना है कि सावधानीपूर्वक code review वास्तव में ऐसी घटना की संभावना कम कर सकता है। चाहे trusted contributor हो या बाहरी contributor, अगर हर contribution की गहराई से समीक्षा की जाए, तो अजीब व्यवहार या ऐसे commits जो “A करते हैं” कहें लेकिन वास्तव में B करें, उन्हें पहले पकड़ने की संभावना बढ़ती है
यह भी विवाद का विषय है कि क्या Optimistic Merging सचमुच बड़े और अधिक विविध community की ओर ले जाता है। कड़े contribution guidelines के बावजूद कई projects में सक्रिय community होती है। और यह अब भी इस सवाल का जवाब नहीं देता कि malicious patch को कब और कैसे पकड़ा जाएगा
xz की समस्या यह नहीं थी कि community छोटी थी, बल्कि यह थी कि community थी ही नहीं। एक अकेले malicious actor ने प्रोजेक्ट पर नियंत्रण पा लिया था, और लगभग किसी दूसरे की निगरानी थी ही नहीं। contribution guidelines community के आकार का कारण नहीं थीं, और चाहे Optimistic Merging इस्तेमाल हुआ हो या नहीं, यह फिर भी हो सकता था
[2]: http://hintjens.com/blog:106/comments/show#post-2409627
brew install caskया vi/emacs/vscode extensions इंस्टॉल करते रहते हैंRust को शायद default रूप से सबसे सुरक्षित programming language/community कहा जा सकता है, और इसका security-first design pointer वाली शरारतों को लगभग असंभव बना देता है। फिर भी सबसे आम और recommended install path यह है, और मैं खुद भी पूरा पाखंडी हूँ क्योंकि मैं भी अक्सर यही करता हूँ
https://www.rust-lang.org/tools/install
यह सिर्फ़ एक उदाहरण है। बहुत से लोगों के लिए “इसे
curlकरो औरshमें pipe कर दो” वाली आदत muscle memory बन चुकी है—यानी remote code execution का दरवाज़ा खुद खोलना, और साथ ही किसी केunsafeblock पर बहस करनायह हुआ, इसका दुःख है, लेकिन हैरानी नहीं। काश ऐसे malicious actors का मुकाबला करने के लिए बेहतर tools आएँ, और वे भी open source हों
यह backdoor कई सवाल खड़े करता है। उसी टीम या मिलती-जुलती किसी टीम ने और कौन-से backdoor लगाए होंगे? ऐसी टीमें कितनी सक्रिय हैं? ऐसे घुसपैठ हमलों के प्रति संवेदनशील dependencies कितनी हैं? हमारे उद्योग में इस तरह के गुप्त targeted operations के लिए attack surface कितना बड़ा है?
apache httpd,postgres,mysql,nginx,openssh,dropbear ssh,haproxy,varnish,caddy,squid,postfixजैसी प्रमुख network services और उनकी सभी dependencies, और उन dependencies के पूरे committer graph को बनाना शायद यह समझने का पहला कदम हो सकता है कि सबसे अधिक मूल्य कहाँ है और निगरानी सबसे कम कहाँ हैयह किसी के द्वारा ऐसा करने की पहली कोशिश नहीं हो सकती। यह सिर्फ पहली कोशिश है जो असफल हुई और सामने आ गई। Linux kernel में आज़माया गया और पकड़ा गया backdoor हमें मालूम है, लेकिन यह remote attack है और प्रकृति में पूरी तरह अलग है
ऐसा कुछ क्यों नहीं बाँटा गया जो harmless दिखे और पकड़े जाने पर bug जैसा लगे, बल्कि पूरी तरह functional backdoor लागू किया गया और उसकी deployment method तक छिपाने की कोशिश की गई?
यह एक सोचा-समझा निर्णय रहा होगा। इसका कारण लक्ष्य क्या था, इस बारे में संकेत दे सकता है
इसका मतलब शायद यह है कि remote exploit के लिए scan करने के लिए हमलावर की private key चाहिए, जो हमारे पास नहीं है। दूसरा विकल्प सिर्फ local detection script चलाना ही है
जब तक यह साबित न हो जाए कि यह समस्या वास्तविक systems में व्यापक रूप से फैली हुई है, तब तक ऐसा तरीका उन पुराने समान “experts” से भी बदतर लगेगा जो हर साल password बदलवाने पर ज़ोर देते थे, जिससे वास्तविक security घटती थी और सिर्फ कागज़ी security बेहतर दिखती थी
backdoor का signature verification लगभग 100µs लेगा, इसलिए fingerprint से मेल खाने वाली key का processing time अन्य keys की तुलना में उतना अधिक होना चाहिए। यह time difference कम-से-कम LAN पर व्यावहारिक रूप से detect किया जा सकता है, और अगर scanner लक्ष्य के काफ़ी पास से चलाया जाए, तो इंटरनेट के पार भी संभव हो सकता है
repeated authentication failures के बाद client IP को block करने वाले systems scanning को और कठिन बना देंगे
(https://bench.cr.yp.to/results-sign.html में Ed448 verification लगभग 4 लाख cycles बताया गया है, जो 4GHz पर 100µs के बराबर है)
sshdकोई challenge देता है और हमलावर को उसी पर sign करना होता है?यह शायद अलोकप्रिय राय हो, लेकिन पूरे operation की प्रशंसा किए बिना रहना मुश्किल है। निस्संदेह इसकी निंदा की जानी चाहिए, लेकिन फिर भी यह प्रभावित करता है। कल्पना से लेकर execution तक यह सचमुच एक कलाकृति जैसा था, और इसका इतनी जल्दी पकड़ में आ जाना बेहद बड़ा सौभाग्य था
अगली बार हमलावर संभवतः ऐसा payload बनाएँगे जो उन कामों में असामान्य latency spikes पैदा न करे जहाँ इंसान इंतज़ार कर रहा होता है
इससे मुझे किसी तरह Kim Dotcom का वह मामला याद आता है जब उसे पता चला कि वह अवैध wiretapping का निशाना है। वजह यह थी कि MW3 में अचानक उसका ping बहुत बढ़ गया था। जाँच करने पर पता चला कि सिर्फ उसके packets को भौतिक रूप से बहुत दूर स्थित GCSB कार्यालय के रास्ते route किया जा रहा था। GCSB के पास New Zealand के permanent resident की जासूसी करने का अधिकार नहीं था। अंत में उसे New Zealand के प्रधानमंत्री से व्यक्तिगत माफ़ी मिली थी
मेरे हिसाब से सबसे चतुर हिस्सा project selection था जिसमें घुसपैठ की गई। बाद में “Hans” की IFUNC pull request चर्चा पढ़ना दिल तोड़ने वाला है, लेकिन यह बहुत अच्छी तरह दिखाता है कि यही project क्यों चुना गया
मैं जानना चाहूँगा कि “Jia” और “Hans” के पीछे कितने लोग थे, और उन्होंने communication तथा code contributions का विश्लेषण और रणनीति कैसे बनाई। mailing list पर दबाव बनाने का नाटक करने वाले तीसरे व्यक्तित्व जैसे कुछ पहलू थोड़े ढीले-ढाले बनाए गए लगते हैं
इसलिए अब भी यह संभव है कि यह किसी परिष्कृत छोटी टीम, या यहाँ तक कि किसी अकेले व्यक्ति का काम रहा हो। अगर यह कोई state actor था, तो मैं मानूँगा कि ऐसे operation के लिए fake personas को दिन भर बनाने और बनाए रखने वाले लोग होते होंगे
अगर किसी ने सोचा होता, “ये तीन users कुछ ज़्यादा ही रूखे ढंग से दबाव बना रहे हैं, ये कौन हैं? तीनों accounts लगभग एक ही समय पर बने हैं। यह संदिग्ध है। कोई fake accounts से इस चीज़ को इतना ज़ोर देकर आगे क्यों बढ़ाएगा? इसकी जाँच करनी चाहिए,” तो दिक्कत हो सकती थी। कुल डाले गए effort की तुलना में वह हिस्सा लापरवाह, खराब योजना वाला, या कम बजट वाला लगता है
अगर एक नाटकीय परिकल्पना जोड़ें, तो संभव है कि हमलावर उस सूचना-परमाणु बम से डर गया हो जिसे वह फोड़ने वाला था, और उसने जानबूझकर इसे बिगाड़ दिया हो
अंतिम परिणाम से घृणा करते हुए भी हम हमले की जटिलता को स्वीकार कर सकते हैं