Kako živi kućni Internet i statistika servera imena domena?

Kućni ruter (u ovom slučaju FritzBox) može puno snimiti: koliko prometa ide kada, ko je povezan kojom brzinom itd. Server imena domena (DNS) na lokalnoj mreži pomogao mi je da saznam šta se krije iza nepoznatih primalaca.

Sve u svemu, DNS je imao pozitivan uticaj na kućnu mrežu: dodao je brzinu, stabilnost i upravljivost.

Ispod je dijagram koji je pokrenuo pitanja i potrebu da se shvati šta se dešava. Rezultati već filtriraju poznate i radne zahtjeve serverima imena domena.

Zašto se 60 opskurnih domena ispituje svaki dan dok svi još spavaju?

Svakog dana se anketira 440 nepoznatih domena tokom aktivnih sati. Ko su oni i čime se bave?

Prosječan broj zahtjeva dnevno po satu

Kako živi kućni Internet i statistika servera imena domena?

SQL upit izvješća

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'))

Noću je bežični pristup onemogućen i očekuje se aktivnost uređaja, tj. nema glasanja za nepoznate domene. To znači da najveća aktivnost dolazi od uređaja sa operativnim sistemima kao što su Android, iOS i Blackberry OS.

Nabrojimo domene koji se intenzivno anketiraju. Intenzitet će biti određen parametrima kao što su broj zahtjeva po danu, broj dana aktivnosti i u koliko sati u danu su primijećeni.

Svi očekivani osumnjičeni bili su na listi.

Intenzivno anketirani domeni

Kako živi kućni Internet i statistika servera imena domena?

SQL upit izvješća

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

Blokiramo iss.blackberry.com i iceberg.blackberry.com, što će proizvođač opravdati iz sigurnosnih razloga. Rezultat: kada se pokušava povezati na WLAN, prikazuje stranicu za prijavu i nikada se više nigdje ne povezuje. Deblokirajmo ga.

detectportal.firefox.com je isti mehanizam, samo implementiran u Firefox pretraživaču. Ako se trebate prijaviti na WLAN mrežu, prvo će se prikazati stranica za prijavu. Nije sasvim jasno zašto adresu treba pingovati tako često, ali mehanizam je jasno opisan od strane proizvođača.

skype. Radnje ovog programa su slične crvu: skriva se i ne dozvoljava jednostavno da bude ubijen u traci zadataka, generiše mnogo prometa na mreži, pinguje 10 domene svakih 4 minuta. Prilikom video poziva internet konekcija se stalno kvari, kada ne može biti bolja. Za sada je neophodno, tako i ostaje.

upload.fp.measure.office.com - odnosi se na Office 365, nisam mogao pronaći pristojan opis.
browser.pipe.aria.microsoft.com - Nisam mogao pronaći pristojan opis.
Blokiramo oboje.

connect.facebook.net - Facebook chat aplikacija. Ostaci.

mediator.mail.ru Analiza svih zahtjeva za domenu mail.ru pokazala je prisustvo velikog broja reklamnih resursa i sakupljača statistike, što izaziva nepovjerenje. Domena mail.ru se u potpunosti šalje na crnu listu.

google-analytics.com - ne utiče na funkcionalnost uređaja, pa ga blokiramo.
doubleclick.net - broji reklamne klikove. Blokiramo.

Mnogi zahtjevi idu na googleapis.com. Blokiranje je dovelo do radosnog gašenja kratkih poruka na tabletu, koje mi se čine glupim. Ali playstore je prestao da radi, pa hajde da ga deblokiramo.

cloudflare.com - pišu da vole open source i, općenito, pišu puno o sebi. Intenzitet istraživanja domena nije sasvim jasan, koji je često mnogo veći od stvarne aktivnosti na internetu. Ostavimo to za sada.

Stoga je intenzitet zahtjeva često vezan za potrebnu funkcionalnost uređaja. Ali otkriveni su i oni koji su pretjerali sa aktivnošću.

Prvi

Kada je bežični internet uključen, svi još spavaju i moguće je vidjeti koji se zahtjevi prvi šalju mreži. Dakle, u 6:50 se uključuje internet i u prvih deset minuta dnevno se anketira 60 domena:

Kako živi kućni Internet i statistika servera imena domena?

SQL upit izvješća

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 provjerava WLAN vezu da li postoji stranica za prijavu.
Citrix pinguje svoj server iako aplikacija nije aktivno pokrenuta.
Symantec provjerava certifikate.
Mozilla provjerava ažuriranja, iako sam u postavkama tražio da to ne radim.

mmo.de je usluga igara. Najvjerovatnije je zahtjev pokrenut putem facebook chata. Blokiramo.

Apple će aktivirati sve svoje usluge. api-glb-fra.smoot.apple.com - sudeći po opisu, svaki klik na dugme se šalje ovde u svrhu optimizacije pretraživača. Vrlo sumnjivo, ali vezano za funkcionalnost. Ostavljamo to.

Slijedi duga lista zahtjeva za microsoft.com. Blokiramo sve domene počevši od trećeg nivoa.

Broj prvih poddomena
Kako živi kućni Internet i statistika servera imena domena?

Dakle, prvih 10 minuta uključivanja bežičnog interneta.
iOS anketira najviše poddomena - 32. Slijede Android - 24, zatim Windows - 15 i na kraju Blackberry - 9.
Samo facebook aplikacija anketira 10 domena, skype anketira 9 domena.

Izvor informacija

Izvor za analizu bila je bind9 datoteka dnevnika lokalnog servera, koja sadrži sljedeći 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)

Datoteka je uvezena u sqlite bazu podataka i analizirana korištenjem SQL upita.
Server se ponaša kao keš; zahtjevi dolaze sa rutera, tako da uvijek postoji jedan zahtjev klijent. Dovoljna je pojednostavljena struktura tabele, tj. Izveštaj zahteva vreme zahteva, sam zahtev i domen drugog nivoa za grupisanje.

DDL tabele

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

zaključak

Tako je, kao rezultat analize log servera imena domena, cenzurisano više od 50 zapisa i stavljeno na listu blokova.

Proizvođači softvera dobro opisuju potrebu za nekim upitima i ulijevaju povjerenje. Međutim, veliki dio aktivnosti je neosnovan i upitan.

izvor: www.habr.com

Dodajte komentar