HN 日本語サマリー

← 一覧へ戻る
セキュリティ

Flockカメラはセキュリティ脆弱性とハードコードされた認証情報に満ちている

Flock cameras are riddled with security vulnerabilities and hardcoded creds (micahflee.com)

36 pointsby micahflee4 コメント

要約

Flockのナンバープレート認識カメラに、長年セキュリティパッチが適用されていない古いAndroid OSとLinuxカーネルが使用されていることが判明しました。さらに、APIキーやAuth0の認証情報がハードコードされており、攻撃者がカメラのバックエンドインフラに不正アクセスできる可能性が指摘されています。

全文翻訳

今朝、DDoSecretsはエキサイティングな新しいデータセットを公開しました。それは、稼働中のFlock ALPRカメラのパーティションのファイルシステムイメージです。404 MediaとWiredは共同で調査記事を発表しました。私はデータセットをダウンロードし、今、完全に夢中になっています。 stegan0gramというコレクティブのハッカーがデータを収集しました。「なぜFlockカメラを破壊するだけでいいのか?私たちはそれをリバースエンジニアリングし、私たちをスパイしている連中の秘密を見つけることができる」と、ハッカーの一人は404 MediaとWiredへのインタビューで語りました。「私たちは現場のハードウェアを解放し、無力化し、カメラと関連するソーラー機器のリバースエンジニアリングを進めました。」 以下は、これまでに発見した秘密のいくつかです。私は自由時間にデータを処理し、これらのニュースレターを書いています。私の活動を支援したい場合は、有料サポーターになることを検討してください。有料サポーターになる このカメラは、時代遅れのサポート終了バージョンのAndroidを実行しています Flockカメラは、Androidの改造バージョンで動作します。ファームウェアが抽出された時点でのFlockカメラが実行していた特定のビルドは2025年6月5日のものでした。比較的最近のビルドであるにもかかわらず、FlockカメラはAndroid 8.1を実行していました。このバージョンのAndroidは2017年にリリースされ、2021年にGoogleからの公式サポートが終了しました(詳細についてはAndroidのサポート終了ページを参照してください)。そして、Googleが2021年までAndroid 8.1のセキュリティ修正プログラムを公開していたにもかかわらず、Androidパッチレベルは2018-06-05です。このカメラは、過去8年間のAndroidセキュリティアップデートが欠落しています。 AndroidはLinuxカーネル上で動作します。このFlockカメラは、2017年にリリースされたLinux 3.18.71を実行していました。3.18シリーズは2019年5月までメンテナンスされており、3.18.140で終了しました。このカメラは、そのバージョンからさえ69リリース不足しています。このカーネルは9年以上古いものです。 このカメラが脆弱である可能性が高く、出荷されているコンポーネントに影響を与える、公に知られている脆弱性がいくつかあります。実際には、これらのハックが機能するかどうかをテストするためにこのFlockカメラを持っているわけではありませんが、私が知っているのは、このFlockカメラのパッチレベルが、長年利用可能なパッチがあるにもかかわらず、これらの脆弱性のすべてよりも古いということです。 CVE-2021-1905 Qualcomm Adreno GPU – use-after-free。Flockカメラ上で実行されるコード(特権のないアプリを含む)は、GPUドライバーを介してカーネルメモリを破損させ、デバイスを完全に制御できます。2021年5月にパッチ適用済み。 CVE-2018-9568("WrongZone")– カーネルソケットタイプ混同。カメラ上で実行されるプログラムは、IPv6経由でカーネルのソケット処理を混同し、root権限を昇格させることができます。2018年12月にパッチ適用済み。(これに関する公開エクスプロイトコードがあります。) 404 MediaとWiredへの声明で、Flockの広報担当者は次のように述べています。 Flockはセキュリティを真剣に受け止めており、セキュリティ研究者が潜在的な脆弱性を直接報告するための公開された脆弱性開示ポリシーを維持しています。私たちはそのプロセスを通じて報告を受けておらず、提供された限定的な情報に基づくと、主張されている内容を評価するには詳細が不十分です。個人が正当な脆弱性を特定した場合、技術的な発見を脆弱性報告プロセスを通じて提出していただき、セキュリティチームがレビューし、適切な措置を講じることを奨励します。 笑。 データ内の発見場所 もし追跡したい場合は、DDoSecretsがこのデータセットをここに公開しています。 Androidのバージョンとパッチレベルは複数の場所に記載されていますが、最も簡単な場所はシステムパーティションです。partitions/24_system.img(1.5 GB)をダウンロードして展開すると、build.propというファイルが見つかり、次の行が含まれています。 ro.build.version.sdk=27 ro.build.version.release=8.1.0 ro.build.version.security_patch=2018-06-05 ro.build.date=Thu Jun 5 20:05:57 UTC 2025 Linuxのバージョンはブートパーティションで見つけることができます。partitions/21_boot.img(32 MB)をダウンロードして展開すると、kernelというファイルにカーネルイメージが見つかります。次のコマンドでLinuxのバージョンを見つけることができます。 ❯ tail -c +16496 kernel | zcat 2>/dev/null | grep -am1 'Linux version' Linux version 3.18.71-perf-gaf770dc (android@e593ce924ef6) (gcc version 4.8 (GCC) ) #1 SMP PREEMPT Thu Jun 5 20:15:45 UTC 2025 Flockのライブ本番インフラへの認証情報 詳細に入る前に、すぐに強調しておきたいことがあります。 許可なく漏洩した認証情報を使用してFlockのサーバーに接続することは違法です。 このFlockカメラのAndroidファームウェアには、20個の個別のFlockアプリが含まれており、そのうち19個はcom.flocksafety.android.common.libというライブラリを共有しています。ライブラリを逆コンパイルすると、CameraSettingsクラスに興味深いメソッドがあります。 public final String getHpnotiqApiKey() { return "HaJ3FgupAm8RrDJW3MHgT9X7Ft27eVaD"; } これはAPIキーで、アプリに直接ハードコードされています。Flockはhpnotiq.flocksafety.comでバックエンドサービスを実行しています。カメラが新しい認証情報を必要とするとき、それは次のようなAPIリクエストをhpnotiqに送信します。 POST https://hpnotiq.flocksafety.com/api/v3/devices/credentials x-api-key: HaJ3FgupAm8RrDJW3MHgT9X7Ft27eVaD macAddress=F46ADD5746FB この特定のFlockカメラのMACアドレスはF4:6A:DD:57:46:FBです。 おそらく、このハードコードされたAPIキーを使用して、MACアドレスに基づいて任意のFlockカメラの認証情報を取得できます。 APIは、Auth0クライアントIDとシークレットを返すようです。Auth0はOktaが所有するID管理会社です。その後、カメラはその認証情報をプレーンテキストで保存します。 ちなみに、これらの認証情報は(正直なところ試していないので確信はありませんが)まだ有効でアクティブである可能性があります。 { "clientId":"CPkOAuOKFwNhPavKO01Htxbn6yIwASro", "clientSecret":"ZRExGjbVjBB1wx04RmsMeWKbpMO5zQxLKNZg25D-1LUKbfQbmByajx-8lyB6LwSV" } これらの認証情報は、https://device-login.flocksafety.com/oauth/tokenに送信して、短命のFlockAuth0Tokenを取得し、このカメラとして認証されたFlockのバックエンドサーバーと対話するために使用できるベアラートークンを発行するために使用できます。 データ内の発見場所 APIキーはシステムパーティションにあります。partitions/24_system.img(1.5 GB)をダウンロードして展開すると、app/の下に19個のFlockアプリが見つかります。flock-sambuca、flock-collins、flock-phone-homeなど、それぞれがAPKを含んでいます。いずれかのアプリを逆コンパイルし、com.flocksafety.android.common.lib内のCameraSettingsを探してください。共有ライブラリは19個すべてのアプリにバンドルされているため、キーはすべてのアプリに含まれています。 flock-sambucaは、認証情報のプロビジョニングに使用するアプリです。そのAuth0ServiceManagerクラスは認証情報リクエストを構築し、hpnotiq.flocksafety.comとdevice-login.flocksafety.comの両方のURLは、そのAPKの文字列リソース(resources/res/values/strings.xml)にあります。 Auth0クライアントIDとシークレットは別のパーティションにあります。partitions/27_persist.img(32 MB)をダウンロードして展開します。ファイルはflock/auth0/auth0_credにあります。これはカメラの/persistパーティションで、暗号化されておらず、工場出荷時リセット後も保持されるように設計されています。 MACアドレスとhpnotiqへの2,264回の呼び出しは、partitions/53_media.img(18 GB)のカメラログから来ています。これらは暗号化されたコンテナ内にありますが、そのキーは同じパーティションのexpand_1fcdafef903c40cab3aff81bec914d01.keyというファイルに保存されています、笑。ロック解除されると、ログはmedia/0/media/crashpack/の下にあるgzip圧縮されたtarballになります。 この特定のカメラはミルウォーキー郊外にあった Flockカメラのログには、カメラのGPS座標が155回含まれており、すべて互いに約100メートル以内の範囲にあります。これは、移動しない受信機としては通常のGPSジッターだと思います。最も頻繁に表示される座標は43.10151313、-88.05270186です。Googleマップでそれを検索すると、ミルウォーキーの北西郊外にたどり着きます。 座標43.10151313、-88.05270186、Googleマップより ミルウォーキー地域に行ったことはありませんが、このFlockカメラはWauwatosaという都市、N Mayfair Rd沿いのWebster Parkのすぐそばにあるようです。 カメラの場所を拡大 Googleストリートビューを使用して、N Mayfair Rdを歩き回ってFlockカメラを探しました。GPSはわずかにずれており、実際には通りの西側にあり、Webster Parkの近くにあります。