Како живи кућни Интернет и статистика сервера имена домена?

Кућни рутер (у овом случају ФритзБок) може много да сними: колико саобраћаја иде када, ко је повезан којом брзином итд. Сервер имена домена (ДНС) на локалној мрежи помогао ми је да сазнам шта се крије иза непознатих прималаца.

Све у свему, ДНС је имао позитиван утицај на кућну мрежу: додао је брзину, стабилност и управљивост.

Испод је дијаграм који је покренуо питања и потребу да се разуме шта се дешава. Резултати већ филтрирају познате и радне захтеве серверима имена домена.

Зашто се сваки дан испитује 60 нејасних домена док сви још спавају?

Сваког дана се анкетира 440 непознатих домена током активних сати. Ко су они и чиме се баве?

Просечан број захтева дневно по сату

Како живи кућни Интернет и статистика сервера имена домена?

СКЛ упит за извештај

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

Ноћу је онемогућен бежични приступ и очекује се активност уређаја, тј. нема гласања за непознате домене. То значи да највећа активност долази од уређаја са оперативним системима као што су Андроид, иОС и Блацкберри ОС.

Хајде да наведемо домене који се интензивно анкетирају. Интензитет ће бити одређен параметрима као што су број захтева по дану, број дана активности и у колико сати у дану су примећени.

На списку су се нашли сви очекивани осумњичени.

Интензивно анкетирани домени

Како живи кућни Интернет и статистика сервера имена домена?

СКЛ упит за извештај

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

Блокирамо исс.блацкберри.цом и ицеберг.блацкберри.цом, што ће произвођач оправдати из безбедносних разлога. Резултат: када покушавате да се повежете на ВЛАН, приказује страницу за пријаву и никада се више нигде не повезује. Хајде да га деблокирамо.

детецтпортал.фирефок.цом је исти механизам, само имплементиран у Фирефок претраживачу. Ако треба да се пријавите на ВЛАН мрежу, прво ће се приказати страница за пријаву. Није сасвим јасно зашто адресу треба тако често пинговати, али произвођач је јасно описао механизам.

скипе. Радње овог програма су сличне црву: скрива се и не дозвољава једноставно да буде убијен у траци задатака, генерише велики саобраћај на мрежи, пингује 10 домена сваких 4 минута. Приликом видео позива, интернет веза се стално квари, када не може бити боља. За сада је потребно, тако и остаје.

уплоад.фп.меасуре.оффице.цом - односи се на Оффице 365, нисам могао да нађем пристојан опис.
бровсер.пипе.ариа.мицрософт.цом - Нисам могао да нађем пристојан опис.
Блокирамо обоје.

цоннецт.фацебоок.нет - Фацебоок апликација за ћаскање. Остаје.

медиатор.маил.ру Анализа свих захтева за домен маил.ру показала је присуство огромног броја рекламних ресурса и сакупљача статистике, што изазива неповерење. Домен маил.ру се у потпуности шаље на црну листу.

гоогле-аналитицс.цом - не утиче на функционалност уређаја, па га блокирамо.
доублецлицк.нет - броји кликове на оглашавање. Блокирамо.

Многи захтеви иду на гооглеапис.цом. Блокирање је довело до радосног гашења кратких порука на таблету, које ми се чине глупим. Али плаисторе је престао да ради, па хајде да га деблокирамо.

цлоудфларе.цом - пишу да воле отворени код и, уопште, пишу много о себи. Интензитет анкете о домену није сасвим јасан, који је често много већи од стварне активности на Интернету. Оставимо то за сада.

Стога је интензитет захтева често повезан са потребном функционалношћу уређаја. Али откривени су и они који су претерали са активношћу.

Први

Када је бежични интернет укључен, сви још спавају и могуће је видети који захтеви се први шаљу мрежи. Дакле, у 6:50 Интернет се укључује и у првих десет минута дневно се прозива 60 домена:

Како живи кућни Интернет и статистика сервера имена домена?

СКЛ упит за извештај

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

Фирефок проверава ВЛАН везу да ли постоји страница за пријаву.
Цитрик пингује свој сервер иако апликација није активно покренута.
Симантец верификује сертификате.
Мозилла проверава да ли постоје ажурирања, иако сам у подешавањима тражио да то не радим.

ммо.де је сервис за игре. Највероватније је захтев инициран фејсбук чет. Блокирамо.

Аппле ће активирати све своје услуге. апи-глб-фра.смоот.аппле.цом - судећи по опису, сваки клик на дугме се шаље овде у сврху оптимизације претраживача. Веома сумњиво, али повезано са функционалношћу. Остављамо то.

Следи дуга листа захтева за мицрософт.цом. Блокирамо све домене почевши од трећег нивоа.

Број првих поддомена
Како живи кућни Интернет и статистика сервера имена домена?

Дакле, првих 10 минута укључивања бежичног интернета.
иОС анкетира највише поддомена - 32. Следи Андроид - 24, затим Виндовс - 15 и на крају Блацкберри - 9.
Само фацебоок апликација анкетира 10 домена, скајп 9 домена.

Извор информација

Извор за анализу је била датотека евиденције локалног сервера бинд9, која садржи следећи формат:

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)

Датотека је увезена у склите базу података и анализирана помоћу СКЛ упита.
Сервер делује као кеш, захтеви долазе са рутера, тако да увек постоји један захтев клијента. Довољна је поједностављена структура табеле, тј. Извештај захтева време захтева, сам захтев и домен другог нивоа за груписање.

ДДЛ табеле

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

Излаз

Тако је, као резултат анализе лог сервера имена домена, цензурисано више од 50 записа и стављено на листу блокова.

Произвођачи софтвера добро описују потребу за неким упитима и уливају поверење. Међутим, велики део активности је неоснован и упитан.

Извор: ввв.хабр.цом

Додај коментар