HN 日本語サマリー

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

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

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

36 pointsby micahflee4 コメント

要約

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

全文翻訳

Flockカメラにはセキュリティ脆弱性とハードコードされた認証情報が多数存在

今朝、DDoSecrets はエキサイティングな新しいデータセットを公開しました。それは、稼働中の Flock ALPR カメラのパーティションのファイルシステムイメージです。404 Media と Wired は、それに関する共同調査を発表しました。私はデータセットをダウンロードし、今、徹底的に没頭しています。

stegan0gram というコレクティブのハッカーがデータを収集しました。「私たちをスパイしている連中の秘密をリバースエンジニアリングして見つけられるのに、なぜ Flock カメラを破壊するだけなのか?」と、ハッカーの一人は 404 Media と Wired にインタビューで語りました。「私たちは現場のハードウェアを解放し、無力化し、カメラと関連するソーラー機器のリバースエンジニアリングを進めました。」

以下は、私がこれまでに発見した秘密のいくつかです。

私は自由時間にデータを処理し、これらのニュースレターを書いています。私の活動を支援したい場合は、有料サポーターになることを検討してください。

有料サポーターになる

このカメラは、廃止されサポートが終了した古いバージョンのAndroidを実行している

Flock カメラは、カスタマイズされたバージョンの Android で動作しています。ファームウェアが抽出された時点でのこの Flock カメラが実行していた特定のビルドは、2025年6月5日のものでした。

比較的新しいビルドであるにもかかわらず、Flock カメラは Android 8.1 を実行していました。このバージョンの Android は2017年にリリースされ、Google による公式サポートは2021年に終了しました(詳細については Android のサポート終了 ページを参照してください)。Google は2021年まで Android 8.1 のセキュリティ修正プログラムを公開していましたが、Android のパッチレベルは2018年6月5日です。このカメラは、過去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 のバージョンとパッチレベルは複数の場所に記載されていますが、最も見つけやすいのは system パーティションです。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 のバージョンは boot パーティションで見つけることができます。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 でバックエンドサービスを実行しています。カメラが新しい認証情報を必要とするとき、それは hpnotiq に対して以下のような API リクエストを行います。

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 キーは system パーティションにあります。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 カメラはウォータートサという都市の N Mayfair Rd にあり、Webster Park のすぐそばにあるようです。

[画像: カメラの場所をズームインした Google マップのスクリーンショット]

Google ストリートビューを使用して、N Mayfair Rd を歩き回って Flock カメラを探しました。GPS はわずかにずれており、実際には通りの西側にあり、公園の駐車場近くにあるようです。

[画像: 公園の駐車場近くの街灯柱にあるソーラーパネルと Flock カメラを示す写真]

そこにありました、Flock カメラのシリアル番号 23091220026、MAC アドレス F4:6A:DD:57:46:FB です!

[画像: Google の監視インフラによって撮影された問題の Flock カメラの写真]

この小さなカメラが、通り過ぎる無実の人々を常に監視して過ごしていたのに、いつか stegan0gram コレクティブのハッカーの手に渡ることになるなんて、誰が想像できたでしょうか?

データ内の発見場所

partitions/53_media.img (18 GB) をダウンロードして展開し、(ほとんど)暗号化されていないファイルシステムをマウントしてから、media/0/media/crashpack/ のログを確認してください。ログファイル(どれでも構いません)を抽出します。その中に、ciroc.2026-*.log のようなファイル名のログがたくさんあります。それらを Location で grep すると、GPS 座標が見つかります。

❯ cat ciroc.2026-01-27.3.log | grep Location
01-28 08:22:31.304 INFO  [Binder:1584_1] QCamera2: Location: 43.10151313, -88.05270186
01-28 08:32:32.240 INFO  [Binder:1584_3] QCamera2: Location: 43.10151313, -88.05270186
--snip--

この報道が、全米の市議会に Flock やその他の ALPR ベンダーとの契約をキャンセルさせ、すべての人々のプライバシーを犠牲にして警察にさらなる監視ツールを与えることをやめさせるきっかけとなることを願っています。