家庭用インターネットの状況とドメイン ネーム サーバーの統計はどうなっていますか?

ホームルーター (この場合は FritzBox) は、いつどのくらいのトラフィックが流れているか、誰がどの速度で接続しているかなど、多くのことを記録できます。 ローカル ネットワーク上のドメイン ネーム サーバー (DNS) は、不明な受信者の背後に何が隠されているかを見つけるのに役立ちました。

全体として、DNS はホーム ネットワークにプラスの影響を与え、速度、安定性、管理性が向上しました。

以下は、疑問と何が起こっているのかを理解する必要性を引き起こした図です。 結果は、ドメイン ネーム サーバーに対する既知の動作中のリクエストをすでにフィルターで除外しています。

誰もがまだ眠っている間に、60 の無名ドメインが毎日ポーリングされるのはなぜでしょうか?

毎日、アクティブな時間帯に 440 の未知のドメインがポーリングされます。 彼らは何者で、何をしているのでしょうか?

XNUMX 日あたりの時間ごとの平均リクエスト数

家庭用インターネットの状況とドメイン ネーム サーバーの統計はどうなっていますか?

SQLレポートクエリ

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
  1 as 'Line: DNS Requests per Day for Hours',
  strftime('%H:00', datetime(EVENT_DT, 'unixepoch')) AS 'Day',
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS 'Requests per Day'
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
GROUP BY /* hour aggregate */
  strftime('%H:00', datetime(EVENT_DT, 'unixepoch'))
ORDER BY strftime('%H:00', datetime(EVENT_DT, 'unixepoch'))

夜間はワイヤレス アクセスが無効になり、デバイスのアクティビティが予想されます。 不明なドメインに対するポーリングは行われません。 これは、Android、iOS、Blackberry OS などのオペレーティング システムを搭載したデバイスからのアクティビティが最も多く発生していることを意味します。

集中的にポーリングされるドメインをリストしてみましょう。 強度は、XNUMX 日あたりのリクエストの数、アクティビティの日数、リクエストが XNUMX 日のうちに何時間あったかなどのパラメータによって決まります。

予想される容疑者は全員リストに載っていた。

集中的にポーリングされたドメイン

家庭用インターネットの状況とドメイン ネーム サーバーの統計はどうなっていますか?

SQLレポートクエリ

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT 
  1 as 'Table: Havy DNS Requests',
  REQUEST_NK AS 'Request',
  DOMAIN AS 'Domain',
  REQ AS 'Requests per Day',
  DH AS 'Hours per Day',
  DAYS AS 'Active Days'
FROM (
SELECT
  REQUEST_NK, MAX(DOMAIN) AS DOMAIN,
  COUNT(DISTINCT REQUEST_NK) AS SUBD,
  COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))) AS DAYS,
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS REQ,
  ROUND(1.0*COUNT(DISTINCT strftime('%d.%m %H', datetime(EVENT_DT, 'unixepoch')))/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS DH
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
GROUP BY REQUEST_NK )
WHERE DAYS > 9 -- long period
ORDER BY 4 DESC, 5 DESC
LIMIT 20

メーカーはセキュリティ上の理由からこれらを正当化するため、isс.blackberry.com と Iceberg.blackberry.com をブロックします。 結果: WLAN に接続しようとすると、ログイン ページが表示され、どこにも接続できなくなります。 ブロックを解除しましょう。

detectportal.firefox.com も同じメカニズムで、Firefox ブラウザーにのみ実装されています。 WLAN ネットワークにログインする必要がある場合は、最初にログイン ページが表示されます。 なぜアドレスに頻繁に ping を送信する必要があるのか​​は完全には明らかではありませんが、そのメカニズムはメーカーによって明確に説明されています。

スカイプ。 このプログラムの動作はワームに似ています。タスクバーに隠れて自分自身を強制終了させず、ネットワーク上に大量のトラフィックを生成し、10 分ごとに 4 つのドメインに ping を送信します。 ビデオ通話を行うと、インターネット接続が常に切断されてしまいます。 今のところ必要なのでそのままにしておきます。

Upload.fp.measure.office.com - Office 365 を指します。適切な説明が見つかりませんでした。
browser.pipe.aria.microsoft.com - 適切な説明が見つかりませんでした。
私たちは両方をブロックします。

connect.facebook.net - Facebook チャット アプリケーション。 残っています。

mediator.mail.ru mail.ru ドメインに対するすべてのリクエストを分析したところ、膨大な数の広告リソースと統計収集者の存在が示され、不信感を引き起こしています。 mail.ru ドメイン全体がブラックリストに送信されます。

google-analytics.com - デバイスの機能には影響しないため、ブロックします。
doubleclick.net - 広告のクリックをカウントします。 私たちはブロックします。

多くのリクエストは googleapis.com に送信されます。 このブロックにより、タブレット上の短いメッセージが嬉しいことにシャットダウンされるようになりましたが、私にはそれが愚かに思えます。 しかし、Playストアが動作しなくなったので、ブロックを解除しましょう。

Cloudflare.com - 彼らはオープンソースが大好きだと書き、一般に自分自身について多くのことを書きます。 ドメイン調査の強度は完全には明らかではありませんが、インターネット上の実際のアクティビティよりもはるかに高いことがよくあります。 今はそのままにしておきましょう。

したがって、リクエストの強度は、多くの場合、デバイスに必要な機能に関連しています。 しかし、活動をやりすぎた人たちも発見されました。

最初に

ワイヤレス インターネットがオンになっているときは、全員がまだ眠っているため、どのリクエストが最初にネットワークに送信されるかを確認できます。 したがって、6 時 50 分にインターネットがオンになり、最初の 60 分間で毎日 XNUMX のドメインがポーリングされます。

家庭用インターネットの状況とドメイン ネーム サーバーの統計はどうなっていますか?

SQLレポートクエリ

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
  1 as 'Table: First DNS Requests at 06:00',
  REQUEST_NK AS 'Request',
  DOMAIN AS 'Domain',
  REQ AS 'Requests',
  DAYS AS 'Active Days',
  strftime('%H:%M', datetime(MIN_DT, 'unixepoch')) AS 'First Ping',
  strftime('%H:%M', datetime(MAX_DT, 'unixepoch')) AS 'Last Ping'
FROM (
SELECT
  REQUEST_NK, MAX(DOMAIN) AS DOMAIN,
  MIN(EVENT_DT) AS MIN_DT,
  MAX(EVENT_DT) AS MAX_DT,
  COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))) AS DAYS,
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS REQ
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
  AND strftime('%H', datetime(EVENT_DT, 'unixepoch')) = strftime('%H', '2019-08-01 06:50:00')
GROUP BY REQUEST_NK
 )
WHERE DAYS > 3 -- at least 4 days activity
ORDER BY 5 DESC, 4 DESC

Firefox は、WLAN 接続にログイン ページが存在するかどうかをチェックします。
Citrix は、アプリケーションがアクティブに実行されていない場合でも、サーバーに ping を送信します。
シマンテックは証明書を検証します。
Mozilla はアップデートをチェックしますが、設定でこれを行わないよう指定しました。

mmo.de はゲーム サービスです。 おそらく、リクエストは Facebook チャットによって開始されます。 私たちはブロックします。

Apple はすべてのサービスを有効化します。 api-glb-fra.smoot.apple.com - 説明から判断すると、ボタンのクリックはすべて、検索エンジン最適化の目的でここに送信されます。 非常に疑わしいですが、機能に関連しています。 そのままにしておきます。

以下は、microsoft.com へのリクエストの長いリストです。 XNUMX 番目のレベルから始まるすべてのドメインをブロックします。

一番最初のサブドメインの数
家庭用インターネットの状況とドメイン ネーム サーバーの統計はどうなっていますか?

つまり、ワイヤレスインターネットをオンにしてから最初の10分間です。
最も多くのサブドメインを調査したのは iOS で - 32 でした。次に Android - 24、次に Windows - 15、最後に Blackberry - 9 でした。
Facebook アプリケーションだけで 10 のドメインをポーリングし、Skype は 9 つのドメインをポーリングします。

情報源

分析のソースは、bind9 ローカル サーバー ログ ファイルで、次の形式が含まれています。

01-Aug-2019 20:03:30.996 client 192.168.0.2#40693 (api.aps.skype.com): query: api.aps.skype.com IN A + (192.168.0.102)

ファイルは sqlite データベースにインポートされ、SQL クエリを使用して分析されました。
サーバーはキャッシュとして機能し、要求はルーターから送信されるため、要求クライアントは常に XNUMX つになります。 単純化されたテーブル構造で十分です。 レポートには、リクエストの時刻、リクエスト自体、およびグループ化のための第 XNUMX レベルのドメインが必要です。

DDL テーブル

CREATE TABLE STG_BIND9_LOG (
  LINE_NK       INTEGER NOT NULL DEFAULT 1,
  DATE_NK       TEXT NOT NULL DEFAULT 'n.a.',
  TIME_NK       TEXT NOT NULL DEFAULT 'n.a.',
  CLI           TEXT, -- client
  IP            TEXT,
  REQUEST_NK    TEXT NOT NULL DEFAULT 'n.a.', -- requested domain
  DOMAIN        TEXT NOT NULL DEFAULT 'n.a.', -- domain second level
  QUERY         TEXT,
  UNIQUE (LINE_NK, DATE_NK, TIME_NK, REQUEST_NK)
);

出力

したがって、ドメイン ネーム サーバーのログを分析した結果、50 件を超えるレコードが検閲され、ブロック リストに追加されました。

一部のクエリの必要性はソフトウェア メーカーによって十分に説明されており、自信を与えます。 しかし、活動の多くは根拠がなく、疑わしいものです。

出所: habr.com

コメントを追加します