ブラウザプラグイン、cpatext、Content-Security-Policyを使用したサイトページへのスパムリンクの置換(埋め込み)

1月末に、フォームの奇妙なリンクの何百ものクリックが、 kidsreview.ruの内部ユーザークリック分析システムのログに表示されました



compareiseries.in/goto.php?url=aHR0cDovL24uYWN0aW9ucGF5LnJ1L2NsaWNrLzUyZDhmODY2ZmQzZjViMjYxYTAwNDFjNS82OTIzMy81MDI1OS9zdWJhY2



簡単な調査の結果、compareiseries.inサイトはレイヤーであり、スクリプトはアドレスで送信されたリンクへのjsリダイレクトを発行します。 この場合、base64は実際のアドレスを隠しました:

n.actionpay.ru/click/52d8f866fd3f5b261a0041c5/69233/50259/subaccount



推測するのは難しくありませんが、このサイトはクリックごとの支払いを伴うトラフィック交換であることがわかりました(URLに特定のアカウントのパラメーターが含まれています)。 つまり、誰かがクリックをだまし、お金を稼いだ-そしてそれはすべて私たちのサイトにあり、最も不快なことに、私たちの許可なしに。



問題



問題:多数の訪問者のブラウザーでサイトを表示すると、さまざまな広告リソースへのスパムリンクがあります。

質問:どのレベルで表示されますか?

思い浮かぶオプション(主観的に評価された確率の低い順):



1.ユーザーのブラウザは、コンピューター上のウイルス/ブラウザーへのウイルスプラグイン/あらゆる種類のその他のウイルスの結果として、悪意のあるJavaScriptが訪問先のサイトに注入されます。



2.サイトまたはWebサーバーまたはネットワークカードドライバーのハッキングおよびその後のzastrovaniyaコードの結果としてのサーバーは、スパムスクリプト/訪問者へのリンクを提供します。



3.ハッキングの結果として、外部リソースからロードするjsの1つが、広告スパムコンテンツを同時に配信し始めました

(rambler top100、vk / fb、twitter、google、yandex metrika、...約12個あります);



サーバー上のトレースを注意深く検索しても何も得られませんでした。ポイント3は最も可能性の低いものと同じです。 これと並行して、コンバージョン分析システムを修正し、「左」のURLをクリックしたページのコンテンツが記録されるようにしました。



即興の「トラップ」の最初の数時間は、数十ページに渡り、それらのフォームに挿入されたjsを取り込みました。

api.cpatext.ru/js/cpatext.js?r5

ayrqejixqe.ru/js/start_ad.js?u=7_05032014

yhcwxeqhzg.ru/?d=kidsreview.ru&t=KidsReview.ru%20%7C

www.superfish.com/ws/sf_main.jsp?dlsource=pcom&userId=4826451239324129823&CTID=p1272



または、たとえば、次のように:

「データ:text / javascript; base64、KGZ1bmN0aW9uKHdpbmRvdykgew0KICAgIHZhciBkb21haW5fbGlzdCA9ICcsMS5hemFydG55ZS1pZ3J5LXBva2VyLnJ1LDEwMguhbhtb5a5a5a5a5a5a5a5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a



など



わかった! -私たちはcpatext.ruを決定して開き、実際に見たもの-「自動的にリンクを置き換え、あなたはもっと稼ぐ!」



画像



連中は、特にブラウザのプラグインを介して、さまざまな方法でリンクを置き換えることを提案しています。 彼らはこのためにシステム全体を構築しましたが、もちろん、それだけではありません。



どうする



結果に対処するための最も便利なオプションの1つは、Content-Security-Policyヘッダー(http://en.wikipedia.org/wiki/Content_Security_Policy)です。これにより、サイトは外部コンテンツを含むサイトのページの操作に対する制限を宣言できます。 特に、これにより、サイトがどの外部ドメインから外部JSをロードできるかについて、最新のブラウザーに指示を渡すことができます。



この方法は、すべてのjsが同じドメイン(CDNなど)内にある場合に特に役立ちますが、一般的な場合、サイトに多数のサードパーティjs(たとえば、当社のようなウィジェット)がある場合、いくつかの問題が発生します。



1.ロードされたすべての外部jsを分析して、完全なホワイトリストをコンパイルする必要があります



2.開発中、ホワイトリストを最新の状態に保つ必要があります



3.正当な外部スクリプトのホスティングの複雑さの変更:たとえば、ドメインCDN Facebookの変更、または新しいサードパーティの正当なドメインの外観-エラーにつながります。



4.とりわけ、多くのスクリプトは、ツールバーや合法的なブラウザ拡張機能の広告からブロックされています。



チーム内の私たちは、ページのコンテンツに移動し、コンテンツを変更できるようにする拡張機能が「フォレストを通過する」ことに同意しましたが、これは100%の場合に当てはまりますか?



Content-Security-Policyを使用してブロックした後、「左」クリックは桁違いに小さくなります(CSPをサポートしない古いバージョンのブラウザーからのクリックのみが残ります)が、いくつかの質問が残ります。



1.制限の点でブラウザー開発者側に何らかの変化がありますか

サイトページへのjsインジェクションの拡張機能



2.大規模なサイトの感染ユーザーに関する同様の問題に対処するためのベストプラクティスは何ですか?

グーグルではまともな情報が見つかりませんでした。



3.そして最も重要なことは、なぜmetabar.rucpatext.ruの精神でサイトが平和に生きているのか?



All Articles