Hur fungerar hemmainternet och domännamnsserverns statistik?

En hemrouter (i det här fallet FritzBox) kan spela in mycket: hur mycket trafik som går när, vem är ansluten med vilken hastighet osv. En domännamnsserver (DNS) på det lokala nätverket hjälpte mig att ta reda på vad som gömde sig bakom de okända mottagarna.

Sammantaget har DNS haft en positiv inverkan på hemnätverket: det har lagt till hastighet, stabilitet och hanterbarhet.

Nedan är ett diagram som väckte frågor och behovet av att förstå vad som hände. Resultaten filtrerar redan bort kända och fungerande förfrågningar till domännamnsservrar.

Varför tillfrågas 60 obskyra domäner varje dag medan alla fortfarande sover?

Varje dag tillfrågas 440 okända domäner under aktiva timmar. Vilka är de och vad gör de?

Genomsnittligt antal förfrågningar per dag för timme

Hur fungerar hemmainternet och domännamnsserverns statistik?

SQL-rapportfråga

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

På natten är trådlös åtkomst inaktiverad och enhetsaktivitet förväntas, d.v.s. det finns ingen omröstning för okända domäner. Det betyder att den största aktiviteten kommer från enheter med operativsystem som Android, iOS och Blackberry OS.

Låt oss lista de domäner som tillfrågas intensivt. Intensiteten kommer att bestämmas av parametrar som antalet förfrågningar per dag, antalet dagars aktivitet och hur många timmar på dygnet de märktes.

Alla förväntade misstänkta fanns med på listan.

Intensivt undersökta domäner

Hur fungerar hemmainternet och domännamnsserverns statistik?

SQL-rapportfråga

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

Vi blockerar isс.blackberry.com och iceberg.blackberry.com, vilket tillverkaren kommer att motivera av säkerhetsskäl. Resultat: när du försöker ansluta till WLAN visar den inloggningssidan och ansluter aldrig någonstans igen. Låt oss avblockera den.

detectportal.firefox.com är samma mekanism, endast implementerad i webbläsaren Firefox. Om du behöver logga in på WLAN-nätverket kommer det först att visa inloggningssidan. Det är inte helt klart varför adressen ska pingas så ofta, men mekanismen beskrivs tydligt av tillverkaren.

skype. Åtgärderna i det här programmet liknar en mask: det gömmer sig och låter sig inte bara dödas i aktivitetsfältet, genererar mycket trafik på nätverket, pingar 10 domäner var 4:e minut. När du ringer ett videosamtal bryts internetanslutningen hela tiden, när det inte kan bli bättre. För nu är det nödvändigt, så det återstår.

upload.fp.measure.office.com - hänvisar till Office 365, jag kunde inte hitta en anständig beskrivning.
browser.pipe.aria.microsoft.com - Jag kunde inte hitta en bra beskrivning.
Vi blockerar båda.

connect.facebook.net - Facebook-chattapplikation. Resterna.

mediator.mail.ru En analys av alla förfrågningar för domänen mail.ru visade närvaron av ett stort antal reklamresurser och statistiksamlare, vilket orsakar misstro. Mail.ru-domänen skickas helt till den svarta listan.

google-analytics.com - påverkar inte enheternas funktionalitet, så vi blockerar det.
doubleclick.net - räknar annonsklick. Vi blockerar.

Många förfrågningar går till googleapis.com. Blockeringen har lett till den glada avstängningen av korta meddelanden på surfplattan, vilket verkar dumt för mig. Men playstore slutade fungera, så låt oss avblockera den.

cloudflare.com – de skriver att de älskar öppen källkod och i allmänhet skriver mycket om sig själva. Intensiteten i domänundersökningen är inte helt klar, som ofta är mycket högre än den faktiska aktiviteten på Internet. Låt oss lämna det för nu.

Sålunda är intensiteten av förfrågningar ofta relaterad till den erforderliga funktionaliteten hos enheterna. Men de som överdrev med aktivitet upptäcktes också.

Den allra första

När det trådlösa internet är påslaget sover alla fortfarande och det går att se vilka förfrågningar som skickas till nätverket först. Så klockan 6:50 slås internet på och under den första tiominutersperioden frågas 60 domäner dagligen:

Hur fungerar hemmainternet och domännamnsserverns statistik?

SQL-rapportfråga

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 kontrollerar WLAN-anslutningen för att se om det finns en inloggningssida.
Citrix plingar sin server trots att applikationen inte körs aktivt.
Symantec verifierar certifikat.
Mozilla söker efter uppdateringar, även om jag i inställningarna bad om att inte göra detta.

mmo.de är en speltjänst. Troligtvis initieras förfrågan av facebookchatt. Vi blockerar.

Apple kommer att aktivera alla sina tjänster. api-glb-fra.smoot.apple.com - av beskrivningen att döma skickas varje knappklick hit i sökmotoroptimeringssyfte. Mycket misstänkt, men relaterat till funktionalitet. Vi lämnar det.

Följande är en lång lista med förfrågningar till microsoft.com. Vi blockerar alla domäner från och med den tredje nivån.

Antal allra första underdomäner
Hur fungerar hemmainternet och domännamnsserverns statistik?

Så, de första 10 minuterna av att slå på det trådlösa internet.
iOS undersökningar flest underdomäner - 32. Följt av Android - 24, sedan Windows - 15 och sist Blackberry - 9.
Facebook-applikationen ensam undersökningar 10 domäner, skype undersökningar 9 domäner.

En källa till information

Källan för analysen var den lokala loggfilen för bind9-servern, som innehåller följande 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)

Filen importerades till en SQLite-databas och analyserades med hjälp av SQL-frågor.
Servern fungerar som en cache, förfrågningar kommer från routern, så det finns alltid en begäran-klient. Det räcker med en förenklad tabellstruktur, d.v.s. Rapporten kräver tidpunkten för begäran, själva begäran och andranivådomänen för gruppering.

DDL-tabeller

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

Utgång

Som ett resultat av analysen av domännamnsserverloggen censurerades således mer än 50 poster och placerades på blockeringslistan.

Nödvändigheten av vissa frågor beskrivs väl av programvarutillverkare och inger förtroende. Mycket av verksamheten är dock ogrundad och tveksam.

Källa: will.com

Lägg en kommentar