Accédez à nos cours concernant des domaines et thématiques différentes. Vous pouvez aussi contribuer en rédigeant des articles.
Consulter les coursParcourez notre annuaire d’écoles, instituts et universités du monde. Si votre école n’est pas listée, vous pouvez l’ajouter très facilement.
Consulter les écolesAccédez à notre messagerie instantanée pour échanger avec d’autres membres inscrits et aussi les invités. Aucune inscription n’est obligatoire.
Accéder au tchat“Le présent article n'a pas encore été revu par un modérateur, pour cela veuillez faire attention quant à son contenu, que nous ne pouvons pas vous garantir son exactitude.”
Il y a un grand nombre de vulnérabilités de sécurité génériques produits par une mauvaise utilisation du code. Tandis que certaines de ces failles sont déjà bien connues et peuvent être fixées, d'autres attendent d'être découvertes.
Ces erreurs de programmation peuvent être trouvées et exploitées dans toute sorte de logiciel. Parfois les protocoles eux-mêmes sont défectueux et donc toutes les applications se servant de ce protocole spécifique seront vulnérables.
La vulnérabilité de sécurité probablement la plus connue est le Buffer Overrun ou Buffer overflow.
Exemple sur comment les buffer overflows sont exploités
Un programmeur prévoit que les utilisateurs de son logiciel n'auront jamais de nom d'utilisateur de 256 caractères ou plus.
Un pirate va plutôt essayer d'entrer plus de 256 caractères comme nom d'utilisateur et voir ce qui se passe. Ce qui arrive dans ce cas est un buffer overflow, ce qui signifie que les caractères additionnels seront exécutés comme des instructions sur le serveur distant.
Les buffer overflows sont normalement trouvés dans les programmes réalisés en C et C++, et sont très rares sur les programmes écrit avec des langages de haut niveau comme le Java.
Au moment de la conception, parfois les programmeurs ne pensent pas à toutes les combinaisons possibles d'entrées. Ceci peut créer des trous principaux de sécurité. Une attaque de traversée de chemin ("Path Traversal") est habituellement effectuée par l'intermédiaire de paramètres d'entrée d'URL non vérifiés, des cookies et des entêtes de requêtes HTTP; c'est un exemple d'entrée inattendue.
Quelques fois les programmeurs ne pensent pas à la possibilité que quelqu'un puisse écrire une entrée qui ne correspond pas à ce qu'attend le programme. Ceci peut causer un Denial of Service qui provoquerait la fermeture forcée des programmes et services ou permettrait d'obtenir des privilèges administrateurs.
Lorsque deux ou plusieurs processus (ou commandes) accèdent à des données partagées, le résultat dépend de l'ordre de l'exécution. Dans l'univers de la sécurité, si un processus privilégié est forcé d'écrire un code spécial sur un certain dossier qui est alors exécuté par un autre processus privilégié, l'exécution du code peut avoir lieu créant ainsi une faille de sécurité.
C'est ce qu'on caractérise de situation de compétition (ou situation de concurrence, accès concurrent, concurrence critique, course critique, séquencement critique).
A l'installation, un système aura les configurations les plus basiques. La plupart du temps cela signifie facile à utiliser et abuser. En fait les systèmes Windows NT/2000 et XP embarqués doivent être patchés et configurés sinon il est très simple d'y pénétrer.
Les “script kiddies” recherchent en général les systèmes par défaut de Windows 2000 et Linux pour y rentrer.
Un grand nombre de serveurs de réseaux d'entreprise n'ont pas de mot de passe configuré. Ce peut être très pratique pour l'installation d'une multitude de systèmes mais cela créera une vulnérabilité évidente.
Parfois les administrateurs utilisent également un mot de passe unique pour toutes les machines du réseau. Cela veut dire qu'une fois qu'un pirate a deviné le mot de passe d'une machine, il peut accéder à toutes celles du réseau librement.
2.3. Les relations de confiance
Votre sécurité est aussi forte que votre maillon faible. Les stations de travail d'un réseau d'entreprise utilisent les relations de confiance, le serveur autorise un autre système spécifique à utiliser un service du serveur.
Si le système spécifique est compromis, le pirate aura également accès au serveur.