Cum trăiesc internetul de acasă și statisticile serverului de nume de domeniu?

Un router de acasă (în acest caz FritzBox) poate înregistra multe: cât de mult trafic merge când, cine este conectat la ce viteză etc. Un server de nume de domeniu (DNS) din rețeaua locală m-a ajutat să aflu ce se ascunde în spatele destinatarilor necunoscuți.

În general, DNS a avut un impact pozitiv asupra rețelei de acasă: a adăugat viteză, stabilitate și manevrabilitate.

Mai jos este o diagramă care a ridicat întrebări și necesitatea de a înțelege ce se întâmplă. Rezultatele filtrează deja cererile cunoscute și funcționale către serverele de nume de domeniu.

De ce sunt sondate 60 de domenii obscure în fiecare zi în timp ce toată lumea încă doarme?

În fiecare zi, 440 de domenii necunoscute sunt sondate în timpul orelor de activitate. Cine sunt ei și ce fac?

Numărul mediu de solicitări pe zi pe oră

Cum trăiesc internetul de acasă și statisticile serverului de nume de domeniu?

Interogare de raport 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'))

Noaptea, accesul wireless este dezactivat și este așteptată activitatea dispozitivului, de ex. nu există sondaje pentru domenii necunoscute. Aceasta înseamnă că cea mai mare activitate vine de la dispozitivele cu sisteme de operare precum Android, iOS și Blackberry OS.

Să enumerăm domeniile care sunt interogate intens. Intensitatea va fi determinată de parametri precum numărul de solicitări pe zi, numărul de zile de activitate și în câte ore din zi au fost observate.

Toți suspecții așteptați erau pe listă.

Domenii chestionate intensiv

Cum trăiesc internetul de acasă și statisticile serverului de nume de domeniu?

Interogare de raport 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

Blocăm isс.blackberry.com și iceberg.blackberry.com, pe care producătorul le va justifica din motive de securitate. Rezultat: atunci când încercați să vă conectați la WLAN, afișează pagina de conectare și nu se mai conectează niciodată nicăieri. Să-l deblocăm.

detectportal.firefox.com este același mecanism, implementat doar în browserul Firefox. Dacă trebuie să vă conectați la rețeaua WLAN, va afișa mai întâi pagina de conectare. Nu este complet clar de ce adresa ar trebui să fie trimisă atât de des, dar mecanismul este descris clar de producător.

skype. Acțiunile acestui program sunt similare cu un vierme: se ascunde și nu își permite pur și simplu să fie ucis în bara de activități, generează mult trafic în rețea, face ping la 10 domenii la fiecare 4 minute. La efectuarea unui apel video, conexiunea la Internet se întrerupe în mod constant, când nu poate fi mai bună. Deocamdată este necesar, așa că rămâne.

upload.fp.measure.office.com - se referă la Office 365, nu am găsit o descriere decentă.
browser.pipe.aria.microsoft.com - Nu am găsit o descriere decentă.
Le blocăm pe amândouă.

connect.facebook.net - aplicație de chat Facebook. Rămășițe.

mediator.mail.ru O analiză a tuturor solicitărilor pentru domeniul mail.ru a arătat prezența unui număr mare de resurse de publicitate și colectori de statistici, ceea ce provoacă neîncredere. Domeniul mail.ru este trimis integral pe lista neagră.

google-analytics.com - nu afectează funcționalitatea dispozitivelor, așa că îl blocăm.
doubleclick.net - numără clicurile publicitare. Blocam.

Multe solicitări ajung pe googleapis.com. Blocarea a dus la oprirea vesela a mesajelor scurte de pe tabletă, care mi se par stupide. Dar magazinul de jocuri a încetat să funcționeze, așa că hai să-l deblocăm.

cloudflare.com - ei scriu că iubesc open source și, în general, scriu multe despre ei înșiși. Intensitatea sondajului de domeniu nu este complet clară, care este adesea mult mai mare decât activitatea reală pe Internet. Să o lăsăm deocamdată.

Astfel, intensitatea solicitărilor este adesea legată de funcționalitatea cerută a dispozitivelor. Dar au fost descoperiți și cei care au exagerat cu activitate.

Chiar primul

Când internetul wireless este pornit, toată lumea este încă adormită și este posibil să vedeți ce solicitări sunt trimise mai întâi în rețea. Deci, la 6:50 Internetul pornește și în prima perioadă de timp de zece minute sunt sondate zilnic 60 de domenii:

Cum trăiesc internetul de acasă și statisticile serverului de nume de domeniu?

Interogare de raport 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 verifică conexiunea WLAN pentru prezența unei pagini de conectare.
Citrix face ping la server, chiar dacă aplicația nu rulează activ.
Symantec verifică certificatele.
Mozilla verifică actualizările, deși în setări am cerut să nu fac acest lucru.

mmo.de este un serviciu de jocuri. Cel mai probabil cererea este inițiată de chat-ul de pe facebook. Blocam.

Apple își va activa toate serviciile. api-glb-fra.smoot.apple.com - judecând după descriere, fiecare clic pe buton este trimis aici pentru optimizarea motorului de căutare. Foarte suspect, dar legat de funcționalitate. O lăsăm.

Următoarea este o listă lungă de solicitări către microsoft.com. Blocăm toate domeniile începând de la nivelul trei.

Numărul de primele subdomenii
Cum trăiesc internetul de acasă și statisticile serverului de nume de domeniu?

Deci, primele 10 minute de la pornirea internetului wireless.
iOS sondajează cele mai multe subdomenii - 32. Urmează Android - 24, apoi Windows - 15 și în sfârșit Blackberry - 9.
Doar aplicația facebook sondajează 10 domenii, skype sondajează 9 domenii.

Sursa informației

Sursa pentru analiză a fost fișierul jurnal de server local bind9, care conține următorul format:

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)

Fișierul a fost importat într-o bază de date sqlite și analizat folosind interogări SQL.
Serverul acționează ca un cache; cererile vin de la router, deci există întotdeauna un client de solicitare. O structură simplificată a tabelului este suficientă, de ex. Raportul necesită ora solicitării, solicitarea în sine și domeniul de nivel al doilea pentru grupare.

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

Producție

Astfel, în urma analizei jurnalului serverului de nume de domeniu, peste 50 de înregistrări au fost cenzurate și plasate pe lista de blocare.

Necesitatea unor interogări este bine descrisă de producătorii de software și inspiră încredere. Cu toate acestea, o mare parte din activitate este nefondată și discutabilă.

Sursa: www.habr.com

Adauga un comentariu