Qualifying Observation Integrity for Selective Authorization in PostgreSQL
تقدم هذه الورقة مؤهلاً لتركيب PostgreSQL مقيداً يضمن سلامة التفويض الانتقائي من خلال فرض عقد من المنتج إلى المستهلك عبر فحوصات الكود وأوراكل سلوكية موثقة، مما يتيح إعادة استخدام قرارات السياسة بشكل آمن ويحقق تحسناً في الأداء بنسبة 24% على البيانات غير المتغيرة مع منع التأهيلات غير الآمنة بصرامة والتي تغفلها أدوات التدقيق الهيكلية الأبسط.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في العالم الرقمي، تعمل قواعد البيانات بمثابة الذاكرة المركزية لكل شيء، من الحسابات المصرفية إلى عربات التسوق عبر الإنترنت. فهي تخزن الحالة الراهنة للعالم: كم من المال يوجد في حساب ما، وما هي الأصناف المتوفرة في المخزون، أو ما إذا كان للمستخدم إذن بدخول مبنى ما. عندما يسأل برنامج حاسوبي قاعدة بيانات عن إذن للقيام بإجراء ما، تتحقق قاعدة البيانات من الحقائق الراهنة. وإذا تغيرت الحقائق منذ آخر فحص، فقد تختلف الإجابة. على سبيل المثال، قد تتم الموافقة على عملية شراء عندما يمتلك المستخدم مالاً كافياً، ولكن إذا استهلكت معاملة أخرى ذلك المال بعد ثانية واحدة، فيجب إلغاء الموافقة. وللبقاء في أمان، غالباً ما تعيد الأنظمة التحقق من الحقائق في كل مرة يوشك فيها إجراء ما على الحدوث. هذا أمر موثوق، لكنه قد يكون بطيئاً، خاصة عندما يتم فحص نفس الحقائق آلاف المرات على التوالي دون تغيير.
لطال old البحث عن طرق لتسريع ذلك من خلال تذكر آخر مرة تم فيها فحص الحقائق. فإذا استطاع النظام إثبات أن البيانات الأساسية لم تتغير، يمكنه إعادة استخدام الإذن القديم دون السؤال مجدداً. يُسمى هذا "التفويض الانتقائي". ومع ذلك، لا يعمل هذا الاختصار إلا إذا استطاع النظام التأكد تماماً من أن البيانات لم تتغير حقاً. وإذا خُدع النظام ليعتقد أن البيانات مستقرة بينما هي في الواقع متغيرة، فقد يمنح إذناً لمعاملة كان ينبغي حظرها. التحدي الجوهي ليس فقط في فحص البيانات، بل في التحقق من أن الآليات نفسها المصممة لتتبع التغييرات تعمل بشكل صحيح وهي مرئية للأشخاص المعنيين.
قام باحث يدعى ألكسندر ميهايلوفيتش بتطوير طريقة للتحقق من هذه الآليات لتتبع التغييرات ضمن نوع معين من قواعد البيانات يسمى "بوستجري إس كيو إل" (PostgreSQL). كان الهدف هو إنشاء مجموعة صارمة من القواعد التي يجب أن يتبعها تثبيت قاعدة البيانات ليتم الوثوق به لاستخدام هذا الاختصار. يعمل النظام، الذي سُمي "أونتو كوميت" (OntoCommit)، كحارس بوابة. فقبل أن يُسمح لقاعدة البيانات بإعادة استخدام قرارات التفويض القديمة، يقوم هذا الحارس بفحص الكود والإعدادات للتأكد من أن كل تغيير في البيانات يتم تسجيله بشكل صحيح، وأن الشخص الذي يفحص السجلات يمكنه بالفعل رؤية تلك السجلات. يركز البحث على حدود محددة: اللحظة التي يحدث فيها التغيير واللحظة التي يتم فيها رصد هذا التغيير. إذا كانت هناك فجوة بين الاثنين، فإن سلامة النظام بأكمله تصبح في خطر.
بدأت الدراسة بتحديد مدى سهولة كسر هذه الثقة، حتى عندما يبدو الكود صحيحاً على السطح. وجد الباحث أن هناك طريقتين محددتين يمكن للنظام أن يفشل فيهما بصمت. في الحالة الأولى، تم تبديل أسماء المدخلات لدالة مساعدة مصممة لتحديث عداد التغيير. ظل الكود يعمل، وكانت أنواع البيانات التي يقبلها صحيحة، ولكن بسبب اختلاط الأسماء، تم تحديث عداد لنوع واحد من التغييرات بينما ظل عداد النوع الآخر عالقاً. كان الأمر يشبه نظام إشارات مرور حيث تم توصيل مستشعر المسار (شمال-جنوب) بالخطأ بزر المسار (شرق-غرب)؛ ستتغير الإشارات، ولكن ليس للسيارات التي تحتاجها. وفي الحالة الثانية، تم تكوين النظام بميزة أمنية تخفي بعض صفوف البيانات عن المستخدمين العاديين. تم تحديث عداد التغيير بشكل صحيح من قبل مدير النظام، ولكن الشخص الذي يفحص الإذن كان ممنوعاً من رؤية هذا التحديث. بالنسبة للمُفحص، بدا العداد وكأنه صفر، رغم أنه قد زاد في الواقع. وهذا خلق شعوراً كاذباً بالأمان.
ولمنع هذه الإخفاقات، بنى الباحث أداة تأهيل تتحقق من تثبيت قاعدة البيانات قبل السماح لها باستخدام الاختصار. لا تبحث هذه الأداة فقط عن وجود الكود؛ بل تتحقق من الربط الدقيق لأسماء الدوال، وملكية الجداول، وإعدادات الرؤية لكل دور مستخدم. وهي تصر على أن الكود المسؤول عن تحديث عدادات التغيير يطابق التوقيع (signature) المتوقع تماماً من قبل النظام. كما أنها تمنع استخدام "أمن مستوى الصف" (row-level security) على الجداول المحددة التي تتبع هذه التغييرات، مما يضمن أن الشخص الذي يفحص الإذن يمكنه دائماً رؤية الحالة الحقيقية للعداد. تعمل الأداة كمفتش صارم، حيث ترفض أي تثبيت يحاول استخدام تنويعات غير مدعومة أو يخفي أدلة التغيير.
اختبر الباحث هذا النهج باستخدام بيئة محكومة تحاكي عملية شراء كاملة. تم إعداد النظام للتعامل مع سيناريو يحاول فيه مستخدم شراء شيء ما، مع فحص رصيد حسابه وأي حجوزات قائمة على أمواله. قارنت التجربة بين طريقتين: إحداهما حيث يعيد النظام تقييم السياسة بالكامل من الصفر في كل مرة، والأخرى حيث يستخدم النظام اختصار التفويض الانتقائي. أُجريت الاختبارات على نسخة قياسية من برنامج قاعدة البيانات، ولكن داخل بيئة حاسوبية محاكية لضمان التحكم الدقيق في الظروف. تضمنت الدراسة مجموعة من مائة وثمانية وثمانين زوجاً من الإعدادات المختلفة، بعضها صُمم ليكون آمناً وبعضها الآخر ليكون غير آمن، لمعرفة ما إذا كانت أداة التأهيل تستطيع التمييز بينهما.
أظهرت النتائج أن أداة التأهيل كانت فعالة للغاية في تحديد الإعدادات غير الآمنة. فقد نجحت في رفض جميع الحالات الخمس غير الآمنة المتعمدة، بما في ذلك الحالات ذات أسماء المعلمات المتبدلة وصفوف البيانات المخفية. وفي الوقت نفسه، قبلت جميع الإعدادات الثمانية والأربعين الصحيحة والآمنة. كما رفضت بشكل صحيح إعدادين كانا آمنين ولكن لا يتوافقان مع القواعد الصارمة للأداة، مما أثبت أنها تعطي الأولوية للسلامة على حساب الملاءمة. وفي اختبارات الأداء، أثبت منهج التفويض الانتقائي أنه أسرع بكثير عندما تظل البيانات دون تغيير. فبالنسبة لمجموعة بيانات مكونة من عشرة آلاف صف، أكمل النظام الذي يستخدم الاختصار الدورة في وقت وسيط قدره ستة وستون مللي ثانية، بينما استغرق النظام الذي يعيد فحص كل شيء ثمانية وثمانين مللي ثانية. مثل هذا انخفاضاً بنسبة 24% في الوقت. ومع ذلك، وجدت الدراسة أيضاً أنه عندما تتغير البيانات بالفعل، فإن الاختصار لا يوفر أي ميزة في السرعة، بل قد يكون أبطأ قليلاً، حيث يتعين على النظام إعادة تقييم السياسة.
كما سلط البحث الضوء على حدود الاختبار. أوضح الباحث أن مجرد تشغيل بضعة اختبارات لمعرفة ما إذا كان النظام يعمل ليس كافياً لضمان عمله دائماً. فمن الممكن بناء سيناريو يجتاز فيه النظام كل الاختبارات ولكنه لا يزال يفشل في ظل ظرف معين وغير مرئي. أظهرت الدراسة أنه يمكن لنظام أن يجتاز سلسلة من الفحوصات بينما لا يزال يخفي تغييراً حرجاً عن المراقب. وهذا يعني أن الطريقة الوحيدة لضمان السلامة هي فرض قواعد صارمة حول كيفية بناء النظام، بدلاً من الاعتماد فقط على الاختبار لإيجاد الأخطاء. لا تدعي الأداة أنها تثبت أن النظام مثالي في كل عالم ممكن، لكنها توفر عقداً قابلاً للتحقق بأن التثبيت يتبع نمطاً معيناً وآمناً.
في النهاية، يوفر هذا العمل طريقة عملية لجعل قواعد البيانات أسرع دون التضحية بالأمن. ومن خلال تحديد مجموعة واضحة من القواعد لكيفية تنفيذ وتدقيق تتبع التغيير، نجح الباحث في خلق طريقة للوثوق بأن قاعدة البيانات تقول الحقيقة بشأن حالتها. لا تدعي الدراسة حل كل مشاكل أمن قواعد البيانات، ولا تقترح استخدام هذه الطريقة في كل موقف. إنها حل متخصص لنوع معين من إعدادات قواعد البيانات، وهو النوع الذي يقايض بعض المرونة بدرجة أعلى من اليقين. تشير النتائج إلى أنه بالنسبة للتطبيقات التي تكون فيها السرعة والسلامة أمرين بالغ الأهمية، مثل المعاملات المالية، يمكن لنظام مؤهل بعناية أن يوفر اختصاراً موثوقاً. وتخلص الأبحاث إلى أن سلامة هذه الاختصارات تعتمد كلياً على نزاهة مسار الملاحظة، من لحظة حدوث التغيير إلى لحظة رصده، وأن هذا المسار يجب فحصه بنفس صرامة فحص البيانات نفسها.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.