PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

もう“手作業で消す”時代は終わる? 個人情報をデータブローカーから自動で消すGitHubツールが面白い

キーポイント

そもそもデータブローカーって何?

まず前提として、​データブローカーは、私たちの名前・住所・電話番号・年齢・家族構成みたいな個人情報を集めて、検索しやすい形で売ったり公開したりする事業者のことです。
いわゆる people-search site は、「名前を入れると住所候補や家族情報が出てくる」あの手のサイトですね。

便利そうに見えて、実際にはかなり気持ち悪い面があります。
しかも、いったん情報が載ると勝手に再収集されることも多いので、1回消して終わりではない。ここが本当に厄介です。

このリポジトリは、その「また載る」「消すのが面倒」「サイトごとに手順が違う」という面倒さを、できるだけ自動化しようというプロジェクトです。

この記事の主役: auto-identity-remove とは

GitHub の stephenlthorn/auto-identity-remove は、
複数のデータブローカーサイトに対して、オプトアウト(掲載停止・削除)申請を自動で行うツールです。

README によると、以下のような特徴があります。

要するに、
「人間が1個ずつフォームを埋める」仕事を、かなりの部分まで Playwright などの自動操作でやる仕組みです。

何をしてくれるのか

README に書かれている流れを、ざっくり人間向けに言い換えるとこうです。

  1. 各データブローカーサイトで、自分の名前と州などを使って検索
  2. 自分の掲載ページを探す
  3. オプトアウトフォームを自動入力して送信
  4. CAPTCHA があれば CapSolver で突破
  5. 90日以内に削除済みなら再申請をスキップ
  6. 結果をまとめて通知
  7. どうしても自動化できないサイトは手動で対応

この「手動だけにしない」のがポイントだと思います。
個人情報の削除って、全部自動にはなかなかできない。でも、毎回ゼロから人間がやるのもしんどい。
その中間をちゃんと狙っているのが、このツールの賢いところです。

セットアップはどうするの?

README では、使い方がかなり丁寧に説明されています。

必要なもの

ざっくり手順

git clone https://github.com/stephenlthorn/auto-identity-remove.git
cd auto-identity-remove
npm install
node setup.js
./run.sh

setup.js を実行すると、対話形式で以下を設定します。

ここで印象的なのは、​設定項目がわりと現実的なことです。
つまり、この手のサイトは「名前だけ」では済まず、電話番号や過去の住所、別名まで必要になることがある。
プライバシー保護のために、むしろかなり多めの個人情報を入力しなきゃいけないのが、なんとも皮肉です。

CAPTCHAにも対応

CAPTCHA は、画像選択や「私はロボットではありません」でおなじみの、​自動操作を防ぐ仕組みです。
普通の自動化ツールはここで止まりがちですが、このリポジトリは CapSolver を使って突破できます。

README では、CapSolver は

と案内されています。

ただし、CapSolver を使わない場合でも完全に詰むわけではなく、
CAPTCHA付きサイトは手動用リストに回してブラウザで開くようです。
この「完全自動にこだわりすぎず、現実的に逃がす」設計はかなり好印象です。

状態管理が地味に重要

個人的に一番いいなと思ったのは、state.json を使った状態管理です。

このツールは、前回うまく削除できたサイトを覚えておき、
90日間は再チェックを控える仕組みを持っています。

これがないと、

という、かなりストレスのある状態になります。
自動化ツールは「動く」だけでは不十分で、​賢くサボることも大事なんですよね。ここは実に実用的です。

でも「申請した」だけで安心はできない

README には大事な注意書きがあります。

Submitted ≠ confirmed deleted

つまり、​フォームが送れたことと、実際に削除されたことは別です。
これはかなり重要です。

よくある流れとしては、

というケースがあります。
そのため、このツールは結果を次のように分類しています。

image_0002.svg

この分類は、単なるログ以上の意味があります。
「何が自動化できて、何が人間の確認を必要とするのか」が見えるからです。
プライバシー削除作業って、なんとなく全部同じに見えて、実はサイトごとに全然違う。そこを可視化しているのが良いですね。

500+ サイト対応という数字の意味

README では、​500+ の data broker に対応するとあります。
ただし、ここは少し読み解きが必要です。

大きく分けると、

という構成です。

ここでいう ヒューリスティック は、ざっくり言えば
「厳密ではないけど、うまくいきやすい経験則ベースのやり方」です。

つまり、

ということです。
個人的には、これはすごく現実的だと思います。
500サイト全部を完全に手作業で保守するのは無理ですし、逆に「全部完全自動です」と言い切るのも怪しい。
なので、このツールはかなり正直です。​万能ではないが、かなり戦える、という立ち位置ですね。

Docker でも動く

README では Docker での実行方法も案内されています。
これは地味にありがたいです。

Docker は、​アプリを小さな箱に入れて、環境差を減らす仕組みです。
ローカル環境を汚しにくいし、サーバーや別OSでも動かしやすい。

特にこのツールはブラウザ自動操作を伴うので、
「自分のPCに依存しすぎない形で回したい」という人には Docker が向いています。

通知があるのが親切

結果は iMessage に送れるほか、README では webhook 通知にも対応しています。

Webhook は、​外部サービスに「終わったよ」とHTTPで知らせる仕組みです。
Slack、Discord、ntfy.sh などに投げられるようです。

この手の自動化は、結局「動いたかどうか」を見失うと意味がないので、
通知まで一体化しているのはかなり実用的です。
自動で回して、終わったら知らせてもらう。これがあると「気が向いたらやる」から「仕組みで回る」に変わります。

このツールの面白さ

率直に言うと、これはかなり面白いです。
理由は、ただのスクレイピングツールでも、自動化おもちゃでもなく、​個人のプライバシーを守るための運用ツールになっているからです。

特に面白いのは次の3点です。

1. “消す”を継続運用にしている

プライバシー削除は1回で終わらない。
このツールはそこを理解していて、​月次ジョブとして回す設計になっています。

2. 自動化と手動の境界が誠実

何でもかんでも自動とは言わず、
無理なものは manual needed に回す。
この潔さは信頼感があります。

3. プライバシー保護なのに、運用のために状態を持つ

config.jsonstate.json は gitignore されていて、個人情報をリポジトリに残さない設計です。
当たり前に見えて、こういうところをちゃんとやるのは大事です。

注意したい点

もちろん、良いことばかりではありません。

つまり、これは「入れたら全自動で安心」という魔法の箱ではありません。
どちらかというと、​面倒な確認作業をかなり減らしてくれる強力な補助輪です。

個人的には、この距離感がちょうどいいと思います。
過信しない。でも使えばかなり楽になる。こういうツールは長く使いやすいです。

まとめ

この GitHub リポジトリ auto-identity-remove は、
データブローカーや people-search site から自分の情報を定期的に削除するための自動化ツールです。

まで揃っていて、かなり完成度が高い印象です。

「個人情報は一度載ると、消すのがこんなに大変なのか」と感じさせる一方で、
「だからこそ自動化が必要なんだ」とも思わされます。
プライバシー保護が“努力”だけでは回らない時代に、こういうツールはかなり意義があるのではないでしょうか。


参考: GitHub - stephenlthorn/auto-identity-remove: Automated data broker opt-out runner — removes your personal info from 30+ people-search sites on a monthly schedule

同じ著者の記事