Miten koti-internet elää ja verkkotunnuspalvelimen tilastot?

Kotireititin (tässä tapauksessa FritzBox) voi tallentaa paljon: kuinka paljon liikennettä tapahtuu milloin, kuka on yhteydessä millä nopeudella jne. Paikallisverkon verkkotunnuspalvelin (DNS) auttoi minua selvittämään, mitä tuntemattomien vastaanottajien takana oli piilossa.

Kaiken kaikkiaan DNS:llä on ollut myönteinen vaikutus kotiverkkoon: se on lisännyt nopeutta, vakautta ja hallittavuutta.

Alla on kaavio, joka herätti kysymyksiä ja tarpeen ymmärtää, mitä tapahtui. Tulokset suodattavat jo tunnetut ja toimivat pyynnöt verkkotunnuksen nimipalvelimille.

Miksi 60 epäselvää verkkotunnusta kysytään joka päivä kaikkien vielä nukkuessa?

Joka päivä 440 tuntematonta verkkotunnusta kysytään aktiivisina aikoina. Keitä he ovat ja mitä he tekevät?

Pyyntöjen keskimääräinen määrä päivässä tunnissa

Miten koti-internet elää ja verkkotunnuspalvelimen tilastot?

SQL-raporttikysely

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

Yöllä langaton yhteys on poissa käytöstä ja laitteen toimintaa odotetaan, ts. tuntemattomille verkkotunnuksille ei ole kyselyä. Tämä tarkoittaa, että suurin aktiivisuus tulee laitteista, joissa on käyttöjärjestelmä, kuten Android, iOS ja Blackberry OS.

Listataan verkkotunnukset, joille kyselyä tehdään intensiivisesti. Voimakkuus määräytyy parametreilla, kuten pyyntöjen määrä päivässä, aktiivisuuspäivien lukumäärä ja kuinka monessa tunnissa vuorokaudesta ne havaittiin.

Kaikki odotetut epäillyt olivat listalla.

Intensiivisesti pollatut verkkotunnukset

Miten koti-internet elää ja verkkotunnuspalvelimen tilastot?

SQL-raporttikysely

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

Estämme sivustot isс.blackberry.com ja iceberg.blackberry.com, minkä valmistaja perustelee turvallisuussyistä. Tulos: kun yrittää muodostaa yhteyden WLAN-verkkoon, se näyttää kirjautumissivun eikä muodosta yhteyttä enää minnekään. Avataan esto.

detectportal.firefox.com on sama mekanismi, vain Firefox-selaimessa. Jos sinun on kirjauduttava WLAN-verkkoon, se näyttää ensin kirjautumissivun. Ei ole täysin selvää, miksi osoitetta pitäisi pingata niin usein, mutta mekanismi on selkeästi valmistajan kuvaama.

skype. Tämän ohjelman toiminnot ovat madon kaltaisia: se piiloutuu eikä anna itsensä tappaa tehtäväpalkissa, tuottaa paljon liikennettä verkkoon, ping 10 verkkotunnusta 4 minuutin välein. Videopuhelua soitettaessa Internet-yhteys katkeaa jatkuvasti, kun se ei voi olla parempi. Toistaiseksi se on välttämätöntä, joten se jää.

upload.fp.measure.office.com - viittaa Office 365:een, en löytänyt kunnollista kuvausta.
browser.pipe.aria.microsoft.com - En löytänyt kunnollista kuvausta.
Estetään molemmat.

connect.facebook.net - Facebookin chat-sovellus. Jäännökset.

mediator.mail.ru Kaikkien mail.ru-verkkotunnuksen pyyntöjen analyysi osoitti valtavan määrän mainosresursseja ja tilastojen kerääjiä, mikä aiheuttaa epäluottamusta. mail.ru-verkkotunnus lähetetään kokonaan mustalle listalle.

google-analytics.com - ei vaikuta laitteiden toimivuuteen, joten estämme sen.
doubleclick.net - laskee mainosnapsautukset. Me estämme.

Monet pyynnöt menevät osoitteeseen googleapis.com. Esto on johtanut lyhytviestien iloiseen sulkemiseen tabletilla, mikä minusta tuntuu typerältä. Mutta leikkikauppa lakkasi toimimasta, joten vapautetaan sen esto.

cloudflare.com - he kirjoittavat rakastavansa avointa lähdekoodia ja kirjoittavat yleensä paljon itsestään. Verkkotunnuskyselyn intensiteetti ei ole täysin selvä, mikä on usein paljon korkeampi kuin todellinen Internet-aktiviteetti. Jätetään se toistaiseksi.

Näin ollen pyyntöjen intensiteetti liittyy usein laitteiden vaadittavaan toimivuuteen. Mutta myös niitä, jotka liioittelivat toimintaansa, löydettiin.

Aivan ensimmäinen

Kun langaton Internet on päällä, kaikki ovat edelleen unessa ja on mahdollista nähdä, mitkä pyynnöt lähetetään verkkoon ensin. Joten klo 6:50 Internet käynnistyy ja ensimmäisen kymmenen minuutin aikana 60 verkkotunnusta kyselyyn tehdään päivittäin:

Miten koti-internet elää ja verkkotunnuspalvelimen tilastot?

SQL-raporttikysely

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 tarkistaa WLAN-yhteyden kirjautumissivun olemassaolon.
Citrix pingaa palvelintaan, vaikka sovellus ei ole aktiivisesti käynnissä.
Symantec tarkistaa varmenteet.
Mozilla tarkistaa päivitykset, vaikka asetuksissa pyysin olemaan tekemättä tätä.

mmo.de on pelipalvelu. Todennäköisesti pyyntö on käynnistetty Facebook-chatin kautta. Me estämme.

Apple aktivoi kaikki palvelunsa. api-glb-fra.smoot.apple.com - kuvauksen perusteella jokainen painikkeen napsautus lähetetään tänne hakukoneoptimointia varten. Erittäin epäilyttävä, mutta liittyy toimivuuteen. Jätämme sen.

Seuraavassa on pitkä luettelo microsoft.com-sivustolle tehtävistä pyynnöistä. Estämme kaikki verkkotunnukset kolmannesta tasosta alkaen.

Aivan ensimmäisten aliverkkotunnusten lukumäärä
Miten koti-internet elää ja verkkotunnuspalvelimen tilastot?

Joten ensimmäiset 10 minuuttia langattoman Internetin käynnistämisestä.
iOS äänestää eniten aliverkkotunnuksia - 32. Seuraavaksi Android - 24, sitten Windows - 15 ja viimeiseksi Blackberry - 9.
Pelkästään facebook-sovellus äänestää 10 verkkotunnusta, skype 9 verkkotunnusta.

Tietolähde

Analyysin lähde oli paikallisen palvelimen lokitiedosto bind9, joka sisältää seuraavan muodon:

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)

Tiedosto tuotiin sqlite-tietokantaan ja analysoitiin SQL-kyselyillä.
Palvelin toimii välimuistina; pyynnöt tulevat reitittimeltä, joten pyyntöasiakkaalla on aina yksi. Yksinkertaistettu taulukkorakenne riittää, ts. Raportti vaatii ryhmittelyä varten pyynnön ajan, itse pyynnön ja toisen tason toimialueen.

DDL taulukot

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

johtopäätös

Näin ollen verkkotunnuksen nimipalvelimen lokin analyysin tuloksena yli 50 tietuetta sensuroitiin ja asetettiin estolistalle.

Ohjelmistovalmistajat kuvailevat hyvin joidenkin kyselyiden tarpeellisuutta ja se herättää luottamusta. Suurin osa toiminnasta on kuitenkin perusteetonta ja kyseenalaista.

Lähde: will.com

Lisää kommentti