web-dev-qa-db-fra.com

Comment pouvez-vous devenir un expert en sécurité de l'application Web compétent sans casser la loi?

Cette question a été posée ici sur l'échange de programmeurs , mais il a été suggéré de demander ici aussi bien que la plupart des experts resteraient probablement à la place de l'échange de sécurité informatique.

Je trouve que cela équivaut à des agents de police sous couverture qui se joignent à un gang, de drogue et rompent la loi en dernier recours afin de le faire respecter. Pour être un expert en sécurité compétent, je sens que le piratage doit être un effort pratique constant. Pourtant, cela nécessite de trouver des exploits, de les tester sur des applications en direct et de pouvoir démontrer ces exploits en toute confiance. Pour ceux qui se considèrent comme des "experts" dans la sécurité des applications Web, qu'avez-vous fait pour apprendre l'art sans casser la loi? Ou, est-ce la zone grise que personne n'aime parler parce que vous devez plier la loi à ses limites?

23
user3127

Je ne travaille pas en tant que consultant en matière de sécurité, mais j'ai travaillé avec eux (et avec la police accessoirement et votre analogie est plus spectacle de la COP que la réalité) et aucun d'entre eux à ma connaissance n'a passé de temps à pirater de temps illégalement.

Le piratage n'est illégal que si vous n'avez pas la permission, mais il n'y a pas de différence sur un niveau technique (c'est-à-dire en termes de sécurité) entre un serveur que vous avez la permission de pirater et celui que vous n'avez pas fait. Si vous travaillez pour ou avec une entreprise, essayez d'accéder à leurs serveurs (avec leur compréhension et autorisation écrites préalables), c'est une expérience mondiale non moins réelle que de choisir un système aléatoire.

À défaut de ne pas créer de raison, vous ne pouvez pas configurer vos propres serveurs hébergés et tenter de les compromettre - ou de vous mettre en place, deux d'entre vous ont chacun configuré un serveur et le gagnant est le premier à trouver un exploit dans le système d'autres. Cela a le double avantage de la voir des deux côtés.

35
Jon Hopkins

La réponse à cette question ressemble beaucoup à la réponse à tout "Comment puis-je devenir un expert à * *" Question ... Cela revient finalement à temps et à l'expérience.

Pour certains détails, si Collège/University est une option sur les programmes traitant de la sécurité de l'information, de la criminalistique informatique et de l'assurance de l'information. Tout cela vous donnerait un fond solide pour le développement de la sécurité des applications.

En outre, examinez les spécificités de ces lois ... Par exemple, vous pouvez attaquer des services/applications/systèmes sur votre propre réseau légalement dans la plupart des endroits (en supposant que vous possédez l'utilisation de l'équipement et de l'infrastructure de réseau). Une application ouverte également, où vous avez la liberté de modifier/réutiliser le code, serait dans la plupart des cas ouverte aux tests de vulnérabilité, tant que vous n'exécutez pas le code "malveillant" sur des systèmes distants ou que vous le partageez .. Encore une fois, les lois varient considérablement par l'état/pays.

Lecture, comme toujours, est une bonne source ... non seulement sur la "sécurité", mais des directeurs généraux de codage. Une connaissance de base est toujours un atout. Des sites Web comme "Hackthissite.com" donnent également des guides pratiques et des "défis" à faire. Cependant, ce n'est pas vraiment "Sécurité des applications" du tout.

11
DKGasser

En plus de - Jetti et Jon Hopkins 'réponses, il existe également des organisations et des outils conçus pour enseigner les bases de la sécurité Web. Le Projet Open Web Application Security (OWASP) Vient à l'esprit comme un exemple de premier ordre.

OWASP possède une documentation complète sur leur site sur diverses exploits et techniques de sécurité, ainsi que sur la manière de créer des logiciels sécurisés et de trouver des exploits dans des logiciels existants. Ils produisent également un outil connu sous le nom de webgoat , qui est une application non sécurisée que vous pouvez héberger et découvrir différentes techniques pour endommager ou compromettre les environnements Web.

9
Thomas Owens

Je ne travaille pas non plus dans la zone de sécurité, mais il n'y a rien qui vous empêche de simuler Internet à l'aide d'un couple de routeurs et d'allumer un réseau domestique avec peut-être l'exception de la quincaillerie de sécurité des prix élevée. Comme Jon indiqué, vous pouvez facilement configurer IIS, Apache ou quel que soit le serveur Web que vous souhaitez sur un réseau domestique. Il existe également des applications de pratique comme - HACME Bank que vous pouvez pratiquer des vulnérabilités Web de base sur.

8
Dylan

Je pensais que j'avais chime et souligné que l'analogie de la police est un peu défectueuse si ce que vous recherchez est éducation, contre détection. Accordé à mon expérience de l'application de la loi est limité à un amour excessif de la loi et de l'ordre, mais d'aller avec l'analogie de la CdP - lorsque la police propose de passer à la couverture - c'est généralement le gars intelligent, expérimenté et stable qui est diplômé de notes décentes de l'Académie de police. Pas le stagiaire d'été. :)

La même chose pour un test de pénétration (comme John Hopkins décrit) - Les entreprises sont embauchées pour des tests de stylo basés sur l'expérience de l'entreprise, les pouvoirs des ingénieurs individuels de l'équipe, la réputation professionnelle de toutes les personnes impliquées et le coût et l'horaire proposés par l'équipe. . Tout comme vous ne voulez pas vraiment que le flic fou et non qualifié soit le gars sous couverture, vous n'engagez pas de NO-Nom, une entreprise non approuvée pour effectuer vos tests de pénétration.

La voie à suivre au point d'être un individu sur une équipe de test de stylo?

C'est la même chose presque toute autre carrière en ingénierie:

  • étudiez la technologie qui permet et empêche les exploits de sécurité - découvrez autant de domaines du commerce de sécurité que vous pouvez - facteurs humains, matériels, réseau, logiciels, systèmes d'exploitation, protection des données, etc.

  • utilisez des institutions académiques et des certifications professionnelles pour établir des pouvoirs - certaines organisations professionnelles incluent également une promesse d'éthique.

  • établissez des liaisons comme moyen de rassurer une assurance supplémentaire de l'honnêteté - c'est le long des mêmes lignes de travail comme une serrure Smith.

  • travailler sur le terrain dans des emplois moins à haut risque - Développement du système de sécurité, Administration du système, Groupes de sécurité informatique, Équipes de gestion des risques, etc.

  • faites des projets indépendants pour obtenir de l'expérience - comme la configuration d'un pot de miel à la maison ou de jouer avec des configurations de sécurité sur le matériel de réseau.

  • obtenez de la mentorat de quelqu'un de plus senior.

Tout comme les flics d'infiltration sont un groupe spécial de policiers, qui obtiennent une formation spéciale, un traitement unique et des références particulières - les testeurs de pénétration sont un groupe unique de professionnels de la sécurité. Les personnes que j'ai rencontrées, ce type de travail est souvent un type de personnalité similaire au programmeur d'entreprise de démarrage agressif/personne de type architecte/CTO - très intelligent, très axé, intensément concentré sur l'état de la technique et très intellectuellement agressif . Ils viennent généralement avec des diplômes de très haut niveau et sont très chers.

Je suis sûr qu'il y a beaucoup de gens qui sont stupides et je vais essayer de craquer des actifs sans autorisation d'entreprise - mais les gens que je considère que les vrais professionnels de cette région sont trop intelligents pour cela. Ils sont conscients des lois de ce domaine et ils sont trop intelligents pour compromettre leur carrière en piratant de côté. Un bon testeur de stylo sait qu'une partie de son high feak provient du fait que la société est disposée à lui faire confiance et s'il fait quelque chose de côté pour briser cette confiance, alors il est hors d'emploi et probablement à partir d'une carrière.

5
bethlakshmi

Je suis troublé par l'implication que pour devenir un "expert en sécurité de l'application Web compétent", la voie la plus facile est de briser la loi. Je suis d'accord avec @dkgasser, la route générale pour devenir un expert est similaire dans tous les domaines. Vous devez apprendre, pratiquer, discuter et expérimenter.

L'activité illégale n'est susceptible que de vous apprendre, c'est comment exploiter des systèmes mal sécurisés et sur la manière d'exploiter des vulnérabilités très spécifiques. Il est peu probable que vous vous appreniez la théorie derrière des systèmes sécurisés.

Vous pouvez faire beaucoup de choses légales pour explorer la sécurité de l'application Web, en commençant par la configuration de votre propre réseau domestique avec un serveur Web et d'attaquer votre serveur Web. Vous pouvez même regarder les serveurs Web de vous connecter en temps réel pendant que vous tentez diverses attaques. Il est généralement préférable de configurer un réseau informatique câblé avec un ordinateur d'attaque et un ordinateur cible en tant que machines uniquement sur le réseau expérimental, car cela vous empêchera d'attaquer accidentellement quelqu'un d'autre.

Essayez différents systèmes d'exploitation, différents serveurs Web, différents cadres d'application, différentes langages de programmation, etc. Configurez un serveur de Honeypot et un observateur quelles attaques sont tentées dessus.

5
this.josh

Je pense que Jon Hopkins a un bon point, il n'y a pas de différence entre piratage illégal et pirater quelque chose que vous avez autorisé à pirater. En tant qu'en adolescent, je me souviens de vouloir entrer dans le piratage (grâce aux merveilleux pirates informatiques) et il y avait des sites qui sont configurés qui encouragent les personnes à s'enceller pour apprendre. J'aimerais pouvoir me souvenir des sites, mais je sais qu'ils sont là-bas et je suis sûr qu'ils sont toujours vivants et bien.

Quelques points à prendre en compte:

  • Vous voudrez peut-être laisser votre ISP savoir que vous faites cela et que vous avez le consentement complet. De cette façon, s'ils ne voient rien de suspect, ils ne coupent pas votre service, ni pire, signalez-vous aux autorités.
  • En fait, le piratage dans un système n'est pas le seul moyen d'apprendre la sécurité. Être capable de reconnaître lorsque le code est peu sécurisé ou que d'autres vulnérabilités sont tout aussi importants.
  • Il y a beaucoup de personnes qui sont d'anciens hackers qui gèrent maintenant leurs propres sociétés de sécurité, mais ils ont également dû passer du temps en prison fédérale pour y arriver. Kevin Mitnick est le premier à venir à l'esprit mais je sais qu'il y en a plus. Alors soyez prudent avec la "zone grise"
  • 4
    Jetti

    Cette question est pleine de locaux défectueux et de préconception.

    C'est pas vrai que vous devez casser la loi pour apprendre à être un expert en sécurité ou que la francement de la loi est même particulièrement utile pour vous faire une experte dans ce domaine. Vous semblez supposer que la manière d'apprendre la sécurité Web consiste à briser la loi, ce qui n'est tout simplement pas précis.

    La question semble également supposer que le fait d'être un expert en sécurité Web consiste à connaître les moyens les plus cools de pirater un site Web. La meilleure façon de devenir un expert en sécurité Web est de pirater de nombreux sites Web. Ce n'est pas précis, non plus.

    Vous obtiendrez de meilleures réponses si vous avez demandé comment apprendre à être un expert en sécurité, sans faire d'hypothèses à l'avance sur la forme de réponse.

    3
    D.W.

    Pratiquer sur votre propre matériel n'est pas illégal!

    Pratiquer avec une autorisation écrite n'est pas illégal!

    Je vais supposer que vous avez déjà suffisamment de fond dans la technologie pour comprendre les bases. Étant donné que, il est trivialement facile de pratiquer sur votre propre matériel et pour un investissement minimal, vous pouvez louer des machines virtuelles sur une base selon les besoins afin de pratiquer sur d'autres plates-formes (par exemple, Amazon EC2).

    Il y a une abondance de matériel avec lequel pratiquer sur votre propre matériel:

    • Soyez à l'aise de travailler avec des machines virtuelles. Être capable d'apporter rapidement une nouvelle machine à exécuter un système d'exploitation donné dans une configuration donnée est utile pour pratiquer certaines compétences (et répéter) certaines compétences. (Cela vous permet également de faire de bons rapports de bugs puisque vous pourrez facilement recréer un bogue sur un système propre.)
    • Gardez un cahier - ou avez des moyens d'organiser des matériaux que vous apprenez. J'utilise une combinaison d'outils (auto-exploités, privés) et de bookmarking pour garder une trace des choses que j'apprends de nouveaux matériaux.
    • Suivez les listes de diffusion ou les forums comme ce site, Bugtraq, etc. Cela vous permet de suivre les attaques actuelles et émergentes.
    • En savoir plus sur la sécurité des applications Web en général. Il existe un certain nombre de bons sites Web (E.G. OWEPP) et des livres (par exemple, le manuel de l'application Web Hacker, de Stuttard et de Pinto). Ces références fournissent des listes d'outils et de techniques que vous pouvez mettre en pratique immédiatement. Wahh a des exercices saupoudrés tout au long de chaque chapitre - les faire .
    • En savoir plus sur l'infrastructure Web. Les déploiements haut de gamme seront beaucoup plus sophistiqués que ce que vous pouvez installer dans votre propre laboratoire. Les équilibreurs de chargement, les pare-feu, les caches, etc. Ceux-ci peuvent soit rendre la vie en tant que testeur de pénétration plus difficile (c'est-à-dire en agissant des défenses superposées) ou plus faciles (c'est-à-dire en introduisant la complexité et la plus grande surface d'attaque).
    • En savoir plus sur l'infrastructure Internet. Comprendre comment fonctionne DNS, par exemple; Quelles sont les vulnérabilités comme un système et comment il peut être à la fois sécurisé et attaqué.
    • Installez des applications dans votre VM. Par exemple. Lampe avec applications populaires - phpmyadmin, phpbb, etc. ou IIS. Ou Tomcat. (Finalement, vous voudrez vous pratiquer sur tous! Cela vous donnera une expérience avec une variété de plates-formes, de langues, de configurations et de différents problèmes.)
      1. Laissez-les dans la configuration par défaut.
      2. Attaquer-les. (DOS, intrusion, XSS, SQLI, AIMEESHEEP, etc.)
      3. Sécurisez-les contre ces attaques.
      4. Goto 2.
    • Buddy Up: Trouvez un partenaire avec qui vous pouvez vous entraîner. Par exemple, vous pouvez exécuter "capturer le drapeau" (CTF) exercices où vous configurez chacun un système, puis essayez d'infiltrer le système de votre partenaire. Cela vous donne la pratique dans la création et la maintenance d'une configuration sécurisée et des tests de pénétration. (Soyez juste prudent où vous configurez vos systèmes: je ne recommanderais pas d'attaquer votre partenaire de votre maison; son fournisseur de services Internet ou votre fournisseur de services Internet peut prendre une idée de certaines activités qui traversent leurs réseaux. Et vous ne voulez probablement pas qu'il attaque votre la maison; votre fournisseur de services Internet peut ne pas aimer que vous attirez du trafic malveillant.)
    • Si vous avez un budget pour les outils et les livres:
      • Maintenir une file d'attente de lecture ou similaire (E. Lishlist sur Amazon) pour de nouveaux livres que vous voyez recommandé. Quand je vois un livre recommandé plus de 3 ou 4 fois, je l'ai mis dans ma file d'attente de lecture.
      • Vous pouvez récupérer du matériel bon marché pour la pratique si vous gardez un œil sur craigslist, Freecycle, eBay, etc. VMS peut faire beaucoup, mais avoir quelques PC pas chers et un routeur sont agréables pour la mise en pratique d'un pare-feu-DMZ-Intranet avec matériel réel.
      • Avoir du matériel de rechange permet également d'avoir un CTF de style "LAN Party" avec votre copain. Configurez un PC en fonction des règles du jeu de cette semaine, prenez un commutateur/routeur/etc. et rejoignez la fête.
    • Sortez et rencontrez des gens. Owasp a des chapitres partout. Regardez la rencontre pour des réunions axées sur la sécurité. (Ou Réunions relatives à l'application Web - par ex. Votre local PHP ou ROR Meetup peut parfois avoir une session sur la sécurité.) [.____]
      • Ces réunions sont toujours à la recherche de haut-parleurs. Apprenez assez sur un sujet de niche ou créez un nouvel outil ou une nouvelle technique spécialisée, ou découvrez une nouvelle classe de vulnérabilité liée au sujet de la réunion ou de prendre une nouvelle technique que vous avez vue sur Bugtraq et de la rendre pertinente pour le Meetup et préparez-vous. Un "parole de foudre". (Si vous vous inscrivez à un cours d'université, vous devez souvent faire ce genre de chose.)
    • Obtenez un emploi ou un stage d'entrée de gamme. Trouver un mentor.

    Il existe quelques sites Web et applications qui sont mis en place comme des exercices pour le piratage. J'ai constaté que celles-ci ont tendance à être très introduction, mais elles sont utiles comme matériau débutant:

    • Jeu HACME
    • pirater ce site!
    • Essayez 'Ordinateur Wargame "ou" Capture de la sécurité de l'ordinateur de flag ".
    • Damn Application Web vulnérable - Il s'agit d'une application Web que vous pouvez déposer dans l'un de vos ordinateurs virtuels; Il est structuré de la même manière que les sites de piratage mentionnés ci-dessus
    • Banque Hackme, Google Gruyère, Owasp Webgoiat. (Je n'ai pas encore essayé cela, mais je les ai vus recommandés.)
    • Installez un cadre Web populaire avec beaucoup de plugins. Wordpress vous vient à l'esprit. (OK, ce n'est pas prévu comme pratique pour le piratage, mais cela pourrait aussi bien être ...)
      • Installez-le dans un VM, installez une poignée de plugins, ajoutez du contenu de remplissage.
      • Commencez avec les bases, faire des choses "à la main". Par exemple, installez Firebug dans Firefox, modifier des cookies, modifier les champs de formulaire, définissez les points d'arrêt dans JavaScript pour modifier la validation côté client, etc. Vous pouvez également utiliser des outils de CURL et d'autres outils de basse niveau pour construire des demandes pour contourner la sécurité. Le faire "The Hard Way" vous donnera une bonne compréhension de ce que les outils font pour vous - afin de comprendre leurs limitations et leur meilleure application.
      • Après avoir eu une idée de ce qui se passe sous les couvertures (et que vous avez réussi à trouver et à signaler de manière responsable quelques défauts de sécurité), commencez à apprendre les outils que vous avez découverts dans votre lecture et avez enregistré dans votre ordinateur portable.
      • Vous devriez pouvoir trouver une faiblesse de sécurité dans quelques heures de piratage, disons, Wordpress avec une poignée de plugins. J'ai réussi à trouver un 3 ou 4 XSS, plus d'autres bugs, dans 3 ou 4 heures de tester certains très populaires WP plugins, sans utiliser beaucoup pour les outils au-delà de FF + Firebug, chrome et curl. Si vous regardez Bugtraq ou d'autres listes, vous obtiendrez Une sensation pour laquelle les applications seront bonnes installations et tester.
    • De même pour les applications avec une longue histoire de défauts de sécurité. phpmyadmin et lier viennent à l'esprit. (TRUE, BIND N'EST PAS une "application Web", mais cela faciliterait des tests intéressants le long d'un type d'axe différent, et c'est une infrastructure importante que votre application Web dépend.) Apache serait aussi un jeu juste.

    Bien sûr, tout cela ne vous fera pas de expert, mais vous serez sur la route et au moins avoir atteint " incompétence consciente " - vous Je vais savoir quelles sont les prochaines étapes pour que vous augmentez votre niveau de compétence.

    3
    bstpierre

    Je pense que la première chose est d'obtenir un cours académique. Mais ce n'est pas obligatoire. Et ce n'est pas suffisant, car vous devez confronter le monde réel. Pour obtenir plus d'expérience, vous avez deux choix (venir à mon esprit)

    • Faites partie d'une entreprise qui travaille en sécurité: essais de stylo, détection/prévention de l'intrusion, reprise après sinistre. Cela vous apprendra également à savoir quelle entreprise veut d'experts en sécurité et vous donnera une direction pour savoir quoi savoir.
    • Curiosité: Construisez-vous un bac à sable pour tester vous-même (cela devrait vous éviter de faire la réparation de la loi). Gardez l'informer de la question de la sécurité sur Internet, quelles sont les sujets de tendance, les violations les plus exploitées. Utilisez votre bac à sable pour reproduire cela et trouvez comment contre-il. Dans cette zone, vous apprendrez à quelle entreprise a besoin d'experts en sécurité mais ne sont pas au courant.
    1
    M'vy

    Il y a une grande différence pour trouver des trous de sécurité et exploiter ces trous. Bien sûr, le premier peut toujours être illégal en fonction de ce que vous faites.

    1
    Matt Wilko