
Ensemble d'outils pour les tests de sécurité des appareils de l'Internet des objets utilisant des protocoles IoT réseau spécifiques
.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
Ensemble d'outils pour les tests de sécurité des dispositifs de l'Internet des objets utilisant les protocoles : AMQP, CoAP, DTLS, HTCPCP, HTTP, HTTP/2, gRPC, KNX, mDNS, MQTT, MQTT-SN, QUIC, RTSP, SSDP.
Cotopaxi utilise la licence publique générale GNU version 2 : https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
La trousse à outils Cotopaxi est destinée à être utilisée uniquement pour des tests de sécurité autorisés !
Certains outils (en particulier le testeur de vulnérabilités et le fuzzer de protocole) peuvent provoquer l'arrêt du fonctionnement normal de certains appareils ou serveurs — par exemple, entraîner un plantage ou un blocage des entités testées ou saturer le trafic réseau d'autres entités.
Assurez-vous d'avoir l'autorisation des propriétaires des appareils ou serveurs testés avant d'exécuter ces outils !
Assurez-vous de vérifier les lois locales avant d'exécuter ces outils !
Pour installer la version minimale de Cotopaxi (sans Machine Learning ni outils de développement) :
pip install cotopaxi
Installation quasi complète (sans scapy-ssl_tls requis pour le support DTLS) :
pip install cotopaxi[all]
Pour une documentation plus détaillée sur l'installation, voir : Guide d'installation
Si vous souhaitez utiliser les outils Cotopaxi depuis Metasploit, voir : Intégration Metasploit
Le classificateur d'apprentissage automatique utilisé dans l'outil device_identification a été entraîné à l'aide du corpus "IMC 2019 payload dataset" fourni par les auteurs de l'article suivant :
Titre : Information Exposure for Consumer IoT Devices: A Multidimensional, Network-Informed Measurement Approach Auteurs : Jingjing Ren, Daniel J. Dubois, David Choffnes, Anna Maria Mandalari, Roman Kolcun, Hamed Haddadi Conférence : Internet Measurement Conference (IMC) 2019 URL : https://moniotrlab.ccis.neu.edu/imc19dataset/
Nous remercions les auteurs ci-dessus d'avoir partagé ce corpus !
Protocoles supportés par les différents outils (la case de gauche décrit une implémentation fonctionnelle en Python 2 et celle de droite en Python 3) :
Pour une documentation plus détaillée de chaque outil, voir : Outils
Vulnérabilités identifiées par l'équipe Cotopaxi, pouvant être testées à l'aide de Cotopaxi :
Autres vulnérabilités supportées par Cotopaxi :
De nouvelles vulnérabilités peuvent être facilement ajoutées à la base de données dans vulnerabilities.yaml et les charges utiles dans cotopaxi/vulnerabilities//<payload.raw>.
Il existe certains problèmes ou limitations connus causés par l'utilisation de scapy comme bibliothèque réseau :
Voir plus sur : https://scapy.readthedocs.io/en/latest/troubleshooting.html#
Pour des informations plus détaillées sur le développement de Cotopaxi, voir : Guide de développement
| Outil | 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 | ☐☐ | ☐☐ | ☑☑ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ |