Come funziona la rete Internet domestica e le statistiche dei server dei nomi di dominio?

Un router domestico (in questo caso FritzBox) può registrare molto: quanto traffico sta andando, chi è connesso a quale velocità, ecc. Un server dei nomi di dominio (DNS) sulla rete locale mi ha aiutato a scoprire cosa si nasconde dietro i destinatari sconosciuti.

Nel complesso, il DNS ha avuto un impatto positivo sulla rete domestica: ha aggiunto velocità, stabilità e gestibilità.

Di seguito è riportato un diagramma che ha sollevato domande e la necessità di capire cosa stava succedendo. I risultati filtrano già le richieste note e funzionanti ai server dei nomi di dominio.

Perché ogni giorno vengono interrogati 60 domini oscuri mentre tutti dormono ancora?

Ogni giorno vengono interrogati 440 domini sconosciuti durante le ore di attività. Chi sono e cosa fanno?

Numero medio di richieste al giorno per ora

Come funziona la rete Internet domestica e le statistiche dei server dei nomi di dominio?

Interrogazione del rapporto 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'))

Di notte, l'accesso wireless è disabilitato ed è prevista l'attività del dispositivo, ad es. non è previsto alcun polling per i domini sconosciuti. Ciò significa che l'attività maggiore proviene da dispositivi con sistemi operativi come Android, iOS e Blackberry OS.

Elenchiamo i domini che vengono sottoposti a polling intensivo. L'intensità sarà determinata da parametri come il numero di richieste al giorno, il numero di giorni di attività e in quante ore della giornata sono state notate.

Tutti i sospettati erano sulla lista.

Domini sottoposti a polling intensivo

Come funziona la rete Internet domestica e le statistiche dei server dei nomi di dominio?

Interrogazione del rapporto 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

Blocchiamo isс.blackberry.com e iceberg.blackberry.com, cosa che il produttore giustificherà per motivi di sicurezza. Risultato: quando si tenta di connettersi alla WLAN, mostra la pagina di accesso e non si connette mai più da nessuna parte. Sblocchiamolo.

detectorportal.firefox.com è lo stesso meccanismo, implementato solo nel browser Firefox. Se è necessario accedere alla rete WLAN, verrà prima visualizzata la pagina di accesso. Non è del tutto chiaro il motivo per cui l’indirizzo dovrebbe essere sottoposto a ping così spesso, ma il meccanismo è chiaramente descritto dal produttore.

Skype. Il comportamento di questo programma è simile a quello di un worm: si nasconde e non si lascia uccidere nella barra delle applicazioni, genera molto traffico sulla rete, esegue il ping di 10 domini ogni 4 minuti. Quando si effettua una videochiamata, la connessione Internet si interrompe costantemente, quando non può essere migliore. Per ora è necessario, quindi resta.

upload.fp.measure.office.com - si riferisce a Office 365, non sono riuscito a trovare una descrizione decente.
browser.pipe.aria.microsoft.com - Non sono riuscito a trovare una descrizione decente.
Blocchiamo entrambi.

connect.facebook.net - Applicazione di chat di Facebook. Resti.

mediator.mail.ru Un'analisi di tutte le richieste per il dominio mail.ru ha mostrato la presenza di un numero enorme di risorse pubblicitarie e raccoglitori di statistiche, il che causa sfiducia. Il dominio mail.ru viene inviato interamente alla lista nera.

google-analytics.com - non influisce sulla funzionalità dei dispositivi, quindi lo blocchiamo.
doubleclick.net: conta i clic pubblicitari. Blocchiamo.

Molte richieste vanno a googleapis.com. Il blocco ha portato alla gioiosa chiusura dei messaggi brevi sul tablet, che mi sembrano stupidi. Ma il Play Store ha smesso di funzionare, quindi sblocchiamolo.

cloudflare.com: scrivono di amare l'open source e, in generale, scrivono molto su se stessi. Non è del tutto chiara l’intensità dell’indagine del dominio, che spesso è molto più elevata dell’effettiva attività su Internet. Lasciamo perdere per ora.

Pertanto, l’intensità delle richieste è spesso correlata alla funzionalità richiesta dei dispositivi. Ma sono stati scoperti anche coloro che hanno esagerato con l'attività.

Primo

Quando la connessione Internet wireless è attiva, tutti dormono ancora ed è possibile vedere quali richieste vengono inviate per prime alla rete. Quindi, alle 6:50 si accende Internet e nei primi dieci minuti vengono interrogati quotidianamente 60 domini:

Come funziona la rete Internet domestica e le statistiche dei server dei nomi di dominio?

Interrogazione del rapporto 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 controlla la connessione WLAN per la presenza di una pagina di login.
Citrix esegue il ping del proprio server anche se l'applicazione non è attivamente in esecuzione.
Symantec verifica i certificati.
Mozilla controlla gli aggiornamenti, anche se nelle impostazioni ho chiesto di non farlo.

mmo.de è un servizio di gioco. Molto probabilmente la richiesta viene avviata dalla chat di Facebook. Blocchiamo.

Apple attiverà tutti i suoi servizi. api-glb-fra.smoot.apple.com - a giudicare dalla descrizione, ogni clic sul pulsante viene inviato qui per scopi di ottimizzazione dei motori di ricerca. Altamente sospetto, ma correlato alla funzionalità. Lo lasciamo.

Di seguito è riportato un lungo elenco di richieste a microsoft.com. Blocchiamo tutti i domini a partire dal terzo livello.

Numero dei primissimi sottodomini
Come funziona la rete Internet domestica e le statistiche dei server dei nomi di dominio?

Quindi, i primi 10 minuti di accensione di Internet wireless.
iOS esamina il maggior numero di sottodomini: 32. Seguito da Android - 24, quindi Windows - 15 e infine Blackberry - 9.
La sola applicazione Facebook interroga 10 domini, Skype interroga 9 domini.

Fonte di informazione

La fonte per l'analisi era il file di registro del server locale bind9, che contiene il seguente 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)

Il file è stato importato in un database SQLite e analizzato utilizzando query SQL.
Il server funge da cache; le richieste provengono dal router, quindi c'è sempre un client di richiesta. È sufficiente una struttura di tabella semplificata, ad es. Il report richiede l'ora della richiesta, la richiesta stessa e il dominio di secondo livello per il raggruppamento.

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

conclusione

Pertanto, in seguito all'analisi del registro del server dei nomi di dominio, sono stati censurati e inseriti nella lista bloccata più di 50 record.

La necessità di alcune domande è ben descritta dai produttori di software e ispira fiducia. Tuttavia, gran parte di questa attività è infondata e discutibile.

Fonte: habr.com

Aggiungi un commento