4 principes pour créer un nouveau plan de développement logiciel sécurisé

Les groupes de piratage professionnels et parrainés par l’État consacrent chaque année plus de temps, d’argent et d’efforts à la cybercriminalité. Les acteurs de la menace utilisent de nouvelles techniques dans de nouveaux types d’attaques que certains des meilleurs experts mondiaux en cybersécurité n’ont jamais vus auparavant. Enhardis et bien financés, les acteurs malveillants disposent désormais des ressources nécessaires pour cibler non seulement les grandes entreprises dont une violation réussie pourrait être très lucrative, mais aussi les petites organisations. Une étude récente de l’Université Duke a révélé que 85 % des entreprises de taille moyenne interrogées dans tous les secteurs ont déclaré que leurs systèmes avaient été pénétrés avec succès à un moment donné, bien que bon nombre de ces organisations suivent potentiellement les meilleures pratiques établies de longue date.

Une industrie sur laquelle les acteurs de la menace sont obsédés est le développement de logiciels informatiques. Parce que nous comptons presque constamment sur les logiciels dans nos vies personnelles et professionnelles, il est essentiel que les entreprises aient des processus en place pour garantir la sécurité de leurs logiciels et garder une longueur d’avance sur les acteurs malveillants et les menaces imprévisibles.

Chez SolarWinds, nous aidons à créer un développement logiciel plus sécurisé avec notre système de construction de nouvelle génération, qui utilise un processus de construction parallèle pour développer des logiciels dans plusieurs environnements sécurisés, dupliqués et éphémères. Pour aider à protéger l’ensemble de l’industrie contre les menaces futures, nous publions des composants de ce système de construction en open source, afin que d’autres entreprises puissent bénéficier de ce que nous avons construit.

Voici quatre principes directeurs que les entreprises du système de construction de nouvelle génération pourraient envisager d’adopter. Combinés à la coopération public-privé et au partage d’informations liées aux menaces, ces principes peuvent aider les organisations à améliorer la sécurité face à des risques accrus.

Construire des systèmes qui s’autodétruisent et sont construits avec du code

Pour sécuriser le processus de développement logiciel, les organisations doivent mettre en œuvre des systèmes ne laissant aucun environnement à long terme. Ceci est essentiel, car les environnements et les systèmes de construction matures peuvent contenir des vulnérabilités plus graves et des composants obsolètes, offrant une opportunité plus facile aux attaquants de frapper.

Les organisations peuvent atténuer ces vulnérabilités en développant des produits dans des environnements de construction de logiciels à court terme, ce qui signifie qu’ils s’autodétruisent une fois chaque tâche terminée. Cela supprime la possibilité pour les attaquants d’établir une « base » dans les systèmes, ce qui rend considérablement plus difficile pour les acteurs de la menace de tenter une attaque.

Le fait que le système de construction soit basé sur du code active le modèle d’autodestruction à court terme et fournit des protections et des versions pour les composants de construction.

Cette méthode de développement nécessite un processus étroitement contrôlé et un leadership organisé, car les organisations doivent isoler, séparer administrativement et surveiller de près les systèmes de construction.

La reproductibilité est la clé

En matière de développement de logiciels, la reproductibilité est essentielle pour garantir la sécurité de la construction. Le principe de la reproductibilité est qu’une équipe de développement peut créer un logiciel à un endroit et le reconstruire sur un autre système ou à un autre moment avec le même résultat.

En s’appuyant sur des versions reproductibles, les développeurs peuvent s’assurer que leur logiciel se comporte de la même manière, en éliminant les disparités dans le code, en identifiant les anomalies et en prévenant les intrusions. Grâce aux builds reproductibles, les sociétés de développement de logiciels peuvent reproduire les erreurs pour mieux les comprendre et les corriger, et identifier tout ajustement non autorisé dans le pipeline de build.

Une version reproductible est essentielle car elle permet également au développement de logiciels de comparer la sortie finale du code source pour s’assurer qu’elle est la même, quel que soit l’endroit ou le moment où la version a été créée. Ceci est essentiel pour la prochaine étape du processus : construire en parallèle.

Construire en parallèle

Une autre façon de renforcer l’intégrité du processus de développement logiciel consiste à utiliser ce que l’on appelle un processus de « construction parallèle ». Pour une sécurité maximale, cela implique l’utilisation de trois pipelines de construction logiques : développeur, staging/validation et production. Toutes les constructions doivent répondre aux caractéristiques décrites ci-dessus.

Le pipeline de développeur effectue des builds d’ingénierie normaux. L’accès à l’environnement de construction est nécessaire pour la plupart des travaux d’ingénierie. La version de préproduction/validation a un accès limité. En plus d’effectuer la construction, c’est également là que se déroulent les tests de qualité, de sécurité et de performances.

Le pipeline final est le pipeline de production. L’accès à ce pipeline est extrêmement limité. Seules quelques personnes prédéfinies y ont accès. Avant l’expédition depuis le pipeline de production, une comparaison est effectuée avec le pipeline intermédiaire. Le modèle de build adopte une approche de violation supposée, ce qui signifie qu’une personne compromise ne peut pas compromettre indépendamment une build de production.

Ces environnements parallèles ont chacun un point d’entrée unique et sont des environnements indépendants, réduisant les vulnérabilités en concentrant la menace potentielle sur un seul environnement. Si l’un est compromis, les efforts d’attaque ont une faible probabilité d’être reproduits dans les deux environnements restants.

Revenez sur vos pas

La traçabilité est le dernier principe essentiel pour garantir un processus de construction sécurisé. Il est essentiel de vérifier chaque étape de construction via un processus de suivi que vous pouvez vérifier avant la publication du logiciel. Cela nécessite l’approbation des ingénieurs et de la direction pour chaque projet en cours d’exécution dans le pipeline.

L’idée est de surveiller attentivement chaque étape, de vérifier que chaque code correspond et est correctement implémenté, et qu’il existe un historique clair et traçable pour comprendre toute erreur ou anomalie. L’ajout d’une validation humaine avant une version de production permet de garantir que toutes les mesures appropriées sont prises pour assurer la qualité et la sécurité.

Le paysage de la cybersécurité est en constante évolution. De nouvelles menaces et de mauvais acteurs motivés et bien financés émergent chaque jour. L’amélioration de la sécurité du processus de développement logiciel est un élément clé pour contrecarrer et atténuer ces attaquants. Nous encourageons l’industrie à adopter ces principes, à être plus ouverte sur la sécurité et à partager les informations et les meilleures pratiques pour améliorer la sécurité de l’industrie dans son ensemble.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite