Sans être un programmeur ou un expert en informatique, comment puis-je savoir si un programme particulier ou un logiciel en général ne possède pas de fonctions indésirables cachées compromettant la confidentialité et la sécurité?
Sans être un programmeur ou un expert en informatique, comment puis-je savoir si un programme particulier ou un logiciel en général ne possède pas de fonctions indésirables cachées compromettant la confidentialité et la sécurité?
Vous pouvez savoir si certains logiciels ne font que ce qu'ils annoncent de la même manière que vous pouvez savoir si la nourriture qu'ils vous servent dans les restaurants est empoisonnée ou non. En termes simples, vous ne pouvez pas, mais la société a mis au point divers plans pour faire face au problème:
Tous ces éléments peuvent être directement transposés dans le monde du logiciel. Les méthodes extrêmes de vérification de la qualité du logiciel et du respect de son comportement publié incluent des choses très coûteuses et ennuyeuses telles que les Critères communs qui se résument à savoir qui a créé le programme et avec quels outils.
Réponse alternative: chaque logiciel a des bogues, il est donc garanti à 100% qu'il ne fait pas exactement ce qu'il est censé faire. (Cette assertion inclut le logiciel qui fonctionne dans la douzaine de petits ordinateurs qui sont intégrés dans votre voiture, d'ailleurs.)
Vous ne pouvez pas, du moins pas avec une précision de 100%. En tant que programmeur, il est très facile de coder ce que je veux, et ce n'est pas nécessairement juste ce qui est annoncé.
Toutes les activités inattendues ne sont cependant pas malveillantes. Je suppose que vous vous inquiétez davantage des activités malveillantes. Même cela n'est pas possible à 100% de détecter tout le temps, mais il y a de l'espoir.
Vous pouvez utiliser un logiciel qui surveille des choses comme le trafic réseau, l'activité des fichiers, etc., pour trouver des indices que le logiciel se comporte de manière inattendue façon. Par exemple (et je sais que ce n'est qu'un outil de base), vous pouvez utiliser Fiddler pour voir si une application particulière accède à Internet via http (s). (Oui, je sais qu'il existe de meilleurs outils, cependant. Fiddler n'est que le premier qui me vient à l'esprit.) Sous Windows, vous pouvez utiliser Process Monitor pour obtenir encore plus d'informations. Des outils similaires existent pour d'autres plates-formes.
Il existe également plusieurs autres services que vous pouvez utiliser et qui effectueront l'analyse pour vous.
D'autant plus que les logiciels deviennent plus volumineux et plus compliqués, il devient impossible * même pour les experts de répondre à cela. Dans cette mesure, la confidentialité et la sécurité d'une application sont mieux gérées en utilisant les méthodes bac à sable ou contrôle d'accès obligatoire. L'idée derrière ces méthodes est que le logiciel est exécuté dans un système qui contrôle ce qu'il peut faire et vous lui permettez de ne faire que ce que vous attendez de lui. Fait correctement, vous pouvez limiter les connexions possibles et être averti si le programme essaie d'accéder à des fichiers auxquels vous ne vous attendiez pas. Des méthodes très avancées peuvent être utilisées pour surveiller la mémoire ou décrypter le trafic réseau via un service proxy.
En bref, si vous ne pouvez pas comprendre tout ce qu'il fait, la réponse est de restreindre tout ce qu'il peut faire avec quelque chose qu'il s'exécute à l'intérieur de (le système d'exploitation).
Dans sa célèbre conférence ACM Turing Award "Reflections on Trusting Trust" (il y a presque exactement 30 ans maintenant!) Ken Thompson a déclaré: "Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement créé vous-même." Dans la pratique, les logiciels commerciaux ne font pas exception aux autres produits commerciaux dans la mesure où ceux des producteurs ayant de bons noms sur le marché ont généralement une probabilité plus élevée d'être meilleurs. Cependant, il n'y a aucune garantie absolue pour cela. Il y a des décennies, j'ai reçu des disquettes d'un producteur renommé qui avait un virus. Dans ce cas, je pense personnellement qu'il ne s'agissait pas d'un acte malveillant de la part de quiconque au sein de l'entreprise, mais que certains ordinateurs de l'entreprise ont été infectés par un virus de l'extérieur. Cependant, il n'est évidemment pas possible en général d'exclure à 100% la possibilité que des portes dérobées soient introduites dans le logiciel par des initiés de l'entreprise, que cela soit connu ou non de son PDG. Les portes dérobées pourraient être à mon humble avis un problème extrêmement critique, maintenant que les cyber-guerres se profilent dans le monde. Une agence secrète d'un gouvernement pourrait notamment gérer d'une manière ou d'une autre (via l'argent, la coersion ou même des logiciels malveillants) pour avoir de telles portes dérobées implantées dans certains logiciels qui servent normalement à assurer la sécurité des communications (par exemple, celles qui concernent les signatures numériques) et qui sont vendues et utilisé par certaines nations étrangères non amies ou potentiellement non amies et, immédiatement ou à des moments ultérieurs appropriés («bombes à retardement», etc.), exploitent les portes dérobées pour atteindre leurs objectifs de perturbation des infrastructures critiques des nations cibles, etc. etc. Stuxnet, Flame et Gauss sont quelques noms qui devraient donner quelques indications sur les capacités des malfaiteurs potentiels.
Malheureusement, vous ne pouvez pas ...
Comme un bon programmeur pourrait être appelé assistant par ses utilisateurs, un bon cheval de Troie serait complètement faux un environnement normal pour calmer la victime.
Certains virus / chevaux de Troie effectuent un nettoyage du système de la victime, afin
Donc, vous ne pouvez pas !! En cas de doute, consultez !!!!
Tout dépend de la confiance. Faites-vous confiance à la réputation de l'entreprise qui publie le logiciel? S'il est open source, est-il utilisé par suffisamment de développeurs pour qu'ils lèvent des drapeaux en cas de problème. Il y a une certaine force dans les nombres car un produit couramment utilisé est plus susceptible de faire l'objet de recherches approfondies pour savoir s'il est digne de confiance. Sauf si vous êtes très paranoïaque, regarder généralement ce que la communauté a à dire sur un logiciel particulier est le meilleur pari, mais il y aura toujours des bugs et il y aura toujours des erreurs.
Comme d'autres l'ont souligné, il n'y a pas de moyen garanti de le savoir. La plupart du temps, vous devez faire confiance à l'intégrité et à la réputation du fournisseur. Suivre des pratiques sécurisées, comme installer uniquement des logiciels à partir de sources fiables, peut vous aider, mais comme dans la vraie vie, nous faisons parfois confiance aux mauvaises personnes.
En fin de compte, je pense que nous devrions adopter un certain niveau de paranoïa. Si vous installez une application sur votre téléphone, n'acceptez pas ou ne dites pas simplement oui lorsque le système d'exploitation de votre téléphone vous informe que le téléphone souhaite accéder à vos informations privées, à votre emplacement, etc. Demandez-vous pourquoi il a besoin de cet accès. Si vous pensez que l'accès demandé par l'application est justifié en fonction de ce que vous attendez d'elle, alors dites oui peut-être OK. D'un autre côté, s'il semble demander l'accès à des informations ou à des services qui sont bien en dehors de ce dont il devrait avoir besoin ou qui l'intéresse, alors soyez un peu méfiant et réfléchissez bien avant de simplement dire oui.