家庭網路直播和網域伺服器如何統計?

家庭路由器(在本例中為 FritzBox)可以記錄很多資訊:何時有多少流量、誰以什麼速度連線等。 本地網路上的網域伺服器 (DNS) 幫助我找出未知收件者背後隱藏的內容。

總體而言,DNS 對家庭網路產生了積極影響:它提高了速度、穩定性和可管理性。

下面的圖表提出了問題並需要了解正在發生的事情。 結果已經過濾掉了對網域名稱伺服器的已知和工作請求。

為什麼每天在每個人都還在睡覺的時候還要對 60 個不起眼的網域進行投票?

每天,活動時間內都會對 440 個未知網域進行輪詢。 他們是誰?他們做什麼?

每天每小時的平均請求數

家庭網路直播和網域伺服器如何統計?

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

晚上,無線存取被禁用,設備預計會活動,即沒有對未知域的輪詢。 這意味著最大的活動來自於搭載 Android、iOS 和 Blackberry OS 等作業系統的裝置。

讓我們列出密集輪詢的域。 強度將由每天的請求數量、活動天數以及一天中註意到的小時數等參數決定。

所有預期的嫌疑人都在名單上。

密集輪詢的域

家庭網路直播和網域伺服器如何統計?

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 和iceberg.blackberry.com,製造商將出於安全原因證明其合理性。 結果:當嘗試連線到 WLAN 時,它顯示登入頁面並且再也無法連線到任何地方。 讓我們解鎖它。

detectorportal.firefox.com 是相同的機制,僅在 Firefox 瀏覽器中實作。 如果您需要登入WLAN網絡,首先會顯示登入頁面。 目前還不完全清楚為什麼要如此頻繁地對地址進行 ping 操作,但製造商清楚地描述了該機制。

Skype。 程式的行為類似於蠕蟲:它隱藏在任務欄中,不允許自己被殺死,在網路上產生大量流量,每 10 分鐘 ping 4 個網域。 進行視訊通話時,網路連線不斷中斷,而且情況再好不過了。 目前來說這是必要的,所以它仍然存在。

upload.fp.measure.office.com - 指的是 Office 365,我找不到合適的描述。
browser.pipe.aria.microsoft.com - 我找不到合適的描述。
我們都阻止。

connect.facebook.net - Facebook 聊天應用程式。 遺跡。

mediator.mail.ru 對 mail.ru 網域的所有請求的分析顯示,存在大量廣告資源和統計收集器,這導致了不信任。 mail.ru 網域被完全傳送到黑名單。

google-analytics.com - 不會影響設備的功能,因此我們會阻止它。
doubleclick.net - 計算廣告點擊次數。 我們阻止。

許多請求都會發送至 googleapis.com。 封鎖導致平板電腦上的簡訊被愉快地關閉,這對我來說似乎很愚蠢。 但 Playstore 停止工作了,所以讓我們解鎖它。

cloudflare.com - 他們寫道,他們熱愛開源,並且一般來說,寫了很多關於自己的文章。 領域調查的強度並不完全清楚,往往遠高於網路上的實際活動。 我們暫時先不談它。

因此,請求的強度通常與設備所需的功能有關。 但那些活動過度的人也被發現了。

第一個

當無線網路開啟時,大家還在睡覺,可以看到哪些要求先發送到網路。 因此,網際網路在 6:50 開啟,在前 60 分鐘內每天輪詢 XNUMX 個網域:

家庭網路直播和網域伺服器如何統計?

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 檢查 WLAN 連線是否有登入頁面。
即使應用程式沒有主動執行,Citrix 也會對其伺服器執行 ping 操作。
賽門鐵克驗證證書。
Mozilla 檢查更新,儘管在設定中我要求不要這樣做。

mmo.de 是一項遊戲服務。 該請求很可能是由 Facebook 聊天發起的。 我們阻止。

蘋果將啟動其所有服務。 api-glb-fra.smoot.apple.com - 從描述來看,每次按鈕點擊都會發送到此處以用於搜尋引擎優化。 高度可疑,但與功能相關。 我們離開它。

以下是對 microsoft.com 的一長串請求。 我們阻止從第三級開始的所有網域。

第一個子域的數量
家庭網路直播和網域伺服器如何統計?

那麼,打開無線網路的前10分鐘。
iOS 輪詢最多的子網域 - 32。其次是 Android - 24,然後是 Windows - 15,最後是 Blackberry - 9。
僅 Facebook 應用程式就輪詢 10 個網域,Skype 則是輪詢 9 個網域。

資訊來源

分析的來源是bind9本地伺服器日誌文件,其中包含以下格式:

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)

該檔案被匯入到 sqlite 資料庫中並使用 SQL 查詢進行分析。
伺服器充當快取;請求來自路由器,因此始終有一個請求客戶端。 簡化的表結構就足夠了,即該報告需要請求的時間、請求本身以及用於分組的二級域。

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

產量

因此,對網域名稱伺服器日誌的分析結果顯示,超過 50 筆記錄被審查並列入黑名單。

軟體製造商很好地描述了某些查詢的必要性,並激發了信心。 然而,許多活動都是毫無根據且值得懷疑的。

來源: www.habr.com

添加評論