Curriculum
Willkommen zum grundlegenden Untereinheit über sicheren Endpunkt Schutz, einem entscheidenden Aspekt für alle kleinen und mittleren Unternehmen (KMU) im heutigen digitalen Zeitalter. In diesem Abschnitt werden Sie mit der Bedeutung, den grundlegenden Konzepten und Prinzipien der sicheren Softwareentwicklung vertraut gemacht. In diesem Modul werden die Konzepte der Softwaresicherheit erläutert und die grundlegenden Schritte im Prozess der sicheren Softwareentwicklung hervorgehoben. Durch die Vermittlung von Kenntnissen und Fähigkeiten, die für die Praxis der sicheren Softwareentwicklung erforderlich sind, werden die Teilnehmer*innen dazu ermutigt, Sicherheitsschwachstellen zu verringern und Software zu erstellen, die resistenter gegen Cyber-Bedrohungen ist.
Sichere Softwareentwicklung ist ein Ansatz zur Erstellung von Computersoftware, der die Bedeutung der Berücksichtigung von Sicherheitsaspekten in jeder Phase des Entwicklungsprozesses betont. Es handelt sich um eine proaktive und umfassende Strategie, um zu verhindern, dass Sicherheitslücken und Bedrohungen Software Anwendungen beeinträchtigen. Hier erhalten Sie einen tieferen Einblick in das Konzept;

Abbildung -1
(Quelle: https://integrio.net/blog/improving-software-security)
Die Sicherheit im Softwareentwicklungszyklus (SDLC) ist ein kritischer Aspekt, der in jeder Phase der Entwicklung beachtet werden muss. Die Integration der Sicherheit in den SDLC stellt sicher, dass die Software mit einer starken Verteidigung gegen potenzielle Cyber-Bedrohungen erstellt wird, die immer ausgefeilter werden und sich ständig verändern. Wenn der Sicherheit von Anfang an Priorität eingeräumt wird, können die Entwickler Schwachstellen frühzeitig erkennen und beseitigen, was weitaus kosteneffizienter ist als die Behebung dieser Probleme, nachdem die Software bereits bereitgestellt wurde. Eine frühzeitige Erkennung spart nicht nur Geld, sondern verringert auch die Komplexität der Korrekturen und das Risiko, dass bei der Behebung neue Probleme auftauchen.

Abbildung 2
(Quelle: https://softprodigy.com/secure-software-development-life-cycle-navigate-your-way-to-security/)
Sichere Entwicklung ist ein wichtiger Aspekt der modernen Softwareentwicklung, der sich auf die Einbettung von Sicherheitsprinzipien in jeder Phase des Softwareentwicklungszyklus (SDLC) konzentriert. Durch die Einhaltung der Grundsätze der sicheren Entwicklung können Unternehmen Software produzieren, die gegen Cyber-Bedrohungen resistent ist und in der Lage ist, Benutzerdaten zu schützen und die Funktionalität auch bei Angriffen aufrechtzuerhalten. Hier sind einige der wichtigsten Grundsätze der sicheren Entwicklung;
Proaktive Sicherheit Integration: Dies beinhaltet die Berücksichtigung von Sicherheitsaspekten während der Entwurfsphase, die Auswahl sicherer Frameworks und Bibliotheken und die Sicherstellung, dass Sicherheitsanforderungen zusammen mit funktionalen Anforderungen definiert werden.
Geringstmögliche Privilegien: Software sollte mit dem Minimum an Privilegien arbeiten, das zur Erfüllung ihrer Aufgaben erforderlich ist. Dieser Grundsatz begrenzt den potenziellen Schaden, der entstehen kann, wenn die Software beeinträchtigt wird. Er gilt nicht nur für die Software selbst, sondern auch für die Benutzer*innen und Systeme, die mit ihr interagieren.
Verteidigung mit Tiefgang: Keine einzelne Sicherheitsmaßnahme ist narrensicher, daher kann der Einsatz mehrerer Ebenen von Sicherheitskontrollen (physisch, technisch, administrativ) für Redundanz sorgen und das Risiko einer einzelnen Schwachstelle mindern.
Sicheres Versagen: Wenn eine Software auf einen Fehler stößt, sollte sie so ausfallen, dass die Sicherheit nicht beeinträchtigt wird.
Sicherheit durch Design: Die Sicherheit sollte ein integraler Bestandteil des Softwareentwurfs sein.
Regelmäßige Sicherheitstests: Sicherheitstests sollten ein fortlaufender Prozess sein, nicht nur ein einmaliges Ereignis vor der Bereitstellung.
Grundsatz des geringsten Wissens (POLK): Dieser auch als Grundsatz der geringstmöglichen Offenlegung bekannte Grundsatz besagt, dass ein System nicht mehr Informationen oder Funktionen preisgeben sollte, als für den beabsichtigten Zweck erforderlich sind.
Sichere Standardeinstellungen: Die Standard Konfigurationseinstellungen der Software sollten von vornherein sicher sein, so dass die Benutzer auf Wunsch auch weniger sichere Konfigurationen wählen können.
Offenes Design: Das Design der Software sollte von Expert*innen überprüft werden können, da Transparenz zu robusteren Sicherheitslösungen führen kann.
Validierung und Bereinigung von Eingaben: Die Validierung und Bereinigung von Eingaben kann gängige Angriffe wie SQL-Injection, Cross-Site-Scripting (XSS) und andere verhindern.
Patch-Verwaltung: Für die Sicherheit ist es entscheidend, dass die Software auf dem neuesten Stand bleibt. Es sollte ein Verfahren vorhanden sein, mit dem Patches und Updates schnell eingespielt werden, wenn Schwachstellen entdeckt werden.
Reaktion auf Zwischenfälle und Wiederherstellung: Organisationen müssen über Pläne für die Reaktion auf Sicherheitsvorfälle verfügen.
Aufklärung und Sensibilisierung: Alle Beteiligten, einschließlich Entwickler*innen, Tester und Endbenutzer*innen, sollten über die Bedeutung der Sicherheit aufgeklärt werden.

Abbildung-3
(Quelle: https://www.semanticscholar.org/paper/SECURE-SOFTWARE-DEVELOPMENT-FRAMEWORK-%3A-PRINCIPLES)
Not a member yet? Register now
Are you a member? Login now