企業に仕掛けられた謎のRaspberry Piを追跡して実行犯を突き止めるまで
2005年に設立されたセキュリティ企業Haschek Solutionsの創設者であるオーストラリア人プログラマーのクリスティアン・ハスチェク氏が、仕事中に発見した謎のRaspberry Piについて、自身のブログにまとめています。
The curious case of the Raspberry Pi in the network closet
https://blog.haschek.at/2019/the-curious-case-of-the-RasPi-in-our-network.html
クリスティアン氏は父親と共にセキュリティサービスを提供するHaschek Solutionsという企業を運営しています。ある日、クライアントのオフィスで働いている父親から、「これは何?」というメッセージと共に、1枚の写真が送られてきます。
この謎のRaspberry Piは、クライアントのネットワーククローゼット内で発見されたもの。クリスティアン氏はRaspberry Piの写真を撮影し、ネットワーククローゼットから外して保管しておくように父親にお願いします。
ネットワーククローゼットに設置されていたRaspberry Piは、具体的には第1世代のRaspberry PiモデルB。これにUSBドングル(左)と容量16GBのSDカード(右)が挿されていました。
発見当初、クリスティアン氏はこのRaspberry Piは「会社の誰かが遊びで設置したもの」と考えていたそうです。そのため、Raspberry Piが設置されていたネットワーククローゼットにアクセスできるすべての人に謎のRaspberry Piに心当たりがあるかを尋ねます。ネットワーククローゼットにアクセスできたのはマネージャー・オフィスの管理人・クリスティアン氏・クリスティアン氏の同僚の4人のみだったそうで、その誰もが「Raspberry Piに心当たりはない」と回答。
そこで、Raspberry Piに挿されていたUSBドングルについてクリスティアン氏はReddit上で知見を求めます。その結果、このUSBドングルがRaspberry Piと同じくらい強力なマイクロプロセッサーのnRF52832-MDKであることが判明。これにはWi-Fi・Bluetooth・RFIDリーダーなどが搭載されているため、「古いRaspberry PiでWi-FiやBluetooth接続するためのものです」とnRF52832-MDKの役割をクリスティアン氏は推測。
続いて、Raspberry Piに挿されていたSDカードに保存されていた画像を分析。SDカードにはいくつかのファイルシステムのフォルダが存在しており、ほとんどがext4で、1つがFAT16でした。
さらにこの中で、「resin」と書かれたデータを発見します。
この「resin」は有料のIoTサービス(記事作成時点ではbalenaに名称を変更済み)で、IoTデバイス用のイメージを作成し、デバイスをデプロイしてサービスとの間で更新およびデータ取得できるようにするというもの。また、resinではデバイスにVPNをインストールし、収集データを安全に転送できるようにすることも可能です。
続いて「resin-boot」と書かれたフォルダで、「config.json」というファイルを発見。
このJSONファイルを検証したところ、resinにデプロイされたアプリケーションが「ロガー(logger)」と呼ばれていることが明らかに。さらに、resinアカウントに紐づけられたものと思われるユーザーID、デバイスがポート443経由でVPNを利用していること、さらに「2018年5月13日に登録されたこと」(具体的に何が登録されたタイミングかは不明)も判明。
JSONファイル内で発見したユーザーIDをGoogleで検索したところ、Raspberry Piが見つかった企業と同じ所在地で同じ名前の人物を発見。この人物は2001年に公開された「才能のある子どたち」という特集記事で取り上げられていた人物で、「この記事中から同人物の名称および住所情報を入手した」「ユーザー名は複数の人が使用する可能性があるため、記事で取り上げられていた人物とは異なる人が利用していたユーザー名である可能性も留意しておきます」とクリスティアン氏は記しています。
SDカード上にはネットワーク上から収集されたであろうデータが保存されているようなことはありませんでしたが、非常に難読化されたNode.jsアプリが見つかります。ただし、このアプリが一体どのような動作をしていたかは「正確に知ることはできなかった」とクリスティアン氏。ただし、Node.jsアプリがUSBドングルへのシリアル接続を介して通信しているらしきことは明らかになっています。なお、クリスティアン氏は「ネットワーククローゼット周辺にあるBluetoothおよびWi-Fi対応端末の動きとプロファイル、Wi-Fiパケットを収集するために利用されたのだろう」と推測しています。
さらに、クリスティアン氏はNode.jsアプリの「LICENSE.md」ファイルを発見。このライセンス情報が記されたファイルの中で、Node.jsアプリの開発元と思われる企業の名前も発見しています。
もう一つの興味深い発見物としてクリスティアン氏が挙げているのが、「/root-overlay/etc/NetworkManager/system-connections/」というパスで発見した「resin-wifi-01」というファイル。このファイルにはデバイスのセットアップに使用されたWi-Fiクレデンシャルが含まれており、「これは明らかに企業のWi-Fiではなかった」とクリスティアン氏は記しています。
そして、このWi-FiクレデンシャルをWiGLEで検索することで、謎のRaspberry Piの持ち主らしき者の住所を特定することに成功。
さらに、DNSログを確認してRaspberry Piが企業のネットワークに最初に接続した正確な日時を特定。次いで、RADIUSログをチェックして当時の社内にどの従業員がいたかを確認。すると、当時社内で非アクティブ化されたはずの社員アカウントがWi-Fiに接続しようとして、エラーメッセージが出ていたことが明らかになります。これについて調査を進めたところ、企業アカウントの管理者が元従業員と取引し、非アクティブ化されたアカウントを利用できるようにしていたことが判明。
この後の処理はクリスティアン氏の業務外だったため同氏は直接関わっていないそうです。ただし、「企業はこの事を大事にしたくなかったため当該人物をクビにして手打ちとした」と記しています。
・関連記事
Raspberry Pi 4の「特定の解像度でWi-Fiが不安定になる」問題を実際に検証してみた - GIGAZINE
NASAの機密データがRaspberry Piを侵入口として盗まれたと判明 - GIGAZINE
無線LANの混み具合を解析してグラフで表示する「Wi-Spy」実機レビュー - GIGAZINE
マルウェアに固有の電磁波を検出して攻撃を防ぐシステムが開発される - GIGAZINE
・関連コンテンツ