معهد ماساتشوستس للتكنولوجيا. محاضرة رقم 6.858. "أمن أنظمة الكمبيوتر." نيكولاي زيلدوفيتش ، جيمس ميكنز. 2014 سنة
أمان أنظمة الكمبيوتر هي دورة حول تطوير وتنفيذ أنظمة الكمبيوتر الآمنة. تغطي المحاضرات نماذج التهديد ، والهجمات التي تهدد الأمن ، وتقنيات الأمان بناءً على العمل العلمي الحديث. تشمل الموضوعات أمان نظام التشغيل (OS) ، والميزات ، وإدارة تدفق المعلومات ، وأمان اللغة ، وبروتوكولات الشبكة ، وأمان الأجهزة ، وأمان تطبيقات الويب.
المحاضرة 1: "مقدمة: نماذج التهديد"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 2: "السيطرة على هجمات القراصنة"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 3: "تجاوزات العازلة: المآثر والحماية"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 4: "فصل الامتيازات"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 5: "من أين تأتي أنظمة الأمن؟"
الجزء 1 /
الجزء 2المحاضرة 6: "الفرص"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 7: "وضع حماية العميل الأصلي"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 8: "نموذج أمن الشبكات"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 9: "أمان تطبيق الويب"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 10: "التنفيذ الرمزي"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 11: "لغة برمجة Ur / Web"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 12: أمن الشبكات
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 13: "بروتوكولات الشبكة"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 14: "SSL و HTTPS"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 15: "البرامج الطبية"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 16: "هجمات القناة الجانبية"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 17: "مصادقة المستخدم"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 18: "التصفح الخاص للإنترنت"
الجزء 1 /
الجزء 2 /
الجزء 3 لذلك ، سيكون النهج الأول هو استخدام الأجهزة الافتراضية كوسيلة لتعزيز ضمان التصفح الخاص ، أي أننا سننظر في الخصوصية على مستوى الجهاز الظاهري.
الفكرة الأساسية هي أن كل جلسة خاصة يجب أن تعمل في جهاز افتراضي منفصل. ثم ، عندما ينهي المستخدم جلسة التصفح الخاصة ، يتم حذف الجهاز الظاهري. إذن ما فائدة هذه الفكرة؟

من المحتمل أن تحصل على ضمانات أقوى للسرية ، والتي يمكنك تقديمها للمستخدم ، لأنه من المفترض أن الجهاز الظاهري يحتوي على واجهة إدخال / إخراج بيانات نظيفة إلى حد ما. يمكن افتراض أنك قمت بدمج هذه الأجهزة الافتراضية في ، على سبيل المثال ، نوع من حل المبادلة الآمنة ، على سبيل المثال ، استخدام Open BSD مع تشفير بيانات القرص.
لذا ، لدينا فصل واضح جدًا لـ VM هنا ، أعلاه ، وجميع عمليات الإدخال / الإخراج التي تحدث أدناه. يوفر لك هذا ضمانات أقوى من تلك التي تحصل عليها من متصفح لم يتم تصميمه من الأساس حتى يعتني بكافة طرق إدخال / إخراج المعلومات وما هي الأسرار التي يمكن أن تتسرب عندما تكون هذه المعلومات في مستودع البيانات .
لذا نعم ، فهي توفر ضمانات أقوى. بالإضافة إلى ذلك ، لا يتطلب أي تغييرات في تطبيقاتك ، أي في المتصفح. تأخذ المتصفح ، وتضعه في أحد هذه الأجهزة الافتراضية - وكل شيء يتحسن بطريقة سحرية دون أي تغييرات في التطبيق.
ما خطب ذلك - سأرسم ابتسامة حزينة على السبورة - إنها مرهقة. أعني ، مرهقًا ، أنه عندما ترغب في بدء إحدى جلسات التصفح الخاصة ، يجب عليك بدء تشغيل الجهاز الظاهري بالكامل. ويمكن أن يكون ذلك مؤلمًا تمامًا لأن المستخدمين سيشعرون بالإحباط لأنهم يستغرقون وقتًا طويلاً لبدء جلسات التصفح الخاصة بهم.

مشاكل أخرى هي أن هذا الحل غير عملي. والسبب غير العملي هو أنه من الصعب حقًا على المستخدمين القيام بأشياء مثل نقل الملفات التي حفظوها في وضع التصفح الخاص إلى جهاز كمبيوتر ، ونقل جميع الإشارات المرجعية التي تم إنشاؤها في هذا الوضع - كل هذا ، في النهاية ، يمكن أن يكون تم. ولكن هنا هناك العديد من المضايقات المرتبطة بالكسل.
النهج الثاني للمشكلة مشابه للأول ، لكننا ننفذه في الواقع داخل نظام التشغيل نفسه ، وليس في جهاز افتراضي. الفكرة الرئيسية هنا هي أنه من المحتمل تشغيل كل عملية في مجال خاص. المجال الخاص هو نوع من مجموعة من موارد نظام التشغيل المشتركة التي تستخدمها العملية ، ويتتبع نظام التشغيل كل هذه الأشياء. وبمجرد أن تموت العملية ، يقوم نظام التشغيل بمسح كل شيء في المجال الخاص وإطلاق كل هذه الموارد بالكامل للاستخدام الجديد.
ميزة هذا النهج مقارنة باستخدام VM هي وزن أخف ، لأنه إذا كنت تفكر في ذلك ، فإن الجهاز الافتراضي لا يعرف بشكل أساسي حالة نظام التشغيل وحالة جميع التطبيقات قيد التشغيل. وبالتالي ، فإن استخدام VM يخلق عملًا أكثر مما يفعله نظام التشغيل ، لأن نظام التشغيل يفترض أنه يعرف جميع النقاط التي سيتصل فيها المتصفح الخاص بإدخال / إخراج البيانات ، و "التحدث" مع الشبكة وما شابه ذلك. ربما يعرف نظام التشغيل كيفية مسح ذاكرة التخزين المؤقت لـ DNS بشكل انتقائي.
وبالتالي ، يمكنك أن تتخيل أنه من الأسهل بكثير "إلغاء ربط" نطاقات الخصوصية هذه بحيث يمكنك ببساطة "تمزيقها" لاحقًا. ومع ذلك ، فإن عيب هذا الحل ، على الأقل فيما يتعلق ببدء تشغيل VM ، هو أنه من الأصعب بكثير القيام بذلك بالطريقة الصحيحة. لذلك ، وصفت للتو النهج باستخدام VM على أنه تقدمي ، لأن الجهاز الظاهري لا يعرف بشكل أساسي كل شيء يعمل داخل حاوية نظام التشغيل.

الشيء الجميل هو أن نهج VM يركز فقط على عدد قليل من الواجهات ذات المستوى المنخفض. على سبيل المثال ، تؤدي الواجهة التي يستخدمها الجهاز الظاهري للكتابة على القرص إلى درجة أعلى من الثقة ، لأنها تحتوي على كل ما تحتاجه. أثناء استخدام نظام التشغيل ، يكون هذا أكثر تعقيدًا ، لأنك تتوقع أن يستخدم ملفات فردية مع واجهة نظام ، على سبيل المثال ، مع واجهة شبكة فردية. لذلك إذا قمت بكل هذا على مستوى نظام التشغيل ، فإن احتمال تسرب البيانات أكبر بكثير.
لذا ، كان هذان نهجان رئيسيان لتعزيز ضمانات السرية عند استخدام وضع التصفح الخاص ، والذي يمكن تنفيذه في الوقت الحاضر.
قد تسأل ، هل ما زال بإمكاننا الكشف عن هوية المستخدم إذا قام بتطبيق أحد حلول الأمان الأكثر قوة - تصفح الإنترنت باستخدام آلة افتراضية أو مجالات الخصوصية في نظام التشغيل؟ هل يمكننا سرقة المستخدم المجهول؟ سيكون الجواب على هذا السؤال - نعم نستطيع!
يمكن إلغاء تحديد هوية المستخدم لأن الجهاز الظاهري فريد لسبب ما. هذا مشابه للكيفية التي تمكنا بها من أخذ بصمات المتصفح باستخدام موقع Panopticlick. ربما يكون هناك شيء فريد حول كيفية تكوين الجهاز الظاهري ، والذي يسمح لك بأخذ بصمات أصابعه. من الممكن أيضًا أن تكون شاشة VM أو نظام التشغيل نفسه فريدًا من بعض النواحي. وهذا يسمح لمهاجم الشبكة بالكشف عن هوية المستخدم.
مثال نموذجي هو بصمات الأصابع TCP. الفكرة هي أن مواصفات بروتوكول TCP تسمح بالفعل بتثبيت معلمات بروتوكول معينة أثناء تنفيذ هذا البروتوكول. على سبيل المثال ، يسمح بروتوكول TCP لفناني الأداء باختيار الحجم الأولي للحزم التي يتم إرسالها في الجزء الأول من تأسيس اتصال TCP ، والذي يسمح لفناني الأداء باختيار أشياء مثل العمر الأولي لهذه الحزم.

وبالتالي ، يمكنك الحصول على أدوات جاهزة ، مثل InMap ، والتي يمكن أن تخبر باحتمالية عالية عن نظام التشغيل الذي تعمل معه ، فقط عن طريق إرسال حزم تمت معالجتها بعناية. سيرون أشياء مثل حقيقة أن TTL معروضة هنا ، وهنا حجم حزمة التوزيع ، وهنا كان الرقم التسلسلي لـ TTP. وبالتالي ، يقومون بإنشاء قاعدة بيانات لبصمات الأصابع. يقولون: "إذا كانت الحزمة التي تم إرجاعها تحتوي على هذه ، هذه وهذه الخاصية ، فعندئذٍ وفقًا للجدول ، فأنت تعمل على Solaris ، أنت تستخدم Mac ، وأنت تستخدم Windows" ، أو أي شيء آخر. لذلك ، حتى باستخدام أحد هذه الأساليب لتحسين الخصوصية أثناء التصفح الخاص باستخدام جهاز ظاهري أو نظام تشغيل ، لا يزال المهاجم قادرًا على إطلاق إحدى هجمات كشف بصمات الأصابع عبر TCP وتعلم الكثير عن مستخدم معين.
سيكون من المثير للاهتمام معرفة أنه حتى لو كان المستخدم محميًا بإحدى هذه الطرق الأكثر قوة ، فلا يزال المستخدم مقسمًا بين وضعي العرض - العام والخاص ، فهو لا يزال يستخدم الكمبيوتر فعليًا. هذا مثير للاهتمام لأنك أنت في عملية استخدام الكمبيوتر يمكن أن تساهم في تسرب معلوماتك الشخصية.
على سبيل المثال ، كما اتضح ، كل مستخدم لديه ضغطة مفتاح فريدة. لذلك إذا أعطيتك مهمة البدء في الوقت نفسه بكتابة عبارة "ثعلب بني سريع" أو أي هراء من هذا القبيل على لوحة المفاتيح ، فسوف تظهر الملاحظة أن وقت الضغط على المفاتيح من قبل كل واحد منكم فريد من نوعه بحيث يمكن استخدامه لأخذ بصمات الأصابع.
من المثير للاهتمام أيضًا أن المستخدمين لديهم أنماط كتابة فريدة. هناك صناعة أمنية تسمى علم الأسلوب.

فكرة أسلوب الكتابة هي أن المهاجم يمكنه التعرف على هويتك بمجرد النظر إلى عينات من رسالتك. تخيل أنه لسبب ما ، انتظرت على 4chan وأريد معرفة ما إذا كنت حقا معلقًا هناك. يمكنني إلقاء نظرة على مجموعة من المشاركات المختلفة على 4chan وتجميعها في مجموعات من التعليقات التي تبدو متشابهة من حيث الأسلوب. ثم سأحاول العثور على عينات عامة من أسلوب كتابتك ، على سبيل المثال ، في الواجبات المنزلية ، التي أنت مؤلفها. بعد ذلك ، أقارن عينات النمط في مجموعات التعليق على 4chan مع واجبك المنزلي ، وإذا وجدت تطابقًا ، يمكنني الكتابة إلى والديك لتوضيح مخاطر التجميد في منتديات 4chan. لهذا السبب قررت أن أوجه انتباهكم إلى الأسلوب. هذا فعلا مثير للاهتمام
لذا ، ناقشنا كيف يمكنك استخدام VMs أو أنظمة التشغيل المعدلة لتوفير الدعم للتصفح الخاص. لذلك ، قد تتساءل لماذا ، إذن ، لا تتطلب المستعرضات من المستخدمين القيام بأحد هذه الأشياء - بدء تشغيل جهاز افتراضي أو تعديل نظام التشغيل؟ لماذا تتولى المتصفحات تنفيذ كل هذا؟
السبب الرئيسي هو قابلية النشر. لا يرغب صانعو المتصفح عادة في إجبار مستخدميهم على فعل أي شيء خاص لاستخدام المتصفح بخلاف تثبيت المتصفح نفسه. يشبه هذا دافع Native Client عندما تكون Google على وشك إضافة هذه الميزات الرائعة إلى أجهزة كمبيوتر المستخدم النهائي ، ولكنها لا ترغب في إجبار المستخدمين على تثبيت إصدارات خاصة من Windows أو Linux أو القيام بشيء آخر. وبالتالي ، تقول Google "سنعتني بهذا بأنفسنا".
سبب آخر هو سهولة الاستخدام. العديد من حلول التصفح الخاصة هذه على مستوى الجهاز الظاهري ونظام التشغيل ، كما ناقشنا بالفعل ، تجعل من الصعب على المستخدمين حفظ الأشياء التي تم استلامها أثناء جلسة التصفح الخاصة - الملفات التي تم تنزيلها والإشارات المرجعية وما شابه ذلك.

بشكل أساسي ، يقول صانعو المتصفح أنهم إذا قاموا بأنفسهم بتنفيذ أوضاع التصفح الخاص ، فسيكون بإمكانهم السماح للمستخدمين بقبول الملفات التي تم تنزيلها في وضع التصفح الخاص وحفظها على جهاز الكمبيوتر. تبدو جيدة في البداية. ولكن لاحظ أن هذا النهج يسمح للمستخدمين بتصدير نوع ما من الحالة الخاصة ، مما يفتح العديد من نقاط الضعف في نظام الأمان ويعقد بشكل كبير تحليل خصائص الأمان المستخدمة عند تنفيذ وضع التصفح الخاص.
لذلك ، يحاول مؤلفو المقالة وصف أنواع مختلفة من حالات المتصفح التي يمكن تعديلها والنظر في كيفية تعديل أوضاع التصفح الخاصة الحالية.
تصنف هذه المقالة تغييرات حالة المتصفح. هناك أربعة أنواع من التغييرات في هذا التصنيف. النوع الأول هو عندما يبدأ الموقع نفسه بتغييرات الحالة دون تدخل المستخدم. من أمثلة هذا النوع من تغيير الحالة الحصول على ملفات تعريف الارتباط ، وإضافة شيء إلى سجل عناوين المتصفح ، وربما تحديث ذاكرة التخزين المؤقت للمتصفح. لذلك ، تستمر هذه الحالة بشكل أساسي طوال وضع العرض الخاص بأكمله ، ولكن يتم تدميرها بعد اكتمالها.
يمكن افتراض أنه نظرًا لأن المستخدم لا يتفاعل مع المتصفح أثناء تكوين هذه الحالة ، فمن المفهوم أن المستخدم نفسه لن يرغب في المشاركة في هذا.
يتم بدء النوع الثاني من تغيير حالة المتصفح أيضًا بواسطة موقع الويب ، ولكن هناك بعض التفاعل مع المستخدم الذي زار هذا الموقع. على سبيل المثال ، يقوم المستخدم بتثبيت شهادة عميل أو يستخدم كلمة مرور للتفويض على الموقع ، أي يحاول الانتقال إلى مكان ما. في الوقت نفسه ، يقول المتصفح بشكل مفيد للغاية: "هل تريد حفظ كلمة المرور هذه؟". إذا أجاب المستخدم بـ "نعم" ، فيمكن استخدام أشياء مثل كلمات المرور المحفوظة خارج وضع التصفح الخاص. لذلك ، من حيث المبدأ ، ليس من الواضح ما يجب أن تكون عليه سياسة الخصوصية في هذه الحالة. من الناحية العملية ، اتضح أن المتصفحات تسمح بوجود أشياء نشأت في وضع التصفح الخاص ، خارجها ، على افتراض أن المستخدم نفسه سيختار الخيار الأفضل له ، بقول نعم أو لا. إذا كان المستخدم ذكيًا بما يكفي ، فلن يحفظ كلمة المرور الخاصة ببعض المواقع المريبة ، لأنه يمكن لشخص آخر استخدامها. لذلك قد يكون هناك خطأ في المستخدم ، وليس متصفحًا ، مما قد يؤدي إلى فقدان الخصوصية.
لذلك ، من غير الواضح أي السياسات هي الأفضل ، ولكن من الناحية العملية يُسمح بتخزين هذا النوع من تغيير الحالة خارج وضع التصفح الخاص.
النوع الثالث من تغيير الحالة هو بدء المستخدم بالكامل. هذه أشياء مثل حفظ الإشارات المرجعية أو تنزيل الملفات. هذه الحالة شبيهة بالحالة السابقة ، لأن المستخدم متورط بشكل مباشر في إنشائها. في هذه الحالة ، يوافق وضع العرض الخاص على أنه يتم حفظ تغييرات الحالة من هذا النوع للاستخدام المستقبلي خارج العرض الخاص.

علاوة على ذلك ، هناك بعض أنواع الحالات التي لا ترتبط بأي جلسة معينة على الإطلاق. على سبيل المثال ، هذه هي حالة التحديث للمتصفح نفسه ، أي تغيير في الملف الذي يمثل المتصفح. يعتقد مطورو المتصفح أن هذا التغيير في الحالة هو جزء من حالة عالمية متاحة للعرض العام والخاص.
في النهاية ، إذا نظرت إلى هذا بعناية ، ستلاحظ أن هناك بعض الحالات التي يمكن فيها تسرب البيانات خارج وضع التصفح الخاص ، خاصة إذا كان هناك تفاعل مع المستخدم. أتساءل عما إذا كان هذا هو أفضل حل وسط بين الأمن والخصوصية.

تقول المقالة أنه من الصعب منع احتمال أن يتمكن مهاجم محلي من تحديد ما إذا كنت تستخدم وضع التصفح الخاص أم لا. جاء ذلك في المقالة غامضة إلى حد ما. والحقيقة هي أن طبيعة تسرب المعلومات يمكن أن تخبرك بأي وضع عرض - خاص أو عام - يحدث. على سبيل المثال ، في Firefox و Chrome ، عند إنشاء إشارة مرجعية في وضع التصفح الخاص ، تحتوي هذه الإشارة المرجعية على مجموعة من البيانات الوصفية المرتبطة بها ، مثل الوقت الذي يقضيه في زيارة الموقع وما شابه. في كثير من الحالات ، ستكون هذه البيانات الوصفية صفراً أو قريبة من بعض القيمة الصفرية إذا تم إنشاء هذه الإشارة المرجعية في وضع التصفح الخاص. ثم سيتمكن الشخص الذي سيدير جهاز الكمبيوتر الخاص بك لاحقًا من عرض معلومات الإشارة المرجعية الخاصة بك. إذا رأى أن هذه البيانات الوصفية صفر ، فسوف يستنتج أن هذه الإشارة المرجعية ربما تم إنشاؤها في وضع التصفح الخاص.
عندما نتحدث عن أمان المتصفح ، نفكر في ما يفعله الأشخاص بالضبط باستخدام جافا سكريبت أو HTML أو CSS ، ما الذي يمكنهم فعله مع المكونات الإضافية أو الإضافات؟ في سياق التصفح الخاص ، تعتبر المكونات الإضافية والإضافات مثيرة للاهتمام للغاية ، لأنها في معظم الحالات لا تقتصر على سياسة الأصل نفسها ، على سبيل المثال ، يمكنها تقييد استخدام أشياء مثل JavaScript. ومن المثير للاهتمام أن هذه الإضافات والمكونات الإضافية تعمل عادةً بامتيازات عالية جدًا. بشكل تقريبي ، يمكنك التفكير فيها كوحدات نواة. لديهم سلطة عالية ، مما يسمح لك بتنفيذ ميزات جديدة مباشرة داخل المتصفحات نفسها. لذلك ، يعد هذا أمرًا صعبًا بعض الشيء ، نظرًا لأن هذه المكونات الإضافية والإضافات غالبًا ما يتم تطويرها بواسطة شخص ليس مطور المتصفح الفعلي. وهذا يعني أن شخصًا ما يحاول فعل شيء جيد ومنح متصفحك خصائص مفيدة عن طريق إضافة مكون إضافي أو إضافة إليه. ولكن قد لا يفهم مطور الطرف الثالث هذا السياق الأمني الذي يتم فيه تنفيذ امتداده بشكل كامل ، لذلك قد لا يوفر هذا التمديد دلالات وضع التصفح الخاص أو يوفرها بطريقة خاطئة.
, , , . , , . , , , HTML5 , , . , Java Flash. , 2D 3D-, - Java Flash. , Web GL , , , .
, IE , , - , HTML5. , YouTube, , , - HTML5-, . . , . , , , , .
, , , , 2010 , , ?
, . , , , HTML5.
, , . , . - , .
, 2014 Firefox, pdf.js, PDF-, HTML5-. , , .
, - PDF-, . PDF- , pdf.js , . . , , . , — , .
. , , , , , , , .
, : , , .

Firefox , 2011 . . , , , about:memory, , , , URL- , . , , , about:memory. , Firefox. , Firefox . , , about:memory , .
, URL-, , , . , . .
Bugzilla, , . , , , , , . , , . , . : « , , , .» : « , ».
, — HTML5 — , , . , , , .
, . , , . , .
, Magnet, -, . , , , URL- . - .
, Tor.
.
شكرا لك على البقاء معنا. هل تحب مقالاتنا؟ تريد أن ترى المزيد من المواد المثيرة للاهتمام؟ ادعمنا عن طريق تقديم طلب أو التوصية به لأصدقائك ،
خصم 30٪ لمستخدمي Habr على تناظرية فريدة من خوادم الدخول التي اخترعناها لك: الحقيقة الكاملة حول VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1 جيجابت في الثانية من 20 $ أو كيفية تقسيم الخادم؟ (تتوفر خيارات مع RAID1 و RAID10 ، ما يصل إلى 24 مركزًا وما يصل إلى 40 جيجابايت من ذاكرة DDR4).
VPS (KVM) E5-2650 v4 (6 نوى) 10GB DDR4 240GB SSD 1Gbps حتى ديسمبر مجانًا عند الدفع لمدة ستة أشهر ، يمكنك الطلب
هنا .
ديل R730xd 2 مرات أرخص؟ فقط لدينا
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV من 249 دولارًا في هولندا والولايات المتحدة! اقرأ عن
كيفية بناء البنية التحتية فئة باستخدام خوادم V4 R730xd E5-2650d تكلف 9000 يورو عن بنس واحد؟