10 Concepts de sécurité Les développeurs doivent maîtriser

10 Concepts de sécurité Les développeurs doivent maîtriser

security_concept
security_concept

C'est une sagesse commune que pour comprendre des choses compliquées, nous devons les décomposer en plus petites parties. Si vous voulez comprendre les systèmes de sécurité complexes, vous devez d'abord avoir une bonne compréhension des concepts de sécurité de base, alors commençons dès le début ...
Tu prends la pilule bleue - l'histoire se termine, tu te réveilles dans ton lit et tu crois ce que tu veux croire. Vous prenez la pilule rouge, vous restez au pays des merveilles et je vous montre à quel point le trou du lapin est profond. Rappelez-vous: tout ce que j'offre est la vérité. Rien de plus.
Morpheus

À partir du moment où je suis devenu développeur professionnel, j'ai commencé à créer du code pour gérer l'authentification et l'autorisation dans les applications. La vie était si simple à cette époque! Les noms d'utilisateur et les mots de passe étaient limités à cinq caractères alphabétiques, les couleurs sur l'affichage étaient seulement orange et noir,
et le nombre d'ordinateurs sur le réseau était un: le mainframe. L'accès au centre de données était limité et il n'y avait pas d'Internet disponible.

Bien que certains des concepts de sécurité que nous utilisons aujourd'hui aient été créés récemment, la plupart datent de bien avant.
Les gens ont toujours eu besoin de prendre des mesures pour se protéger des attaques et du crime. Les peuples anciens ont survécu en se protégeant eux-mêmes et en protégeant leur groupe contre les animaux, la météo ou d'autres groupes rivaux. Les ressources précieuses devaient être gardées, les secrets devaient être gardés en sécurité.

Néanmoins, lorsque nous prenons un texte technique moderne sur la sécurité des applications,
tout semble si compliqué que nous pensons parfois: "Je ne l'aurai jamais. Je dois être un génie pour comprendre comment tout cela fonctionne! "Les systèmes de sécurité modernes sont construits avec de nombreuses couches de logiciels complexes, impliquant tant de concepts et de technologies, qu'ils bourdissent les esprits des développeurs et causent beaucoup de frustration.
C'est une sagesse commune que pour comprendre des choses compliquées, nous devons les décomposer en plus petites parties. Si vous voulez comprendre les systèmes de sécurité complexes, vous devez d'abord avoir une bonne compréhension des concepts de sécurité de base, alors commençons par le début:

1 ressources

S'il y a un besoin de sécurité, il y a quelque chose qui doit être gardé. Ce "quelque chose" est ce que nous appelons une ressource. Cela peut être l'intérieur de votre maison, l'argent dans votre compte bancaire, l'information dans votre journal privé, ou même quelque chose de numérique, comme les images dans votre téléphone, ou votre mot de passe Facebook.

2 directeurs

S'il y a quelque chose, la ressource, qui doit être sécurisée, il est logique de supposer qu'il doit y avoir quelqu'un qui essaie de l'obtenir. Que quelqu'un s'appelle le principal. Par exemple, lorsque vous rentrez après une longue journée de travail, vous voudrez accéder à l'intérieur de votre résidence. L'intérieur de votre maison est une ressource.
Vous êtes le principal. Dans les systèmes informatiques, le principal peut être appelé par de nombreux noms, comme l'utilisateur ou le client, mais l'important ici est que vous compreniez le concept. Si quelqu'un vous dit "la bibliothèque cliente JavaScript fait une requête Ajax pour obtenir le jeton d'accès" et que vous comprenez ce charabia, il est important que,
dans votre esprit, vous pouvez simplifier les choses à un point où vous vous dites: le principal essaie d'accéder à la ressource, rien de plus que cela.
3 Identités et pouvoirs
Lorsqu'un principal essaye d'accéder à une ressource, la première chose que notre "système de sécurité" doit faire est de vérifier si le principal est qui il (ou elle) prétend être: vérifier l'identité principale. Pour que l'identité soit vérifiée, le principal fournira des informations d'identification. Dans le monde réel, ça peut être un badge,
ou un identifiant de photo. Dans le monde numérique, il s'agit généralement d'un identifiant et d'un mot de passe, mais pas nécessairement.

4 authentifications

Si votre système de sécurité est un verrou sur votre porte d'entrée, la façon dont il vérifiera l'identité du principal est en confirmant qu'il / elle a la bonne clé qui ouvre le verrou.
Il y a trois facteurs possibles pour authentifier un mandant: le mandant a quelque chose ou sait quelque chose, ou simplement quelque chose qui est reconnu et qui permet une identification positive. Si votre système de sécurité est votre chien, il vous permettra d'accéder en vous reconnaissant par qui vous êtes: votre image, votre odeur, votre voix, etc.
d'un autre côté, vous aurez seulement besoin d'avoir une chose: la clé. Lorsque plus d'un de ces facteurs est requis, nous l'appelons authentification multifactorielle: disons que vous avez une serrure et un chien, vous devez donc avoir une clé et vous devez être vous.

5 Réclamations

Parce que les principaux prétendent avoir une identité connue,
toutes les choses et les informations fournies par le principal sont généralement appelées aussi réclamations. Parfois, dans les systèmes informatiques, les revendications sont également utilisées pour désigner toutes les informations que l'application connaît sur le principal.

6 Droits

Jusqu'ici tout va bien, tu rentres à la maison, tu as ta clé, et ton chien n'a pas oublié qui tu es.
Vous avez reçu un accès complet à la ressource merveilleuse qui est l'intérieur de votre maison. Qui vous a accordé cela? Votre système de sécurité: serrure et chien. Eh bien, ce système de sécurité très simple suppose que vous pouvez faire n'importe quoi avec la ressource. Accès complet, parce que vous êtes le propriétaire. Vous pouvez utiliser les objets dans votre résidence,
et même les emmener avec vous où vous voulez. Faire quoi que ce soit, ou un accès complet, sont les droits que vous avez en ce qui concerne la ressource.

7 rôles

Vous avez ces droits parce que, pour le système de sécurité, vous jouez le rôle de "propriétaire". Les droits sont généralement associés au rôle, mais sur certains systèmes, ils sont directement associés au principal.
Les directeurs jouant d'autres rôles peuvent avoir des droits restreints différents. Par exemple, disons que vous avez une serrure, un chien et un conjoint à la maison en tant que composants de votre système de sécurité. Un autre principal, cette fois une femme de ménage, vient à votre domicile. Elle a une clé, le chien et votre conjoint reconnaissent et lui font confiance,
et ainsi elle est autorisée à utiliser certaines des ressources. Elle peut entrer, elle peut utiliser des appareils électroménagers et des salles de bains, cuisiner, mais elle n'a pas le droit de dormir ou de ramener chez elle des objets. Ce sont des droits qui n'ont pas été accordés au rôle de «personne de ménage», de sorte que votre conjoint ne permettrait pas que cela se produise.

8 autorisations

Le processus d'octroi des droits corrects à un mandant, basé sur les droits ou rôles inhérents est appelé autorisation. C'est exactement ce qui se passe lorsque vous retirez de l'argent à un guichet automatique. Vous voulez accéder à une ressource: l'argent de votre compte bancaire. L'argent et le compte bancaire sont des ressources. Vous êtes le principal.
Le système de sécurité ATM vous oblige à insérer votre carte: c'est un facteur d'authentification, quelque chose que vous avez. Ensuite, il vous demande d'entrer votre numéro d'identification personnel (NIP) sur le clavier. C'est un autre facteur d'authentification, quelque chose que vous connaissez. Si le système a reconnu la carte et le code PIN comme code PIN de votre compte,
vous êtes d'abord authentifié puis autorisé: le système ATM vous accorde des droits, dans le rôle d '"utilisateur ATM". Ensuite, le système vérifiera quels sont vos droits pour ce rôle et cette ressource, puis il affichera une liste d'options à l'écran. Si vous êtes autorisé à retirer de l'argent, il affichera cette option.

9 Menaces

Nous ferions mieux d'y faire face.
Si nous avons besoin de sécurité, c'est parce qu'il y a des menaces. Si rien de mal ne pouvait arriver à nos ressources, il ne serait pas nécessaire d'expliquer les concepts dans ce post. Les menaces sont exactement ces mauvaises choses qui peuvent arriver. Nos possessions peuvent être volées, notre maison détruite, nos vies prises. Tout danger est une menace pour la sécurité, peu importe s'il est intentionnel
accidentelle ou naturelle. Dans le cyber-monde, nous essayons de classer ces menaces dans six catégories: usurpation d'identité, altération, répudiation, divulgation d'informations (ou fuite de données), déni de service (DoS) et élévation de privilèges. Vous pouvez vous en souvenir en utilisant l'acronyme STRIDE, mais cette classification des menaces cybernétiques est assez importante pour un autre article.

10 Vulnérabilités

Une vulnérabilité est une faiblesse qui peut être exploitée. Dans les systèmes informatiques, il existe de nombreuses vulnérabilités dans de nombreuses catégories: matériel, logiciel, réseau, personnel, accès physique, organisationnel, etc. Il y a tellement de vulnérabilités que je vais les aborder quelques unes à la fois, en plusieurs messages,
donc je ne vous effraie pas depuis le début. Peu à peu, nous pouvons apprendre à corriger la plupart d'entre eux, mais pour ce faire, vous devrez choisir la pilule rouge et ouvrir les yeux sur la dure et froide réalité de la vulnérabilité de nos systèmes.

*

Enregistrer un commentaire (0)
Plus récente Plus ancienne