F
OWASP FIASSE [Donate]

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:

  1. Join the OWASP Slack workspace to connect with the OWASP community and get help with any questions you may have.
  2. Review the OWASP Projects page to browse the list of OWASP projects and find a project that aligns with your interests and skills.
  3. Visit the project’s individual page and repository to familiarize yourself with the project goals and objectives.
  4. Fork the repository and clone it to your local machine.
  5. Make your changes and review them locally.
  6. Submit a pull request with your changes.

Pull Request Guidelines

Before submitting a pull request, please make sure:

  1. Your changes are consistent with the project’s goals and objectives: this isn’t an assurance framework.
  2. Your changes are well-documented and follow the project’s standards and styles.
  3. 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

Design Language Security Extensions Prompt Engineering Guidance Keystone Practices Principle Driven Security ...

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.

SSEM v1.0.1

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.

Active Development CC BY-SA 4.0 License Community Driven

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.

OWASP Official Documentation Community

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