
PENIOT : Outil de test d'intrusion pour l'IoT
PENIOT est un outil de test de pénétration pour les appareils de l'Internet des Objets (IdO). Il vous aide à tester/pénétrer vos appareils en ciblant leur connectivité internet avec différents types d'attaques de sécurité. En d'autres termes, vous pouvez exposer votre appareil à la fois à des attaques de sécurité actives et passives. Après avoir décidé de l'appareil cible et des informations (ou paramètres) nécessaires de cet appareil, vous pouvez effectuer des attaques de sécurité actives comme la modification/consommation de ressources système, la relecture d'unités de communication valides, etc. De plus, vous pouvez effectuer des attaques de sécurité passives telles que la violation de la confidentialité d'informations importantes ou l'analyse du trafic. Grâce à PENIOT, toutes ces opérations peuvent être semi-automatisées ou même entièrement automatisées. En bref, PENIOT est un package/cadre pour cibler les appareils IdO avec des attaques de sécurité basées sur des protocoles.
De plus, il vous donne une structure de base pour vos futures injections de nouvelles attaques de sécurité ou de nouveaux protocoles IdO. L'une des caractéristiques les plus importantes de PENIOT est d'être extensible. Par défaut, il possède plusieurs protocoles IdO courants et de nombreuses attaques de sécurité liées à ces protocoles. Mais il peut être étendu davantage en exportant la structure de base des composants utilisés en interne afin que vous puissiez développer vos attaques en harmonie avec la structure interne de PENIOT.
Le paradigme de l'IdO a connu une croissance immense au cours de la dernière décennie, avec des milliards d'appareils connectés à Internet. La plupart de ces appareils manquent même de mesures de sécurité de base en raison de leurs contraintes de capacité et de conceptions faites sans souci de sécurité en raison du court délai de mise sur le marché. En raison de la connectivité élevée dans l'IdO, des attaques ayant des effets dévastateurs dans des réseaux étendus peuvent facilement être lancées par des pirates via des appareils vulnérables.
Jusqu'à présent, les tests de pénétration étaient effectués manuellement s'ils n'étaient pas complètement ignorés. Cette procédure rendait la phase de test des appareils très lente. D'autre part, les entreprises qui produisent des appareils IdO doivent toujours être à jour dans les tests de leurs appareils en termes de fiabilité, de robustesse ainsi que des fonctionnalités fournies, car être exposé à des attaques de sécurité par des personnes malveillantes pourrait avoir des impacts inattendus sur les utilisateurs finaux. L'objectif principal de PENIOT est d'accélérer le processus de test de sécurité. Il vous permet de découvrir les failles de sécurité de vos appareils IdO en automatisant la phase de test de pénétration chronophage.
Tout d'abord, PENIOT apporte de la nouveauté. C'est l'un des premiers exemples d'outils de test de pénétration dans le domaine de l'IdO. Il n'existe qu'un ou deux outils similaires spécialisés dans l'IdO, mais ils sont encore en phase de développement, donc pas encore terminés.
Étant donné que le nombre d'appareils IdO augmente considérablement, les appareils IdO deviennent de plus en plus courants dans notre vie quotidienne. Les maisons intelligentes, les vélos intelligents, les capteurs médicaux, les trackers de fitness, les serrures intelligentes et les usines connectées ne sont que quelques exemples de produits IdO. Compte tenu de cela, nous avons ressenti le besoin de choisir certains des protocoles IdO les plus couramment utilisés pour les intégrer par défaut dans PENIOT. Nous avons choisi les protocoles suivants comme protocoles IdO par défaut inclus dans PENIOT. Ces protocoles IdO sont testés avec différents types d'attaques de sécurité comme les attaques DoS, Fuzzing, Sniffing et Replay.
Les protocoles suivants sont actuellement pris en charge :
De plus, il vous permet d'exporter la structure interne de son propre protocole implémenté et des attaques pour implémenter vos propres protocoles ou attaques. Vous pouvez également étendre les protocoles déjà existants avec vos attaques nouvellement implémentées. Et enfin, il vous fournit une interface utilisateur graphique facile à utiliser et conviviale.
Tout d'abord, vous devez avoir le module Python setuptools installé sur votre machine. De plus, vous devez installer python-tk et bluepy avant l'installation et la construction.
En bref, vous avez besoin des éléments suivants avant d'exécuter le script d'installation.
Notez qu'il est suggéré d'avoir un environnement virtuel séparé créé spécifiquement pour Peniot car les bibliothèques dépendantes sont assez anciennes et peuvent causer des problèmes pour les installer parmi vos bibliothèques externes existantes.
Vous pouvez construire le projet en local en exécutant les commandes suivantes.
$ git clone [email protected]:yakuza8/peniot.git
$ cd peniot
$ python setup.py install
Même si nous essayons de vous fournir un script d'installation à jour, il peut y avoir des parties manquantes car le projet n'a pas pu être maintenu aussi longtemps. Veuillez nous informer s'il y a un problème avec l'installation.
Note importante : Vous devez avoir Radamsa installé sur votre machine pour générer des charges utiles de fuzzing dans les attaques de fuzzing.
Vous pouvez exécuter Peniot via la ligne de commande ou votre IDE préféré après avoir configuré un environnement virtuel et installé les bibliothèques nécessaires décrites ci-dessus.
$ python src/peniot.py
Après avoir exécuté cette commande, vous devriez voir apparaître une interface utilisateur. Vous pouvez ensuite explorer l'outil par vous-même.
Vous pouvez trouver le Document de conception générale et le Document de conception finale dans le dossier resources/documents. Plusieurs diagrammes sont joints dans le dossier resources/diagrams. Voici la représentation la plus simple de la façon dont PENIOT est divisé en modules et comment il est conçu.
La plupart des attaques ont leurs propres exemples de tests d'intégration dans leurs scripts d'attaque. Afin d'exécuter ces tests, vous devez avoir un programme en cours d'exécution pour le protocole cible. Nous essayons de vous fournir des programmes d'exemple pour chaque protocole où l'on peut trouver des scripts serveur/client dans le répertoire examples de chaque protocole.
Ce projet a été contribué par les membres suivants du projet :
et est supervisé par Pelin Angın.
Tout d'abord, laissez-moi vous remercier de visiter notre site de projet. Nous avons essayé de vous montrer comment on peut pénétrer et pirater des appareils IdO via les protocoles qu'ils utilisent grâce à des attaques de sécurité de bout en bout. Notre objectif principal est de pirater ces appareils avec des attaques de sécurité génériques. On peut simplement trouver des attaques spécifiques pour n'importe quel protocole, mais comme je l'ai dit, notre objectif était de fournir un cadre de pénétration générique et extensible.
Deuxièmement, PENIOT est développé avec Python2.7. Et notre code est peut-être passé en état hérité. Mais néanmoins, nous avons voulu le partager au public afin que tout le monde puisse avoir un aperçu et une inspiration pour développer ses propres outils de pénétration, ce qui nous rend heureux si cela pouvait arriver.
Troisièmement, nous essaierons également de porter notre outil vers Python3 si nous pouvons y consacrer le temps nécessaire. Quand cela arrivera, nous en informerons également depuis cette page. Merci pour votre attention.
Développeur : @yakuza8 (Berat Cankar)