Kako živi domači internet in statistika domenskega strežnika?

Domači usmerjevalnik (v tem primeru FritzBox) lahko beleži veliko: koliko prometa poteka kdaj, kdo je povezan s kakšno hitrostjo itd. Domenski strežnik (DNS) v lokalnem omrežju mi ​​je pomagal ugotoviti, kaj se skriva za neznanimi prejemniki.

Na splošno je DNS pozitivno vplival na domače omrežje: dodal je hitrost, stabilnost in upravljivost.

Spodaj je diagram, ki je sprožil vprašanja in potrebo po razumevanju, kaj se dogaja. Rezultati že filtrirajo znane in delujoče zahteve za strežnike domenskih imen.

Zakaj se vsak dan anketira 60 nejasnih domen, medtem ko vsi še spijo?

Vsak dan je med aktivnimi urami anketiranih 440 neznanih domen. Kdo so in kaj delajo?

Povprečno število zahtevkov na dan po urah

Kako živi domači internet in statistika domenskega strežnika?

Poizvedba poročila 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'))

Ponoči je brezžični dostop onemogočen in pričakuje se aktivnost naprave, tj. glasovanja za neznane domene ni. To pomeni, da je največja aktivnost na napravah z operacijskimi sistemi, kot so Android, iOS in Blackberry OS.

Naštejmo domene, ki so anketirane intenzivno. Intenzivnost bodo določali parametri, kot so število zahtevkov na dan, število dni aktivnosti in v koliko urah dneva so bile opažene.

Na seznamu so bili vsi pričakovani osumljenci.

Intenzivno anketirane domene

Kako živi domači internet in statistika domenskega strežnika?

Poizvedba poročila 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

Isс.blackberry.com in iceberg.blackberry.com blokiramo, kar bo proizvajalec upravičil zaradi varnosti. Rezultat: ko se poskuša povezati z WLAN-om, prikaže stran za prijavo in se nikoli več ne poveže nikamor. Odblokirajmo ga.

detectportal.firefox.com je enak mehanizem, le implementiran v brskalniku Firefox. Če se morate prijaviti v omrežje WLAN, bo najprej prikazana stran za prijavo. Ni povsem jasno, zakaj je treba naslov tako pogosto pingati, vendar je mehanizem jasno opisan s strani proizvajalca.

skype. Dejanja tega programa so podobna črvu: skrije se in ne pusti preprosto ubiti v opravilni vrstici, ustvari veliko prometa v omrežju, pinga 10 domene vsakih 4 minut. Pri video klicu se internetna povezava nenehno prekine, ko ne more biti boljša. Za zdaj je nujno, tako ostaja.

upload.fp.measure.office.com - nanaša se na Office 365, nisem našel primernega opisa.
browser.pipe.aria.microsoft.com - Nisem mogel najti primernega opisa.
Oboje blokiramo.

connect.facebook.net - Facebook aplikacija za klepet. Ostanki.

mediator.mail.ru Analiza vseh zahtev za domeno mail.ru je pokazala prisotnost ogromnega števila oglaševalskih virov in zbiralcev statistike, kar povzroča nezaupanje. Domena mail.ru je v celoti poslana na črni seznam.

google-analytics.com - ne vpliva na funkcionalnost naprav, zato ga blokiramo.
doubleclick.net - šteje klike oglasov. Blokiramo.

Veliko zahtev gre na googleapis.com. Blokada je povzročila veselo ugašanje kratkih sporočil na tablici, kar se mi zdi neumno. Toda playstore je prenehal delovati, zato ga odblokirajmo.

cloudflare.com - pišejo, da obožujejo odprto kodo in nasploh veliko pišejo o sebi. Ni povsem jasna intenzivnost domenskega anketiranja, ki je pogosto veliko večja od dejanske aktivnosti na internetu. Pustimo za zdaj.

Tako je intenzivnost zahtev pogosto povezana z zahtevano funkcionalnostjo naprav. Odkrili pa so tudi tiste, ki so z aktivnostjo pretiravali.

Čisto prvi

Ko je brezžični internet vklopljen, vsi še spijo in je mogoče videti, katere zahteve so prve poslane v omrežje. Torej, ob 6 se internet vklopi in v prvih desetih minutah se anketira 50 domen dnevno:

Kako živi domači internet in statistika domenskega strežnika?

Poizvedba poročila 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 preveri povezavo WLAN za prisotnost strani za prijavo.
Citrix pinga svoj strežnik, čeprav se aplikacija ne izvaja aktivno.
Symantec preverja certifikate.
Mozilla preverja posodobitve, čeprav sem v nastavitvah zahteval, da tega ne počnem.

mmo.de je igralna storitev. Najverjetneje je zahtevo sprožil Facebook klepet. Blokiramo.

Apple bo aktiviral vse svoje storitve. api-glb-fra.smoot.apple.com - sodeč po opisu se vsak klik na gumb pošlje sem zaradi optimizacije iskalnikov. Zelo sumljivo, a povezano s funkcionalnostjo. Pustimo ga.

Sledi dolg seznam zahtev za microsoft.com. Blokiramo vse domene od tretje stopnje naprej.

Število prvih poddomen
Kako živi domači internet in statistika domenskega strežnika?

Torej, prvih 10 minut vklopa brezžičnega interneta.
iOS anketira največ poddomen – 32. Sledi Android – 24, nato Windows – 15 in nazadnje Blackberry – 9.
Samo aplikacija facebook anketira 10 domen, skype anketira 9 domen.

Vir informacij

Vir za analizo je bila datoteka dnevnika lokalnega strežnika bind9, ki vsebuje naslednjo obliko:

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 bila uvožena v bazo podatkov sqlite in analizirana s poizvedbami SQL.
Strežnik deluje kot predpomnilnik; zahteve prihajajo iz usmerjevalnika, tako da je vedno en odjemalec zahteve. Zadostuje poenostavljena struktura tabele, t.j. Poročilo zahteva čas zahteve, samo zahtevo in drugonivojsko domeno za združevanje.

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

Izhod

Tako je bilo zaradi analize dnevnika domenskega strežnika cenzuriranih in uvrščenih na seznam blokiranih več kot 50 zapisov.

Nujnost nekaterih poizvedb je dobro opisana s strani proizvajalcev programske opreme in vzbuja zaupanje. Velik del dejavnosti pa je neutemeljen in vprašljiv.

Vir: www.habr.com

Dodaj komentar