Je suis étudiant en informatique et je suis actuellement en 3ème année à l'université. Jusqu'à présent, nous avons étudié de nombreux sujets liés aux ordinateurs en général (programmation, algorithmes, architecture informatique, mathématiques, etc.).
Je suis très sûr que personne ne peut tout apprendre sur la sécurité, mais il y a une connaissance "minimale" que chaque programmeur ou étudiant en informatique devrait connaître et ma question est quelle est cette connaissance minimale?
Pouvez-vous suggérer des livres électroniques ou des cours ou quoi que ce soit peut vous aider à commencer avec cette route?
Réponses:
Principes à garder à l'esprit si vous souhaitez que vos applications soient sécurisées:
Il existe d'excellents livres et articles en ligne sur la sécurisation de vos applications:
Formez vos développeurs aux meilleures pratiques de sécurité des applications
Codebashing (payant)
Innovation en sécurité (payant)
Boussole de sécurité (payante)
OWASP WebGoat (gratuit)
la source
Règle n ° 1 de sécurité pour les programmeurs: ne lancez pas la vôtre
À moins que vous ne soyez vous-même un expert en sécurité et / ou un cryptographe, utilisez toujours une plateforme, une infrastructure ou une bibliothèque de sécurité bien conçue, bien testée et mature pour faire le travail pour vous. Ces choses ont passé des années à être pensées, corrigées, mises à jour et examinées par des experts et des pirates. Vous voulez gagner ces avantages, pas les écarter en essayant de réinventer la roue.
Maintenant, cela ne veut pas dire que vous n'avez rien à apprendre sur la sécurité. Vous devez certainement en savoir suffisamment pour comprendre ce que vous faites et vous assurer que vous utilisez correctement les outils. Cependant, si vous vous trouvez sur le point de commencer à écrire votre propre algorithme de cryptographie, système d'authentification, désinfectant d'entrée, etc., arrêtez-vous, reculez et souvenez-vous de la règle n ° 1.
la source
Chaque programmeur doit savoir comment écrire du code d'exploitation.
Sans savoir comment les systèmes sont exploités, vous arrêtez accidentellement des vulnérabilités. Savoir comment patcher du code n'a absolument aucun sens sauf si vous savez comment tester vos patches. La sécurité n'est pas seulement un tas d'expériences de pensée, vous devez être scientifique et tester vos expériences.
la source
La sécurité est un processus, pas un produit.
Beaucoup semblent oublier cette question de fait évidente.
la source
Je suggère de revoir CWE / SANS TOP 25 des erreurs de programmation les plus dangereuses . Il a été mis à jour pour 2010 avec la promesse de mises à jour régulières à l'avenir. La révision de 2009 est également disponible.
Sur http://cwe.mitre.org/top25/index.html
la source
Un bon cours de démarrage pourrait être le cours du MIT sur les réseaux informatiques et la sécurité . Une chose que je suggérerais est de ne pas oublier la vie privée. À certains égards, la confidentialité est vraiment fondamentale pour la sécurité et n'est pas souvent abordée dans les cours techniques sur la sécurité. Vous trouverez peut-être des informations sur la vie privée dans ce cours sur l' éthique et le droit en ce qui concerne Internet.
la source
L'équipe de sécurité Web de Mozilla a élaboré un excellent guide que nous respectons dans le développement de nos sites et services.
la source
L'importance des valeurs par défaut sécurisées dans les frameworks et les API:
la source
Vous devriez connaître les trois A. Authentification, autorisation, audit. L'erreur classique consiste à authentifier un utilisateur, tout en ne vérifiant pas si l'utilisateur est autorisé à effectuer une action, de sorte qu'un utilisateur peut regarder les photos privées d'autres utilisateurs, comme l'a fait l'erreur Diaspora. Beaucoup, beaucoup plus de gens oublient Audit, vous avez besoin, dans un système sécurisé, de pouvoir dire qui a fait quoi et quand.
la source
la source
J'ajouterais ce qui suit:
Comprendre le fonctionnement des différents vecteurs d'attaque:
Vous pouvez facilement google pour tout cela. Cela vous donnera une bonne base. Si vous souhaitez voir les vulnérabilités des applications Web, il existe un projet appelé Google Gruyere qui vous montre comment exploiter une application Web qui fonctionne.
la source
lorsque vous construisez une entreprise ou l'un de vos propres logiciels, vous devriez simplement penser comme un pirate informatique. Comme nous savons que les pirates informatiques ne sont pas non plus experts en toutes choses, mais quand ils trouvent une vulnérabilité, ils commencent à creuser en collectant des informations sur tous les choses et enfin attaquer notre logiciel.Pour empêcher de telles attaques, nous devons suivre certaines règles bien connues comme:
vous pouvez trouver plus de ressources de sécurité sur les liens suivants:
pour plus d'informations, google sur les flux de sécurité de votre fournisseur d'applications.
la source
la source
Pour des informations générales sur la sécurité, je recommande fortement de lire Bruce Schneier . Il a un site Web, sa newsletter crypto-gramme , plusieurs livres et a fait beaucoup d' interviews .
Je me familiariserais également avec l'ingénierie sociale (et Kevin Mitnick ).
Pour un bon livre (et assez divertissant) sur la façon dont la sécurité se déroule dans le monde réel, je recommanderais l'excellent (bien qu'un peu daté) 'The Cuckoo's Egg' de Cliff Stoll.
la source
Assurez-vous également de consulter la liste des 10 meilleurs OWASP pour une catégorisation de tous les principaux vecteurs / vulnérabilités d'attaque.
Ces choses sont fascinantes à lire. Apprendre à penser comme un attaquant vous apprendra à quoi penser lorsque vous écrivez votre propre code.
la source
Salez et hachez les mots de passe de vos utilisateurs. Ne les enregistrez jamais en texte brut dans votre base de données.
la source
Je voulais juste partager cela pour les développeurs Web:
guide-de-sécurité-pour-les-développeurs
https://github.com/FallibleInc/security-guide-for-developers
la source