公開情報からの技術的な事実調査
相手のシステムにログインしたり設定を変えたりせず、公開されている情報の通常の閲覧と照合だけで、何をどこまで確認できるのか。当社が紛争や交渉のための調査で使っている手法と、その限界を説明します。取得の方法と範囲は記録し、報告書に明記します。
調べられること
- Webサイトの過去の状態と、構成や作り方が変わった時期
- サーバーやドメインの移転の時期と、どのホスティングで動いているか(共用か専用か)
- 制作に使われた仕組み(CMS、テーマ、プラグイン、ライブラリ)と、それが独自制作か他サイトでも使われている既製品か
- ページ数、機能、データの構造、画像や文書の点数
- 公開日時や更新時刻として記録されている値と、その並び
- 料金表や相場など、費用の根拠になる公開情報とその保全
手法と、それぞれの限界
公開アーカイブの保存記録
Wayback MachineとCommon Crawlの索引から、対象サイトの保存日時の一覧を取り、再生用の書き換えが入らない原本の形でページ・画像・CSS・JavaScriptを取得します。保存されている割合、内部リンクの形式の変化、消失や改修の時期を、保存記録の範囲で示します。
限界として、保存は断続的で、保存記録は保存された日時の状態です。保存のない期間の変化や、消失の原因は分かりません。
DNSと証明書の履歴
公開されているDNSの履歴と、証明書透明性ログ(crt.sh)に記録されたSSL証明書の発行履歴を確認し、サーバーの移転や証明書の切り替えの時期の手掛かりとして照合します。
限界として、DNS履歴の観測日は飛び飛びのため、切り替えの時期は幅をもって示します。証明書の発行日は稼働開始日と同じとは限りません。
サーバーとホスティングの特定
インターネット全体を定期的に観測している公開の索引(Shodan)から、対象サイトのIPアドレスが属する事業者や回線、応答しているサーバーソフトの名称、証明書の情報、同じIPで公開されている他のホスト名を確認します。どのホスティングで動いているか、共用サーバーか専用か、いつ構成が変わったかの手掛かりとして、DNS履歴や証明書の記録と突き合わせます。索引の提供元が観測した結果を読むだけで、当社から対象のサーバーを走査することはありません。
限界として、CDNやWAFの背後にある本体のサーバーは見えません。観測日は飛び飛びで、共用IPでは他社の情報が混ざり、ソフトの名称や版の表示は設定で変えられます。観測された構成を記録するだけで、脆弱性の有無の評価は行いません。
HTTPの応答とヘッダ
ファイルの最終更新時刻(Last-Modified)、応答コード、公開されているソフトウェアの説明ファイルの有無を確認し、本体・テーマ・プラグインの構成と、サーバーに配置された時期の手掛かりとして照合します。
限界として、更新時刻はサーバーが示す値で、ファイルの転送や更新で変わるため、配置日時を確定するものではありません。説明ファイルの有無だけでは、そのソフトウェアが稼働しているかまでは確定できません。
CMSの公開APIとサイトマップ
WordPressなどのCMSが標準で公開している情報(公開日時として設定された値、更新日時の値、投稿者として設定されているアカウントの番号、投稿ID、テンプレートの指定)とサイトマップから、ページの構成と登録の経緯の手掛かりを確認します。
限界として、日時は設定値で後から変更できます。投稿IDの並びや日時の間隔との整合は技術的な推測として記載し、実際の作業日時や作業者を特定するものではありません。
HTMLとスタイルの解析
テーマ資産やページビルダーの痕跡、リンクの形式、画像参照の集計と種類の分類、CSSやJavaScriptの由来の区分から、制作方法と、技術的に復元・再構成できる可能性のある範囲を整理します。実際に再利用するには、別途、権利や許諾の確認が必要です。画像が保存されていない場合は、ファイル名・掲載場所・代替テキストの規則で暫定的に分類します。
限界として、名前による分類には誤りが含まれます。保存されている分を目視で点検し、誤りの傾向を報告書に示します。
ソースコードの横断検索
ソースコード検索エンジン(PublicWWW)で、対象サイトのHTML・CSS・JavaScriptに含まれる特徴的な断片(テーマのディレクトリ名、独自のクラス名、解析タグやウィジェットのID、ライブラリの版)を、索引されている他のサイトから検索します。テーマやテンプレートが対象サイトだけの独自制作か、他のサイトでも使われている既製品や制作会社の共通テンプレートかを確かめる手掛かりになり、同じ管理用IDを持つサイトの洗い出しにも使います。
限界として、索引は公開ページの一部で、アクセスの少ないサイトは含まれないことがあります。見つからないことは独自制作の証明にならず、同じIDを持つことも管理の共通性を示す技術的な推測として記載します。
公開価格の収集と保全
費用の根拠にする料金表や相場の解説は、事業者名・URL・取得日・税表記を一覧にし、ページを取得日時入りのHTMLとPDFで保存して、公開アーカイブにも保存を依頼します。
限界として、公開価格は「〇〇円から」という開始価格で、実際の見積額とは一致しません。報告書では下限側の目安として扱います。
閲覧の自動記録と保全
調査中にブラウザで閲覧したページは、調査記録ツール(Hunchly)が、URL・取得日時・SHA-256ハッシュ付きのページ一式(MHTML)として自動で保存します。手作業の保存漏れや、都合のよい部分だけを残す余地をなくすためです。スクリプトで取得したファイルもSHA-256を一覧にし、同じ方法で再取得して変化の有無を突き合わせます。そのうえで、調査データの一式と提出用の検証資料に第三者のタイムスタンプ(RFC 3161)を付けます。積算はCSVで添付し、同じ数字を再計算できるようにします。
限界として、記録ツールのハッシュと日時は当社の環境で記録された値なので、時刻の裏づけは第三者のタイムスタンプで補います。タイムスタンプは、記録された時刻以前にそのデータが存在したことを示すもので、取得日時や過去の公開状態を遡って証明するものではありません。
検算と整合性の確認
算術、転記、出典との一致、論理の飛躍は、作成者以外の手段でも確認してから納品します。報告書には、確認した事実、技術的な推測、積算上の仮定を分けて書きます。
限界として、確認できなかった事項は「確認できなかった」と書き、金額を無理に示しません。
行わないこと
- 対象のサイトやサーバーへのログイン、パスワードの推測、設定の変更
- 脆弱性スキャンや、通常の閲覧を超える負荷をかける取得
- 相手方や関係者への連絡、問い合わせ、なりすまし
- 非公開の情報の取得や、第三者から提供を受けたデータの無断利用
- 法的な評価や判断(損害の有無や金額、責任の所在、負担の範囲)
認証やアクセス制御の回避、設定の変更は行わず、公開情報の通常の閲覧と照合に限定します。取得の方法と範囲は記録し、報告書に明記します。
調査の例
手法を説明するための架空の例です。特定の案件を示すものではありません。
サイトの作り方が変わった時期を、保存記録の時点比較で絞り込む
公開アーカイブの同じURLの記録を時点ごとに比べ、内部リンクの形式が変わった期間を、前後の保存日で幅をもって示します。アーカイブの再生用の書き換えによる見かけの違いでないことは、同じ記録の原本の形で確認します。そのうえで、CMSの動的な配信から静的なファイルの設置に変わった可能性という読みと、記録だけでは確定できない理由を分けて書きます。
一括登録の可能性を示し、作業量は判断しない
公開APIの公開日時として設定された値が一定の間隔で並び、一括登録用の仕組みの痕跡がある場合、「一括処理と整合する」という技術的な推測として記載します。データを整える作業がどれだけあったかは記録から判断できないため、確認すべき論点と質問の文例を添えます。
テーマが独自制作か既製品の流用かを、ソースコード検索で確かめる
請求にデザインやテーマ制作の費用が含まれる場合、対象サイトのテーマのディレクトリ名や特徴的なクラス名をソースコード検索で調べ、同じ断片を持つ無関係なサイトがあれば、既製のテーマや共通テンプレートをもとにした可能性として、見つかったサイトと一致した箇所を記録します。見つからない場合は「索引の範囲では見つからなかった」と書き、独自制作の証明とはしません。
サーバー移転の時期を複数の記録で絞り込む
DNSの履歴で接続先が変わった観測日と、証明書の発行記録を照合し、サーバー移転の可能性と時期の手掛かりを整理します。接続先の変化はCDNの設定変更などでも起こるため、記録だけで移転と区別できない場合はその旨を書きます。関連する公開日や文書の日付との前後関係を整理し、移転を誰が担当したかは記録から分からないため確認事項として挙げます。
道具とサービスの解説
上の手法で使う道具とサービスが、それぞれどのようなもので、当社が何に使っているかをまとめました。いずれも公開情報の閲覧と照合の範囲で使い、取得した方法と日時は報告書に記録します。
過去の状態を調べる
Wayback Machine
米国の非営利団体Internet Archiveが運営するWebページの保存サービスです。1996年から世界中のページを断続的に保存しており、URLと日時を指定して当時の内容を閲覧できます。保存日時の一覧を取り出す索引(CDX)と、再生用の書き換えを除いた原本の取得にも対応しています。
当社では、消失したサイトの当時の構成・ページ数・画像の有無や、内部リンクの形式が変わった時期を調べるのに使います。料金表などの出典ページの保存依頼にも使います。
Common Crawl
非営利団体がWeb全体を定期的に収集し、無償で公開している大規模なデータセットです。収集回ごとの索引から、URLが収集されたかどうかと、その時点の内容を取り出せます。
Wayback Machineとは別系統の保存なので、片方にない記録を補うのに使います。同じURLを両方で突き合わせ、アーカイブの違いによる見かけの差を除くのにも使います。
サーバー・ドメイン・証明書を調べる
crt.sh
証明書透明性(Certificate Transparency)ログの検索サービスです。SSL/TLS証明書は発行時に公開ログへ記録される仕組みになっており、ドメイン名から、いつどの認証局が証明書を発行したかを一覧できます。
当社では、サイトの稼働開始やサーバー移転・設定変更の時期の手掛かりと、サブドメインの存在確認に使います。発行日は稼働開始日と同じとは限らない前提で読みます。
DNS履歴とWHOIS
ドメインが過去にどのIPアドレスに向いていたかの観測記録を提供する公開サービス(ViewDNS.infoなど)と、ドメインの登録日・更新日・登録事業者を照会する仕組み(WHOIS、RDAP)です。
当社では、サーバーの引っ越しの時期を観測日の幅で絞り込むことと、ドメインがいつから使われているかの確認に使います。
Shodan
インターネットに接続された機器やサーバーを定期的に観測し、その応答を索引化している検索サービスです。IPアドレスの所属事業者、応答しているサーバーソフト、証明書、同じIPで公開されている他のホスト名と、観測日の履歴を確認できます。
当社では、どのホスティングで動いているか、共用か専用か、構成が変わった時期の手掛かりに使います。対象を当社から走査するのではなく、提供元が観測した結果を読むだけで、脆弱性の評価はしません。
作り方と中身を調べる
CMSの公開API
WordPressなどのCMSが標準で備えている、投稿やページの情報を機械可読な形で返す公開の窓口です(WordPressではREST API)。公開日時として設定された値、更新日時、投稿ID、テンプレートの指定、投稿者として設定されたアカウントの番号などが取れます。
当社では、ページの構成と登録の経緯の手掛かりに使います。日時は後から変更できる設定値なので、実際の作業日時と同一視せず、間隔や並びとの整合を技術的な推測として記載します。
PublicWWW
Webページのソースコード(HTML・CSS・JavaScript・HTTPヘッダ)を索引化した検索エンジンです。テーマのディレクトリ名、独自のクラス名、解析タグのIDといった断片を、索引されている他のサイトから横断検索できます。
当社では、テーマが独自制作か既製品や共通テンプレートの流用か、同じ管理用IDを持つサイトがあるかを確かめる手掛かりに使います。見つからないことは独自制作の証明にはしません。
記録を保全し、検証できるようにする
Hunchly
調査のために作られたブラウザ拡張です。調査中に閲覧したページを、URL・取得日時・SHA-256ハッシュ付きのページ一式(MHTML)として自動で保存し、タグ付けして整理し、報告用に書き出せます。
当社では、調査中の閲覧を漏れなく記録するために使います。手作業の保存漏れや、都合のよい部分だけを残す余地をなくし、必要に応じて閲覧の記録を検証資料に含めます。
SHA-256とタイムスタンプ(RFC 3161)
SHA-256は、ファイルの内容から算出する固定長の値(ハッシュ)で、内容が1文字でも変わると値が変わるため、改変の有無の確認に使われます。タイムスタンプは、そのハッシュに第三者のタイムスタンプ局が時刻を付けて署名したもので、その時刻にそのデータが存在したことを後から検証できます。
当社では、取得したファイルの一覧と検証資料の一式にタイムスタンプを付け、OpenSSLで検証する手順と必要な証明書を同梱します。受け取った側が、当社に頼らず自分で確認できるようにするためです。
自作のスクリプト
取得・再取得・突き合わせ・集計を、同じ手順で繰り返すための小さなプログラムです。
当社では、画像や文書の点数の集計、HTMLの正規化比較、保存記録の時点比較に使います。手順と集計方法は検証資料に記載し、同じ結果を再現できるようにします。
報告書での書き方
確認した事実、技術的な推測、費用を出すために置いた仮定を分けて書き、確認できなかった範囲と、前提が変わった場合の影響を明記します。金額は条件付きの幅で示し、一つの数字に見せません。相手方や裁判所が読む可能性を前提に、依頼者の内部事情は載せません。報告書の位置づけや費用は弁護士・士業の方へをご覧ください。