التحليل الجنائي الرقمي / متقدم: النماذج والتحقق والربط والتقرير / الدرس 16
ربط المواد دون مضاعفة اليقين
فحص نطاق الهوية وعدد نتائج الربط واستقلال المصدر والبدائل قبل جمع الملاحظات.
في هذه الصفحة
أهداف الدرس
- استخدام مفاتيح مقيدة وحساب علاقات الواحد إلى المتعدد.
- فصل التعاضد عن مشتقات متكررة لمصدر واحد.
تعريف العلاقة المختبرة
ينبغي أن يجيب الربط سؤالا محددا، مثل وصل معرف استيراد مسجل بين إصدار مصدر وكتابة تطبيق لاحقة. تشابه النص أو تقارب الوقت قرينة فقط. حدد العلاقة المتوقعة ونطاق المعرف والبدائل الممكنة قبل ربط الجداول. قد يكون معرف الحدث فريدا في مصدر أو جلسة فقط، وقد يتغير المسار أو يعاد استخدامه. احفظ مراجع الأصل والقيود الزمنية. أنشئت مواد الورش الخيالية للتعلم، ولا تدعم هوية أو سببا أو نتيجة حادث حقيقي خارج علاقاتها المعلنة.
استخدام نطاق الهوية المعلن كاملا
يبين البرنامج الأول كيف يربط معرف حدث وحده مصدرين غير متعلقين. يستخدم مفتاحا مركبا من المصدر والمعرف، ولا يبقي إلا التطابق المقصود. تسمية المصدر حقيقة تدريب موثوقة هنا، وليست قيمة يسمح لمهاجم حقيقي بادعائها لإثبات المصدر. يحتاج الربط الفعلي دليلا على كيفية توليد معرف المصدر والحدث وحفظهما. يثبت نجاح المساواة علاقة بيانات وفق هذه الافتراضات، ولا يثبت تلقائيا وقوع الحدث الأساسي كما وصف بالضبط أو اكتمال المصدر.
left = [{"source":"app-a","event":"7","version":2}]
right = [{"source":"app-b","event":"7","note":"unrelated"}, {"source":"app-a","event":"7","note":"matching"}]
key = lambda row: (row["source"], row["event"])
joined = [(a["version"], b["note"]) for a in left for b in right if key(a) == key(b)]
assert joined == [(2, "matching")]
assert left[0]["event"] == right[0]["event"]
print("scoped key avoids the unrelated equal event id")
scoped key avoids the unrelated equal event id
يقارن البرنامج الكامل ثلاثة سجلات محلية دون قاعدة. يفحص قاعدة المفتاح المقدمة فقط، ولا يكتشف علاقة حقيقية أو يوثق تسمية مصدر.
فحص استقلال المصادر الظاهرة
قد يشتق تقريران مصدران من سجل واحد، فيكرران السجلات الناقصة أو خطأ المحلل نفسه. يمثل البرنامج الثاني الجذور المعلنة لكل مشتق ويكشف اشتراكها. إنه نموذج لتسلسل المصدر، وليس اختبار استقلال إحصائي. قد تشترك الجذور المختلفة أيضا في ساعة أو مزود هوية أو آلية جمع، لذلك قيم تلك التبعيات. الاستقلال خاصية سياقية مدعومة، لا عدد أدوات. احفظ الرسم من المادة الأصلية إلى مشتقاتها حتى يعرف المراجع ما يضيف معلومات فعلا وما يعيد عرضا آخر.
roots = {"report-a":{"log-1"}, "report-b":{"log-1"}, "report-c":{"fixture-2"}}
def shares_declared_root(a, b):
return bool(roots[a] & roots[b])
assert shares_declared_root("report-a", "report-b") is True
assert shares_declared_root("report-a", "report-c") is False
print("shared declared lineage detected without a confidence score")
shared declared lineage detected without a confidence score
يفحص البرنامج الكامل تقاطع مجموعات جذور مختلقة. لا يثبت استقلال report-c الفعلي أو يحسب الثقة بالدليل. توفر البيانات حقائق المصدر ولا تكتشف من أدلة فعلية.
تفسير كل صف مرتبط وغير مرتبط
قد يضاعف ربط الواحد إلى المتعدد الصفوف دون تمثيل أحداث إضافية. وقد تضخم التسليمات المكررة والمعرفات المعادة والفترات المتداخلة الأعداد. حدد عدد العلاقات المتوقع وطابق صفوف المدخل والمطابق والمكرر وغير المرتبط. قد ينتج غياب التطابق من الاحتفاظ أو اختلاف نطاق المفتاح أو المحلل، لا من غياب النشاط. احفظ القيم المتعارضة ولا تختر إحداها بصمت. إذا اعتمد الربط نصا أو وقتا موحدا، فاحفظ قاعدة التوحيد وعدم اليقين. ينبغي أن يشرح التقرير دعم الملاحظات للعلاقة، لا أن يعرض جدولا مدمجا ضخما فقط.
جمع الملاحظات دون إخفاء الافتراضات
يسمي استنتاج الربط القابل للدفاع الكائنات والمفاتيح وأساس الوقت وتسلسل المصدر والنتائج والبدائل الباقية. لا تمنح احتمالا دقيقا لمجرد اتفاق صفوف عدة. إذا اختلفت المصادر، فتتبع أول تحويل أو علاقة غير مدعومة واحفظ العرضين. تثبت الأمثلة المحلية مساواة مقيدة واشتراكا معلنا في الجذور فقط؛ ولا تثبت فعلا أو شخصا أو سببا حقيقيا. اجعل الاستدلال قابلا للإعادة ومتناسبا مع المعلومات التي تضيفها كل مادة، بما في ذلك قيود الملاحظات الناقصة أو التابعة.
الأخطاء الشائعة وإصلاحها
تدمج معرفات مصادر مختلفة
- لماذا يحدث؟
- يهمل نطاق الفرادة.
- كيف تصلحه؟
- استخدم الهوية المركبة واحفظ المصدر.
- كيف تتجنب تكراره؟
- اختبر المعرف نفسه بين مصدرين.
يعد تقريران شاهدين مستقلين
- لماذا يحدث؟
- لا يفحص المصدر المشترك.
- كيف تصلحه؟
- ارسم الجذور والتبعيات.
- كيف تتجنب تكراره؟
- اشرح الإضافة من كل مادة.
يسمى عدد الربط عدد أحداث
- لماذا يحدث؟
- تضخم العلاقة النتائج.
- كيف تصلحه؟
- طابق العلاقة والهوية قبل العد.
- كيف تتجنب تكراره؟
- احفظ فئات التكرار وعدم التطابق.
اختبر فهمك
1. تنتج أداتان تسلسلا متطابقا من log-1. هل ثبت تعاضد مستقل؟
اعرض الحل المشروح
لا. يشتركان في المصدر وقد يكرران عيبه ونقصه. قارن الافتراض واطلب ملاحظة منفصلة حيث يسمح. أبلغ اتفاق مشتقات دون مضاعفة الثقة لوجود اسمين.
2. يطابق حدث تطبيق ثلاثة استلامات. كيف يوصف العدد؟
اعرض الحل المشروح
حدث مقدم يرتبط بثلاثة سجلات استلام وفق المفتاح، ضمن حدود اكتمال المصدر ومعناه. حدد هل هي تكرار تسليم أو مراحل أو علاقة أخرى قبل عد النشاط. احفظ الصفوف ومبرر العلاقة.
أهم ما تعلمته
- يحتاج الربط هوية مقيدة وعلاقة عددية صريحة.
- لا تضيف المشتقات المتكررة دليلا مستقلا تلقائيا.
- يفيد الاتفاق بافتراضات وبدائل مفسرة.