Como vive a Internet doméstica e as estatísticas do servidor de nomes de dominio?

Un enrutador doméstico (neste caso FritzBox) pode gravar moito: canto tráfico vai cando, quen está conectado a que velocidade, etc. Un servidor de nomes de dominio (DNS) na rede local axudoume a descubrir o que se agochaba detrás dos destinatarios descoñecidos.

En xeral, o DNS tivo un impacto positivo na rede doméstica: engadiu velocidade, estabilidade e manexabilidade.

A continuación móstrase un diagrama que suscitaba preguntas e a necesidade de comprender o que estaba a pasar. Os resultados xa filtran as solicitudes coñecidas e funcionantes aos servidores de nomes de dominio.

Por que se enquisan 60 dominios escuros todos os días mentres todos aínda están durmidos?

Todos os días, 440 dominios descoñecidos son enquisados ​​durante as horas activas. Quen son e que fan?

Número medio de solicitudes por día por hora

Como vive a Internet doméstica e as estatísticas do servidor de nomes de dominio?

Consulta de informe 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'))

Pola noite, o acceso sen fíos está desactivado e espérase actividade do dispositivo, é dicir. non hai enquisas para dominios descoñecidos. Isto significa que a maior actividade provén de dispositivos con sistemas operativos como Android, iOS e Blackberry OS.

Imos enumerar os dominios que se enquisan intensamente. A intensidade virá determinada por parámetros como o número de solicitudes por día, o número de días de actividade e en cantas horas do día foron detectadas.

Todos os sospeitosos esperados estaban na lista.

Dominios investigados intensivamente

Como vive a Internet doméstica e as estatísticas do servidor de nomes de dominio?

Consulta de informe 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

Bloqueamos isс.blackberry.com e iceberg.blackberry.com, que o fabricante xustificará por motivos de seguridade. Resultado: ao tentar conectarse á WLAN, amosa a páxina de inicio de sesión e nunca máis se conecta a ningún sitio. Desbloqueémolo.

detectportal.firefox.com é o mesmo mecanismo, só implementado no navegador Firefox. Se precisa iniciar sesión na rede WLAN, primeiro mostrará a páxina de inicio de sesión. Non está do todo claro por que se debe facer ping ao enderezo con tanta frecuencia, pero o fabricante describe claramente o mecanismo.

skype. As accións deste programa son semellantes a un gusano: esconde e non simplemente se deixa matar na barra de tarefas, xera moito tráfico na rede, fai ping a 10 dominios cada 4 minutos. Ao facer unha videochamada, a conexión a Internet rompe constantemente, cando non pode ser mellor. De momento é necesario, así segue sendo.

upload.fp.measure.office.com: refírese a Office 365, non puiden atopar unha descrición decente.
browser.pipe.aria.microsoft.com - Non puiden atopar unha descrición decente.
Bloqueamos os dous.

connect.facebook.net - aplicación de chat de Facebook. Restos.

mediator.mail.ru Unha análise de todas as solicitudes para o dominio mail.ru mostrou a presenza dun gran número de recursos publicitarios e recopiladores de estatísticas, o que provoca desconfianza. O dominio mail.ru envíase integramente á lista negra.

google-analytics.com: non afecta a funcionalidade dos dispositivos, polo que o bloqueamos.
doubleclick.net - conta os clics publicitarios. Bloqueamos.

Moitas solicitudes van a googleapis.com. O bloqueo provocou o apagado alegre das mensaxes curtas na tableta, que me parecen estúpidas. Pero a tenda de xogos deixou de funcionar, así que imos desbloqueala.

cloudflare.com: escriben que lles encanta o código aberto e, en xeral, escriben moito sobre eles mesmos. A intensidade da enquisa de dominio non está do todo clara, que adoita ser moito maior que a actividade real en Internet. Deixémolo por agora.

Así, a intensidade das solicitudes adoita estar relacionada coa funcionalidade requirida dos dispositivos. Pero tamén se descubriu quen se esaxeraba coa actividade.

O primeiro

Cando a Internet sen fíos está activada, todos aínda están durmindo e é posible ver cales son as solicitudes que se envían primeiro á rede. Entón, ás 6:50 a Internet acéndese e nos primeiros dez minutos son cuestionadas diariamente 60 dominios:

Como vive a Internet doméstica e as estatísticas do servidor de nomes de dominio?

Consulta de informe 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 comproba a presenza dunha páxina de inicio de sesión na conexión WLAN.
Citrix está facendo ping ao seu servidor aínda que a aplicación non se estea executando activamente.
Symantec verifica os certificados.
Mozilla busca actualizacións, aínda que na configuración pedín non facelo.

mmo.de é un servizo de xogos. O máis probable é que a solicitude inicie o chat de Facebook. Bloqueamos.

Apple activará todos os seus servizos. api-glb-fra.smoot.apple.com: a xulgar pola descrición, cada clic de botón envíase aquí para propósitos de optimización do motor de busca. Moi sospeitoso, pero relacionado coa funcionalidade. Deixámolo.

A seguinte é unha longa lista de solicitudes a microsoft.com. Bloqueamos todos os dominios a partir do terceiro nivel.

Número de primeiros subdominios
Como vive a Internet doméstica e as estatísticas do servidor de nomes de dominio?

Entón, os primeiros 10 minutos de conectar a Internet sen fíos.
iOS enquisa a maioría dos subdominios - 32. Seguido por Android - 24, despois Windows - 15 e por último Blackberry - 9.
Só a aplicación de Facebook enquisa 10 dominios, Skype enquisa 9 dominios.

A fonte de información

A fonte da análise foi o ficheiro de rexistro do servidor local bind9, que contén o seguinte formato:

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)

O ficheiro importouse a unha base de datos sqlite e analizouse mediante consultas SQL.
O servidor actúa como caché; as solicitudes veñen do router, polo que sempre hai un cliente de solicitude. Unha estrutura de táboa simplificada é suficiente, é dicir. O informe require o momento da solicitude, a propia solicitude e o dominio de segundo nivel para a agrupación.

Táboas 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)
);

Saída

Así, como resultado da análise do rexistro do servidor de nomes de dominio, máis de 50 rexistros foron censurados e colocados na lista de bloqueo.

A necesidade dalgunhas consultas está ben descrita polos fabricantes de software e inspira confianza. Non obstante, gran parte da actividade é infundada e cuestionable.

Fonte: www.habr.com

Engadir un comentario