1 टिप्पणियां

 
GN⁺ 2024-07-21
Hacker News की रायें
  • अगर कोई सिस्टम इतना critical path में है, तो उसे proper CI pipeline से pass नहीं होना चाहिए था
    मैं automated testing को लेकर बहुत ज़्यादा सख्त नहीं हूं, लेकिन इस स्तर की अहमियत वाले system में state management असाधारण रूप से अच्छा होना चाहिए
    जिन सभी environments को support करने का दावा किया जाता है, उनके लिए integration tests के बिना production deploy नहीं करना चाहिए; और इस scale और महत्व की company के पास support की जाने वाली सभी images को validate करने वाला staging या development test server तक न होना समझ से बाहर है

    • जानकारी और नहीं है, लेकिन assumptions बहुत ज़्यादा हैं। उदाहरण के लिए, हो सकता है असल में सही file मौजूद थी और failure point validated artifact को CDN पर upload करने वाला code था
      तब deployment से पहले कई checks pass होने के बाद ही समस्या हो सकती थी। मैं जल्दबाज़ी में यह निष्कर्ष नहीं निकालना चाहूंगा कि वे Windows पर export को बिल्कुल test नहीं करते
    • किसने कहा कि ऐसा environment नहीं है? किसने कहा कि उसने वे सारे tests pass नहीं किए? अभी assumptions बहुत ज़्यादा हैं
    • कुछ साल पहले kernel में चलने वाली language पर काम करने वाली team से interview के दौरान, मुझे याद है उन्होंने कहा था कि CI 20,000~40,000 machine/OS combinations और settings चलाता है
      उनमें निश्चित रूप से basic Windows भी रहा होगा
    • अगर acceptance criteria यह था कि “गलत data signature होने पर machine को boot होने से रोका जाए”, तो यह corrupted deploy या network का संकेत हो सकता है, इसलिए पीछे मुड़कर देखें तो boot न करना सही behavior भी हो सकता है
      यह design भी हो सकता था कि valid signature वाली file download होने तक machine पूरी तरह boot न हो
    • पूरी तरह null characters से भरी file को automated build pipeline का artifact मानना मुश्किल है
      मैं इस पर दांव लगाऊंगा कि कुछ build हुआ और CI tests pass हुए, उसके बाद deployment preparation के लिए files copy करने वाले later-stage step में system बिगड़ा। हालांकि अभी सब कुछ सिर्फ अनुमान है
  • इससे जुड़ी बात यह है कि इतिहास की दो सबसे बड़ी tech disasters (CrowdStrike और कुछ साल पहले SolarWinds hack) दोनों runaway security software से निकलीं—यह संयोग नहीं लगता
    मेरा मानना है कि security software company शुरू करना चाहने वाले hacker-minded लोगों की process-oriented culture के उबाऊ हिस्सों को implement करने में सबसे कम रुचि होने की संभावना होती है। SolarWinds के बारे में सामने आया कि company के अंदर security culture बेहद खराब था, और इस मामले में भी root cause सामने आने पर तेज़ और loose deployment process होने की संभावना ज़्यादा लगती है

    • सहमत नहीं हूं। Security companies “too big to fail” syndrome से गुजरती हैं, और customers checkboxes भरना चाहते हैं इसलिए पैसा आसानी से आता है
      Security कोई खरीदा जाने वाला product नहीं, बल्कि culture है, और उसे पहले दिन से active effort और कठिन काम से स्थापित करना पड़ता है। market में security provide कर देने वाला कोई product नहीं है; सिर्फ ऐसे products हैं जिन पर समस्या होने पर responsibility डाली जा सके
    • CrowdStrike मूल रूप से California के Irvine में founded और headquartered company थी
      शुरुआती engineering org का बड़ा हिस्सा remote/work-from-home या Irvine में था, और scale बढ़ने पर Sunnyvale office जोड़ा गया, फिर बाद में official headquarters Austin, TX में shift कर दिया गया
      हाल के वर्षों में इसने overseas engineering operations भी expand किए हैं, जिनमें offshoring भी शामिल रहा हो सकता है
    • अलग hypothesis है, लेकिन compatible है। Security software को आम तौर पर व्यापक और मजबूत access privileges चाहिए होते हैं
      इसलिए गलती या breach होने पर impact कहीं ज़्यादा बड़ा होना आसान है
    • industry का track record काफ़ी अजीब तो है। तुरंत याद आने वालों में CrowdStrike, SolarWinds, Kaspersky, https://en.wikipedia.org/wiki/John_McAfee शामिल हैं
      लगता है कुछ और भूल रहा हूं। यह legal cannabis industry को परेशान करने वाली self-selection problem जैसी संरचना भी हो सकती है
    • Security software को kernel-level access चाहिए होता है। कुछ टूटे तो boot loops और crashes तक बात पहुंचती है
      ज़्यादातर दूसरे software को इतने low-level access की जरूरत नहीं होती, और crash होने पर भी वे पूरे system को साथ में नहीं गिराते, साथ ही fast automatic upgrades भी संभव होते हैं
  • इस disaster का कोई positive side ढूंढना हो, तो बस इतनी छोटी-सी उम्मीद है कि organizations kernel-level access पर फिर से सोचेंगी
    यह नहीं माना जा सकता कि कोई भी game company kernel-level anti-cheat software इस्तेमाल करने जितनी सक्षम है

    • जब तक Microsoft बहुत सख्ती से crack down नहीं करता, game software पर असर पड़ेगा ऐसा नहीं लगता
      फिर भी Microsoft के तहत game companies हैं, इसलिए games के लिए hooks मिलते रहने की संभावना ज़्यादा है। Enterprise organizations Riot की anti-cheat practices पर ध्यान भी नहीं देंगी, क्योंकि वे work machines पर LoL install नहीं करतीं
    • जिनसे लड़ना है, वे cheat buyers हैं जो कहते हैं “random kernel-level driver? कोई समस्या नहीं!”
    • मुझे लगता है anti-cheat ज़्यादातर server-side behavior-based होना चाहिए
    • macOS पर, जहां तक मुझे पता है, कम-से-कम kernel access संभव नहीं है, यह राहत की बात है
  • यह ऐसी test file लगती है जिसे QA प्रभारी खाली फ़ाइल और न्यूनतम वैध फ़ाइल के बाद दूसरे या तीसरे नंबर पर आज़माता। यहाँ दिख रही हर तरफ़ की अक्षमता का स्तर चौंकाने वाला है
    ऐसे प्रतिस्पर्धी बाज़ार में जहाँ non-technical executives को presentation से प्रभावित करना पड़ता है, यह हैरानी की बात नहीं कि तकनीकी रूप से सक्षम कंपनी को अक्षम कंपनी पर कोई बढ़त नहीं मिलती
    मैंने हाल ही में Craig Wright का फैसला https://www.judiciary.uk/judgments/copa-v-wright/ पढ़ा; Satoshi Nakamoto होने का झूठा दावा करने वाले Wright में उन क्षेत्रों में भी बुनियादी तकनीकी क्षमता नहीं थी जिनका वे खुद को विश्व-स्तरीय विशेषज्ञ बताते थे। गवाही के दौरान उन्हें यह भी नहीं पता था कि ‘unsigned’ का मतलब क्या है, और लगता है कि 90 के दशक से वे बड़ी कंपनियों के security काम में लोगों को jargon, manipulated demos और forged documents से धोखा देते रहे
    CrowdStrike के founder और CEO George Kurtz 14 साल पहले McAfee में CTO थे, जब McAfee ने लगभग यही काम किया था: https://old.reddit.com/r/sysadmin/comments/1e78l0g/can_crowd... https://en.wikipedia.org/wiki/George_Kurtz
    CrowdStrike ने खुद भी 3 महीने पहले Debian stable पर यही समस्या पैदा की थी: https://old.reddit.com/r/debian/comments/1c8db7l/linuximage6...
    यह डरावना है कि PCI compliance नियमों ने CrowdStrike और antivirus को आज के IT infrastructure के लगभग हर हिस्से में घुसा दिया है

    • यह भी विडंबना है कि compliance ने एक विशाल single point of failure के रूप में सबसे बड़ी vulnerability पैदा कर दी
      लेकिन सरकारी regulation अक्सर ऐसा ही होता है
    • इस हादसे की सबसे बुरी बात यह है कि nation-state actors को अब बड़े पैमाने के infrastructure attack का साफ़ blueprint मिल गया है
    • लिंक में मौजूद लोगों का इसे “Microsoft outage” कहने पर नाराज़ होकर “यह CrowdStrike की गलती है” कहना मज़ेदार है
      लेकिन यह Microsoft की भी विफलता है। और व्यापक रूप से, यह industry की एक और विफलता है
      सुरक्षित और भरोसेमंद systems बनाने देने वाले industry reforms के लिए ऐसी घटनाएँ और कितनी बार दोहरानी पड़ेंगी, जिन पर हम 70 साल से research कर रहे हैं? ऐसा लग रहा है जैसे 1988 फिर से दोहर रहा है
    • यह काफ़ी विडंबनापूर्ण है कि Craig Wright ने सुझाव दिया था कि digital certificates किसी एक कंप्यूटर या cluster से जारी कराने के बजाय उन्हें blockchain पर डालना चाहिए
      एक जगह होने पर वह target बन जाता है, जबकि peer-to-peer network attacks के प्रति कहीं ज़्यादा resilient होता है
      अगर यह समस्या सभी computers के root certificates के CrowdStrike से replace होने से जुड़ी होती, तो blockchain पर registered certificates शायद समाधान हो सकते थे। मैं cryptography expert नहीं हूँ, लेकिन यह plausible लगता है
      साथ ही, Craig Wright की blockchain explanation सुनने के बाद ही Bitcoin whitepaper मुझे काफ़ी समझ आने लगा था। हो सकता है वे सबसे अच्छे coder न हों, लेकिन क्या mathematicians security में बेकार होते हैं?
    • मैं conspiracy theory जैसा नहीं सुनना चाहता, लेकिन अभी Hanlon's razor के आधार पर malice को बाहर करना थोड़ा जल्दी लगता है
      ज़्यादातर mistakes इतनी absurd global scale की नहीं होतीं। यह अब तक की सबसे बड़ी गलती, यानी जो हुआ ही नहीं उस Y2K जैसी दिखती है
  • यह लेख गलत है, और front page से हटाने का कोई और तरीका न होने के कारण मैंने flag किया है
    किसी खराब computer में all-zero file मिल जाने का मतलब यह नहीं कि वह file शुरू से ही all-zero के रूप में distribute की गई थी
    https://x.com/craiu/status/1814339965347610863
    https://x.com/cyb3rops/status/1814329155833516492

    • CrowdStrike का behavior यह है कि network socket से transfer हो रही file अगर malware signature से match करे, तो वह उस file को 0 से replace कर देता है
      अगर ये files खुद malware signature files हैं, तो match होना कोई हैरानी की बात नहीं
    • CrowdStrike ने आखिरकार खुद पुष्टि की: https://www.crowdstrike.com/blog/tech-analysis-channel-file-...
  • यह उस बात से मेल खाता है जो मैंने एक दोस्त से सुनी, जो CrowdStrike में काम करने वाले किसी व्यक्ति को जानता है
    bug कई सालों से kernel driver के अंदर छिपा हुआ था, और defective data आने पर trigger हुआ। वह data configuration update के post-processing step में जोड़ा गया था—testing के बाद, लेकिन clients द्वारा fetch किए जाने वाले update servers पर copy होने से पहले
    लगता है CrowdStrike का test setup configuration data खुद के लिए ठीक था, लेकिन production में जाने से पहले इसे पकड़ नहीं पाया। वजह यह थी कि वे गलत चीज़ test कर रहे थे
    अगर वे postmortem जारी करते हैं, तो उम्मीद है वे इस समस्या को स्वीकार करेंगे और बताएँगे कि एक और global-impact process failure रोकने के लिए क्या करेंगे

    • आखिरकार कोई explanation है जो कुछ हद तक समझ में आती है
      कोई भी सक्षम system administrator अब तक Greenland से New Zealand तक सभी जगह automatic updates बंद कर रहा होगा, firewall से block कर रहा होगा, और server assets से इस product को जितनी जल्दी हो सके हटाने की योजना बना रहा होगा
      लगता है competitor products के marketing budgets इस quarter में बढ़ेंगे
    • CrowdStrike को सिर्फ़ “स्वीकार” करने से कहीं ज़्यादा बड़ा परिणाम झेलना चाहिए
      contracts में “limitation of liability” हो तब भी, उम्मीद है गंभीर जांच, fines और legal scrutiny होगी
      इस हादसे से हुए नुकसान का पैमाना calculate करना भी मुश्किल है, और companies व आम लोगों द्वारा बर्बाद किए गए समय को शामिल करें तो यह और बड़ा है। उदाहरण के लिए, flights लेने की कोशिश कर रहे लोग भी इसमें शामिल हैं
      ऐसी लापरवाही की कीमत ज़रूर होनी चाहिए
  • Mastodon पर Kevin Beaumont को मिली फ़ाइल हर ग्राहक के लिए अलग होने का दावा किया गया है
    https://cyberplace.social/@GossiTheDog/112812454405913406
    थोड़ा नीचे स्क्रॉल करके देख सकते हैं

    • मुझे लगा था कि Windows सभी kernel module signatures की मांग करता है
      अगर यह सिर्फ कोई test leak नहीं, बल्कि कई corrupted copies थीं, तो सवाल है कि वे signature verification पास करके kernel में load कैसे हो सकीं
  • यह मूल फ़ाइल का content नहीं, बल्कि नुकसान रोकने की कोशिश में की गई manual response का नतीजा भी हो सकता है
    किसी ने सोचा होगा कि गलत फ़ाइल को उसी size की पूरी तरह 0 वाली फ़ाइल से overwrite कर देने पर update harmless हो जाएगा
    या अगर “critical vulnerability की वजह से QA को bypass किया गया” वाली hypothesis मानें, तो actual patch deployment रोकना real data तक access घटाने और vulnerability की reverse engineering को धीमा करने की कोशिश भी हो सकती है

  • 4chan के technology board पर पोस्ट किए गए explanation के मुताबिक, problem दो stages में थी
    CSAgent.sys नाम का signed kernel driver CrowdStrike virus definition file को parse करता था, और malformed definition file गलत memory access कराए तो उसे ठीक से handle नहीं करता था
    एक time-bomb kernel driver था जो normal definition files के साथ कई महीनों तक बिना दिक्कत चलता रहा, और किसी समय definition files serve करने वाला web server या CDN खाली फ़ाइल, arbitrary bytes, किसी दूसरे software की फ़ाइल जैसी गलत content serve करने लगा
    explanation यह है कि update client ने उसे C:\Windows\System32\drivers के नीचे download किया, और CSAgent.sys ने उसे फिर से पढ़कर parse किया, जिससे PAGE_FAULT_IN_NONPAGED_AREA के साथ blue screen और reboot loop शुरू हो गया
    कहा जाता है कि CSAgent.sys_18511.sys और CSAgent.sys_18513.sys के differences देखें तो size check और buffer size बदलने के निशान दिखते हैं, ताकि भविष्य में गलत definition file crash न कराए

    • सुनने में ऐसा लगता है कि definition files serve करने वाले server पर किसी virus protection feature ने disk read को block किया, और error देने के बजाय output data को 0 के रूप में दे दिया
      अगर सच में इसकी वजह कोई antivirus package था, तो यह काफी मजेदार होगा
    • अगर ऐसा कई बार हुआ है, तो यह खराब तरीके से लिखे kernel driver को target करने वाला hacker attack हो सकता है
      खासकर अभी जैसे election period और Trump की पसंदीदा company होने के context में, यह power show भी हो सकता है
  • पहले भी security software ने पूरी फ़ाइल को 0 में बदलकर software compilation तोड़ दी थी
    मैं यह नहीं कह रहा कि इस बार भी वही हुआ है, लेकिन फिर भी यह हैरान करने वाला नहीं होगा
    असल में Windows में linker फ़ाइल खोल नहीं पा रहा था, क्योंकि कोई दूसरा process scan करते हुए उसे lock कर रहा था। लेकिन error देने के बजाय उसने link किए जाने वाले object code को 0 में बदल दिया
    लोग कारण नहीं ढूंढ पा रहे थे, फिर debugger खोलकर देखने पर ही पता चला कि object code के बड़े chunks 0 से replace हो गए थे

    • Visual Studio के अभी-अभी compiled file में write न कर पाने की समस्या मैंने बहुत बार देखी है
      antivirus नई बनी binary को ठीक उसी समय पकड़ लेता था जब mt.exe को उसमें write करना होता था, इसलिए मैंने retry जोड़ने वाला mt.exe wrapper तक बना रखा है। CI builds भी इसी वजह से randomly fail हो जाती थीं