
مجموعة أدوات لاختبار أمان أجهزة إنترنت الأشياء باستخدام بروتوكولات IoT شبكية محددة
.d8888b. 888 d8b
d88P Y88b 888 Y8P
888 888 888
888 .d88b. 888888 .d88b. 88888b. 8888b. 888 888 888
888 d88""88b 888 d88""88b 888 "88b "88b 'Y8bd8P' 888
888 888 888 888 888 888 888 888 888 .d888888 X88K 888
Y88b d88P Y88..88P Y88b. Y88..88P 888 d88P 888 888 .d8""8b. 888
"Y8888P" "Y88P" "Y888 "Y88P" 88888P" "Y888888 888 888 888
888
888
888
مجموعة أدوات لاختبار أمان أجهزة إنترنت الأشياء باستخدام البروتوكولات: AMQP، CoAP، DTLS، HTCPCP، HTTP، HTTP/2، gRPC، KNX، mDNS، MQTT، MQTT-SN، QUIC، RTSP، SSDP.
يستخدم Cotopaxi رخصة GNU العمومية العامة، الإصدار 2: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
مجموعة أدوات Cotopaxi مخصصة للاستخدام فقط في اختبارات الأمان المصرح بها!
بعض الأدوات (خاصةً اختبار الثغرات ومدقق البروتوكول) قد تتسبب في توقف بعض الأجهزة أو الخوادم عن العمل بالطريقة المتوقعة -- على سبيل المثال، تؤدي إلى تعطل أو تجميد الكيانات المختبرة أو إغراق كيانات أخرى بحركة مرور الشبكة.
تأكد من حصولك على إذن من مالكي الأجهزة أو الخوادم المختبرة قبل تشغيل هذه الأدوات!
تأكد من مراجعة القوانين المحلية قبل تشغيل هذه الأدوات!
لتثبيت إصدار Cotopaxi الأدنى (بدون أدوات التعلم الآلي والتطوير):
pip install cotopaxi
التثبيت شبه الكامل (بدون scapy-ssl_tls المطلوب لدعم DTLS):
pip install cotopaxi[all]
لمزيد من الوثائق التفصيلية حول التثبيت، راجع: دليل التثبيت
إذا كنت ترغب في استخدام أدوات Cotopaxi من Metasploit، راجع: تكامل Metasploit
تم تدريب مصنف التعلم الآلي المستخدم في أداة device_identification باستخدام مجموعة البيانات "IMC 2019 payload dataset" المقدمة من مؤلفي الورقة التالية:
العنوان: Information Exposure for Consumer IoT Devices: A Multidimensional, Network-Informed Measurement Approach المؤلفون: Jingjing Ren, Daniel J. Dubois, David Choffnes, Anna Maria Mandalari, Roman Kolcun, Hamed Haddadi الملتقى: مؤتمر القياسات الإنترنتية (IMC) 2019 الرابط: https://moniotrlab.ccis.neu.edu/imc19dataset/
نشكر المؤلفين المذكورين أعلاه على مشاركة هذه المجموعة!
البروتوكولات المدعومة من قبل الأدوات المختلفة (المربع الأيسر يصف تنفيذًا عمليًا في Python 2 والأيمن في Python 3):
لمزيد من الوثائق التفصيلية لكل أداة، راجع: الأدوات
الثغرات التي تم تحديدها من قبل فريق Cotopaxi والتي يمكن اختبارها باستخدام Cotopaxi:
ثغرات أخرى مدعومة بواسطة Cotopaxi:
يمكن إضافة ثغرات جديدة بسهولة إلى قاعدة البيانات في vulnerabilities.yaml وإضافة الحمولات في cotopaxi/vulnerabilities/<البروتوكول>/<payload.raw>.
هناك بعض المشكلات أو القيود المعروفة الناتجة عن استخدام scapy كمكتبة شبكات:
انظر المزيد على: https://scapy.readthedocs.io/en/latest/troubleshooting.html#
لمزيد من المعلومات التفصيلية حول تطوير Cotopaxi، راجع: دليل التطوير
| الأداة | AMQP | CoAP | DTLS | HTCPCP | HTTP/2 | gRPC | KNX | mDNS | MQTT | MQTT-SN | QUIC | RTSP | SSDP |
|---|
| service_ping | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| server_fingerprinter | ☐☐ | ☑☑ | ☑☑ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ |
| device_identification | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☐ | ☐☐ | ☐☐ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ |
| traffic_analyzer | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ |
| resource_listing | ☐☐ | ☑☑ | N/A | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☑☑ | ☐☐ | ☐☐ | N/A | ☑☑ | ☑☑ |
| protocol_fuzzer | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| client_proto_fuzzer | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| vulnerability_tester | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| client_vuln_tester | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| amplifier_detector | N/A | ☑☑ | ☑☑ | N/A | N/A | N/A | N/A | ☑☑ | N/A | ☑☑ | ☑☑ | N/A | ☑☑ |
| active_scanner | ☐☐ | ☐☐ | ☑☑ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ |