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
(Description)
(See how developers use SCAT)
Line 25: Line 25:
  
 
== <b>See how developers use SCAT</b>==
 
== <b>See how developers use SCAT</b>==
See below how the Security code assurance tool integrates security into the phases of software development
+
See below how the Secure code assurance tool integrates security into software development phases
 
<ul>
 
<ul>
 
=== <li>Sprint planning phase</li> ===
 
=== <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<br> to
 
             <ol>
 
             <ol>
                 <li>To Select the application critical function they are developing/changing</li>
+
                 <li>Select the application critical function they are developing/changing</li>
                 <li>To identify the technologies they are using to develop/change the application critical function</li>
+
                 <li>Identify the technologies they are using to develop/change the application critical function</li>
 
                 <li>The Secure code assurance tools uses its internal mapping to automatically generate the security requirements associated with using this technology</li>
 
                 <li>The Secure code assurance tools uses its internal mapping to automatically generate the security requirements associated with using this technology</li>
 
                 [https://youtu.be/WQVzthyGL4U See how to use the tools and its internal mapping to generate security requirements]
 
                 [https://youtu.be/WQVzthyGL4U 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<br>
+
         <li><b>Product owners</b> use the <b>Secure code requirements</b> screen<br> to
 
             <ol>
 
             <ol>
                 <li>To export security requirements for import into backlog management tools</li>
+
                 <li>Export security requirements for import into backlog management tools</li>
 
             </ol>
 
             </ol>
 
       </li>
 
       </li>
Line 45: Line 45:
 
=== <li>Development phase</li> ===
 
=== <li>Development phase</li> ===
 
     <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 <br> to
 
             <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 risks associated with the critical function</li>
                 <li>To see the secure code requirements to protect against exploitation</li>
+
                 <li>View the secure code requirements to protect against exploitation</li>
                 <li>To see the secure code block to guide developers to implement security requirements</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>After development run a ZAP basic scan to verify security requirements have been correctly implemented</li>
 
                 [https://youtu.be/8J8KMaPnGOs See how the tool helps developers understand security requirements and write secure code]
 
                 [https://youtu.be/8J8KMaPnGOs See how the tool helps developers understand security requirements and write secure code]
 
             </ol>
 
             </ol>
Line 58: Line 58:
 
=== <li>Testing phase</li> ===
 
=== <li>Testing phase</li> ===
 
     <ul>
 
     <ul>
         <li><b>Testers</b> use the <b>Secure testing</b> screen<br>
+
         <li><b>Testers</b> use the <b>Secure testing</b> screen<br> to
 
             <ol>
 
             <ol>
                 <li>To see the OWASP test plans required to test the risk mitigation efforts</li>
+
                 <li>View the test plans required to test the risk</li>
                 <li>To attach testing result to the test plan as control assurance evidence proving the risk has been mitigated</li>
+
                 <li>Attach testing result to the test plan as control assurance evidence proving the risk has been mitigated</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>
 
                 <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/VixapzUB_ts See how the tool helps testers test risk mitigation efforts and store testing evidence]
 
                 [https://youtu.be/VixapzUB_ts See how the tool helps testers test risk mitigation efforts and store testing evidence]
Line 70: Line 70:
 
=== <li>Approval phase</li> ===
 
=== <li>Approval phase</li> ===
 
<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<br> to
 
             <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 how many of the tests have test results 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/VixapzUB_ts See how the tool streamlines the approval process with centrally stored testing evidence]
 
             </ol>
 
             </ol>
Line 81: Line 81:
 
=== <li>Risk management</li> ===
 
=== <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<br> to
 
             <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 is 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>

Revision as of 11:46, 29 August 2019

OWASP Project Header.jpg

Description

  • Secure code assurance tool (SCAT) is used by inhouse and third party development teams to build, verify and assure secure software
  • Build: SCAT uses code level guidance to clearly instructs developers on how to correctly implement security requirements
  • Verify: SCAT uses a combination of ZAP basic scans and security test plans to verify correct implementation of security requirements
  • Assure: SCAT centrally stores and publishes assurance evidence proving development teams correctly implemented security requirements
  • SCAT performs the following “first line of defense” functions
    1. Promoting compliance to security requirements
    2. Minimising the impact of audit and assurance
    3. Informing risk based decision making
    4. Integrating security into the software development process
  • SCAT is a simple 5 screen MVC, C# web application with a small footprint that can be deployed without further complicating development environment
  • SCAT is part of three are 3 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 how developers use SCAT

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

  • Sprint planning phase
    • Developers use the Identify risks screen
      to
      1. Select the application critical function they are developing/changing
      2. Identify the technologies they are using to develop/change the application critical function
      3. The Secure code assurance tools uses its internal mapping to automatically generate the security requirements associated with using this technology
      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. Export security requirements for import into backlog management tools

  • Development phase
    • Developers use the Secure development screen
      to
      1. View and understand how to attack and prevent the risks associated with the critical function
      2. View the secure code requirements to protect against exploitation
      3. View the secure code block to implement the security requirement
      4. After development run a ZAP basic scan to verify security requirements have been correctly implemented
      5.                 See how the tool helps developers understand security requirements and write secure code
        

  • Testing phase
    • Testers use the Secure testing screen
      to
      1. View the test plans required to test the risk
      2. Attach testing result to the test plan as control assurance evidence proving the risk has been mitigated
      3. 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
      4.                See how the tool helps testers test risk mitigation efforts and store testing evidence
        

  • Approval phase
  • Risk management
    • 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
        



    Preparation phase

    When developing secure software the SCAT helps development teams

    1. Write secure code
    2. Safely deploy in organisation environment

    Write secure code

    • There are security requirements that apply to all web applications e.g. code needs to protect against SQL injection
    • The SCAT uses OWASP risks, security requirements and tests to guide development teams towards writing secure code
    • The SCAT contains the OWASP data map out the box but it needs to be modified to fit the organisation
    • Information security and development team use the Internal mapping screen
      1. To map the security requirements to OWASP risks
      2. To map organisation approved secure code blocks to security requirements
      3. To map security test plans to OWASP risks
      4.                See how to setup the SCAT's internal mapping
        


    Safely deploy in organisation environment

    • Organisations have environment specific security requirements, e.g. Log files in a format that can be consumed by SEIM, which DLP or authentication mechanism to use
    • The SCAT allows organisations to
      1. Create environment specific security requirements
      2. Import environment specific security requirements

    Create environment specific security requirements

    1. Identify the technical components used in client environment
    2. Identify the risks associated with using those technologies
    3. Define a set of security controls for each of the technologies
    4. InfoSec developers develop secure code blocks for each of the client specific secure code
    5. Create client specific SCAT - import data files

    Import environment specific security requirements

    • Information security and development team use the Internal mapping screen
      1. To Import and map environment specific security requirements to risks
      2. To Import and map environment specific secure code blocks to security requirements
      3. To Import and map environment specific security test plans to risks
      4.                [ See how the SCAT imports organisations environment specific security requirements]
        



    How does the SCAT implement first line of defence

    Promoting compliance to security requirements

    Internal mapping.png
    • Understand the security requirement: The tool maintains the following internal mapping allowing organisations to translate complex security requirements into code level and testing guidance
      1. Risks mapped to technologies and secure code requirements
      2. Secure code requirements (OWASP ASVS) mapped to secure code building block
      3. Secure test plans (OWASP testing guide) mapped to risks
    • The second mapping is lifted from SKF and duplicated in the SCAT. I hope to link with the SKF and remove the duplicate functionality from the SCAT tool


    Minimising the impact of audit and assurance

    • In the testing and approval phase SCAT allows testers to stores testing evidence against the critical application function and its associated risk. Providing traceability through requirements and centrally storing and publishing test evidence


    Informing risk based decision making

    • For each application critical function, SCAT shows
      1. The risks that impact that application critical function
      2. Test plans to test that risk and how many test plans have test evidence
      3. Security requirements to protect against the risk
      4. How many security requirements have secure code blocks to guide implementation
    • Allowing risk teams see levels of exposure, easily compare it to tolerance levels. And prioritise and coordinate mitigation activities across teams and the whole application landscape


    Integrating security into the software development process

    Integrate security
    • SCAT wraps security theory, best practices and requirements into set of single purpose security screens. Then plots those screens against a specific SDLC phase
    • Plotting security screen to specific SDLC phases enhances development activities in those phases to include security
    • See below an example Secure software development procedure alongside short videos of how the SCAT tool integrates security



    Who uses Secure code assurance tool (SCAT)

    • Information security, risk, assurance and compliance teams define strategic direction in security policies and requirements
    • Software development teams need to implement strategic direction in code. But don't always have time to study and understand huge security policy documents or complex requirements
    • SCAT is the integration layer between strategic direction and implementation and translates strategic security direction into code level and testing guidance
    • SCAT uses guidance, training, validation and integration to secure software and promote compliance, rather than costly post development policing

    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.

    Project Resources

    [Installation Package]

    [Source Code]

    Project Leader

    Michael Bergman

    Classifications

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