農業機械のセキュリティ

DEF CON 29にて発表された、農業機械関連の脆弱性。農業機械を重要インフラと見なすべき理由とは。

8月上旬に開催された「DEF CON 29」で、異色のプレゼンテーションが行われました。「Sick Codes」のハンドル名を持つオーストラリア人リサーチャーが発見した、農業機械の脆弱性に関するプレゼンテーションです(リンク先は英語)。

大手農業機械メーカーのJohn Deere社とCase IH社に影響を及ぼす脆弱性は、トラクターやコンバインに見つかったのではなく、Webサービスの中に見つかりました。これらのWebサービスを通じて重さ何トンという非常に高額な機器を直接操作することが可能な状況で、そのために特定の危険が生じかねませんでした。

現代の農業機械

今どきの農業になじみのない人からすると、農業機械の値段は天文学的です。プレゼンテーションではトラクターやコンバインが高額である理由に触れられていますが、現代の農業機械の最たる例は、コンピューター化によってかなりの程度まで自動化された機械です。その良い例がJohn Deere 9000シリーズの飼料収穫機です。

このCM動画内ではさまざまなメリットが紹介されていますが、目玉は24リッターのV型12気筒エンジンや6桁の値札ではありません。動画の中では、空間定位システム、自動のピックアップ部、位置センサー、収穫物を受け取るトラックとの同期といった技術面の能力が紹介されています。Sick Codes氏は、遠隔操作機能、問題発生時に技術サポートを直接コンバインに自動接続する機能にも注目し、現代の農業はインターネットに全面的に依存していると大胆にも述べています。

農業機械の脅威モデル

現代の農業機械には、当然ながら最新のテクノロジーが多数搭載されています。GPSや3G/4G/LTEを用いた定番の位置調整システムや通信システムもあれば、農作業中の機械の位置をセンチメートル単位の精度で特定するRTK(リアルタイムキネマティック)もあります。Sick Codes氏が考え出した脅威モデルはITのコンセプトをベースとしており、現実に適用されるとかなりの影響が想定されます。

例えばDoS攻撃です。肥料散布用ソフトウェアの変数をいくつか変更し、散布量を何倍にも増やすことが可能だと仮定しましょう。異常な量の肥料散布によって、その土地を向こう何年、あるいは何十年にもわたって農業に使えなくするようなことが、簡単にできてしまいます。

もっと単純な攻撃も考えられます。コンバインの制御を握って電線を傷めるなどの被害を与える、コンバイン自体をハッキングして収穫作業を妨害し、農家に莫大な損害を与えるなどです。国家規模で見たとき、このような行為は最終的に食の安全を脅かすことになりかねません。ネットワークにつながった農業機械は、まさに重要インフラなのです。

Sick Codes氏は、これらメーカーが講じている保護には改善の余地が大いにあるとしています。それでは、Sick Codes氏の調査チームが発見したことを見ていきましょう。

ユーザー名の総当たり、パスワードのハードコーディングなど

DEF CON 29で紹介されたJohn Deer社のインフラの脆弱性については、Sick Codes氏のWebサイトでも一部説明されています。同氏はJohn Deer社のWebサイトで開発者用のアカウントを作成するところから調査を開始しますが、少し調査の間が空いたうちに、登録したユーザー名を忘れてしまいます。ユーザー名を思い出そうと試みる中で、彼は予想外のことに遭遇しました。文字を入力するたびに、APIがユーザー名検索を行うのです。簡単なチェックの結果、すでにシステム内に存在するユーザー名を総当たりで割り出すことができると判明しました。

ユーザー名の総当たり

ユーザー名の総当たり。出典

このようなシステムの場合、1つのIPアドレスから送信されるリクエストの回数に制限が設けられているのが普通ですが、それがありませんでした。1,000件のクエリを送り(かかった時間は数分程度)、Fortune 1000企業の企業名と一致するユーザー名がないか検索したところ、192件がヒットしました。

次の脆弱性が見つかったのは、顧客が自分の購入した機器の記録を残しておけるようにする内部サービスです。Sick Codes氏の発見によると、このツールにアクセスできる人は、誰でもデータベースに登録されているトラクターやコンバインの情報を確認可能でした。これらデータに対するアクセス権がチェックされていなかったためです。しかも、アクセス可能な情報は、機械の所有者や所在地など、かなり機密性の高い情報です。

DEF CON 29では、Sick Codes氏のWebサイトに記載されていないことも明かされました。例えば、デモ用の機器を管理するサービスにもアクセスすることができ、デモの全履歴と従業員の個人データを閲覧可能でした。さらに、調査チームのメンバーが、管理者パスワードがハードコードされているという脆弱性(英語)をPega Chat Access Groupに発見しました。この脆弱性を通じ、Sick Codes氏はJohn Deere社の顧客アカウントにアクセスするための情報を入手することができました。これが何のアカウントであるか明言はされませんでしたが、また別の内部サービスであるようです。

プレゼンテーションでは、John Deere社の欧州における競合企業であるCase IH社に影響を及ぼす脆弱性についても触れられています。Case IH社に関しては、保護されていないJavaMelodyサーバーにアクセスすることができましたが、そのサーバーは同社の一部サービスを監視するものであったため、詳細なユーザー情報が入手できただけでなく、任意のアカウントの乗っ取りが理論上可能であることが判明しました。

両社への連絡

公平を期すために触れると、Sick Codes氏は、先に述べた脅威と自分が発見した脆弱性との間に直接的なつながりがあるとは述べていません。おそらく、普通の農家を危険にさらすのを防ぐためでしょう。または、そのようなつながりが見つからなかったのかもしれません。それでもSick Codes氏は、発見されたささいなセキュリティ上の欠陥に基づいて両社の安全文化は低いと結論付けており、コンバインの直接的な制御に対する保護のレベルも同程度であろうと見なすことができます。ただし、これは推測の域を出ません。

John Deere社のサービスに見つかった脆弱性は、すべて修正されました。ただし条件付きです。同社には、脆弱性の報告を受け付ける窓口がありませんでした。Sick Codes氏はJohn Deere社のSNS担当者と簡単なやりとりと交わした後、「HackerOne」というサービスのバグ報奨金プログラムを通して脆弱性を報告するように依頼されましたが、そのようなサービスは見つかりませんでした。脆弱性の報告に対して報奨金が支払われるプログラムが最終的には導入されましたが、参加するには機密保持契約書にサインしなければなりませんでした。

ヒント