Icônes SCW
héros bg sans séparateur
Blog

Programmierer erobern die Sicherheitsinfrastruktur als Codeserie — Business Logic

Matias Madou, Ph.D.
Publié le 22 juin 2020
Dernière mise à jour le 9 mars 2026

Nun, das ist es (vorerst). Wir haben das Ende unserer Infrastructure as Code-Serie erreicht. Wir hoffen, Sie hatten Spaß daran, Sicherheitsprobleme in Docker, Ansible, Kubernetes, Terraform und CloudFormation zu überwinden. Bevor wir uns jedoch abmelden, haben wir noch eine weitere Sicherheitslücke, die Sie beherrschen müssen: Bugs in der Geschäftslogik.

Denken Sie, Sie sind jetzt bereit, Ihre Fähigkeiten zu testen? Probiere die letzte spielerische Herausforderung aus:

Wenn Sie sich in einigen Dingen immer noch nicht sicher sind, lesen Sie weiter:

Die Sicherheitslücken, auf die wir uns heute konzentrieren wollen, sind Geschäftslogik Mängel. Diese können auftreten, wenn Programmierer die Regeln der Geschäftslogik nicht ordnungsgemäß implementieren, wodurch ihre Anwendungen anfällig für verschiedene Arten von Angriffen werden könnten, falls ein böswilliger Benutzer sie ausnutzt. Je nach Zweck und Funktionalität, die in jeder Anwendung implementiert ist, kann ein Fehler in der Geschäftslogik dazu führen, dass Rechte erweitert werden, Ressourcen nicht ordnungsgemäß genutzt werden oder eine beliebige Anzahl unbeabsichtigter Geschäftsprozesse ausgeführt wird.

Im Gegensatz zu vielen Sicherheitslücken kann die falsche Implementierung von Geschäftslogikregeln überraschend subtil sein. Sie erfordern besondere Wachsamkeit, um sicherzustellen, dass sie sich nicht in Anwendungen und Code einschleichen.

Was sind einige Beispiele für Fehler in der Geschäftslogik?

Als Beispiel dafür, wie einfach es sein kann, Fehler in der Geschäftslogik zu induzieren, betrachten Sie das folgende Beispiel aus einer Docker-Umgebung, die mit einer Docker Compose-Datei definiert ist. Um Container auf die Ausführung von Funktionen vorzubereiten, könnte ein Entwickler eine Standard-Ressourcenrichtlinie verwenden, die in der Docker Compose-Datei definiert ist, wie im folgenden Beispiel:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Reservierungen:
CPUs: „0,5"

Oberflächlich betrachtet sieht das gut aus, aber diese Ressourcenrichtlinie für Container schränkt den Ressourcenverbrauch nicht richtig ein. Ein Angreifer könnte den Fehler in der Geschäftslogik ausnutzen, um einen Denial-of-Service (DoS) -Angriff zu implementieren.

Um zu versuchen, Benutzer daran zu hindern, zu viele Ressourcen zu beanspruchen, könnte ein Entwickler versuchen, besser zu definieren, was jeder Container unterstützen kann. Der neue Code könnte also eine Platzierungsbeschränkung enthalten:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Reservierungen:
CPUs: „0,5"
Platzierung:
Einschränkungen:
- „node.labels.limit_cpu == 100 M“
- „node.labels.limit_memory == 0,5"

Auf den ersten Blick sieht das so aus, als würde es das lösen Geschäftslogik Fehler. Die neue Platzierungsbeschränkung wirkt sich jedoch nicht auf das Limit für die Ressourcennutzung für den Docker-Containerdienst aus. Es wird nur verwendet, um einen Knoten für die Planung des Containers auszuwählen. In diesem Fall ist ein DoS-Angriff immer noch möglich. Der Angreifer müsste zuerst einen Docker-Container kompromittieren, wäre danach aber in der Lage, Ressourcen unbegrenzt abzubauen.

Wie Sie sehen, kann es ein kniffliges Unterfangen sein, über Fehler in der Geschäftslogik nachzudenken und zu programmieren, um sie zu beheben.

Beseitigung von Fehlern in der Geschäftslogik

Bei Fehlern in der Geschäftslogik liegt der Schlüssel darin, zu wissen, dass sie existieren. Sie müssen darauf achten, sie von Ihrer Umgebung fernzuhalten, während neuer Code geschrieben wird. Geschäftsregeln und bewährte Verfahren sollten in allen Phasen des Anwendungsentwicklungsprozesses, einschließlich Design, Implementierung und Test, klar definiert und überprüft werden.

Um beispielsweise zu verhindern, dass ein Fehler in der Geschäftslogik einen DoS-Angriff wie im obigen Beispiel ermöglicht, empfiehlt es sich, die Menge an Ressourcen zu begrenzen, die jeder von Ihnen erstellte Docker-Container verwenden kann. Insbesondere müssen im Abschnitt „Limits“ die Anzahl der CPUs und die Menge an Speicher angegeben werden, die ein Docker-Container verwenden kann. Ein Beispiel wäre:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Speicher: 100M
Reservierungen:
CPUs: „0,5"
Speicher: 50M

Die Verwendung von Code wie dem obigen Beispiel als Richtlinie würde einen großen Fehler in der Geschäftslogik aus der Umgebung entfernen und DoS-Angriffe verhindern. Dies würde auch dann funktionieren, wenn ein Angreifer einen der Docker-Container kompromittiert hätte. In diesem Fall wäre der Angreifer immer noch nicht in der Lage, seinen Halt zu nutzen, um Ressourcen zu erschöpfen.

Bedrohungsmodellierung kann hilfreich sein, indem sie definiert, wie verschiedene Angriffe stattfinden, und sicherstellt, dass Geschäftslogikregeln verwendet werden, um sie zu verhindern und einzuschränken. Tests auf der Grundlage von Compliance-Regeln und bekannten Missbrauchsfällen könnten ebenfalls hilfreich sein, um Fehler in der Geschäftslogik zu erkennen, die durch das Raster gleiten.

Fehler in der Geschäftslogik gehören zu den subtilsten Sicherheitslücken, die sich in Anwendungen einschleichen können, aber nicht weniger gefährlich sind als andere, bekanntere Risiken. Wenn Sie wissen, wie sie auftreten können, und bewährte Methoden anwenden, können Sie sie während der Anwendungsentwicklung von Ihrer Umgebung fernhalten. So wird sichergestellt, dass sie niemals in eine Produktionsumgebung gelangen, in der sie von Angreifern missbraucht werden können, die mit ihrer Ausnutzung bestens vertraut sind.

Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere eine Demo Nehmen Sie an dieser IaC-Herausforderung auf der Secure Code Warrior-Schulungsplattform teil, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.


Consulter la ressource
Consulter la ressource

Diese Sicherheitsanfälligkeit kann auftreten, wenn Programmierer die Regeln der Geschäftslogik nicht ordnungsgemäß implementieren, wodurch ihre Anwendungen anfällig für verschiedene Arten von Angriffen werden könnten, falls ein böswilliger Benutzer sie ausnutzt.

Souhaitez-vous en savoir davantage ?

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

En savoir plus

Secure Code Warrior là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.

Réserver une démonstration
Partager sur :
marques LinkedInSocialLogo x
Auteur
Matias Madou, Ph.D.
Publié le 22 juin 2020

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.

Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.

Partager sur :
marques LinkedInSocialLogo x

Nun, das ist es (vorerst). Wir haben das Ende unserer Infrastructure as Code-Serie erreicht. Wir hoffen, Sie hatten Spaß daran, Sicherheitsprobleme in Docker, Ansible, Kubernetes, Terraform und CloudFormation zu überwinden. Bevor wir uns jedoch abmelden, haben wir noch eine weitere Sicherheitslücke, die Sie beherrschen müssen: Bugs in der Geschäftslogik.

Denken Sie, Sie sind jetzt bereit, Ihre Fähigkeiten zu testen? Probiere die letzte spielerische Herausforderung aus:

Wenn Sie sich in einigen Dingen immer noch nicht sicher sind, lesen Sie weiter:

Die Sicherheitslücken, auf die wir uns heute konzentrieren wollen, sind Geschäftslogik Mängel. Diese können auftreten, wenn Programmierer die Regeln der Geschäftslogik nicht ordnungsgemäß implementieren, wodurch ihre Anwendungen anfällig für verschiedene Arten von Angriffen werden könnten, falls ein böswilliger Benutzer sie ausnutzt. Je nach Zweck und Funktionalität, die in jeder Anwendung implementiert ist, kann ein Fehler in der Geschäftslogik dazu führen, dass Rechte erweitert werden, Ressourcen nicht ordnungsgemäß genutzt werden oder eine beliebige Anzahl unbeabsichtigter Geschäftsprozesse ausgeführt wird.

Im Gegensatz zu vielen Sicherheitslücken kann die falsche Implementierung von Geschäftslogikregeln überraschend subtil sein. Sie erfordern besondere Wachsamkeit, um sicherzustellen, dass sie sich nicht in Anwendungen und Code einschleichen.

Was sind einige Beispiele für Fehler in der Geschäftslogik?

Als Beispiel dafür, wie einfach es sein kann, Fehler in der Geschäftslogik zu induzieren, betrachten Sie das folgende Beispiel aus einer Docker-Umgebung, die mit einer Docker Compose-Datei definiert ist. Um Container auf die Ausführung von Funktionen vorzubereiten, könnte ein Entwickler eine Standard-Ressourcenrichtlinie verwenden, die in der Docker Compose-Datei definiert ist, wie im folgenden Beispiel:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Reservierungen:
CPUs: „0,5"

Oberflächlich betrachtet sieht das gut aus, aber diese Ressourcenrichtlinie für Container schränkt den Ressourcenverbrauch nicht richtig ein. Ein Angreifer könnte den Fehler in der Geschäftslogik ausnutzen, um einen Denial-of-Service (DoS) -Angriff zu implementieren.

Um zu versuchen, Benutzer daran zu hindern, zu viele Ressourcen zu beanspruchen, könnte ein Entwickler versuchen, besser zu definieren, was jeder Container unterstützen kann. Der neue Code könnte also eine Platzierungsbeschränkung enthalten:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Reservierungen:
CPUs: „0,5"
Platzierung:
Einschränkungen:
- „node.labels.limit_cpu == 100 M“
- „node.labels.limit_memory == 0,5"

Auf den ersten Blick sieht das so aus, als würde es das lösen Geschäftslogik Fehler. Die neue Platzierungsbeschränkung wirkt sich jedoch nicht auf das Limit für die Ressourcennutzung für den Docker-Containerdienst aus. Es wird nur verwendet, um einen Knoten für die Planung des Containers auszuwählen. In diesem Fall ist ein DoS-Angriff immer noch möglich. Der Angreifer müsste zuerst einen Docker-Container kompromittieren, wäre danach aber in der Lage, Ressourcen unbegrenzt abzubauen.

Wie Sie sehen, kann es ein kniffliges Unterfangen sein, über Fehler in der Geschäftslogik nachzudenken und zu programmieren, um sie zu beheben.

Beseitigung von Fehlern in der Geschäftslogik

Bei Fehlern in der Geschäftslogik liegt der Schlüssel darin, zu wissen, dass sie existieren. Sie müssen darauf achten, sie von Ihrer Umgebung fernzuhalten, während neuer Code geschrieben wird. Geschäftsregeln und bewährte Verfahren sollten in allen Phasen des Anwendungsentwicklungsprozesses, einschließlich Design, Implementierung und Test, klar definiert und überprüft werden.

Um beispielsweise zu verhindern, dass ein Fehler in der Geschäftslogik einen DoS-Angriff wie im obigen Beispiel ermöglicht, empfiehlt es sich, die Menge an Ressourcen zu begrenzen, die jeder von Ihnen erstellte Docker-Container verwenden kann. Insbesondere müssen im Abschnitt „Limits“ die Anzahl der CPUs und die Menge an Speicher angegeben werden, die ein Docker-Container verwenden kann. Ein Beispiel wäre:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Speicher: 100M
Reservierungen:
CPUs: „0,5"
Speicher: 50M

Die Verwendung von Code wie dem obigen Beispiel als Richtlinie würde einen großen Fehler in der Geschäftslogik aus der Umgebung entfernen und DoS-Angriffe verhindern. Dies würde auch dann funktionieren, wenn ein Angreifer einen der Docker-Container kompromittiert hätte. In diesem Fall wäre der Angreifer immer noch nicht in der Lage, seinen Halt zu nutzen, um Ressourcen zu erschöpfen.

Bedrohungsmodellierung kann hilfreich sein, indem sie definiert, wie verschiedene Angriffe stattfinden, und sicherstellt, dass Geschäftslogikregeln verwendet werden, um sie zu verhindern und einzuschränken. Tests auf der Grundlage von Compliance-Regeln und bekannten Missbrauchsfällen könnten ebenfalls hilfreich sein, um Fehler in der Geschäftslogik zu erkennen, die durch das Raster gleiten.

Fehler in der Geschäftslogik gehören zu den subtilsten Sicherheitslücken, die sich in Anwendungen einschleichen können, aber nicht weniger gefährlich sind als andere, bekanntere Risiken. Wenn Sie wissen, wie sie auftreten können, und bewährte Methoden anwenden, können Sie sie während der Anwendungsentwicklung von Ihrer Umgebung fernhalten. So wird sichergestellt, dass sie niemals in eine Produktionsumgebung gelangen, in der sie von Angreifern missbraucht werden können, die mit ihrer Ausnutzung bestens vertraut sind.

Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere eine Demo Nehmen Sie an dieser IaC-Herausforderung auf der Secure Code Warrior-Schulungsplattform teil, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.


Consulter la ressource
Consulter la ressource

Veuillez remplir le formulaire ci-dessous pour télécharger le rapport.

Nous sollicitons votre autorisation pour vous envoyer des informations sur nos produits et/ou des sujets connexes liés au codage sécurisé. Nous traitons toujours vos données personnelles avec le plus grand soin et ne les vendons jamais à d'autres entreprises à des fins de marketing.

Soumettre
icône de réussite scw
icône d'erreur scw
Pour envoyer le formulaire, veuillez activer les cookies « Analytics ». Une fois que vous avez terminé, vous pouvez les désactiver à tout moment.

Nun, das ist es (vorerst). Wir haben das Ende unserer Infrastructure as Code-Serie erreicht. Wir hoffen, Sie hatten Spaß daran, Sicherheitsprobleme in Docker, Ansible, Kubernetes, Terraform und CloudFormation zu überwinden. Bevor wir uns jedoch abmelden, haben wir noch eine weitere Sicherheitslücke, die Sie beherrschen müssen: Bugs in der Geschäftslogik.

Denken Sie, Sie sind jetzt bereit, Ihre Fähigkeiten zu testen? Probiere die letzte spielerische Herausforderung aus:

Wenn Sie sich in einigen Dingen immer noch nicht sicher sind, lesen Sie weiter:

Die Sicherheitslücken, auf die wir uns heute konzentrieren wollen, sind Geschäftslogik Mängel. Diese können auftreten, wenn Programmierer die Regeln der Geschäftslogik nicht ordnungsgemäß implementieren, wodurch ihre Anwendungen anfällig für verschiedene Arten von Angriffen werden könnten, falls ein böswilliger Benutzer sie ausnutzt. Je nach Zweck und Funktionalität, die in jeder Anwendung implementiert ist, kann ein Fehler in der Geschäftslogik dazu führen, dass Rechte erweitert werden, Ressourcen nicht ordnungsgemäß genutzt werden oder eine beliebige Anzahl unbeabsichtigter Geschäftsprozesse ausgeführt wird.

Im Gegensatz zu vielen Sicherheitslücken kann die falsche Implementierung von Geschäftslogikregeln überraschend subtil sein. Sie erfordern besondere Wachsamkeit, um sicherzustellen, dass sie sich nicht in Anwendungen und Code einschleichen.

Was sind einige Beispiele für Fehler in der Geschäftslogik?

Als Beispiel dafür, wie einfach es sein kann, Fehler in der Geschäftslogik zu induzieren, betrachten Sie das folgende Beispiel aus einer Docker-Umgebung, die mit einer Docker Compose-Datei definiert ist. Um Container auf die Ausführung von Funktionen vorzubereiten, könnte ein Entwickler eine Standard-Ressourcenrichtlinie verwenden, die in der Docker Compose-Datei definiert ist, wie im folgenden Beispiel:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Reservierungen:
CPUs: „0,5"

Oberflächlich betrachtet sieht das gut aus, aber diese Ressourcenrichtlinie für Container schränkt den Ressourcenverbrauch nicht richtig ein. Ein Angreifer könnte den Fehler in der Geschäftslogik ausnutzen, um einen Denial-of-Service (DoS) -Angriff zu implementieren.

Um zu versuchen, Benutzer daran zu hindern, zu viele Ressourcen zu beanspruchen, könnte ein Entwickler versuchen, besser zu definieren, was jeder Container unterstützen kann. Der neue Code könnte also eine Platzierungsbeschränkung enthalten:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Reservierungen:
CPUs: „0,5"
Platzierung:
Einschränkungen:
- „node.labels.limit_cpu == 100 M“
- „node.labels.limit_memory == 0,5"

Auf den ersten Blick sieht das so aus, als würde es das lösen Geschäftslogik Fehler. Die neue Platzierungsbeschränkung wirkt sich jedoch nicht auf das Limit für die Ressourcennutzung für den Docker-Containerdienst aus. Es wird nur verwendet, um einen Knoten für die Planung des Containers auszuwählen. In diesem Fall ist ein DoS-Angriff immer noch möglich. Der Angreifer müsste zuerst einen Docker-Container kompromittieren, wäre danach aber in der Lage, Ressourcen unbegrenzt abzubauen.

Wie Sie sehen, kann es ein kniffliges Unterfangen sein, über Fehler in der Geschäftslogik nachzudenken und zu programmieren, um sie zu beheben.

Beseitigung von Fehlern in der Geschäftslogik

Bei Fehlern in der Geschäftslogik liegt der Schlüssel darin, zu wissen, dass sie existieren. Sie müssen darauf achten, sie von Ihrer Umgebung fernzuhalten, während neuer Code geschrieben wird. Geschäftsregeln und bewährte Verfahren sollten in allen Phasen des Anwendungsentwicklungsprozesses, einschließlich Design, Implementierung und Test, klar definiert und überprüft werden.

Um beispielsweise zu verhindern, dass ein Fehler in der Geschäftslogik einen DoS-Angriff wie im obigen Beispiel ermöglicht, empfiehlt es sich, die Menge an Ressourcen zu begrenzen, die jeder von Ihnen erstellte Docker-Container verwenden kann. Insbesondere müssen im Abschnitt „Limits“ die Anzahl der CPUs und die Menge an Speicher angegeben werden, die ein Docker-Container verwenden kann. Ein Beispiel wäre:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Speicher: 100M
Reservierungen:
CPUs: „0,5"
Speicher: 50M

Die Verwendung von Code wie dem obigen Beispiel als Richtlinie würde einen großen Fehler in der Geschäftslogik aus der Umgebung entfernen und DoS-Angriffe verhindern. Dies würde auch dann funktionieren, wenn ein Angreifer einen der Docker-Container kompromittiert hätte. In diesem Fall wäre der Angreifer immer noch nicht in der Lage, seinen Halt zu nutzen, um Ressourcen zu erschöpfen.

Bedrohungsmodellierung kann hilfreich sein, indem sie definiert, wie verschiedene Angriffe stattfinden, und sicherstellt, dass Geschäftslogikregeln verwendet werden, um sie zu verhindern und einzuschränken. Tests auf der Grundlage von Compliance-Regeln und bekannten Missbrauchsfällen könnten ebenfalls hilfreich sein, um Fehler in der Geschäftslogik zu erkennen, die durch das Raster gleiten.

Fehler in der Geschäftslogik gehören zu den subtilsten Sicherheitslücken, die sich in Anwendungen einschleichen können, aber nicht weniger gefährlich sind als andere, bekanntere Risiken. Wenn Sie wissen, wie sie auftreten können, und bewährte Methoden anwenden, können Sie sie während der Anwendungsentwicklung von Ihrer Umgebung fernhalten. So wird sichergestellt, dass sie niemals in eine Produktionsumgebung gelangen, in der sie von Angreifern missbraucht werden können, die mit ihrer Ausnutzung bestens vertraut sind.

Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere eine Demo Nehmen Sie an dieser IaC-Herausforderung auf der Secure Code Warrior-Schulungsplattform teil, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.


Veuillez consulter le webinaire.
Veuillez commencer
En savoir plus

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.

Secure Code Warrior là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.

Consulter le rapportRéserver une démonstration
Télécharger le PDF
Consulter la ressource
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager sur :
marques LinkedInSocialLogo x
Auteur
Matias Madou, Ph.D.
Publié le 22 juin 2020

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.

Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.

Partager sur :
marques LinkedInSocialLogo x

Nun, das ist es (vorerst). Wir haben das Ende unserer Infrastructure as Code-Serie erreicht. Wir hoffen, Sie hatten Spaß daran, Sicherheitsprobleme in Docker, Ansible, Kubernetes, Terraform und CloudFormation zu überwinden. Bevor wir uns jedoch abmelden, haben wir noch eine weitere Sicherheitslücke, die Sie beherrschen müssen: Bugs in der Geschäftslogik.

Denken Sie, Sie sind jetzt bereit, Ihre Fähigkeiten zu testen? Probiere die letzte spielerische Herausforderung aus:

Wenn Sie sich in einigen Dingen immer noch nicht sicher sind, lesen Sie weiter:

Die Sicherheitslücken, auf die wir uns heute konzentrieren wollen, sind Geschäftslogik Mängel. Diese können auftreten, wenn Programmierer die Regeln der Geschäftslogik nicht ordnungsgemäß implementieren, wodurch ihre Anwendungen anfällig für verschiedene Arten von Angriffen werden könnten, falls ein böswilliger Benutzer sie ausnutzt. Je nach Zweck und Funktionalität, die in jeder Anwendung implementiert ist, kann ein Fehler in der Geschäftslogik dazu führen, dass Rechte erweitert werden, Ressourcen nicht ordnungsgemäß genutzt werden oder eine beliebige Anzahl unbeabsichtigter Geschäftsprozesse ausgeführt wird.

Im Gegensatz zu vielen Sicherheitslücken kann die falsche Implementierung von Geschäftslogikregeln überraschend subtil sein. Sie erfordern besondere Wachsamkeit, um sicherzustellen, dass sie sich nicht in Anwendungen und Code einschleichen.

Was sind einige Beispiele für Fehler in der Geschäftslogik?

Als Beispiel dafür, wie einfach es sein kann, Fehler in der Geschäftslogik zu induzieren, betrachten Sie das folgende Beispiel aus einer Docker-Umgebung, die mit einer Docker Compose-Datei definiert ist. Um Container auf die Ausführung von Funktionen vorzubereiten, könnte ein Entwickler eine Standard-Ressourcenrichtlinie verwenden, die in der Docker Compose-Datei definiert ist, wie im folgenden Beispiel:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Reservierungen:
CPUs: „0,5"

Oberflächlich betrachtet sieht das gut aus, aber diese Ressourcenrichtlinie für Container schränkt den Ressourcenverbrauch nicht richtig ein. Ein Angreifer könnte den Fehler in der Geschäftslogik ausnutzen, um einen Denial-of-Service (DoS) -Angriff zu implementieren.

Um zu versuchen, Benutzer daran zu hindern, zu viele Ressourcen zu beanspruchen, könnte ein Entwickler versuchen, besser zu definieren, was jeder Container unterstützen kann. Der neue Code könnte also eine Platzierungsbeschränkung enthalten:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Reservierungen:
CPUs: „0,5"
Platzierung:
Einschränkungen:
- „node.labels.limit_cpu == 100 M“
- „node.labels.limit_memory == 0,5"

Auf den ersten Blick sieht das so aus, als würde es das lösen Geschäftslogik Fehler. Die neue Platzierungsbeschränkung wirkt sich jedoch nicht auf das Limit für die Ressourcennutzung für den Docker-Containerdienst aus. Es wird nur verwendet, um einen Knoten für die Planung des Containers auszuwählen. In diesem Fall ist ein DoS-Angriff immer noch möglich. Der Angreifer müsste zuerst einen Docker-Container kompromittieren, wäre danach aber in der Lage, Ressourcen unbegrenzt abzubauen.

Wie Sie sehen, kann es ein kniffliges Unterfangen sein, über Fehler in der Geschäftslogik nachzudenken und zu programmieren, um sie zu beheben.

Beseitigung von Fehlern in der Geschäftslogik

Bei Fehlern in der Geschäftslogik liegt der Schlüssel darin, zu wissen, dass sie existieren. Sie müssen darauf achten, sie von Ihrer Umgebung fernzuhalten, während neuer Code geschrieben wird. Geschäftsregeln und bewährte Verfahren sollten in allen Phasen des Anwendungsentwicklungsprozesses, einschließlich Design, Implementierung und Test, klar definiert und überprüft werden.

Um beispielsweise zu verhindern, dass ein Fehler in der Geschäftslogik einen DoS-Angriff wie im obigen Beispiel ermöglicht, empfiehlt es sich, die Menge an Ressourcen zu begrenzen, die jeder von Ihnen erstellte Docker-Container verwenden kann. Insbesondere müssen im Abschnitt „Limits“ die Anzahl der CPUs und die Menge an Speicher angegeben werden, die ein Docker-Container verwenden kann. Ein Beispiel wäre:

bereitstellen:
Ressourcen:
Grenzwerte:
CPUs: „0,5"
Speicher: 100M
Reservierungen:
CPUs: „0,5"
Speicher: 50M

Die Verwendung von Code wie dem obigen Beispiel als Richtlinie würde einen großen Fehler in der Geschäftslogik aus der Umgebung entfernen und DoS-Angriffe verhindern. Dies würde auch dann funktionieren, wenn ein Angreifer einen der Docker-Container kompromittiert hätte. In diesem Fall wäre der Angreifer immer noch nicht in der Lage, seinen Halt zu nutzen, um Ressourcen zu erschöpfen.

Bedrohungsmodellierung kann hilfreich sein, indem sie definiert, wie verschiedene Angriffe stattfinden, und sicherstellt, dass Geschäftslogikregeln verwendet werden, um sie zu verhindern und einzuschränken. Tests auf der Grundlage von Compliance-Regeln und bekannten Missbrauchsfällen könnten ebenfalls hilfreich sein, um Fehler in der Geschäftslogik zu erkennen, die durch das Raster gleiten.

Fehler in der Geschäftslogik gehören zu den subtilsten Sicherheitslücken, die sich in Anwendungen einschleichen können, aber nicht weniger gefährlich sind als andere, bekanntere Risiken. Wenn Sie wissen, wie sie auftreten können, und bewährte Methoden anwenden, können Sie sie während der Anwendungsentwicklung von Ihrer Umgebung fernhalten. So wird sichergestellt, dass sie niemals in eine Produktionsumgebung gelangen, in der sie von Angreifern missbraucht werden können, die mit ihrer Ausnutzung bestens vertraut sind.

Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere eine Demo Nehmen Sie an dieser IaC-Herausforderung auf der Secure Code Warrior-Schulungsplattform teil, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.


Table des matières

Télécharger le PDF
Consulter la ressource
Souhaitez-vous en savoir davantage ?

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

En savoir plus

Secure Code Warrior là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.

Réserver une démonstrationTélécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour débuter

Plus d'articles
Centre de ressources

Ressources pour débuter

Plus d'articles