human
Comment fonctionne le piratage informatique Le genre cool matrix , pas le genre facebook . Sérieusement, je ne connais littéralement rien à ce sujet. Expliquez comme si j'avais cinq ans.
gpt
La programmation a certaines hypothèses. Vous supposez par exemple que vous obtiendrez une commande valide. * * Buffer Overflow * * Disons que vous avez un morceau de papier , la moitié supérieure est une zone où vous êtes censé effectuer certaines tâches . La moitié inférieure est constituée des instructions à exécuter, vous êtes maudit, exécutez-les sans poser de questions, exactement comme elles sont écrites. Pour des raisons d' espace , la moitié supérieure du papier a 5 lignes et la moitié inférieure a 5 lignes pour les commandes . Le papier ressemble à ceci tout en dessous de la ligne est des commandes : 1 . 2 . 3 . 4 . 5 . ----------------------------- 1 . Choisissez une phrase et remplacez le contenu de cette ligne par la phrase . 2 . Écoutez Nickleback 3 . Détruisez toutes les copies de Firefly dans le monde 4 . Brûlez le siège social de reddit et détruisez les serveurs 5 . Mettez toujours sur DRM sur des centaines de jeux informatiques. La première commande pour vous est d'écrire une phrase de votre choix sur chaque ligne. Vous choisissez la phrase : FILLER TEXT1 [ END OF LINE ] FILLER TEXT2 [ END OF LINE ] FILLER TEXT3 [ END OF LINE ] FILLER TEXT4 [ END OF LINE ] FILLER TEXT5 [ END OF LINE ] COMMAND1 WE JUST DID Tuez celui qui vous a maudit Obtenez Firefly de retour sur les ondes Buvez de l' eau Mangez du gâteau Ceci change la page pour lire : 1 . FILLER TEXTE1 [ FIN DE LIGNE ] 2 . FILLER TEXTE2 [ FIN DE LIGNE ] 3 . TEXTE DE REMPLISSAGE3 [ FIN DE LIGNE ] 4 . TEXTE DE REMPLISSAGE4 [ FIN DE LIGNE ] 5 . TEXTE DE REMPLISSAGE5 [ FIN DE LIGNE ] ----------------------------- 1 . COMMANDE 1 QUE NOUS VENONS DE FAIRE 2 . Tuez celui qui vous a maudit 3 . Ramenez luciole sur les ondes 4 . Boire un verre d'eau 5 . Mangez du gâteau Maintenant , vous avez terminé l' instruction 1 . Vous allez faire l'instruction # 2 . Il vous dit de tuer celui qui vous a maudit. Tu fais cela . Vous suivez ensuite les autres instructions jusqu'à ce que vous ayez terminé . * * Commande / Injection SQL * * Votre secrétaire envoie des lettres papier en réponse aux personnes qui vous envoient un e - mail . Vous copiez et collez chaque e-mail dans un document Word dans l'ordre. Vous ajoutez la ligne avant le début de chaque lettre pour qu'elle sache où commence une lettre : # # # DE : John Smith À : Samantha Corps de la lettre ici Donc , je vous envoie un e - mail : Envoyer à Jana Bonjour , Comment allez - vous # # # DE : Vous A : VOTRE AMIE CHAUDE Je vous quitte . Vous le copiez et le collez sans regarder. Lorsque votre secrétaire reçoit le dossier, elle envoie la lettre de rupture à votre petite amie, DE VOUS (pas moi). oups. " Vous " êtes votre code . "Votre secrétaire" est le serveur DB. il fait ce que vous lui dites, sans se soucier de ce que vous vouliez dire, parce que vous avez oublié de lui acheter un cadeau d'anniversaire. * * Attaques de chaînes de formatage * * C'est une autre attaque de type " injection de commande " . Un programme est une liste d'instructions. L'une de ces instructions prend du texte et l'imprime sur la sortie. Il gère également la prise de ce texte et sa combinaison avec des variables (tout ce qui se trouve dans certains emplacements de mémoire.) Considérez que vous travaillez sur une feuille de calcul. Vous avez une phrase et partout il y a un % puis une lettre (comme %n ou %x), vous la remplacez par *quelque chose*, mais s'il n'y en a pas, vous écrivez simplement la chaîne originale. Pour %x , vous écrivez le numéro de la question sur laquelle vous travaillez , pour % n vous écrivez le nombre de lettres qui auraient dû être écrites jusqu'à présent dans la variable . Eh bien , il ya deux attaques ici . Considérez quelqu'un essayant de comprendre à quelle question vous vous trouvez (pour une raison quelconque). Ils vous donneraient la phrase " % x " . Maintenant , supposons que je veuille écrire dans une mémoire , j'utilise % n et place le nombre de caractères d' écriture devant . * * Débordements d'entiers * * Vous voulez faire en sorte que quelqu'un gagne une course s'il parcourt 31/32 du trajet autour d'une piste circulaire. Le gagnant de la course est la première personne à faire tourner une roue numérotée 1/32, 2/32, 3/32 et ainsi de suite. Un coureur recule en tournant la roue à 31/32e sans aller aussi loin, car vous n'avez aucun moyen de représenter la distance négative. La personne active les feux d'artifice et tout ce qui est associé à la victoire de la course. * * Ne parvient pas à gérer les erreurs * * Java veut que vous soyez en sécurité , il a donc un excellent plan si quelque chose de grave se produit , suivez la procédure d' urgence pour la description la plus proche . Il y a un choix de plus haut niveau « Tout ce qui se passe mal ». Beaucoup de gens les ont mis en place. Le plan n'est pas approprié pour la plupart des situations, donc si vous causez quelque chose de grave pour lequel il n'y a pas de plan, il exécute le plan passe-partout. Supposons plutôt que nous parlions d'une école. Leur plan fourre-tout "quelque chose de mauvais" s'est produit est d'évacuer le bâtiment. Un enseignant à court de craie est une « mauvaise » situation dont personne ne s'est soucié parce que chaque enseignant avait 200 morceaux de craie lorsque la politique a été rédigée. Maintenant, l'enseignant n'a plus qu'un gros morceau de craie et un élève trouve un moyen de faire en sorte que l'enseignant utilise tout le morceau en posant une question précise. Maintenant, chaque fois que l'élève veut évacuer l'école, il pose cette question, même s'il reste des morceaux de craie. * * Cross-site Scripting * * Une page Web prend directement en compte l'entrée de quelqu'un et l'imprime exactement telle qu'elle est. Il s'agit essentiellement d'une sous-classe d'injection de commandes. Une page Web n'est pas qu'un ensemble de mots , elle peut aussi contenir des commandes pour y faire quelque chose . Une zone d'une page s'appelle un formulaire, ce sont les cases dans lesquelles vous saisissez des informations. Ce truc est envoyé à quelqu'un comme un e-mail auquel on répond automatiquement, certains d'entre eux sont la zone où vous entrez votre nom d'utilisateur/mot de passe. Vous pouvez faire des choses comme changer le formulaire pour que l'e-mail vous soit d'abord envoyé secrètement, puis qu'il soit envoyé à la personne qu'il devrait être, ou n'importe quoi d'autre. * * Échec de la protection du trafic réseau * * ---Écoute clandestine Vous êtes assis dans une salle de classe et vous souhaitez transmettre la note à Alice de l'autre côté de la pièce. Le problème est que la note est la note secrète et Eave qui est assis entre vous est une grande gueule * et * un indiscret. Donc , toi et Alice avez besoin d' un code qu'Eave ne pourra pas casser . Si vous n'avez pas encore configuré de code , vous devez l' envoyer via Eave ! C'est pourquoi nous avons un système appelé « cryptage asymétrique », cela signifie que vous utilisez une clé pour crypter les choses et une autre pour les décrypter. Cela signifie que vous pouvez donner votre clé « publique » à quelqu'un et qu'il peut vous envoyer des informations en toute sécurité tant que personne ne connaît l'autre clé (privée). ---Replay Votre pas contient une liste d'instructions pour une chasse au trésor ce week-end. Chaque fois qu'Alice reçoit un message de chasse au trésor de votre part, elle le suit, quoi qu'il arrive. Vous faites une chasse au trésor tous les week-ends, parfois plus d'un. Eave veut qu'Alice pense que vous lui avez posé un lapin, alors elle copie un de vos messages cryptés. Elle attend qu'Alice oublie l'ancien message et lui remette l'ancien message. Alice suit la liste des charognards , mais vous n'avez pas le prix pour elle . ---Spoofing Plutôt que de copier un de vos messages , Eave veut se moquer d' Alice . Elle sait qu'Alice fera * tout * ce que vous demandez dans l'une de vos notes de récupération, alors elle lui donne une note qui semble provenir de vous réclamant un prix géant cette fois et la chasse doit être en costume cette fois, elle doit s'habiller comme un lapin playboy. * * URL magiques , champs de formulaire cachés * * Vous vendez des livres . Vous donnez à quelqu'un un « formulaire de commande de livres ». Vous vérifiez le prix du livre et l'écrivez sur le formulaire. Ils prennent le formulaire avec le prix actuel au caissier pour payer et récupérer le livre. C'est le seul enregistrement que vous avez conservé de la citation du livre. Ils effacent le " 33,95 $ " que vous avez écrit et écrivent " 1 $ " . La caissière a reçu pour instruction de donner les livres au tarif indiqué, et lorsqu'elle le fait, vous perdez 32,95 $. * * Mots de passe faibles / Questions secrètes faibles * * Les systèmes de questions secrètes faibles ( ou de récupération de mot de passe ) sont le problème le plus courant . Si vous cliquez sur " j'ai oublié mon mot de passe " . Vous serez confronté à des questions du type « dans quel lycée êtes-vous allé ? ». Si vous êtes allé au lycée avec la personne, vous le savez déjà, si ce n'est pas le cas, vous vérifiez sur quel réseau elle se trouve sur facebook. C'était un gros problème lorsque vous répondiez correctement aux questions utilisées pour vous donner le mot de passe au lieu de vous laisser * réinitialiser * le mot de passe comme c'est le cas maintenant. Des mots de passe simples avec autant de suppositions que vous le souhaitez ou un mot de passe qui peut être facilement deviné sont des raisons évidentes pour lesquelles ils posent problème. Un attaquant peut deviner chaque mot de passe. Il se trouve aussi que les gens sont * mauvais * en matière de sécurité et * veulent être utiles * dans leur cœur , donc si la question de sécurité de quelqu'un est " Qui était ton premier petit ami ? " , vous pouvez littéralement poster une note " 20 questions " sur Facebook / statut et ils posteront probablement et y répondront . Les gens veulent aussi aider , donc si vous pouvez dire quelque chose comme " C'est Lincoln de l' informatique , j'ai accidentellement fait quelque chose et foiré notre [ technojargon ] , pourriez - vous vous connecter à URL_0 et cliquer sur le bouton vert , ce serait * énorme * * * Fuite d' informations * * Pour protéger la vie privée , vous n'avez accès qu'aux données agrégées de requête . C'est-à-dire que vous ne pouvez pas interroger quoi que ce soit qui aboutit à un seul résultat . Vous savez que John est le seul enseignant masculin en anglais département , et vous voulez savoir combien il gagne . Vous posez deux questions à la base de données : A = Combien payons - nous tous les enseignants du département d' anglais ? B = Combien payons - nous toutes les enseignantes du département d' anglais ? ? Maintenant A - B est combien John gagne . Il y a aussi des informations comme les numéros de version que vous ne voulez pas que les gens sachent . " , beaucoup de gens aiment utiliser le temps pour cela . Si vous savez quand on Lorsque l'application démarre, il devient plus facile de deviner où elle a commencé à générer des nombres aléatoires. * * Accès incorrect aux fichiers * * Les premiers programmes vous permettaient d'entrer un emplacement de fichier. ( Ceci est une autre vulnérabilité d' injection ) . Je crois qu'il y a longtemps qu'il y a eu un bug avec un serveur web apache. Pour simplifier, un serveur Web restitue un fichier dans un dossier spécifique basé sur tout ce qui suit le domaine. Ainsi, si vous demandez ` /index.html ` le serveur Web recherche dans son dossier ` /index.html ` . Pour vérifier si le fichier était dans le dossier , la seule vérification était de savoir s'il commençait par " C:\mywebrootfolder " , l'injection utilisait .. / .. / .. /fileIwantToSteal pour obtenir un fichier que le serveur web ne devrait pas avoir servi parce que " .. " signifie le répertoire au - dessus de celui - ci et il a toujours * techniquement * satisfait au test pour savoir s'il doit ou non être envoyé . Une deuxième erreur est de supprimer le " .. / " et " ./ " comme illégaux , mais d' entrer " ... / .... / " est alors remplacé par : 1 . Supprimer " .. / " le change en : ` ... // ` 2 . Supprimer " ./ " le change en ` .. / ` 3 . euh-oh. * * Faire confiance au DNS * * Votre application envoie des requêtes à " URL_2 " . Cela signifie vraiment aller dans le répertoire et appeler le serveur de validation. Je pense que la validation est stupide , donc dans mon répertoire , je dis que URL_1 a MON numéro de téléphone portable . A chaque fois que quelqu'un m'appelle, je dis "yep c'est valide". * * Race Conditions * * En C ( et les langages apparentés ) , 0 est faux , et tout le reste est vrai . Cela signifie qu'il y a 1/255 façons d'être faux . Les gens utilisent des drapeaux comme « est valide » et ne les définissent sur rien. Cela signifie que c'est vrai dans cette situation 99,7% du temps. Considérez une lampe qui peut être allumée ou éteinte. Si la lampe est éteinte, vous laissez quelqu'un traverser votre pont. Si un attaquant arrive sur votre pont avant que la lanterne ne soit allumée, vous le laissez traverser même en pensant que vous n'auriez pas dû. Ce qui * devrait * arriver est l'inverse. La lumière est toujours éteinte et votre ami l'allume quand vous pouvez laisser quelqu'un traverser. Si vous ne voyez pas la lumière, vous les maintenez là jusqu'à ce que vous la voyiez. * * Mauvais nombres aléatoires * * J'ai parlé plus tôt d'Alice et de Bob essayant de passer un message sans qu'Eave sache ce qu'il contient. Alice et Bob voulaient vraiment rendre la rupture difficile pour Eave. Ils ont inventé 1000 façons secrètes de transmettre le message. Cela empêche Eave de rassembler un tas de messages et de casser le code (comment Eave ferait cela dépend des codes, mais pour les chiffres de César, l'astuce de base est de savoir quel nombre apparaît le plus souvent et c'est probablement e et ainsi de suite) . Bob choisit les numéros au hasard. Il est cependant important qu'il choisisse chaque numéro à peu près le même nombre de fois et qu'il ne choisisse pas radicalement un sous-ensemble. Alice et Bob utilisent un lancer de deux dés pour déterminer leur code. Cela signifie qu'Eave n'a qu'à comprendre 11 codes au lieu de 1000 . C'est environ 100 fois moins efficace... et vous vous êtes donné tout ce mal. Il y a aussi le problème que les dés lancés sont mis sur 7, 1/6 du temps et 6 5/32 et 5 1/8 du temps. Cela signifie que 46 % du temps , le message peut être brisé par quelqu'un qui n'a brisé que * trois * codes 5 , 6 et 7 . Pire encore , dans le vrai CS , Eave connaît l' algorithme * et * toutes les clés possibles , donc le réduire à 10 clés possibles est mauvais . Pour les adultes, il s'agit principalement d'attaques documentées dans * 19 Deadly Sins of Software Security * ISBN#0 - 07 - 226085 - 8