web-dev-qa-db-fra.com

Sécurité et confidentialité des extensions VSCode

Je vois que VSCode a beaucoup d'extensions Nice. Je suis cependant inquiet si ces extensions envoient mon code à l'un de leurs serveurs. Existe-t-il un moyen de le savoir? Je pourrais utiliser fiddler et isoler les appels qui pourraient se produire à partir du plugin - mais je ne veux pas le faire pour chaque extension que j'installe. Y a-t-il des conseils de l'équipe VScode à ce sujet?

23
shekhar

Si vous êtes paranoïaque sur le type de données (le cas échéant) que vos applications/plugins installés envoient et où, vous devrez d'abord inspecter le code source du plug-in ligne par ligne, suivi de la configuration d'une sorte de man- serveur proxy intermédiaire qui enregistre chaque transaction réseau. Il existe un outil appelé convenablement mitmproxy qui est par exemple utilisé dans la criminalistique des réseaux iOS ou vraiment tous les appareils fermés dans lesquels vous ne pouvez pas facilement jeter un œil: https://mitmproxy.org

C'est un travail laborieux car vous devrez passer au crible des tonnes de données de connexion. L'avantage est qu'au final, vous saurez exactement quel type de données est envoyé où, même via une communication cryptée SSL. mitmproxy peut également se placer entre ces connexions - après une configuration initiale.

En dehors de cela, vous ne pouvez configurer qu'un pare-feu personnel ou (selon votre système d'exploitation) un ensemble de pare-feu complet, bloquant toutes les connexions sauf celles approuvées manuellement.

En fin de compte, tout dépend de votre niveau de menace, comme on l'appelle dans l'industrie de la sécurité. Si vous avez des exigences de sécurité opérationnelle exceptionnellement élevées, vous ne devriez pas du tout vous connecter à Internet à partir de la machine avec laquelle vous manipulez des informations sensibles, utiliser à la place une machine à air, transférer physiquement les données de l'une à l'autre, configurer plusieurs des garanties supplémentaires telles que la détection d'intrusion, l'analyse heuristique et les limitations d'accès physique.

Cependant, ce type de surcharge de sécurité est généralement exagéré. Si vous installez des plugins hautement cotés et populaires, vous êtes probablement prêt à partir car les lois des grands nombres dictent que la probabilité d'un comportement néfaste sera détectée beaucoup plus facilement plus les gens participeront.

La sécurité est une tâche très complexe et dynamique que vous devrez soit faire vous-même, soit payer à quelqu'un pour le faire pour vous. De plus, c'est un jeu de chiffres ou un moyen de dissuasion. Il n'y a rien de 100% sécurisé. Avec suffisamment de temps et de ressources, tout peut être compromis. Le jeu consiste à rendre plus difficile de compromettre un objectif que le gain possible de le faire avec succès. Un projet open source qui n'est pas carrément développé en tant que solution de sécurité (même d'un géant comme Microsoft) ne peut pas s'attendre à faire cet examen de sécurité gratuitement pour vous.

Mise à jour: Comme VSCode devient très populaire, le problème des plugins maléfiques se pose. C'est le même problème qu'avec n'importe quelle architecture de plugin (comme les navigateurs WWW) ou les gestionnaires de packages publics (comme npm). Lorsqu'il n'y a pas d'examens de sécurité formels, automatisés et manuels (comme l'App Store d'Apple - et malgré leur main-d'œuvre massive, ils glissent de temps en temps), du point de vue de la sécurité de l'information, tous ces systèmes sont potentiellement toxiques. Il est également possible qu'une extension populaire soit vendue et/ou change de propriétaire, suivie d'une injection de mauvais code. Cela s'est produit plusieurs fois pour les plugins de navigateur et les packages npm. Les extensions sont un vecteur d'attaque considérable, en particulier pour l'entreprise. Les développeurs ont souvent un accès beaucoup plus large à l'infrastructure et aux services réseau qu'un utilisateur ordinaire et exécutent des logiciels avec des privilèges plus élevés sur leurs machines.

En conclusion:

Je pourrais utiliser fiddler et isoler les appels qui pourraient se produire à partir du plugin - mais je ne veux pas le faire pour chaque extension que j'installe.

J'ai bien peur que ce soit exactement ce que vous auriez à faire pour le moment.

9
herrbischoff