Xalgorix Cloud
Autonomous AI security testing for developers and security teams: find vulnerabilities, prove each with a working exploit, and ship verified fixes with zero infrastructure setup.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗その投稿、組み合わせると、どこまで分かる?
「みーつけた」は、Blueskyの自分の投稿を横断し、写真や文章の手がかりから、どのような生活情報が推定されうるかを確かめるWebアプリです。
推定結果と根拠を確認し、投稿を仮に取り除いた場合の変化を比較できます。その結果を見て、本人が投稿を削除するかを判断できます。
何気ないSNS投稿を組み合わせると、どこまで個人情報が推測されるのか。その根拠を可視化し、投稿を見直した場合の変化まで体験できる。
| 1. 問題提起 | 2. 診断 | 3. 根拠の可視化 | 4. 仮に外して比べる | 5. 対策 |
|---|---|---|---|---|
| 1件ずつは無害な投稿でも、組み合わせると生活が見える | 本人の投稿を横断して、写真と本文から推定する | 推定ごとに、使われた投稿と手がかりへ戻れる | 「この投稿がなかったら」を消さずに試算する | 本人が確認した投稿だけを削除し、再診断する |
Award Day版のポイント(詳細はKaizen Sprintでの進化)
/demo)を追加しました。体験デモはモデルにもBlueskyにも接続しません。実モードの環境構築と診断手順は環境構築の手順、APIとイベントの詳細は現行 API・SSE 契約を参照してください。
住所や本名を直接投稿していなくても、写真に写った駅名や店名、何気なく書いた生活上の出来事が、別の投稿と結び付くことで個人情報の手がかりになることがあります。
自分の投稿を一件ずつ覚えていても、過去の履歴をまとめて読み、どの情報がどう結び付くかを確認するのは簡単ではありません。また、危険だと分かっても、どの投稿を見直せばよいか判断できなければ、具体的な対策にはつながりません。
そこで、「投稿の組み合わせから何が分かるか」と「どの投稿を見直すと推定が崩れるか」を、本人が確かめられる仕組みを作りました。
Hack Day前は「投稿前の写真1枚を塗って隠す」案でしたが、1日目に、写真と文章を含む投稿履歴全体を振り返る現在の形へ転換しました。
利用者が自分のBlueskyアカウントにログインすると、本人の投稿を取得し、写真と本文から手がかりを抽出します。推理エンジンは、手がかりを公開データや知識表と照合し、投稿をまたいで組み合わせます。
現在はR1〜R12のルールを実装し、居住エリア、利用駅・路線、通学先、名前、年齢・生年月日、仕事や生活パターンなどに関する推定を行います。結果には根拠となる手がかりを結び付け、元の投稿を確認できるようにしています。
削除候補を選ぶと、実際に消す前に、その投稿を仮に除いた結果を確認できます。Blueskyからの削除は、本人が投稿を選び、確認ダイアログで確定した場合だけ実行します。削除後は、残った投稿で診断し直せます。
写真と本文を一件ずつ独立に判定するのではなく、投稿をまたいで手がかりを照合します。
例えば、指定ごみ袋の容量・価格から得られる地域の候補と、別の投稿にある距離の情報を組み合わせて候補を絞ります。単独では断片的な情報が、どのように結論につながるかを示します。
「何が見えたか・何が書かれていたか」という観測と、そこから導いた推理を分けています。
結論には根拠の手がかりを保持するため、利用者は推定の理由を確認できます。実情と異なる推定が出た場合も、読み取りの誤りや推論の飛躍を確かめる材料になります。
削除候補を仮に取り除き、残った手がかりで推理し直します。履歴全体を消すのではなく、どの投稿を見直すと対象の推定が成立しなくなるかを確認できます。
候補は最大3投稿まで提示します。実削除は本人の確認後に限り、モデルが自動で投稿を削除することはありません。
以下は、診断体験の流れを示す説明図です。画面キャプチャではなく、構成を説明するSVG図です。
自分の投稿履歴から、どのような情報が推定されうるかを確認できます。
日常の写真や何気ない文章をまとめて振り返り、個々の投稿では気づきにくい情報のつながりを可視化します。
推定につながった投稿を把握し、具体的な対策を選べます。
結論と根拠の対応、投稿を仮に除いた場合の変化を確認し、必要な記録をできるだけ残しながら、どの投稿を見直すかを判断できます。
今後の情報発信を考える材料になります。
実際にどの手がかりが結び付いたかを見ることで、次に写真を載せるときに何を隠すか、文章のどこまでを具体的に書くかを、自分で考えるきっかけを作ります。
今回目指した「投稿を横断して推定し、根拠を確認し、対策前後を比較する」という一連の体験を実装できました。今後は実際の利用を通じて、推定の妥当性と操作の分かりやすさを磨いていきます。また、Blueskyに加え、XやInstagramなど主要SNSへの対応も検討しています。より多くの人が、普段使っているSNSの投稿から個人情報の露出に気づき、対策を選べるサービスへ広げていきます。
さらに、推定された個人情報が現実世界でどのように悪用されうるか、具体的なシナリオを提示する機能を検討しています。例えば、生活圏や定期的な外出の情報が、待ち伏せや不在時間を狙った被害につながる可能性を、自分の診断結果と結び付けて示します。ユーザーが情報の露出を「自分ごと」として捉え、対策の必要性を強く感じられる体験を目指します。
Award Dayまでに、ThreadsとXについては本人の投稿を共通形式に変換して診断する経路をPoCとして試しました(Kaizen Sprintでの進化)。一般公開には、各社のOAuth審査・API規約上の用途確認・運用試験が残っています。
組み合わせの過程を説明できること。 手がかりの抽出と推理を分離し、結論は明示的なルールで組み立てます。結果だけでなく、どの投稿のどの情報が使われたかを確認できるようにしました。
対策の前後を同じ条件で比較できること。 投稿を仮に外して比べるときは、抽出済みの手がかりから対象投稿の分を取り除き、同じルールを再実行します。候補選定と再計算には言語モデルを使いません。
投稿の事情に合わない推定を抑えること。 同じ日にまとめて投稿された履歴では、投稿時刻が生活のリズムを表すとは限らないため、時刻を使う推理を抑制します。バーコードも画像処理で読み取り、モデルが推測した中身を住所の区画の根拠にしないようにしています。
本人が情報の扱いを決められること。 診断対象はログインした本人の投稿に限定します。削除は本人の選択・確認後にだけ実行し、モデルには操作権限を渡しません。
解析するデータの扱いを限定すること。 写真・本文のモデル解析にはチーム管理下のサーバーを使い、第三者のAIサービスの推論APIには送りません。投稿と手がかりはAPIのセッションメモリに一時保持し、ログアウト・期限切れ・次の診断開始時に破棄します。
Hack Day後は、「実際の利用者が安心してログインし、診断から対策まで終えられること」を目標に改善しました。ここでは、実機で確かめたこととPoC(試作)段階のことを分けて書いています。
Hack Day版はApp Passwordでのログインでしたが、Blueskyの公式AT Protocol OAuth SDK(@atproto/oauth-client-node)によるログインを追加しました(PR #126〜#130)。
AUTH_MODE=oauthでは、パスワード入力欄とパスワード用APIを無効にします。atproto repo:app.bsky.feed.post?action=delete)だけです。投稿の作成や編集の権限は求めません。PKCE・PAR・DPoP・トークン更新はSDKに任せています。infra/terraform/)。AWS上での試験で見つかった、Cookieが消える不具合(#128)、OAuthセッションで診断を開始できない不具合(#129)、内部の削除経路がビルドされない不具合(#130)を修正しました。Blueskyでは、次の一連の流れを実アカウントで動かしています。
本人の投稿を取得 → 画像・本文から手がかりを抽出 → 投稿を横断して推論 → 根拠を表示
→ 投稿を仮に外して再計算 → 本人が確認した投稿だけを実削除 → 残った投稿で再診断
削除は、利用者が投稿を選び、確認ダイアログで確定した場合だけ実行します。APIは、削除対象が本人のアカウントの投稿で、かつ直前に診断した投稿であることを確かめてから削除します。
結果の画面では、次のように推定の理由と対策の効果を確かめられます(#152〜#154・#160)。
ログインなしの体験デモ(/demo、#156)。 トップの「ログインせずに、架空のアカウントで試す」から開けます。リポジトリにある架空アカウントの投稿と手がかり(demo_observations.json)を同じ推理にかけ、推定・根拠と、削除候補を「消したらどうなる?」で試せます。モデル・Bluesky・セッションには接続せず、削除の操作もありません。画面の一番上に「架空のアカウントです」と常に表示します。
Blueskyから投稿を削除しても、第三者が保存したスクリーンショット、引用、すでに他のサービスに複製されたデータまで消えるわけではありません。「みーつけた」が示すのは、今後この投稿から推定される範囲を減らせるかどうかです。
診断の中心(手がかりの抽出・推論・仮除外)は、共通の投稿データ構造(Post)を入力にしています。そのため、SNSごとに「認証して本人の投稿を取得し、Postに変換する部分」を用意すれば、同じ推論エンジンを使えます。
This is the beginning of the README. Read the rest at the original. Read the full README ↗