OWASP OWASP OWASP
FIASSE FIASSE™ FIASSE™
Relentlessly Practical
Relentlessly Securable
A framework for Securable Software Engineering, providing practical guidance for Software Engineers to build securable applications and for Application Security to impact securable outcomes. Read the RFC!
*Note: FIASSE is not an assurance framework. This is a new project and some concepts may seem odd. Because of this, your LLM may not get it either. Please share your honest thoughts and feedback because we want you both to understand. :)
Contributing to FIASSE
Join us in building a more secure software engineering future
Feedback
Read the docs: What do you like? What do you not like? What is missing? What is confusing? What do you think is ridiculous?
Please use the GitHub Issues to give feedback.
How to Contribute
We welcome contributions from everyone! Whether you're a developer, security professional, or just passionate about software security, there are many ways to get involved.
Check out our Contributing Guide to get started.
Contributing Guidelines
Thank you for your interest in contributing to an OWASP project. We welcome all contributions and appreciate your efforts to improve our projects.
Getting Started
To get started with contributing to any OWASP project, please follow these steps:
- Join the OWASP Slack workspace to connect with the OWASP community and get help with any questions you may have.
- Review the OWASP Projects page to browse the list of OWASP projects and find a project that aligns with your interests and skills.
- Visit the project’s individual page and repository to familiarize yourself with the project goals and objectives.
- Fork the repository and clone it to your local machine.
- Make your changes and review them locally.
- Submit a pull request with your changes.
Pull Request Guidelines
Before submitting a pull request, please make sure:
- Your changes are consistent with the project’s goals and objectives: this isn’t an assurance framework.
- Your changes are well-documented and follow the project’s standards and styles.
- Your pull request includes a clear and concise description of the changes you have made.
Code of Conduct
We ask that all contributors to OWASP projects abide by our Code of Conduct. This code outlines our expectations for behavior within the project community and helps us maintain a welcoming and inclusive environment for all contributors.
Thank you for your interest in contributing to an OWASP project. We appreciate your efforts to help us improve and grow our projects.
About OWASP FIASSE
Framework for Integrating Application Security into Software Engineering
What is FIASSE?
FIASSE (/feiz/) is an OWASP project that provides a software-engineering-centric approach to building securable software.
It combines practical software engineering methodologies with modern application security practices to create a framework that is effective and scalable.
Our Mission
To provide developers and security professionals with a practical, actionable framework to reduce friction and increase developer velocity in the context of application security.
We believe security should be relentlessly practical for software engineers. We also believe that security has more to offer than secret test suites.
Key Concepts
Business Alignment
Application Security aligns with the business of making software by participation in existing development channels. This means abandoning the "shovel-left" anti-pattern in favor of clearer communication and earlier collaboration.
Beyond Best Practices
Disciplined software engineering is fundamental to securable code. However, a complete approach accepts AppSec's role in requirements, acceptance and assurance.
Participation over Assessment
Structured participation by Security in the development process yields better results than security assessment alone, which tends to be late and expensive.
Key Features
FIASSE Project
A methodology for integrating security into software engineering practices
Project Overview
FIASSE is designed to align people, process and technology with the business of making software. It is meant to address the issues of perceived conflicting goals and the "shovel-left" anti-pattern. It was developed under the premise that software engineers can create securable code without also learning to be hackers.
Project Goals
Primary Objectives
- • Practical software engineering guidance for securable software
- • Application Security Guidance for efficiency and scale
- • Guide adoption
Target Audience
- • Software engineers seeking practical security guidance
- • Application security professionals wanting to align with development
- • Teams interested in establishing a solid engineering basis for a security
- • Educators aiming to teach secure software engineering practices
- • Development orgs who have received an OWASP SAMM score of 0
Framework Components
Core Elements
- • SSEM: the articles of security from a software engineering perspective
- • Securable software engineering activities
- • Guidance for effective vulnerability remediation
Supporting Artifacts
- • SSEM influenced documents including checklists and templates
- • Mapping and references pertaining to SSEM and related projects and frameworks
- • Guidance for effective vulnerability remediation
- • Primer/Introduction to FIASSE and SSEM with guide for teaching it
- • A collection of use cases and patterns as ready-made starting points
Pillars of FIASSE:
FIASSE can be classified into three pillars or activity classes: Expectations: Requirements, Implementation: Securable Code, Assurance: Testing and Feedback.
Securable Software Engineering Model (SSEM™)
A model that identifies fundamental and universal attributes that are the building blocks of securable software.
What is SSEM?
Pronounced /si:m/ : A body of software engineering terms to describe the fundamental attributes of securable software. Together, these terms form a comprehensive model for understanding software security and a design language for communicating security concerns.
The SSEM is centered around being a design language and defining the core attributes that make software "securable" (see FIASSE RFC Section 2.1). These attributes allow SSEM to abstract security away from specialized jargon or exploit-centric views. For software engineers this enables them to confidently integrate security considerations as a natural part of their development work. It also helps security professionals identify how existing code meets security expectations and areas for improvement.
Core FIASSE Principles
-
The Securable Principle:
There is no static state of "secure".
-
The Derived Integrity Principle:
An application does not implicitly adopt unmanaged context, for example from the client.
-
Securable Attributes over Security Controls:
Instead of focusing only on security controls or checklists, emphasize building software with inherent qualities - so it's easier to analyze, modify, test, and trust.
-
Participation over Assessment:
We believe the Application Security team would be more effective if they actively participated in the development process rather than solely assessing, reviewing and reporting after the fact.
Key Benefits of applying SSEM
-
Resilience:
Securable software can be quickly updated to fix vulnerabilities or adapt to new threats.
-
Maintainability:
Code is easier to understand and change, reducing the risk of introducing new flaws over time.
-
Trustworthiness:
Systems are designed so that critical facts (like prices, permissions, or states) are derived from trusted sources, not dictated by untrusted context or input.
-
Intention:
Development is better equipped to act with a securable goal instead of guessing about how to pass the next security assessment.
Optimized for Business
SSEM allows Application Security insight into development without derailing important development processes or adding toil.
Developer-Centric
Designed to align Application Security with software development principles and strategies.
Scalable Framework
Adaptable to projects of any size, from small applications to high-scale systems.
A Software Engineering Design Language
A design language is a set of shared terms, concepts, and patterns that helps a team communicate ideas, expectations, and standards consistently. In software engineering, a design language provides a common vocabulary for describing system qualities, architecture, and implementation details. This makes it easier to collaborate.
In software engineering, a design language ensures clarity and consistency. It simplifies decision making by providing well-defined principles. It embeds security concepts into familiar engineering terms. This empowers developers developers to build securable systems without needing deep security expertise.
By adopting SSEM as your software engineering design language, you adopt a pre-built shorthand for all roles (product, development, security, management...) that carries with it the essence of security culture.
Resources & Documentation
Access comprehensive documentation, tools, and community resources for implementing FIASSE
GitHub Repository
Access the complete FIASSE framework and SSEM documentation
The main repository contains the RFC, examples, and detailed documentation for securable software engineering practices.
OWASP Project Page
Official OWASP project documentation and community resources
Visit the official OWASP project page for comprehensive documentation, community discussions, and the latest project updates.
Join the Community
Connect with security professionals and contribute to the FIASSE project
Get Involved
- • Contribute feedback
- • TODO
Contact Information
Slack: #project-fiasse
GitHub: @xcaciv/securable_software_engineering