Je voudrais vous demander quel devrait être le résultat satisfaisant du travail de stylo-test?
Ma principale préoccupation est que le stylo-test est difficile et ne se traduira pas toujours par l'obtention de coques ou de racines distantes. Cependant, il est beaucoup plus facile de répertorier les vulnérabilités potentielles.
Par exemple, s'il y a PHP version 4 de 2007, je peux le répertorier comme vecteur potentiel mais je ne pourrai pas l'exploiter. Une exploitation réussie est-elle une exigence pour le travail de test au stylet? bon résultat du travail également si une exploitation réussie est incluse (mais représente moins de 1% de tous les problèmes possibles).
En tant que contractant de stylos testeurs plus que moi en tant que testeur de stylos, ce que je recherche, c'est que vous avez fait plus que d'exécuter Nessus/ZAP/Burp - je peux le faire moi-même (bien que je m'attende à ce que vous le fassiez comme bien). Je m'attends à ce que vous regardiez les flux de données dans l'application/le site Web et que vous recherchiez ces threads lâches qui indiquent qu'il y a une erreur logique qui pourrait être exploitable. Je m'attends à ce que vous soyez en mesure de me dire ce que vous pouvez glaner de l'extérieur, que vous pouvez me dire des choses qui vous inquiètent et qui ne peuvent pas être trouvées avec un scan.
Je cherche des indications que vous avez regardé, par exemple, des écrans de réinitialisation de mot de passe et que vous vous êtes demandé si le flux est exploitable. Je veux voir que vous avez examiné si des informations privilégiées sont disponibles pour les utilisateurs non privilégiés (c'est-à-dire si l'application utilise simplement css pour les masquer ou quelque chose de stupide comme ça).
Idéalement, j'ai fait les choses faciles avant de vous contracter - j'ai fait le scan, j'ai fait les patchs et j'ai cueilli tous les fruits bas. J'embauche un stylo-testeur pour les choses difficiles.
Vraiment, si vous ne gérez pas un exploit, je veux voir que vous avez porté vos ongles à gratter à l'extérieur à la recherche d'une fissure.
L'exploitation réussie est-elle une exigence pour un travail de stylo test?
Suivant une définition stricte des tests de pénétration, vous devez en fait attaquer le système cible et garder une trace de vos tentatives réussies et échouées. Il ne suffit pas de conclure simplement qu'un serveur devrait être vulnérable car vos outils de prise d'empreintes digitales ont révélé une version logicielle obsolète. Vous prenez explicitement le point de vue d'un attaquant et devez démontrer comment le système peut être pénétré.
Le papier SANS Penetration Testing fait la distinction suivante (bien que les définitions varient):
Pen-Testing vs Vulnerability Assessment
[Il y a souvent une certaine confusion entre les tests de pénétration et l'évaluation de la vulnérabilité. Les deux termes sont liés, mais les tests de pénétration mettent davantage l'accent sur l'obtention d'un accès aussi large que possible, tandis que les tests de vulnérabilité mettent l'accent sur l'identification des zones vulnérables à une attaque informatique. [...] Un évaluateur de vulnérabilité s'arrêtera juste avant de compromettre un système, tandis qu'un testeur de pénétration ira aussi loin qu'il le pourra dans le cadre du contrat.
Cela dit, votre client moyen n'est probablement pas au courant de cette distinction et ne veut peut-être pas vraiment que vous passiez trop de temps à aller "aussi loin que vous le pouvez". Il pourrait être plus important pour eux de recevoir des instructions claires sur ce qui doit être corrigé exactement plutôt que d'obtenir une liste de tous vos shells racine. Vous devrez savoir à l'avance ce qu'ils veulent effectivement réaliser en vous laissant tester le système. Votre client doit savoir qu'un test de pénétration n'est pas égal à une évaluation de sécurité complète.
C'est une bonne question car je pense que de nombreux endroits abordent le stylo test de manière incorrecte. Cela est devenu encore pire parce que le niveau exécutif de nombreuses organisations a tendance à croire que le test du stylo est une solution miracle - si vous avez un test au stylo et que les résultats montrent qu'il n'y a pas eu de pénétration réussie d'un système, votre sécurité est OK et nous peut tous cocher cette case. En revanche, si le test du stylo échoue, l'équipe de sécurité ne fait pas son travail. Ce n'est tout simplement pas le cas.
Un test de plume n'est qu'un outil qui peut être utilisé pour évaluer l'efficacité de vos contrôles de sécurité. Il ne vous indique pas que tous vos systèmes sont sécurisés et le niveau de confiance que vous pouvez accorder à ce test de plume dépend fortement à la fois des compétences du testeur de plume et de la façon dont vous avez spécifié et planifié le test. La pire chose que vous puissiez faire est d'appeler simplement une société de sécurité et de lui dire "Salut, je veux un test de plume, quand pouvez-vous le faire". Avant d'engager un testeur de plume, vous devez avoir une idée claire de ce que vous attendez du test de plume, de vos priorités et des informations que vous souhaitez dans le rapport final. Vous souhaitez également approcher plus d'un fournisseur. Ce que vous recherchez, c'est une personne capable de démontrer qu'elle possède les bonnes compétences, qui peut comprendre vos besoins et qui est en mesure de vous fournir un résultat qui peut vous aider à améliorer votre posture de sécurité. Un test de plume ne doit pas être considéré comme un "test" dans le sens d'une réussite ou d'un échec. Essentiellement, vous devez avoir une compréhension claire avant le test de ce que sont les notes et à la fin du test, avoir suffisamment de détails et d'informations pour vous aider à vous concentrer sur la façon d'obtenir une meilleure note lors du prochain test.
L'un des aspects les plus difficiles du test au stylo est que la qualité du test au stylet varie beaucoup en fonction de la personne qui effectue le test au stylo. J'ai changé d'entreprise de sécurité principalement parce qu'un employé de la première entreprise a changé d'employeur et que cette personne était quelqu'un que nous connaissions pouvait faire un bon test de plume pour l'organisation (généralement parce qu'elle était talentueuse et bonne dans son travail et parce qu'elle comprenait notre entreprise) .
Engager un testeur de stylo est en soi une compétence. Vous vous améliorerez chaque fois que vous le ferez, à condition d'aborder la tâche avec des objectifs clairs. Connaître votre position de sécurité actuelle n'est qu'une partie de l'équation. Vous devez avoir une idée claire de votre état cible final. Ce que vous attendez du test de plume, c'est une clarté accrue concernant votre posture actuelle et suffisamment d'informations pour vous aider à développer des plans pour déplacer l'organisation vers l'état souhaité.
Un bon test de plume vous fournit des détails sur ce qui a été fait, ce qui a réussi et ce qui a échoué. Il ne devrait pas seulement s'agir d'une liste de vulnérabilités ou de systèmes possibles qui ne sont pas au dernier niveau de correctif ou d'exemples de "mauvaise pratique". Tout cela peut être obtenu avec de simples évaluations de vulnérabilité. Il devrait fournir des détails complets sur la façon dont l'environnement a été pénétré et des suggestions sur les contrôles qui pourraient être mis en œuvre pour prévenir ou réduire la probabilité de répétitions ou l'impact de ces événements. Le rapport de test de plume doit fournir suffisamment de détails pour que vous puissiez évaluer si un échec d'accès est dû au fait que les contrôles sont adéquats ou parce qu'il n'y a pas eu suffisamment de temps alloué ou parce que la portée était trop limitée, etc. À bien des égards, ce que vous recherchez est un partenariat avec le stylo testeur où ils travaillent avec vous pour améliorer votre sécurité.
Je suppose que cela dépend de ce que vous avez demandé de trouver et de l'étendue du travail. Certains tests de stylo que j'ai faits n'ont voulu voir que les résultats théoriques, d'autres voulaient que je fasse une percée et que je fasse des ravages. Le test du stylo n'est difficile que pour ceux qui ne l'apprécient pas vraiment. Soyez créatif, amusez-vous ... mais restez dans le champ d'application. ;)
Permettez-moi de le dire ainsi: à moins que le développeur de l'application testée ne soit lui-même un expert en sécurité, je m'attends à ce que vous trouviez au moins certains exploit. Je serais très mécontent si vous ne trouviez rien du tout, car d'après mon expérience, votre développeur moyen n'a pas une compréhension suffisamment approfondie des problèmes de sécurité pour pouvoir éviter tous les trous possibles du get- aller.
Notez que je lèverais la restriction "sécurité par obscurité" pour votre test. Autrement dit, vous auriez accès à la machine (Shell, etc.) ou même au code source pour acquérir des connaissances sur l'application. Votre pénétration doit bien sûr fonctionner sans cela, tout comme un véritable attaquant.
Il est vraiment difficile de définir la qualité du pentest effectué, et tout peut être un résultat satisfaisant. Cela dépend vraiment du système. Si le pentest est effectué sur un système ou un site Web relativement simple, il est fort probable qu'il n'y aura pas de résultats à haut risque.
De plus, même s'ils sont très qualifiés, ils pourraient ne pas avoir suffisamment de temps pour exploiter le système et présenter une preuve de concept. Ils doivent prioriser le pentest pour couvrir tous les domaines inclus dans le contrat.
Supposons que le pentester découvre une injection SQL ou un logiciel vulnérable (basé sur le numéro de version). Il est certainement bon d'essayer d'exploiter et de montrer la vulnérabilité d'un client, mais il pourrait être très difficile de l'exploiter, et il ne serait souvent pas logique de passer la majorité du temps de pentest prévu à produire une preuve de concept pour une seule vulnérabilité .
Pentester montrant qu'une version de logiciel spécifique est vulnérable en fonction des CVE, ou pentester montrant une sortie d'erreur SQL basée sur l'entrée utilisateur devrait être une raison suffisante pour qu'un client corrige et répare ses systèmes.
Un résultat satisfaisant d'un test de plume est lorsque le client et/ou le public cible du rapport comprend les messages et prend les mesures appropriées sur la base de la science de la décision. Veuillez vous référer à Comment mesurer tout ce qui présente un risque de cybersécurité pour plus d'informations sur la science de la décision en ce qui concerne un test de pénétration positive.