web-dev-qa-db-fra.com

Test de logiciel VS (Web) Test de pénétration

J'aimerais poser des questions sur les différences entre les tests de logiciels et les tests de pénétration de l'application Web.

Je suis conscient de l'utilisation de différents outils dans les deux disciplines Test du logiciel (Jira/sélénium) et Web App Pentesting (Burpsuite, SQLMAP, etc.).

De plus, j'aimerais savoir si ces deux disciplines se déroulent et qu'un testeur de logiciel peut devenir une bonne application Web Penterest et vice versa?

Merci beaucoup.

5
Michal Koczwara

Je vais mettre un léger rotation différent de la deuxième partie de votre question concernant la discipline de la discipline, car j'ai d'expérience dans ma carrière.

Un bon testeur de pénétration a un état d'esprit hacker. Ils travaillent pour vaincre quelles protections de sécurité ont été mises en place, quel que soit les moyens créatifs disponibles pour eux et leur inscription de connaissances. Un bon pentestester ne pense pas comme un utilisateur final, mais pense plutôt à un moyen de contourner des règles, des restrictions et des blocages. Ils ne testent pas si les protections de sécurité qui ont été mises en place fonctionnent correctement; Ils cherchent où la conception du système informatique n'a pas réussi à résoudre et à atténuer une vulnérabilité.

A Testeur logiciel se concentre généralement sur les tests que le logiciel fonctionne correctement en fonction des exigences. Son travail surtout grunt, espérons-le en utilisant des outils pour automatiser ce test. Étant donné que les tests de logiciels parfaits testent en quelque sorte toutes les lignes de code, sa solution de travail grogneuse pour créer de plus en plus de procédures de test pour couvrir toutes les lignes de code. Notez que, dans la plupart des cas, les tests de logiciel traditionnels n'effectuent pas beaucoup de cas de test "échec négatif"/"échec", il s'assure que lorsque les utilisateurs finaux utilisent correctement le logiciel que le logiciel fonctionne également correctement. On trouve généralement peu si des tests de l'utilisateur final utilisent le logiciel de manière incorrecte et comment le logiciel gère cela.

Vous trouverez également une spécialité en tant que testeur de sécurité système ou testeur de sécurité logiciel. Cette personne a généralement une mentalité et une base de connaissances qui se trouve entre les extrêmes du testeur logiciel axé sur la conformité et la mise au point sur la cassure du testeur de pénétration. Habituellement, un test de sécurité système/logiciel validera que l'utilisation correcte des fonctionnalités de sécurité permettra à l'utilisateur final autorisé d'interagir avec le logiciel comme prévu. Et testera généralement un ensemble d'utilisations incorrectes prédéfinies et bien connues des fonctionnalités de sécurité, ce qui devrait entraîner des grumes et des blocs de l'utilisation incorrecte.

Donc de résumer:

  • un testeur logiciel et un testeur de sécurité système/logiciel ont généralement une bonne quantité de croisement, car ils connaissent généralement les détails complets du système/logiciel, ils savent comment il est censé se comporter correctement lorsqu'il est utilisé correctement et ils peuvent tester Beaucoup de mauvais comportement d'utilisateur final commun.
  • Cependant, un bon testeur de pénétration pense vraiment différemment que les deux autres ... Ils ne se soucient pas des comportements appropriés du système/logiciel ... Ils sont rusés, à la recherche d'un petit coup de vulnérabilité qui n'était pas atténué.
4
cybermike

Je dirais que vous devriez considérer les relations entre ces 3 types d'activités comme celle-ci: le test de pénétration est un sous-type de tests de sécurité qui est à son tour constitue un sous-type de tests logiciels. Les tests de sécurité traitent de types de défauts très spécifiques: défauts de sécurité; ceux qui pourraient entraîner un système compromis, une réputation ruinée et un profil public taché ou des pertes financières directes pour le propriétaire de l'application Web.

En ce qui concerne la deuxième partie de votre question - cela dépend. Les tests de sécurité traitent principalement des processus qui se produisent "sous la hotte" d'un service Web, que ce soit sa partie côté client, ou une partie du backend. Donc, si vous avez surtout gêner l'interface graphique/localisation/utilisable/etc. Test, je ne m'attendrais pas à ce que cette expérience vous aide à maîtriser le testeur de sécurité. Les tests fonctionnels sont un problème différent. En fait, selon la méthodologie de l'OWASP, il existe un groupe de défauts de sécurité - défauts de la logique de l'entreprise - qui nécessitent la même approche que l'une approche utilise pour des tests fonctionnels typiques. Donc, le bord est plutôt vague.

Mais, en général, les tests de sécurité impliquent beaucoup plus de connaissances techniques que les tests fonctionnels habituellement. Et malgré toujours que plus tard peut toujours vous fournir des fondations solides sous forme d'apprentissage à mettre en œuvre une approche systématique de la tâche, en développant des capacités de pré-planifier vos activités et d'acquérir des connaissances générales liées aux États-Unis, je ne peux pas dire qu'ils sont vraiment "croisés sur "tellement.

1
tis

Je vais expliquer en mots assez simples en expliquant ce qu'ils font réellement.

Permet de commencer par des tests de pénétration, comme je travaille comme un !!

Les testeurs de pénétration sont généralement attribués à un projet (dans votre cas une application Web) à tester, ils passent sur le site Web, effectuent une certaine reconnaissance et tentent de trouver des fonctions importantes de l'application Web par exemple. Pour un site Web de commerce électronique, il peut s'agir du panier d'achat ou de la passerelle de paiement. Donc, les pentasters essaient de contourner les procédures normales dans l'application Web et d'exploiter les échappatoires de sécurité pour déterminer si certaines choses peuvent être consultées ou faites pour laquelle l'utilisateur final n'est pas privilégié. Enfin, ils documentent les résultats, formulent un rapport détaillé et donnez-le aux clients. NOTE que les pentasters ne suggèrent que quels changements sont nécessaires et son travail des développeurs de le faire.

Les testeurs de logiciels en revanche ont une meilleure connaissance du codage et ils essaient de trouver les erreurs de la logique utilisée par le développeur. Ils pourraient utiliser des outils ou le faire manuellement, mais l'accent est mis sur l'accent pour améliorer la logique et les mauvaises codes et les problèmes de compatibilité.

Par conséquent, ces deux champs peuvent sembler similaires mais sont très différents les uns des autres. Autant que Crossover est concerné, les testeurs de logiciels peuvent devenir des testeurs de sécurité des applications telles qu'elles peuvent tester le code d'application pour les défauts de sécurité, mais la compétence requise pour le testeur de pénétration est complètement différente.

0
paU1i

Une réponse courte et douce serait la suivante: Test de logiciel S'approche Revue de code et respect des pratiques de codage sécurisées. A Testeur de pénétration Utilise diverses méthodes pour imiter une attaque et exploiter pleinement un système/réseau cible.

Ils sont liés car un testeur de pénétration peut accéder à votre système via des logiciels exploitables (c'est-à-dire des débordements tampons) sur le réseau.

0
Sh1nu11bi

Sur les tests logiciels:

Si vous vous inscrivez à FORTIFY-ON Demander à http://hpfod.com , vous remarquerez qu'il existe une variété d'offres, la principale analyse de la sécurité dynamique, l'analyse de la sécurité statique et le mobile une analyse.

Quelques autres comme IBM et CIGital Mirror ce modèle. Les trois fournisseurs fournissent des capacités des tests logiciels-AS-A-A SERVICE (STAAS), mais aucun de ceux-ci n'est un test de pénétration. Ce sont des tests logiciels axés sur la sécurité. C'est la meilleure automatisation des tests dans le monde Appsec que l'argent peut acheter.

Bien que je n'ai pas suivi l'automatisation des tests dans l'espace de qualité, les trois fournisseurs effectuent toujours des tests de qualité logicielle en plus des tests de sécurité logiciels.

Le meilleur livre sur les tests de sécurité logicielle est "L'art de l'évaluation de la sécurité logicielle" et des tests de qualité logicielle "Comment briser les logiciels: un guide pratique pour tester". Personnellement croire qu'il y a des techniques transversales que l'on peut utiliser de l'une à l'autre. Test de sécurité d'applications Web, avec des ressources gratuites telles que le Guide de test OWASP - ou le livre, "Le manuel de l'application Web Hacker, la 2e édition" - est un champ distinct, ainsi que des tests de sécurité mobiles de l'application, où le livre " Le manuel de l'application mobile Hacker "fournit un contexte. Encore une fois, je crois que les connaissances de test de qualité logicielles contribuent au processus. Cependant, ces méthodes de livres ne mettront pas votre test en un test de pénétration et les outils/techniques utilisés ne vous transformeront pas dans un testeur de pénétration.

Pour l'intégration continue et la livraison continue (CI/CD) Appl Development Development World, Jenkins, AnfT et Maven ont une intégration à l'APPSEC avec l'outil de contrôle de dépendance de l'OWASP (et le projet de piste de dépendance OWAPP). Maven, fourmi et Ivy pourrait également exploiter le projet -- victimes , mais je préfère le Owasp One. Pour JavaScript, l'outil de vérification de la dépendance OWASP possède une classe qui le couvre partiellement, mais le projet Retire.js offre des travaux supplémentaires. Il existe également des intégrations fortes au niveau des applications de niveau-cadre telles que Owasp ESAPI, Security Spring Security et quelques bibliothèques qui sont nœud.js ou expressionnables telles que Lusca (avec casque), Kraken.js, Sails.js, etc. Il y a beaucoup de Améliorations du niveau des composants à parler également, mais laissons cela pour une conversation distincte. En résumé, Appsec au niveau du logiciel est davantage sur TDD (au niveau de l'unité, inutile à des fins de sécurité), de construction et de construction que sur les tests de sécurité.

Sur les tests de pénétration:

Le test de pénétration est un sujet complètement séparé. Je ne crois pas que de nombreux testeurs de logiciels, peu importe leur qualité, se rendront à des experts au test de pénétration. Il existe de nombreuses facettes aux tests de pénétration, y compris une connaissance approfondie des applications et des réseaux (par exemple, le génie réseau, la sécurité du réseau), l'empreinte digitale, l'énumération, l'identification du service, les protocoles, les techniques de l'évasion avancées (AET), le génie social (p. Ex. Phishing de lance) , les attaques d'eau d'arrosage (par exemple, les systèmes de distribution de trafic aka TDS), des botnets (par exemple, des algorithmes de génération de domaine AKA DGAS), et al. Les connaissances nécessaires pour une analyse de système profonde sont plutôt particulièrement spécialisées. Je crois que cela ne se limite aux personnes qui ne cesseront de ne rien comprendre et d'analyser toutes les composants jusqu'au niveau et au niveau de la tendance. Cela nécessite une quantité énorme de temps et de patience. On doit presque renoncer à leur progression informelle de l'apprentissage des pratiques de développement des applications ou de qualité logicielles afin de "commuter" à l'état d'esprit de test de pénétration.

La meilleure façon de devenir un testeur de pénétration consiste à traverser tout le matériel de sécurité offensive et corelan, tout en assistez à des cours de haut niveau tels que les thèses disponibles à la formation Blackhat. Si vous pouvez assister à plusieurs derbycons, passez chaque vidéo Derbycon sur Irongék et comprenez 95% du matériel aussi profondément que les présentateurs - alors vous pouvez faire une marque dans les tests de pénétration.

Vous ne voudrez pas vous spécialiser dans les tests de pénétration Web pour le moment. À partir d'une période comprise entre 1993 et ​​2006, cela peut être une poursuite valable. Le problème est qu'aujourd'hui, il existe de nombreuses technologies utilisées, par exemple Java applets, Web Services, Ajax, Adobe Flash, Silverlight, WCF, Apache Flex, etc. - etc. et ceux-ci nécessitent la pénétration complète. -Testing connaissances. Vous ne pouvez pas vous éloigner de spécialiser dans un monde avec des porables, des iTOTs, des portefeuilles numériques, des appareils mobiles, des applications mobiles et de tous ces autres composants intégrés. Les tests de pénétration doivent adopter une approche globale. Il est conduit par des modèles et des cadres qui se concentrent profondément sur l'analyse.

Un vrai testeur de pénétration peut également prendre ses capacités "au niveau suivant" avec une simulation adversaire. Le [~ # ~] opfor [~ # ~ ~] Sachez comment utiliser des outils et des techniques analytiques tels que l'analyse de l'équipe rouge (RTA) et plusieurs scénarios génération. En 2015, cela signifie pouvoir contourner une variété de contrôles et de contre-mesures, ainsi que des éléments humains. Ce sont des chasseurs à risque qui chassent les chasseurs de la menace qui les chassent. Cela implique beaucoup plus que le génie social, le réseau/Web/app Pénétration, et al.. Cela peut aller au-delà de l'élicitation, de l'enquête, du Techint, de la finition et de l'IC humint. Il existe des modèles de systèmes socio-techniques hybrides qui peuvent décrire les éléments humains, cybers et physiques. Ces modèles dynamiques intèveraient généralement la théorie des jeux, la tromperie (c'est-à-dire la simulation et la dissimulation) et la déception de contrepartie.

0
atdre

L'équipe de test de logiciels effectuera des tests de qualité logicielle si elle répond à la norme de qualité prescrite par l'organisation ou toute norme qu'il suivra. Il évaluera également si des logiciels répondent aux exigences commerciales des parties prenantes. L'équipe de test de pénétration évaluera les défauts techniques dans l'application si toutes les validations sont appliquées ou non, que tout attaquant puisse contourner le flux logique du logiciel.

0
mohammad obaid

les tests logiciels se concentrent sur la vérification et la validation des exigences fonctionnelles et non fonctionnelles où les tests de pénétration vérifient si une personne peut exploiter des vulnérabilités d'une application logicielle

0
shavantha