البحث في السجلات عن شيء مريب لا ينفع، ويستحق الأمر أن نفهم السبب قبل أن نصرف سنة كاملة نسوّي هذا الشغل.
لا تكدر تبحث عن شيء ما فكرت فيه أصلاً. الاستعلام هو تخمين عن سوالف الفاعل، والاستعلامات الجيدة هي تلك التخمينات اللي ما كان راح توصلها بنفسك. لهذا فالأسلوب المفيد هو عكس البحث تقريباً: بدل ما تسأل شنو الخبيث، اسأل شنو النادر، وبعدها اسأل ليش.
عد، وبعدين اقرأ الآخر
تحليل التكرار هو الطريقة كلها، وهو بسيط لدرجة محرجة. خذ حقل معين. عد كم مرة يتكرر كل قيمة فيه. اقرأ آخر القائمة.
لم يُترجم بعد — تُعرض النسخة الإنجليزية
تقريباً كل جهاز بشبكتك يتواصل مع نفس المجموعة الصغيرة من الوجهات. الجهاز الوحيد اللي طلب نطاقاً ما طلبه أحد غيره من قبل، يكون بآخر هذا العد، ويحتاج أمراً واحداً بس للعثور عليه. نفس الحيلة تشتغل على وكلاء المستخدم، وعلى أزواج العمليات الأم-الابن، وعلى الحسابات اللي دخلت على أي أجهزة، وعلى بصمات JA3، وعلى المنافذ الصادرة. رتّب تصاعدياً. اقرأ الذيل.
شلون هذا على الطرفية
ما شي بالأعلى يحتاج منتجاً جاهزاً. الطريقة كلها أربعة أوامر بخط أنابيب واحد، والأمر الأخير هو المهم: sort -n يحط القيم النادرة بأعلى ما تقرأ.
$ awk '{print $3}' conns.log | sort | uniq -c | sort -n
2 hx9q2-cdn.example
94 api.partner.example
168 ntp.internal.example
288 smtp.internal.example
611 metrics.internal.example
842 repo.internal.example
1204 backup.internal.exampleلاحظ شنو اللي ما كان لازم تعرفه. مو شنو اسم أداة الفاعل، ولا شنو النطاقات الخبيثة، ولا شكل الحملة الحالية. أنت سألت سؤالاً واحداً — كم مرة؟ — والجواب رتّب نفسه بنفسه.
جرّبها
بالأسفل عندك صباح من حركة بروكسي بمكتب صغير. عد حسب الوجهة واقرأ آخر القائمة. بعدين عد حسب الجهاز، ولاحظ أنه ما يقولك شي: أغلب الناس تزور أغلب المواقع، فهذا الحقل مو مكان الندرة.
44 lines of proxy traffic. Switch the field to destination, and read the bottom.
03:41:09 ws-019 q4t8v-push.example 09:01:59 ws-012 docs.corp.example 09:08:49 ws-011 auth.corp.example 09:17:00 ws-040 cdn.assets.example 09:21:50 ws-023 docs.corp.example 09:26:01 ws-007 cdn.assets.example 09:37:27 ws-031 auth.corp.example 09:55:25 ws-007 print.corp.example 10:46:28 ws-023 docs.corp.example 10:58:36 ws-040 docs.corp.example 11:12:11 ws-011 docs.corp.example 11:20:36 ws-028 auth.corp.example 11:32:20 ws-004 docs.corp.example 11:35:09 ws-019 time.pool.example 11:46:15 ws-012 auth.corp.example 11:54:54 ws-031 cdn.assets.example 12:06:46 ws-023 cdn.assets.example 12:12:50 ws-019 time.pool.example 12:19:24 ws-019 cdn.assets.example 12:39:45 ws-011 time.pool.example 12:49:19 ws-040 print.corp.example 13:17:48 ws-004 docs.corp.example 13:22:06 ws-004 docs.corp.example 13:28:36 ws-023 docs.corp.example 13:30:44 ws-023 docs.corp.example 13:33:41 ws-012 cdn.assets.example 13:37:58 ws-007 auth.corp.example 13:49:48 ws-011 docs.corp.example 13:55:09 ws-012 cdn.assets.example 14:05:51 ws-023 time.pool.example 14:33:07 ws-019 auth.corp.example 14:50:24 ws-028 time.pool.example 15:15:49 ws-011 auth.corp.example 15:16:24 ws-031 auth.corp.example 15:16:31 ws-004 docs.corp.example 15:18:19 ws-023 auth.corp.example 15:25:14 ws-023 docs.corp.example 15:37:12 ws-019 print.corp.example 15:48:26 ws-023 print.corp.example 16:01:40 ws-012 auth.corp.example 16:17:45 ws-012 time.pool.example 16:21:20 ws-012 cdn.assets.example 16:23:37 ws-031 docs.corp.example 16:43:55 ws-023 auth.corp.example 16:57:36 ws-012 cdn.assets.example
طريقتان إضافيتان
الطريقة الثانية هي تكديس حقلين عادة يكونون مستقلين عن بعض. مثلاً الحساب والجهاز. أغلب الناس تدخل على جهاز أو جهازين بس. حساب يظهر على أحد عشر جهازاً، بنهاية الأسبوع، ما يسوي شي تقدر قاعدة مبنية على اسم ملف تمسكه، وهذا أوضح دليل على إعادة استخدام بيانات الدخول.
ثالثاً: قارن حسب الزمن بدل حد ثابت. "أكثر من خمسين محاولة دخول فاشلة" رقم خمّنه أحد. "عشرة أضعاف متوسط هذا الحساب الأسبوعي" يتكيف مع حساب خدمة يفشل كثير بشكل طبيعي، ومع إنسان ما يفشل أبداً.
وين تصير المشكلة
تحذيران عمليان، تعلمناهم بالطريقة الصعبة.
الغياب دليل بحد ذاته. جهاز كان يسجّل بثبات لأشهر وسكت يوم الثلاثاء، يقولك شي، وما راح يطلعه أي بحث عن أشياء خبيثة — لازم تدوّر على الفجوة بنفسك. فعّل تنبيهاً على سكوت المصادر اللي المفروض تكون متكلمة.
واكتب شنو استبعدته. تحقيق ينتهي بـ"ما لكيت شي" ما له فائدة تذكر للشخص اللي يجي بعدك، لأنه راح يعيد كل استعلام أنت سويته. تحقيق ينتهي بـ"دقّقت أ، ب، ج، وهذا سبب كون كل وحدة منهم طبيعية، وما عندي بيانات عن د" هذا تسليم حقيقي، و"د" هو من وين يبدأ الشخص الثاني.