This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

Difference between revisions of "OWASP Security Integration System"

From OWASP
Jump to: navigation, search
(Tool setup)
(What is the Secure code assurance tool (SCAT))
 
(317 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
| valign="top"  style="border-right: 1px dotted gray;padding-right:25px;" |
+
| valign="top"  style="border-right: 1px dotted ;padding-right:25px;" |
  
<span style="color:#ff0000">
+
==What is the Secure code assurance tool (SCAT)==
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.
+
<h1><b>What is the SCAT</b></h1>
</span>
 
==Project About==
 
<span style="color:#ff0000">
 
{{Template:Project_About
 
  | project_name=Secure code assurance tool (SCAT)
 
  | leader_name1=Michael Bergman
 
  | leader_email1=[email protected]
 
}}
 
  
== <b>Problems this project addresses</b>==
+
[https://www.linkedin.com/pulse/secure-code-assurance-tool-scat-version-20-michael-bergman/ For more information on the <b>why</b> behind the SCAT, read my linkedIn Article here]
<ol>
+
 
<li>Low levels of compliance as developers and testers don’t understand the complex security requirements and don’t know how to write code to implement it or test it</li>
+
==What is the SCAT==
<li>Development teams see approvers as a blocker. Approvers and assurance delay release while development teams do a blind scramble for evidence to prove they have met the security requirements</li>
 
<li>Risk managers struggle to answer basic questions like what is the highest priority risk across our application landscape, and therefore cannot prioritise or coordinate mitigation efforts.  Resulting in duplication of effort and inconsistent implementation across teams</li>
 
</ol>
 
  
== <b>How does the Secure code assurance tool (SCAT) help </b>==
 
 
<ul>
 
<ul>
<li>SCAT is a secure code assurance tool for both inhouse and third party development teams </li>
+
 
<li>SCAT is designed to perform a “first line of defense” function for the software development teams </li>
+
<li>SCAT is a <span style="text-decoration:underline;">process integrity tool</span>, implementing a consistent, authorized and auditable software development process
<li>SCAT ensures development teams understand security requirements, correctly implements these, have the testing evidence proving correct implementation and provides insight into development and test.ing efforts </li>
+
 
</ul>
+
<li>SCAT is used by development teams to build, verify and assure secure software
=== Promoting compliance to security requirements===
 
 
<ul>
 
<ul>
<li>SCAT allows organisations to translate complex security requirements into code level and testing guidance for development teams. Enabling development teams to correctly and consistently implement these.</li>
+
 +
<li><strong>Build</strong>: uses a combination of code level guidance, on demand training and DAST tools to train, guide and verify correct implementation
 +
 +
<li><strong>Verify</strong>: uses a combination of manual test plans and SATS tools to guide and verify correct implementation
 +
   
 +
<li><strong>Assure</strong>: centrally stores and publishes evidence of secure development and testing as an audit trail. Providing traceability through requirements and proving that security <span style="text-decoration:underline;">controls operate efficiently over a period of time</span>
 +
</li>  
 
</ul>
 
</ul>
=== Integrating security ===
+
 
<ul>
+
<li>SCAT is <span style="text-decoration:underline;">not a point in time security verification tool </span>for detecting vulnerabilities after development</li>  
<li>SCAT wraps security theory, best practices and requirements into set of single purpose security screens. Then maps those screens to a specific SDLC phase.  This mapping informs developers of the security requirements for that SDLC phase and gives them the tools to meet those requirements. </li>
 
 
</ul>
 
</ul>
  
=== Minimising the impact of audit and assurance===
+
==Process integrity and point in time tools: How they work in the SDLC==
 +
 
 +
[[File:Process integrity VS point in time without check.png|800px|center|Process integrity VS point in time without check]]
 +
 
 +
<h1><b>Technical Description</b></h1>
 +
 
 +
==Without further complicating development environment==
 
<ul>
 
<ul>
<li>SCAT allows testers stores testing evidence against the critical application function and its associated risk.  Providing traceability through requirements and centrally storing and publishing test evidence.</li>
 
</ul>
 
  
=== Informing risk based decision making===
+
<li>SCAT is a simple 5 screen MVC, C# web application with a small footprint that can be deployed without further complicating development environment
<ul>
+
 
<li>SCAT shows, for each application critical function, how many test plans have test evidence and how many security requirements have secure code blocks.  Allowing risk teams see which application critical functions need more testing effort and how that testing effort can best be coordinated and prioritized across the appalachian landscape
+
<li>Integrates with Jira and runs ZAP and SonarQube in docker containers
SCAT is a simple 5 screen MVC, C# web application with a small footprint that can be deployed to third party and inhouse development teams without further complicating development environment.</li>
+
 
</ul>
+
<li>SCAT is part of three domains to consider when securing software development. <em>I've detailed the other domains in an article that will be published in the Nov/Dec issue of the ISC2 magazine, I will add a link here after publication.</em>
 +
 
 +
 
 +
 
 +
<h1><b>See how developers use SCAT</b></h1>
 +
See below how the Secure code assurance tool integrates security into software development phases
 +
 
 +
==Sprint planning phase ==
 +
<b>Objective</b>: Ensures security requirements are understood <br>
  
== <b>How to use the Secure code assurance tool</b>==
 
See below how the Security code assurance tool integrates security into the phases of software development
 
<ul>
 
=== <li>Sprint planning phase</li> ===
 
 
     <ul>
 
     <ul>
         <li><b>Developers</b> use the <b>Identify risks</b> screen<br>
+
         <li><b>Developers</b> use the <b>Identify risks</b> screen to<br>
 
             <ol>
 
             <ol>
                 <li>To Select the application critical function they are developing\changing</li>
+
                 <li>Select the critical function to developing/changing</li>
                 <li>To identify the technologies they are using to develop\change the application critical function</li>
+
                 <li>Identify the technologies used</li>
                 <li>The Secure code assurance tools uses its internal mapping to automatically generate the security requirements associated with using this technology</li>
+
                 <li>Automatically generate the security requirements and tests</li>
                 [https://youtu.be/WQVzthyGL4U See how to use the tools and its internal mapping to generate security requirements]
+
                 [https://youtu.be/Gpk4K5keLyw See how to use the tools and its internal mapping to generate security requirements]
 
             </ol>
 
             </ol>
 +
        <li><b>Product owners</b> use the <b>Secure code requirements</b> screen to<br>
 +
            <ol>
 +
              <li>Create an audit trail to store evidence of secure development</li>
 +
                <li>Create Jira tickets for requirements and tests to manage work</li>
 +
            </ol>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
  
=== <li>Development phase</li> ===
+
== Development phase ==
 +
 
 +
<b>Objective</b>: Ensure correct implementation of security requirements<br>
 
     <ul>
 
     <ul>
         <li><b>Developers</b> use the <b>Secure development</b> screen <br>
+
         <li><b>Developers</b> use the <b>Secure development</b> screen to<br>
 
             <ol>
 
             <ol>
                 <li>To see and understand how to attack and prevent the risks associated with the critical function</li>
+
                 <li>View and understand how to attack and prevent the risk</li>
                 <li>To see the secure code requirements to protect against exploitation</li>
+
                 <li>View the secure code requirements</li>
                 <li>To see the secure code block to guide developers to implement security requirement</li>
+
                 <li>View the secure code block to implement the security requirement</li>
                 <li>After development run a ZAP basic scan to verify security requirements have been correctly implemented </li>
+
                <li>Manage development effort in Jira</li>
                 [https://youtu.be/8J8KMaPnGOs See how the tool helps developers understand security requirements and write secure code]
+
                 <li>After development run a ZAP basic scan to verify security requirements have been correctly implemented</li>
 +
                 [https://youtu.be/1pSatE_7mEs See how the tool helps developers understand security requirements and write secure code]
 
             </ol>
 
             </ol>
 
       </li>
 
       </li>
 
   </ul>
 
   </ul>
  
=== <li>Testing phase</li> ===
+
== Secure code review phase ==
 +
 
 +
<b>Objective</b>: Ensure correct implementation of security requirements<br>
 +
 
 
     <ul>
 
     <ul>
         <li><b>Testers</b> use the <b>Secure testing</b> screen<br>
+
         <li><b>Code reviewers</b> use the <b>Secure code review </b> screen to<br>
 
             <ol>
 
             <ol>
                 <li>To see the OWASP test plans required to test the risk mitigation efforts</li>
+
                 <li>Guide manually secure code review</li>
                 <li>To attach testing result to the test plan as control assurance evidence proving the risk has been mitigated</li>
+
                 <li>After manual secure code review run a Sonarqube scan to verify security requirements have been correctly implemented</li>
                <li>The Secure code assurance tool does not integrate with any testing tools other than OWASP ZAP.  Testing results generated outside of the secure code assurance tool is manually uploaded and stored</li>
+
                 [https://youtu.be/ygre0SrWxD4 See how the tool verifies correct security requirements implementation]
                 [https://youtu.be/VixapzUB_ts See how the tool helps testers test risk mitigation efforts and strore testing evidence]
 
 
             </ol>
 
             </ol>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
  
=== <li>Approval phase</li> ===
+
== Testing phase==
 +
 
 +
<b>Objective</b>: Ensure valid security testing<br>
 +
    <ul>
 +
        <li><b>Testers</b> use the <b>Secure testing</b> screen to<br>
 +
            <ol>
 +
                <li>View the test plans required to test the risk</li>
 +
                <li>Manage testing effort in Jira</li>
 +
                [https://youtu.be/QdbCzheceUw See how the tool helps testers test risk mitigation efforts]
 +
            </ol>
 +
      </li>
 +
    </ul>
 +
== Approval phase ==
 +
 
 +
<b>Objective</b>: Streamline the approval and audit process<br>
 +
 
 
<ul>
 
<ul>
         <li><b>Approvers</b> use the <b>Assurance evidence </b> screen<br>
+
         <li><b>Approvers</b> use the <b>Assurance evidence </b> screen to<br>
 
             <ol>
 
             <ol>
                 <li>To see relevant testing evidence alongside the risk, reducing the time assurance teams need to examine and approve releases</li>
+
                 <li>View relevant testing evidence alongside the risk, reducing the time assurance teams need to examine and approve releases</li>
                 <li>To see how many of the tests have test results</li>
+
                 <li>View verified development effort and whether it falls within risk tolerance levels</li>
                 [https://youtu.be/VixapzUB_ts See how the tool streamlines the approval process with centrally stored testing evidence]
+
                 [https://youtu.be/oyKK3Mq13B4 See how the tool streamlines the approval process with centrally stored testing evidence]
 
             </ol>
 
             </ol>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
 +
== Risk management ==
 +
<b>Objective</b>: Enable risk managers to prioritise, plan and monitor mitigation efforts<br>
  
=== <li>Risk management</li> ===
 
 
     <ul>
 
     <ul>
         <li><b>Risk managers</b> use the <b>Application risk exposure</b> screen<br>
+
         <li><b>Risk managers</b> use the <b>Application risk exposure</b> screen to<br>
 
             <ol>
 
             <ol>
                 <li>To see each application critical function and the associated risks</li>
+
                 <li>View each application critical function and the associated risks</li>
                 <li>To see the number of <b>security requirements </b>for each risk, and which of those requirements have secure code block.  Allowing risk team to define where mitigation effort it required and monitors the progress of mitigation efforts</li>
+
                 <li>Identify where mitigation effort is required by viewing which risks require security requirements</li>
                 <li>To see the number of <b>security tests</b> for each risk.  Allowing risk team to determine where extra testing effort is required and monitor test coverage and quality</li>
+
                <li>Identify where development effort is required by viewing which security requirements need secure code blocks</li>
 +
                 <li>Identify where extra testing effort is required by viewing which risks require security test plans</li>
 
                 [https://youtu.be/8pKxorPSq_M See how the Application landscape overview screen informs risk based decision making]
 
                 [https://youtu.be/8pKxorPSq_M See how the Application landscape overview screen informs risk based decision making]
 
             </ol>
 
             </ol>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
 +
<br>
 +
<br>
  
== <b>How does the Secure code assurance tool (SCAT) work</b>==
+
<h1> <b>Preparation phase</b></h1>
 +
When developing secure software we need to consider both standard secure code and client specific architectural requirements
 +
 
 +
== Standard secure code requirements==
  
=== Promoting compliance to security requirements===
 
[[File:Internal mapping.png|thumb]]
 
 
<ul>
 
<ul>
<li>Firstly, understand the security requirement: The tool maintains the following internal mapping allowing organisations to translate complex security requirements into code level and testing guidance the development teams understand.
+
        <li>SCAT comes out the box with a standard OWASP secure code requirements map. This mapping need to be modified to the specific organisation requirements</li>
Technologies used in the organisation to secure code requirements</li>
 
<ol>
 
<li>Secure code requirements (OWASP ASVS) to secure code building block </li>
 
<li>Secure test plans to OWASP top 10 risks (OWASP testing guide)</li>
 
<li>The first and second mapping lifted from SKF and duplicated in the SCAT. I hope to link with the SKF and remove the duplicate functionality from the SCAT tool. </li>
 
</ol>
 
<li>Secondly, verify understanding: The tool also makes use of OWASP ZAP basic scan and simple risk training sandboxes to validate understanding and correct implementation</li>
 
</ul>
 
<br>
 
 
<br>
 
<br>
 +
        <li><b>Information security and development team</b> use the <b>Internal mapping </b> screen to
 +
            <ol>
 +
                <li>Map the security requirements to OWASP risks</li>
 +
                <li>Map organisation approved secure code blocks to security requirements</li>
 +
                <li>Map security test plans to OWASP risks</li>
 +
                [https://youtu.be/EkWdAC1sbkE See how to setup the SCAT's internal mapping]
 +
            </ol>
 +
      </li>
 +
</ul>
  
=== Integrating security ===
+
== Client specific architectural requirements==
[[File:Integrate security.png|thumb|Integrate security]]
 
<ul>
 
<li>In the sprint planning phase SCAT implements “shift left” and uses its internal mapping to generate security requirements before development begins</li>
 
<li>In the Development phase SCAT implements “best practices” that explain security requirements, provides code level and testing guidance to correctly implement them and  basic automatic security tooling to verify understanding and correct implementation</li>
 
<li>In the Testing phase SCAT implements “traceability through requirements” and links security test evidence to the critical application function it tests</li>
 
</ul>
 
<br>
 
<br>
 
<br>
 
<br>
 
  
== <b>Tool setup</b>==
 
 
<ul>
 
<ul>
[[File:Internal mapping.png|thumb]]
+
    <li>To generate these requirements we perform a risk assessment on client application landscape and identify</li>
<li>Tool setup<br>  The tool lists all application critical functions.  <br>
 
And for each critical function it maintains an internal mapping that details the technologies, risks, security requirements, secure code blocks and tests.  <br>
 
A basic mapping exists in the tool but needs to be customised for your environment.</li>  
 
    <ol>
 
        <li><b>InfoSec, testing and development teams</b>: Use the tools OWASP data mapping screen to modify the internal mapping.  </li>
 
    </ol>
 
</ul>
 
<br>
 
<br>
 
 
 
== <b>Security integration system</b>==
 
There are 3 domains to consider when securing software development.
 
 
<ol>
 
<ol>
<li><b>The secure software development process</b>: Involves securing the way an organisation develops software.  So any development change dropped into the process comes out secure on the other end.</li>
+
    <li>Critical applications and functions</li>
<li><b>Developing secure code</b>: Helping the development team produce secure code.  By supporting the development team at each phase of the software development process</li>
+
    <li>Risk associated with each critical application function</li>
<li><b>Continuous improvement</b>:..........</li>
+
    <li>Architectural security requirements to secure each critical application functions</li>
 +
    <li>Client specific secure code blocks to implement security requirements</li>
 +
    <li>Secure test plans to verify risk has been mitigated</li>
 
</ol>
 
</ol>
 
<br>
 
This OWASP project focuses on the Developing secure code domain and details the why and how behind the Secure code assurance tool.<br>
 
<i>I've detailed the other domains in an article that will be published in the Nov/Dec issue of the ISC2 magazine, I will add a link here after publication.</i>
 
 
<br>
 
<br>
<br>
+
    <li><b>Tool administrators</b> use the <b>Internal mapping </b> screen to
 
 
== <b>Parked</b>==
 
There are 3 domains to consider when securing software development.
 
 
<ol>
 
<ol>
<li><b>The secure software development process</b>: Involves securing the way an organisation develops software.  So any development change dropped into the process comes out secure on the other end.</li>
+
    <li>Create json files of the organisation specific risks, security requirements, secure code blocks and tests</li>
<li><b>Developing secure code</b>: Helping the development team produce secure code.  By supporting the development team at each phase of the software development process</li>
+
    <li>Import these into the SCAT</li>
<li><b>Continuous improvement</b>:..........</li>
+
    [https://youtu.be/FD3O2ObYBQs See how to import organisations specific risks, security requirements, secure code blocks and tests]
 
</ol>
 
</ol>
 +
</ul>
  
 
<br>
 
<br>
This OWASP project focuses on the Developing secure code domain and details the why and how behind the Secure code assurance tool.<br>
 
<i>I've detailed the other domains in an article that will be published in the Nov/Dec issue of the ISC2 magazine, I will add a link here after publication.</i>
 
 
<br>
 
<br>
<br>
 
 
<b>Why the Secure code assurance tool</b>
 
  
=== Producing secure software requires the input of a number of teams===
+
<h1>Project information</h1>
<ol>
 
<li><b>Information security</b>: Needs to understand the technology behind the functional requirement and its associated risks.  Then <b>generate a list of security requirements</b> to protect the technology against exploitation</li>
 
<li><b>Development teams</b>: Need to <b>implement</b> the technology, <b>test it and record evidence</b> proving the security requirements are met and </li>
 
<li><b>Approvers</b>:  Need to review testing evidence against the organisations risk tolerance levels. Then <b>accept the risk associate with the functional requirement</b> by approving the release</li>
 
<li><b>Compliance and Assurance</b>: Need to review the testing evidence collected by the development teams and <b>verify its consistency, traceability and quality</b></li>
 
<li><b>IT risk</b>: Needs to <b>manage and monitor</b> risk mitigation efforts </li>
 
</ol>
 
 
 
=== <b>Why is producing secure software so hard and how does the Secure code assurance tool help?</b><br>===
 
<ol>
 
[[File:Internal mapping.png|thumb]]
 
<li><b>Complex environments</b>: 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 generate security requirements for each critical application function.  The process of aligning the knowledge and efforts of these teams is time consuming and slows down the development process</li>
 
How does the tool help<br>
 
    <ul>
 
        <li>Centrally stores security requirements and links these to the technologies used in the organisation environment.  Allowing developers to select the technology used to implement their functional requirement and automatically get a list of relevant security requirements</li>
 
        <li><i>Benefit</i>: Developers can generate the security requirements themselves, without waiting on the security, risk, compliance and assurance teams.  This will speed up the requirements generation process make it consistent and repeatable across all teams</li>
 
    </ul>
 
<li><b>Huge number of complex security requirements</b>: Development teams do not understand the complicated security requirements therefore cannot correctly implement or test them. Also, the flexibility of development languages almost guarantee that every developer will implement the security requirement differently</li>
 
How does the tool help<br>
 
    <ul>
 
        <li>Stores a language specific and approved secure code building block against each security requirement. These guide developers towards constantly implementing the security requirements</li>
 
        <li>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>
 
        <li>Allows developers to run an "on demand" OWASP ZAP basic scan on their code. Enabling an immediate feedback loop to verify they have correctly implemented the security requirements</li>
 
        <li>Allows developers to open an "on demand" risk training sandbox environment.  Training developers how to exploit and defend against the risk</li>
 
    </ul>
 
<li><b>Compliance</b>: Approvers review testing evidence to make sure development teams have complied to the ever increasing security and regulatory requirements. But finding the relevant testing evidence generated by testers or in CI\CD pipelines is a lengthy process that blocks the release</li>
 
How does the tool help<br>
 
    <ul>
 
        <li>Centrally stores testing evidence alongside the risk and application critical function.  Allowing approvers to quickly see if the critical application function has been tested and mitigated according to risk tolerance</li>
 
    </ul>
 
<li><b>Risk management of the application landscape</b>: Risk managers cannot</li>
 
    <ol>
 
        <li>see which security requirements do not have secure code blocks</il>
 
        <li>see which risks need test plans or have not been tested</li>
 
        <li>see how a single security test can be re-used to test a different application risk</li>
 
        <li>see where mitigation efforts will have the most impact</li>
 
    </ol>
 
How does the tool help<br>
 
    <ul>
 
        <li>Provides a dashboard view of application landscape giving risk managers the information they need to prioritise and manage risk efforts </li>
 
    </ul>
 
</ol>
 
<br>
 
 
 
==Description==
 
<span style="color:#ff0000">
 
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. 
 
</span>
 
 
 
 
 
<br>
 
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<br>
 
<b>[https://www.linkedin.com/pulse/secure-coding-tool-michael-bergman/ Secure coding tool]</b>
 
  
 
==Licensing==
 
==Licensing==
<span style="color:#ff0000">
+
This program is free software: you can redistribute it and/or modify it under the terms of the [http://www.gnu.org/licenses/agpl-3.0.html 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.
A project must be licensed under a community friendly or open source license.  For more information on OWASP recommended licenses, please see [https://www.owasp.org/index.php/OWASP_Licenses 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.
 
</span>
 
 
 
This program is free software: you can redistribute it and/or modify it under the terms of the [http://www.gnu.org/licenses/agpl-3.0.html 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==
 
<span style="color:#ff0000">
 
As of <strong>November, 2013, the highest priorities for the next 6 months</strong> are:
 
<strong>
 
* 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
 
</strong>
 
 
 
Subsequent Releases will add
 
<strong>
 
* Internationalization Support
 
* Additional Unit Tests
 
* Automated Regression tests
 
</strong>
 
 
 
==Getting Involved==
 
<span style="color:#ff0000">
 
Involvement in the development and promotion of <strong>Tool Project Template</strong> 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;" |
+
== Interested in contributing==
 +
[https://www.linkedin.com/in/michael-bergman-99826212a/ Please send a connect request with subject SCAT]
  
 
== Project Resources ==
 
== Project Resources ==
<span style="color:#ff0000">
 
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.
 
</span>
 
 
[https://github.com/SamanthaGroves Installation Package]
 
  
[https://github.com/SamanthaGroves Source Code]
+
[Installation Package]
  
[https://github.com/SamanthaGroves What's New (Revision History)]
+
[Source Code]
 
 
[https://github.com/SamanthaGroves Documentation]
 
 
 
[https://github.com/SamanthaGroves Wiki Home Page]
 
 
 
[https://github.com/SamanthaGroves Issue Tracker]
 
 
 
[https://github.com/SamanthaGroves Slide Presentation]
 
 
 
[https://github.com/SamanthaGroves Video]
 
  
 
== Project Leader ==
 
== Project Leader ==
<span style="color:#ff0000">
+
[https://www.linkedin.com/in/michael-bergman-99826212a/ Michael Bergman LinkedIn]
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.
 
</span>
 
 
 
[mailto://[email protected] Michael Bergman]
 
 
 
== Related Projects ==
 
<span style="color:#ff0000">
 
This is where you can link to other OWASP Projects that are similar to yours.
 
</span>
 
* [[OWASP_Code_Project_Template]]
 
* [[OWASP_Documentation_Project_Template]]
 
  
 
==Classifications==
 
==Classifications==

Latest revision as of 18:33, 14 October 2019

OWASP Project Header.jpg

What is the Secure code assurance tool (SCAT)

For more information on the why behind the SCAT, read my linkedIn Article here

What is the SCAT

  • SCAT is a process integrity tool, implementing a consistent, authorized and auditable software development process
  • SCAT is used by development teams to build, verify and assure secure software
    • Build: uses a combination of code level guidance, on demand training and DAST tools to train, guide and verify correct implementation
    • Verify: uses a combination of manual test plans and SATS tools to guide and verify correct implementation
    • Assure: centrally stores and publishes evidence of secure development and testing as an audit trail. Providing traceability through requirements and proving that security controls operate efficiently over a period of time
  • SCAT is not a point in time security verification tool for detecting vulnerabilities after development

Process integrity and point in time tools: How they work in the SDLC

Process integrity VS point in time without check

Without further complicating development environment

  • SCAT is a simple 5 screen MVC, C# web application with a small footprint that can be deployed without further complicating development environment
  • Integrates with Jira and runs ZAP and SonarQube in docker containers
  • SCAT is part of three domains to consider when securing software development. I've detailed the other domains in an article that will be published in the Nov/Dec issue of the ISC2 magazine, I will add a link here after publication.

See below how the Secure code assurance tool integrates security into software development phases

Sprint planning phase

Objective: Ensures security requirements are understood

  • Developers use the Identify risks screen to
    1. Select the critical function to developing/changing
    2. Identify the technologies used
    3. Automatically generate the security requirements and tests
    4.                See how to use the tools and its internal mapping to generate security requirements
      
  • Product owners use the Secure code requirements screen to
    1. Create an audit trail to store evidence of secure development
    2. Create Jira tickets for requirements and tests to manage work

Development phase

Objective: Ensure correct implementation of security requirements

Secure code review phase

Objective: Ensure correct implementation of security requirements

Testing phase

Objective: Ensure valid security testing

Approval phase

Objective: Streamline the approval and audit process

Risk management

Objective: Enable risk managers to prioritise, plan and monitor mitigation efforts

  • Risk managers use the Application risk exposure screen to
    1. View each application critical function and the associated risks
    2. Identify where mitigation effort is required by viewing which risks require security requirements
    3. Identify where development effort is required by viewing which security requirements need secure code blocks
    4. Identify where extra testing effort is required by viewing which risks require security test plans
    5.                See how the Application landscape overview screen informs risk based decision making
      



When developing secure software we need to consider both standard secure code and client specific architectural requirements

Standard secure code requirements

  • SCAT comes out the box with a standard OWASP secure code requirements map. This mapping need to be modified to the specific organisation requirements

  • Information security and development team use the Internal mapping screen to
    1. Map the security requirements to OWASP risks
    2. Map organisation approved secure code blocks to security requirements
    3. Map security test plans to OWASP risks
    4.                See how to setup the SCAT's internal mapping
      

Client specific architectural requirements

  • To generate these requirements we perform a risk assessment on client application landscape and identify
    1. Critical applications and functions
    2. Risk associated with each critical application function
    3. Architectural security requirements to secure each critical application functions
    4. Client specific secure code blocks to implement security requirements
    5. Secure test plans to verify risk has been mitigated


  • Tool administrators use the Internal mapping screen to
    1. Create json files of the organisation specific risks, security requirements, secure code blocks and tests
    2. Import these into the SCAT
    3.     See how to import organisations specific risks, security requirements, secure code blocks and tests
      



Licensing

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.

Interested in contributing

Please send a connect request with subject SCAT

Project Resources

[Installation Package]

[Source Code]

Project Leader

Michael Bergman LinkedIn

Classifications

Project Type Files TOOL.jpg
Incubator Project
Owasp-defenders-small.png
Affero General Public License 3.0