Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
T-Backdoor — بحث كودي يطبق T-Backdoor، هجمات الباب الخلفي ذات المحفز الزمني على الشبكات العصبية النبضية باستخدام محفزات المعدل والكمون والاهتزاز دون اضطراب مكاني. | Kitploit
أدوات/GitHubGitHub/sisl-uri/t-backdoor
تعلم الآلةالأوراق والأبحاثالتعلم والتعليمأمن الذكاء الاصطناعيالهجوم العدائي
GitHubsisl-uri/t-backdoor

T-Backdoor

بحث كودي يطبق T-Backdoor، هجمات الباب الخلفي ذات المحفز الزمني على الشبكات العصبية النبضية باستخدام محفزات المعدل والكمون والاهتزاز دون اضطراب مكاني.

عرض المستودع
14منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

نماذج أكواد للورقة البحثية: 'T-Backdoor: استغلال التكرار الزمني في البيانات العصبية المحاكية لشن هجمات باب خلفي تحافظ على الشوكات على الشبكات العصبية الشوكية (SNNs)'

الملخص

تُعد هجمات الباب الخلفي تهديدًا أمنيًا خطيرًا للشبكات العصبية العميقة (DNNs)، ولا تزال غير مستكشفة إلى حد كبير في الشبكات العصبية الشوكية (SNNs). تُدخل الهجمات الحالية في المقام الأول محفزات زمكانية تُحدث انحرافات في توزيع الشوكات للعينات المسمومة مقارنة بنظيراتها النظيفة. ولمعالجة هذا القيد، يقترح هذا العمل هجوم باب خلفي جديد على الشبكات العصبية الشوكية، يُسمى \textbf{T-Backdoor}، والذي يعمل باستخدام محفزات زمنية بحتة مثل \textit{Rate} و\textit{Latency} و\textit{Jitter} دون إدخال أي اضطراب مكاني، مما يجعل التحول في توزيعات الشوكات أكثر صعوبة في الاكتشاف بشكل ملحوظ. من خلال تجارب موسعة على ثلاث مجموعات بيانات عصبية محاكية مرجعية: N-MNIST وCIFAR10-DVS وN-Caltech101، وتقييمها مقابل سبع طرق دفاع مرجعية ضد الباب الخلفي، نُظهر أن T-Backdoor يحقق معدل نجاح هجوم (ASR) شبه مثالي يبلغ 100% في كل من إعدادات الهدف الواحد والأهداف المتعددة مع تدهور طفيف فقط في الدقة النظيفة، مع بقائه صامدًا أمام تقنيات الكشف عن الباب الخلفي والتخفيف منه الحالية.

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

root@kitploit:~
├── models.py                          # Architectures for all datasets (shared)
├── datasets.py                        # Neuromorphic dataset loading (shared)
│
├── main_single.py                     # 1. Single-target entry point
├── single_poisoned_dataset.py         #    Trigger implementations + loaders
├── single_utils.py                    #    Train/eval loop, saving, plots
├── single_target.sh                   #    Paper runs
│
├── main_multi_target.py               # 2. Multi-target entry point
├── multi_target_poisoned_dataset.py   #    Per-target parameter assignment
├── multi_target_utils.py              #    Per-target ASR tracking, saving
├── multi_target.sh                    #    Paper runs
│
├── main_mtmt.py                       # 3. Multi-trigger multi-target entry point
├── mtmt_poisoned_dataset.py           #    Per-target trigger-type config
├── mtmt_utils.py                      #    Per-target ASR tracking, saving
└── mtmt.sh                            #    Paper runs

المتطلبات

  • Python 3.11
  • وحدة معالجة رسومات تدعم CUDA (تعمل وحدة المعالجة المركزية ولكنها بطيئة بشكل غير عملي)
root@kitploit:~
python -m venv venv
source venv/bin/activate

pip install torch torchvision          # CUDA build matching your driver
pip install spikingjelly
pip install numpy scipy matplotlib seaborn tqdm

البيئة المرجعية المستخدمة للنتائج المُبلَّغ عنها:

إعداد مجموعة البيانات

قم بتنزيل مجموعات البيانات العصبية المحاكية الخام وضع كل واحدة في دليل فرعي خاص بها ضمن data/، مسمى تمامًا كما هي قيمة --dataset:

root@kitploit:~
data/
├── mnist/       # N-MNIST
├── cifar10/     # CIFAR10-DVS
├── caltech/     # N-Caltech101
└── gesture/     # DVS128-Gesture

⚠️ يجب أن يكون data/ دليلاً حرفيًا في دليل العمل الخاص بك

الاستخدام

1. الهدف الواحد (main_single.py)

محفز واحد، فئة هدف واحدة.

root@kitploit:~
python main_single.py --dataset cifar10 --type latency --delay_frames 1 \
    --T 10 --epochs 100 --epsilon 0.1 --data_dir 'data/'

الوسائط الأساسية

الوسائط الخاصة بالمحفز

ضبط --epsilon 0.0 يدرب نموذجًا أساسيًا نظيفًا.


2. الأهداف المتعددة (main_multi_target.py)

نوع محفز واحد، N من فئات الأهداف مفصولة بـقيمة معامل المحفز.

root@kitploit:~
# Latency: delay 1 -> class 0, delay 3 -> class 1, delay 5 -> class 2
python main_multi_target.py --dataset mnist --type latency --n_targets 3 \
    --trigger_labels 0 1 2 --delay_params 1 3 5 \
    --epsilon 0.2 --T 10 --epochs 10 --data_dir 'data/'

المعاملات لكل هدف. قدمها بشكل صريح، أو دعها تُعيَّن تلقائيًا بواسطة np.linspace عبر نطاق. يجب أن يكون طول القوائم الصريحة --n_targets وأن تتجاوز وسائط النطاق.

المعاملات الصحيحة المعينة تلقائيًا (latency, jitter_fixed) تُزال تكراراتها عن طريق زيادة التعارضات، بحيث لا يتشارك هدفان نفس القيمة.

بالنسبة لـ static، تُفصل الأهداف بـأي الإطارات تحمل الرقعة — المحور الزمني يميزها بدلاً من مظهر الرقعة.

يُطبع ASR لكل هدف في كل دورة، إلى جانب الدقة النظيفة.


3. محفزات متعددة وأهداف متعددة (main_mtmt.py)

نوع محفز مختلف لكل هدف.

root@kitploit:~
python main_mtmt.py --dataset mnist --T 10 --n_targets 5 \
    --target_types latency latency rate rate jitter_fixed \
    --trigger_labels 0 1 2 3 4 \
    --latency_delays 1 2 --rate_scales 0.5 2.0 --jitter_fixed_shifts 3 \
    --epsilon 0.3 --epochs 100 --data_dir 'data/'

قوائم المعاملات لكل نوع. كل قائمة تحتوي على مدخل واحد لكل هدف من ذلك النوع — مع --target_types latency latency rate rate jitter_fixed تمرر تأخيرين ومعدلين وإزاحة واحدة:

حذف قائمة يعيّن تلقائيًا من نطاق *_min / *_max المطابق.

الإعدادات المسبقة المدمجة (تُستخدم عندما لا يُعطى --target_types):

  • --n_targets 3 — static (الإطارات 0..T/3)، latency (--delay)، rate (--scale_factor)
  • --n_targets 5 — اثنان static (مجموعات إطارات ومواضع مختلفة)، اثنان latency (--delay, --delay_2)، واحد rate

أي قيمة أخرى لـ --n_targets تتطلب --target_types.


المخرجات

كل تشغيل يكتب صفًا في ملف CSV مشترك بالإضافة إلى دليل تجربة مكتفٍ ذاتيًا.

تُرمَّز معاملات المحفز في اسم الدليل (df1 = تأخير 1، sf0.1 = معدل 0.1، ns3 = 3 تبديلات)، بحيث لا تستبدل التشغيلات التي تختلف فقط في معامل محفز بعضها البعض.


شكر وتقدير

أجزاء من قاعدة الأكواد هذه مقتبسة من مستودع Sneaky Spikes بواسطة Gorka Abad وآخرين، المصاحب للورقة البحثية "Sneaky Spikes: Uncovering Stealthy Backdoor Attacks in Spiking Neural Networks with Neuromorphic Data" (NDSS 2024). نشكر المؤلفين على إتاحة أكوادهم للعموم.


الاقتباس

إذا وجدت هذا العمل مفيدًا في بحثك، فيرجى التفكير في الاقتباس:

root@kitploit:~
@article{miah2026tbackdoor,
  title   = {T-Backdoor: Exploiting Temporal Redundancy in Neuromorphic Data for Spike-preserving Backdoor Attacks on SNNs},
  author  = {Miah, Abdullah Arafat and Vu, Kevin and Bi, Yu},
  journal = {arXiv},
  year    = {2026}
}

التواصل

للأسئلة أو المشكلات المتعلقة بالكود، يرجى فتح مشكلة على GitHub أو التواصل مع:

  • Abdullah Arafat Miah — [email protected]
  • Yu Bi — [email protected]
تنزيل الأداة
الحزمةالإصدار
Python3.11.10
torch2.11.0+cu128
torchvision0.26.0+cu128
numpy2.2.6
scipy1.16.0
matplotlib3.8.4
seaborn0.13.2
spikingjellylatest from source
الوسيطةالافتراضيالوصف
--datasetgesturemnist, cifar10, caltech, gesture
--typestaticstatic, moving, smart, latency, rate, jitter, jitter_fixed
--epsilon0.1نسبة مجموعة التدريب المراد تسميمها
--trigger_label0فئة الهدف
--T10خطوات زمن المحاكاة
--epochs10دورات التدريب
--batch_size16حجم الدفعة
--lr0.001معدل التعلم
--lossmsemse أو cross
--optimadamadam أو sgd
--ampoffتمكين الدقة المختلطة التلقائية
--seed42البذرة العشوائية
--data_dirdata/جذر مجموعة البيانات
--save_pathexperiments_singleجذر المخرجات
--model_pathNoneالبدء من نقطة تحقق مدربة مسبقًا
الوسيطةالافتراضيتنطبق على
--delay_frames2latency — إطارات التأخير
--scale_factor0.5rate — <1 أبطأ، >1 أسرع
--n_shift3jitter_fixed — عدد أزواج الإطارات المتبادلة
--trigger_size0.1static/moving/smart — حجم الرقعة كنسبة من العرض
--postop-leftstatic — top-left, top-right, bottom-left, bottom-right, middle, random
--polarity3static/moving/smart — 0=أسود، 1=أزرق داكن، 2=أخضر، 3=أزرق فاتح
--n_masks2smart — عدد المناطق المرشحة
--leastoffsmart — استهداف المنطقة الأقل نشاطًا بدلاً من الأكثر
--most_polarityoffsmart — استخدام القطبية الأكثر نشاطًا في المنطقة
الوسيطةالافتراضيالوصف
--typeratestatic, latency, rate, jitter, jitter_fixed
--n_targets3عدد فئات الأهداف
--trigger_labels[0..n-1]تسميات الأهداف الصريحة؛ يجب أن يساوي الطول --n_targets
--epsilon0.1الميزانية الإجمالية، مقسمة بالتساوي على الأهداف
المحفزصريحنطاق تلقائيالافتراضي التلقائي
latency--delay_params 1 3 5--delay_min, --delay_max1 … T//2
rate--rate_params 0.3 0.6 0.9--rate_min, --rate_max0.1 … 6.0
jitter--jitter_params 0.05 0.15 0.25--jitter_std_min, --jitter_std_max0.05 … 0.3
jitter_fixed--nshift_params 1 3 5--n_shift_min, --n_shift_max1 … max(n_shift_min+1, T//4)
static——T مقسمة إلى n_targets من مجموعات الإطارات
الوسيطةالافتراضيالوصف
--n_targets3عدد الأهداف؛ 3 و5 لهما إعدادات مسبقة مدمجة
--target_typesNoneنوع المحفز لكل هدف — static, latency, rate, jitter, jitter_fixed. يجب أن يساوي الطول --n_targets. يتجاوز الإعدادات المسبقة
--trigger_labels[0..n-1]تسميات الأهداف
--epsilon0.2الميزانية الإجمالية، مقسمة بالتساوي على الأهداف
الوسيطةتنطبق على
--latency_delays 1 2كل هدف latency
--rate_scales 0.5 2.0كل هدف rate
--jitter_fixed_shifts 3كل هدف jitter_fixed
--jitter_stds 0.1 0.3كل هدف jitter
--static_positions top-left bottom-rightكل هدف static
--static_polarities 3 1كل هدف static
الإعدادملف CSV الملخصدليل التجربة
فردي<save_path>/results.csv<dataset>_<type>_<eps>_<size>_<param>_<seed>/
أهداف متعددة<save_path>/multi_target_results.csvmulti_<type>_<dataset>_<n>targets_<labels>_eps<eps>_<params>_seed<seed>/
MTMT<save_path>/mtmt_results.csvmtmt_<dataset>_<n>t_<params>_eps<eps>_seed<seed>/