Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Cawdog — CAWODOG هو مشروع إثبات مفهوم يوضح كيفية حماية نماذج الذكاء الاصطناعي المبنية على Python عند تشغيلها على آلات صناعية غير متصلة بالإنترنت. عبر ثلاث خطوات متدرجة (0 → 2)، يعرض المشروع: * كيف يمكن إجراء هندسة عكسية بسهولة لتطبيق ذكاء اصطناعي بسيط مبني على Python، * كيف يمكن للمهاجمين استخراج النماذج من الملفات الثنائية المعبأة، و * كيفية تحصين عمليات نشر الذكاء الاصطناعي باستخدام تحويل ONNX وتشفير النماذج ومحرك تشغيل منفصل. يستخدم إثبات المفهوم نموذجًا مرحًا لكشف الكلاب («مجموعة هيمنة عالم القطط») لتوضيح مفاهيم حماية الملكية الفكرية الصناعية الحقيقية المطبقة على أنظمة التحكم المعتمدة على الذكاء الاصطناعي، مثل منصة StarX من Starlinger. وهو بمثابة تنفيذ مرجعي للورقة التقنية المصاحبة «تحصين الملكية الفكرية لـ Python لعمليات نشر الذكاء الاصطناعي الصناعي دون اتصال بالإنترنت». | Kitploit
أدوات/GitLabGitLab/lycis/cawdog
أمان الأنظمة المدمجةالتحليل الثابتأدوات التشفير/فك التشفيرتحليل الكودالهندسة العكسيةأمان الأجهزة وإنترنت الأشياءالأوراق والأبحاثالتعلم والتعليمأمن الذكاء الاصطناعي

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →

حول

CAWODOG هو مشروع إثبات مفهوم يوضح كيفية حماية نماذج الذكاء الاصطناعي المبنية على Python عند تشغيلها على آلات صناعية غير متصلة بالإنترنت. عبر ثلاث خطوات متدرجة (0 → 2)، يعرض المشروع: * كيف يمكن إجراء هندسة عكسية بسهولة لتطبيق ذكاء اصطناعي بسيط مبني على Python، * كيف يمكن للمهاجمين استخراج النماذج من الملفات الثنائية المعبأة، و * كيفية تحصين عمليات نشر الذكاء الاصطناعي باستخدام تحويل ONNX وتشفير النماذج ومحرك تشغيل منفصل. يستخدم إثبات المفهوم نموذجًا مرحًا لكشف الكلاب («مجموعة هيمنة عالم القطط») لتوضيح مفاهيم حماية الملكية الفكرية الصناعية الحقيقية المطبقة على أنظمة التحكم المعتمدة على الذكاء الاصطناعي، مثل منصة StarX من Starlinger. وهو بمثابة تنفيذ مرجعي للورقة التقنية المصاحبة «تحصين الملكية الفكرية لـ Python لعمليات نشر الذكاء الاصطناعي الصناعي دون اتصال بالإنترنت».

GitLablycis/cawdog

Cawdog

عرض المستودع
7منذ 9 أشهرلم تتم المراجعة بعد
مشاركة

CAWODOG – إثبات مفهوم لحماية الملكية الفكرية للذكاء الاصطناعي الصناعي القائم على بايثون

CAWODOG (مجموعة هيمنة عالم القطط) هو إثبات مفهوم مرح ولكن واقعي لـ حماية نماذج الذكاء الاصطناعي القائمة على بايثون المثبتة على أجهزة صناعية دون اتصال بالإنترنت.

الفكرة الأساسية:
خذ مصنّف صور صغيرًا يكتشف الكلاب (وهي «عدو» CAWODOG)، وغلّفه في تطبيق بسيط، ثم حصّن النشر تدريجيًا ضد سرقة الملكية الفكرية.

صُمم إثبات المفهوم ليكون مكمّلًا لورقة بيضاء داخلية حول:

تحصين الملكية الفكرية لبايثون في عمليات نشر الذكاء الاصطناعي الصناعي دون اتصال بالإنترنت


الأهداف

يوضح هذا المستودع خطوة بخطوة:

  • مدى سهولة سرقة نموذج من نشر بايثون ساذج
  • كيفية هيكلة تطبيق بايثون إلى واجهة مستخدم مقابل محرك
  • كيفية تغليف المحرك وتحصينه باستخدام:
    • بنيات Nuitka بوضع onefile
    • تصدير ONNX
    • التشفير المتماثل لناتج النموذج (artifact)
  • كيف تبدو سير عمل المهاجم في كل مرحلة

هيكل المستودع

root@kitploit:~
.
├── 0/                     # Step 0 – Unhardened baseline
│   ├── model/             # Training + inference code
│   ├── app/               # Gradio-based web UI
│   ├── requirements.txt
│   └── (optional) build / run helpers
│
├── 1/                     # Step 1 – Packaged with Nuitka (Level 1)
│   ├── app/               # Same UI, adapted entrypoint
│   ├── model/             # Same model logic as step 0
│   ├── build.sh           # Nuitka onefile build script
│   └── requirements.txt
│
├── 2/                     # Step 2 – Encrypted ONNX model (Level 2)
│   ├── model/             # Training + ONNX export + encryption
│   ├── engine/            # Engine module (decryption + ONNX runtime + scoring)
│   ├── app/               # UI calling the engine only
│   ├── hardening/         # Encryption key + utilities (dev only)
│   ├── build.sh           # Nuitka onefile build script
│   └── requirements.txt
│
└── attacker/              # Attacker tooling (optional, for demo)
    ├── run_and_extract.sh # Finds Nuitka temp dir and lists contents
    ├── steal_model.sh     # Copies model file out of extracted payload
    └── use_stolen_model.py# Uses stolen model in a separate script

المتطلبات الأساسية

  • بايثون 3.13 (أو 3.11+ إذا قررت تعديل بناء Nuitka)
  • بيئة افتراضية عاملة (python -m venv .venv)
  • نظام التشغيل: مُختبر على macOS؛ يجب أن يعمل على Linux مع تغييرات طفيفة
  • يُنصح بما يلي: git وpip ومعرفة أساسية بسطر الأوامر

تتطلب معظم الخطوات:

root@kitploit:~
pip install -r requirements.txt

الخطوة 0 – خط الأساس (بدون تحصين)

المجلد: 0/ الهدف: تطبيق بايثون عادي مع نموذج مُدرَّب وواجهة ويب بسيطة. بدون أي حماية.

ما يحتويه

  • مصنّف صور صغير (PyTorch + torchvision) مُدرَّب على التمييز بين:
    • dog مقابل not_dog
  • سكربت التدريب (model_training.py) الذي:
    • يقسّم data/dog وdata/not_dog تلقائيًا إلى تدريب/تحقق
    • يحفظ ملف نموذج، مثل model/models/dog_model.pt
  • سكربت الاستدلال (model_inference.py) الذي:
    • يحمّل dog_model.pt
    • يعيد احتمال «كلب»
    • يحسب «درجة العدو» كاستدلال مبسّط (toy heuristic)
  • تطبيق Gradio (app/gradio_app.py) الذي:
    • يسمح برفع الصور في المتصفح
    • يستدعي الاستدلال + درجة العدو
    • يعرض الاحتمالات ونتيجة CAWODOG

كيفية تشغيل الخطوة 0

من جذر المستودع:

root@kitploit:~
cd 0
python -m venv .venv
source .venv/bin/activate          # on Windows: .venv\Scripts\activate
pip install -r requirements.txt
  1. جهّز البيانات:

    root@kitploit:~
    0/data/
      dog/
        <dog images>.jpg
      not_dog/
        <non-dog images>.jpg
    
  2. درّب النموذج:

    root@kitploit:~
    python -m model.model_training
    

    سيُنشئ هذا شيئًا مثل:

    root@kitploit:~
    model/models/dog_model.pt
    
  3. شغّل تطبيق Gradio:

    root@kitploit:~
    python -m app.gradio_app
    
  4. افتح الرابط المطبوع (الافتراضي http://127.0.0.1:7860) واختبره باستخدام الصور.

خصائص الأمان

  • ملف النموذج مخزَّن كـ أوزان PyTorch مكشوفة (ملف .pt).
  • كل منطق النموذج ومنطق حساب الدرجات موجود في بايثون قابل للقراءة.
  • يمكن لأي شخص نسخ مجلد المشروع وإعادة استخدام كل شيء.

هذه هي الصورة «قبل».

الخطوة 1 – تحصين المستوى 1 (Nuitka Onefile)

المجلد: 1/ الهدف: تغليف التطبيق في ملف تنفيذي واحد باستخدام Nuitka. الأثر الأمني: يجعله يبدو كمنتج، لكنه لا يحمي الملكية الفكرية.

ما الذي يتغير مقارنةً بالخطوة 0

  • نقطة دخول مخصصة لـ Nuitka (مثل app/main.py أو cawodog_app.py)
  • سكربت البناء (build.sh) الذي:
    • يثبّت الاعتماديات
    • يشغّل Nuitka مع --standalone و--onefile
    • يتضمن ملف النموذج في الحزمة (dog_model.pt)
  • النتيجة هي ملف تنفيذي onefile (مثل cawodog_step1_nuitka).

مثال على البناء (مبسّط)

root@kitploit:~
cd 1
source .venv/bin/activate
./build.sh

بعد البناء، ستحصل على شيء مثل:

root@kitploit:~
./cawodog_step1_nuitka

تشغيله سيطلق واجهة Gradio كما في السابق، لكن الآن من ملف تنفيذي واحد.

محاكاة المهاجم (اختياري، باستخدام attacker/)

يُظهر مجلد attacker كيف يمكن للمهاجم:

  1. تشغيل الملف التنفيذي onefile (الذي يُفك ضغطه إلى مجلد مؤقت)
  2. تحديد مجلد فك ضغط onefile الخاص بـ Nuitka داخل $TMPDIR
  3. نسخ dog_model.pt من ذلك المجلد
  4. استخدام use_stolen_model.py لتشغيل التنبؤات خارج التطبيق

الخلاصة الرئيسية: المستوى 1 ليس حماية مجدية. إنه تغليف، وليس أمانًا.

الخطوة 2 – تحصين المستوى 2 (محرك ONNX المشفّر)

المجلد: 2/ الهدف: تقديم حماية حقيقية للملكية الفكرية على مستوى النموذج. الأثر الأمني: لا يمكن للمنافسين استخدام النموذج بمجرد نسخ ملف.

المفاهيم الرئيسية

  1. تحويل تنسيق النموذج

    • تحويل dog_model.pt → dog_model.onnx باستخدام تصدير ONNX من PyTorch.
  2. تشفير النموذج

    • تشفير dog_model.onnx باستخدام AES-GCM إلى dog_model.enc
    • تخزين مفتاح متماثل في hardening/dev_model.key (لأغراض إثبات المفهوم)
  3. تجريد المحرك

    • تقديم engine/core.py الذي:

      • يفك تشفير dog_model.enc في وقت التشغيل
      • يحمّله في ONNX Runtime
      • يعرض دوال مثل predict_is_dog() وenemy_score()
  4. الواجهة كمنسّق (Orchestrator)

    • لم يعد app/gradio_app.py يرى ملفات النموذج الخام أو التفاصيل الداخلية.
    • إنه يستدعي دوال المحرك فقط.

سير العمل النموذجي للخطوة 2

root@kitploit:~
cd 2
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  1. درّب النموذج (أو أعد استخدامه) (نفس الخطوة 0، لكن داخل 2/):

    root@kitploit:~
    python -m model.model_training
    
  2. صدّر إلى ONNX:

    root@kitploit:~
    python -m model.export_to_onnx
    # produces model/models/dog_model.onnx
    
  3. شفّر نموذج ONNX:

    root@kitploit:~
    python -m hardening.encrypt_model
    # produces model/models/dog_model.enc and hardening/dev_model.key
    
  4. ابنِ باستخدام Nuitka (عبر build.sh):

    root@kitploit:~
    ./build.sh
    

    سيتم طباعة مفتاح عند اكتمال البناء. يجب تعيين متغير البيئة CAWODOG_MODEL_KEY_HEX إلى ذلك المفتاح حتى يتمكن البرنامج من تحميل النموذج المشفّر. أي مفتاح مختلف سيؤدي إلى خطأ.

  5. شغّل الملف التنفيذي onefile الناتج. يجب أن تتصرف الواجهة بنفس السلوك السابق.

خصائص الأمان

  • ملف النموذج على القرص (dog_model.enc) مشفّر.
  • لا يمكن لمهاجم عادي:
    • تحميل dog_model.enc مباشرة في PyTorch
    • فحص النموذج أو تعديله بسهولة
  • يحتاج المهاجم الآن إلى:
    • معرفة مفتاح التشفير
    • فهم منطق فك تشفير AES-GCM
    • استخراج ملف ONNX وإعادة بنائه

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

نموذج التهديدات والقيود

يركز إثبات المفهوم هذا على:

  • حماية نماذج الذكاء الاصطناعي المُرسَلة إلى مواقع عملاء دون اتصال
  • رفع تكلفة التجسس الصناعي
  • إظهار مستويات تحصين متدرجة بدلًا من «أمان مثالي» فوري

لا يدّعي أنه:

  • يمنع الهندسة العكسية تمامًا من قبل جهة فاعلة على مستوى دولة
  • يستبدل وحدات الأمان المعتمدة على العتاد (TPM, HSM, enclaves)
  • يحل مشكلة توزيع التحديثات/التصحيحات أو الإقلاع الآمن

كيفية استخدام هذا المستودع للعروض التوضيحية

التدفق السردي النموذجي:

  1. الخطوة 0 – خط الأساس

    • أظهر كيف أن فحص كل شيء وإعادة استخدامه أمر في غاية السهولة.
  2. الخطوة 1 – التغليف (Nuitka Onefile)

    • اعرض الملف التنفيذي الواحد الأنيق.
    • استخدم سكربتات attacker/ لإظهار كيف لا يزال من السهل سرقة النموذج.
  3. الخطوة 2 – ONNX المشفّر

    • أظهر أن نسخ dog_model.enc لم يعد كافيًا.
    • ناقش كيف ينعكس هذا على نشر واقعي لعميل صناعي.

يمكنك بعد ذلك مناقشة مستويات مستقبلية إضافية (غير مطبَّقة هنا بعد):

  • مفاتيح مرتبطة بالجهاز (TPM، دونجل)
  • محرك أصلي بلغة Rust/C++
  • فحوصات مكافحة التنقيح (Anti-debug) وسلامة التكامل
  • البيئات الآمنة (Secure enclaves) / التوثيق (attestation)

الترخيص

root@kitploit:~
MIT License

Copyright (c) 2025 Daniel Eder

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

تنزيل الأداة