Je cherche une manière automatisée de fuzz mon application ou de le numériser pour les vulnérabilités. S'il vous plaît supposer que mes connaissances de piratage sont égales à 0. La source est également sur mon localhost, donc j'ai besoin d'un moyen de fuzzer localement sans s'appuyer sur une connexion Internet. Certains experts de sécurité peuvent-ils me donner des indices ou des recommandations? Je ne sais pas quelles options sont les meilleures. p>
Merci pour l'effort de réponse, mais personne ne semble pas avoir le but. Strong> J'aimerais être plus précis (parce que cela aide la question) mais sans influencer les opinions ou sonner comme je 'M Publicité Un produit spécifique. Je cherche quelque chose comme Wapiti (désolé de mentionner des noms, mais devait, parce que des réponses jusqu'à présent comme En savoir plus sur les injections SQL, les XSS, etc., ne sont évidemment pas de véritables réponses "expert" à cette question. Je sais déjà à propos de ceux-ci ( Je ne demande pas Certaines personnes demandent pourquoi pas seulement apprendre. strong>
Les meilleures pratiques (que je sais) ne sont pas les mêmes que de savoir piratage. Certaines personnes veulent discuter sont une pièce de monnaie, mais je ne suis certainement pas d'accord :) Par conséquent, j'ai besoin d'un outil de protection par une personne avec la "mentalité hacker". Comment cela va-t-il faire mal, en fait, vous devriez l'essayer aussi;) Expert Answers s'il vous plaît de ceux qui connaissent. Strong> p>
7 Réponses :
Il y a Services qui fera des analyses automatisées pour vulnérabilités. Ils ne vont pas tout attraper, mais vous aideront à identifier des problèmes. Votre meilleur pari est d'utiliser l'un de ces services et d'apprendre de meilleures pratiques de sécurité. P>
commencer à apprendre sur Injection SQL et Script de site transversal . Ce sont les plus grandes et les plus faciles à résoudre des vulnérabilités. p>
La programmation de manière défensive est une compétence que l'IMHO Chaque programmeur devrait apprendre. P>
Il n'y a pas de substitut à la compréhension de ces problèmes. B> p>
Avant de devenir fou sur l'automatisation (qui donnera probablement des résultats que vous ne comprendrez probablement pas), je vous suggérerais de lire l'écriture de code sécurisé et d'apprendre à identifier les choses que vous faites mal. Voici quelques tutoriels pour vous aider à démarrer: p>
http://php.net/manual/fr/security.php p>
omettre cela, je suggérerais d'externaliser votre code à une entreprise de sécurité si vous pouvez vous le permettre. P>
bonne chance! p>
Cela ne me laissera pas poster plus d'un lien dans l'originale, mais voici encore plus: [1] phpfreaks.com/tatudial/php-security [2] phpsec.org/articles
Très vrai, c'est comme essayer d'exécuter une analyse automatisée pour rechercher des problèmes de performance: vous ne pouvez pas automatiser la compréhension.
@Chris: Une fois que vous comprenez les problèmes liés aux positifs, ils sont utiles, mais le manque de compréhension n'entraînera aucun retour lorsque vous obtenez une liste des "vunérabilités possibles" qui ne signifient rien auprès de l'auteur du code. J'espère que cela explique ma réponse un peu mieux.
Je ne suis pas sûr de savoir pourquoi vous supposez que je ne comprends pas. Je connais les meilleures pratiques, je n'ai tout simplement pas piraté. Mais certaines personnes veulent discuter sont les mêmes. Je ne suis certainement pas d'accord :) Par conséquent, j'ai besoin d'un outil de protection par une personne avec la "mentalité hacker"
@Chris, je n'ai pas réalisé au moment où vous étiez l'affiche de la question. Je répondais à votre réponse à votre réponse en réponse à ma réponse, pas nécessairement vers une réponse, y compris votre question :)
À condition que vous sachiez C, vous pouvez travailler avec SPIKE, c'est toujours bon de faire une vérification manuelle pour les débordements dans tout ce qui pourrait être éventuellement touché par un utilisateur final, le% Usual x% x% x tests pour les attaques de chaîne de format et juste pour être diligent dans votre analyse statique. P>
Peachfuzz et Spike sont bien documentés. P>
omettre cela, écrire le vôtre est trivial. p>
Pour répondre strictement à votre question, la façon dont vous devriez tester consiste à utiliser un outil. Il existe 2 types d'outils principaux que vous pouvez utiliser, un scanner de sécurité qui sonde activement un site Web en cours ou un outil d'analyse statique qui fonctionne sur le code source que vous utilisez pour créer votre webApp. p>
La réponse courte est que vous souhaitez un outil de numérisation de sécurité comme Wapiti ou Burp. Des outils tels que ceux-ci construisent et exécutent de manière dynamique des tests de sécurité uniquement pour votre site. Vous pourriez essayer manuellement d'exploiter votre propre site, mais cela prendrait beaucoup de temps et ne fournirait aucune valeur. Il serait inutile que vous puissiez passer par une liste de problèmes d'injection XSS ou SQL connus, car chaque numéro est unique au site qu'elle s'applique. De plus, ces outils peuvent mieux attaquer votre site, alors vous pouvez vous donner un test de stress de sécurité plus rigoureux. p>
Il existe 2 outils principaux que vous pouvez utiliser, outils d'analyse statique et outils d'analyse dynamiques. Outils d'analyse statiques Lisez dans votre code source, déterminez la manière dont les données circulent dans l'application et recherchent des problèmes de sécurité. À leur racine la plupart des problèmes de sécurité permettent à un utilisateur de contrôler certaines données qui s'inscrivent dans une partie inappropriée d'une application, même si l'application ne fonctionne pas et que vous vous frotenez contre le problème d'arrêt, la méthode d'analyse statique de "deviner" et d'essayer Chaque chemin de code peut donner de bons résultats. Les outils d'analyse statique sont dépendants de la langue et la plupart sont coûteux. Certains libres sont FXCOP (C #), PMD et FindBugs (Java), voir http: //fr.wikipedia .org / wiki / list_of_tools_for_static_code_analyse p>
Outils d'analyse dynamique (plus communément appelé "Security Scanner") Vous devez configurer votre webApp afin qu'il puisse exécuter des tests contre cela, cela ressemble à plus de ce que vous voulez. Mon outil préféré ici est Burp, certains libres incluent Wapiti, ce qui est bon aussi bien. Ces outils examineront la manière dont votre application gère les données, recherchez des entrées et remplissez-les de données malveillantes pour tenter de déclencher des vulnérabilités. Un exemple d'exemple serait destiné à tester des scripts croisés réfléchis, le scanner examinerait une page et insérerait JavaScript dans chaque valeur de querystring, une valeur de cookie, une valeur de formulaire, etc., puis la page pour voir si le JavaScript malveillant était de retour à la page. p>
Vous n'avez probablement pas besoin ou que vous voulez un flou. Fuzzing Tools vous aident surtout quand il y a beaucoup de pantalon d'analyse, donc un fluzer n'est pas le meilleur ajustement pour une webApp, tandis que ce serait un bon ajustement pour un protocole que vous faites. Il existe des capacités de floue limitées dans les outils de scanner de sécurité énumérés ci-dessus et vous n'avez probablement pas besoin de plus que cela. Fuzzers prennent également du temps pour construire. FUZZERS trouvez souvent plus de choses en code C / C ++ car il y a moins de bibliothèques intégrées à la bonne chose, dans le cas webApp, il y a moins de "chambre pour jouer à jouer" pour ainsi dire. P>
Savoir ce que Fuzzing est et comment vous voudrez peut-être aborder ne conduis pas nécessairement aux compétences nécessaires pour tester et évaluer soigneusement votre logiciel pour les vulnérabilités et les défauts. Vous devez utiliser des tests automatisés, mais de manière ouverte où vous modifiez les tests que l'outil effectue à mesure que vous trouvez de nouveaux chemins d'entrée, interactions, etc. p>
Fondamentalement, ce que je dis, c'est que vous devez savoir ce que vous faites si vous voulez que ce soit une valeur réelle. Ajouter. Vous ne pouvez pas simplement choisir un outil, l'exécuter et vous attendre à obtenir de bons résultats. Vous avez besoin de quelqu'un qui fait ce type de test pour travailler avec ou pour vous. Les outils sont utiles, mais ne peuvent produire des résultats utiles que lorsqu'ils sont utilisés par une personne qualifiée de cet art. P>
J'ai utilisé Paros - http://www.parosproxy.org/ - c'est gratuit, facile Pour utiliser et afficher à la fois la cause de l'erreur, le correctif possible et comment le répliquer (généralement un lien). P>
Il est facile de configurer et d'arracher votre site entier - il peut également installer des installations locales d'araignées. P>
Il a aussi une interface graphique. P>
Son vieil, mais c'est bon et facile. p>
J'ai essayé de configurer Wapiti, mais c'était simplement trop difficile pour moi. P>
J'ai recherché ce sujet pendant de nombreuses années pour ma propre application et j'ai trouvé un outil fantastique récemment basé sur Paros (voir mon autre réponse ci-dessus) P>
Son zap de Owasp et est les noix de canards. P>
L'une des meilleures choses que vous puissiez faire est d'intégrer ZAP dans votre automatisation / la construction de votre projet.
Mieux encore mieux, vous pouvez vous asseoir à côté de vos tests automatisés de sélénium pour "collecter" les pages que vous testez, puis ...... Scannez l'enfer hors d'entre eux! P>
C'est vraiment bien documenté, mais vous aurez besoin d'un PC rapide car il exécute des centaines de tests par page. Si vous faites un site entier, cela peut prendre un certain temps. P>
Il existe d'autres outils que vous voudrez peut-être envisager P>
J'ai trouvé cet outil ... Strilibily Facile à utiliser et très très complet. P>
Chaque fois que j'ai eu ce que je pensais était un "faux positif" avec zap, je numériserais la page avec SQLMAP (vous devez comprendre comment utiliser Python - c'est facile, a pris quelques heures) et SQLMAP vérifierait soit la vérification. le faux positif ou trouver la vulnérabilité. P>
Je cherche une sorte d'analyseur de code statique depuis des années. Surtout, j'ai placé mes espoirs dans le nouveau projet Roadsend + LLVM, c'est concevable que pourrait i> générer des avertissements comme vous le souhaitez, car il compile.
"Merci pour l'effort de répondre, mais aucun n'est jusqu'à présent semble avoir le point." - C'est parce que le point ne peut pas être obtenu. Des trous de sécurité sont trouvés par des humains utilisant des quantités incroyables de créativité, d'effort et d'essai. Si des audits de sécurité pourraient être remplacés par Automation, pensez-vous que quiconque choisirait de les faire manuellement?
@Pekka, vous semblez oublier que ces outils existent déjà. J'ai donné un exemple d'un dans ma question même, sans oublier que les pirates pirates tous les jours sondent vos sites en utilisant des variations d'entre elles. Ok, assez dit :)
Votre question peut-elle donc utiliser certains outils que l'on pourrait utiliser pour tester des problèmes de sécurité?