Accueil Finances personnelles Programmation c ++: 10 Astuces Anti-Hacker - mannequins

Programmation c ++: 10 Astuces Anti-Hacker - mannequins

Table des matières:

Vidéo: Langage C : 14. Erreurs 2025

Vidéo: Langage C : 14. Erreurs 2025
Anonim

En tant que programmeur C ++, vous devez apprendre ce que vous devez faire dans votre code C ++ pour éviter d'écrire des programmes vulnérables aux pirates. Il décrit également les fonctionnalités que vous pouvez activer si votre système d'exploitation les prend en charge, telles que l'ASLR (Address Space Layout Randomization) et la prévention de l'exécution des données (DEP).

Ne pas faire d'hypothèses sur l'entrée de l'utilisateur

La vision du tunnel du programmeur est correcte pendant la phase de développement initiale. À un moment donné, cependant, le programmeur (ou, mieux encore, un autre programmeur qui n'avait rien à voir avec le développement du code) a besoin de s'asseoir et d'oublier le problème immédiat. Elle doit se demander: «Comment ce programme réagira-t-il aux intrants illégaux? "

Voici quelques règles pour vérifier les entrées:

  • Ne faites aucune hypothèse sur la longueur de l'entrée.

  • N'acceptez pas plus de saisie que vous n'en avez pour vos tampons de longueur fixe (ou tampons de taille variable utilisés).

  • Vérifiez la portée de chaque valeur numérique pour vous assurer que cela a du sens.

  • Rechercher et filtrer les caractères spéciaux qui peuvent être utilisés par un pirate pour injecter du code.

  • Ne transmettez pas l'entrée brute à un autre service, tel qu'un serveur de base de données.

Et effectuez les mêmes contrôles sur les valeurs renvoyées par les services distants. Le pirate peut ne pas être du côté de l'entrée, il peut être du côté de la réponse.

Gérer les pannes avec élégance

Votre programme doit répondre raisonnablement aux défaillances qui se produisent dans le programme. Par exemple, si votre appel à une fonction de bibliothèque renvoie un nullptr, le programme devrait le détecter et faire quelque chose de raisonnable.

Raisonnable ici doit être compris assez libéralement. Le programme n'a pas besoin de flairer pour comprendre exactement pourquoi la fonction n'a pas retourné une adresse raisonnable. Il se pourrait que la demande soit trop importante en raison d'une entrée déraisonnable. Ou il se pourrait que le constructeur ait détecté un type d'entrée illégale.

Peu importe. Le point est que le programme devrait restaurer son état du mieux qu'il peut et mettre en place pour le prochain bit d'entrée sans écraser ou corrompre les structures de données existantes telles que le tas.

Gérer un journal de programme

Créez et maintenez des journaux d'exécution qui permettent à quelqu'un de reconstituer ce qui s'est passé en cas d'échec de la sécurité. (En fait, cela est tout aussi vrai dans le cas de n'importe quel type d'échec.) Par exemple, vous voulez probablement vous connecter chaque fois que quelqu'un se connecte ou se déconnecte de votre système.

Vous voudrez certainement savoir qui a été connecté à votre système lors d'un événement de sécurité - c'est le groupe le plus à risque d'une perte de sécurité et qui est le plus méfiant lors de la recherche de coupables.En outre, vous devrez enregistrer toutes les erreurs du système qui incluraient la plupart des exceptions.

Un programme de production réel contient un grand nombre d'appels qui ressemblent à quelque chose comme:

log (DEBUG, "Utilisateur% s est entré mot de passe légal", sUser);

Ceci est juste un exemple. Chaque programme aura besoin d'un type de fonction de journal. Que ce soit ou non appelé log () est sans importance.

Suivre un bon processus de développement

Chaque programme doit suivre un processus de développement formel bien pensé. Ce processus doit inclure au moins les étapes suivantes:

  • Recueillir et documenter les exigences, y compris les exigences de sécurité.

  • Revoir le design.

  • Respectez une norme de codage.

  • Test d'unité sous test.

  • Effectuez des tests d'acceptation formels basés sur les exigences d'origine.

De plus, des examens par les pairs devraient être effectués à des moments clés pour vérifier que les exigences, la conception, le code et les procédures d'essai sont de haute qualité et conformes aux normes de l'entreprise.

Implémenter un bon contrôle de version

Le contrôle de version est une chose étrange. Il est naturel de ne pas s'inquiéter de la version 1. 1 lorsque vous êtes sous le pistolet pour obtenir la version 1. 0 par la porte et dans les mains tendues des utilisateurs en attente. Cependant, le contrôle de version est un sujet important qui doit être abordé tôt car il doit être intégré dans la conception initiale du programme et non verrouillé plus tard.

Un aspect presque trivial du contrôle de version est de savoir quelle version du programme un utilisateur utilise. Quand un utilisateur appelle et dit: «Il le fait quand je clique dessus», le service d'assistance a vraiment besoin de savoir quelle version du programme l'utilisateur utilise. Il pourrait décrire un problème dans sa version qui a déjà été corrigé dans la version actuelle.

Authentifier les utilisateurs en toute sécurité

L'authentification des utilisateurs devrait être simple: l'utilisateur fournit un nom de compte et un mot de passe, et votre programme examine le nom du compte dans une table et compare les mots de passe. Si les mots de passe correspondent, l'utilisateur est authentifié. Mais quand il s'agit d'antihacking, rien n'est aussi simple.

D'abord, ne stockez jamais les mots de passe eux-mêmes dans la base de données. C'est ce qu'on appelle en les stockant en clair et c'est considéré comme très mauvais. Il est beaucoup trop facile pour un hacker de mettre la main sur le fichier de mot de passe. Au lieu de cela, enregistrez une transformation sécurisée du mot de passe.

Gérer les sessions distantes

Vous pouvez émettre certaines hypothèses lorsque l'ensemble de votre application s'exécute sur un seul ordinateur. D'une part, une fois que l'utilisateur s'est authentifié, vous n'avez pas besoin de vous inquiéter de le transformer en une personne différente. Les applications qui communiquent avec un serveur distant ne peuvent pas faire cette supposition - un pirate qui écoute en ligne peut attendre que l'utilisateur s'authentifie et détourne la session.

Que peut faire le programmeur soucieux de la sécurité pour éviter cette situation? Vous ne voulez pas demander à l'utilisateur plusieurs fois son mot de passe pour vous assurer que la connexion n'a pas été piratée. La solution alternative est d'établir et de gérer une session . Pour ce faire, le serveur envoie un cookie de session à l'application distante une fois que l'utilisateur s'est authentifié avec succès.

Obscurcissez votre code

L'obscurcissement du code consiste à rendre l'exécutable aussi difficile à comprendre pour un pirate que possible.

La logique est simple. Plus il est facile pour un hacker de comprendre le fonctionnement de votre code, plus il sera facile pour le pirate de comprendre les vulnérabilités.

L'étape la plus simple que vous pouvez prendre consiste à vous assurer que vous ne distribuez qu'une version de votre programme qui n'inclut pas d'informations sur le symbole de débogage. Lorsque vous créez le fichier de projet pour la première fois, assurez-vous de sélectionner une version de débogage et une version de publication.

Ne distribuez jamais, jamais, des versions de votre application contenant des informations sur les symboles.

Signez votre code avec un certificat numérique

La signature de code fonctionne en générant un hachage sécurisé du code exécutable et en le combinant avec un certificat émis par une autorité de certification valide. Le processus fonctionne comme ceci: L'entreprise qui crée le programme doit d'abord s'enregistrer auprès de l'une des autorités de certification.

Une fois que l'autorité de certification est convaincue que Ma société est une entité logicielle valide, elle émet un certificat. C'est un long numéro que n'importe qui peut utiliser pour vérifier que le détenteur de ce certificat est le célèbre Mon Entreprise de San Antonio.

Utilisez un cryptage sécurisé partout où c'est nécessaire

Comme tout bon avertissement, cet avertissement comporte plusieurs parties. Tout d'abord, "Utiliser le chiffrement partout où c'est nécessaire. "Cela a tendance à faire penser à la communication d'informations de compte bancaire sur Internet, mais vous devriez penser plus général que cela.

Les données qui sont communiquées, que ce soit sur Internet ou sur une plage plus petite, sont généralement connues sous le nom Data in Motion. Data in Motion devrait être crypté à moins que cela ne soit d'aucune utilité pour un pirate.

Les données stockées sur le disque sont appelées Données au repos. Ces données doivent également être cryptées s'il y a un risque de perte, de vol ou de copie du disque. Les entreprises chiffrent régulièrement les disques durs sur les ordinateurs portables de leur entreprise au cas où un ordinateur portable serait volé au scanner de sécurité de l'aéroport ou laissé dans un taxi quelque part.

Les petits périphériques de stockage portables tels que les clés USB sont particulièrement susceptibles d'être perdus - les données sur ces périphériques doivent être cryptées.

Programmation c ++: 10 Astuces Anti-Hacker - mannequins

Le choix des éditeurs

Comment envoyer une vidéo et des photos avec Flip Video - Dummies

Comment envoyer une vidéo et des photos avec Flip Video - Dummies

Après avoir pris photos et vidéos d'événements dans votre vie avec votre caméra Flip Video, vous pouvez les envoyer par e-mail à vos amis et aux membres de votre famille. Le partage de films et d'images que vous capturez et créez en envoyant un message e-mail vous permet de toucher et de toucher quelqu'un avec vos créations, même si vous êtes à proximité ...

Comment enregistrer le son séparément pour votre film numérique - Les mannequins

Comment enregistrer le son séparément pour votre film numérique - Les mannequins

Ont parfois besoin d'un réalisateur enregistrer le son en utilisant un appareil séparé de l'appareil photo, enregistrer le son séparément, puis synchroniser le son sur la vidéo plus tard, lors de l'édition. Habituellement, la raison en est d'augmenter la qualité du son enregistré car de nombreuses caméras n'enregistrent pas le son aussi bien que ...

Comment enregistrer une vidéo avec un caméscope Flip - Les nuls

Comment enregistrer une vidéo avec un caméscope Flip - Les nuls

Enregistrant des vidéos avec votre caméra Flip est comme facile comme 1-2-3 (et 4). Avant d'enregistrer une vidéo, vérifiez les indicateurs d'état de votre Flip pour vous assurer que votre caméra est complètement chargée et qu'elle a suffisamment de temps d'enregistrement pour capturer la vidéo que vous voulez filmer. Pour vérifier le niveau de charge de la batterie de votre Flip (ou ...

Le choix des éditeurs

Mot Raccourcis des symboles 2016 - des mannequins

Mot Raccourcis des symboles 2016 - des mannequins

Dans Word 2016 vous pouvez insérer des symboles communs en utilisant ces raccourcis clavier. Utilisez ces raccourcis clavier au lieu de la commande Insérer → Symbole pour insérer des symboles typographiques communs. Symbole Raccourci Tableau de bord Alt + Ctrl + signe moins En tableau Ctrl + signe moins Copyright Alt + Ctrl + C Marque déposée Alt + Ctrl + R Marque Alt + Ctrl + T Ellipsis Alt + Ctrl + période

Mot Raccourcis des symboles 2016 - mannequins

Mot Raccourcis des symboles 2016 - mannequins

En fonction de la manière dont vous choisissez d'utiliser Word 2016, vous risquez de devoir faire face pour un symbole spécial. Avec ces raccourcis clavier, vous pouvez insérer des symboles communs dans Word 2016. Utilisez ces raccourcis clavier au lieu de la commande Insérer → Symbole pour insérer des symboles typographiques communs. Symbole Raccourci Tableau de bord Alt + Ctrl + signe moins En tiret ...

Mot Trucs et astuces pour les tables 2013 - mannequins

Mot Trucs et astuces pour les tables 2013 - mannequins

Dans Word 2013, le texte se déverse dans un tableau sur une cellule base de la cellule. Vous pouvez taper un mot, une phrase ou même un paragraphe. Tout ce texte reste dans la cellule, bien que la cellule change de taille pour accueillir de plus grandes quantités de texte. Vous pouvez mettre en forme la cellule d'une table comme n'importe quel paragraphe de Word, en ajoutant même des marges ...

Le choix des éditeurs

Sexe For Dummies Cheat Sheet - les nuls

Sexe For Dummies Cheat Sheet - les nuls

Que vous vous considériez comme un Don Juan, une Lady Chatterly, ou un novice sexuel , tout le monde peut tirer le meilleur parti du sexe avec un peu plus de connaissances. Vous devriez savoir que les préliminaires sont quelque chose que vous devriez prendre en considération avec chaque interaction que vous et votre partenaire avez, ainsi que la façon de garder les choses ...

Mots et significations liés à la ménopause - mannequins

Mots et significations liés à la ménopause - mannequins

Bien que ce soit loin d'être une liste complète des termes que vous pourriez entendre être utilisé lorsque la ménopause est discutée, les cinq termes essentiels suivants devraient vous aider à comprendre les bases. HRT (hormonothérapie substitutive): Un traitement pour compléter les hormones que vous perdez pendant la ménopause - généralement une combinaison d'œstrogènes, ...

Symptômes qui indiquent que la ménopause est proche - mannequins

Symptômes qui indiquent que la ménopause est proche - mannequins

La plupart des femmes commencent à éprouver des symptômes de ménopause déséquilibrés, alors qu'ils ont encore des règles. Si vous ressentez un ou plusieurs des symptômes suivants, consultez votre médecin - vous pouvez être en train d'aborder le changement. Peau sèche ou cheveux Pensée floue (difficulté à se concentrer) Flutters du cœur (battements de cœur rapides) ...