Steffen fait valoir de bons points dans sa réponse, mais j'aimerais ajouter quelque chose. Le pourquoi, je pense, peut être expliqué dans les sujets suivants:
- Manque de connaissances ou de formation des développeurs
- Churn dans un environnement de développement d'entreprise
- Pression pour livrer plus tôt que prévu
- Insistance insuffisante du haut sur la sécurité
Alors décomposons-les.
Formation des développeurs
De nos jours, on met beaucoup l'accent sur l'éducation des utilisateurs. Apprenez aux utilisateurs à conserver des mots de passe forts. Apprenez aux utilisateurs à identifier le phishing. Apprenez aux utilisateurs à ... Vous voyez l'idée. Certaines entreprises, probablement beaucoup, mais je ne peux parler que de mon expérience professionnelle et je n'ai pas travaillé dans beaucoup d'entreprises;), ont des programmes de formation. Mais ces programmes de formation peuvent être incomplets ou ne pas atteindre la profondeur des connaissances nécessaires. Il ne s'agit pas de dénigrer le travail acharné qui est nécessaire pour élaborer ces programmes. Mais dire que tout comme en milieu scolaire, différentes personnes apprennent différemment. Et à moins d'avoir un programme de formation continue pour les développeurs, il sera difficile de communiquer "utiliser des requêtes paramétrées, et voici comment le faire en PHP, Java, Python, Ruby, Scala, NodeJS, ...". C'est un travail acharné pour développer, fournir et maintenir des programmes pour développeurs qui atteignent efficacement le public.
Churn des développeurs
Ci-dessus, l'une des choses auxquelles j'ai fait allusion était d'atteindre efficacement le public pour différents types d'apprentissage. L'une des raisons à cela est que beaucoup d'entreprises ont un taux de désabonnement élevé pour les développeurs, car les développeurs sont des entrepreneurs qui passent d'un projet à l'autre dans différentes entreprises. Et les entreprises ne sont pas toujours à la même maturité de sécurité. Une entreprise peut ne pas avoir du tout de programme de sécurité, tandis qu'une autre peut avoir un excellent programme de sécurité et le développeur est soudainement bombardé de nouvelles informations qui lui seront demandées pendant les six mois avant de passer à une autre entreprise. C'est triste, mais cela arrive.
Livraison du projet
Livraison du projet dans les délais, voire en avance sur le calendrier. Le chemin le plus rapide pour terminer le projet n'est généralement pas de terminer le projet avec des contrôles de sécurité. C'est faire de la manière la plus brisée qui fonctionne encore. Nous savons que cela entraînera plus de travail, plus de temps et plus d'argent plus tard quand viendra le temps de maintenir le projet et de résoudre les problèmes, mais la direction veut juste que le projet soit retiré.
Un autre élément que j'ai abordé est développer des programmes de formation à la sécurité pour une myriade de langages de programmation. De nombreuses entreprises n'ont pas une ou deux langues définies. Les développeurs aiment donc (ou sont encouragés) à essayer la nouvelle fonctionnalité. Cela inclut les langages et les frameworks. Cela signifie que les programmes de sécurité doivent évoluer en permanence.
Adhésion de la direction
Et nous voici à la direction. Chaque fois, il semble que dans une violation publique, il y avait des contrôles qui auraient pu être mis en œuvre, qui ne sont pas si difficiles, mais qui ont été manqués. Les pressions pour livrer les produits en premier et les inquiétudes en second lieu toujours, malgré leçon après leçon après leçon, reviennent sur les entreprises de produits. La direction doit pousser du haut pour prendre le temps d'intégrer la sécurité au début. Ils doivent comprendre que plus de travail, plus de temps et plus d'argent seront consacrés à la résolution des problèmes, à l'entretien du produit et au paiement des amendes. Mais les analyses coûts-avantages indiquent que le problème est la livraison des produits, et non les amendes ou les travaux de maintenance nécessaires. Ces équations doivent changer, et cela vient, en partie, de l'éducation (wooo, cercle complet) au niveau du MBA. Les chefs d'entreprise doivent apprendre que pour réussir dans un paysage de failles de plus en plus nombreuses, la sécurité doit être au premier plan.
Conclusion
Le pourquoi, même si SQLi a presque 20 ans , a plusieurs raisons. En tant que praticiens de la sécurité, nous ne pouvons pas faire grand-chose pour éduquer et sensibiliser à ce qui se passe lorsque la sécurité n'est pas considérée comme faisant partie intégrante du SDLC.