1 पॉइंट द्वारा GN⁺ 2023-12-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • पोलैंड की NEWAG Impuls EMU ट्रेनों में तीसरे पक्ष की मरम्मत कार्यशाला में सर्विस के बाद रुक जाने की समस्या को लेकर, 3 शोधकर्ताओं ने लगभग 1 साल तक PLC कोड की reverse engineering की
  • निर्माता ने कारण को मेंटेनेंस की गलती बताकर अपनी ही सर्विस पर ज़ोर दिया, लेकिन कोड में खास शर्तों पर नकली त्रुटि के साथ ट्रेन को लॉक करने वाली लॉजिक मौजूद थी
  • कुछ controller versions में GPS coordinates के जरिए तीसरे पक्ष की मरम्मत कार्यशालाओं की पहचान करने की कोशिश की गई थी, और undocumented चालक-कक्ष key combination से लॉक हटाया जा सकता था
  • बाद के PLC software में key combination वाला unlock हट गया, लेकिन lock logic बनी रही, और एक खास update के बाद HMI ने copyright violation की warning भी दिखानी शुरू की
  • ट्रेन का GSM telemetry device लॉक की शर्तों को transmit करता था, और कुछ मामलों में remote lock की संभावना भी दिखी

NEWAG Impuls EMU PLC कोड की reverse engineering

  • q3k, redford, mrtick ने लगभग 1 साल तक NEWAG Impuls EMU ट्रेन के PLC कोड की reverse engineering की
  • जिन ट्रेनों में समस्या थी, वे तीसरे पक्ष की मरम्मत कार्यशालाओं में सर्विस के बाद मनमाने कारणों से लॉक हो जाती थीं
  • निर्माता का दावा था कि वजह तीसरे पक्ष की मेंटेनेंस गलती है, इसलिए सर्विस तीसरे पक्ष की जगह निर्माता को ही करनी चाहिए

कोड के भीतर मौजूद लॉक शर्तें

  • PLC कोड में ट्रेन को नकली error code के साथ लॉक करने वाली लॉजिक शामिल थी
    • एक खास तारीख के बाद लॉक लग सकता था
    • कुछ समय तक ट्रेन न चलने पर भी लॉक लग सकता था
  • एक controller version में GPS coordinates शामिल थे, जिनका इस्तेमाल इस व्यवहार को तीसरे पक्ष की मरम्मत कार्यशालाओं तक सीमित करने के लिए किया गया था

undocumented unlock तरीका और बाद के बदलाव

  • चालक-कक्ष control panel पर एक खास key combination दबाने से ट्रेन का लॉक हटाया जा सकता था
  • यह unlock तरीका documented नहीं था
  • नए PLC software versions में key combination वाला unlock हटा दिया गया, लेकिन lock logic जस की तस रही

HMI warning और GSM telemetry

  • NEWAG के एक खास update के बाद चालक-कक्ष control panel ने copyright violation से जुड़ा warning message दिखाना शुरू किया
    • यह message तब दिखता था जब HMI उन कुछ शर्तों को पहचान लेता था जिन पर लॉक लगना चाहिए था, लेकिन ट्रेन फिर भी चल रही होती थी
  • ट्रेन में GSM telemetry device मौजूद था
    • यह device लॉक की शर्तों को transmit करता था
    • कुछ मामलों में ऐसा लगा कि ट्रेन को remotely लॉक किया जा सकता है

1 टिप्पणियां

 
GN⁺ 2023-12-06
Hacker News की राय
  • पोलैंड में काफ़ी सारी क्षेत्रीय रेलवे कंपनियां इन ट्रेनों को विशेष रूप से इस्तेमाल करती हैं। मेंटेनेंस ग्रेड P1 से लेकर सबसे जटिल P5 तक 5 स्तरों के होते हैं; पहले केवल बड़ी कंपनियां ही P3 या उससे ऊपर का काम लेती थीं, लेकिन कुछ साल पहले European Union Agency For Railways ने बाज़ार खोल दिया, जिसके बाद छोटी प्रतिस्पर्धी कंपनियां बहुत कम कीमतों पर टेंडर जीतने लगीं
    मामला तब शुरू हुआ जब SPS Mieczkowski द्वारा मेंटेन की गई 4 ट्रेनें स्टार्ट तक नहीं हुईं; कंपनी को €500,000 का जुर्माना भरना पड़ा और ट्रेनें Newag को वापस भेज दी गईं। इसी दौरान, जिन ट्रेनों का मेंटेनेंस भी नहीं हुआ था, वे भी सिर्फ़ इसलिए चलना बंद हो गईं क्योंकि वे एक जगह बहुत लंबे समय तक खड़ी थीं। अंततः SPS Mieczkowski ने जांच के लिए Dragon Sector को हायर किया, और ट्रेनों को निष्क्रिय करने वाली कई अलग-अलग routines मिलीं
    इस मामले की जांच पोलैंड का Central Anti-Corruption Bureau कर रहा है, लेकिन यह संदेह है कि Newag को कोई बड़ा झटका लगेगा या नहीं। पोलैंड का Office of Rail Transport ऐसा संस्थान है जो ट्रेन टाइमटेबल की छोटी-सी गलती पर भी शिकायतों की बौछार कर देता था और आदेश जारी करता था, लेकिन इस मामले में उसने दखल से हाथ खींच लिया; और ट्रेन खरीद की टेंडर प्रक्रिया बेहद सख्त है, इसलिए रेलवे कंपनियों के पास कदम उठाने की गुंजाइश भी लगभग नहीं है

    • यह पोलिश दंड संहिता के अनुच्छेद 254a के तहत sabotage अपराध साफ़-साफ़ लगता है। इस मामले में टेंडर प्रक्रिया महत्वपूर्ण नहीं है; बस एक सक्षम prosecutor की ज़रूरत है
      https://sip.lex.pl/akty-prawne/dzu-dziennik-ustaw/kodeks-kar...
    • Internal Security Agency भी जांच कर रही है, और लगता है कि Newag के लिए बड़ी मुश्किल से बचना कठिन होगा। आंतरिक रूप से भी वे इस मामले को बेहद गंभीरता से ले रहे हैं
      क्या हुआ था, यह साबित करने के लिए बहुत भारी मात्रा में सबूत हैं, इसलिए बच निकलने की संभावना लगभग नहीं है। फिर भी वे यह दावा करके निकलने की कोशिश कर रहे हैं कि उन्हें hack किया गया था। दावा कुछ ऐसा है कि hackers ने प्रतिस्पर्धी कंपनी द्वारा मेंटेन की गई ट्रेनों के firmware को flash करके उन्हें brick बना दिया, जबकि प्रतिस्पर्धी रेलवे सेक्शनों के GPS coordinates सचमुच hardcode किए हुए थे
    • ज़्यादा नया Impuls 2 पोलैंड के बाहर भी इस्तेमाल होता है। इटली की FSE 11 यूनिट चला रही है
      हालांकि Newag इटली में विस्तार जारी रखना चाहता था, इसे देखते हुए लगता नहीं कि उन्होंने उन ट्रेनों तक sabotage किया होगा। बेशक, यह भी हो सकता है कि उन्होंने सोचा हो कि नए ग्राहकों को भी जला देना ठीक है
  • टिप्पणियों में एक लंबा लेख और अतिरिक्त विवरणों के लिंक दबे हुए हैं
    पोलिश:
    https://zaufanatrzeciastrona.pl/post/o-trzech-takich-co-zhak...
    https://wiadomosci.onet.pl/kraj/awarie-pociagow-newagu-haker...
    अंग्रेज़ी:
    https://zaufanatrzeciastrona-pl.translate.goog/post/o-trzech...
    https://wiadomosci-onet-pl.translate.goog/kraj/awarie-pociag...
    पृष्ठभूमि जोड़ें तो पोलैंड 16 voivodship में बंटा है, और 2000 के दशक की शुरुआत के सुधारों के बाद लगभग हर क्षेत्र की अपनी क्षेत्रीय रेलवे कंपनी है और वे आपस में सहयोग करती हैं। एक साल से ज़्यादा समय से लगभग सभी को पता था कि Newag ट्रेनों में कुछ संदिग्ध हो रहा है। कई कंपनियों के स्वामित्व वाली ट्रेनों में लगातार खराबियां आईं, और वे Newag के बजाय third-party maintenance providers का इस्तेमाल कर रही थीं। इसलिए maintenance provider ने hackers को हायर किया, और reverse engineering के जरिए ठीक-ठीक क्या हो रहा है यह समझने में समय लगा

    • पोलिश होने के नाते मुझे पता था कि województwo का क्या मतलब है, लेकिन यह नहीं पता था कि अंग्रेज़ी में इसका समकक्ष शब्द voivodship है। Wikipedia पर पढ़कर दिलचस्प लगा
      https://en.wikipedia.org/wiki/Voivodeship
  • Microsoft द्वारा पहले DR-DOS की competition को लगभग बर्बाद करने के लिए इस्तेमाल किया गया AARD “crash” याद आ गया
    AARD code Microsoft Windows 3.1 beta release में शामिल code का एक हिस्सा था, जो यह पहचानने के लिए था कि Windows MS-DOS या PC DOS के बजाय DR-DOS जैसे किसी competing compatible product पर चल रहा है या नहीं, और ऐसा होने पर एक उलझा हुआ error message दिखाता था। इस XOR-encrypted, self-modifying और जानबूझकर obfuscated machine code ने कई undocumented DOS structures और functions का इस्तेमाल किया था
    https://en.wikipedia.org/wiki/AARD_code
    https://www.geoffchappell.com/notes/windows/archive/aard/drd...
    https://news.ycombinator.com/item?id=36042213

    • Microsoft से तो ऐसी उम्मीद की जा सकती है। वही company जिसने Compaq से कहा था कि अगर उसने OS/2 Warp वाला एक भी PC बेचा, तो वह Windows वाले PC फिर कभी नहीं बेच पाएगा
      अच्छी चीज़ों का लंबे समय तक आनंद लेने से रोकने वाला आखिर इंसान ही होता है। OS/2 Warp एक बेहतरीन operating system था
    • AARD code एक non-fatal warning था जो Windows के इस्तेमाल को रोकता नहीं था, और असल में release भी नहीं हुआ था। Final release में उसे unreachable बनाने के लिए patch किया गया था, शायद regression से बचने और लंबे build times घटाने के लिए किया गया binary patch रहा होगा। Floppy disk placement optimization जैसी बड़ी packing problem भी थी
      वैसे DR-DOS release के समय से ही dead-end product था। यह बहुत साफ था कि लोग और OEMs दो operating systems—एक graphical operating system और DOS जो उस graphical operating system के bootloader की तरह काम करे—साथ में नहीं खरीदेंगे। standalone text-only 16-bit DOS market किसी meaningful अवधि तक मौजूद रहेगा, यह विचार पूरी तरह fantasy था, और sales के लिहाज़ से भी DR-DOS महत्वपूर्ण नहीं था। AARD code अगर सच में Windows 3.x के final versions में शामिल होता, तब भी कुछ नहीं बदलता
    • यह मामला इससे बहुत मिलता-जुलता नहीं है। AARD crash जानबूझकर किया गया compatibility breakage था, और यह planned obsolescence के ज्यादा करीब है
      ट्रेन को “बहुत देर तक” खड़ा रखने पर disable कर दिया जाता है—लगता है Microsoft भी platform पर इतना control चाहती होगी
    • Article के मुताबिक वह feature activate नहीं किया गया था, तो फिर यह कैसे कहा जा सकता है कि उसका इस्तेमाल DR-DOS competition को बर्बाद करने में हुआ?
    • कई सालों तक दुनिया भर के operating systems पर dominance पक्की करने की कीमत के रूप में 280 million dollar settlement काफी सस्ता सौदा है
  • Post आने के बाद Newag का share price काफी गिरा; क्या यह Mastodon-driven price correction का पहला मामला है?
    https://g.co/kgs/WVku4C

    • फिर भी 1 महीने के हिसाब से अभी +10%, और 3 महीने के हिसाब से +25% है
    • Polish media ने भी report किया है, इसलिए यह सिर्फ Mastodon की वजह से नहीं हुआ
  • 21 November 2022 को एक काफी मजेदार स्थिति हुई, जहां service में भी न चल रही एक दूसरी train set ने काम करने से इनकार कर दिया। Computer ने compressor failure report किया, लेकिन mechanics ने जांच की तो compressor में कोई समस्या नहीं थी। फिर भी train ने pantograph ऊपर नहीं उठाया, और computer code analyse करने पर failure को जबरन trigger करने वाली condition मिली
    कुछ ऐसा कि अगर date 21 या उससे ज्यादा हो, month 11 या उससे ज्यादा हो, और year 2021 या उससे ज्यादा हो, तो compressor failure report करो

    • अच्छे नज़रिए से देखें तो compressor manufacturer ने critical part replacement सुनिश्चित करने के लिए expiry date डाली होगी। लेकिन ज्यादा संभावना है कि यह बस shady business हो
    • असली crime तो standard date/time library और साधारण > 2021-11-21 comparison का इस्तेमाल न करना है
    • इस तरह code लिखने की वजह यह हो सकती है कि compiled code में कोई specific date साफ-साफ न दिखे
  • क्या इस manufacturer ने critical infrastructure को ठप करके Poland को सचमुच hostage नहीं बना लिया? यह अविश्वसनीय रूप से bold crime है, और मुझे ज्यादा भरोसा नहीं कि वे आसानी से बच निकलेंगे

    • यह repair shop नहीं, manufacturer है। Repair shop ने सिर्फ tender जीता था, और supplier ने बदला लेने का फैसला किया
  • दुनिया वाकई छोटी है। HN खोला तो उन trains के बारे में फिल्म जैसी कहानी दिखी जिनमें मैं कई बार सफर कर चुका हूं। मुमकिन है कि मैं सच में उन्हीं रुकी हुई trains में से किसी एक से होकर गुज़रा भी हूं
    खैर, इसका मतलब है कि या तो code review नहीं था, या reviewers ने किसी वजह से इसे accept कर लिया। कौन सा विकल्प ज्यादा डरावना है, यह मुझे ठीक से नहीं पता

    • मतलब कोई third party code review करती है? क्या आम तौर पर ऐसा होता है?
      यह train manufacturer का इरादा था, और साफ लगता है कि manufacturer ने ही code लिखवाया। यह कोई ऐसी स्थिति नहीं लगती जहां hacker ने admin को पता चले बिना चुपके से कुछ डाल दिया हो। जानना चाहूंगा कि कौन सा code review, और कौन करता है
      बाकी comments पढ़कर लगता है कि HN पर top article बदल गया था, और कुछ comments उस article के आधार पर लिखे गए थे जिसमें बहुत कम जानकारी थी। इसलिए comments confusing लग रहे थे
    • वह code शायद ठीक से review किया गया था और काफी serious testing से भी गुज़रा होगा। अतिरिक्त trigger conditions के साथ geofence मौजूद होने से ऐसा अंदाजा लगाया जा सकता है
  • अफसोस की बात है कि Newag trains की quality दूसरी Polish manufacturer Pesa की तुलना में काफी बेहतर है। शायद reliability इतनी ज्यादा थी कि artificial failures बनाने पड़े

  • हैरानी है कि इन malicious conditions को किसने code किया, और किसे पता था। क्या किसी ने भी whistleblowing के बारे में नहीं सोचा?
    संदर्भ के लिए, company के बारे में anonymous employee review page है: https://www.gowork.pl/opinie_czytaj,19587
    यह काफी toxic work environment लगता है

    • Software developer के तौर पर अगर आपको ऐसा काम करने का निर्देश मिले, तो आपको निश्चित रूप से written instruction मांगना चाहिए
  • यह देखना दिलचस्प होगा कि European rail service company Akiem के साथ contract पर इसका क्या असर पड़ेगा। Akiem ने France के लिए services और trains हेतु Newag के साथ 164 million euro का contract किया था
    [1] https://biznes.pap.pl/pl/news/all/info/3509606,newag-inks-eu...