SlideShare a Scribd company logo
Source Code Analysis Made Easy

The AppSec How-To:
10 Steps to Secure Agile Development
10 Steps

In Agile’s fast-paced environment and frequent releases,
security reviews and testing sound like an impediment to
success. How can you keep up with Agile demands of
continuous integration and continuous deployment without
abandoning security best practices?
Companies have found the following ten practices helpful to achieve
a holistic secure Software Development Life Cycle (SDLC) process
in an Agile SaaS world. The approaches taken by these companies
follow a basic philosophy: keeping security as simple as possible and
remove any unnecessary load from the development team.

1

Be part of the process

Security requirements should be considered as additional development checkpoints. Each benchmark
needs to be achieved before proceeding to the next stage of an Agile process.
For each step in Agile, associate a security milestone that needs to be achieved. Start already at the
post-release planning to perform a security high-level design. This includes the following aspects:
- Security in code development. For example, inspect the planned application in terms of which
APIs are going to be used.
- Security in technologies. Identify technologies that are going to be used. For example, if system
testing is performed within a Maven process, security tests should be integrated within this
system.
- Security in features. For example, forecast any problems associated with regulations. Say, when
tracking cookies are used within a product delivered to the UK then prepare compliance to UK
privacy regulations.

2

Enforce your policy by using a security package API in each
product

There are two aspects to this stage:
a.
Use a security package such as OWASP’s Enterprise Security API (ESAPI).
ESAPI is a toolkit which enables the developers to easily consume various utilities.
The toolkit provides a variety of out-of-the box utilities such as validators, encoders, encryptors,
and randomizers. By using ESAPI, developers do not need to investigate the best security
practices and spend time researching correct implementation methods.
1
www.checkmarx.com
Source Code Analysis Made Easy

Consider hashing, as an example. Instead of relying on the developer to add a hash salt, the salt can
already be implemented as part of the ESAPI configuration. The developer, in turn, is left simply to
consume the provided API.
Particular emphasis should be made on validators because these prevent the most common Web
application vulnerabilities, such as SQLi and XSS. Each organization needs to evaluate where to integrate
the validators. Some businesses may decide to apply validators on the controller level (e.g. on the
Apache layer or within the Tomcat filter). Other companies prefer to integrate validators within the
development code to test each input. While each company needs to decide the right strategy for them,
we have found that many companies choose to validate each input within their code. This decision is
based on two main reasons:
•
All the regular expressions that are written to validate the input can be constructed as simple as
possible in order to avoid any type of performance issue. These regular expressions are actually
more similar to a business-oriented validation.
•
In case a problem arises- or a specific validator needs to be changed- only the specific input
needs to be changed. On the other hand, a higher level validator requires a whole QA process to
verify the entire system.
One organization we worked with took code-level validation one step further. The particular organization
implemented a validator that does not return the traditional true/ false boolean values, but rather
returns null if the input is invalid. In this manner, the security team was able to prevent developers from
mistakenly using that same value later on in the code.
b.

Validate that the developers are using the right API.
For each input, ensure that the developer uses the right validator as provided by the security
team. This entails failure of the security test in case the developer chooses not to use the API.
Enforcement can be achieved through source code analysis that is customized to the security
team’s requirement.

3

Integrate Source Code Analysis (SCA) within the native process
of code management

Enforcing the security policy means that the developers cannot proceed with the build process if the
checked in code does not comply with policy. To keep up with the fast-paced development environment,
the developers must be able to consume the policy without a long training period.
The way to address this challenge is by integrating SCA within the different stages of the development
process. Particular aspects to pay attention to are:
- Integrating the SCA within the build automation tool (such as Maven). Organizations typically
run the SCA in two modes. The first is running the scan as incremental tests each time the
developer performs a commit. In this way, only the change between the last scan and the current
scan is checked. The second is running a full security scan within a full-system test, say during the
nightly build. If the build fails, the developer has to fix the flaw before continuing with the
development.
- Presenting SCA findings within the build management and Continuous Integration server
(such as within TeamCity). In case of an SCA alert, it’s more efficient for the developer to click
on the finding and dynamically identify the specific vulnerability.
2
www.checkmarx.com
Source Code Analysis Made Easy

-

Enhancing the SCA with a knowledge base for the developer. Similarly to a developer fixing a
compilation error, the developer needs to know how to fix the faulty code. For this, the SCA tool
should also contain a knowledge base which describes the risk and the proper remediation advice.

4

Break the build for any “high” or “medium” findings

Do not compromise security by releasing a product that contains any high or medium findings. This
requires eliminating the flaw already at the build process. Meaning, if the developer checks in a few
high security bugs, the build will break. Unless the vulnerabilities are fixed, the developer fails to build
a package.

5

Use automation to collaborate with the security dynamic test

Dynamic testing within the product can be implemented through positive and negative unit tests.
- Use positive testing to validate the input. For instance, a positive test validating input in the
form of an email address will test that the characters “@” and “.” appear, but no other special
characters.
- Complement the positive test through a negative test. The negative test should “pick up” all
input that does not conform to the positive test. Using the above scenario, an email address
embedding a SQL Injection will be caught by the negative test. Essentially, the complementary
negative test acts as the dynamic test.

6

Run a penetration test

Engage both professional and your customers as penetration testers:
- Perform a penetration testing of the final product by an external vendor. This includes an
automated or manual test of the product once it’s released in its Alpha stage.
- Allow customers to run a penetration test and work as a community to succeed. The
organization must perform all the necessary steps in order to release a secure product. That said,
many customers are themselves subjected to regulation which requires running penetration
testing on third-party products. The benefit to you? Gaining customer confidence. This is
particularly important when talking about Software-as-a-Service (SaaS) products whose success
is based on the trust that customers put on their providers.

3
www.checkmarx.com
Source Code Analysis Made Easy

7

Engage technology leaders as security champions by
showing them the value

Even with large security teams, it is obvious that developers outnumber the security team. To extend
security’s outreach, engage with the technology leaders and place them as the security champions.
Gaining such cooperation with R&D guarantees that also when security is not physically present, security
does come up in each and every scrum meeting.

8

Train developers on a regular basis

The point here is not necessarily to establish a formal training process where developers are sent to a
Web application security course. There are other means for training, such as:
- Providing developers with the security knowledge Enhancing the SCA with the knowledge base
of a specific vulnerability, as recommended in one of the practices above, is part of this kind of
training. By helping developers understand the risk and its mitigation, security awareness
increases whereas developers start viewing security and code differently.
- Being accessible to developers. Once security becomes an ingrained process, Q&A from the
developers begin to pile up at the security team’s desk. The security team should have an open
door policy to address all the developers’ concerns.

9

Provide a collaboration platform for security discussions

This practice goes hand in hand with the previous practice on training developers. The point here is to
not only accumulate or disseminate information related to security practices. This practice focuses on
establishing a security collaboration platform with the intent of sharing information and raising
discussions surrounding security issues.

10

Start small but think big

Many of these practices, especially the practice of breaking the build for any “high” or “medium” finding,
requires the management and superiors support. We recognize that gaining this type of trust is not an
easy goal to achieve. Various companies have found the following steps helpful:
- Take one small project and turn it to a success story. Listen to R&D during this process. Learn
from mistakes and refine the process moving forward.
- With one success story under the belt, move on to a new project. Continue refining, and
learning from mistakes. Create 2-3 successful stories.
- Review the security bugs that are returned by customers. Compare the number of
vulnerabilities in one of these success stories with a different project that does not follow the
security practices.
4
www.checkmarx.com
Source Code Analysis Made Easy

Show management how these vulnerabilities interfere with the normal delivery and maintenance
of the product.
- Progress to the big legacy project. At first, don’t break the build for security findings in this big
project. It is enough at this stage to identify the gaps, close them and create a program of how
development will fix the flaws.
- Fix the flaws on the legacy system only after achieving confidence. Fix the flaws on the legacy
systems only after understanding how to correctly deliver the security package (such as ESAPI),
how to inspect it correctly, and where to correctly apply the validation without any impact to
the product.
- Proceed to the big project in-making. Naturally, this is the ultimate goal and security should
already be integrated within the Agile process. At this step, the validators should already be
packaged and set within a single framework.

5
www.checkmarx.com

More Related Content

What's hot (20)

PDF
Increasing Quality with DevOps
Coveros, Inc.
 
PDF
Driving Risks Out of Embedded Automotive Software
Parasoft
 
PPTX
Static Application Security Testing Strategies for Automation and Continuous ...
Kevin Fealey
 
PPTX
Unit testing : what are you missing for security
Suman Sourav
 
PPTX
DevSecOps-OWASP Indonesia Day 2017
Suman Sourav
 
PPTX
Security Services and Approach by Nazar Tymoshyk
SoftServe
 
PPTX
What Good is this Tool? A Guide to Choosing the Right Application Security Te...
Kevin Fealey
 
PDF
The Legend of Software Hollow: Defeating the Headless Horseman of Faulty Appl...
Parasoft
 
PDF
Security champions v1.0
Dinis Cruz
 
PPTX
A quick guide to application security testing services
Alisha Henderson
 
PPTX
Agile and Secure Development
Nazar Tymoshyk, CEH, Ph.D.
 
PDF
EuroSPI 2016 - Software Safety and Security Through Standards
Arthur Hicken
 
PPTX
Create Agile confidence for better application security
Rogue Wave Software
 
PDF
Addressing the Challenges of Mobile Test Automation
TechWell
 
PDF
Rx for FDA Software Compliance
Parasoft
 
PDF
An Essential Guide to Effective Test Automation Leveraging Open Source
RapidValue
 
PDF
Create code confidence for better application security
Rogue Wave Software
 
PPTX
Open Source Libraries - Managing Risk in Cloud
Suman Sourav
 
PDF
No Devops Without Continuous Testing
Parasoft
 
PDF
ABC's of Service Virtualization
Parasoft
 
Increasing Quality with DevOps
Coveros, Inc.
 
Driving Risks Out of Embedded Automotive Software
Parasoft
 
Static Application Security Testing Strategies for Automation and Continuous ...
Kevin Fealey
 
Unit testing : what are you missing for security
Suman Sourav
 
DevSecOps-OWASP Indonesia Day 2017
Suman Sourav
 
Security Services and Approach by Nazar Tymoshyk
SoftServe
 
What Good is this Tool? A Guide to Choosing the Right Application Security Te...
Kevin Fealey
 
The Legend of Software Hollow: Defeating the Headless Horseman of Faulty Appl...
Parasoft
 
Security champions v1.0
Dinis Cruz
 
A quick guide to application security testing services
Alisha Henderson
 
Agile and Secure Development
Nazar Tymoshyk, CEH, Ph.D.
 
EuroSPI 2016 - Software Safety and Security Through Standards
Arthur Hicken
 
Create Agile confidence for better application security
Rogue Wave Software
 
Addressing the Challenges of Mobile Test Automation
TechWell
 
Rx for FDA Software Compliance
Parasoft
 
An Essential Guide to Effective Test Automation Leveraging Open Source
RapidValue
 
Create code confidence for better application security
Rogue Wave Software
 
Open Source Libraries - Managing Risk in Cloud
Suman Sourav
 
No Devops Without Continuous Testing
Parasoft
 
ABC's of Service Virtualization
Parasoft
 

Similar to 10 Steps To Secure Agile Development (20)

PDF
AppSec How-To: Achieving Security in DevOps
Checkmarx
 
PDF
OWASP Secure Coding Practices - Quick Reference Guide
Ludovic Petit
 
PPT
Software Security in the Real World
Mark Curphey
 
PDF
SDLC & DevSecOps
Irina Kostina
 
PPTX
5 Ways to Reduce 3rd Party Developer Risk
Security Innovation
 
PDF
OWASP Secure Coding Quick Reference Guide
Aryan G
 
PPTX
Reduce Third Party Developer Risks
Kevo Meehan
 
PDF
8 Patterns For Continuous Code Security by Veracode CTO Chris Wysopal
Threat Stack
 
PDF
Agile Application Security Enabling Security in a Continuous Delivery Pipelin...
piggsadamiso
 
PPT
Software Security Engineering
Marco Morana
 
PDF
AppSec in an Agile World
David Lindner
 
PDF
Rolling Out An Enterprise Source Code Review Program
Denim Group
 
PDF
Security is our duty and we shall deliver it - White Paper
Mohd Anwar Jamal Faiz
 
PDF
ProdSec: A Technical Approach
Jeremy Brown
 
PDF
Agile Secure Development
Bosnia Agile
 
PDF
The complete guide to developer first application security By Github.Com
nootjeiviwe
 
PDF
The Future of Software Security Assurance
Rafal Los
 
PDF
From Development to Deployment- Embedding Security Testing in Every QA Stage.pdf
madhusudhanarao52
 
PPTX
Digital Product Security
SoftServe
 
PPTX
Information security software security presentation.pptx
salutiontechnology
 
AppSec How-To: Achieving Security in DevOps
Checkmarx
 
OWASP Secure Coding Practices - Quick Reference Guide
Ludovic Petit
 
Software Security in the Real World
Mark Curphey
 
SDLC & DevSecOps
Irina Kostina
 
5 Ways to Reduce 3rd Party Developer Risk
Security Innovation
 
OWASP Secure Coding Quick Reference Guide
Aryan G
 
Reduce Third Party Developer Risks
Kevo Meehan
 
8 Patterns For Continuous Code Security by Veracode CTO Chris Wysopal
Threat Stack
 
Agile Application Security Enabling Security in a Continuous Delivery Pipelin...
piggsadamiso
 
Software Security Engineering
Marco Morana
 
AppSec in an Agile World
David Lindner
 
Rolling Out An Enterprise Source Code Review Program
Denim Group
 
Security is our duty and we shall deliver it - White Paper
Mohd Anwar Jamal Faiz
 
ProdSec: A Technical Approach
Jeremy Brown
 
Agile Secure Development
Bosnia Agile
 
The complete guide to developer first application security By Github.Com
nootjeiviwe
 
The Future of Software Security Assurance
Rafal Los
 
From Development to Deployment- Embedding Security Testing in Every QA Stage.pdf
madhusudhanarao52
 
Digital Product Security
SoftServe
 
Information security software security presentation.pptx
salutiontechnology
 
Ad

More from Checkmarx (12)

PDF
Application Security Guide for Beginners
Checkmarx
 
PDF
The Web AppSec How-To: The Defender's Toolbox
Checkmarx
 
PDF
10 Tips to Keep Your Software a Step Ahead of the Hackers
Checkmarx
 
PDF
The 5 Biggest Benefits of Source Code Analysis
Checkmarx
 
PDF
A Platform for Application Risk Intelligence
Checkmarx
 
PDF
How Virtual Compilation Transforms Static Code Analysis
Checkmarx
 
PDF
Source Code vs. Binary Code Analysis
Checkmarx
 
PPTX
DevOps & Security: Here & Now
Checkmarx
 
PDF
The App Sec How-To: Choosing a SAST Tool
Checkmarx
 
PDF
The Security State of The Most Popular WordPress Plug-Ins
Checkmarx
 
PPTX
Graph Visualization - OWASP NYC Chapter
Checkmarx
 
PDF
Happy New Year!
Checkmarx
 
Application Security Guide for Beginners
Checkmarx
 
The Web AppSec How-To: The Defender's Toolbox
Checkmarx
 
10 Tips to Keep Your Software a Step Ahead of the Hackers
Checkmarx
 
The 5 Biggest Benefits of Source Code Analysis
Checkmarx
 
A Platform for Application Risk Intelligence
Checkmarx
 
How Virtual Compilation Transforms Static Code Analysis
Checkmarx
 
Source Code vs. Binary Code Analysis
Checkmarx
 
DevOps & Security: Here & Now
Checkmarx
 
The App Sec How-To: Choosing a SAST Tool
Checkmarx
 
The Security State of The Most Popular WordPress Plug-Ins
Checkmarx
 
Graph Visualization - OWASP NYC Chapter
Checkmarx
 
Happy New Year!
Checkmarx
 
Ad

Recently uploaded (20)

PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PPTX
Designing Production-Ready AI Agents
Kunal Rai
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Biography of Daniel Podor.pdf
Daniel Podor
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Designing Production-Ready AI Agents
Kunal Rai
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 

10 Steps To Secure Agile Development

  • 1. Source Code Analysis Made Easy The AppSec How-To: 10 Steps to Secure Agile Development 10 Steps In Agile’s fast-paced environment and frequent releases, security reviews and testing sound like an impediment to success. How can you keep up with Agile demands of continuous integration and continuous deployment without abandoning security best practices? Companies have found the following ten practices helpful to achieve a holistic secure Software Development Life Cycle (SDLC) process in an Agile SaaS world. The approaches taken by these companies follow a basic philosophy: keeping security as simple as possible and remove any unnecessary load from the development team. 1 Be part of the process Security requirements should be considered as additional development checkpoints. Each benchmark needs to be achieved before proceeding to the next stage of an Agile process. For each step in Agile, associate a security milestone that needs to be achieved. Start already at the post-release planning to perform a security high-level design. This includes the following aspects: - Security in code development. For example, inspect the planned application in terms of which APIs are going to be used. - Security in technologies. Identify technologies that are going to be used. For example, if system testing is performed within a Maven process, security tests should be integrated within this system. - Security in features. For example, forecast any problems associated with regulations. Say, when tracking cookies are used within a product delivered to the UK then prepare compliance to UK privacy regulations. 2 Enforce your policy by using a security package API in each product There are two aspects to this stage: a. Use a security package such as OWASP’s Enterprise Security API (ESAPI). ESAPI is a toolkit which enables the developers to easily consume various utilities. The toolkit provides a variety of out-of-the box utilities such as validators, encoders, encryptors, and randomizers. By using ESAPI, developers do not need to investigate the best security practices and spend time researching correct implementation methods. 1 www.checkmarx.com
  • 2. Source Code Analysis Made Easy Consider hashing, as an example. Instead of relying on the developer to add a hash salt, the salt can already be implemented as part of the ESAPI configuration. The developer, in turn, is left simply to consume the provided API. Particular emphasis should be made on validators because these prevent the most common Web application vulnerabilities, such as SQLi and XSS. Each organization needs to evaluate where to integrate the validators. Some businesses may decide to apply validators on the controller level (e.g. on the Apache layer or within the Tomcat filter). Other companies prefer to integrate validators within the development code to test each input. While each company needs to decide the right strategy for them, we have found that many companies choose to validate each input within their code. This decision is based on two main reasons: • All the regular expressions that are written to validate the input can be constructed as simple as possible in order to avoid any type of performance issue. These regular expressions are actually more similar to a business-oriented validation. • In case a problem arises- or a specific validator needs to be changed- only the specific input needs to be changed. On the other hand, a higher level validator requires a whole QA process to verify the entire system. One organization we worked with took code-level validation one step further. The particular organization implemented a validator that does not return the traditional true/ false boolean values, but rather returns null if the input is invalid. In this manner, the security team was able to prevent developers from mistakenly using that same value later on in the code. b. Validate that the developers are using the right API. For each input, ensure that the developer uses the right validator as provided by the security team. This entails failure of the security test in case the developer chooses not to use the API. Enforcement can be achieved through source code analysis that is customized to the security team’s requirement. 3 Integrate Source Code Analysis (SCA) within the native process of code management Enforcing the security policy means that the developers cannot proceed with the build process if the checked in code does not comply with policy. To keep up with the fast-paced development environment, the developers must be able to consume the policy without a long training period. The way to address this challenge is by integrating SCA within the different stages of the development process. Particular aspects to pay attention to are: - Integrating the SCA within the build automation tool (such as Maven). Organizations typically run the SCA in two modes. The first is running the scan as incremental tests each time the developer performs a commit. In this way, only the change between the last scan and the current scan is checked. The second is running a full security scan within a full-system test, say during the nightly build. If the build fails, the developer has to fix the flaw before continuing with the development. - Presenting SCA findings within the build management and Continuous Integration server (such as within TeamCity). In case of an SCA alert, it’s more efficient for the developer to click on the finding and dynamically identify the specific vulnerability. 2 www.checkmarx.com
  • 3. Source Code Analysis Made Easy - Enhancing the SCA with a knowledge base for the developer. Similarly to a developer fixing a compilation error, the developer needs to know how to fix the faulty code. For this, the SCA tool should also contain a knowledge base which describes the risk and the proper remediation advice. 4 Break the build for any “high” or “medium” findings Do not compromise security by releasing a product that contains any high or medium findings. This requires eliminating the flaw already at the build process. Meaning, if the developer checks in a few high security bugs, the build will break. Unless the vulnerabilities are fixed, the developer fails to build a package. 5 Use automation to collaborate with the security dynamic test Dynamic testing within the product can be implemented through positive and negative unit tests. - Use positive testing to validate the input. For instance, a positive test validating input in the form of an email address will test that the characters “@” and “.” appear, but no other special characters. - Complement the positive test through a negative test. The negative test should “pick up” all input that does not conform to the positive test. Using the above scenario, an email address embedding a SQL Injection will be caught by the negative test. Essentially, the complementary negative test acts as the dynamic test. 6 Run a penetration test Engage both professional and your customers as penetration testers: - Perform a penetration testing of the final product by an external vendor. This includes an automated or manual test of the product once it’s released in its Alpha stage. - Allow customers to run a penetration test and work as a community to succeed. The organization must perform all the necessary steps in order to release a secure product. That said, many customers are themselves subjected to regulation which requires running penetration testing on third-party products. The benefit to you? Gaining customer confidence. This is particularly important when talking about Software-as-a-Service (SaaS) products whose success is based on the trust that customers put on their providers. 3 www.checkmarx.com
  • 4. Source Code Analysis Made Easy 7 Engage technology leaders as security champions by showing them the value Even with large security teams, it is obvious that developers outnumber the security team. To extend security’s outreach, engage with the technology leaders and place them as the security champions. Gaining such cooperation with R&D guarantees that also when security is not physically present, security does come up in each and every scrum meeting. 8 Train developers on a regular basis The point here is not necessarily to establish a formal training process where developers are sent to a Web application security course. There are other means for training, such as: - Providing developers with the security knowledge Enhancing the SCA with the knowledge base of a specific vulnerability, as recommended in one of the practices above, is part of this kind of training. By helping developers understand the risk and its mitigation, security awareness increases whereas developers start viewing security and code differently. - Being accessible to developers. Once security becomes an ingrained process, Q&A from the developers begin to pile up at the security team’s desk. The security team should have an open door policy to address all the developers’ concerns. 9 Provide a collaboration platform for security discussions This practice goes hand in hand with the previous practice on training developers. The point here is to not only accumulate or disseminate information related to security practices. This practice focuses on establishing a security collaboration platform with the intent of sharing information and raising discussions surrounding security issues. 10 Start small but think big Many of these practices, especially the practice of breaking the build for any “high” or “medium” finding, requires the management and superiors support. We recognize that gaining this type of trust is not an easy goal to achieve. Various companies have found the following steps helpful: - Take one small project and turn it to a success story. Listen to R&D during this process. Learn from mistakes and refine the process moving forward. - With one success story under the belt, move on to a new project. Continue refining, and learning from mistakes. Create 2-3 successful stories. - Review the security bugs that are returned by customers. Compare the number of vulnerabilities in one of these success stories with a different project that does not follow the security practices. 4 www.checkmarx.com
  • 5. Source Code Analysis Made Easy Show management how these vulnerabilities interfere with the normal delivery and maintenance of the product. - Progress to the big legacy project. At first, don’t break the build for security findings in this big project. It is enough at this stage to identify the gaps, close them and create a program of how development will fix the flaws. - Fix the flaws on the legacy system only after achieving confidence. Fix the flaws on the legacy systems only after understanding how to correctly deliver the security package (such as ESAPI), how to inspect it correctly, and where to correctly apply the validation without any impact to the product. - Proceed to the big project in-making. Naturally, this is the ultimate goal and security should already be integrated within the Agile process. At this step, the validators should already be packaged and set within a single framework. 5 www.checkmarx.com