Beaucoup de jeunes informaticiens ou amateurs rêvent de devenir « pirate informatique »,c’est très souvent pour démontrer qu’on est un as en informatique. Alors ils se mettent à rechercher sur google « technique de piratage ; comment infiltrer un réseau informatique ; comment détourner un serveur ; comment surfer gratuitement ; comment faire ceci ou cela»…le plus ridicule c’est que lorsqu’ils découvrent enfin que pour mieux apprendre toutes ces choses il faut avoir autant que ce peut des connaissance en programmation, en réseaux informatique et autre ils commence à flipper et c’est ainsi qu’ils se mettent a rechercher sur google, pour faciliter les choses: « téléchargement gratuit de logiciel pour pirater…. » !!!! Tout cela est ridicule !!!!! Excuser moi d’être aussi « cru ». en revanche pour aider au mieux ces gens voici un article simplifier sur le piratage, ce qu’il faut connaitre et maitriser avant touteschose.Les acteurs du piratage:• Hackers• Hacktivistes• Crackers• Script-KiddiesCes dernières années, l’extension rapide de la bulle Internet a fait naître de nouveaux horizons en terme de communication et d’échange, bouleversant profondément nos habitudes. Mais ce brusque changement a vu naître aussi la peur du « pirate », comme le nomme les médias et les industriels du disque. Si Internet n’est pas exempt de menaces, la médiatisation de ces dernières a fait naître un amalgame, confondant même l’internaute adepte des échanges par le« peer to peer » au cracker, ou au hacker « black hat ». Tous qualifiés de pirates.Qu’est ce qu’un pirate informatique? La réponse pourrait être simple : une personne qui utilise de façon illégale un ordinateur. Mais, qui n’a jamais téléchargé une seule musique ou un film, ou bien seulement copié sur son disque dur un cd prêté par des amis ? Pas grand monde. Une telle définition reviendrait à qualifier l’ensemble des utilisateurs d’ordinateurs (ou presque) comme pirates! Cette réflexion est par ailleurs à l’origine des débats actuels sur les limites del’illégalité en informatique et sur les moyens de contrôle à envisager.Sans rentrer dans un débat de fond, cet article tente de clarifier quelques définitions et de préciser quelques termes.Hackers :u mot hacker remonte à l’arrivée du premier ordinateur au MIT (MassachusettsTechnology, université américaine située à Cambridge): l’IBM 704 (voir photo).eur devient rapidement la proie d’étudiants passionnés qui vont pousser la machineL’origine dInstitute ofCet ordinatà bout, la « bidouillant » dans les moindres détails, sans se soucier des protocoles d’utilisationde IBM pour une machine de plusieurs millions de dollars. A l’époque, on qualifia leurs travaux avec le terme hacking qui était le fait d’utiliser une machine ou une technologie à des fins qui n’étaient pas prévus (hacking signifie hachage, mais une meilleure traduction au niveau dusens serait bidouillage).Aujourd’hui, le mot hacker désigne un grand spécialiste de l’informatique, que ce soit dans le domaine de la sécurité que celui de la programmation ou d’un quelconque autre domaine del’informatique.On distingue différentes catégories de hackers avec l’opposition classique « bien – mal », oùplutot « méchants – gentils »:1. Le Hacker White Hats. (les « gentils »)Les white hats utilisent leurs savoirs et leurs connaissances au service de la société actuelle. Ils peuvent être consultants en sécurité, administrateurs réseaux, ou travailler au sein de la communauté open source. Certains d’entre eux sont d’ailleurs à l’origine de l’open source etde la philosophie qui en découle.Devenir un hacker white hats c’est assimiler des connaissances et de l’expérience en participant aux projets de la communauté, afin d’être accepté par ses membres. Cela nécessite de l’investissement dans des projets open source, et d’adopter une certaine culture (voir ici).La communauté française possède même sa propre déontologie (Par là).2. Le Hacker Black Hats. (Les « méchants »)Les black hats utilisent leurs connaissances pour défaire ou contourner, à but malveillant, lessystèmes et les réseaux d’informations. Ils ont également leur propre communauté. On peutles qualifier de « pirates informatiques » dans le sens où leurs actions sont nuisibles.Leurs cibles peuvent être n’importe quel réseau d’entreprise, des serveurs névralgiques d’Internet ou d’organisation comme la NASA, des sites de gouvernement… Ils sont aussi à l’origine d’un certain nombre de menaces tels que les virus, vers de terre… Leurs cibles sontalors n’importe quel ordinateur branché sur le web (voir les menaces).3. Le Hacker Grey Hats.Les grey hats sont entre les deux : ils n’ont pas de buts nuisibles mais n’hésitent pas à pénétrer certains réseaux ou systèmes de façon illégale, ils cherchent plus l’exploit et larenommée.Quelques Hackers célébres :• Kevin Mitnick: Hacker Black Hat à connaître!!!• John Carmack : programmeur de jeux reconnu et influent. Il a beaucoup contribué à l’avancée de la 3D dans le graphisme des jeux. En 1999, il est apparu dans le Time comme l’une descinquante personnes les plus influentes dans le domaine de la technologie.• Dennis Ritchie : Pionnier de l’informatique moderne. Il est a l’origine du langage de programmation C et du systeme d’exploitation UNIX.• Linus Torvalds : fondateur du projet Linux en 1991.HACKTIVISTEHacktivisme vient de la fusion des mots Hacker et activisme. L’hacktiviste est un hacker dont les objectifs sont politiques, et emploie ses connaissances en informatique pour diffuser et promulguer ses opinions. Ses actions les plus spectaculaires sont notamment le piratage de sites informatiques en altérant les données, en détournant des serveurs, en remplaçant despages d’accueil afin de détourner la signification et l’engagement de ces sites.Si l’hacktivisme est une nouvelle forme de protestation et bien souvent une manière de se faire entendre, cela reste une action totalement illégale, « hacktiviste » est donc évidemmentun autre sens qu’on donne au « pirate informatique ».CRACKERS :Le cracker, ou déplombeur de logiciels, est spécialisé dans le cassage des protections deslogiciels. Il possède de très bonnes connaissances en assembleur ainsi que des outils(désassembleur, débogueur… ) qui lui permette d’analyser le code d’un programme transmis au processeur. Cela lui permet de neutraliser ou contourner les mesures de protections d’un logiciel en créant un patch (ou crack), ou bien un « keygen » dans le cas de logiciels protégés par des clefs. Les motivations des crackers sont multiples : renommée, exploit, ou toutsimplement par intérêts personnels.Crackers célébres :• DeVianCe : groupe de crackers.• MYTH : un autre groupe de crackers.Kiddies :Script-Script-Kiddie est un terme péjoratif, il désigne des informaticiens néophytes qui utilisent des outils crées par les hackers ou les crackers. Ils sont nombreux et vantards mais ils représentent tout de même une menace de part leur nombre, leur incompétence, et leurobstination.Menaces liées aux réseaux : Menaces logiciels:• Virus• Vers• Spywares• Hijackers• Troyens• Bombes logique• Comment se protéger des virus, vers, spywares …? Autres:• hoax• spam• mailbombing• phishingvirusUn virus est un programme qui se reproduit en s’insérant partiellement dans d’autres fichiers. Qu’est-ce que je risque?Tant que le virus n’a pas été executé, vous ne risquez rien. Mais, lorsqu’il est activé, il peut vous rendre la vie dure. Tandis que certains virus vont tout simplement se manifester par l’apparition d’un message sur votre ordinateur, d’autres vont être dangereux. Par exemple, ils pourront supprimer des données, formater un disque dur. La majorité des virus se propagent par courrier électronique en pièce-jointe. Néanmoins, on peut classer les virus en plusieurscatégories :Virus furtifCes virus, comme leur nom l’indique, vont se camoufler de façon à ne pas être détecté par lesantivirus.Virus polymorpheCes virus, assez rare, ont la faculté de changer de signature de façon à berner les antivirus.MacrosCes virus sont écrits en VBA (Visual Basic Application) de la suite Microsoft Office. Ils sonttrès dangereux étant donné le nombre d’utilisateurs utilisant les fichiers tels que Word, Excel,…Virus compositeCes virus sont tout simplement une combinaison des catégories mentionnées ci-dessus.VERSUn ver (en anglais worm) est un programme qui se propage d’ordinateur à ordinateur via un réseau comme l’Internet. Ainsi, contrairement à un virus, le vers n’a pas besoin d’unprogramme hôte pour assurer sa reproduction. Son poids est très léger, ce qui lui permet dese propager à une vitesse impressionante sur un réseau, et pouvant donc saturer ce dernier.Qu’est-ce que je risque ?Tant que le ver n’a pas été executé, vous ne risquez rien. Mais, lorsqu’il est activé, il peut vousrendre la vie dure. Ils vont pouvoir avoir des fonctionnalités malsaintes comme pour lesvirus, mais ils vont aussi utiliser les ressources de votre réseau, pouvant amener ce dernier àsaturation.SPYWARESUn spyware, ou logiciel espion, est un logiciel nuisible qui transmet à des tiers des informations contenues dans votre ordinateur. Les spywares sont souvent présents dans des gratuiciels (différents des logiciels libres), ou des partagiciels. En général les logiciels à codesource libre comme Mozilla FireFox n’en contiennent aucun.Qu’est ce que je risque?La diffusion de données personnelles, qui sont ensuite utilisées par des entreprises de publicités. Par exemple, le spyware peut envoyer la liste des sites consultés ainsi que vosadresses mail, ce qui permet ensuite de cibler vos centres d’intérêts.La présence d’un grand nombre de spyware sur un ordinateur provoque une diminution desperformances. En effet ces logiciels étant lancé dès le démarrage, ils nécessitent des ressources systèmes (en mémoire et processeur).HIJACKERSUn Hijacker, ou pirate de navigateur, utilise les failles de sécurité d’internet explorer pours’installer sur votre ordinateur. Ce genre de programme s’installe donc juste en surfant sur lenet, souvent sur des sites « louches » (sites de piratage, de patch nocd pour jeux, de cracking,ou encore sites à caractére pornographique …).Qu’est ce que je risqueUne fois installé, le hijacker peut se comporter comme un spyware et envoyer des informations sur le net, mais une grande partie des Hijackers modifie simplement des caractéristiques de votre système: par exemple en changeant la page de démarrage d’internet explorer, votre fondd’écran…TROYENSUn troyen (en anglais trojan horse) tire son nom du mythe du cheval de Troie. Ce programme a une apparence saine, souvent même attirante, mais lorsqu’il est exécuté, il effectue, discrètement ou pas, des actions supplémentaires. Ces actions peuvent être de toute forme,comme l’installation d’une backdoor par exemple.Qu’est-ce que je risque ?Après avoir exécuté le troyen, on peut tout craindre. Un attaquant pourra rentrer sur votre système si le troyen a installé une backdoor. Ces dernières années ont vu l’arrivée d’un nouveau type de troyens, très à la mode aujourd’hui. Ce troyen se compose d’un programme client et d’un autre serveur. Le pirate envoie le serveur à la victime. Lorsque celle-ci a exécutéle programme, le pirate, à l’aide du programme client, pourra contrôler l’ordinateur cible.Souvent même, ce genre de programme offre au pirate plus de fonctionnalités que l’utilisateuren possède lui-même sur son ordinateur.BACKDOORUne backdoor (en français, une porte dérobée) est un moyen laissé par une personne malveillante pour revenir dans un système. Par exemple, un pirate, après avoir pénétré unemachine peut se créer un compte secret. Ainsi, il pourra revenir la prochaine fois facilement.Une backdoor a de multiples raisons d’exister, comme l’espionnage ou pour lancer desattaques à partir de cette machine et ainsi vous faire porter le chapeau.BOMBES LOGIQUESUne bombe logique est un troyen qui, une fois exécutée, produira ses effets à un moment précis. Par exemple, la bombe logique Tchernobyl s’est activée le 26 avril 1999 (jour du 13ème anniversaire de la catastrophe nucléaire en Bulgarie), mais la bombe peut également attendre une combinaison de touches bien précise de la part de l’utilisateur pour se déclencher ouattendre qu’un fichier s’exécute. Le choix des programmeurs quant à son déclenchement estsans limite.Comment se protéger des virus, vers, spywares …?Il n’y a pas de solutions miracles, mais voici quelques conseils qui vous permettront de vousprémunir de ces menaces:• Avoir un antivirus, et le mettre à jour régulièrement.• Avoir un parefeu et le configurer correctement.• Avoir un antispyware, et scanner son ordinateur régulierement• Ne pas ouvrir une pièce-jointe d’une personne inconnue.• Si vous connaissez la personne, passez la pièce-jointe au scanner, puisqu’il peut s’agir d’un virus qui se propage ou d’une personne tiers usurpant son identité.• Se renseigner sur la présence de spywares dans les logiciels que vous installés.• Utiliser un naviguateur moins ciblé par des attaques et ayant moins de faille de sécurité, comme Mozilla Firefox.• Etre vigilant lorsque vous surfez sur internet, notamment vis à vis du contenu du siteHOAXUn hoax (canular) est un courrier électronique contenant une fausse information. Si certains sont inoffensifs, d’autres peuvent être dangereux. Voici les différents types de hoaxs qui existent :les faux virus (viroax)C’est la forme la plus dangereuse des hoaxes. En effet, le mail va tenter de vous convaincre de réaliser une action apparement bonne pour votre pc, mais qui ne l’est pas du tout. Surtout, ne faites pas ce que dit le mail, ignorez-le !voir un exemple leschaînes de solidaritéC’est le grand classique et certainement le plus envoyé par mail. Le mail vous demande defaire suivre le mail à tous vos contacts pour avoir plus de chance dans la vie par exemple.voir un exemple les fausses informationsCe genre de hoaxes vous donne une information censée et importante dans le but que lavictime envoie ce message à toutes ses connaissances.voir un exempleles arnaquesCe genre de hoaxes essaie de vous convaincre que vous pouvez vous enrichir facilement enfaisant ce qu’ils disent. voir un exempleSouvent les hoaxes incitent les utilisateurs à faire suivre le courrier à tous leurs contacts.Qu’est-ce que je risque ?Un hoax, par définition, n’est pas dangereux pour un ordinateur, à condition tout de même, de ne pas faire bêtement ce que dit le mail, notamment pour les viroax. Mais l’hoax encombre inutilement les réseaux, encombre les boîtes aux lettres, etc. Aussi ne faut-il pas faire suivrece genre de courrier.Le site hoaxbuster recense tous les hoaxes identifiés sur le net. Allez-y faire un tour si vousavez un doute quant à la crédibilité d’un courrier électronique.SPAMLe spamming (ou encore pourriel, courrier rebut) consiste à envoyer des messages appelés« spam » à une ou plusieurs personnes. Ces spams sont souvent d’ordre publicitaire. Tousles points suivant sont considérés comme du spamming.• Envoyer un même mail, une ou plusieurs fois à une ou plusieurs personnes en faisantde la publicité.• Poster un ou plusieurs messages dans un forum qui n’a rien à voir avec le thème.• Faire apparaître un message publicitaire lorsque l’on navigue sur un site. Qu’est-ce que je risque ?Bien sûr, vous ne risquez rien. Ce n’est pas du tout dangereux. Mais ce n’est vraiment pas agréable de recevoir du spam dans sa boîte aux lettres. Cela fait perdre du temps, sans compter les risques d’effacer un mauvais message en se trompant de message.Comment s’en protéger ?• Activer les options de filtrage de votre messagerie.• Si cela ne suffit pas, installer un logiciel anti-spam.Vous pouvez aussi changer de logiciel de messagerie et adopter Mozilla Thunderbird qui élimine les spams intelligement.MAILBOMBINGLe mailbombing s’apparente un peu au spamming puisqu’il a pour but de provoquer une gêne pour la victime. Mais cette fois, le but n’est pas le même, il s’agit de saturer la boîte aux lettresélectronique de la victime en envoyant plusieurs mails, des milliers par exemple.Qu’est-ce que je risque ?En étant victime de mailbombing, vous risquez de perdre votre boîte. Pire encore serait que les mails soient infectés par des virus. Ainsi, la victime ne peut plus se servir de sa boîte.Comment s’en protéger ?• Le mieux est d’avoir une deuxième adresse mail. Ainsi vous ne communiquez votre adresse personnelle qu’aux personnes de confiance. Ainsi, vous limitez les risques demailbombing sur l’adresse à laquelle vous tenez.• Il existe des utilitaires permettant d’éviter les mailbombers comme eremove.PHISHINGLe phishing, très à la mode aujourd’hui, consiste à soutirer des informations confidentielles(comme les codes bancaires, …) auprès des clients par usurpation d’identité. Qu’est-ce que je risque ?Lorsque par exemple, vous allez sur un site de e-commerce pour achater en ligne, le site vavous demander votre nom, le numéro de la carte bleue, la date d’expiration. Ainsi, si un scammer (arnaqueur) reçoit ces informations, il pourra payer en ligne en utilisant votre compte.Comment font-ils ?• Ils peuvent créer un site de e-commerce avec la réplique conforme d’un vrai. Il suffit alors aux scamers de vous faire arriver sur leur site. Ainsi, vous pensez être sur le bon site, et vous donnez vos informations bancaires. Ils auront ainsi votre nom, votre code et la dated’expiration.• Les scamers peuvent aussi vous envoyer un mail en vous demandant des informations confidentielles. Bien sûr, ils usurpent l’identité de votre banque, pour vous mettre dans la confiance.Comment s’en protéger ?• Ecrivez-vous même l’URL daccès au service lorsqu’il s’agit de faire des achats en ligne et non en cliquant sur un lien. En effet, rien ne vous garantit que l’URL que vous voyez soit celle du site sur lequel vous êtes réellement.• Méfiez-vous des courriels provenant de votre banque. En effet, il est rare qu’ils vousdemandent des informations confidentielles. En cas de doute, il est mieux de leur téléphoner.Techniques d’attaques• Denial of Service• Sniffing• Scanning• Social Engineering• Cracking• Spoofing• Man in the middle• Hijacking• Buffer OverFlowDENIAL OF SERVICEUne attaque par déni de service (en anglais Denial of Service, DoS) est une attaque qui a pour but de mettre hors jeu le système qui est visée. Ainsi, la victime se voit dans l’incapacité d’accéder à son réseau. Ce type d’attaque peut aussi bien être utilisé contre un serveur d’entreprise qu’un particulier relié à internet. Tous les systèmes d’exploitations sontégalement touchés : Windows, Linux, Unix, …Comment s’en protéger ?Etre à jour dans les correctifs logiciels (patch). https://windowsupdate.microsoft.comhttp://www.securityfocus.comSNIFFINGLe reniflage (en anglais Sniffing) est une technique qui consiste à analyser le trafic réseau. Lorsque deux ordinateurs communiquent entre eux, il y a un échange d’informations (trafic). Mais, il est toujours possible qu’une personne malveillante récupère ce trafic. Elle peut alorsl’analyser et y trouver des informations sensibles.Exemple : Soit une entreprise possédant 100 ordinateurs reliés entre eux grâce à un hub. Maintenant, si un pirate écoute le trafic réseau entre 8h et 10h (heure de connexion du personnel), il pourra lire tous les noms d’utilisateurs ainsi que leur mot de passe. Comment s’en protéger ?• Utiliser de préférence un switch (commutateur) plutôt qu’un hub.• Utiliser des protocoles chiffrés pour les informations sensibles comme les mots de passe.• Utiliser un détecteur de sniffer.SCANNINGLe scanning consiste à balayer tous les ports sur une machine en utilisant un outil appelé scanner. Le scanner envoie des paquets sur plusieurs ports de la machine. En fonction de leurs réactions, le scanner va en déduire si les ports sont ouverts. C’est un outil très utile pour les hackers. Cela leur permet de connaitre les points faibles d’une machine et ainsi de savoirpar où ils peuvent attaquer. D’autant plus que les scanners ont évolué. Aujourd’hui, ils peuventdéterminer le système d’exploitation et les applications associées aux ports.Comment s’en protéger ?• Scanner sa machine pour connaitre les ports ouverts• Surveiller les ports ouverts avec un firewall et fermer ceux qui ne sont pas utiles• Utiliser un IDS (détecteur d’intrusion) ou mieux un IPS (prévention d’intrusion)SOCIAL ENGINEERINGLe social engineering est l’art de manipuler les personnes. Il s’agit ainsi d’une technique permettant d’obtenir des informations d’une personne, qu’elle ne devrait pas donner en temps normal, en lui donnant des bonnes raisons de le faire. Cette technique peut se faire par téléphone, par courrier électronique, par lettre écrite, … Cette attaque est souvent sous estimée puisqu’elle n’est pas d’ordre informatique. Pourtant, une attaque par socialengineering bien menée peut se réveler très efficace. Elle n’est donc pas à prendre à la légère.Comment s’en protéger ?• Avoir du bon sens pour flairer l’arnaque• Se méfier des personnes que l’on ne connaît pasCRACKINGLe crackage des mots de passe consiste à deviner le mot de passe de la victime. Malheureusement, beaucoup d’utilisateurs mal avertis de cette technique mettent des mots de passe évidents comme leur propre prénom ou ceux de leurs enfants. Ainsi, si un pirate, qui a espionné sa victime auparavant, teste quelques mots de passe comme le prénom des enfants de la victime, il aura accés a l’ordinateur. D’où l’utilité de mettre des bons mots de passe. Maismême les mots de passe les plus robustes peuvent etre trouvés à l’aide de logiciels spécifiques appelés craqueur (John the ripper, L0phtCrack pour Windows). Comment ça marche ?Les craqueurs de mots de passe s’appliquent souvent à un fichier contenant le nom des utilisateurs ainsi que leur mot de passe encrypté. Ces fichiers sont nécessaires pour permettre l’authentification sur un système. L’encryptage des mots de passe s’effectue à l’aide d’une fonction de hachage. Les fonctions de hachage sont des fonctions univoques, c’est-à-dire qu’il est impossible de les inverser pour décrypter un mot de passe encrypté. Uneautre particularité importante des fonctions de hachage est que deux mots de passe différents auront forcément un hachage différent. Ainsi, il est impossible de décrypter un mot de passe encrypté. En revanche, il est possible d’encrypter un mot au moyen de cette fonction et de comparer le résultat avec le mot de passe encrypté. S’il y a correspondance, on a deviné lemot de passe. Mais, il est fastidieux d’encrypter des milliers de mots pour trouver les mots depasse. C’est là qu’intervient l’utilité d’un craqueur.Ces logiciels peuvent tester des mots de passe selon trois méthodes :attaque par dictionnaire : le logiciel teste tous les mots de passe stockés dans un fichier texte.Cette méthode est redoutable car en plus de sa rapidité, elle aboutit généralement puisque lesmots de passe des utilisateurs lambda sont souvent des mots existants.attaque hybride :le logiciel teste tous les mots de passe stockés dans un fichier texte et y ajoute des combinaisons. Par exemple, thomas01. Cette méthode est redoutable également puisque beaucoup de personnes mettent des chiffres apres leur mot de passe pensant bien faire. attaque brute-force : le logiciel teste toutes les combinaisons possibles. Ainsi ce genre d’attaque aboutit à chaque fois. Heureusement, tester toutes les combinaisons prendsbeaucoup de temps. D’où l’utilité de changer de mots de passe régulièrement.Le fichier contenant les mots de passes encriptés est donc à protéger. Chaque systèmed’exploitation à sa méthode. Expliquons les méthodes employées par Windows NT, et Unix.Windows NTCe fichier s’appelle la base SAM. Ce fichier est vérouillé par le noyau dès son démarrage. Ainsi, un utilisateur ne peut pas copier le fichier, ni le lire. Mais, il existe des méthodes permettant de se le procurer.UnixCe fichier est en fait séparer en deux fichiers shadow et passwd. Le fichier passwd contient les noms d’utilisateurs accessible par tout le monde, et le fichier shadow contenant les mots de passe, accessible uniquement par root.Comment s’en protéger• Choisir un mot de passe robuste et ne pas l’écrire sur un support(papiers, …) puisque rien n’empêche un pirate de fouiller les poubelles par exemple.Un mot de passe robuste doit satisfaire à plusieurs critères :1. plus de 8 caractères2. utiliser la casse (majuscule/minuscule)3. utiliser des chiffresUne bonne méthode consiste à apprendre par coeur une phrase et à prendre les premiereslettres du mot.• Changer régulièrement de mot de passe pour éviter que ce dernier ne soit trouvé par un teloutil.SPOOFINGL’usurpation (en anglais spoofing) consiste à se faire passer pour quelqu’un d’autre. Il y a beaucoup d’utilité pour un pirate d’usurper une identité. Voici quelques exemplesd’usurpations, mais ce ne sont pas les seules :Usurpation de l’adresse IPUne adresse IP correspond en gros à l’adresse postale d’un ordinateur. Ainsi, en changeant d’adresse IP, on peut se faire passer pour un autre ordinateur et obtenir des informationssensibles qui ne nous sont pas destinées.Usurpation de l’adresse e-mailLors de la réception d’un courrier électronique, nous pouvons lire l’adresse de l’expéditeur. Mais, il est possible de changer l’adresse. Ainsi, un pirate peut vous envoyer un mail enusurpant l’adresse de votre supérieur.Usurpation WEBCeci est le principe du phishingGénéralement, quand on parle d’usurpation ou de spoofing, on parle de l’usurpation del’adresse IP.Comment s’en protéger ?On ne peut pas empêcher quelqu’un d’usurper une identité. En revanche, il faut à tout prix êtresûr de l’identité de la machine avec laquelle on dialogue.Utiliser des protocoles sécurisés comme ssh qui empêche le spoofing.MAN IN THE MIDDLEMan in the Middle signifie l’homme du milieu. Cette attaque a pour but de s’insérer entre deuxordinateurs qui communiquent. Soient deux ordinateurs A et B voulant dialoguer. Maintenant,si un pirate décide de se faire passer pour l’ordinateur A auprès de B et de B auprès de A,ainsi, toute communication vers A ou B passera par le pirate, l’homme du milieu.Quels sont les risques ?Le pirate peut donc intercepter tout le trafic, à savoir les informations sensibles comme les mots de passe. Mais, pire encore, le pirate peut modifier le trafic avant de le renvoyer versl’autre ordinateur.Ainsi, si vous voulez commander un livre sur internet à 10 euros, et que le pirate change votrecommande, vous pouvez très vite vous retrouver à dépenser des milliers d’euros.Comment s’en protéger ?• Sur Internet, n’achetez que sur des sites sécurisés.Les sites sécurisés commencent par « https » au lieu de « http ». Il y a également un cadenas en bas de votre navigateur.• Sur un réseau, utilisez des protocoles sécurisés.HIJACKINGUn pirate peut craquer (cible) le mot de passe de la session. Mais si vous choisissez un mot de passe robuste, cela lui prendra beaucoup de temps. Alors pourquoi ne pas attendre que la victime se connecte sur la session et prendre sa place ? Ainsi, le pirate contourne leprocessus d’authentification. Et justement, il le fait, c’est le principe du détournement de session (en anglais hijacking). Ensuite, s’il veut pouvoir dialoguer avec le serveur, il doit mettre hors-jeu la victime. Pour cela, il peut lui lancer une attaque par déni de service (cible). Mais, il peut aussi se mettre en écoute et enregistrer tout le trafic en espérant recueillir desinformations sensibles comme des mots de passe.Quels sont les risques ?Si le pirate possède des informations sensibles comme un nom d’utilisateur et son mot de passe, il pourra alors revenir sur le système lorsqu’il le souhaitera a l’aide d’une backdoor. Pire encore, si la machine possède des liens d’approbation, l’attaquant en bénéficiera. Et il sera dur d’identifier que le système est compromis puisqu’il utilise le compte d’une personne autorisée.D’où l’importance de détecter cette attaque. Comment s’en protéger ?• S’assurer que la communication est sécuriséeBUFFER OVERFLOWUn débordement de tampon (en anglais Buffer OverFlow ou BoF) est une attaque tres utilisée des pirates. Cela consiste à utiliser un programme résidant sur votre machine en lui envoyantplus de données qu’il n’est censé en recevoir afin que ce dernier exécute un code arbitraire. Iln’est pas rare qu’un programme accepte des données en paramètre. Ainsi, si le programme nevérifie pas la longueur de la chaîne passée en paramètre, une personne malintentionnée peut compromettre la machine en entrant une donnée beaucoup trop grande.Comment ça marche ?Les données entrées par l’utilisateur sont stockées temporairement dans une zone de la mémoire appelée tampon (en anglais buffer). Prenons l’exemple d’un logiciel qui demande votre prénom. En admettant que le programme prévoit dix caractères pour ce dernier et que l’utilisateur en mette vingt. Il y aura débordement de tampons puisque les dix derniers caractères ne seront pas stockés dans la bonne variable mais dans le tampon pouvant provoquer un crash de la machine. Mais, un pirate exploite cette faille malignement et parvient à se procurer d’un accés à la machine avec des droits identiques à celle du logiciel. Pour comprendre comment exploiter cette faille, visiter l’article de référence en matière dedébordement de tampon :Smashing the stack for fun and profit par Alephone, Phrack 49.Comment s’en protéger ?Malheureusement, vous ne pouvez pas y faire grand chose. En effet, le principe de cette attaque est différent des autres, dans le sens où ce n’est pas la protection de l’ordinateur qui vous protégera d’un débordement de tampon puisqu’elle utilise le manque de rigueur de lapart des programmeurs de logiciels en raison du manque de temps.• Tenez vous au courant concernant les failles des logiciels et télécharger les patchsappropriéshttp://www.securityfocus.comLes Protections• FireWall• Antivirus• Antispyware• Détecteur d’intrusions• CryptageFIREWALLUn pare-feu (en anglais FireWall) est un système permettant de séparer un réseau interne d’un réseau externe (souvent l’internet). Il permet de filtrer les communications dans les deux sens et ainsi protéger le réseau interne des éventuelles menaces provenant de l’extérieur. En effet, pour pénétrer un réseau, un pirate dispose de plusieurs techniques. Mais, la plupart consiste à envoyer des paquets sur le réseau et exploiter les failles. Le rôle du firewall est de ne laisserpasser que les paquets non suspects; les paquets suspects étant éliminés.Les pare-feux logiciels permettent aussi d’analyser le comportement des logiciels sur votre ordinateur, et permettent d’empêcher tel programme d’accéder à internet, ou au contraire d’autoriser tel autre.Quel choix adopter ?Il existe deux solutions de firewall :• FireWall « hard »• FireWall « soft (logiciel) »Ces solutions dépendent de ce que vous voulez protéger, pour un accès personnel à internet la meilleure solution est de choisir un firewall soft. Vous pouvez opter, par exemple, pourZoneAlarme, ou pour .ANTIVIRUSUn antivirus est un logiciel qui a pour but de détecter et de supprimer les virus d’un systèmeinformatique.Comment fonctionne-t-il?Afin de mener à bien sa mission, l’antivirus utilise différentes méthodes :Recherche par la signature :Cette méthode consiste à analyser le disque dur à la recherche de la signature du virus. La signature est un morceau de code du virus qui permet de l’identifier. L’antivirus compare les données du disque dur avec sa base de données. Celle-ci doit donc être régulièrement mise àjour pour pouvoir détecter les virus les plus récents. Cette méthode est la plus utilisée.L’analyse heuristique :Cette méthode consiste à simuler le comportement de logiciels présents sur votre ordinateur.Cela permet à l’antivirus de repérer des logiciels susceptibles d’avoir un comportement agressif. Cette méthode ne nécessite pas de mise à jour (à moins qu’une version plus récentedu logiciel soit disponible). Cette méthode peut provoquer des fausses alertes.L’analyse du comportement :Cette méthode consiste à surveiller en permanence le comportement des logiciels actifs, ainsi que les fichiers crées ou modifiés. Cette méthode ne doit jamais être utilisée seule car l’antivirus intervient après que le mal soit fait. Elle est cependant recommandée pour tous lesordinateurs connectés à internet.Un antivirus bien configuré utilise une combinaison de ces méthodes pour protéger unordinateur des virus.Lorsque l’antivirus a détecté un virus, il offre trois possibilités à l’utilisateur:1. Réparer le fichier :Dans certain cas, l’antivirus peut réparer un fichier infecté. Cela va dépendre du fichier infecté,du comportement du virus ou encore de la façon dont le virus se duplique. Généralementl’antivirus va tenter de réparer le fichier avant de faire quoi que ce soit d’autre.2. Supprimer le fichier :Si l’antivirus n’est pas capable de réparer le fichier, il peut le supprimer. Choisissez cette option uniquement si le fichier n’est pas important, sinon (ou si vous ne savez pas) préférez lamise en quarantaine.3. La mise en quarantaine :L’antivirus place le fichier dans un dossier protégé et isolé par l’antivirus. Cela permet à l’antivirus d’attendre qu’une méthode soit diffusée pour réparer des fichiers infectés par tel ou tel virus. En général l’antivirus tente de réparer les fichiers mis en quarantaine après chaquemise à jour.ANTI-SPYWAREUn Anti-spyware est un logiciel qui permet de rechercher et de supprimer les spywares présents sur un ordinateur.Comment fonctionne t-il ?Un spyware étant toujours actif, l’anti-spyware va comparer l’ensemble des processus actifs du système avec une base de données qu’il faut donc mettre à jour régulièrement.Quelques anti-spyware :Il est conseillé d’utiliser plusieurs logiciels anti-spyware, un seul ne détectant pas la totalitédes spywares.Voici quelques anti-spywares gratuits :• spybot search & destroy• Ad-aware• Spyware Blaster• HijackthisLe cas de Hijackthis :Hijackthis est un anti-spyware et un anti-hijacker gratuit, reconnu et très efficace, cependant son utilisation comporte un risque puisque hijackthis scanne le système et renvoie les résultats sous forme d’un log, ce log comporte un certain nombre d’informations vitales de votre système, et hijackthis vous permet de les supprimer. Une mauvaise utilisation peut doncendommager irrémédiablement votre système !Il est donc conseillé d’utiliser hijackthis en dernier recours, si toutes les autres méthodes de protections n’ont rien donné. Il faut alors scanner votre système grâce à hijackthis, puis analyser les résultats pour enfin supprimer les éléments néfastes. Voir ici pour un tutorial sur l’analyse du log d’hijackthis, voici également un exemple de log. Certains sites, comme celui-ci proposent également un analyseur du log en ligne. En cas de doute, postez votre log sur lesforums de discussions sur ce sujet, il y aura toujours quelqu’un pour vous aider.DETECTEUR D’INTRUSIONSUn détecteur d’intrusions (en anglais Instrusive Detection System) est un système capable de détecter une tentative d’intrusion sur votre système. Il stoppe la majeure partie des attaques recensées. Aussi est-il important de le mettre à jour régulièrement. L’IDS écoute le trafic réseau et analyse les paquets pour prévenir des actions suspectes et les arrêter. Les IDSactuels reconnaissent les signaux d’intrusions suivants :• Déni de Services• Backdoor• chevaux de troie• attaque par débordement de tampons…L’IDS est un élément essentiel pour un réseau sécurisé. Il existe encore beaucoup de choix.Vous pouvez, par exemple, opter pour : RealSecure Sensor de Internet Security Systems.CRYPTAGEInternet est un réseau non sécurisé. Et il est tellement grand, qu’il est inimaginable de le sécuriser. Ainsi, dès que l’on souhaite envoyer des informations confidentielles à une autrepersonne, il faut crypter le message. Il existe deux grands types de chiffrement :le chiffrement à clé privée (dit aussi symétrique)Le chiffrement à clé privée consiste à utiliser la même clé pour crypter et décrypter le message.Les personnes voulant communiquer et eux-seules doivent posséder la clé pour pouvoir crypter et décrypter les messages. Dès lors se pose le problème de l’échange de la clé.Exemple : DESle chiffrement à clé publique (dit aussi asymétrique)Le chiffrement à clé publique consiste en l’utilisation d’une clé différente pour crypter ou décrypter. Le propriétaire de la clé privée donne la clé publique à tout le monde et garde l’autre clé. Ainsi, on peut lui envoyer des messages chiffrés avec la clé publique mais personne peut le décrypter à part le propriétaire à l’aide de sa clé privée. Avec ce chiffrement, le problème de l’échange de clé ne se pose plus. Mais, la communication ne peut se faire que dans un sens, il faudrait alors deux autres clés pour dialoguer dans l’autre sens.Exemple : RSAPour pouvoir dialoguer sur un réseau, on utilise des protocoles de communication.Qu’est-ce qu’un protocole de communication ?Un protocole est une méthode standardisée permettant la communication entre deux processus. Ainsi, si les processus se trouvent sur deux ordinateurs différents et que la méthode n’est pas sécurisée, une personne malintentionnée pourra tout voir en clair. Il est donc important de choisir des protocoles sécurisés.Quels protocoles choisir ?Tout dépend de la communication que vous voulez entreprendre. Si cette dernière n’est absolument pas confidentielle, autant choisir un protocole non sécurisé, d’autant plus que larapidité ne sera pas la même.• telnet• rlogin• rcp• rshLors d’envois d’informations confidentielles, il est impératif de choisir un protocole sécurisé.Le nom des protocoles sécurisés commencent souvent par un « s » comme Secure (sécurisé).• stelnet• slogin• scp• sshAu protocole d’origine, on a rajouté la couche SSL (Secure Sockets Layers). Cette couche garantit l’identité de la personne avec qui on parle, et garantit également que les informations seront cryptées entre l’expéditeur et le destinataire. Ainsi, un pirate ne pourra plus avoirrecours au sniffing et au spoofingPour plus de renseignementsLes logiciels :• Nessus (utilitaire de sécurité)• Ethereal (sniffer, analyseur de protocole)• CainDans la section « Les techniques », vous avez vu les méthodes de piratage informatique, comme le cracking ou le spoofing. Ces méthodes sont réalisées grâce à des logiciels spécialisés. Vous verrez dans cette page quelques un de ces logiciels, ainsi que d’autresutilitaires utiles.Il n’est pas exposé dans cette page les logiciels de protections, que vous trouverez dans lasection protections.Attention : L’utilisation des logiciels présentés ici peut être considérée comme du piratage s’ilssont utilisés dans des réseaux autre que le vôtre, et donc passible de sanctions judiciaires. Vous pouvez cependant les essayer au sein de votre réseau local.NESSUSNessus est un outil de sécurité permettant de scanner une machine. Il permet aussi de testerdifférentes attaques pour savoir cette machine est vulnérable.Nessus se compose d’une partie serveur (qui contient une base de données regroupant différents types de vulnérabilités) et une partie client. L’utilisateur se connecte sur le serveur grâce au client et après authentification, il ordonne au serveur de procéder aux tests. Le clientreçoit ensuite les résultats.Nessus est disponible sous Linux, Windows, Mac… et il est gratuit. Comment l’obtenir ?Consultez le site web de nessus. Vous y trouverez également la documentation et lesinstructions d’installations.ETHEREALEthereal est un sniffer et un analyseur de protocoles, il analyse tous les packets qui circulent sur le réseau et leur contenu.Ethereal est un logiciel très utilisé pour l’enseignement des protocoles réseaux, ou pourdétecter des comportements anormaux du réseau (intrusions extérieures…). Ethereal estdisponible sous Linux et Windows et il est gratuit.Comment l’obtenir ?Il suffit d’aller sur le site officiel (en anglais).Il existe également un grand nombre de tutoriaux et de sites consacrés à Ethereal sur le net(voyez ça avec votre moteur de recherche préféré).CAINCain est un logiciel « tout en un »: il permet le sniffing, le scanning, le cracking, le spoofing… C’est donc un logiciel qui permet de voir les mots de passe qui passent sur le réseau local. Pour cela Cain sniffe le réseau (voir sniffing), ce qui vous permet ensuite de faire du spoofing et d’analyser le flux entre deux ordinateurs en utilisant la technique du « Man in the Middle », cela fait Cain trie les informations qui passe et peut détecter l’envoi d’un mot de passe parexemple.Si le mot de passe détecté est crypté, Cain intégre un cracker (voir cracking) qui va tenter de ledécripter.Cain est un logiciel très intéressant à utiliser puisqu’il permet de se familiariser avec lespossibilités des réseaux informatiques.Cain est disponible uniquement sur Windows.Comment l’obtenir ?Il suffit d’aller sur le site officiel (en anglais). Voilà c’est tout pour cet article. By Waota kone onlyone edge
The Open Worldwide Application Security Project (OWASP) is a community-led organization and has been around for over 20 years and is largely known for its Top 10 web application security risks (check out our course on it). As the use of generative AI and large language models (LLMs) has exploded recently, so too has the risk to privacy and security by these technologies. OWASP, leading the charge for security, has come out with its Top 10 for LLMs and Generative AI Apps this year. In this blog post we’ll explore the Top 10 risks and explore examples of each as well as how to prevent these risks.
LLM01: Prompt Injection
Those familiar with the OWASP Top 10 for web applications have seen the injection category before at the top of the list for many years. This is no exception with LLMs and ranks as number one. Prompt Injection can be a critical vulnerability in LLMs where an attacker manipulates the model through crafted inputs, leading it to execute unintended actions. This can result in unauthorized access, data exfiltration, or social engineering. There are two types: Direct Prompt Injection, which involves "jailbreaking" the system by altering or revealing underlying system prompts, giving an attacker access to backend systems or sensitive data, and Indirect Prompt Injection, where external inputs (like files or web content) are used to manipulate the LLM's behavior.
As an example, an attacker might upload a resume containing an indirect prompt injection, instructing an LLM-based hiring tool to favorably evaluate the resume. When an internal user runs the document through the LLM for summarization, the embedded prompt makes the LLM respond positively about the candidate’s suitability, regardless of the actual content.
How to prevent prompt injection:
- Limit LLM Access: Apply the principle of least privilege by restricting the LLM's access to sensitive backend systems and enforcing API token controls for extended functionalities like plugins.
- Human Approval for Critical Actions: For high-risk operations, require human validation before executing, ensuring that the LLM's suggestions are not followed blindly.
- Separate External and User Content: Use frameworks like ChatML for OpenAI API calls to clearly differentiate between user prompts and untrusted external content, reducing the chance of unintentional action from mixed inputs.
- Monitor and Flag Untrusted Outputs: Regularly review LLM outputs and mark suspicious content, helping users to recognize potentially unreliable information.
LLM02: Insecure Output Handling
Insecure Output Handling occurs when the outputs generated by a LLM are not properly validated or sanitized before being used by other components in a system. Since LLMs can generate various types of content based on input prompts, failing to handle these outputs securely can introduce risks like cross-site scripting (XSS), server-side request forgery (SSRF), or even remote code execution (RCE). Unlike Overreliance (LLM09), which focuses on the accuracy of LLM outputs, Insecure Output Handling specifically addresses vulnerabilities in how these outputs are processed downstream.
As an example, there could be a web application that uses an LLM to summarize user-provided content and renders it back in a webpage. An attacker submits a prompt containing malicious JavaScript code. If the LLM’s output is displayed on the webpage without proper sanitization, the JavaScript will execute in the user’s browser, leading to XSS. Alternatively, if the LLM’s output is sent to a backend database or shell command, it could allow SQL injection or remote code execution if not properly validated.
How to prevent Insecure Output Handling:
- Zero-Trust Approach: Treat the LLM as an untrusted source, applying strict allow list validation and sanitization to all outputs it generates, especially before passing them to downstream systems or functions.
- Output Encoding: Encode LLM outputs before displaying them to end users, particularly when dealing with web content where XSS risks are prevalent.
- Adhere to Security Standards: Follow the OWASP Application Security Verification Standard (ASVS) guidelines, which provide strategies for input validation and sanitization to protect against code injection risks.
LLM03: Training Data Poisoning
Training Data Poisoning refers to the manipulation of the data used to train LLMs, introducing biases, backdoors, or vulnerabilities. This tampered data can degrade the model's effectiveness, introduce harmful biases, or create security flaws that malicious actors can exploit. Poisoned data could lead to inaccurate or inappropriate outputs, compromising user trust, harming brand reputation, and increasing security risks like downstream exploitation.
As an example, there could be a scenario where an LLM is trained on a dataset that has been tampered with by a malicious actor. The poisoned dataset includes subtly manipulated content, such as biased news articles or fabricated facts. When the model is deployed, it may output biased information or incorrect details based on the poisoned data. This not only degrades the model’s performance but can also mislead users, potentially harming the model’s credibility and the organization’s reputation.
How to prevent Training Data Poisoning:
- Data Validation and Vetting: Verify the sources of training data, especially when sourcing from third-party datasets. Conduct thorough checks on data integrity, and where possible, use trusted data sources.
- Machine Learning Bill of Materials (ML-BOM): Maintain an ML-BOM to track the provenance of training data and ensure that each source is legitimate and suitable for the model’s purpose.
- Sandboxing and Network Controls: Restrict access to external data sources and use network controls to prevent unintended data scraping during training. This helps ensure that only vetted data is used for training.
- Adversarial Robustness Techniques: Implement strategies like federated learning and statistical outlier detection to reduce the impact of poisoned data. Periodic testing and monitoring can identify unusual model behaviors that may indicate a poisoning attempt.
- Human Review and Auditing: Regularly audit model outputs and use a human-in-the-loop approach to validate outputs, especially for sensitive applications. This added layer of scrutiny can catch potential issues early.
LLM04: Model Denial of Service
Model Denial of Service (DoS) is a vulnerability in which an attacker deliberately consumes an excessive amount of computational resources by interacting with a LLM. This can result in degraded service quality, increased costs, or even system crashes. One emerging concern is manipulating the context window of the LLM, which refers to the maximum amount of text the model can process at once. This makes it possible to overwhelm the LLM by exceeding or exploiting this limit, leading to resource exhaustion.
As an example, an attacker may continuously flood the LLM with sequential inputs that each reach the upper limit of the model’s context window. This high-volume, resource-intensive traffic overloads the system, resulting in slower response times and even denial of service. As another example, if an LLM-based chatbot is inundated with a flood of recursive or exceptionally long prompts, it can strain computational resources, causing system crashes or significant delays for other users.
How to prevent Model Denial of Service:
- Rate Limiting: Implement rate limits to restrict the number of requests from a single user or IP address within a specific timeframe. This reduces the chance of overwhelming the system with excessive traffic.
- Resource Allocation Caps: Set caps on resource usage per request to ensure that complex or high-resource requests do not consume excessive CPU or memory. This helps prevent resource exhaustion.
- Input Size Restrictions: Limit input size according to the LLM's context window capacity to prevent excessive context expansion. For example, inputs exceeding a predefined character limit can be truncated or rejected.
- Monitoring and Alerts: Continuously monitor resource utilization and establish alerts for unusual spikes, which may indicate a DoS attempt. This allows for proactive threat detection and response.
- Developer Awareness and Training: Educate developers about DoS vulnerabilities in LLMs and establish guidelines for secure model deployment. Understanding these risks enables teams to implement preventative measures more effectively.
LLM05: Supply Chain Vulnerabilities
Supply Chain attacks are incredibly common and this is no different with LLMs, which, in this case refers to risks associated with the third-party components, training data, pre-trained models, and deployment platforms used within LLMs. These vulnerabilities can arise from outdated libraries, tampered models, and even compromised data sources, impacting the security and reliability of the entire application. Unlike traditional software supply chain risks, LLM supply chain vulnerabilities extend to the models and datasets themselves, which may be manipulated to include biases, backdoors, or malware that compromises system integrity.
As an example, an organization uses a third-party pre-trained model to conduct economic analysis. If this model is poisoned with incorrect or biased data, it could generate inaccurate results that mislead decision-making. Additionally, if the organization uses an outdated plugin or compromised library, an attacker could exploit this vulnerability to gain unauthorized access or tamper with sensitive information. Such vulnerabilities can result in significant security breaches, financial loss, or reputational damage.
How to prevent Supply Chain Vulnerabilities:
- Vet Third-Party Components: Carefully review the terms, privacy policies, and security measures of all third-party model providers, data sources, and plugins. Use only trusted suppliers and ensure they have robust security protocols in place.
- Maintain a Software Bill of Materials (SBOM): An SBOM provides a complete inventory of all components, allowing for quick detection of vulnerabilities and unauthorized changes. Ensure that all components are up-to-date and apply patches as needed.
- Use Model and Code Signing: For models and external code, employ digital signatures to verify their integrity and authenticity before use. This helps ensure that no tampering has occurred.
- Anomaly Detection and Robustness Testing: Conduct adversarial robustness tests and anomaly detection on models and data to catch signs of tampering or data poisoning. Integrating these checks into your MLOps pipeline can enhance overall security.
- Implement Monitoring and Patching Policies: Regularly monitor component usage, scan for vulnerabilities, and patch outdated components. For sensitive applications, continuously audit your suppliers’ security posture and update components as new threats emerge.
LLM06: Sensitive Information Disclosure
Sensitive Information Disclosure in LLMs occurs when the model inadvertently reveals private, proprietary, or confidential information through its output. This can happen due to the model being trained on sensitive data or because it memorizes and later reproduces private information. Such disclosures can result in significant security breaches, including unauthorized access to personal data, intellectual property leaks, and violations of privacy laws.
As an example, there could be an LLM-based chatbot trained on a dataset containing personal information such as users’ full names, addresses, or proprietary business data. If the model memorizes this data, it could accidentally reveal this sensitive information to other users. For instance, a user might ask the chatbot for a recommendation, and the model could inadvertently respond with personal information it learned during training, violating privacy rules.
How to prevent Sensitive Information Disclosure:
- Data Sanitization: Before training, scrub datasets of personal or sensitive information. Use techniques like anonymization and redaction to ensure no sensitive data remains in the training data.
- Input and Output Filtering: Implement robust input validation and sanitization to prevent sensitive data from entering the model’s training data or being echoed back in outputs.
- Limit Training Data Exposure: Apply the principle of least privilege by restricting sensitive data from being part of the training dataset. Fine-tune the model with only the data necessary for its task, and ensure high-privilege data is not accessible to lower-privilege users.
- User Awareness: Make users aware of how their data is processed by providing clear Terms of Use and offering opt-out options for having their data used in model training.
- Access Controls: Apply strict access control to external data sources used by the LLM, ensuring that sensitive information is handled securely throughout the system
LLM07: Insecure Plugin Design
Insecure Plugin Design vulnerabilities arise when LLM plugins, which extend the model’s capabilities, are not adequately secured. These plugins often allow free-text inputs and may lack proper input validation and access controls. When enabled, plugins can execute various tasks based on the LLM’s outputs without further checks, which can expose the system to risks like data exfiltration, remote code execution, and privilege escalation. This vulnerability is particularly dangerous because plugins can operate with elevated permissions while assuming that user inputs are trustworthy.
As an example, there could be a weather plugin that allows users to input a base URL and query. An attacker could craft a malicious input that directs the LLM to a domain they control, allowing them to inject harmful content into the system. Similarly, a plugin that accepts SQL “WHERE” clauses without validation could enable an attacker to execute SQL injection attacks, gaining unauthorized access to data in a database.
How to prevent Insecure Plugin Design:
- Enforce Parameterized Input: Plugins should restrict inputs to specific parameters and avoid free-form text wherever possible. This can prevent injection attacks and other exploits.
- Input Validation and Sanitization: Plugins should include robust validation on all inputs. Using Static Application Security Testing (SAST) and Dynamic Application Security Testing (DAST) can help identify vulnerabilities during development.
- Access Control: Follow the principle of least privilege, limiting each plugin's permissions to only what is necessary. Implement OAuth2 or API keys to control access and ensure only authorized users or components can trigger sensitive actions.
- Manual Authorization for Sensitive Actions: For actions that could impact user security, such as transferring files or accessing private repositories, require explicit user confirmation.
- Adhere to OWASP API Security Guidelines: Since plugins often function as REST APIs, apply best practices from the OWASP API Security Top 10. This includes securing endpoints and applying rate limiting to mitigate potential abuse.
LLM08: Excessive Agency
Excessive Agency in LLM-based applications arises when models are granted too much autonomy or functionality, allowing them to perform actions beyond their intended scope. This vulnerability occurs when an LLM agent has access to functions that are unnecessary for its purpose or operates with excessive permissions, such as being able to modify or delete records instead of only reading them. Unlike Insecure Output Handling, which deals with the lack of validation on the model’s outputs, Excessive Agency pertains to the risks involved when an LLM takes actions without proper authorization, potentially leading to confidentiality, integrity, and availability issues.
As an example, there could be an LLM-based assistant that is given access to a user's email account to summarize incoming messages. If the plugin that is used to read emails also has permissions to send messages, a malicious prompt injection could trick the LLM into sending unauthorized emails (or spam) from the user's account.
How to prevent Excessive Agency:
- Restrict Plugin Functionality: Ensure plugins and tools only provide necessary functions. For example, if a plugin is used to read emails, it should not include capabilities to delete or send emails.
- Limit Permissions: Follow the principle of least privilege by restricting plugins’ access to external systems. For instance, a plugin for database access should be read-only if writing or modifying data is not required.
- Avoid Open-Ended Functions: Avoid functions like “run shell command” or “fetch URL” that provide broad system access. Instead, use plugins that perform specific, controlled tasks.
- User Authorization and Scope Tracking: Require plugins to execute actions within the context of a specific user's permissions. For example, using OAuth with limited scopes helps ensure actions align with the user’s access level.
- Human-in-the-Loop Control: Require user confirmation for high-impact actions. For instance, a plugin that posts to social media should require the user to review and approve the content before it is published.
- Authorization in Downstream Systems: Implement authorization checks in downstream systems that validate each request against security policies. This prevents the LLM from making unauthorized changes directly.
LLM09: Overreliance
Overreliance occurs when users or systems trust the outputs of a LLM without proper oversight or verification. While LLMs can generate creative and informative content, they are prone to “hallucinations” (producing false or misleading information) or providing authoritative-sounding but incorrect outputs. Overreliance on these models can result in security risks, misinformation, miscommunication, and even legal issues, especially if LLM-generated content is used without validation. This vulnerability becomes especially dangerous in cases where LLMs suggest insecure coding practices or flawed recommendations.
As an example, there could be a development team using an LLM to expedite the coding process. The LLM suggests an insecure code library, and the team, trusting the LLM, incorporates it into their software without review. This introduces a serious vulnerability. As another example, a news organization might use an LLM to generate articles, but if they don’t validate the information, it could lead to the spread of disinformation.
How to prevent Overreliance:
- Regular Monitoring and Review: Implement processes to review LLM outputs regularly. Use techniques like self-consistency checks or voting mechanisms to compare multiple model responses and filter out inconsistencies.
- Cross-Verification: Compare the LLM’s output with reliable, trusted sources to ensure the information’s accuracy. This step is crucial, especially in fields where factual accuracy is imperative.
- Fine-Tuning and Prompt Engineering: Fine-tune models for specific tasks or domains to reduce hallucinations. Techniques like parameter-efficient tuning (PET) and chain-of-thought prompting can help improve the quality of LLM outputs.
- Automated Validation: Use automated validation tools to cross-check generated outputs against known facts or data, adding an extra layer of security.
- Risk Communication: Clearly communicate the limitations of LLMs to users, highlighting the potential for errors. Transparent disclaimers can help manage user expectations and encourage cautious use of LLM outputs.
- Secure Coding Practices: For development environments, establish guidelines to prevent the integration of potentially insecure code. Avoid relying solely on LLM-generated code without thorough review.
LLM10: Model Theft
Model Theft refers to the unauthorized access, extraction, or replication of proprietary LLMs by malicious actors. These models, containing valuable intellectual property, are at risk of exfiltration, which can lead to significant economic and reputational loss, erosion of competitive advantage, and unauthorized access to sensitive information encoded within the model. Attackers may steal models directly from company infrastructure or replicate them by querying APIs to build shadow models that mimic the original. As LLMs become more prevalent, safeguarding their confidentiality and integrity is crucial.
As an example, an attacker could exploit a misconfiguration in a company’s network security settings, gaining access to their LLM model repository. Once inside, the attacker could exfiltrate the proprietary model and use it to build a competing service. Alternatively, an insider may leak model artifacts, allowing adversaries to launch gray box adversarial attacks or fine-tune their own models with stolen data.
How to prevent Model Theft:
- Access Controls and Authentication: Use Role-Based Access Control (RBAC) and enforce strong authentication mechanisms to limit unauthorized access to LLM repositories and training environments. Adhere to the principle of least privilege for all user accounts.
- Supplier and Dependency Management: Monitor and verify the security of suppliers and dependencies to reduce the risk of supply chain attacks, ensuring that third-party components are secure.
- Centralized Model Inventory: Maintain a central ML Model Registry with access controls, logging, and authentication for all production models. This can aid in governance, compliance, and prompt detection of unauthorized activities.
- Network Restrictions: Limit LLM access to internal services, APIs, and network resources. This reduces the attack surface for side-channel attacks or unauthorized model access.
- Continuous Monitoring and Logging: Regularly monitor access logs for unusual activity and promptly address any unauthorized access. Automated governance workflows can also help streamline access and deployment controls.
- Adversarial Robustness: Implement adversarial robustness training to help detect extraction queries and defend against side-channel attacks. Rate-limit API calls to further protect against data exfiltration.
- Watermarking Techniques: Embed unique watermarks within the model to track unauthorized copies or detect theft during the model’s lifecycle.
Wrapping it all up
As LLMs continue to grow in capability and integration across industries, their security risks must be managed with the same vigilance as any other critical system. From Prompt Injection to Model Theft, the vulnerabilities outlined in the OWASP Top 10 for LLMs highlight the unique challenges posed by these models, particularly when they are granted excessive agency or have access to sensitive data. Addressing these risks requires a multifaceted approach involving strict access controls, robust validation processes, continuous monitoring, and proactive governance.
For technical leadership, this means ensuring that development and operational teams implement best practices across the LLM lifecycle starting from securing training data to ensuring safe interaction between LLMs and external systems through plugins and APIs. Prioritizing security frameworks such as the OWASP ASVS, adopting MLOps best practices, and maintaining vigilance over supply chains and insider threats are key steps to safeguarding LLM deployments. Ultimately, strong leadership that emphasizes security-first practices will protect both intellectual property and organizational integrity, while fostering trust in the use of AI technologies.