netstatで外部との不正な通信を見極める(windows)。

netstatコマンドを使って、使用しているPCが不正な通信をしていないか確かめる方法です。netstatはコンピュータの通信状況を一覧表示するコマンドで、いろんなオプションを指定できます。

windowsではコマンドプロンプトから実行します。その際、管理者権限で実行します。windows10の場合は、「左下のウィンドウマークをクリック → Windowsシステムツール → コマンドプロンプトを右クリック → その他 → 管理者として実行を選択」で管理者権限でコマンドプロンプトが立ち上がります。

以下のように、netstatコマンドを打ちます。

C:¥WINDOWS¥system32>netstat -bn -p TCP

オプションの意味は以下です。

  • -b:それぞれの接続またはリッスンポートの作成に使われた実行可能ファイルを表示します。管理者権限が必要です。
  • -n:アドレスとポート番号を数値形式で表示します。
  • -p:TCPプロトコルの接続を表示します。他にも、UDP、TCPv6、UDPv6が指定できます。

※ここでは指定しませんでしたが、待受状態(リッスンポート)も表示したい場合は「-a」オプションを追加することで表示可能です。

[広告]

実行した結果は以下です。

上記の結果から、僕のPCでは「svchost.exe」と「SearchUI.exe」が外部と通信を確立してなんらかの情報のやり取りをしているようです。

svchost.exe
→ プロトコルは443(HTTPS)を使用して、IPアドレスが「52.230.83.250」、「52.230.85.180」のサーバと通信をしている。

SearchUI.exe
→ プロトコルは443(HTTPS)を使用して、「13.107.42.254」、「13.107.51.254」、「13.35.55.30」、「204.79.197.222」のサーバと通信をしている。

それで、これらのサーバの宛先をwhoisデータベースで調べてみました。以下のサイトを利用しました。
http://whois.threet.co.jp/

「13.35.55.30」はAmazon、それ以外はすべて Microsoft のサーバのようです。そもそも、svchost.exe と SearchUI.exeが何者なのか?これも調べてみました(ウィルスだったら大変ですし)。svchost.exe はwindowsにもともとある必要なプロセスらしいです。また、SearchUI.exe は Cortana(コルタナ) に関わるプロセスらしいことがわかりました。通信相手もMicrosoftとAmazonだったため大丈夫と思います。インストールしているウィルス対策ソフトもウィルス検知をしていないので(※)。

(※)の補足:
今回の svchost.exe は本物だったのですが、ウィルスが「svchost.exe」というファイル名で活動している可能性があります。 svchost.exe はwindowsに必要なプロセスであるため、怪しまれないようにウィスルのファイル名を「svchost.exe」とするものがあるようです。

ただ不思議なのは、SearchUI.exe がAmazonのサーバと通信していたこと。なんでだろう?と思っていたらネットで以下の記事を見つけました。Windows 10端末からAlexaのサーバーにアクセスしたり、AmazonのEcho端末からCortanaのサーバーにアクセスできるようになるみたいですね。

AmazonとMicrosoft、AlexaとCortanaの会話で合意――両社の人工知能アシスタントの互換性増大へ

次回は、Linuxでのnetstatの使い方を書いてみようと思います。

Google AdSenseでサイトは審査不能になったときの対応

Google AdSenseを申請して「サイトは審査不能」と言われてしまったときに、いったいなんの対応をすればいいのか悩むと思います。以下がGoogleから「サイトは審査不能」と連絡が来たときのメールの一部です(図1)。

図1

文面には、

  • サイトがダウンしている
  • 表示できない状態
  • YouTube や Blogger などの AdSense ホスト パートナーからお申し込みいただいた場合
  • 利用できない
  • 見つからない

とあるけど、実際に自分でサイトを確認するとブラウザにちゃんと表示できるし、サーバーがダウンしていたという情報もレンタルサーバーの提供元にも載っていないし、「YouTube や Blogger などの AdSense ホスト パートナー」からの申込にも心当たりないし(していないし)、なにを言っているの?と思ってしまいます。僕も「サイトは審査不能」と判定された一人であり、僕が対応したことを書いておきます。

正直、僕はなにもせず再申請をしてしまおうかとも思いました。理由は「ちゃんと表示できているから」です。とはいえ、ネットで調べてみて他の方の対応と見比べ、これが一番理屈に叶うと思ったコトをしてみました。

Google Search Consoleで確認する。

「Search Console」とは、サイトがGoogleにどのように認識されるかを確認し、検索結果でのサイトのパフォーマンスを最適化できるGoogleが提供しているWEB上のツールです。このSearch Consoleのなかに「Fetch as Google」という機能があります。Fetch as Googleでは、ウェブサイトのページがGoogleでどのように表示されるかを確認することができます。これを試してみました。Fetch as Googleにある「取得してレンダリング」のボタンを押下。以下が結果です(図2)。

図2

「一時的にアクセスできません」となっていました。でも、ブラウザからはちゃんとアクセスできるし表示もできます。この判定ですが、人が見たときの見栄え(表示)の話ではなくて、サイトを巡回しているGoogleのロボット(クローラー)がサイトを解析できているか?ということによる判定のようです。どうやらクローラーにサイト構造が伝わってないみたいでした。。

[広告]


クローラーについて調べてみたところ、robots.txtが必要とのことなので早速、用意しました。サイトはWordpressで作成していたのですが、明示的にrobots.txtを作成してWordpressが配置されているルートディレクトリの直下に置きます(「wp-admin」や「wp-content」ディレクトリと同じ階層です)。robots.txtは以下のようにしました。

==============================
(robots.txtの中身)
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://サイトのURL/index.php?xml_sitemap=params=
==============================

再度、Fetch as Googleの「取得してレンダリング」を実行したところ、緑のチェックがついてステータスが「一部」となっており大丈夫?なのかが少し気がかりです(図3)。

図3

本来であれば以下の図4のようにステータスは「完了」になるのだけれど。。

図4

図3の「一部」のところにカーソルをあわせてクリックすると、サイトがGoogleにどのように認識されているかが表示されて、確認することができます。その表示の下に「Googlebot はこのページの一部のリソースを取得できませんでした。取得できなかったリソースは次のとおりです」との文言が載っていました(図5)。どうやら、これらのリソースが取得できないので「一部」となってしまったようです。

図5

これらリソースですが、調べてみたら以下のようです。

https://pagead2.googlesyndication.com
→ Adsense申請時に「head部に貼り付けてください」とGoogleに言われたURLのサーバっぽい。

https://googleads.g.doubleclick.net
→ Google Analytics に関連したサーバーらしい。

二つともGoogleと関連するサーバーなので、どうしようもなく無視することにしました。これ以上は他にできないので、この状態でAdSenseの再申請をしました。再申請までにあけた期間は1日です(朝に「サイトは審査不能」の通知が来て、翌日の夜に再申請をしました)。その結果は・・

図6

「お客様のサイトが AdSense に接続されました」とGoogleから通知が来ました(やったー)。この通知も再申請の翌日でした。「サイトは審査不能」で困っている人がいたら、試しにSearch Consoleで自分のサイトを確認してみてください。