paint-brush
デジタル指紋の概要: オンライン追跡の理解、操作、および防御@shad0wpuppet
27,033 測定値
27,033 測定値

デジタル指紋の概要: オンライン追跡の理解、操作、および防御

Konstantin Sakhchinskiy10m2024/01/19
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

デジタル フィンガープリントは、デバイスとブラウザの固有の特性に基づいてユーザーを識別する技術であり、オンライン セキュリティにとって重要です。この記事では、フィンガープリント パラメータ、その操作、および Web シークレット モードでのナビゲーション戦略の概要を説明します。プライバシーを重視したブラウザ、拡張機能、VPN などのツールについて説明します。指紋スプーフィングの動機、ユーザーの指紋の収集、ボット検出システムの役割が調査されます。追加の Web サイト検証手順の例を概説し、プライバシーとセキュリティのためのスプーフィングの重要性を強調します。この記事では、オンラインの信頼性と信頼性を高めるためには、単に指紋を隠すよりも、固有の正当なユーザーを装ってなりすましを行う方が望ましいと結論付けています。

People Mentioned

Mention Thumbnail
featured image - デジタル指紋の概要: オンライン追跡の理解、操作、および防御
Konstantin Sakhchinskiy HackerNoon profile picture
0-item

概要

デジタル フィンガープリンティングは、デバイスやブラウザの固有の特性に基づいて、さまざまな Web サイトでユーザーを識別するために使用される技術です。これらの特性 - 指紋パラメータには、さまざまなソフトウェア、ハードウェア (CPU、RAM、GPU、メディアデバイス - カメラ、マイク、スピーカー)、場所、タイムゾーン、IP、画面サイズ/解像度、ブラウザ/OS 言語、ネットワーク、インターネットプロバイダーが含まれる場合があります。 -関連およびその他の属性。


これらのパラメータを組み合わせると、ユーザーのオンライン アクティビティを追跡するために使用できる一意の識別子であるフィンガープリントが作成されます。指紋はオンライン セキュリティにおいて重要な役割を果たし、サービスによる一意のユーザーの識別と認証を可能にします。また、ユーザーがそのようなシステムを騙してオンラインで匿名性を保つことも可能になります。ただし、指紋を操作できれば、数十、数百、あるいはそれ以上の異なるアカウントを実行して、固有の本物のユーザーであるかのように振る舞うことができます。これはクールに聞こえるかもしれませんが、スパムや偽物をインターネット上に拡散し、不正行為を引き起こす可能性のあるボットの軍隊を作成できる可能性があるため、深刻な意味を持っています。


注:明らかに、ここでは「悪いこと」を行う方法については説明しません。常に注意を払い、「ダークサイド」から遠ざかり、違法行為を避ける必要があります。この記事はその背後にあるテクノロジーに関するものであるため、情報を賢明に使用してください。


これはこの分野の最初の (そしておそらく最後ではない) 記事なので、概要のようなものになります。コンテンツはトピックの紹介を提供します。指紋を検出、収集、スプーフィングするためのツールや方法は数多くあり、あなたの本当の身元や指紋をスプーフィングしているという事実(あなたが本物のユーザーではないことを意味します)を明らかにしたり隠したりするさまざまなパラメータやテクノロジーが多数あります。 )。


デジタル指紋のパラメータ

それらのいくつか、明白で単純な、またはよく知られているパラメータの例と、よりまれであまり知られていない、なりすましが難しいパラメータについて考えてみましょう。


  • User-Agent:この文字列は、ユーザーのブラウザ、オペレーティング システム、およびデバイスに関する情報を提供します。
  • IP:ユーザーのネットワークと地理的位置を明らかにします。サービスでは、セキュリティと悪意のあるアクティビティの防止のために IP アドレスを使用します。異なる IP から 1 つのアカウントを使用する場合、または同じ IP から多数の異なるアカウントを使用する場合、一部のサービスはこのアクティビティを (他のパラメーターと組み合わせて) 不審なものとみなして、ユーザーに対して一定レベルのボット保護を使用する可能性があります。これは、すでに使用されている IP、またはある種の禁止リスト (プロキシ) にある IP を使用した場合にもトリガーされる可能性があります。
  • ブラウザのプラグインと拡張機能:インストールされているプラグインと拡張機能に関する情報を使用して、一意のフィンガープリントを作成できます。これは、ブラウザの追加機能に基づいてユーザーを識別するのに役立ちます。
  • 画面の解像度と色深度:ユーザーが異なれば、表示特性も異なることがよくあります。
  • タイムゾーンと言語の設定:これらはフィンガープリンティングの重要な要素です。たとえば、日本のタイムゾーン、ノルウェー語などのランダムな値がある場合、これは少し異常です。
  • キャンバス:グラフィックス ハードウェアに関する情報を収集するために、ユーザーのブラウザーで非表示のグラフィックスをレンダリングすることが含まれます。ハードウェア情報を偽装すると、適切なキャンバス値を取得できなくなり、別の実際のハードウェアでレンダリングできなくなるため、非常に注意が必要です。
  • WebGL フィンガープリンティング: 3D グラフィックス (ユーザーのデバイスに関する追加情報) をレンダリングする際に、ユーザーのグラフィックス ハードウェアの固有の機能と制限を利用します。
  • フォント:ユーザーのシステムにインストールされているフォントのリストは、フィンガープリントパラメータとして使用できます。この情報には JavaScript を通じてアクセスできます。フォントのリストは現実的でなければなりません。たとえば、macOS では Win フォントを使用できない、または 1 つまたは 2 つのフォントしか使用できないなど、これは非常に疑わしい指標です。
  • バッテリー ステータス API: Web サイトがデバイスのバッテリー レベルと充電ステータスを判断できるようにし、バッテリー属性の組み合わせをフィンガープリントに使用できます。
  • オーディオ フィンガープリント: Web サイトは Web オーディオ API を使用して、デバイスのオーディオ処理特性を分析することによって固有のオーディオ フィンガープリントを生成できます。
  • ハードウェアの同時実行性:この情報には、グラフィックス カード、ネットワーク アダプター、オペレーティング システムなど、デバイスのソフトウェアおよびハードウェア コンポーネントに関する詳細が含まれます。これにより、指紋の一意性が高まります。
  • ネットワーク情報:この情報には、IP アドレス、ISP、DNS サーバーなどのネットワーク接続に関する詳細が含まれます。
  • 開いているポートと使用されているポート:ユーザーによっては、特定のポートをリッスンするソフトウェアを使用している場合があります。これは、特定の場合に役立つ場合もあります。



シークレットで Web をナビゲートする

デジタル指紋の操作は困難な作業であり、検出を回避するための事前のアプローチが必要です。自分の身元 (指紋) を隠したり、他人になりすますための戦略やツールはたくさんあります。

プライバシーを重視したブラウザを使用する

プライバシー設定が強化された Brave、Ghostery、Tor、Octo Browser、または Vivaldi などのプライバシー重視のブラウザを選択すると、一般的なフィンガープリンティング手法に対する根本的な防御が得られます。これらのブラウザはユーザーのプライバシーを優先し、実際の指紋を隠すように設計された機能を組み込んでおり、アクティビティの追跡を困難にしています。たとえば、Tor ブラウザは匿名性の原則に基づいており、インターネット トラフィックを Tor ネットワーク経由でルーティングします。この戦略的なルーティングは、ボランティアが運営する一連のサーバーを介して接続をバウンスすることでユーザーの身元を不明瞭にし、オンライン全体の匿名性を高めます。

ブラウザ拡張機能

AdBlock、uBlock Origin、Privacy Badger、CanvasBlocker などのプライバシー中心のブラウザ拡張機能は、追跡スクリプト、Cookie、フィンガープリンティングの試みに対する積極的な防御手段となる可能性があります。これらのツールはバックグラウンドで動作し、ユーザーの匿名性を保護および維持します。

VPN とプロキシ

VPN またはプロキシ サービスを使用すると、ユーザーの実際の IP (場所、タイムゾーン、言語など) がマスクされ、インターネット トラフィックが暗号化されるため、保護層がさらに追加されます。これは、指紋を変更するためだけでなく、より匿名性の高いオンライン プレゼンスとより高いセキュリティ レベルを提供するためにも使用されます。


指紋なりすましの背後にある動機

なぜを理解する

プライバシー:個人のプライバシーやデジタル監視の増大を懸念する個人は、執拗なオンライン追跡から身を守るために指紋を偽装することがよくあります。

地域制限:スプーフィング フィンガープリントは地域制限を回避するのに役立ち、ユーザーが特定の地域に制限されたコンテンツにアクセスできるようになります。ここでは、VPN およびプロキシ サービスが、ユーザーの ID を隠すだけでなく、地理的に異なる場所にあるサーバーへのアクセスを提供することにより、重要な役割を果たします。

広告:ターゲットを絞った広告やオンライン プロファイリングを避けることは、個人が自分のデジタル指紋を操作する説得力のある動機として機能します。一部のツールはサードパーティの追跡スクリプトと Cookie をブロックし、プロファイリング プロセスを中断する可能性があります。

デジタル分野、ボット検出、保護システムにおける戦略的ニーズ: Web スクレイピング、マルチアカウンティング、電子商取引、報奨金とエアドロップ、ボーナスハンティング、ソーシャル ネットワーク ボット、およびアフィリエイト マーケティングは、多くの場合、中規模企業の収入源または基盤となります。こうした活動に携わるデジタルエージェンシー、個人、インフルエンサーは、複雑なボット検出システムを通過するために指紋スプーフィングを必要とする場合があります。一部のサービスでは検出を回避し、正当なアクティビティに誤ってフラグが設定されたり制限されたりしないようにすることが重要になります (ただし、そのようなアクティビティやアカウントは実際には正当ではなく、正当であるふりをしていることがよくあります)。最も人気のあるツールには、Multilogin、X-Browser、Octo Browser、AdsPower、Incogniton、Scrapy、Surfsky、Web Scraper.io、ScrappingBee などがあります。


ユーザーの指紋の収集

JavaScript: Web サイトは (当然ですが) JS を使用してユーザーに関する詳細を収集し、包括的なデジタル ポートレートを構築します。これには、画面解像度、デバイスの向き、マウスの動き、キーストロークのダイナミクスなどを調査することが含まれます。洗練されたフィンガープリンティング スクリプトは、ブラウザとハードウェアの幅広い属性を列挙します。

Cookie とローカル ストレージ:永続的な Cookie とローカル ストレージに保存されたデータは、セッションおよびプラットフォーム全体でユーザーを追跡するために機能します。この手法には、ブラウザーの Cookie を活用したり、ユーザー追跡用に一意の識別子を保存したりすることが含まれます。目的に応じて、固有のフィンガープリントを持つ「空の」ブラウザが必要な場合、または特定の Cookie と同じフィンガープリントがあることを示すサービスを騙す必要がある場合を知る必要があります。

サードパーティ スクリプト:分析と広告用のサードパーティ スクリプトを組み込むと、収集された指紋に基づいて特定のユーザーのシステム動作を調整するためによく使用される目に見えないトラッカーが組み込まれます。前述のツールとアプローチを使用すると、そのようなスクリプトを選択的にブロックしたり騙したりして、必要な動作を実現できます。


オンラインでのアイデンティティを理解する

オンライン チェッカー: Panopticlick (EFF)、Pixelscan、deviceinfo.me、および BrowserLeaks は、ユーザー エージェント、キャンバス フィンガープリント、フォントなどのブラウザーのフィンガープリント パラメータを表示します。これらのチェッカーは、さまざまなブラウジングにおけるデジタル フィンガープリントの一意性と安定性についての洞察を提供します。セッション。

ブラウザ開発者ツール:ユーザーは、ネットワーク リクエスト、Cookie、その他のフィンガープリント パラメータを検査できるため、デジタル インプリントと、Web サイトがボットや固有の正規ユーザーを検出してフィンガープリントを収集する方法についての理解を深めることができます。ブラウザーの [ネットワーク] タブと [アプリケーション] タブを調べると、ブラウザー、Web サイト、およびサーバー間で交換されるデータをリアルタイムで表示できます。


ここでは、ブラウザーでユーザーの指紋に関する情報を取得する方法の例をいくつか示します。

  • 地理:
 navigator.geolocation.getCurrentPosition(function(position) { var userLocation = position.coords; });


  • マイクロフォン:
 navigator.mediaDevices.enumerateDevices() .then(function(devices) { var microphones = devices.filter(device => device.kind === 'audioinput'); });


  • カメラ:
 navigator.mediaDevices.enumerateDevices() .then(function(devices) { var cameras = devices.filter(device => device.kind === 'videoinput'); });


  • 講演者:
 navigator.mediaDevices.enumerateDevices() .then(function(devices) { var speakers = devices.filter(device => device.kind === 'audiooutput'); });


  • オーディオ:
 var audioContext = new (window.AudioContext || window.webkitAudioContext)(); var oscillator = audioContext.createOscillator(); var analyser = audioContext.createAnalyser(); oscillator.connect(analyser); analyser.connect(audioContext.destination);


  • GPU:
 var canvas = document.createElement('canvas'); var gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); var renderer = gl.getParameter(gl.RENDERER); console.log(renderer);


  • フォント:
 var fonts = []; var fontList = document.fonts.forEach(function(font) { fonts.push(font.family); }); console.log(fonts);


  • キャンバス (ハッシュ):
 var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); var dataURL = canvas.toDataURL(); var canvasHash = MurmurHash3(dataURL); console.log(canvasHash);


  • RAMとCPU:
 function getCPUInfo() { return navigator.hardwareConcurrency || 0; } function getDeviceMemory() { return navigator.deviceMemory || 0; } var cpuInfo = getCPUInfo(); var deviceMemory = getDeviceMemory(); console.log(`CPU Cores: ${cpuInfo}`); console.log(`Device Memory (GB): ${deviceMemory}`);

ボット検出システム: 自動化に対する防御

このようなシステムの例をいくつか示します。

  • Distil Networks:ボットの検出と軽減の世界的リーダーです。これは、正当な人間のユーザーが Web サイト、モバイル アプリ、API にアクセスしていることを確認するためのプロアクティブかつ正確な方法を提供します。ボットの検出: Distil Networks は、さまざまな技術を組み合わせてボットを検出します。カーソルの動き、クリック パターン、他の Web サイト全体の Web 閲覧パターンなど、さまざまな変数を調査します。これは、デバイスの指紋と Are You a Human テクノロジーを使用し、すべての訪問者を何百もの異なる特徴に照らしてチェックし、その行動に焦点を当てます。ブラウザから追加データをアクティブに取得して、デバイスを正確に識別します。ブラウザーリクエストが受信されると、Distil はヘッダーを調べて、訪問者が自分の身元について嘘をついていないかどうかを確認します。この一意の識別子を使用すると、ブラウザで Cookie を読み取ったり保存したりできない場合、クライアント IP アドレスが隠されている場合、または同じデバイス上の別のブラウザに切り替えた場合でも、個々のデバイスを完全または部分的に識別できます。機械学習を使用して、マウスのアクティビティやスクロールの生体認証パターンを検出し、ブラウザー、デバイス、その他の要素を調べて手がかりを探します。 Web ページから JS を実行する、単純または中程度の複雑さのボットを多数検出できます。リソース保護: Distil Networks は、Web スクレイピング、競合データ マイニング、アカウント乗っ取り、トランザクション詐欺、不正な脆弱性スキャン、スパム、クリック詐欺、サービス妨害、API の悪用を防ぎます。正規のユーザーに影響を与えることなく、悪意のあるトラフィックの 99.9% を自動的にブロックできます。また、Web サーバーと API サーバーをそれぞれ保護する Distil Bot Defense for Web および API も提供します。
  • Imperva:指紋ベースの識別を統合して、正当なユーザーを潜在的な脅威から識別する包括的なサイバーセキュリティ プラットフォームです。 Imperva は、高度な動作分析と異常検出を利用して、IP レピュテーション、ユーザー エージェント、さまざまな指紋パラメータ、動作特性などの要素の組み合わせに基づいてプロファイルを構築します。これにより、システムはボット トラフィックを示す不審なアクティビティを検出し、潜在的な脅威を効果的に軽減できます。
  • Akamai: 同社は、セキュリティ製品内に堅牢なボット検出メカニズムを組み込んでいる、著名なコンテンツ配信およびクラウド サービス プロバイダーです。 Akamai は、指紋ベースの検出、動作分析、機械学習を組み合わせて活用し、さまざまなボットを特定し、軽減します。 Akamai のグローバル ネットワークにより、リアルタイムの脅威インテリジェンスが可能になり、進化するボット戦術に対するプロアクティブな防御が可能になります。
  • Cloudflare:これは、ボット検出に多面的なアプローチを採用する、広く使用されているコンテンツ配信ネットワークおよびセキュリティ サービスです。 Cloudflareは、IPレピュテーション、ユーザーエージェントの特性、行動パターンなどのパラメータを分析することで、人間のユーザーとボットを区別します。このプラットフォームは、脅威インテリジェンスとコミュニティ主導の洞察も利用して、新たなボットの脅威との戦いで優位に立っています。 CloudflareはJA3フィンガープリンティングを使用してSSL/TLSクライアントをプロファイリングし、潜在的なボットリクエストをブロックします。また、HTTP フィルタリングを使用してルールを適用し、HTTP 要求情報に基づいてトラフィックをルーティングします。データ フィンガープリンティングは、特定のファイルを識別し、データ損失を防ぐために使用されます。これらの技術は、実際のユーザーではないユーザーを検出するのに役立ちます。

ボット検出システムの役割:

これらはボット検出機能を強化する上で極めて重要な役割を果たします。サーバーを世界中に戦略的に配置することで、地理的な洞察とリアルタイムの脅威インテリジェンスを活用して、ボット トラフィックを効果的に特定して軽減できます。プラットフォームの WAF とボット マネージャーは、自動化された「ユーザー」に対する包括的な防御に貢献します。


この進行中のいたちごっこの中で、ボット検出システムは進化を続け、高度なテクノロジーを活用して指紋スプーフィング技術の先を行き続けています。セキュリティ プロバイダー、企業、およびより広範なオンライン コミュニティ間の連携は、自動化された脅威の戦術に対する防御において依然として重要ですが、ある意味では、ユーザーのプライバシー、匿名性、オンライン エクスペリエンスに対しても利用され、煩わしい広告や高度なユーザー追跡ツールをもたらします。それは企業にとってのみ有益であり、ユーザーにとっては有益ではありません。ただし、プライバシー保護、指紋の隠蔽となりすまし、広告とトラッカーのブロック ツールも開発されており、最も洗練されたユーザー追跡システムさえも回避できます。


Web サイトの追加の検証手順

  • 不審な動作:頻繁な変更やデータ ポイントの異常な組み合わせなど、指紋が疑わしいと思われる場合、Web サイトで追加の検証手順がトリガーされる場合があります。
  • キャプチャ: Web サイトでは、身元を確認するためにユーザーにキャプチャ チャレンジを表示する場合があります。これには、パズルを解いたり、歪んだテキストを特定したりすることが含まれますが、これらのタスクは原始的なボットでは実行が困難です。
  • モバイル認証: Web サイトは、固有の ID と現実世界の実体との間のより強力な接続を確立するために、ユーザーに携帯電話番号の認証を要求する場合があります。これは不正行為の防止に役立ちます。
  • 本人確認:考え方は携帯電話と同じですが、身分証明書を提出する必要があります。


例:

Google は、鮮明で一貫した指紋を持つ新規ユーザーに対して追加の認証を要求しません。ユーザーの指紋が頻繁に変更される場合、または既知のボット (または単に Google ですでに知られている) によって使用される指紋に似ている場合、Google は携帯電話番号を要求するか、キャプチャの処理を要求することがあります。


金融ウェブサイトでは、取引の機密性を考慮して、より厳格な検証措置を実施することがよくあります。ユーザーに追加の個人情報の提供、安全なチャネルを介した本人確認、またはより複雑なキャプチャ チャレンジの通過を要求する場合があります。

意見: なりすましは隠すより良い

指紋を隠すとプライバシー、セキュリティ、オンラインの匿名性が強化されますが、指紋を偽装して固有の正当なユーザーに見せかけると、さらに大きな利点が得られます。群衆に溶け込み、検出防止ツールを検出するシステムからの疑惑を回避することで、信頼性と信頼を維持できます。このアプローチにより、独自の正当なユーザーとして認識されるという利点を享受でき、追加の保護手段や障害に直面する可能性を最小限に抑えることができます。そして明らかに、実際のデータと個人情報の漏洩を防ぐのに役立ちます。


ここでも公開されています。