13 نوفمبر 2026
نهاجم بناءنا نحن عند كل تغيير
اختبار الأمان الذي لا يمكن أن يفشل لا يثبت شيئًا. لذلك تأتي اختبارات NoWayOS مع نسخ بُنيت لتفشل، وتوجد بواباته حيث لا يستطيع طلب سحب أن يصل إليها.
في هذه الصفحة
هذا سؤال مزعج لأي اختبار أمان: هل فشل يومًا؟ الاختبار الذي لم يفشل قط ربما ينجح لأن النظام سليم، أو لأن الاختبار لا يرى شيئًا على الإطلاق. ومن الخارج، يبدو الأمران متطابقين تمامًا.
لذلك لا يكتفي NoWayOS باختبار أمانه. بل يهاجمه، عند كل تغيير، ويتحقق من أن الهجمات تُصَدّ.
مدّ اليد إلى ما ليس لك
كل جزء من نظام NoWayOS يعمل في حجرته الخاصة على seL4، ولا يملك إلا ما مُنح له. واختبارات العزل ترسل مجسّات عبر تلك الحدود عمدًا. أحدها يقرأ عنوانًا لم يُعطَ له قط. وآخر يكتب في صفحة لا يحق له إلا قراءتها. وآخر، يملك ما تملكه واجهة المستخدم بالضبط، يحاول الكتابة في صفحة التحكم الخاصة بالعرض، التي لا يحق للواجهة إلا قراءتها. وآخر، يملك ما يملكه عميل الشبكة بالضبط، يحاول الكتابة في ذاكرة مشغل الشبكة.
وعلى seL4 أن توقفها كلها، وعلى جزء لا علاقة له بالأمر أن يواصل العمل من دون أن يُمَسّ.
اختبار بُني ليفشل
ثم تأتي المفاجأة. إلى جانب اختبار العزل الخاص بواجهة المستخدم توجد نسخة وُسِّع فيها إذن واحد عمدًا: يُعطى بديل الواجهة الصفحة الخاصة بالعرض. واختبار تلك النسخة يجب أن يفشل. ولو نجح يومًا لكان اختبار العزل أعمى، ولقال البناء ذلك.
والفكرة نفسها تسري في بقية الفحوص. لكل مفكك للرسائل بين الأجزاء براهين محدودة، من مدقق النماذج Kani، على أنه لا ينهار ولا يفيض ولا يقرأ خارج الحدود أبدًا. ثم تُفسد فحوص الطفرات المفككات عمدًا، لتبيّن أن البراهين تنتبه. وكل محلل لمدخلات خارجية يخضع لاختبار التشويش ببيانات معادية.
وكل ذلك جزء من make ci، البوابة التي يجب أن يمر بها كل تغيير. اختبارات العزل تعمل في كل مرة؛ أما البرهان أو جولة التشويش فيُعادان كلما تغيرت الشيفرة التي يغطيانها.
اختبار بُني ليفشل
الاختباريمدّ المجسّ يده إلى صفحة لم تُمنح له قط. توقفه seL4، وينجح الاختبار.
النسخة المعدَّلةيُوسَّع إذن واحد عمدًا. فيعبر المجسّ، ولذلك يجب أن يفشل هذا الاختبار. ولو نجح يومًا لكان الاختبار الأول أعمى.
بوابات بعيدة عن المتناول
البوابة قوية بقدر قوة اليد التي تستطيع تغييرها. لذلك فإن الفحوص التي يجب أن تجتازها كل مساهمة في NoWayOS معرَّفة في Defence Agent، وهو مستودع عام مستقل. وطلب السحب الذي يمس بوابة يُعلَّم لينظر فيه المشرف على المشروع.
ويختبر Defence Agent نفسه بالطريقة ذاتها: عشرون طلب سحب مدسوسًا، يخفي كل منها شيئًا قد يفوت المراجع. فيها نص مخفي من اليمين إلى اليسار داخل تعليق، وحرف استُبدل به شبيهه السيريلي، واعتمادية تُجلب مباشرة من مستودع git، ومسار عمل كان سيشغّل شيفرة غير موثوقة. ويجب أن يُكشف كل واحد منها، بينما يجب أن تمر ثلاثة تغييرات حقيقية سابقة.
أدلة، لا نعوت
لا شيء من هذا يجعل الجهاز “غير قابل للاختراق”. لا شيء يفعل ذلك، ولن نقوله أبدًا. ما يعطيك إياه هو الأدلة: سجل بما جُرِّب، وما أُوقف، والأمر الذي يُظهر ذلك. اقرأ الأدلة الخاصة بصورة حقيقية واحدة، أو البوابات نفسها.