الاستنتاجات وشروط القرار
- لا تقدّم مجرد ملف تثبيت يحمل الاسم نفسه؛ بل يجب تسجيل مصدره، وإصداره، وبصمة الملف، وخطة التوقيع، وقنوات التوزيع المقصودة.
- لا تطلب ببساطة "أقصى قوة"؛ بل حدّد أي منطق تسبّب عكسه هندسيًا أو تعديله في خسائر تجارية محددة.
- يجب أن يغطي مكدس التقنية اللغات، وأنظمة البناء، وإصدارات نظام التشغيل الدنيا، وواجهات ثنائية التطبيق (ABIs)، والمكوّنات الأصلية (Native)، والتحميل الديناميكي، وأطر العمل متعددة المنصات، ومجمعات تطوير البرمجيات (SDKs) الخارجية.
- عرّف شروط النجاح، والفشل، والنطاق غير المغطّى، والإيقاف، والرجوع قبل بدء إثبات المفهوم (PoC) لتجنب الخلط بين الإطلاق الناجح وجاهزية الإصدار.
قدّم أولاً نسخة مرشح للإطلاق قابلة للتحديد بشكل فريد
تعمل نسخة المرشح للإطلاق ككائن مشترك للإعدادات والاختبارات والاستنتاجات اللاحقة. قدّم كحد أدنى اسم الحزمة أو معرف الحزمة (Bundle ID)، والإصدار، ومصدر البناء، وتجزئة SHA-256 للملف، وحالة التوقيع الحالية، وخطة التوقيع النهائية، وقنوات التوزيع المقصودة. إذا كان تسليم الملف مستحيلًا مؤقتًا، فوضّح ما إذا كان المشروع في مرحلة الهندسة المعمارية، أو التطوير، أو التكامل، أو التحضير للإطلاق.
الملفات التي تحمل الاسم نفسه لا تمثّل القطعة الأثرية نفسها. فإن إعادة البناء، أو إعادة التوقيع، أو تعديل موارد القناة، أو استبدال التبعيات يولّد هوية جديدة. ولكل تغيير، حدّد عمليات التحقق التي يجب إعادة تشغيلها؛ ولا تطبق استنتاجات النجاح من نسخ المرشحين القديمة مباشرة على الملفات الجديدة.
عند التعامل مع كود ملكي أو بيانات مستخدمين، قدّمها عبر سير عمل المشروع المتحكم به على منصة Yudun المركزية. توفر مواقع المواضيع العامة فقط الأساليب ونقاط الدخول؛ ولا تقبل الحسابات، أو ملفات التثبيت، أو الشهادات، أو أسرار المشروع.
| الحقل | محتوى مثال | الغرض | الثغرات الشائعة |
|---|---|---|---|
| هوية التطبيق | اسم الحزمة أو معرف الحزمة (Bundle ID)، والإصدار | يربط نطاق الإصدار، والترقية، والاختبار | تقديم اسم المتجر فقط |
| هوية الملف | تجزئة SHA-256 ووقت الإنشاء | يضمن أن جميع الأدلة تشير إلى الملف نفسه | استبدال الملفات القديمة بأخرى تحمل الاسم نفسه |
| مصدر البناء | الفرع، أو الالتزام (Commit)، أو وظيفة التكامل المستمر (CI Job)، أو سجل الإصدار | تتبع المشكلات وإعادة البناء | عدم القدرة على تحديد المصدر |
| خطة التوقيع | الحالة الحالية، والشهادة النهائية، وخطوات التوقيع | يتحقق من هوية الترقية والإصدار | إعادة التوقيع التعسفية بعد إثبات المفهوم (PoC) |
| نطاق التوزيع | المتجر، أو قنوات المؤسسة، أو القنوات الخاصة | يحدد إشارات النزاهة وفحوصات التسليم | افتراض تطابق جميع القنوات |
تحديد الخسارة التجارية للكود الذي يتطلب الحماية
إن عبارات مثل "أقصى قوة"، و"حماية كاملة"، و"مكافحة الكسر" ليست متطلبات قابلة للتنفيذ. اذكر الخوارزميات الأساسية، وفحوصات التفويض، ومعالجة البروتوكولات، وحقوق المحتوى، والنماذج، أو القرارات المحلية الحرجة، واشرح الخسارة المحددة الناتجة إذا تم فهمها، أو نسخها، أو تعديلها، أو تجاوزها.
اشرح في الوقت نفسه لماذا يجب أن يبقى هذا المنطق على جانب العميل. يجب أن تتخذ الخوادم القرار أولاً بشأن تفويضات المخاطر العالية التي يمكن معالجتها من جانب الخادم؛ ولا ينبغي تقييم حماية جانب العميل إلا للمسارات التي تتطلب قدرة غير متصلة بالإنترنت، أو زمن انتقال منخفض، أو ميزات أصلية للمنصة. يضمن ذلك حصر تقنية Yudun VMP للكود الذي يتطلب حقًا تمثيل تنفيذ مُعدّل.
يجب أن يكون لكل أصل مالك، ونقطة دخول للاستدعاء، وتكرار تنفيذ، وسياق خيط، وتعريفات للمدخلات والمخرجات، واعتماديات، وآلية بديلة عند الفشل. يجب إضافة شروط الاختبار أولاً للأصول التي تفتقر إلى مسارات قبول مستقلة، بغض النظر عن قيمتها.
| نوع الأصل | الخسارة المراد وصفها | الضرورة من جانب العميل | تحضيرات القبول المقترحة |
|---|---|---|---|
| التفويض والحقوق | الموارد التي يمكن الوصول إليها في حال تجاوز الفروع المحلية | القدرة على العمل دون اتصال أو اتخاذ قرارات محلية سريعة | حالات التشغيل الطبيعي، وانتهاء الصلاحية، والتلاعب، وإعادة التحقق من الخادم |
| الخوارزميات الأساسية | فقدان القيمة التجارية في حال النسخ | الأداء على الجهاز، أو الخصوصية، أو متطلبات العمل دون اتصال | اتساق المدخلات والمخرجات، والأداء، وبيانات الحدود |
| البروتوكول واستخدام المفاتيح | عواقب إعادة التشغيل، أو التزوير، أو الإساءة الجماعية | ربط الجهاز أو الاتصال المحلي | معالجة الأخطاء، وكشف إعادة التشغيل، وتدوير المفاتيح، وحدود الخادم |
| النماذج أو القواعد المدمجة على الجهاز | نسخ أو تعديل النماذج، أو مطالبات الذكاء الاصطناعي، أو المعالجة اللاحقة | متطلبات العمل دون اتصال، أو الخصوصية، أو زمن الاستجابة المنخفض | إقران الإصدارات، والتحميل، والرجوع للإصدار السابق، والتسجيل |
| واجهات الطرف الثالث الحرجة | عواقب تجاوز مجموعة تطوير البرمجيات (SDK) أو استدعائها بشكل غير صحيح | متطلبات المنصة أو القناة | الحسابات الحقيقية، والتوقيعات، ومسارات الاستدعاء العكسي |
تحديد جرد حزمة التقنيات لحدود اختبار التوافق
يجب أن تحدد مشاريع Android إصدارات Java وKotlin وNDK وGradle وإضافة Gradle لـAndroid، وminSdk، وtargetSdk، ومعالجات التعليمات (ABIs) المُصدَرة، واستخدام الانعكاس، والتسلسل، وتحميل الفئات الديناميكي، والإصلاحات السريعة، وهيكلة الإضافات، وWebView، والمكونات الأصلية، وهياكل العمليات المتعددة. أما مشاريع iOS فيجب أن تحدد إصدارات Swift وObjective-C، وأقل إصدار لنظام التشغيل، والملحقات، والمكتبات الديناميكية، وخصائص وقت التشغيل، وقدرات التوقيع.
بالنسبة لأطر العمل متعددة المنصات مثل Flutter أو React Native أو Unity أو Cocos أو غيرها، سجّل إصدار الإطار، وطريقة الجسر، والمحرك، ومكتبات الأعمال الأصلية. لا تكتفِ بذكر "متعدد المنصات"، لأن بنية القطع الأثرية، وسلوك بدء التشغيل، وتكاملات الطرف الثالث تختلف اختلافًا كبيرًا بين الإصدارات.
قد تعتمد خدمات تسجيل الدخول والدفع والإشعارات الفورية والخرائط والصوت/الفيديو والتحليلات والتحكم في المخاطر والإصلاحات السريعة وخدمات البائعين الأخرى على الانعكاس، أو التوقيعات، أو إدخالات ملف Manifest، أو مخططات URL، أو واجهة JNI، أو الموارد، أو فحوصات النزاهة الخاصة بها. إن سرد هذه العناصر بالكامل أثناء التقييم الأولي يوفر وقتًا أطول من تخمينها واحدة تلو الأخرى بعد حدوث الأعطال.
- اللغات، وأنظمة البناء، وإصدارات الإضافات الرئيسية
- أقل إصدار لنظام التشغيل والإصدار المستهدف، والأجهزة، ومعالجات التعليمات (ABIs)
- المكونات الأصلية، وواجهة JNI، والتحميل الديناميكي، وأطر العمل متعددة المنصات
- العمليات المتعددة، وWebView، والإصلاحات السريعة، وهيكلة الإضافات
- مجموعات تطوير البرمجيات (SDKs) الحرجة: تسجيل الدخول، الدفع، الإشعارات الفورية، الصوت/الفيديو، إلخ.
توضيح التوقيع والقنوات وخطط الترقية قبل إثبات المفهوم (PoC)
حدد التوقيع الذي تستخدمه قطعة عمل إثبات المفهوم، ومن يوقع الإصدار الرسمي، وما إذا كانت موارد القناة تُعالَج قبل التوقيع أم بعده، وما إذا كان يُستخدم توقيع تطبيقات Play، وأي طريقة توزيع تُستخدم لنظام iOS. تؤثر هذه العوامل على التثبيت، والترقيات، وإشارات النزاهة، وهوية الملف النهائية.
تنص Google رسميًا على أن مفاتيح توقيع التطبيقات تؤكد أن التحديثات صادرة عن حامل المفتاح نفسه. إذا استخدم إثبات المفهوم شهادة مؤقتة، فإنه يتحقق فقط من تلك البيئة المحددة ولا يثبت تلقائيًا التغطية للإصدارات المتصلة بالإنترنت. يجب أن يستخدم القبول الرسمي خطة توقيع متسقة مع سلسلة الإصدار، ومسموح بها ضمن سير عمل التفويض والأمان.
يجب أن تتبع معالجة القنوات ترتيبًا ثابتًا. إن تعديل جسم الحزمة بعد التوقيع النهائي يكسر التوقيع؛ وإن إعادة البناء أو إعادة التوقيع بعد القبول تولّد مرشح إصدار جديد. يجب أيضًا أن تتحقق إصدارات الرجوع من التوقيعات، وأرقام الإصدارات، وترحيل البيانات، وترقيات الكتابة فوق البيانات مسبقًا.
| السؤال | سبب الأهمية | حالة مقبولة لإثبات المفهوم | متطلب القبول الرسمي |
|---|---|---|---|
| من ينفذ التوقيع النهائي؟ | يحدد مسؤولية المفتاح وهوية القطعة الأثرية | توقيع مؤقت مع قيود واضحة | متسق مع العملية الرسمية وقابل للتدقيق |
| متى يُعدَّل جسم الحزمة من أجل القنوات؟ | التعديل يغيّر الملف والمحتوى الموقّع | يمكن وصف الترتيب | يُستكمل قبل التوقيع مع هوية مُثبّتة مجددًا |
| كيف نغطي الإصدارات المنشورة؟ | يتحقّق من صحة التوقيع واستمرارية الإصدار | يمكن تخطيه مع وضع علامة "غير مغطّى" | ترقية من إصدار حقيقي منشور |
| كيفية التراجع؟ | يجب أن يكون قابلاً للتنفيذ أثناء الحوادث | إعداد مرشّح خط الأساس | حزمة التراجع مُتحقَّق منها مسبقًا ومعيَّن لها مالك |
تحديد شروط النجاح والفشل والإيقاف لاختبار المفهوم مسبقًا
اختبار المفهوم ليس مجرد توليد حزمة محمية قابلة للتثبيت. حدّد مسبقًا نطاق الحماية للمراقبة، وسطح التعرض الثابت، وسلوك بدء التشغيل، وتدفقات الأعمال الحرجة، وميزانية الأداء، والأنظمة المستهدفة، وواجهات ثنائية التطبيق (ABIs)، ومجموعات تطوير البرمجيات التابعة لجهات خارجية، وعمليات التثبيت/الترقية، ومسارات الاستثناء البديلة. قد تختلف أوزان كل مشروع، لكن لا يجوز غياب أي تعريف منها.
يجب أن تكون شروط النجاح قابلة للقياس، مثل مدخلات/مخرجات مفتاحية متسقة، واجتياز كل نظام مستهدف على حدة، وتغييرات التشغيل الأولي ضمن ميزانية المشروع، ومسارات استثناء آمنة، وتكوينات حماية قابلة للتتبع. تشمل شروط الفشل حظر التشغيل الأولي، وأخطاء أعمال حرجة، وتغييرات أداء غير مقبولة، وفشل التوافق ضمن نطاق الهدف، أو مشكلات غير قابلة للنسب.
تمنع شروط الإيقاف التوسّع العشوائي في النطاق. إذا كانت هويات المرشّحين غير متسقة، أو فُقدت خطوط الأساس، أو تعذّر الحصول على السجلات الحرجة، أو لم تُؤكّد سير عمل التوقيع، أو لم تتطابق بيئات الاختبار مع نطاق الإصدار، فتعالج هذه الفجوات قبل المتابعة.
| الحالة | المعنى | متطلب الإبلاغ | قابل للنشر؟ |
|---|---|---|---|
| مُتحقَّق منه | تم الحصول على أدلة لنفس المرشّح ضمن النطاق المتفق عليه | حدّد الطريقة والبيئة والنتائج والحدود | الحكم صالح فقط لذلك النطاق |
| فشل | حدث حظر قابل لإعادة الإنتاج أو عدم امتثال لميزانية الأداء | احتفظ بأ earliest الفروقات والأثر الناتج | لا يمكن النشر باستخدام التكوين الأصلي |
| لم يُنفَّذ | نقص في الأجهزة أو الحسابات أو البيانات أو التفويض | اذكر السبب والخطوات التالية | لا يمكن الاستعاضة عنه بنتائج أخرى |
| غير منطبق | يستبعد المشروع صراحةً هذه المنصة أو القدرة | قدّم الأساس الذي بُني عليه التحديد | مستبعَد من النطاق الحالي |
project_stage: release-candidate
artifacts:
baseline: identified
protected_candidate: pending
assets:
- entitlement-decision
- protocol-core
stack:
platform: Android
min_os: project-defined
abis: [arm64-v8a]
critical_journeys:
- cold-launch
- sign-in
- protected-operation
acceptance:
functional_parity: required
performance_budget: project-defined
compatibility_matrix: required
rollback_rehearsal: required
boundaries:
- no_unverified_attack_resistance_claim
- uncovered_devices_remain_openالمخرجات المُشكَّلة بعد تقييم Yudun واكتمال تقديم البيانات
يدعم الإدخال الكامل ثلاث مراحل متتالية: تؤكد المرحلة الأولى الأصول ومكدس التقنية وسلسلة الإصدار لتشكيل نطاق حماية أولي وقائمة مخاطر. تولّد المرحلة الثانية اختبار مفهوم قابل للتتبع وتنفّذ فحوصات ثابتة وزمنية على نفس هوية المرشّح. تعدّل المرحلة الثالثة النطاق بناءً على النتائج لإنهاء مصفوفة الأهداف وحدود الإصدار وشروط التراجع.
يجب تأكيد قدرات الحماية المحددة، ودعم المنصات، وميزانيات الأداء، ودورات التسليم مقابل مشاريع حقيقية. لا تستخدم هذه الصفحة حالات عملاء أو معدلات نجاح أو أرقام أداء عامة، ولا تعد بنتائج نهائية دون وجود مرشّح إصدار.
تُوحَّد عمليات تسجيل الدخول والتسجيل والتطبيقات والتسعير وبيانات المشاريع ضمن منصة Yudun المركزية. لن تنشئ مواقع الموضوعات مجموعة ثانية من الحسابات أو أنظمة التطبيقات. نظّم المواد وفق قائمة التحقق هذه قبل التقديم لتجنب الحاجة المتكررة لاستكمال هويات المرشّحين ونطاقات الإصدار بعد بدء المشروع.
- مرشّح إصدار قابل للتتبع، وخط أساس، وسلسلة إصدار
- وصف واضح للأصول المحمية والخسائر التجارية
- مكدس تقنية كامل، واعتماديات تابعة لجهات خارجية، ومصفوفة أهداف
- شروط محددة للنجاح والفشل والنطاق غير المغطّى والتراجع
- قدّم البيانات الحساسة فقط عبر المنصة المركزية
حدود الأدلة وقابلية التطبيق
يفصل هذا القسم حقائق النظام الموثقة، والأحكام الهندسية، والحدود التي لا يمكن تعميمها على مطالبات المنتج التي لم يتم التحقق منها.
| حكم المادة | الحقيقة أو الأساس الهندسي | حد قابلية التطبيق |
|---|---|---|
| هوية مرشّح الإصدار هي المفتاح الأساسي المشترك لأدلة التقييم. | إعادة البناء والتوقيع وتعديلات القنوات وتغييرات الاعتماديات تُغيّر الملف النهائي والسلوك الزمني المحتمل. | يُعرِّف SHA-256 الملف لكنه لا يعني أن الملف آمن. |
| يجب اشتقاق أهداف حماية VMP من الخسارة التجارية ونمذجة التهديدات. | تعامل معايير OWASP MASVS مكافحة الهندسة العكسية ومكافحة العبث كدفاع عميق ضد تهديدات محددة، وليس كبديل لمنطق الخادم أو البنية العامة. | لا تثبت المعايير أن مرشحًا أو تكوينًا محددًا قد اجتاز الاختبارات بنجاح. |
| يجب أن تكون خطط التوقيع والترقية مغلقة الحلقة في مرحلة القبول الرسمي. | يستخدم أندرويد هوية توقيع التطبيق لتأكيد استمرارية التحديث، بينما تتطلب منصات أبل أيضًا أن يتبع الكود القابل للتنفيذ سلسلة توقيع الكود. | يجب التحقق من طرق التوزيع المختلفة واستراتيجيات تدوير الشهادات لكل مشروع على حدة. |
| إن القدرة على التثبيت والتشغيل لا تشكل استنتاجًا كاملًا لإثبات المفهوم (PoC). | تشمل عملية الإصدار أيضًا سير العمل التجاري الحرج، والأداء، والأنظمة، وواجهات ثنائية للتطبيق (ABIs)، وأطرافًا ثالثة، والترقيات، والمراقبة، وآليات التراجع. | قد تقلل المشاريع من نطاق المصفوفة بناءً على نطاق المستخدمين الفعلي، ولكن يجب التصريح صراحةً بالعناصر غير المغطاة. |
| لا تقبل مواقع الموضوعات بيانات المشاريع الحساسة. | تتعامل منصة Yudun المركزية بشكل موحد مع الحسابات والتطبيقات وبيانات المشاريع؛ بينما توفر مواقع المحتوى فقط الطرق العامة وعمليات إعادة التوجيه. | تخضع أذونات البيانات المحددة وقواعد الاحتفاظ بها لمنصة المركز واتفاقيات المشروع. |
أسئلة هندسية
هل يمكنني التقدم بطلب تقييم باستخدام ملف APK فقط دون الكود المصدري؟
يمكنك تأكيد القطعة الأثرية والأهداف أولًا، لكن تكوين الحماية، ونسب المشكلات، وقدرات إعادة البناء قد تكون محدودة. يجب عليك تحديد ما إذا كان بإمكانك توفير التعاون في البناء، ورموز التصحيح، وحسابات الاختبار، وخطوط الأساس.
هل يجب توفير التوقيع الرسمي أثناء التواصل الأولي؟
ليس بالضرورة. يمكن استخدام توقيع اختبار مضبوط لإثبات مفهوم جزئي، ولكن يجب التصريح بوضوح بأن هذا لا يمثل ترقيات البيئة الإنتاجية أو سلسلة التوقيع الرسمية. يجب اكتمال خطة الإصدار قبل القبول الرسمي.
لماذا يجب سرد جميع مجموعات تطوير البرمجيات (SDKs) التابعة لأطراف ثالثة؟
قد تعتمد مجموعات التطوير التابعة لأطراف ثالثة على الانعكاس، أو التوقيعات، أو الموارد، أو واجهة JNI، أو ترتيب التهيئة، أو فحوصات النزاهة الخاصة بها، مما يجعلها مصدرًا كبيرًا لمشكلات التوافق.
هل يمكنني طلب أقصى قوة حماية مباشرة؟
يمكنك بيان تفضيلات المخاطر، لكن النطاق النهائي يجب أن يظل مُطبَّقًا طبقيًا بناءً على قيمة الأعمال، وتكرار التنفيذ، ونطاق التأثير (blast radius)، وقدرات اختبار التراجع؛ وإلا يصعب الوصول إلى استنتاج إصدار مستقر.
هل يمكن رفع البيانات المدرجة في هذه المقالة مباشرة عبر موقع الموضوعات؟
لا. توفر مواقع الموضوعات محتوى عامًا فقط. يجب إعادة توجيه عمليات تسجيل الدخول، والتسجيل، والتطبيقات، وبيانات المشاريع إلى منصة Yudun المركزية للمعالجة.
هل تريد اختبار ذلك على تطبيقك الخاص؟
أرسل الإصدار المرشح والأنظمة المستهدفة ومسارات الأعمال المهمة لتقييم Yudun PoC والتوافق.