フォルクスワーゲンのディーゼルゲート事件、不正の実態

昨年話題になったフォルクスワーゲンの排出量テスト不正問題。IT専門家2人が、不正の具体的な手口を説明しました。

dieselgate-explained-featured

先日ハンブルクで開催されたChaos Communication Congressで、2人のIT専門家、フェリックス・ドンケ(Felix Domke)氏とダニエル・ランゲ(Daniel Lange)氏(BMWの元IT戦略責任者)が、フォルクスワーゲンの二酸化炭素排出量テストでの不正が具体的にどのように行われたのかを語りました。

過去数か月にわたり、ディーゼルゲート事件については数多くの報道記事が発表されてきました。とはいえ、この不正工作がどのような仕組みで、どのような人物が実行したのか説明したものはほとんどありません。ですから、第三者の専門家が真実を解明すべく実施した調査となれば、注目に値します。

dieselgate-32c3-lange-domke

そもそもこの不正工作が起きたのはなぜ?

排出量テストの最大の問題は、テストが常に、NEDC(新欧州ドライビングサイクル)と呼ばれる特定の標準モデルを使用して行われていることです。このモデルでは、アクセルとブレーキをごく短い間隔で切り替えるサイクルを数回と、より高速で切り替え間隔の長いサイクルを1回、テストします。前者は都市部での走行を、後者は高速道路での走行を想定したものです。実生活でこんな風に運転する人はいないでしょうし、これとまったく同じサイクルで運転する人などいるわけがありません。
dieselgate-32c3-nedc

しかし、排出量の測定ではこのモデルが使用されますから、自動車メーカーの技術者は、測定結果を良くするために不正を働くことができます。そのような行為の理由は何でしょうか?答えは単純明快です。実際に製品を改良するよりも遥かに安上がりだからです。企業の業績にとって利益は非常に重要ですから、お金をかけずに何とかなる方法があれば、企業としては当然、そちらを選びたくなるでしょう。

ランゲ氏は次のように述べています。「こうしたテストで不正が行われるのはよくあることです。どうやって排出量の数値を小さくするかというと、たとえば、タイヤの空気圧を、実際に道路で使うレベルよりも3バール上げます。タイヤの底面は、路面に接する部分の面積が非常に小さくなるため、抵抗が小さくなります」
dieselgate-32c2-trickery

「ガソリンに軽いディーゼル油を混ぜ、摩擦を少なくします。助手席側のミラーは、法律で義務付けられているものではないので、取り外します。その分だけ抵抗が減ります。車両の開口部をすべてテープで塞ぎます。車両が風を受けた時、すべてテープで塞がれていれば、スムーズに風をかわすことができます。こうした工作は許容範囲内、あるいはグレーゾーン寸前ですから、どこもこういうことをします。これが排出量テストの実態です」

dieselgate-32c3-nox-emissions

NEDCテストとADACテストでの窒素酸化物排出量

こうした不正工作の結果は、わかりきっています。測定値は、実世界の状況から程遠いものとなります。自動車業界全体が、このことを重々承知しています。おそらくどの自動車メーカーも、フォルクスワーゲンが行っていたのと同じようにソフトウェアに手を加えていることでしょう。実際、15年前にオートバイのソフトウェアで似たような工作が行われていたことがBMWで発覚しました(ドイツ語記事)。
dieselgate-32c2-bmw

しかし、これらの自動車メーカーは、ソフトウェアによる不正をどのように行ったのでしょうか?それを理解するには、自動車の電子システムの仕組みを知る必要があります。

箱…ではなく自動車の中身は?

排気も含め、自動車のエンジンに関わる処理を直接司る電子装置がエンジンコントロールユニット(ECU)です。自動車メーカーはこの装置を自社で開発せず、自動車用電子システム専門のメーカーから調達します。ECUメーカーはそれほど多くなく、ドイツに限って言えばBoschが市場をリードしています。

ECUのファームウェアコードもBoschが開発したものです。このファームウェアは自動車のエンジンおよび車両そのものが正しく動作するのに非常に重要であるため、徹底した検査が行われます。

ランゲ氏の言葉を借りれば、「この装置は、動かなくなるまで徹底的なシミュレーションとテストが実施されます。とても重要なものだからです。たとえばここにある装置は200HPと同程度のものですが、万一操作を誤れば爆発します。とても大きな爆発になります。ですからECUは最も徹底してテストされるソフトウェアなのです」

さらに、自動車メーカーはECUのファームウェアを改変することを禁じられています。その一方で、個々のECUモデルは自動車メーカーのさまざまな車種やエンジンで使用される可能性があります。そこで、多様な車に対応するため、ECUのファームウェアには柔軟性が求められます。柔軟性を確保するため、ECUメーカーは多数の変数を用意して、自動車メーカーが車種やエンジンモデルに固有の要件に合わせてファームウェアを調整できるようにしています。

たとえば、ディーゼルゲート事件で問題になった車で使用されていたECUモデルであるBosch EDC17C46には、こうした変数が20,000個以上も用意されています。仮にこの変数を実際に物理的なモノの形で表したとしたら、世界中で最も巨大で複雑な制御パネルになることでしょう。
dieselgate-32c3-ecu

まとめると、ファームウェアコードの調整は自動車メーカーではなく、自動車メーカーの要請を受けてECUメーカーが行います。こうした改変を行うと大量の記録書類が残りますから、ECUメーカーは自動車メーカーに対し、調整は違法であると通告する可能性が高いでしょう。最終的に自動車メーカーは、前述の変数を利用して必要な調整をあれこれと加える、という決定に落ち着きます。では、こうした調整は具体的にどのように働くのでしょうか?

真実はコードにあり

調査のため、ドンケ氏はeBayで予備のECUを購入し、自身が所有するフォルクスワーゲン「Sharan」(VWのリコール対象)を使ってリバースエンジニアリングを行いました。ECUのチップにあるゼロデイ脆弱性を利用して2MBのファームウェアをフラッシュメモリから取り出し、コードの内容を見てみました。まずよくわかったのは、自動車の電子システムのプロセスがいかに複雑かということです。 dieselgate-32c3-sharan

たとえば、タコメーターのようなごく普通の計器に表示される数値が、エンジンの回転数をそのまま表しているわけではないことがわかりました。タコメーターに表示される数値は、12KBもの高密度コード(どのくらいなのかピンとこないという方のために説明すると、コードの大きさとしてはかなりのものです)で処理される20個以上の信号の影響を受けるのです。

ドンケ氏は次のように述べています。「このように、ほとんどの人に気付かれないまま、多くの不正工作が行われる可能性があることがおわかりいただけると思います。車のスピードメーターに実際の速度が表示されていると信じ込まないことです。表示されるのは、速度に関係のある何かです」
dieselgate-32c3-ecu-2

ファームウェアの排出量制御部分は、それ以上に複雑かつ柔軟な設定が可能になっています。といっても、排出される窒素酸化物を還元する仕組みについての基本的な考え方は、そんなに複雑ではありません。窒素酸化物を除去するため、排ガスに尿素(AdBlue)と呼ばれる物質を追加します。尿素は高温になるとアンモニアに変化し、窒素酸化物と反応して、水と窒素が生成されます。

ただし、尿素を入れすぎると余分なアンモニアが排気に含まれてしまいます。これは人間にとっても車にとっても良くありません。ですから通常は、尿素を多めに入れるよりは、少なめに入れる方が無難です(最適な量の尿素を投入できれば理想的ですが、至難の業です)。あいにく、尿素の投入量が不足していると、排出量テストで高得点を獲得できません。自動車メーカーが不正をせざるを得ない背景には、根本にこうした理由があります。 dieselgate-32c3-adblue

フォルクスワーゲンのケースでは、次のような方法で工作が行われました。尿素の投入機能の動作には2つのモードがあります。1つは尿素の投入量をかなり多くする「通常モード」、もう1つは尿素の投入量を大幅に少なくする「代替モード」です。ドンケ氏の調査によると、VW車の排気システムは、調査時間の75%は「代替モード」で動作しており、残りの時間のほとんどは尿素を一切投入していなかったことが判明しました。
dieselgate-32c3-modes

ファームウェアコードを解析した結果、「通常モード」に切り替わる条件(時折このモードに切り替わっていました)として、エンジンや燃料の温度や外気圧といった単純な条件以外に、ある興味深い条件が含まれていることがわかりました。簡単に言うと、「通常モード」に切り替わるのは、車両の走行距離と時間との関係を示すグラフが、何組かある下限・上限の曲線のうちの1組みに収まった時にオンになっていました。

面白いことに、こうした曲線のうちの1組みは、前述のNEDCを実行する車両の走行距離・時間グラフがちょうど収まるように作られていました。この場合、尿素の投入量は多く、窒素酸化物の排出量は少なくなり、厳格な欧州の要件を十分に満たすものとなりました。そしてこれこそが、VWのソフトウェア工作の基本的な考え方なのです。 dieselgate-32c3-curves

この話からは多くのことを得られますが、中でも印象的なのは、利益に影響するハッキングや工作を行うには、IT分野の経歴を持つ人材が必要だという点です。より大きな文脈の中で考えてみると、今やデジタル技術は重要性を増しており、デジタル技術の活用法を知っている人材は企業にとってこれまで以上に大きな影響力を持つ重要な存在になることでしょう。こうした人材は、システムを欺いて製品の欠陥を隠す手助けをするという面もありますが、その反面、この記事で紹介したリサーチャーがディーゼルゲート事件について行ったように、工作や不正行為を暴くこともできるのです。

ヒント

Windows Downdate攻撃から身を守る方法

Windows Downdateは、最新バージョンのOSを古いバージョンにロールバックさせ、脆弱性が残る状態を復活させ、攻撃者がシステムを容易に侵害できるような状態にする攻撃です。この攻撃のリスクを低減するにはどうしたらよいでしょうか?