サードパーティ整備工場での修理後にロックされるポーランドNEWAGの列車
(social.hackerspace.pl)- ポーランドの NEWAG Impuls EMU 列車がサードパーティ整備工場での整備後に停止する問題について、研究者3人が約1年かけてPLCコードをリバースエンジニアリングした
- メーカーは原因を 整備ミス に帰し、自社での整備を主張していたが、コードには特定条件で偽のエラーにより列車をロックするロジックが含まれていた
- 一部のコントローラーバージョンは GPS座標 でサードパーティ整備工場を識別しようとしており、文書化されていない運転室のキー組み合わせでロックを解除できた
- その後のPLCソフトウェアではキー組み合わせによる解除はなくなったが、ロックロジック は残り、特定のアップデート後にはHMIが著作権侵害の警告まで表示した
- 列車の GSMテレメトリ装置 はロック条件を送信しており、一部の事例ではリモートロックの可能性も示された
NEWAG Impuls EMU PLCコードのリバースエンジニアリング
- q3k、redford、mrtickは約1年にわたり、NEWAG Impuls EMU 列車のPLCコードをリバースエンジニアリングした
- 問題の列車は サードパーティ整備工場 で整備を受けた後、任意の理由でロックされる症状を示していた
- メーカーはサードパーティ整備工場の整備ミスが原因だとして、サードパーティではなくメーカーで整備すべきだと主張した
コードに含まれていたロック条件
- PLCコードには、列車を 偽のエラーコード とともにロックするロジックが含まれていた
- 特定の日付以降にロックが発生する可能性があった
- 一定時間運行していない場合にもロックがかかる可能性があった
- あるコントローラーバージョンには GPS座標 が含まれており、この動作をサードパーティ整備工場に限定するために使われていた
文書化されていない解除方法とその後の変更
- 運転室の操作部で特定の キー組み合わせ を押すと、列車のロックを解除できた
- この解除方法は文書化されていなかった
- より新しいPLCソフトウェアバージョンではキー組み合わせによる解除が削除されたが、ロックロジック はそのまま残っていた
HMI警告とGSMテレメトリ
- NEWAGの特定アップデート後には、運転室の操作部が 著作権侵害 に関する警告メッセージを表示した
- HMIが、ロックがかかるはずだった条件の一部を検知したにもかかわらず、列車が運行を続けている場合にメッセージが表示された
- 列車には GSMテレメトリ装置 が搭載されていた
- この装置はロック条件を送信していた
- 一部の場合には、リモートで列車をロックできるように見えた
1件のコメント
Hacker News の意見
これらの列車は、ポーランドでかなり多くの地域鉄道会社が独占的に使っている。整備等級は P1 から最も複雑な P5 までの5段階で、以前は大手企業だけが P3 以上を担当していたが、数年前から European Union Agency For Railways が市場を開放したことで、より小規模な競合企業がはるかに低い価格で入札を勝ち取り始めた。
SPS Mieczkowski が整備した列車4編成が起動すらしなくなったことから始まり、同社は 50万ユーロの罰金を支払わなければならず、列車は Newag に戻された。同時に、整備に入ってすらいなかったにもかかわらず、ある場所に長く留まりすぎたという理由だけで、別会社の列車も動かなくなった。結局 SPS Mieczkowski が Dragon Sector を雇って調査し、列車を無効化する別個のルーチンが複数見つかった。
この事件はポーランドの Central Anti-Corruption Bureau が調査中だが、Newag に大きな打撃が及ぶかは疑問だ。ポーランドの Office of Rail Transport は、列車ダイヤの小さなミスにも苦情を浴びせ、命令を出していた機関だが、この事件への介入からは手を引いたし、列車購入は入札手続きが非常に厳格なので、鉄道会社が動ける余地もほとんどない。
https://sip.lex.pl/akty-prawne/dzu-dziennik-ustaw/kodeks-kar...
何が起きたのかを立証する証拠が膨大にあるので、逃げ切れる可能性はほとんどない。それでも、ハッキングされたと主張して逃れようとしている。ハッカーが競合他社の整備した列車のファームウェアを書き換えて列車を文鎮化した、という筋書きだが、競合する鉄道路線の GPS 座標が文字どおりハードコードされていた。
ただし Newag がイタリアでの拡大を引き続き望んでいたことを考えると、それらの列車までサボタージュしたとは思えない。もちろん、新規顧客まで燃やしてしまっても構わないと考えていた可能性もある。
コメントの中に、より長い記事と追加の詳細へのリンクが埋もれている。
ポーランド語:
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年代初頭の改革以降、ほぼ各地域が独自の地域鉄道会社を持ち、互いに協力している。1年以上にわたって Newag の列車に不審なことが起きていることは、実質的に誰もが知っていた。複数の会社が所有する列車で故障が相次ぎ、それらは Newag ではなく第三者の整備業者を使っていた。そのため整備業者がハッカーを雇い、リバースエンジニアリングで正確に何が起きているのかを理解するのに時間がかかった。
https://en.wikipedia.org/wiki/Voivodeship
Microsoft がかつて DR-DOS との競争を実質的に台無しにするために使った AARD “crash” を思い出した
AARD コードは Microsoft Windows 3.1 ベータリリースに含まれていたコード片で、Windows が MS-DOS や PC DOS ではなく DR-DOS のような競合互換品の上で実行されているかを判定し、その場合に難解なエラーメッセージを出すようになっていた。この XOR 暗号化、自己書き換え、意図的に難読化された機械語コードは、文書化されていない DOS の構造体や関数をいくつも使っていた
https://en.wikipedia.org/wiki/AARD_code
https://www.geoffchappell.com/notes/windows/archive/aard/drd...
https://news.ycombinator.com/item?id=36042213
良いものを長く享受できなくするのは、結局は人間だ。OS/2 Warp は素晴らしい OS だった
ちなみに DR-DOS は発売時点から袋小路の製品だった。人々や OEM が、グラフィカル OS と、そのグラフィカル OS のブートローダーのように動く DOS という2つの OS を一緒に買うはずがないことは明白だった。スタンドアロンのテキスト専用 16bit DOS 市場が意味のある期間存在するという考えは完全な幻想で、DR-DOS は販売量の面でも重要ではなかった。AARD コードが実際に Windows 3.x の最終版に入っていたとしても、何も変わらなかっただろう
列車を「長く」止めすぎると無効化されるとは、Microsoft もプラットフォームをそのくらい支配したかったのだろう
投稿後に Newag の株価がかなり下がったが、これは Mastodon 発の価格調整の最初の例だろうか?
https://g.co/kgs/WVku4C
2022年11月21日、運行中ですらなかった別の列車編成が動作を拒否するという、かなり笑える状況があった。コンピューターはコンプレッサー故障を報告したが、整備士たちが確認したところコンプレッサーには何の問題もなかった。それでも列車はパンタグラフを上げず、コンピューターコードを解析すると故障を強制的に発生させる条件が見つかった
日が21日以上、月が11月以上、年が2021年以上なら コンプレッサー故障を報告せよ、という具合だった
> 2021-11-21比較を使わなかったことだこのメーカーは重要インフラを麻痺させて、ポーランドを文字どおり 人質に取った ことになるのではないか? 信じがたいほど大胆な犯罪で、このまま逃げ切れるかはあまり確信がない
世界は本当に狭い。HN を開いたら、何度も乗ったことのある列車についての映画のような話が出てきた。実際に止められたその列車のうち1本に乗って通過したことがある可能性もある
いずれにせよ コードレビュー がなかったか、レビュー担当者が何らかの理由で受け入れたということだ。どちらの方が怖いのかはよく分からない
これは列車メーカーが意図し、メーカーがコード作成を指示したことは明らかに見える。ハッカーが管理者にも知られずこっそり入れた状況ではなさそうだ。誰がどんなコードレビューをするというのか気になる
他のコメントを読んでみると、HN のトップ記事が変わっていて、一部のコメントは情報がずっと少なかった記事を前提に書かれていたようだ。だからコメントが混乱していたらしい
残念ながら Newag の列車は、別のポーランドメーカーである Pesa より品質がかなり良い方だ。信頼性が高すぎて、人為的な故障を作る必要があったようだ
誰がこれらの悪意ある条件をコーディングし、誰が知っていたのか気になる。内部告発を考えた人は誰もいなかったのだろうか?
参考までに、同社に関する匿名の従業員評価ページがある: https://www.gowork.pl/opinie_czytaj,19587
かなり 有害な職場環境 に見える
この状況が欧州の鉄道サービス会社 Akiem との契約にどんな影響を与えるのか興味深い。Akiem はフランス向けサービスと列車のために Newag と1億6400万ユーロの契約を結んでいる
[1] https://biznes.pap.pl/pl/news/all/info/3509606,newag-inks-eu...