Com viu l'Internet domèstic i les estadístiques del servidor de noms de domini?

Un encaminador domèstic (en aquest cas FritzBox) pot gravar molt: quant trànsit passa quan, qui està connectat a quina velocitat, etc. Un servidor de noms de domini (DNS) a la xarxa local em va ajudar a esbrinar què s'amagava darrere dels destinataris desconeguts.

En general, el DNS ha tingut un impacte positiu a la xarxa domèstica: ha afegit velocitat, estabilitat i manejabilitat.

A continuació es mostra un diagrama que va plantejar preguntes i la necessitat d'entendre què estava passant. Els resultats ja filtren les sol·licituds conegudes i en funcionament als servidors de noms de domini.

Per què s'enquesten 60 dominis obscurs cada dia mentre tothom encara dorm?

Cada dia s'enquesten 440 dominis desconeguts durant les hores d'activitat. Qui són i què fan?

Nombre mitjà de peticions per dia per hora

Com viu l'Internet domèstic i les estadístiques del servidor de noms de domini?

Consulta d'informes 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'))

A la nit, l'accés sense fil està desactivat i s'espera l'activitat del dispositiu, és a dir. no hi ha enquestes per a dominis desconeguts. Això vol dir que la major activitat prové dels dispositius amb sistemes operatius com Android, iOS i Blackberry OS.

Enumerem els dominis que s'enquesten de manera intensiva. La intensitat vindrà determinada per paràmetres com el nombre de peticions per dia, el nombre de dies d'activitat i en quantes hores del dia s'han detectat.

Tots els sospitosos esperats estaven a la llista.

Dominis enquestats intensivament

Com viu l'Internet domèstic i les estadístiques del servidor de noms de domini?

Consulta d'informes 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

Bloquegem isс.blackberry.com i iceberg.blackberry.com, que el fabricant justificarà per motius de seguretat. Resultat: quan s'intenta connectar-se a la WLAN, mostra la pàgina d'inici de sessió i no es connecta mai més enlloc. Anem a desbloquejar-lo.

detectportal.firefox.com és el mateix mecanisme, només implementat al navegador Firefox. Si necessiteu iniciar sessió a la xarxa WLAN, primer mostrarà la pàgina d'inici de sessió. No està del tot clar per què s'ha de fer ping a l'adreça amb tanta freqüència, però el fabricant descriu clarament el mecanisme.

skype. Les accions d'aquest programa són semblants a un cuc: s'amaga i no només es deixa matar a la barra de tasques, genera molt trànsit a la xarxa, fa ping a 10 dominis cada 4 minuts. Quan es fa una videotrucada, la connexió a Internet es trenca constantment, quan no pot ser millor. De moment és necessari, així que queda.

upload.fp.measure.office.com: fa referència a Office 365, no he pogut trobar una descripció decent.
browser.pipe.aria.microsoft.com: no he pogut trobar una descripció decent.
Bloquegem tots dos.

connect.facebook.net: aplicació de xat de Facebook. Restes.

mediator.mail.ru Una anàlisi de totes les sol·licituds del domini mail.ru va mostrar la presència d'un gran nombre de recursos publicitaris i col·leccionistes d'estadístiques, cosa que provoca desconfiança. El domini mail.ru s'envia completament a la llista negra.

google-analytics.com: no afecta la funcionalitat dels dispositius, de manera que el bloquegem.
doubleclick.net: compta els clics publicitaris. Bloquem.

Moltes sol·licituds van a googleapis.com. El bloqueig ha provocat l'aturada alegre de missatges curts a la tauleta, que em semblen estúpids. Però la Playstore va deixar de funcionar, així que desbloquegem-la.

cloudflare.com: escriuen que els encanta el codi obert i, en general, escriuen molt sobre ells mateixos. La intensitat de l'enquesta de domini no està del tot clara, que sovint és molt superior a l'activitat real a Internet. Deixem-ho de moment.

Així, la intensitat de les peticions sovint està relacionada amb la funcionalitat requerida dels dispositius. Però també es van descobrir els que s'excedien amb l'activitat.

El primer

Quan l'Internet sense fil està activat, tothom encara està adormit i és possible veure quines sol·licituds s'envien primer a la xarxa. Així, a les 6:50 s'encén Internet i en el primer període de deu minuts s'enquesten 60 dominis diaris:

Com viu l'Internet domèstic i les estadístiques del servidor de noms de domini?

Consulta d'informes 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 comprova la connexió WLAN per detectar la presència d'una pàgina d'inici de sessió.
Citrix està fent ping al seu servidor tot i que l'aplicació no s'està executant activament.
Symantec verifica els certificats.
Mozilla cerca actualitzacions, tot i que a la configuració vaig demanar que no ho fes.

mmo.de és un servei de jocs. El més probable és que la sol·licitud s'iniciï pel xat de Facebook. Bloquem.

Apple activarà tots els seus serveis. api-glb-fra.smoot.apple.com: a jutjar per la descripció, cada clic de botó s'envia aquí amb finalitats d'optimització del motor de cerca. Molt sospitós, però relacionat amb la funcionalitat. Ho deixem.

La següent és una llarga llista de sol·licituds a microsoft.com. Bloquegem tots els dominis a partir del tercer nivell.

Nombre de primers subdominis
Com viu l'Internet domèstic i les estadístiques del servidor de noms de domini?

Per tant, els primers 10 minuts d'encendre Internet sense fil.
iOS sondeja la majoria de subdominis: 32. Seguit per Android - 24, després Windows - 15 i, finalment, Blackberry - 9.
Només l'aplicació de Facebook enquesta 10 dominis, Skype enquesta 9 dominis.

Font d'informació

La font de l'anàlisi va ser el fitxer de registre del servidor local bind9, que conté el format següent:

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)

El fitxer es va importar a una base de dades sqlite i es va analitzar mitjançant consultes SQL.
El servidor actua com a memòria cau; les sol·licituds provenen de l'encaminador, de manera que sempre hi ha un client de sol·licitud. Una estructura de taula simplificada és suficient, és a dir. L'informe requereix l'hora de la sol·licitud, la pròpia sol·licitud i el domini de segon nivell per a l'agrupació.

Taules 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)
);

Sortida

Així, com a resultat de l'anàlisi del registre del servidor de noms de domini, més de 50 registres van ser censurats i col·locats a la llista de bloqueig.

La necessitat d'algunes consultes està ben descrita pels fabricants de programari i inspira confiança. Tanmateix, bona part de l'activitat és infundada i qüestionable.

Font: www.habr.com

Afegeix comentari