Jak wygląda domowy Internet i statystyki serwerów nazw domen?

Domowy router (w tym przypadku FritzBox) może wiele rejestrować: ile ruchu, kiedy, kto jest podłączony, z jaką prędkością itp. Serwer nazw domen (DNS) w sieci lokalnej pomógł mi dowiedzieć się, co kryło się za nieznanymi odbiorcami.

Ogólnie rzecz biorąc, DNS miał pozytywny wpływ na sieć domową: zwiększył szybkość, stabilność i łatwość zarządzania.

Poniżej schemat, który wzbudził pytania i potrzebę zrozumienia tego, co się działo. Wyniki już odfiltrowały znane i działające żądania kierowane do serwerów nazw domen.

Dlaczego codziennie sonduje się 60 nieznanych domen, podczas gdy wszyscy jeszcze śpią?

Codziennie w godzinach aktywności odpytywane jest 440 nieznanych domen. Kim oni są i co robią?

Średnia liczba żądań dziennie według godziny

Jak wygląda domowy Internet i statystyki serwerów nazw domen?

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

W nocy dostęp bezprzewodowy jest wyłączony i oczekiwana jest aktywność urządzenia, tj. nie ma odpytywania dla nieznanych domen. Oznacza to, że największą aktywność generują urządzenia z systemami operacyjnymi takimi jak Android, iOS i Blackberry OS.

Wymieńmy domeny, które są intensywnie odpytywane. Intensywność zostanie określona na podstawie parametrów takich jak liczba żądań dziennie, liczba dni aktywności oraz w ilu godzinach dnia zostały one zauważone.

Na liście byli wszyscy oczekiwani podejrzani.

Intensywnie odpytywane domeny

Jak wygląda domowy Internet i statystyki serwerów nazw domen?

Zapytanie raportu 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

Blokujemy witryny isс.blackberry.com i iceberg.blackberry.com, co producent uzasadni ze względów bezpieczeństwa. Wynik: przy próbie połączenia z siecią WLAN wyświetla się strona logowania i już nigdy się nie łączy. Odblokujmy to.

Detectportal.firefox.com to ten sam mechanizm, zaimplementowany tylko w przeglądarce Firefox. Jeśli chcesz zalogować się do sieci WLAN, najpierw wyświetli się strona logowania. Nie do końca jest jasne, dlaczego adres ma być tak często pingowany, ale mechanizm jest jasno opisany przez producenta.

Skype. Działanie tego programu jest podobne do robaka: ukrywa się i nie pozwala po prostu zostać zabity na pasku zadań, generuje duży ruch w sieci, pinguje 10 domeny co 4 minut. Podczas wykonywania połączenia wideo połączenie internetowe stale się psuje, gdy nie może być lepiej. Na razie jest to konieczne i tak pozostanie.

upload.fp.measure.office.com - odnosi się do Office 365, nie mogłem znaleźć porządnego opisu.
Browser.pipe.aria.microsoft.com — nie mogłem znaleźć przyzwoitego opisu.
Blokujemy oba.

connect.facebook.net - aplikacja do czatowania na Facebooku. Pozostaje.

mediator.mail.ru Analiza wszystkich żądań domeny mail.ru wykazała obecność ogromnej liczby zasobów reklamowych i modułów zbierających statystyki, co powoduje nieufność. Domena mail.ru zostaje w całości wysłana na czarną listę.

google-analytics.com - nie ma wpływu na funkcjonalność urządzeń, dlatego blokujemy.
doubleclick.net - zlicza kliknięcia reklamowe. Blokujemy.

Wiele żądań trafia do googleapis.com. Blokada doprowadziła do radosnego wyłączania krótkich wiadomości na tablecie, które wydają mi się głupie. Ale sklep Play przestał działać, więc odblokujmy go.

cloudflare.com - piszą, że kochają open source i w ogóle dużo piszą o sobie. Intensywność badania domenowego nie jest do końca jasna, która często jest znacznie większa niż rzeczywista aktywność w Internecie. Zostawmy to na razie.

Tym samym intensywność żądań często jest powiązana z wymaganą funkcjonalnością urządzeń. Ale odkryto też tych, którzy przesadzili z aktywnością.

Pierwszy

Gdy bezprzewodowy Internet jest włączony, wszyscy jeszcze śpią i można zobaczyć, które żądania są wysyłane do sieci jako pierwsze. Tak więc o 6:50 włącza się Internet i w ciągu pierwszych dziesięciu minut dziennie odpytywanych jest 60 domen:

Jak wygląda domowy Internet i statystyki serwerów nazw domen?

Zapytanie raportu 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 sprawdza połączenie WLAN pod kątem obecności strony logowania.
Citrix pinguje swój serwer, mimo że aplikacja nie jest aktywnie uruchomiona.
Firma Symantec weryfikuje certyfikaty.
Mozilla sprawdza dostępność aktualizacji, chociaż w ustawieniach prosiłem, aby tego nie robić.

mmo.de to serwis gier. Najprawdopodobniej żądanie jest inicjowane przez czat na Facebooku. Blokujemy.

Apple aktywuje wszystkie swoje usługi. api-glb-fra.smoot.apple.com - sądząc po opisie, każde kliknięcie przycisku jest wysyłane tutaj w celu optymalizacji wyszukiwarek. Wysoce podejrzane, ale powiązane z funkcjonalnością. Zostawiamy to.

Poniżej znajduje się długa lista żądań kierowanych do witryny microsoft.com. Blokujemy wszystkie domeny począwszy od trzeciego poziomu.

Liczba pierwszych subdomen
Jak wygląda domowy Internet i statystyki serwerów nazw domen?

A więc pierwsze 10 minut od włączenia bezprzewodowego Internetu.
iOS odpytuje najwięcej subdomen – 32. Następnie Android – 24, następnie Windows – 15 i wreszcie Blackberry – 9.
Sama aplikacja Facebook odpytuje 10 domen, Skype odpytuje 9 domen.

Źródło informacji

Źródłem analizy był plik dziennika lokalnego serwera bind9, który ma następujący 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)

Plik został zaimportowany do bazy danych sqlite i poddany analizie za pomocą zapytań SQL.
Serwer działa jak pamięć podręczna; żądania pochodzą z routera, więc zawsze jest jeden klient żądający. Wystarczy uproszczona struktura tabeli, tj. Raport wymaga czasu żądania, samego żądania i domeny drugiego poziomu do grupowania.

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

Wniosek

Tym samym w wyniku analizy logu serwera nazw domen, ponad 50 rekordów zostało ocenzurowanych i umieszczonych na liście zablokowanych.

Konieczność niektórych zapytań jest dobrze opisana przez producentów oprogramowania i budzi zaufanie. Jednakże większość tych działań jest bezpodstawna i budzi wątpliwości.

Źródło: www.habr.com

Dodaj komentarz