Sécurité

Qu'est-ce que la sécurité logicielle?

Qu'est-ce que la sécurité logicielle?
La sécurité logicielle est la construction d'un logiciel sécurisé avec une défense inhérente afin qu'il continue de fonctionner sous des attaques malveillantes, à la satisfaction des utilisateurs et des propriétaires du logiciel. Cet article explique les menaces et les solutions, d'un point de vue général. Le vocabulaire standard de la sécurité de l'information est également expliqué. Vous devez maîtriser l'informatique et Internet pour comprendre cet article ; vous devez également avoir étudié un langage informatique, e.g., Perl, C, C++, PHP, etc.

Ce qui est sécurisé, ce sont les informations et les progiciels (applications et documents). L'information est tout message utile à quiconque. "Information" est un mot vague. Le contexte dans lequel il est utilisé donne son sens. Cela peut signifier des nouvelles, une conférence, un tutoriel (ou une leçon) ou une solution. Un progiciel est généralement une solution à un problème ou à des problèmes connexes. Dans le passé, toutes les informations non prononcées étaient écrites sur papier. Aujourd'hui, le logiciel peut être considéré comme un sous-ensemble d'informations.

Le logiciel peut résider dans un ordinateur ou être en transit d'un ordinateur à un autre. Les fichiers, données, e-mails, voix enregistrées, vidéos enregistrées, programmes et applications résident sur un ordinateur. Tout en résidant dans un ordinateur, il peut être corrompu. Pendant le transport, il peut toujours être corrompu.

Tout appareil doté d'un processeur et d'une mémoire est un ordinateur. Ainsi, dans cet article, une calculatrice, un smartphone, ou une tablette (e.g., iPad) est un ordinateur. Chacun de ces appareils et leurs supports de transmission réseau ont un logiciel ou un logiciel en transit qui doit être protégé.

Privilèges

Un utilisateur peut avoir le privilège d'exécuter un fichier sur un ordinateur. Un utilisateur peut avoir le privilège de lire le code d'un fichier dans un ordinateur. Un utilisateur peut avoir le privilège de modifier (écrire) le code d'un fichier dans un ordinateur. Un utilisateur peut se voir accorder un, deux ou les trois de ces privilèges. Il existe d'autres privilèges pour un système d'exploitation ou une base de données. Les utilisateurs ont différents montants ou niveaux de privilèges dans un système.

Des menaces

Bases des menaces logicielles

Pour protéger un logiciel, vous devez connaître ses menaces. Le logiciel doit être protégé des personnes non autorisées accédant à ses données. Il doit être protégé contre une utilisation illicite (pour causer des dommages, par exemple). Le logiciel doit être protégé contre la divulgation à des concurrents. Le logiciel ne doit pas être corrompu. Le logiciel ne doit pas être supprimé par inadvertance. Le logiciel ne doit pas être perturbé. Le logiciel ne doit avoir aucune modification qui n'est pas nécessaire. Les données (logiciels) ne doivent pas être inspectées sans raison valable, en particulier par des personnes non autorisées. Le logiciel ne doit pas être copié (piraté).

Une ou plusieurs de ces bases, résultant en un type particulier de menace classique.

Classes de menaces logicielles

Attaque d'usurpation d'identité

C'est la situation où une personne (ou un programme) représente avec succès une autre personne (ou programme) dans une activité logicielle. Ceci est fait en utilisant de fausses données pour obtenir un avantage illégal.

Répudiation

C'est la situation dans laquelle quelqu'un fait quelque chose de mal, et refuse que ce n'est pas celui qui l'a fait. La personne peut utiliser la signature d'une autre personne pour faire la mauvaise chose.

Violation de données

Une violation de données se produit lorsque des informations sécurisées ou privées sont divulguées intentionnellement ou non dans un environnement qui n'est pas fiable.

Attaque par déni de service

Un réseau informatique logiciel a un logiciel en cours d'exécution dans les ordinateurs du réseau. Chaque utilisateur utilise généralement son ordinateur devant lui et demande généralement des services à d'autres ordinateurs du réseau. Un utilisateur criminel peut décider d'inonder un serveur de requêtes superflues. Un serveur a un nombre limité de requêtes qu'il peut gérer dans une durée. Dans ce schéma d'inondation, les utilisateurs légitimes ne peuvent pas utiliser le serveur aussi souvent qu'ils le devraient, car le serveur est occupé à répondre aux demandes du criminel. Cela surcharge le serveur, perturbant temporairement ou indéfiniment les services du serveur. Au cours de cela, l'hôte (serveur) ralentit son fonctionnement pour les utilisateurs légitimes, tandis que l'auteur commet son méfait, qui passe inaperçu, car les utilisateurs légitimes en attente de service, ne pouvaient pas savoir ce qui se passait à le serveur. Les bons utilisateurs se voient refuser le service, alors que l'attaque se poursuit.

Escalade de privilèges

Différents utilisateurs d'un système d'exploitation ou d'une application ont des privilèges différents. Ainsi, certains utilisateurs finissent avec plus de valeur que d'autres, du système. Exploiter un bogue logiciel ou un oubli de configuration pour obtenir un accès élevé à des ressources ou à des informations non autorisées est une escalade de privilèges.

Les schémas de classification ci-dessus peuvent être utilisés pour provoquer un virus informatique et des vers.

Un ou plusieurs des schémas de classification ci-dessus peuvent être utilisés pour les attaques logicielles, notamment : le vol de propriété intellectuelle, la corruption de base de données, le vol d'identité, le sabotage et l'extorsion d'informations. Si une personne utilise un ou plusieurs des schémas pour modifier de manière destructive, un site Web afin que les clients du site perdent confiance, c'est du sabotage. L'extorsion d'informations est le vol de l'ordinateur d'une entreprise ou l'obtention frauduleuse d'informations secrètes sur l'entreprise. L'ordinateur volé peut avoir des informations secrètes. Cela peut conduire à un ransomware, où le voleur demanderait un paiement, en échange de la propriété ou des informations volées.

Intimité

Quand quelque chose est sensible ou intrinsèquement spécial pour vous, alors cette chose vous est privée. Ceci s'applique également à un groupe de personnes. Un individu a besoin de s'exprimer de manière sélective. Pour atteindre une telle sélectivité, l'individu doit se programmer ou programmer des informations sur lui-même ; c'est la vie privée. Un groupe de personnes a besoin de s'exprimer de manière sélective. Pour atteindre une telle sélectivité, le groupe doit se programmer ou programmer des informations sur lui-même ; c'est la vie privée. Un individu a besoin de se protéger de manière sélective. Afin d'atteindre une telle protection sélective, l'individu doit se protéger ou protéger les informations le concernant de manière sélective ; c'est-à-dire la confidentialité. Un groupe de personnes doit se protéger de manière sélective. Afin d'atteindre une telle protection sélective, le groupe doit se protéger ou protéger les informations le concernant de manière sélective ; c'est-à-dire la confidentialité.

Identification et authentification

Lorsque vous voyagez dans un pays étranger, vous atteindrez un port de ce pays. Au port, un policier vous demandera de vous identifier. Vous présenterez votre passeport. Le policier connaîtra votre âge (à partir de la date de naissance), votre sexe et votre profession grâce au passeport, et il vous regardera (votre visage) ; c'est l'identification. Le policier comparera votre vrai visage et la photo du passeport. Il évaluera également votre âge avec ce qu'il y a dans le passeport pour savoir si c'est vous.

Vous regarder et associer votre âge, votre sexe et votre profession à vous est une identification. Vérifier si votre vrai visage et votre photo sont les mêmes, et estimer si votre présentation correspond à votre âge, c'est l'authentification. L'identification consiste à associer une personne ou quelque chose à certains attributs. Indiquer une identité, c'est aussi s'identifier. L'authentification est l'acte de prouver que l'identité (identification) est vraie. En d'autres termes, l'authentification est l'acte de prouver une affirmation.

En informatique, le moyen d'authentification le plus courant est l'utilisation d'un mot de passe. Un serveur, par exemple, a de nombreux utilisateurs. A la connexion, vous indiquez votre identité (identifiez-vous) avec votre identifiant. Vous prouvez votre identité avec votre mot de passe. Votre mot de passe n'est censé être connu que de vous. L'authentification peut aller plus loin ; en vous posant une question, comme « Dans quelle ville êtes-vous né?"

Objectifs de sécurité

Les objectifs de sécurité des informations sont la confidentialité, l'intégrité et la disponibilité. Ces trois caractéristiques sont connues sous le nom de triade CIA : C pour Confidentialité, I pour Intégrité et A pour Disponibilité.

Confidentialité

Les informations ne doivent pas être divulguées à des personnes non autorisées, à des entités non autorisées ou à des processus non autorisés ; c'est la confidentialité de l'information dans la sécurité de l'information (ainsi que la sécurité du logiciel). Le vol de mots de passe ou l'envoi d'e-mails sensibles à une personne incorrecte est une atteinte à la confidentialité. La confidentialité est une composante de la vie privée qui protège les informations des personnes non autorisées, des entités non autorisées ou des processus non autorisés.

Intégrité

Les informations ou les données ont un cycle de vie. En d'autres termes, les informations ou les données ont une heure de début et une heure de fin.  Dans certains cas, après la fin du cycle de vie, les informations (ou données) doivent être effacées (légalement). L'intégrité consiste en deux caractéristiques, qui sont : 1) le maintien et l'assurance de l'exactitude des informations (ou des données) sur l'ensemble du cycle de vie, et 2) l'exhaustivité des informations (ou des données) sur l'ensemble du cycle de vie. Ainsi, les informations (ou données) ne doivent pas être réduites ou modifiées de manière non autorisée ou non détectée.

Disponibilité

Pour qu'un système informatique remplisse sa fonction, les informations (ou données) doivent être disponibles en cas de besoin. Cela signifie que le système informatique et ses supports de transmission doivent fonctionner correctement. La disponibilité peut être compromise par les mises à niveau du système, les pannes matérielles et les pannes de courant. La disponibilité peut également être compromise par des attaques par déni de service.

Non-répudiation

Quand quelqu'un utilise votre identité et votre signature pour signer un contrat qu'il n'a jamais rempli, la non-répudiation est lorsque vous ne pouvez pas nier avec succès devant le tribunal que vous n'êtes pas l'auteur du contrat.

A la fin d'un contrat, la partie offrant le service doit avoir offert le service ; la partie payante doit avoir effectué le paiement.

Pour comprendre en quoi la non-répudiation s'applique à la communication numérique, il faut d'abord connaître le sens de clé et le sens de signature numérique. Une clé est un morceau de code. Une signature numérique est un algorithme qui utilise une clé pour produire un autre code qui est assimilé à une signature écrite de l'expéditeur.

En sécurité numérique, la non-répudiation est assurée (pas nécessairement garantie) par une signature numérique. En sécurité logicielle (ou sécurité de l'information), la non-répudiation concerne l'intégrité des données. Le cryptage des données (que vous avez peut-être entendu) combiné à la signature numérique contribue également à la confidentialité.

Les objectifs de sécurité des informations sont la confidentialité, l'intégrité et la disponibilité. Cependant, la non-répudiation est une autre caractéristique que vous devez prendre en considération lorsque vous traitez de la sécurité de l'information (ou de la sécurité logicielle).

Réponses aux menaces

Les menaces peuvent être traitées de l'une ou plusieurs des trois manières suivantes :

- Réduction/atténuation : il s'agit de la mise en œuvre de sauvegardes et de contre-mesures pour éliminer les vulnérabilités ou bloquer les menaces.

- Attribution/Transfert : cela place le fardeau de la menace sur une autre entité, telle qu'une compagnie d'assurance ou une entreprise d'externalisation.

- Acceptation : Ceci évalue si le coût de la contre-mesure l'emporte sur le coût possible de la perte due à la menace.

Contrôle d'accès

Dans la sécurité de l'information dont la sécurité logicielle fait partie, le contrôle d'accès est un mécanisme qui garantit que seuls les utilisateurs éligibles peuvent accéder aux ressources protégées dans un système donné, avec leurs différents privilèges mérités.

Solution actuelle à la sécurité de l'information

La façon actuelle et populaire de faire de la sécurité de l'information est d'appliquer le contrôle d'accès. Cela inclut des mesures telles que la validation des entrées dans une application, l'installation d'un antivirus, l'utilisation d'un pare-feu sur un réseau local et l'utilisation de Transport Layer Security.

Lorsque vous attendez une date comme entrée dans une application, mais que l'utilisateur entre un nombre, une telle entrée doit être rejetée. C'est la validation d'entrée.

Un antivirus installé sur votre ordinateur empêche les virus de corrompre les fichiers de votre ordinateur. Cela aide à la disponibilité du logiciel.

Des règles peuvent être établies pour surveiller et contrôler le trafic entrant et sortant d'un réseau local, afin de protéger le réseau. Lorsque de telles règles sont implémentées en tant que logiciel, dans le réseau local, c'est un pare-feu.

Transport Layer Security (TLS) est un protocole de sécurité conçu pour faciliter la confidentialité et la sécurité des données pour les transmissions sur Internet. Cela implique de crypter la communication entre l'hôte expéditeur et l'hôte récepteur.

La sécurité des informations en appliquant le contrôle d'accès s'appelle un logiciel de sécurité, qui est différent de la sécurité logicielle, comme expliqué ci-dessous. Les deux approches ont le même objectif, mais elles sont différentes.

Sécurité du logiciel proprement dite

Les applications, telles qu'elles sont écrites aujourd'hui, présentent de nombreuses vulnérabilités logicielles que les programmeurs ont réalisé de plus en plus au cours des 20 dernières années. La plupart des attaques sont effectuées en tirant parti de ces vulnérabilités plutôt qu'en surmontant ou en contournant le contrôle d'accès.

Un buffer est comme un tableau mais sans longueur imposée. Lorsqu'un programmeur écrit dans un tampon, il est possible d'écraser inconsciemment au-delà de sa longueur. Cette vulnérabilité est un buffer overflow.

Le logiciel d'aujourd'hui a fait défection avec des ramifications de sécurité, notamment des bogues de mise en œuvre tels que des débordements de mémoire tampon et des défauts de conception tels que la gestion incohérente des erreurs. Ce sont des vulnérabilités.

Vous avez peut-être entendu parler de tricheurs en langage informatique tels que les tricheurs PHP, les tricheurs Perl et les tricheurs C++. Ce sont des vulnérabilités.

La sécurité logicielle, par opposition aux logiciels de sécurité, surmonte ces vulnérabilités en écrivant du code défensif où les vulnérabilités seraient évitées. Pendant que l'application est utilisée, à mesure que de nouvelles vulnérabilités sont découvertes, les développeurs (programmeurs) doivent rechercher des moyens de recoder les vulnérabilités, de manière défensive.

La menace, attaque par déni de service, ne peut pas être arrêtée par le contrôle d'accès, car pour que l'auteur le fasse, il doit déjà avoir accès à l'hôte (serveur). Il peut être arrêté en incluant un logiciel interne qui surveille ce que font les utilisateurs dans l'hôte.

La sécurité logicielle est une conception robuste de l'intérieur, qui rend les attaques logicielles difficiles. Le logiciel doit être auto-protégé et, à la limite, ne présenter aucune vulnérabilité. De cette façon, l'exploitation d'un réseau sécurisé devient plus facile et plus rentable.

La sécurité logicielle consiste à concevoir un code défensif à partir de l'application tandis que le logiciel de sécurité applique (conçoit) le contrôle d'accès. Parfois, ces deux problèmes se chevauchent, mais souvent, ils ne.

La sécurité logicielle est déjà assez développée, même si elle est encore en cours de développement, elle n'est pas aussi développée que les logiciels de sécurité. Les mauvais pirates atteignent leurs objectifs davantage en tirant parti des vulnérabilités des logiciels qu'en surmontant ou en contournant les logiciels de sécurité. On espère qu'à l'avenir, la sécurité de l'information sera davantage une sécurité logicielle qu'un logiciel de sécurité. Pour l'instant, la sécurité des logiciels et les logiciels de sécurité doivent continuer.

La sécurité du logiciel ne sera pas vraiment efficace si des tests rigoureux ne sont pas effectués à la fin du développement du logiciel.

Les programmeurs doivent être formés à la programmation de code défensif. Les utilisateurs doivent également être formés à l'utilisation défensive des applications.

En matière de sécurité logicielle, le développeur doit s'assurer que l'utilisateur n'obtient pas plus de privilèges qu'il ne le mérite.

Conclusion

La sécurité logicielle est la conception d'applications avec un codage défensif contre les vulnérabilités pour rendre les attaques logicielles difficiles. Le logiciel de sécurité, quant à lui, est la production de logiciels qui appliquent le contrôle d'accès. La sécurité logicielle est encore en cours de développement, mais elle est plus prometteuse pour la sécurité de l'information que les logiciels de sécurité. Il est déjà utilisé et gagne en popularité. À l'avenir, les deux seront nécessaires, mais avec le logiciel, la sécurité a besoin de plus.

Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...
Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...
OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...