
FIASSE v1.1
Ein Framework zur Integration von Anwendungssicherheit in die Softwareentwicklung (FIASSE) unter Verwendung des Securable Software Engineering Model (SSEM)
Ein Framework zur Integration von Anwendungssicherheit in die Softwareentwicklung (FIASSE)
Hinweis: Dieses Repository ist eine laufende Arbeit. Beiträge sind willkommen!
Überblick
TL;DR: Bitte lesen Sie das DOK. Entdecken Sie die FIASSE-Website. Besuchen Sie GitHub Discussions, um einen Beitrag zu leisten.
Dieses Repository enthält Ressourcen und Materialien für das OWASP Framework for Integrating Application Security into Software Engineering (FIASSE). FIASSE (ausgesprochen /feiz/ wie 'phase') fördert einen entwicklerzentrierten, prinzipienbasierten Ansatz zur Entwicklung sicherbarer Software – in der Erkenntnis, dass Sicherheit ein dynamischer, fortlaufender Prozess ist, ebenso wie die Entwicklung. Es führt das Securable Software Engineering Model (SSEM) als gemeinsame Entwurfssprache ein, die etablierte Begriffe der Softwareentwicklung nutzt, um Sicherheit in Softwarearchitektur, -design und -entwicklung zu integrieren. Sicherheit wird in die Prinzipien integriert, die den Code selbst formen. Das Framework zielt darauf ab, widerstandsfähige Anwendungen zu entwickeln, die Bedrohungen im Laufe der Zeit standhalten.
Zweck
Praktische Richtlinien bereitzustellen, die Entwickler befähigen, sichere Software zu erstellen, ohne tiefgehende Sicherheitsexpertise zu benötigen, und Sicherheitsexperten dabei zu unterstützen, ihre Sicherheitserfahrung effektiv in die Softwareentwicklung zu integrieren. FIASSE erreicht dies durch eine Softwareentwicklungs-Perspektive, die die kognitive Belastung reduziert und die Zusammenarbeit zwischen Entwicklungs- und Sicherheitsteams fördert.
Was ist anders?
Während assurance-orientierte Projekte wie das OWASP Top 10 hervorheben, was vermieden werden sollte (eine Blockliste), bietet OWASP FIASSE eine Reihe positiver Attribute und Praktiken, denen gefolgt werden sollte (eine Erlaubnisliste). Dieser Ansatz nutzt vorhandene Softwareentwicklungsfähigkeiten, um sichere Software zu entwickeln, anstatt von Entwicklern zu verlangen, Exploit-Techniken zu erlernen oder eine verwundbarkeitsorientierte Denkweise anzunehmen. Der Schwerpunkt liegt darauf, praktisches, sicheres Codieren durch vertraute technische Prinzipien zu ermöglichen.
Durch die klare Definition der praktischen Rolle der Sicherheit innerhalb des Entwicklungsprozesses stellt dieses Framework sicher, dass der Geschäftswert effektiv erfasst wird. Durch diese Art der Erwartungssetzung wird die Wahrscheinlichkeit erheblich reduziert, dass Sicherheitsfehler später entdeckt werden und behoben werden müssen.
Kernprinzipien
- Das Securable-Paradigma: Anerkennung, dass Softwaresicherheit ein dynamischer, fortlaufender Prozess ist, kein statischer "sicherer" Zustand. Es konzentriert sich darauf, inhärente Qualitäten in Software einzubauen, um sich an sich entwickelnde Bedrohungen anzupassen.
- Entwicklerzentrierte Sicherheit: Softwareentwickler befähigen, sichere Systeme autonom unter Verwendung vertrauter Softwareentwicklungsprinzipien zu erstellen, anstatt von ihnen zu verlangen, die Denkweise eines Penetrationstesters anzunehmen.
- SSEM als gemeinsame Entwurfssprache: Nutzung des Securable Software Engineering Model (SSEM), das etablierte Begriffe der Softwareentwicklung (z. B. Analysierbarkeit, Modifizierbarkeit, Testbarkeit) verwendet, um Sicherheitsattribute zu definieren und zu diskutieren, wodurch Sicherheit für Entwickler zugänglicher wird.
- Sicherheit mit Entwicklungs- und Geschäftszielen in Einklang bringen: Sicherheitsüberlegungen nahtlos in den SDLC integrieren und sicherstellen, dass Sicherheitsbemühungen übergeordnete Geschäftsziele und die Risikobereitschaft unterstützen.
- Widerstandsfähiges Hinzufügen von Computing-Wert: Sicherstellen, dass Software nicht nur funktionale Anforderungen erfüllt, sondern auch sichere Qualitäten besitzt, die es ihr ermöglichen, sich anzupassen, zu bestehen und Integrität im Laufe der Zeit und unter Belastung zu bewahren.
- Anforderungen als erstklassiger Bürger in AppSec: Sichere Softwareentwicklung von Anfang an auf klar definierten Sicherheitserwartungen und -anforderungen gründen.
Repository-Inhalte
- Definition und Dokumentation des Securable Software Engineering Model (SSEM)
- TODO: Implementierungsleitfäden für die FIASSE-Methodik
- Beispiele wurden verschoben nach Securability-Engineering/securable-framework-supplement
Erste Schritte
- Überprüfen Sie die Dokumentation im Verzeichnis
/docs - Diskutieren Sie die Konzepte und Prinzipien mit Ihren Teams und in den GitHub Discussions
- Beginnen Sie, die Prinzipien in Ihren Softwareentwicklungspraktiken wie Merge-Reviews und Prompt-Engineering anzuwenden.
- Bonus: Installieren Sie das Plugin, das zu Ihrer IDE oder Ihrem KI-gestützten Kommandozeilen-Agenten passt (z. B. GitHub Copilot, Claude Code, OpenCode usw.) und verwenden Sie die bereitgestellten Prompts, um sicheren Code zu generieren. Suchen Sie in der Prompt-Bibliothek nach "Securability Engineering" oder "FIASSE".
- FIASSE ist auch als Teil des OWASP Secure Agent Playbook enthalten.
Zusammenfassung
Dieses Repository definiert sichere Software als zuverlässige, widerstandsfähige und anpassungsfähige Systeme. Es betont, dass wahre Sicherheit ein fortlaufender Prozess ist, keine statische Errungenschaft. Es führt das Securable Software Engineering Model (SSEM) ein, das Sicherheit als eine inhärente Reihe von Qualitäten gut entwickelter Software darstellt. Dazu präsentiert es die Attributkategorien Wartbarkeit, Vertrauenswürdigkeit und Zuverlässigkeit (einschließlich Widerstandsfähigkeit). FIASSE befürwortet die Integration von Sicherheitspraktiken in den Entwicklungsablauf, wo sie die größte Wirkung entfalten. Dies bewegt sich von einem "Sicherheit als nachträglicher Gedanke" oder einem "Shift-Left"-Ansatz zu einem proaktiven, kollaborativen Modell. Die Idee ist, dass Produktverantwortliche, Entwickler und Sicherheitsexperten von den frühesten Phasen des Designs an zusammenarbeiten, insbesondere durch Aktivitäten wie die Definition von Sicherheitsanforderungen, kollaboratives Threat Modeling und Abnahmekriterien. Dies setzt klare Erwartungen für Codeaktivitäten und Tests. Softwareentwickler erhalten Anleitungen zur Balance zwischen Flexibilität und Kontrolle. Sie erhalten auch ein definitives Modell für Sicherheitsentscheidungen. Letztendlich befähigt dies alle Beteiligten, zum Aufbau robusterer, zuverlässigerer und inhärent sicherer Systeme beizutragen.
FIASSE unterscheidet sich von bestehenden Ansätzen, indem es nicht von Entwicklern verlangt, Sicherheitsexperten zu werden oder eine gegnerische Denkweise anzunehmen. Dieser Ansatz zielt darauf ab, die kognitive Belastung für Entwickler zu reduzieren und gleichzeitig sicherzustellen, dass die Sicherheitsabteilung darauf vertrauen kann, dass ihre Bedenken durch spezifische Attribute von Code und Softwareentwicklungsprozessen adressiert werden.
FIASSE beabsichtigt, offen, zugänglich und kollaborativ zu sein.
Roadmap
Erste Meilensteine für das FIASSE-Projekt: