التحليل الجنائي الرقمي / متقدم: النماذج والتحقق والربط والتقرير / الدرس 14
فهم سجلات الذاكرة والعمليات بأمان
استخدام لقطات عمليات منشأة لفحص الهوية والأبوة والرؤية الناقصة دون قراءة الذاكرة.
في هذه الصفحة
أهداف الدرس
- شرح عدم ثبات PID أو اسم العملية كهوية عبر الزمن.
- حفظ العلاقات الناقصة وحدود الحصول على البيانات دون وصفها بالخبيثة.
فصل سجل العملية عن جمع الذاكرة
قائمة العمليات عرض لبيانات تشغيل مختارة، وتختلف مادة صورة الذاكرة وافتراضات تفسيرها. يتغير النظام الحي أثناء الرصد وقد تنقص الرؤية لأسباب عدة. توثق proc منصة واحدة لا مخطط عمليات عاما. ينشئ الدرس قواميس فقط ولا يقرأ procfs أو ذاكرة أو تفريغا أو جهازا أو حسابا أو عملية حية. لا يقدم إجراء جمع أو يستخرج أسرارا. تخص النتائج سجلات تدريب معلنة لا حالة مضيف فعلي.
تقييد هوية العملية بما يتجاوز PID
قد يعاد استخدام PID بعد الخروج، فلا يثبت تساويه في لقطتين عملية مستمرة. أضف سياق المصدر ووقت بدء أو جيلا موثقا إذا دعم. يعرض البرنامج سجلين بنفس الرقم وبدايتين مختلفتين ليشرح المفتاح الأوسع، دون ادعاء أن العلامة صيغة وقت نظام فعلية. قد تتكرر الأسماء أو تتغير أو تضلل، فلا تثبت سلامة التنفيذي أو المشغل أو النية.
first = {"source":"host-lab", "pid":42, "start":"generation-a", "name":"worker"}
second = {"source":"host-lab", "pid":42, "start":"generation-b", "name":"worker"}
identity = lambda p: (p["source"], p["pid"], p["start"])
assert first["pid"] == second["pid"]
assert first["name"] == second["name"]
assert identity(first) != identity(second)
print("same PID and name; distinct modeled process identities")
same PID and name; distinct modeled process identities
يقارن البرنامج الكامل قاموسين بعلامتي جيل مختلقتين. لا يقرأ بيانات مضيف أو يؤكد إعادة PID حقيقية. يثبت تمييز المفتاح المختار للسجلين فقط.
حفظ الأب المفقود كعلاقة غير محسومة
قد يغيب الأب لنقص اللقطة أو الخروج أو تغيير الأب أو دعم المحلل أو سلوك المنصة، لا لإثبات برمجية خفية آليا. يفصل البرنامج أبا محلولا ومرجعا مفقودا ويحفظ السجلين. يفحص علاقة مختلقة لا يكتشف شجرة فعلية. يحتاج التفسير التوقيت ودلالة المنصة وهل العلاقة عند الإنشاء أو حالية. لا تختلق عقدة أب لإكمال الرسم.
processes = [{"pid":1,"parent":None}, {"pid":42,"parent":1}, {"pid":77,"parent":99}]
known = {p["pid"] for p in processes}
resolved = [p["pid"] for p in processes if p["parent"] in known]
unresolved = [p["pid"] for p in processes if p["parent"] is not None and p["parent"] not in known]
assert resolved == [42]
assert unresolved == [77]
assert len(resolved) + len(unresolved) + 1 == len(processes)
print("resolved and missing parent references retained")
resolved and missing parent references retained
ينظم البرنامج الكامل ثلاثة سجلات ويحسب جذرا مستقلا. لا يفحص ذاكرة أو يسرد عمليات أو يكتشف برمجيات خبيثة. يبقى المرجع 99 غير مفسر ضمن البيانات.
مقارنة العروض دون افتراض اكتمال أحدها
قد تكشف الأدوات أو الواجهات هياكل مختلفة وتحتاج رموزا ودعم إصدار مختلفين. قد يدل الاختلاف على المحلل أو التوقيت أو حالة فعلية؛ فاحفظه قبل التفسير. لا تثبت سلاسل في مادة شبيهة بالذاكرة العملية المستخدمة أو نشاطها وقت الحدث. قد يقدُم المحتوى أو يتكرر أو يضغط أو ينفصل. لا تجعل مسارا أو نطاقا لافتا إثبات تنفيذ أو اتصال دون علاقة كائن ووقت مدعومة.
حفظ قيود المصدر المتغير في التقرير
أبلغ السجل والقاعدة ومفتاح الهوية والتوقيت والعلاقات غير المحسومة. وضح أن اللقطة المختلقة ليست جمع ذاكرة متحققا. تحتاج المواد المتغيرة إجراءات وأدوات وسلطة وخصوصية معتمدة لا تنفذ هنا. تعلم الأمثلة الهوية والرسم لا فحص مضيف أو استجابة تشغيلية. قد تحدد النتيجة علاقة مفقودة أو عرضا مخالفا دون تحويله إلى ادعاء برمجيات خبيثة أو استمرارية أو نسبة بشرية.
الأخطاء الشائعة وإصلاحها
يحدد PID المتساوي عملية واحدة
- لماذا يحدث؟
- تهمل الإعادة والمصدر.
- كيف تصلحه؟
- استخدم البداية والجيل والمصدر المدعوم.
- كيف تتجنب تكراره؟
- راجع المفتاح قبل الربط.
يثبت الأب المفقود برمجية خبيثة
- لماذا يحدث؟
- ينسب النقص لسبب خبيث.
- كيف تصلحه؟
- احفظ البدائل واطلب تعاضدا مصرحا به.
- كيف تتجنب تكراره؟
- سم المجهول ولا تختلق عقدا.
تثبت السلسلة تنفيذا
- لماذا يحدث؟
- يخلط الوجود بالاستخدام والوقت.
- كيف تصلحه؟
- اشترط علاقات عملية ومصدر وزمن.
- كيف تتجنب تكراره؟
- أبق التطابق قرينة محدودة.
اختبر فهمك
1. يشترك سجلان في 42 و worker وتختلف البداية. ما الاستنتاج؟
اعرض الحل المشروح
يميزهما نموذج المصدر والرقم والبداية. لا يثبت الاسم والرقم الاستمرار. اذكر اختلاق العلامات وعدم فحص عملية فعلية واحفظ الجهل بتعريف المصدر الحقيقي للبداية.
2. لماذا لا يضاف الأب 99 كعملية معلومة؟
اعرض الحل المشروح
لا يوجد سجل يثبت خصائصه أو وجوده وقت اللقطة. يمكن عرض علامة مرجع مفقود منفصلة بوضوح عن العملية المرصودة، دون اختلاق اسم أو بداية أو دور خبيث.
أهم ما تعلمته
- تحتاج المعرفات نطاق مصدر ووقت.
- العلاقات المفقودة أسئلة لا نتائج خبث تلقائية.
- لا تجمع اللقطة المختلقة ذاكرة أو تفحص مضيفا.