OWASP Security Integration System



{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 * valign="top" style="border-right: 1px dotted gray;padding-right:25px;" |

Instructions are in RED text and should be removed from your document by deleting the text with the span tags. This document is intended to serve as an example of what is required of an OWASP project wiki page. The text in red serves as instructions, while the text in black serves as an example. Text in black is expected to be replaced entirely with information specific to your OWASP project.

OWASP Tool Project Template
This section should include an overview of what the project is, why the project was started, and what security issue is being addressed by the project deliverable.

Introduction
Secure software development has a number of stakeholders.  IT risk: I need to know where my highest risks are, so I can focus on mitigating these Information security: I need to generate a list f security requirements to protect against vulnerabilities Compliance and Assurance: I need to ensure the code meets security requirements and we have evidence proving that Business: I need to get the functionality to the market before our competitors  Development teams: I need to do all of the above and within a two week sprint cycle :-) 

What does a secure software development process look like for these stakeholders
For every sprint cycle  IT risk: Needs to understand the functional requirement and identify the risks associated with implementing it Information security: Needs to understand the technology behind the functional requirement and its associated risks. Then generate a list of security requirements to protect the technology against exploitation</li> Development teams: Need to implement the technology, test it and record evidence proving the security requirements are met and </li> Approvers: Need to review testing evidence against the organisations risk tolerance levels. Then accept the risk associate with the functional requirement by approving the release</li> Compliance and Assurance: Need to review the testing evidence collected by the development teams and verify its consistency, traceability and quality</li> </ol>

Why is it so hard to meet these stakeholder requirements?
 Huge body of security knowledge: Development, security, risk, compliance and assurance teams need to combine their GDPR, ISO, risk tolerances level, OWASP ASVS, security testing, JAVA and .Net knowledge, filter it, and apply it to critical application functions</li> <ul> Solution: A tool that centrally stores environment relevant GDPR, ISO, risk tolerance level, OWASP ASVS, security testing, JAVA and .Net security requirements</li> Benefit: Centrally storing the security information will be a big once of effort that needs periodic review, but will speed up the requirements generation process make it consistent and repeatable. The more dev teams you have the bigger the benefit </li> </ul> Complex environments: Most organisational IT environments consist of many moving parts, e.g. rapidly evolving development languages, cloud vs on premise. These require continuous security effort and strains already scares security resources</li> <ul> Solution: A tool that maintains an internal mapping of which security requirements apply to which risks, technologies and application critical functions</li> Benefit: Creating this mapping is again a big once of effort that needs periodic review, but will result in a filtered list of security requirements, giving clear and consistent security guidance across the various technical environment components</li> </ul> Huge number of complex security requirements: Development teams do not understand the complicated security requirements, let alone know how to implement these in code and test them after. Also, the flexibility of development languages and different experience levels of developers almost guarantee that every dev team will implement the security requirement differently</li> <ul> Solution: A tool that stores a language specific and approved secure code building block against each security requirement, guiding the developers on how to implement the security requirement constantly</li> Benefit: Developing these secure code blocks will be a big once of effort that needs periodic review, but will help with the consistent implementation of security requirements across teams, technologies and critical application functions</li> Solution: A tool that stores a set of OWASP tests against each risk, guiding the testing team on how to correctly validate the security requirement has been met</li> Benefit: Developing scripts for these tests will be a big once of effort that needs periodic review, but will help with maintaining a consistent quality of risk testing across teams, technologies and critical application functions</li> <li>Solution: A tool that allows developers to run an "on demand" OWASP ZAP basic scan on their code to verify they have correctly implemented the security requirements</li> <li>Benefit: Immediate feedback loop</li> <li>Solution: A tool that allows developers to open an "on demand" risk training sandbox environment. Allowing developers to learn how to exploit and defend against the risk</li> <li>Benefit: On demand, hands on environment specific training</li> </ul> <li>Lengthy and cumbersome approval process: Once development has been completed, the approvers need to wade their way through hundreds of automated test results looking for the results relevant to the the functional requirement. This is a lengthy process and blocks the release which almost nullifies the benefit of CI\CD</li> <ul> <li>Solution: A tool that centrally stores testing evidence alongside the risk and application critical function</li> <li>Benefit: Approvers can see at a glance whether or not the application critical function and its associated risks have been tested and mitigated according to risk tolerance. Speeding up the approval process and maximising the benefit of CI\CD efforts</li> </ul> <li>Risk management of the application landscape: Risk managers have difficulty assessing the highest risk across the various technologies and and development languages in their environment. Therefore cannot prioritise their efforts and track mitigation efforts</li> <ul> <li>Solution: A tool that provides a dashboard view of applications, the associated critical functions and the risks exposed by those critical functions. Then shows the number of secure code block and tests to mitigate the risk of exploitation</li> <li>Benefit: Risk managers can easily see which application critical function and which risk needs extra secure code blocks and testing effort. And see how that effort will impact the entire application landscape</li> </ul> </ol> '''The secure coding tool provides the functionality listed above. Helping stakeholders firstly define and include their security requirements and secondly helping them realise and monitor it. In summary the secure coding tool attempts to fill the shoes of a first line of defence for the secure software development process'''

Description
This is where you need to add your more robust project description. A project description should outline the purpose of the project, how it is used, and the value it provides to application security. Ideally, project descriptions should be written in such a way that there is no question what value the project provides to the software security community. This section will be seen and used in various places within the Projects Portal. Poorly written project descriptions therefore detract from a project’s visibility, so project leaders should ensure that the description is meaningful.

How does the Secure coding tool work?
<ul> <li>It is a light weight piece of software designed to be accessed from the developers box</li> <li>Guides the development team towards meeting stakeholder requirements <li>See below how the secure coding tool supports the development team through the software development phases </ul>

Secure software development procedure
<ul>

<li>Sprint planning phase</li>
<ul> <li>Developers use the Application risk screen <ol> <li>To identify the technologies used to implement this application critical function</li> <li>The secure coding tools internal mapping will automatically list the security requirements associated with using this technology</li> Identify technologies associated with application critical function </ol> </li> </ul>

<li>Development phase</li>
<ul> <li>Developers use the Secure development screen <ol> <li>To see and understand how to attach and prevent the risks associated with the critical function</li> <li>To do some basic exploitation train (example)</li> <li>To see the secure code requirements to protect against exploitation</li> <li>To see the secure code block to guide developers to implement security requirement</li> <li>After development run a ZAP basic scan to verify security requirements have been correctly implemented </li> Secure development </ol> </li> </ul>

<li>Testing phase</li>
<ul> <li>Testers use the Secure testing screen <ol> <li>To see the OWASP test plans required to test the risk mitigation efforts</li> <li>Associate an automated testing tool with the test plan. The secure coding tool allows testers to bulk update test results form the testing tool</li> <li>To attach testing result to the test as control assurance evidence proving the risk has been mitigated</li> <li>The secure coding tool does not integrate with any testing tools other than OWASP ZAP. Testing results are generated outside of the secure coding tool and manually stored</li> Secure testing </ol> </li> </ul>

<li>Approval phase</li>
<ul> <li>Approvers use the Assurance evidence  screen <ol> <li>To see relevant testing evidence alongside the risk, reducing time assurance teams need to examine and approve releases</li> <li>To see how many of the tests have test results</li> Streamline the approval process </ol> </li> </ul>

<li>Risk management</li>
<ul> <li>Developers use the Application risk screen <ol> <li>To see the number of security tests for each risk, and the percentage that have test results. This allows risk team to determine where extra testing effort is required</li> <li>To see the number of security requirements for each risk, and which of those requirements have secure code block associated to guide developers towards correct implementation</li> Overview of application landscape and test coverage </ol> </li> </ul>

</ul>

Tool setup
<ul>

<li>Tool setup The tool lists all application critical functions. And for each critical function it maintains an internal mapping that details the technologies, risks, security requirements, secure code blocks and tests. A basic mapping exists in the tool but needs to be customised for your environment.</li> <ol> <li>InfoSec, testing and development teams: Use the tools OWASP data mapping screen to modify the internal mapping. </li> </ol> </ul>

What does the Secure coding tool do? The secure coding tool, goes beyond theory and procedure and attempts to implement a planned control integration effort. The Secure coding tool is written in MVC \ MySQL and consists of 5 screens each serving a specific stakeholder

<ol> <li>Information security stakeholder: Filters the security requirements according to the functional requirement: Streamlining security requirements generation </li> <li>Dev team stakeholder: Provides secure code blocks to implement the security requirement: Providing code level guidance for developers towards correctly implementing security requirements</li> <li>Dev team stakeholder: Provides security test plans to testing the security requirements: Guiding testers towards correctly verifying security requirements are met</li> <li>Compliance and assurance stakeholder: Provides a central store for testing results: Promoting traceability through requirements and serving as a quick reference screen for assurance to view control assurance evidence, speeding up the approval process and minimising its impact on responsiveness to market</li> <li>IT risk stakeholder: Provides IT risk with an overview of each applications exposure to OWASP TOP 10 risks: Informing risk based decision making and prioritising</li> </ol>

How does the secure coding tool do it? The secure coding tool, goes beyond theory and procedure and attempts to implement a planned control integration effort. The Secure coding tool is written in MVC \ MySQL and consists of 5 screens each serving a specific stakeholder <ol> <li>Information security stakeholder: Filters the security requirements according to the functional requirement: Streamlining security requirements generation </li> <li>Dev team stakeholder: Provides secure code blocks to implement the security requirement: Providing code level guidance for developers towards correctly implementing security requirements</li> <li>Dev team stakeholder: Provides security test plans to testing the security requirements: Guiding testers towards correctly verifying security requirements are met</li> <li>Compliance and assurance stakeholder: Provides a central store for testing results: Promoting traceability through requirements and serving as a quick reference screen for assurance to view control assurance evidence, speeding up the approval process and minimising its impact on responsiveness to market</li> <li>IT risk stakeholder: Provides IT risk with an overview of each applications exposure to OWASP TOP 10 risks: Informing risk based decision making and prioritising</li> </ol>

For a more detailed look at the inner workings of the tool and a brief instructional video please take a look at my linkedIn article Secure coding tool

Licensing
A project must be licensed under a community friendly or open source license. For more information on OWASP recommended licenses, please see OWASP Licenses. While OWASP does not promote any particular license over another, the vast majority of projects have chosen a Creative Commons license variant for documentation projects, or a GNU General Public License variant for tools and code projects. This example assumes that you want to use the AGPL 3.0 license.

This program is free software: you can redistribute it and/or modify it under the terms of the link GNU Affero General Public License 3.0 as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OWASP XXX and any contributions are Copyright &copy; by {the Project Leader(s) or OWASP} {Year(s)}.

Roadmap
As of November, 2013, the highest priorities for the next 6 months are:
 * Complete the first draft of the Tool Project Template
 * Get other people to review the Tool Project Template and provide feedback
 * Incorporate feedback into changes in the Tool Project Template
 * Finalize the Tool Project template and have it reviewed to be promoted from an Incubator Project to a Lab Project

Subsequent Releases will add
 * Internationalization Support
 * Additional Unit Tests
 * Automated Regression tests

Getting Involved
Involvement in the development and promotion of Tool Project Template is actively encouraged! You do not have to be a security expert or a programmer to contribute. Some of the ways you can help are as follows:


 * valign="top" style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |

Project Resources
This is where you can link to the key locations for project files, including setup programs, the source code repository, online documentation, a Wiki Home Page, threaded discussions about the project, and Issue Tracking system, etc.

Installation Package

Source Code

What's New (Revision History)

Documentation

Wiki Home Page

Issue Tracker

Slide Presentation

Video

Project Leader
A project leader is the individual who decides to lead the project throughout its lifecycle. The project leader is responsible for communicating the project’s progress to the OWASP Foundation, and he/she is ultimately responsible for the project’s deliverables. The project leader must provide OWASP with his/her real name and contact e-mail address for his/her project application to be accepted, as OWASP prides itself on the openness of its products, operations, and members.

Michael Bergman

Related Projects
This is where you can link to other OWASP Projects that are similar to yours.
 * OWASP_Code_Project_Template
 * OWASP_Documentation_Project_Template

Classifications

 * }