Software Code Quality Checking (SCQC) No Clearance for This Secret: Information Assurance is MORE Than Security



Similar documents
Software Code Quality Checking (SCQC) No Clearance for This Secret: Software Assurance is MORE Than Security

How To Improve Your Software

Productivity Measurement and Analysis

Code Dx: Visual analytics for triage of source code vulnerabilities

HP Fortify Application Security Lucas v. Stockhausen PreSales Manager HP Fortify EMEA Enterprise Security

Cloud Infrastructure Security Management

Open Source Security Study How Are Open Source Development Communities Embracing Security Best Practices?

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

White Paper 6 Steps to Enhance Performance of Critical Systems

Effective Software Verification for Medical Devices

Seven Practical Steps to Delivering More Secure Software. January 2011

Vulnerability Management

Minimizing code defects to improve software quality and lower development costs.

2011 Cyber Security and the Advanced Persistent Threat A Holistic View

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Software Engineering Compiled By: Roshani Ghimire Page 1

Software Project Audit Process

ECM Migration Without Disrupting Your Business: Seven Steps to Effectively Move Your Documents

White Paper Software Quality Management

Black Box versus White Box: Different App Testing Strategies John B. Dickson, CISSP

Application Portfolio Risk Ranking Banishing FUD With Structure and Numbers

1. Introduction. Annex 7 Software Project Audit Process

How to measure the ROI of SPI as early as possible

Building Security into the Software Life Cycle

Continuous Prevention Testing

! Resident of Kauai, Hawaii

Effective Software Security Management

Developing Secure Software, assignment 1

Good Software. Lecture 6 GSL Peru 2014

How to start a software security initiative within your organization: a maturity based and metrics driven approach OWASP

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Application Code Development Standards

Software Test Costs and Return on

How To Make Your Software More Secure

Chap 1. Software Quality Management

Testing Process Models

Risk Management Framework (RMF): The Future of DoD Cyber Security is Here

Building a Data Quality Scorecard for Operational Data Governance

EXHIBIT L. Application Development Processes

Development Testing for Agile Environments

Your world runs on applications. Secure them with Veracode.

HP Fortify application security

Improving Java Migration Outcomes with Rapid Assessment

Automatic vs. Manual Code Analysis

Software Development Best Practices

SAFECode Security Development Lifecycle (SDL)

Proof of Concept service. Professional and Managed Services. Installation services. First Looks

Serena Dimensions CM. Develop your enterprise applications collaboratively securely and efficiently SOLUTION BRIEF

Blending Traditional and Agile Project Documentation

SOFTWARE QUALITY IN 2002: A SURVEY OF THE STATE OF THE ART

Organizational Issues of Implementing Intrusion Detection Systems (IDS) Shayne Pitcock, CISSP First Data Corporation

the state of the practice Variations in Software Development Practices

Evaluating Software Alternatives. Chapter 4 Methods of Software Acquisition. Advantages of Custom Developed Software. Custom Developed Software

The Value of Vulnerability Management*

HP Fortify Software Security Center

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

Total Protection for Compliance: Unified IT Policy Auditing

CONTINUOUS DIAGNOSTICS BEGINS WITH REDSEAL

Managing Vulnerabilities for PCI Compliance White Paper. Christopher S. Harper Managing Director, Agio Security Services

Object-Oriented Software Engineering

(Refer Slide Time: 01:52)

STS Federal Government Consulting Practice IV&V Offering

NetIQ FISMA Compliance & Risk Management Solutions

2015 Global Identity and Access Management (IAM) Market Leadership Award

Office of Inspector General

Learning objectives for today s session

Open Source Voting Systems

Getting software security Right

Information Security and Continuity Management Information Sharing Portal. Category: Risk Management Initiatives

The Security Development Lifecycle at SAP How SAP Builds Security into Software Products

Effective Software Quality Metrics for ADM Service Level Agreements

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Software Quality Assurance Plan

Threat Modeling for Secure Embedded Software

Federal Mobile App Vetting Center for Assured Software Pilot. Nick Valletta

Application of software product quality international standards through software development life cycle

Useful Automated Software Testing Metrics

Camber Quality Assurance (QA) Approach

Data Management Maturity Model. Overview

THE ROLE OF IDS & ADS IN NETWORK SECURITY

Application Security Testing How to find software vulnerabilities before you ship or procure code

FREQUENTLY ASKED QUESTIONS

SOFTWARE QUALITY IN 2012: A SURVEY OF THE STATE OF THE ART

Build (develop) and document Acceptance Transition to production (installation) Operations and maintenance support (postinstallation)

Transcription:

Software Code Quality Checking (SCQC) No Clearance for This Secret: Information Assurance is MORE Than Security Nominee International Security Executives (ISE ) Information Security Project of the Year North America Government Sector 1

A WORD OF CAUTION This presentation is not meant to endorse or recommend the use of any of the products identified within. The presentation is intended to provide insight into specific lessons-learned through the application of a disciplined methodology, supplemented by a suite of tools as implemented by skilled practitioners.

POINT OF CONTACT IT Specialist, SCQC Task Manager John Keane 703-380-5554 jkeanejr@aol.com 3

BOTTOM LINE UP FRONT QUALITY is the biggest driver of sustainment cost The FOUNDATION of SECURE software is QUALITY software. Software Assurance is 5 parts Code Quality with 2 parts Software Security. Code Quality scans should ALWAYS precede Security scans Improves effectiveness and efficiency of the security scans (e.g., remove false positives, focus on highest risks, etc.) Recommended Best Practice Validated by MULTIPLE reports and analyses based on hands-on experience Discovers risks in addition to security (e.g., performance)

Software Code Quality Checking (SCQC) INTRODUCTION - WHAT IS SCQC? A scan of the source code, executables, and related artifacts, e.g., documentation, to ensure that the System Under Review can Continue with development, demonstration, and test; and Can meet the stated performance, maintainability, and usability requirements within cost (program budget), schedule (program schedule), risk, and other system constraints. Encompasses the use of Static code analysis, Static security analysis, Dynamic code analysis, Dynamic security analysis, and Architectural analysis and Is USUALLY performed using automated tools. 5

DETAILED TERMINOLOGY Static Analysis is the analysis of computer software and related documentation that is performed without actually executing programs built from the software. Static Security Analysis is the analysis of computer software that is performed without actually executing programs to detect and report weaknesses that can lead to security vulnerabilities. Static security analysis, in conjunction with manual review of the code, is recommended in section 5.4 of the DISA Applications Security and Development Security Technical Implementation Guide. Automated static security analysis is also supported by the SASC language accompanying section 932 of the 2011 NDAA. Dynamic Program Analysis is the analysis of computer software and related documentation that is performed by executing programs built from that software on a real or virtual processor. Dynamic Security Analysis is the analysis of computer software that is performed by executing programs to detect and report weaknesses that can lead to security vulnerabilities. Architectural Analyses may be supported by automated tools but are usually conducted by manual walk-through of documentation and visual inspection of the code. 6

SCQC FOCUS Focuses on: Verification -- "Are you building the thing right? Purpose: To ensure delivery of quality software code benchmarked against recognized standards (e.g., IEEE, CMMI, etc.) Focuses on technical correctness of the code except for performance, may not be obvious to the end user Fact: Poorly written code results in customer dissatisfaction and higher long-term maintenance cost Code Quality Checking supports Strategic Objectives such as Operational Excellence (optimal time to market); IM/IT Effectiveness (high quality); IM/IT Efficiency (cost-effectiveness/reduced lifecycle costs).

SOME THINKING ABOUT TOOLS (1) A Fool With A Tool is Still a Fool PMT256 - Program Management Tools Course TST203 - Intermediate Test and Evaluation Director, Federal Reserve Information Technology To achieve success you need a combination of : Skilled People Disciplined Processes Enabling Tools and Technologies

SOME THINKING ABOUT TOOLS (2) Open Source Tools CAN Achieve SOME Measure of Success Pre-Screen Before Using More Powerful Tools Get rid of the That Wasn t Very Smart Defects BUT Only 60% to 65% effective AND Don t Get the We should have NEVER done THAT Mistakes Sooner or Later You WILL Have to Invest in the High Quality Licensed Tools To Get The Desired Results.

The Value Proposition 11

SOME SCQC BENEFITS Testing by itself is time consuming and not very efficient.* Most forms of testing only find about 35% of the bugs that are present. Static analysis prior to testing is very quick and about 85% efficient. As a result, when testing starts there are so few bugs present that testing schedules are cut down by perhaps 50%. Static analysis will also find some structural defects that are not usually found by testing. *Capers Jones -Distinguished Advisor to the Consortium for IT Software Quality (CISQ). CISQ brings together industry executives from Global 2000 IT organizations, system integrators, outsourcers, and package vendors to jointly address the challenge of standardizing the measurement of IT software quality and to promote a market-based ecosystem to support its deployment. Static Security Analysis prior to DIACAP testing may find, and be able to help correct, a large number of the Applications Source Code defects identified during Information Assurance testing. When combined with Manual Code Review and Dynamic Analyses, can reduce False Positives. 10

DEFECT DENSITY - BASIC MODEL* Error Distribution Hours to Correct Requirements Analysis/Design Code/Unit Testing Government Testing Production/ Deployment 10% 20% 55% 15% 50 120 380 Cost per Hour $100 $100 $100 Cost to Fix 1000 Errors Total Cost/ Investment $1,000,000 $6,600,000 $5,700,000 $13,300,000 Return on Investment *Stewart-Priven Group, 2009 Presentation to PMI-MHS Software Inspection Success DAU Advanced Test and Evaluation (TST 303) 12

Return on Investment 11

20% DEFECT REMOVAL ROI MODEL Requirements Analysis/Design Code/Unit Testing Government Testing Production/ Deployment Error Distribution 10% 20% 55% 15% Total Cost/ Investment Return on Investment Hours to Correct 50 120 380 Cost per Hour $100 $100 $100 Cost to Fix 1000 Errors $1,000,000 $6,600,000 $5,700,000 $13,300,000 SCQC Applied Error Distribution 10% 40% 45% 5% Hours to Correct 50 120 380 Cost per Hour $100 $100 $100 Cost to Fix 1000 Errors $2,013,518 $5,400,000 $1,800,000 $9,213,158 Cost Avoidance $1,013,518 $1,200,000 $3,900,000 $4,086,842 SCQC Investment $1,868,230 ROI 118.75% 13

85% DEFECT REMOVAL ROI MODEL Requirements Analysis/Design Code/Unit Testing Government Testing Production/ Deployment Error Distribution 10% 20% 55% 15% Total Cost/ Investment Return on Investment Hours to Correct 50 120 380 Cost per Hour $100 $100 $100 Cost to Fix 1000 Errors $1,000,000 $6,600,000 $5,700,000 $13,300,000 SCQC Applied Error Distribution 10% 80% 7% 3% Hours to Correct 50 120 380 Cost per Hour $100 $100 $100 Cost to Fix 1000 Errors $2,960,000 $621,600 $843,600 $4,425,000 Cost Avoidance $1,960,000 $5,978,400 $4,856,400 $8,874,000 SCQC Investment $1,868,230 ROI 375.04% 14

How Do We Enforce It?

ENABLING MECHANISMS Measurable/Enforceable Standards Derived from early assessments Too Many?? Processes Based on early assessments Continuously updated and refined Benchmarked against industry and other government agency best practices Contracting Language Specific to all new contracts Integrated into overall Quality Assurance Process Assessment Frameworks Cast Health Factors Software Improvement Group (SIG) Maintainability Model with Technical Debt Automated Tools Rigorous Testing in SCQC Lab Detailed reports with defects AND recommended corrective actions Face-to-Face exchanges with product managers and developers 15

ANALYSIS TOOLS* CAST Application Intelligence Platform (CAST) Analyze source code (Static Analysis) Supports multiple languages Checks against multiple code quality metrics Fortify (Fortify Source Code Analyzer) Analyzes source code security vulnerabilities Supports multiple languages Checks against multiple security standards FindBugs Open Source Java Code Analyzer Static Quality Analysis Used to find additional flaws and remove tool bias. *Purify Plus, XDepend, *WebLayers NDepend Measure software quality against standard code metrics Currently supports Microsoft s.net Inspects assembly dependencies extensively Sonar Measure software quality against Microsoft Quality Standards Runs quality analysis based of findings. Inspects assembly dependencies extensively FxCop Measure software quality against Microsoft Best Coding Practices Inspects.Net managed code assemblies 16

STANDARD CONTRACTING LANGUAGE Developed standard contracting language that ensures software code quality checking becomes business as usual for all our system acquisitions. Key Features Provides clear and unambiguous guidance to developers as to the standards by which their products will be measured/assessed. Transfers risk to the developer Key Benefits Promotes common understanding with our developers as to the quality of the code we ask them to deliver. Improves the likelihood of better code delivered for testing and deployment. Reduces the high cost of fixing/retesting/re-fixing the code. Ongoing activities Developed Training Program for Internal Staff and Developers Conduct training 17

How Do We Conduct and Report Our Security Findings? 26

SECURITY ANALYSIS AND REPORTS Focus is on Software WEAKNESSES External AND Internal Security Vulnerabilities/Violations Also Identifies Related Code Quality Issues Automated Scan Manual review required for removal of False Positives Reports High Level DISA STIG Summary with Level of Effort Mapped to CWE ID Detailed Violation Report with Suggested Remedial Action for CAT 1 Violations Spreadsheet with Individual Defects Identified Down to the Line of Code Output file for vendors with the tool Face-to-Face Consultation when Asked 27

RECENT SECURITY FINDINGS LINES OF CODE DEFECTS REMEDIATION EFFORT (HOURS) CAT 1 CAT 2 OTHER TOTAL DENSITY CAT 1 CAT 2 TOTAL Project 1a 87,393 274 1751 83 2108 2.41% 52 110 162 Project 1b 74,623 123 1070 806 1999 1.65% 25 108 133 Project 2 5,126 23 99 13 135 2.63% 4 25 29 Project 3a 43,867 143 352 n/a 495 1.13% n/a n/a 92.1 Project 3b 22,393 108 366 n/a 474 2.11% 26 44.6 70.6 Project 4a 27,639 35 58 16 109 0.39% 4 11.5 15.5 Project 4b 15,155 2 15 n/a 17 0.11%.25 5.25 5.5 Project 4c 37,299 175 513 n/a 688 1.97% 20.8 50 70.8 Project 5a 49,664 376 738 39 1153 2.32% 66 100.8 166.8 Project 5b 35,329 126 84.1 n/a 611 1.7% 36 84.1 120 30

HOLD ON TO YOUR HATS!!!!! Initial Low Defect Densities Achieved Without Running A Single Security Scan

WHAT ABOUT CODE QUALITY?

You Seem to Have a Ton of Performance Standards Can you simplify it so MANAGERS can get it?

WHAT IS TECHNICAL DEBT? Technical Debt is defined as the cost of fixing application quality problems that, if left unfixed, put the business at serious risk. Technical Debt includes only those application quality problems that are highly likely to cause business disruption (DISA STIG estimate to fix CAT I and II issues only). Due to the fact that the calculation of the Technical Debt is based on the number and severity of structural quality violations in an application, which are demonstrably linked to business disruption, Technical Debt puts a monetary value on business risk. Technical Debt Distribution by Technology Source: CRASH Report 2012 n = 745 applications; 365 million LOC 28

EFFORT DENSITY CONVERTING TECHNICAL DEBT TO EFFORT DENSITY Technical Debt is indirectly derived from the number of violations per thousands of lines of code (violations per KLOC) the higher the level of business disruption, the higher the severity of the violation. The Security & Quality Technical Debt provide LOE hours to fix CAT I and II violations. Effort Density is a suitable method to compare Technical Debt evaluation among projects because the code size may vary. Effort Density = Security & Quality Technical Debt LOE hours / Total LOC Recommended target for Effort Density is 0.02. 29

EFFORT DENSITY - EVALUATION RESULT Project 1 Project 1 Project 2 Project 3 Project 4 # Project Evaluation Name Security Evaluation (Fortify) Level of Effort Evaluation Result (Security Technical Debt) Quality Evaluation (Sonar) Level of Effort Evaluation Result (Quality Technical Debt) Lines of LOE Effort Lines of LOE Effort Total LOE Effort Critical High Medium Critical High Medium Code (In Hours) Density Code (In Hours) Density (In Hours) Density 1 Project 1 Drop 2 (.Net) 4888 4 57 7 21 0.004 9912 2 10 82 72 0.007 93.0 0.012 2 Project 1 Drop 2 (JAVA) 44542 18 1368 0 229.3 0.005 43605 0 81 759 3352 0.077 3581.3 0.082 3 Project 2 Drop 4 37101 65 13 1 51.9 0.001 10996 0 7 67 104 0.009 155.9 0.011 4 Project 3 Drop 2 18272 41 112 56 66.2 0.004 29714 45 226 1121 392 0.013 458.2 0.017 5 Project 4 Drop 2 37551 8 113 211 97 0.003 83393 53 422 4888 1160 0.014 1257.0 0.016 Grand Total Evaluatio n Result 30

RECOMMENDATIONS Ruthless Implementation of Static Code Analysis Should ALWAYS Precede Static and Other Types of Security Analyses Supported by OWASP, CWE and DACS Can reduce the number of suspicious findings Sell it to Management Based On ROI and Technical Debt but You WILL Need More Than One Tool..

Questions? 32