Aujourd'hui, j'ai vécu une situation où une personne responsable de la sécurité d'une entreprise a demandé à une entreprise de pentesting de retirer une clause du contrat qui dit que:
"pendant le pentest, il existe la possibilité de supprimer ou de modifier involontairement des données sensibles dans l'environnement de production en raison de l'exécution de certains outils, exploits, techniques, etc."
Le client dit qu'il n'acceptera pas cette clause et qu'il pense qu'aucune entreprise n'accepterait cette clause. Il pense qu'au cours d'un pentest, des informations peuvent être consultées mais jamais supprimées ou modifiées.
Nous savons que l'exécution de certains outils comme les robots d'indexation Web ou les araignées peut supprimer des données si l'application Web est très mal programmée, donc la possibilité existe toujours si ces types d'outils vont être utilisés.
Je sais que ce sont les conditions du client, et doivent être acceptées, mais:
n pentester qualifié et professionnel peut-il toujours garantir qu'aucune donnée ne sera supprimée ou modifiée en production pendant un pentest?
n pentest peut-il vraiment être fait si l'équipe pentest a la limitation que les données ne peuvent pas être créées ou modifiées?
L'entreprise de pentestation doit-elle toujours inclure la clause de non-responsabilité au cas où?
Il n'y a aucun moyen qu'un pentester puisse garantir à 100% que les données ne seront pas modifiées ou supprimées, de la même manière qu'ils ne peuvent pas garantir que la disponibilité du système ne sera pas affectée (j'ai renversé les systèmes avec une analyse de port ou un caractère unique). comme vous le dites, un robot d'indexation Web peut supprimer des données d'un système s'il est mal configuré.
Je dirais que ce qui devrait être dit est quelque chose comme "tous les efforts seront faits pour s'assurer que les tests n'affectent pas négativement les systèmes examinés et aucune tentative délibérée ne sera faite pour modifier ou supprimer les données de production ou pour affecter négativement la disponibilité Cependant, avec tous les tests de sécurité, il y a un risque que les systèmes soient affectés et le client doit s'assurer que les sauvegardes de toutes les données et systèmes sont en place avant le début de l'examen "
Un pentester qui prétend qu'il ne modifiera jamais les données de production est soit un menteur crasseux , ou se croit beaucoup plus compétent qu'il ne l'est en réalité, ou a bien l'intention de ne rien faire du tout (c'est le seul moyen infaillible de ne jamais rien casser). En tout cas, tu ne veux pas travailler avec ce type.
Un client potentiel qui croit que les pentesters qualifiés n'endommageront jamais les systèmes testés et qui refuse de travailler avec des pentesters à moins qu'ils ne le promettent exactement, est un client qui 1. habite dans le pays des rêves de la fée Unicorn, et 2. est presque garanti de le faire affaires uniquement avec des menteurs sales. Il est dans une certaine désillusion à un moment donné, probablement d'une manière assez spectaculaire.
C'est un impératif moral et aussi autoprotection de base pour les pentesters d'inclure des clauses sur une éventuelle rupture dans leurs contrats. Le risque de dommages collatéraux est réel, même si le pentester est très bon dans ce qu'il fait (car les dommages ne proviennent pas de la qualité du pentester mais de à quel point le système testé a été conçu et mis en œuvre ). Un pentester pourrait être poursuivi pour sans avoir prévenu le client.
Un client qui refuse un contrat avec une telle clause a un autre nom: "trouble". Il est généralement préférable d'ignorer complètement ces clients.
Avertissement: je ne suis pas un pentester professionnel. Et je travaille dans un logiciel de sauvegarde.
Un pentester qualifié et professionnel peut-il toujours garantir qu'aucune donnée ne sera supprimée ou modifiée en production pendant un pentest?
Je dirais non, il n'y a aucune garantie absolue que quelque chose ne sera pas accidentellement supprimé lorsque vous essayez de casser des choses. Cependant, cela dit, un pentester devrait généralement essayer d'exploiter les systèmes d'une manière qui n'implique pas la suppression de données. Par exemple, alors que l'instruction SQL préférée de tous est:
select * from users where userid='dave'; DROP ALL TABLES;
Une approche plus responsable consisterait simplement à répertorier toutes les données:
select * from users where userid='2' OR 1=1;
En général, j'imagine que la plupart des testeurs ont développé une série d'exploits non destructifs comme celui-ci.
L'injection Javascript sous ses différentes formes peut utiliser un simple code de preuve de concept tel que alert("exploited you");
plutôt qu'un véritable code d'exploitation.
Un pentest peut-il vraiment être fait si l'équipe pentest a la limitation que les données ne peuvent pas être créées ou modifiées?
Je dirais non. Comment présenteriez-vous une preuve de concept de XSS stocké sans pouvoir stocker votre XSS dans la base de données? Cela va invariablement créer de nouvelles données.
Il existe de nombreux exemples où un exploit nécessite d'écrire des données, même temporairement.
La société de pentestation doit-elle toujours inclure la clause de non-responsabilité au cas où?
Encore une fois, j'étends ici mes connaissances personnelles, mais je vais dire oui.
Cela revient au point de l'embauche d'une entreprise de stylo test en premier lieu, cependant. Le point d'un stylo test est d'identifier les risques qui pourraient avoir besoin d'être évalués et corrigés avant que les méchants ne les trouvent.
J'espère également que tout bon pentester demanderait et que toute bonne entreprise aurait pensé à une reprise après sinistre à une certaine échelle. Vous devriez sûrement avoir une sauvegarde d'une certaine forme sur vos systèmes afin que vous puissiez restaurer au besoin. Vous en avez besoin non seulement au cas où le pentest vous détruirait des données, mais au cas où vous seriez vraiment vraiment violé par des méchants, auquel cas vous voudriez peut-être qu'une sauvegarde non contaminée soit restaurée.
Je fais régulièrement des tests de pénétration sur mes sites.
La première fois que j'en ai exécuté un, j'ai mis le site à l'arrêt et inondé leur serveur de messagerie de spam.
J'ai ensuite tweeké quelques formulaires, pour me débarrasser du spam et cela a permis d'identifier et de réparer tous les autres trous connus, sans interrompre le serveur.
J'ai été franchement étonné de la sournoiserie des exploiteurs, j'ai dû boucher des trous que je n'avais pas envisagés.
Mais le fait était qu'avant d'exécuter les tests, je pensais que mes sites étaient sécurisés. J'avais suivi les meilleures pratiques, dans la mesure où elles allaient, pour la conception de sites Web, mais il y avait toujours des problèmes.
Maintenant, avec le recul, j'apprécie que les tests puissent affecter mon site de production.
Je planifie donc à l'avance.
Je m'assure que tout est sauvegardé en premier.
Si le site est vraiment, vraiment critique, je vais créer un clone complet, puis tester ce clone en premier.
J'ai appris par expérience que si vous créez le clone, créez-le sur un autre serveur. Sinon, lorsque le clone s'arrête, le serveur affecte toujours votre environnement de production.
Mais je fais toujours mes tests. Comment pensez-vous que les pirates informatiques ont accès aux sites? Ils effectuent vraisemblablement eux-mêmes des tests comme ceux-ci, de manière non autorisée. Donc, jusqu'à ce que votre site soit protégé, il sera toujours vulnérable. Il est préférable de faire les tests en premier, avec les précautions (sauvegarde, etc.) en place, que d'avoir à ramasser les morceaux lorsque vous vous y attendez le moins.
Donc, oui, c'est acceptable, mais il est également prévisible et doit être géré en conséquence.
Cette clause de non-responsabilité n'est pas un cas de l'ACY, ce sont plutôt des informations vitales dont le client a besoin pour se préparer au pentest. Je ne suis pas un testeur de stylo, mais IMO cela ne devrait pas être enterré sur la dernière page en petits caractères, mais devrait être sur la page 1 du contrat, recto et verso et en gros caractères gras. L'entreprise cliente doit se préparer à ce qui ne va pas - des sauvegardes doivent être effectuées, des plans de récupération doivent être créés et mis en place, etc. Laisser le client croire qu'un test de plume est sans risque est irresponsable. Par définition, vous tentez de déclencher un comportement incorrect, sans aucun contrôle sur l'étendue ou la prolongation de ce comportement défectueux.
Les réponses aux 3 questions dans le corps de votre message sont: (1) non, vous ne pouvez donner aucune garantie sur le code des autres (2) une forme limitée de test de plume peut être effectuée sans modifier ou créer INTENTIONNELLEMENT des données (si vous exclure toute journalisation que l'application peut faire) mais les résultats ne seraient pas complets, et enfin (3) vous devriez TOUJOURS inclure cette clause de non-responsabilité - autant pour le bénéfice des clients que le vôtre.
Le testeur recherche essentiellement une faille à exploiter et ne peut en aucun cas garantir qu'il ne trouvera pas de faille endommageant. Considérez n avertissement de logiciel typique pour quelque chose qui n'est PAS destiné à rencontrer ou à créer des défauts, puis considérez que vous n'avez probablement pas écrit le code que vous testez ...
Vous ne pouvez probablement le garantir que sous certaines conditions. De toute évidence, Pentest est un compromis entre de nombreux facteurs, certains facteurs sont directement opposés à la disponibilité du système et l'un d'entre eux est la profondeur de votre analyse. Certaines personnes pourraient soutenir qu'un penteste sans exploitation n'est pas un penteste.
Dans le passé, j'ai dû tester certains systèmes SCADA qui sont assez célèbres pour leur fragilité et je peux vous assurer qu'il est possible de régler la plupart des outils pour être assez doux. Par exemple, la désactivation des empreintes digitales NMAP et l'augmentation du délai entre les paquets ont beaucoup aidé.
Cependant, pour répondre à votre question, personnellement, je JAMAIS accepterai de mettre une clause pour garantir cela à un de mes clients. Je vais lui donner ma parole, mais sur le plan commercial, vous ne pouvez pas être responsable si leur candidature se brise d'elle-même pendant votre pentest.
"Un pentester qualifié et professionnel peut-il toujours garantir qu'aucune donnée ne sera supprimée ou modifiée en production pendant un pentest?"
Non.
"Un pentest peut-il vraiment être fait si l'équipe pentest a la limitation que les données ne peuvent pas être créées ou modifiées?"
Ne pense pas ...
"L'entreprise pentestante devrait-elle toujours inclure la clause de non-responsabilité au cas où?"
Un accord interne va être très différent d'un accord avec des tiers. Je ne connais aucune entreprise de test de stylo qui n'a pas de limitations d'assurance responsabilité, entre autres protections ...