Sherlock:ユーザー名を複数サービスで照合するCLIの導入範囲
ソーシャル ネットワーク全体でユーザー名に基づいてソーシャル メディア アカウントを追跡します。
ひと目でわかる
- これは何?
- 与えられたユーザー名を多くのソーシャルネットワークで検索し、結果をテキスト、JSON、CSV、XLSXなどへ保存できるPython製ツールです。
- 誰に向いている?
- Sherlockは、同じユーザー名が複数の公開サービスに存在するかを一覧化する調査用CLIとして検討できます。検索結果はアカウント所有の証明ではなく、サービス側の応答や除外条件に左右されるため、候補の発見と本人確認を分けて扱いたいです。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 1 日前です。
- 何の言語で書かれている?
- 主に Python です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
ユーザー名を横断して候補を探すCLI
sherlock-project/sherlockは、入力したユーザー名を複数のソーシャルネットワークで照合するコマンドラインツールです。READMEのGeneral usageは、ユーザー名を引数として与え、見つかったアカウントを表示または保存する使い方を中心に説明しています。調査の最初に候補を広く拾う道具であり、サービス内の本人性やアカウントの活動状況を確定する仕組みではありません。
同じ名前が見つかることには、偶然の一致、古いページ、なりすまし、サービス側の応答誤判定が含まれます。結果を報告書へ書く場合は、検索日時、ツール版、対象サービス、応答の状態を残し、アカウントの所有者だと断定しない表現にします。公開情報であっても、目的、保存範囲、利用規約、地域の法的条件を確認したい領域です。
インストール方法を環境に合わせて選ぶ
READMEはpipx install sherlock-projectを導入例として示し、pipやuvでも代替できると説明しています。Dockerではdocker run -it --rm sherlock/sherlock、Fedora系ではdnf install sherlock-projectが挙げられています。Community-maintained packagesとしてDebian、Ubuntu、Homebrew、Kali、BlackArch向けの方法も案内されますが、それらはSherlock Projectが直接保守またはサポートするものではないと明記されています。
導入時はOSのパッケージ管理とPyPI、Dockerイメージの出所を記録し、複数の方式を混ぜずに版を固定します。READMEは全ての依存版や互換表を一つにまとめていないため、初回実行前に隔離環境でhelpとversionを確認します。Dockerを選ぶ場合も、ネットワークアクセス、出力ディレクトリのマウント、タイムアウトを最小権限で設定したいです。
出力形式と検索制御を先に決める
sherlock --helpの例には、verbose、出力フォルダー、出力ファイル、CSV、XLSX、対象サイト、プロキシ、応答のダンプ、JSON、タイムアウト、全件表示、見つかったものだけの表示、色の無効化、ブラウズ、local、NSFW、TXT、除外無視といったオプションがあります。結果を端末で読むか、調査記録としてファイルへ保存するかを先に決めると、不要な情報を残しにくくなります。
READMEのGeneral usageには、見つかったアカウントを対応するユーザー名の個別テキストファイルへ保存する説明もあります。保存先とファイル権限を決めずに共有フォルダーへ出力すると、調査対象の情報が広がります。プロキシを使う場合は接続先とログの管理者を確認し、timeoutやsite指定を小さく設定して、サービスへの過剰な要求を避ける設計にします。
検索結果はサービス応答の集合として読む
Sherlockが返す結果は、入力した文字列に対する各サービスの応答を整理したものです。サイトのURL変更、ログイン要求、レート制限、地域制限、ブロック、メンテナンスによって、同じ検索でも結果が変わります。--print-foundだけを使うと一覧は簡潔になりますが、未検出の理由が見えにくくなる場合があります。調査目的に合わせてverboseや応答ダンプを使う範囲を決めます。
結果の再現性を高めるには、Sherlockの版、Pythonまたはコンテナの版、対象ユーザー名、実行日時、プロキシ、timeout、サイト指定、出力形式を保存します。サイト名が変わったときは、過去のファイルと単純比較せず、現在の応答を別の検証手段で照合します。READMEに互換性基準や性能保証はないため、多数サイトを対象にするほど小規模な試行から始めたいです。
プライバシーと調査目的の境界を明文化する
公開サービスを横断検索できることは、誰でも無制限に調査してよいことを意味しません。対象者への通知が必要か、保存する結果に個人情報が含まれるか、アクセス先の規約が自動検索を許すか、保存ファイルを誰が見られるかを確認します。組織で使う場合は、調査依頼の承認、目的外利用の禁止、保持期間、削除手順を記録します。
READMEは認証情報の保存、ログの詳細、個人情報の保護方法を本格的な管理文書としては説明していません。--local、--nsfw、--browseなどのオプションも、環境と目的に応じて扱います。結果にアクセスできた場合でも、本人確認を伴わない候補一覧を公開報告に載せず、必要な情報だけを限定された場所に保存するのが安全です。
MITライセンスと保守状態を別々に評価する
リポジトリのライセンスはMITです。著作権表示と許諾表示を残す条件で利用、複製、変更、配布を検討できますが、ライセンスは検索結果の正しさ、サービスの可用性、法的適合性、サポートを保証しません。プロジェクトのREADMEにはCreditsとして貢献者への謝辞があり、導入入口と代替インストール方法へのリンクもあります。
適するのは、公開情報の候補探索を限定された範囲で行い、検索結果を人が確認できる調査フローを持つ利用者です。自動で人物を断定したい用途、サービス規約を確認できない大規模収集、個人情報を長期保存する運用にはそのまま向きません。版、サイト一覧、timeout、プロキシ、出力権限、削除手順を小さく検証してから、採用範囲を決めたいです。
編集部の結論
Sherlockは、同じユーザー名が複数の公開サービスに存在するかを一覧化する調査用CLIとして検討できます。検索結果はアカウント所有の証明ではなく、サービス側の応答や除外条件に左右されるため、候補の発見と本人確認を分けて扱いたいです。まず隔離環境で対象サイト、タイムアウト、プロキシ、保存ファイルの内容を確認し、個人情報の扱いと利用規約を含めて運用範囲を決めます。
コミュニティノート