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
(Process integrity VS point in time)
(What is the SCAT)
Line 30: Line 30:
  
 
<p>
 
<p>
<strong>Process integrity</strong>
+
==Process integrity==
 
</p>
 
</p>
 
<p>
 
<p>
Line 58: Line 58:
 
</ul>
 
</ul>
 
<p>
 
<p>
<strong>Point in time security verification</strong>
+
==Point in time security verification==
 
</p>
 
</p>
 
<p>
 
<p>

Revision as of 08:23, 7 October 2019

OWASP Project Header.jpg

What is the Secure code assurance tool (SCAT)

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

Answers the questions: When a vulnerability is detected

  • Do developers consistently uses and approved fixes?
  • Do testers consistently write valid test?
  • Can dev teams consistently produce evidence they have done it securely?

Consistency is important: It means that when a vulnerability is detected it is fixed and will not reoccur in the next sprint or when a new developer joins the team. Only when consistency is in place can organisations begin improving and maturing the process

Process integrity tools

  • Vulnerability fixes are translated into security controls and built into the process of developing software. These are verified and each phase and evidence collected proving they was implemented correctly
  • What do we mean by “translated into security controls”?: Detected vulnerabilities are enriched with organisational specifice secure code blocks, trained, verified, evidence collected and monitored for compliance. Translating vulnerabilities into security controls has a higher upfront setup cost

Point in time security verification

Answers the question: How many vulnerabilities do we have in production at this moment in time?

Point in time tools

  • Very good at periodically checking if vulnerabilities have been fixed with a low upfront setup cost
  • Clearly instructs as to what needs to be fixed, but gives little guidance on how to fix vulnerabilities
  • Without guidance and only periodic checking, dev teams learn to fix vulnerabilities through trial and error and rely on individual knowledge and experience

Low levels of compliance

  • Development teams don’t have the time to study and understand the complex security requirements and don’t know how to write code or test code that implements it

Compliance and assurance seen as blockers

  • Approvers and assurance teams delay release while development teams do a post development, blind scramble for evidence to prove they have met security requirements

Duplication of effort and inconsistent implementation

  • Complex application landscapes with multiple dev teams, application and technologies make it difficult to control and coordinate development and testing effort

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
      



SCAT has the following governance objectives implemented by the following “first line of defense” functions

SCATGovObj.png

Benefits realisation: Enabling development teams to deliver at speed

  1. Promoting compliance to security requirements
  2. Minimising the impact of audit and assurance

Risk optimisation: Minimise the negative and maximise the positive consequences

  1. Informing risk based decision making

Resource optimisation: Predictable, repeatable and consistent level of security across all teams

  1. Integrating security into the software development process



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
    4. The second mapping is lifted from OWASP secure knowledge framework and duplicated in the SCAT. I hope to link with the SKF and remove the duplicate functionality from the SCAT tool
  • Verify understanding: The tool also makes use of OWASP ZAP basic scan to scan localhost for vulnerabilities, confirming the correct implementation of security requirements


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. Security requirements and secure code block to protect against the risk
    3. Test evidence proving risk has been mitigated to within tolerance
  • 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 each of those screens to a specific software development phase
  • Plotting security screens to specific software development phases provides development teams with concise information when and how they need it







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