SCW 아이콘
영웅 배경, 구분선 없음
블로그

Programmierer erobern die Sicherheitsinfrastruktur als Codeserie — Business Logic

마티아스 마두, Ph.
게시일 : 2020년 6월 22일
마지막 업데이트: 2026년 3월 9일

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.


리소스 보기
리소스 보기

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.

더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 소프트웨어 개발 주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 귀사를 Secure Code Warrior . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시일: 2020년 6월 22일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적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.


리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하십시오.

귀하의 허락을 받아 당사 제품 및 안전한 코딩과 관련된 주제에 대한 정보를 보내드리고자 합니다. 당사는 귀하의 개인정보를 항상 세심하게 처리하며, 마케팅 목적으로 타사에 판매하지 않습니다.

제출
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 '분석' 쿠키를 활성화해 주십시오. 완료 후에는 언제든지 다시 비활성화할 수 있습니다.

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.


웨비나 시청하기
시작하세요
더 알아보세요

아래 링크를 클릭하여 이 자료의 PDF를 다운로드하십시오.

Secure Code Warrior 소프트웨어 개발 주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 귀사를 Secure Code Warrior . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시일: 2020년 6월 22일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적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.


목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 소프트웨어 개발 주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 귀사를 Secure Code Warrior . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 허브

시작을 위한 자료

더 많은 글
자원 허브

시작을 위한 자료

더 많은 글