Cet article est la traduction d'un article américain et reprend 5 recommandations de sécurité pour les créateurs d'objets connectés.
Voir aussi :
Rechercher les 0-day sur vos équipements
5 recommandations pour les industriels de l’Internet des objets
Source : 25 Janvier 2017 – Pascal Geenens.
Comme les équipements deviennent de plus en plus interconnectés, ils deviennent potentiellement plus « intelligents » et offrent des fonctionnalités de plus en plus nombreuses.
L’Internet des objets (IoT : internet of things) constitue un monde où à peu près tout peut être interconnecté, les thermostats intelligents, les ampoules électriques intelligentes ... des serrures aux réfrigérateurs intelligents et mêmes les voitures.
Récemment, des équipements avec un niveau de sécurité laissant à désirer ont été mis sous contrôle par d’énormes botnets (réseau de machines zombies qui peuvent être contrôlés de manière centrale pour lancer des attaques) constitués de plusieurs centaines de milliers de dispositifs divers capables de lancer une attaque impressionnante de déni de service (DDOS) qui a paralysé quantité de services en ligne.
La sécurité devrait être une priorité essentielle dans la stratégie des industriels et non pas une contrainte prise en compte à-posteriori.
Les consommateurs sont en attente de solutions intégrant la sécurité qui protègent leur demeure, leur vie privée et leurs données personnelles.
Il y a un besoin d’une meilleure réglementation en raison de l’absence de système de certification et de label pour aider les consommateurs à différencier les marques et les produits en fonction de leur niveau de sécurité.
Pour cette raison, voici ci-dessous 5 meilleures pratiques que tout industriel devrait prendre en compte !
Investissez dans un système d'exploitation connu
Investissez dans un système d’exploitation connu construit en intégrant la logique de sécurité.
Ça vaut le coup d’y penser et de faire le bon choix dés le départ et de s’assurer que vos futurs produits seront compatibles avec cet environnement.
Un système d’exploitation unique donne une cohérence d’usage pour vos utilisateurs sur l’ensemble de vos produits.
Vous bénéficierez d’effets d’échelle en matière de mises à jour, d’évolution et d’amélioration de l’ensemble de vos produits tout en réduisant les coûts de duplication et d’adaptation des évolutions, des mises à jours de sécurité et de nouvelles fonctionnalités.
Linux et BusyBox, bien que dans l'oeil du cyclone de tout ce qui se passe de mauvais autour des IoT, peuvent être de bons choix pour les équipements embarqués, comme Windows 10, Android, ou tout autre plateforme qui répondant à vos exigences.
Ce n’est pas le système d’exploitation en tant que tel qui assure la sécurité.
Mais c’est la façon de la mettre en oeuvre et comment le système est durci puis maintenu à jour. Quelques repères :
- Les services inutiles doivent être désactivés par défaut, notamment SSH, Telnet, SMB, FTP : un utilisateur courant ne les utilisera jamais et ceux qui en ont vraiment besoin pour des opérations particulières seront capables de trouver et de comprendre l’item « autoriser SSH » dans les « options avancées »,
- Ne vous ne faites pas de souci, même si vous cachez les options dans un coin le moins évident possible, ceux qui le veulent les trouveront,
- Ne faites pas tourner votre interface graphique de gestion sur un serveur WEB qui fonctionne avec les droits administrateur système – si vous avez une faille d’exécution de code à distance (RCE : Remote code execution), vous êtes plus que complètement exposés,
- Le serveur web doit être exécuté dans un environnement chrooté avec des droits utilisateur limités.
La plupart des serveurs web modernes sont configurés par défaut pour fonctionner avec des droits restreints, cependant on a vu des industriels modifier cela pour autoriser le serveur à fonctionner avec le compte root car c’était plus facile pour accéder en lecture/écriture aux fichiers protégés.
Il y a de meilleures façons de faire ça, cela peut demander un peu plus d’effort de conception dans vos logiciels mais ça vaut le coût.
Dites-vous bien que tout ce que vous ferez pour vous faciliter la vie facilitera également la vie d’un hacker potentiel.
Quoi que vous puissiez lire/écrire depuis vos logiciels, un hacker pourra le faire également.
Ceci ajoute une sérieuse couche de sécurité et réduit drastiquement l’impact d’une erreur de programmation – aucun logiciel n’est parfait et exempt de toute vulnérabilité, garder ça présent à l’esprit !
Patchez et maintenez en conditions de sécurité
Utilisez les dernières versions à jour du système d’exploitation, de son noyau et des services tels que Telnetd/SSHD, le serveur web, php ou tout autre interface graphique de votre environnement.
Même le logiciel le mieux codé en termes de sécurité est vulnérable quand il est exécuté dans un environnement vulnérable ou avec des services vulnérables.
Ne conservez pas des portes dérobées ou n’essayez pas de cacher des mots de passe –certains industriels mettent en place des portes dérobées pour autoriser le support technique à distance.
Ce n’est qu’une question de temps avant que votre secret ne soit révélé et utilisé sans votre consentement.
Sachez qu’en décompressant et analysant les mises à jours publiques de votre microcode, la plupart des portes dérobées et mots de passe secrets peuvent facilement être découverts – un hacker n’a même pas besoin d’accéder à l’équipement pour découvrir ce type d’information.
Utilisation d'UPNP
UPNP est très utile pour l'intégration automatique sur le réseau local et améliore le confort de l’utilisateur, mais il faut éviter l’usage de UPNP-IGD (Internet Gateway Device protocol).
Le protocole UPNP-IGD vous permet de créer des trous dans la politique de sécurité du dépositaire de la passerelle d’accès à l’Internet, et la plupart du temps sans l’en avertir, rendant ainsi l’équipement directement accessible depuis l’Internet.
Si vous avez besoin de cette fonctionnalité, soyez conscient du fait que vous exposez votre équipement et que quelques soient les mesures de sécurité que vous avez mises en oeuvre, elles doivent être doublées – vous êtes maintenant accessible et exposé.
Par ailleurs, laisser les utilisateurs ouvrir des ports ou mettre en place du renvoi de port (port forwarding) suppose qu’ils soient au minimum conscients des risques de sécurité et des trous qu’ils introduisent dans la passerelle d’accès à l’Internet.
Il serait préférable de trouver un autre moyen afin d’éviter le besoin de cette exposition sur internet.
Il est bien entendu possible qu’en définitive l’ouverture d’un port soit la seule solution possible, dans ce cas il faut en assumer la responsabilité.
Utilisez des mots de passe forts
Utilisez des mots de passe forts sans exiger qu’ils soient trop compliqués afin d’éviter que les utilisateurs ne les écrivent.
Ceux qui souhaitent des mots de passe forts peuvent le faire et certains le feront en utilisant des outils de gestion de mots de passe ; alors autorisez les mais ne les rendez pas obligatoires.
Utilisez des dictionnaires publics de mots de passe afin de protéger les utilisateurs à des attaques de type « brute-force ».
Il ne faut pas enregistrer les mots de passe en utilisant des techniques de chiffrement réversibles (type chiffrement symétrique), préférez des hachages cryptographiques pour enregistrer les mots de passe.
Utilisez des méthodes modernes et sûres de hachage, évitez MD5 ou SHA-1.
Le mot de passe le plus sûr est inutile si vous utilisez une technique de hachage faible.
Vous pouvez traiter le problème des mots de passe en vous appuyant sur les services d’authentification centralisée habituellement utilisés dans les entreprises tels que LDAP, Radius ou TACAS et ainsi mettre à profit la politique d’entreprise retenue pour les mots de passe.
La procédure de mise à jour à distance est cruciale
Investissez du temps dans une procédure robuste et ergonomique de mise à jour à distance (OTA : over-the-air).
Idéalement les mises à jour devraient être automatique et indolores.
En complément, offrez la possibilité de récupérer et mettre à jour les équipements via un simple clic dans l’interface graphique d’administration.
Ne demandez pas à l’utilisateur de récupérer un paquet, de le flasher sur une carte mémoire et d’entrer une suite impossible de lettres ou de commandes pour lancer la procédure de mise à jour de l’équipement.
Faites en sorte que cela soit facile et accessible.
Informez par courrier électronique l’utilisateur quand il y a de nouvelles mises à jour disponibles afin qu’il prenne les dispositions utiles en temps et en heure.
Signez vos paquets de mise à jour et vérifiez-les lors de l’installation afin de s’assurer qu’ils n’ont pas été corrompus par des acteurs malveillants.
Jouez la carte de la transparence
Mettez en place une politique de divulgation et de prise en compte des vulnérabilités, publiez des instructions claires et les points de contact pour les chercheurs en sécurité.
Pensez à mettre en place un programme de Bug Bounty pour attirer les chercheurs en sécurité.
Prenez sérieusement en compte toutes les vulnérabilités dévoilées et suivez les en proximité avec les chercheurs.
Donnez de la reconnaissance aux chercheurs et à leurs travaux, autorisez-les à publier leurs résultats, une fois que vous avez traité la vulnérabilité.
Aucun équipement ou logiciel n’est exempt de vulnérabilités, chacun peut le reconnaître, donc il n’y a pas de mauvaise publicité associée au fait que des chercheurs publient des informations sur des vulnérabilités que vous avez déjà traitées et pour lesquelles vous avez une mise à jour – cela renforcera seulement votre réputation, les chercheurs et les consommateurs vous reconnaîtront comme un industriel sérieux et fiable.
Attention aux données personnelles
Limitez l’enregistrement de données personnelles sur les équipements eux-mêmes – plus il y a d’informations enregistrées, plus il y en a à voler.
De même pour les services mis en oeuvre dans le Cloud connectés avec vos équipements.
Souvenez vous qu’à compter de Mai 2018, en application du « règlement sur la protection des données personnelles » (RGPD, GDPR en anglais ) chaque fournisseur qui stocke des données personnelles d’un citoyen de l’Union Européenne sera tenu responsable de la protection de ses données et peut être condamné à une amende jusqu’à 20 Millions d’Euro en cas de non respect de la réglementation.
Si vous avez besoin d’information personnelles, enregistrez les chiffrées et informez clairement l’utilisateur du risque encourru.
Un dernier point avant de conclure : demandez à être aidé !
L’enjeu de la sécurité est énorme car il n’y a pas actuellement de standard et même pire, il n’y a pas de consensus sur la manière de prendre en compte la sécurité sur les équipements dans le domaine des IoT.
Mais comme tout fournisseur, vous devez faire face à cette responsabilité.
N’attendez pas la réglementation pour prendre en compte la sécurité sur vos produits.
Diffusez les exigences de sécurité au sein de la culture de votre entreprise et acceptez que cela aie un impact sur votre organisation.
La sécurité devrait un pilier fondamental de l’IoT et non pas un aspect traité a-posteriori.