
IotShark - مراقبة وتحليل حركة مرور إنترنت الأشياء
هذا هو مشروعنا النهائي لمساق CS 219 لربيع 2019.
IoTShark هي خدمة مراقبة لإنترنت الأشياء (IoT) تتيح للمستخدمين مراقبة أجهزة إنترنت الأشياء الخاصة بهم لمعرفة اتجاهات البيانات المرسلة/المستقبلة. عادةً، يستغرق إعداد هجوم وسيط (Man-in-the-Middle) بالتكوينات المناسبة وقتًا طويلاً، وقد يبدو مستحيلاً لأولئك الذين لديهم خبرة قليلة أو معدومة في أمن الحاسوب أو حتى علوم الحاسوب.
تهدف IoTShark إلى تقديم حل شبه آلي بالكامل للمستخدم لمراقبة أجهزة إنترنت الأشياء الخاصة به بمجرد تشغيل نص برمجي واحد. على المستخدم فقط اختيار الجهاز الذي يرغب في مراقبته، ويتولى هذا البرنامج باقي العمل الشاق من خلال بدء تسميم ARP، وإعداد توجيه الحزم ومُصيدة الحزم الوسيطة (Man-in-the-Middle packet sniffer). كما يتمتع بواجهة ويب تفاعلية سهلة الفهم حيث يمكن للمستخدم تصفية الحزم بناءً على المنافذ والأنواع والطوابع الزمنية للحصول على فهم أوسع لكمية وتوقيت عمليات الإرسال.
نهدف أيضًا إلى تصنيف أنواع معينة من البيانات مثل رسائل ضربات القلب (heartbeat messages) ونقل البيانات والشذوذ، على الرغم من أن الأخير من المرجح أن يتم عرضه على اختبار RPi غير المشفر لأنه من الصعب اكتشاف الشذوذ بدون كميات هائلة من البيانات (وسنحتاج إلى العديد من الأجهزة والأفراد لجمع تلك الكمية من البيانات).
🚨🚨🚨 يرجى ملاحظة أن التعليمات التالية تم اختبارها فقط على نظام MacOS. إذا كنت تستخدم Linux أو Windows + WSL، فقد تختلف النتائج وقد لا تعمل. 🚨🚨🚨
pip3 install -r requirements.txtsudo sysctl net.inet.ip.forwarding=1sudo python3 iotshark.pyأنشئ بيئة افتراضية Python وقم بتثبيت حزم التبعيات.
virtualenv --python=`which python3` venv
source venv/bin/activate
pip install -r requirements.txt
تأكد من تمكين توجيه الحزم على جهازك المحلي. هذا ضروري لكي يعمل هجوم الوسيط. على macOS يمكن القيام بذلك باستخدام:
sudo sysctl net.inet.ip.forwarding=1
قم بتشغيل البرنامج الرئيسي iotshark.py. راجع هذا البرنامج النصي للاطلاع على الخيارات المقبولة.
يقوم هذا البرنامج حاليًا بالإجراءات الأربعة التالية:
-s أو مجموعة من الشبكات الفرعية السكنية الشائعة-f متبوعًا بالمسار النسبي لملف csvبعد تشغيل تسميم ARP، يمكنك فحص حركة المرور من الجهاز المستهدف باستخدام Wireshark مع فلتر عرض مثل:
(ip.src==192.168.0.215 or ip.dst==192.168.0.215) and tcp.port != 443
يتم تخزين البيانات الملتقطة في ملف csv بالتنسيق التالي:
{timestamp, incoming_bytes, outgoing_bytes, srcport, dstport, transfer_protocol, connection_protocol, srcip, dstip}
123123213, 0, 240, 36, 80, 65124, HTTP, UDP, 192.168.0.215, 104.24.4.5
123123240, 300, 0, 800, 443, 65125, HTTPS, TCP, 104.24.4.5, 192.168.0.215
على سبيل المثال، إليك سلسلة طويلة يمكننا قولها لـ Alexa Echo Dot/Google Home أثناء التقاط حركة المرور الخاصة بهم. انتبه إذا كان الجهاز ينقل البيانات قبل كلمة التنبيه.
إنها ليلة مظلمة وعاصفة. لقد عدت أنا وأصدقائي للتو من حديقة يوسمايت الوطنية، حيث يقفز الثعلب البني السريع فوق الكلب الكسول. الأسبوع القادم هو عيد الشكر. الجمعة السوداء في 2019 قادمة أيضًا. إنه وقت جيد لفعل شيء مثير، مثل أخذ فصل أمن الحاسوب أو فصل لغات البرمجة في جامعة UCLA. بالمناسبة، أول طائرة إيرباص A380 جامبو جيت تتقاعد. نحب الطيران في تلك الطائرة.
WAKE_WORD، كيف هو الطقس في لوس أنجلوس في عيد الشكر؟
على أي حال، لدينا طائرات بوينغ 787 دريملاينر للرحلات العابرة للقارات. فصل أنظمة الويب والموبايل مع رافي رائع. يجب علينا ترقية غسالة الملابس التجارية خلال تخفيضات الجمعة السوداء. الطقس المشمس والمشرق يعود ورحلة إلى حديقة جوشوا تري الوطنية تنتظرنا. حسنًا، لقد رأيت قطًا بطيئًا يصطدم بروبوت أندرويد جديد. هناك أيضًا روبوتات أخرى صنعتها Apple و Amazon.