家庭甚むンタヌネットの状況ずドメむン ネヌム サヌバヌの統蚈はどうなっおいたすか?

ホヌムルヌタヌ (この堎合は 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

コメントを远加したす