Kako živi kućni internet i statistika poslužitelja imena domena?

Kućni ruter (u ovom slučaju FritzBox) može puno toga bilježiti: koliki je promet i kada, tko je spojen kojom brzinom, itd. Poslužitelj imena domene (DNS) na lokalnoj mreži pomogao mi je otkriti što se krije iza nepoznatih primatelja.

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

Ispod je dijagram koji je pokrenuo pitanja i potrebu da se razumije što se događa. Rezultati već filtriraju poznate i radne zahtjeve poslužiteljima naziva domena.

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

Svaki dan se ispituje 440 nepoznatih domena tijekom aktivnih sati. Tko su oni i što rade?

Prosječan broj zahtjeva po danu po satu

Kako živi kućni internet i statistika poslužitelja imena domena?

Upit SQL 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 anketiranja za nepoznate domene. To znači da najveća aktivnost dolazi od uređaja s operativnim sustavima kao što su Android, iOS i Blackberry OS.

Nabrojimo domene koje 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.

Na popisu su bili svi očekivani osumnjičenici.

Intenzivno ispitivane domene

Kako živi kućni internet i statistika poslužitelja imena domena?

Upit SQL 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 sigurnosnim razlozima. Rezultat: kada se pokušava spojiti na WLAN, prikazuje se stranica za prijavu i nikada se više nigdje ne povezuje. Odblokirajmo ga.

detectportal.firefox.com je isti mehanizam, samo implementiran u pregledniku Firefox. Ako se trebate prijaviti na WLAN mrežu, prvo će se prikazati stranica za prijavu. Nije sasvim jasno zašto se adresa tako često pinga, ali proizvođač jasno opisuje mehanizam.

skype. Radnje ovog programa slične su crvu: skriva se i ne dopušta jednostavno da bude ubijen u programskoj traci, stvara puno prometa na mreži, pinga 10 domene svakih 4 minuta. Prilikom videopoziva internetska veza se stalno prekida, kad bolje ne može. Za sada je potrebno, pa 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 - aplikacija za Facebook chat. Ostaci.

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

google-analytics.com - ne utječe na funkcionalnost uređaja, stoga 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, što mi se čini glupim. Ali playstore je prestao raditi, pa ga deblokirajmo.

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

Stoga je intenzitet zahtjeva često vezan uz traženu funkcionalnost uređaja. No, otkriveni su i oni koji su pretjerali s aktivnošću.

Prvi

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

Kako živi kućni internet i statistika poslužitelja imena domena?

Upit SQL 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 za prisutnost stranice za prijavu.
Citrix pinga svoj poslužitelj iako aplikacija nije aktivno pokrenuta.
Symantec provjerava certifikate.
Mozilla provjerava ažuriranja, iako sam u postavkama tražio da to ne činim.

mmo.de je usluga igranja. Najvjerojatnije je zahtjev pokrenut putem facebook chata. Blokiramo.

Apple će aktivirati sve svoje usluge. api-glb-fra.smoot.apple.com - sudeći prema opisu, svaki klik na gumb šalje se ovdje u svrhu optimizacije za tražilice. Vrlo sumnjivo, ali povezano s funkcionalnošću. Ostavljamo ga.

Slijedi dugačak popis zahtjeva za microsoft.com. Blokiramo sve domene počevši od treće razine.

Broj prvih poddomena
Kako živi kućni internet i statistika poslužitelja imena domena?

Dakle, prvih 10 minuta paljenja bežičnog interneta.
iOS anketira najviše poddomena - 32. Slijedi 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 log datoteka bind9 lokalnog poslužitelja, 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 pomoću SQL upita.
Poslužitelj djeluje kao predmemorija; zahtjevi dolaze s usmjerivača, tako da uvijek postoji jedan klijent zahtjeva. Dovoljna je pojednostavljena struktura tablice, tj. Izvješće zahtijeva vrijeme zahtjeva, sam zahtjev i domenu druge razine za grupiranje.

DDL tablice

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

Izlaz

Tako je, kao rezultat analize dnevnika poslužitelja imena domene, više od 50 zapisa cenzurirano i stavljeno na listu blokiranih.

Nužnost nekih upita proizvođači softvera dobro opisuju i ulijevaju povjerenje. Međutim, veliki dio aktivnosti je neutemeljen i upitan.

Izvor: www.habr.com

Dodajte komentar