كيف يعيش الإنترنت المنزلي وإحصائيات خادم اسم المجال؟

يمكن لجهاز التوجيه المنزلي (في هذه الحالة 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 لـ 10 مجالات كل 4 دقائق. عند إجراء مكالمة فيديو، ينقطع الاتصال بالإنترنت باستمرار، في حين أنه لا يمكن أن يكون أفضل. في الوقت الحالي هو ضروري، لذلك يبقى.

upload.fp.measure.office.com - يشير إلى Office 365، ولم أتمكن من العثور على وصف مناسب.
browser.pipe.aria.microsoft.com - لم أتمكن من العثور على وصف لائق.
نحن نمنع كليهما.

Connect.facebook.net - تطبيق دردشة الفيسبوك. بقايا.

mediator.mail.ru أظهر تحليل جميع طلبات مجال mail.ru وجود عدد كبير من الموارد الإعلانية وجامعي الإحصائيات، مما يسبب عدم الثقة. يتم إرسال مجال mail.ru بالكامل إلى القائمة السوداء.

google-analytics.com - لا يؤثر على وظائف الأجهزة، لذلك نقوم بحظره.
doubleclick.net - يحسب النقرات الإعلانية. نحن نمنع.

تذهب العديد من الطلبات إلى googleapis.com. أدى الحظر إلى إغلاق الرسائل القصيرة على الجهاز اللوحي بشكل بهيج، وهو ما يبدو غبيًا بالنسبة لي. لكن متجر الألعاب توقف عن العمل، لذا دعونا نقوم بإلغاء حظره.

cloudflare.com - يكتبون أنهم يحبون المصادر المفتوحة ويكتبون بشكل عام الكثير عن أنفسهم. إن كثافة مسح المجال ليست واضحة تمامًا، والتي غالبًا ما تكون أعلى بكثير من النشاط الفعلي على الإنترنت. دعونا نترك الأمر الآن.

وبالتالي، غالبًا ما ترتبط كثافة الطلبات بالوظيفة المطلوبة للأجهزة. ولكن تم أيضًا اكتشاف أولئك الذين بالغوا في النشاط.

الأول

عند تشغيل الإنترنت اللاسلكي، يظل الجميع نائمين ومن الممكن معرفة الطلبات التي يتم إرسالها إلى الشبكة أولاً. لذلك، في الساعة 6:50 يتم تشغيل الإنترنت وفي أول عشر دقائق يتم استطلاع 60 نطاقًا يوميًا:

كيف يعيش الإنترنت المنزلي وإحصائيات خادم اسم المجال؟

استعلام تقرير 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 باختبار اتصال خادمه على الرغم من أن التطبيق لا يعمل بشكل نشط.
سيمانتيك يتحقق من الشهادات.
تتحقق Mozilla من التحديثات، على الرغم من أنني طلبت عدم القيام بذلك في الإعدادات.

mmo.de هي خدمة ألعاب. على الأرجح يتم بدء الطلب عن طريق دردشة الفيسبوك. نحن نمنع.

ستقوم Apple بتفعيل جميع خدماتها. api-glb-fra.smoot.apple.com - وفقًا للوصف، يتم إرسال كل نقرة على الزر هنا لأغراض تحسين محرك البحث. مشبوهة للغاية، ولكنها تتعلق بالوظيفة. نتركها.

فيما يلي قائمة طويلة من الطلبات المقدمة إلى microsoft.com. نقوم بحظر جميع النطاقات بدءًا من المستوى الثالث.

عدد النطاقات الفرعية الأولى
كيف يعيش الإنترنت المنزلي وإحصائيات خادم اسم المجال؟

لذلك، أول 10 دقائق من تشغيل الإنترنت اللاسلكي.
يحتل نظام iOS المرتبة الأولى في استطلاعات النطاقات الفرعية - 32. يليه Android - 24، ثم Windows - 15 وأخيرًا Blackberry - 9.
يقوم تطبيق الفيسبوك وحده باستطلاع 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.
يعمل الخادم كذاكرة تخزين مؤقت؛ حيث تأتي الطلبات من جهاز التوجيه، لذلك يوجد دائمًا عميل طلب واحد. بنية الجدول المبسطة كافية، أي. يتطلب التقرير وقت الطلب، والطلب نفسه، ومجال المستوى الثاني للتجميع.

جداول دي دي إل

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

إضافة تعليق