Image montrant une photo conceptuelle de cellules de sécurité - violet et bleu

En tant qu'ingénieur logiciel, il est essentiel que vous ayez toujours la sécurité à l'esprit pour vous assurer que vous développez des logiciels fiables et prêts à partir en production. 

New Relic a récemment animé un Twitter Space (ou Espace) avec Harry Kimpel de Snyk et Frank Dornberger de movingimage pour discuter de la façon dont les ingénieurs logiciels peuvent cultiver état d'esprit au cœur duquel la sécurité règne.

Cette attitude dépasse la simple étude des vulnérabilités et de la prévention des menaces dans les applications. En effet, il s'agit aussi de prendre en considération l'intégrité des applications et la fiabilité du système. Vous devez vous assurer que vos applications n'ont pas un impact négatif sur vos clients, monitorer les performances des applications et traiter les pannes, les exceptions et les problèmes le plus rapidement possible.

Voici huit conseils tirés de la conversation dans l'Espace.

  • Déplacez vos processus de sécurité vers la gauche. Évitez l'erreur courante de penser à la sécurité trop tardivement dans le cycle de développement et réfléchissez-y dès le début. En réalité, la sécurité est un processus récurrent qui doit faire partie de tout le cycle de développement.
  • Passez des DevOps aux DevSecOps. Déplacez vos pratiques de sécurité vers la gauche pour qu'elles soient présentes tout au long du cycle de développement des logiciels, automatisez-les le plus possible, et simulez les menaces et les incidents pour que vos équipes puissent s'occuper des vrais problèmes.
  • Lors du développement de logiciels, essayez de réfléchir à la possibilité de prendre le mauvais chemin. Recherchez des cas marginaux, testez-les, et trouvez le moyen d'éviter qu'ils se produisent. Faites attention aux mots de passe par défaut, aux configurations, aux systèmes d'exploitation et à d'autres valeurs par défaut similaires qui sont utilisés dans vos environnements. Essayez de faire échouer le code lors des tests et limitez les autorisations afin que vos utilisateurs n'aient accès qu'à ce dont ils ont besoin.
  • Demandez à vos collègues de vérifier votre code et vos systèmes. Vous réduisez ainsi la possibilité de faire de graves erreurs ou de pousser des bogues et des vulnérabilités de sécurité en production.
  • Assurez-vous que les bibliothèques que vous utilisez font l'objet d'une maintenance régulière. Chaque entreprise est une entreprise informatique qui utilise les logiciels en interne, ou qui les fournit à ses clients. Quand on garde la sécurité à l'esprit, on comprend le logiciel lui-même, la façon dont les clients l'utilisent, et la façon dont il est utilisé pour assurer une expérience fiable aux clients tant internes qu'externes. Une grande partie de ces informations exigent que l'on contrôle les bibliothèques et les technologies tierces pour détecter les vulnérabilités potentielles et que l'on assure la maintenance de ces bibliothèques.
  • Développez des redondances système. Malgré toute la planification que nous faisons ou la robustesse de nos systèmes, la possibilité que quelque chose de complètement imprévisible se produise est toujours présente, même si elle est aussi peu probable qu'un data center réduit en cendre par un incendie. Vous pouvez éviter de perdre un nombre incalculable d'heures de travail en ayant des redondances en place qui vous aideront à prévenir les pannes et à rétablir les systèmes dans des situations où il vous faudrait autrement tout recommencer à zéro. 
  • Restez informés des toutes dernières bonnes pratiques. Les bonnes pratiques en matière de sécurité changent aussi vite que la technologie avance, il est donc essentiel de toujours garder la sécurité à l'esprit en restant bien informé. Pour ce faire, lisez les publications et les blogs du secteur, participez aux séminaires et aux forums en ligne qui parlent d'ingénierie informatique et de sécurité des logiciels. Les ressources utiles comprennent SLSA.dev, OpenSSF Project, et Snyk Learn Platform.
  • Formez vos équipes informatiques. En ce qui concerne la sécurité, les ingénieurs logiciels jouent un rôle important, ils devraient donc comprendre l'impact de leur code et les problèmes ou vulnérabilités potentiels qui pourraient en découler. En outre, il est essentiel de comprendre les différents composants du développement des applications — de la conception de l'architecture au codage et à la façon dont ils interagissent les uns avec les autres — pour développer des applications sécurisées et comprendre tout le stack. Il est également crucial pour les ingénieurs logiciels de comprendre les politiques, procédures et directives de leur propre entreprise.

Cultiver constamment la sécurité est un état d'esprit qui vaut vraiment la peine d'être cultivé si vous assurez la longévité de la sécurité et de la fiabilité. Grâce à ces conseils, vous et vos équipes garderez la sécurité à l'esprit lorsque vous écrivez du code ou concevez des architectures système pour vos applications.