CERT C++ COMPLIANCE ENFORCEMENT

Similar documents
Oracle Developer Studio Code Analyzer

MISRA C:2012. by Paul Burden Member of MISRA C Working Group and co-author of MISRA C:2012. February 2013

MISRA C:2012 WHITE PAPER

Automating the Top 20 CIS Critical Security Controls

WHITE PAPER. 10 Reasons to Use Static Analysis for Embedded Software Development

Secure Development Lifecycle

Achieving EN Compliance with QA C and QA C++

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

CA Test Data Manager Key Scenarios

정형기법을활용한 AUTOSAR SWC 의구현확인및정적분석

Security Information & Event Management (SIEM)

SECURITY TRAINING SECURITY TRAINING

TEL2813/IS2820 Security Management

Automating Best Practices to Improve Design Quality

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Part 5. Verification and Validation

Total Protection for Compliance: Unified IT Policy Auditing

Lecture 15 Software Testing

Privileged Account Security: A Balanced Approach to Securing Unix Environments

Continuously Discover and Eliminate Security Risk in Production Apps

RSA Solution Brief. Managing Risk Within Advanced Security Operations. RSA Solution Brief

18-642: Code Style for Compilers

Brochure. Security. Fortify on Demand Dynamic Application Security Testing

Internet Scanner 7.0 Service Pack 2 Frequently Asked Questions

CA Host-Based Intrusion Prevention System r8

Coverity Static Analysis Support for MISRA Coding Standards

Certification Report

Coding Standards in FACE Conformance. John Thomas, Chris Edwards, and Shan Bhattacharya

Security Management Models And Practices Feb 5, 2008

BECOME A LOAD TESTING ROCK STAR

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

HICPP, JSF++ and MISRA C++: a study of rule overlaps and effective compliance

AAD - ASSET AND ANOMALY DETECTION DATASHEET

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

ARC VIEW. Critical Industries Need Continuous ICS Security Monitoring. Keywords. Summary. By Sid Snitkin

REGULATORY COMPLIANCE REGULATORY COMPLIANCE SERVICES. Dynamic Solutions. Superior Results.

CERTIFIED. Faster & Cheaper Testing. Develop standards compliant C & C++ faster and cheaper, with Cantata automated unit & integration testing.

SOLUTION BRIEF RSA ARCHER IT & SECURITY RISK MANAGEMENT

18-642: Code Style for Compilers

Approaches and Tools to Quantifying Facility Security Risk. Steve Fogarty, CSO

LOCAL WEB DESIGN. Designing a Website That Produces Results

Coding Standards in FACE Conformance. John Thomas, Chris Edwards, and Shan Bhattacharya

BUILDING A NEXT-GENERATION FIREWALL

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Is Your Web Application Really Secure? Ken Graf, Watchfire

Host-Target Testing Executive Summary Copyright

IBM Rational Rhapsody

Advanced Software Testing Testing Code with Static Analysis

New York Cybersecurity. New York Cybersecurity. Requirements for Financial Services Companies (23NYCRR 500) Solution Brief

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. March 2017 PRINCIPLES OF USER INTERFACE DESIGN

Verification of Requirements For Safety-Critical Software

Software Quality. Richard Harris

Best Practices Process & Technology. Sachin Dhiman, Senior Technical Consultant, LDRA

Chapter 8 Software Testing. Chapter 8 Software testing

The Adobe XML Architecture

TRIPWIRE VULNERABILITY RISK METRICS CONNECTING SECURITY TO THE BUSINESS

Product Quality Engineering. RIT Software Engineering

Static Analysis of C++ Projects with CodeSonar

CAPABILITY. Managed testing services. Strong test managers experienced in working with business and technology stakeholders

Achieving Java Application Security With Parasoft Jtest

Effective Threat Modeling using TAM

DEVELOPING SECURE EMBEDDED SOFTWARE

HP Fortify Software Security Center

AlgoSec. Managing Security at the Speed of Business. AlgoSec.com

Trend Micro Deep Discovery for Education. Identify and mitigate APTs and other security issues before they corrupt databases or steal sensitive data

Verification and Validation

Addressing Future Challenges in the Development of Safe and Secure Software Components The MathWorks, Inc. 1

SDLC Maturity Models

Enhancing the Cybersecurity of Federal Information and Assets through CSIP

IPS with isensor sees, identifies and blocks more malicious traffic than other IPS solutions

Defense-in-Depth Against Malicious Software. Speaker name Title Group Microsoft Corporation

Verification and Validation

Massimo Nardone, TKK, S Security of Communication Protocols

CA ERwin Data Profiler

ΗΜΥ 317 Τεχνολογία Υπολογισμού

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

Subscriber Data Correlation

THE AUTOMATED TEST FRAMEWORK

Improving Security in the Application Development Life-cycle

Introduction to ISO/IEC 27001:2005

OG0-091 Q&As TOGAF 9 Part 1

Bridge Course On Software Testing

White Paper. Why IDS Can t Adequately Protect Your IoT Devices

All the subjective part of 2011 papers solved complete reference numbers

<< Practice Test Demo - 2PassEasy >> Exam Questions CISM. Certified Information Security Manager.

Compliance Brief: The National Institute of Standards and Technology (NIST) , for Federal Organizations

Certification Authorities Software Team (CAST) Position Paper CAST-25

To Audit Your IAM Program

Verification and Validation of Models for Embedded Software Development Prashant Hegde MathWorks India Pvt. Ltd.

Issues that Matter Notification and Escalation

Using Static Code Analysis to Find Bugs Before They Become Failures

Synopsys Static Analysis Support for SEI CERT C Coding Standard

ISO COMPLIANCE GUIDE. How Rapid7 Can Help You Achieve Compliance with ISO 27002

Web Applications (Part 2) The Hackers New Target

Security Gap Analysis: Aggregrated Results

A Security Practice Evaluation Framework

NetDefend Firewall UTM Services

SentryWire Next generation packet capture and network security.

SentryWire Next generation packet capture and network security.

Transcription:

CERT C++ COMPLIANCE ENFORCEMENT AUTOMATED SOURCE CODE ANALYSIS TO MAINTAIN COMPLIANCE SIMPLIFY AND STREAMLINE CERT C++ COMPLIANCE The CERT C++ compliance module reports on dataflow problems, software defects, language implementation errors, inconsistencies, dangerous usage and coding standard violations quickly and efficiently. The CERT C++ compliance module is an optional add-on for the QA C++ static analysis solution, providing enforcement of the CERT C++ Secure Coding Standard ensuring vulnerabilities including security-related defects and violations are detected. The CERT C++ compliance module provides an extension to the analysis and reporting capabilities of QA C++ to directly highlight violations of the CERT C++ Secure Coding Standard, and combines error detection and security best practice with full integration within the PRQA product suite. The CERT C++ compliance module provides an out-of-the-box configuration for QA C++, which eliminates the need to manually configure the tool to enforce CERT C++ rules, and includes additional checks to supplement the already extensive suite of QA C++ analysis checks. The existing QA C++ report templates are also enhanced to allow generation of reports that specifically show the compliance of a code base to the CERT C++ secure coding standard, to inform internal stakeholders or to use for audit purposes. IDENTIFIES WHAT THE PROBLEM IS, EXPLAINS WHY IT S A PROBLEM AND SHOWS HOW TO FIX IT The QA C++ static analyzer automatically performs in-depth analyses on your source code without executing programs. It checks your software for security vulnerabilities and conformance to CERT C++ secure coding best practices and can be configured to run locally on either desktop or server. QA C++ identifies issues which compilers and most developers miss. These include lesser-known issues explicitly stated in the ISO standards and language constructs that, while not classified as incorrect, may result in unpredictable behavior. Unlike bug catchers or less sophisticated static analyzers QA C++ finds more issues while producing fewer false positives and negatives. BENEFITS Automatically track, report and demonstrate CERT C++ Compliance Continuously inspect source code for conformance to the CERT C++ secure coding standard Scale to millions of lines of code Increase code portability and re-usability Give your developers contextual feedback that helps them correct and learn from mistakes Reduce bottlenecks caused by manual code review and slow analysis tools and methods Correlated Rule Help Analyze your source code without executing programs Extended Message Help 2017 PROGRAMMING RESEARCH LTD www.qa-systems.com

DON T JUST FIND BUGS - ENABLE BEST PRACTICE The goal of CERT C++ Secure Coding Initiative is to enable the development of safe, reliable, and secure systems, for example by eliminating undefined behaviors that can lead to undefined program behaviors and exploitable vulnerabilities and therefore result in high-quality systems that are reliable, robust, and resistant to attack. Developing secure code is different from developing functionally secure code and may not be a well-understood concept by many developers. With this in mind, the CERT C++ Secure Coding Initiative attempts to educate developers and drive change rather than just document insecure code. The CERT C++ secure coding standards consist of rules and recommendations, collectively referred to as guidelines. Rules are meant to provide normative requirements for code, whereas recommendations are meant to provide guidance that, when followed, should improve the safety, reliability, and security of software systems. Therefore, a violation of a recommendation does not necessarily indicate the presence of a defect in the code. Rules must meet specific criteria while recommendations are suggestions for improving code quality. The CERT C++ module helps your organization make informed decisions by finding and reporting on violations of both rules and recommendations covered within the CERT C++ secure coding standard. KEY FEATURES ADVANCED DEFECT PREVENTION Using a proprietary, high-performance C language parser combined with a Deep Flow Dataflow analysis engine, QAC++ is able to build an accurate model of the behavior of the software and track the value of variables in the code as they would be at run time. This sophisticated analysis approach maximizes code coverage while minimizing false positives and false negatives and allows QAC++ to detect critical defects not reported by compilers or other tools and recognize issues caused by dangerous, overly complex and non-portable language usage. Identify unpredictable behaviours others miss ACTIONABLE RESULTS TO COMPLY TO THE CERT C++ SECURE CODING STANDARD The CERT C++ module clearly identifies must-fix defects and includes a comprehensive knowledge base help system that provides detailed guidance with examples to support developers in fixing the issues found in the source code. Because developers get immediate and contextual feedback within their development environment, they can make the required changes as they are creating new code or reviewing existing code. In this way, developers build awareness of best practice approaches and can quickly form coding habits that are aligned with your organization s expectations. Clearly identify errors without executing code www.qa systems.com / www.qa systems.de 2

MONITOR AND CONTINUALLY IMPROVE YOUR CODEBASE WITH CONFIGURABLE REPORTS The compliance report helps you visualize which areas of your codebase require the most attention to reach a higher level compliance. The code review report refocuses peer review on discussing design, optimization and meeting requirements rather than costly manual investigation of code conformance and correctness. The suppression report provides information on message diagnostics that have been suppressed during analysis. Visualize what parts of the code need the most attention ANALYSIS OF INDUSTRIAL-SCALE CODE Automated static analysis using QAC++ assists in identifying defects, vulnerabilities, and compliance issues early in the development cycle where they can be fixed faster and at lower cost. QAC++ is fast, non-disruptive, easy-to-use, and scales to any size of development environment. As a result, organizations whose products need to perform securely and reliably in mission critical and safety critical environments trust in QAC++ to help lower the risk of software failures, improve quality and reduce time-to-market. EASY TO LEARN AND EASY TO USE The CERT C++ module functions as a plug-in within QAC++ s powerful GUI and delivers a contextual drill-down environment linked to a deep knowledge base. QAC++ explains why problems it discovers need to be corrected and then provides guidance to help in fixing them. ADAPTABLE TO FIT EXISTING DEVELOPMENT ENVIRONMENTS The CERT C++ module plugs into QAC++ and is easily integrated into existing build systems and continuous integration environments to provide a means to enhance early and often testing with automated code analysis that helps to avoid errors that are expensive to fix late in the development cycle. This allows existing code review processes to be accelerated and refocused, thereby helping to increase overall productivity while also improving quality and security of the software. Additionally, the CERT C++ module and QAC++ can be configured for incremental analysis to ensure that only new changes are analyzed and feedback can be provided quickly. ROBUST AND FLEXIBLE CODING STANDARD ENFORCEMENT The CERT C++ module is based on the CERT C++ Secure Coding Standard 2016 Edition, to automate compliance checks of the rules specified in the standard. Because C++ is based on the C programming language, there is considerable overlap between the guidelines specified by the CERT C Coding Standard and those specified by CERT C++ coding standard. Therefore those rules from the CERT C Coding Standard that are specified as applicable to the CERT C++ Coding Standard are covered by the module. The module also automates the generation of the reports and audit documentation required to demonstrate compliance to the standard. QAC++ functionality also allows messages to be suppressed at targeted source code locations and these suppressions can be included in deviation reports when required for audit to a specific standard. www.qa systems.com / www.qa systems.de 3

KEY CHECKS The CERT C++ compliance module helps to avoid constructs in the C++ language that can reduce code reusability and lead to product failures, functional safety issues and vulnerabilities that attackers can exploit. CERT C++ places particular focus on individual library functions that should not be called, correct usage of a library function, nonembedded and portable code, POSIX related best practices and threading related best practices. The categories of CERT C++ rules include: Declarations Expressions Integers Containers Characters/Strings Memory Management Object Oriented Programming TECHNICAL SPECIFICATIONS GENERAL FEATURES Command line interface (CLI) Interactive GUI with message browser Online help & knowledge base - Usage & implementation contextual message - C++ language - CERT C++ coding standard Summary & detailed reports IDE integrations CODE ANALYSIS FEATURES 1,500+ Selectable messages C++ language-specific parsing engine Parses code of any size & complexity Handles common language extensions Cross module analysis (link time checking) Semantic error detection Dataflow error detection Close name analysis MESSAGE OUTPUT CONTROL Comment based suppression Baselining RESULTS OUTPUT Configurable HTML reports Standard report types - Compliance - Code review - Suppression - Metric data CODING STANDARD ENFORCEMENT Enforces 95 CERT C++ rules Rule subsets for legacy code Best practice issues Naming convention checker Layout checker Defensive programming - defect avoidance Extensible rule base Customizable message text Audit to the standard www.qa systems.com / www.qa systems.de 4

QA Systems and Programming Research Ltd QA Systems is an authorised reseller of the QAC / QAC++, QAVerify static testing tools and their compliance module add-ons, which are owned by Programming Research Ltd. QAC, QAC++ and QAVerify are registered trademarks of Programming Research Ltd. These tools and this document are the copyright 2016 of Programming Research Ltd. Third party trademarks, logos and trade names appearing in this document are the trademarks and property of their respective owners. QAC, QAC++ and QAVerify, offer the closest possible examination of C and C++ code. All contain powerful, proprietary parsing engines combined with deep accurate dataflow which deliver high fidelity language analysis and comprehension. They identify problems caused by language usage that is dangerous, overly complex, non-portable or difficult to maintain. Plus, they provide a mechanism for coding standard enforcement. Contact Us For further information regarding QAC, QAC++ and QAVerify and compliance module add-ons, please contact QA Systems at info@qa-systems.de. www.qa systems.com / www.qa systems.de 5