家庭互联网直播和域名服务器如何统计?

家庭路由器(在本例中为 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 条记录被审查并列入黑名单。

软件制造商很好地描述了某些查询的必要性,并激发了信心。 然而,许多活动都是毫无根据且值得怀疑的。

来源: habr.com

添加评论