Code Vulnerability Analyzer
Code Vulnerability Analyzer
The information in this presentation is confidential and proprietary to SAP and may not be disclosed without the permission of
SAP. Except for your obligation to protect confidential information, this presentation is not subject to your license agreement or
any other service or subscription agreement with SAP. SAP has no obligation to pursue any course of business outlined in this
presentation or any related document, or to develop or release any functionality mentioned therein.
This presentation, or any related document and SAP's strategy and possible future developments, products and or platforms
directions and functionality are all subject to change and may be changed by SAP at any time for any reason without notice.
The information in this presentation is not a commitment, promise or legal obligation to deliver any material, code or functionality.
This presentation is provided without a warranty of any kind, either express or implied, including but not limited to, the implied
warranties of merchantability, fitness for a particular purpose, or non-infringement. This presentation is for informational
purposes and may not be incorporated into a contract. SAP assumes no responsibility for errors or omissions in this
presentation, except if such damages were caused by SAP’s intentional or gross negligence.
All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially
from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only
as of their dates, and they should not be relied upon in making purchasing decisions.
2
IT deploys the
insecure software
Somebody builds
insecure software 1
In-house Outsourced Commercial Open source
Breach or pen
3
$
$$
4
We convince and pay
test proves our
code is bad
developers to fix it
2014 Latest
2019
2013
2018
2012
2017
2011
2016
2010
2015
2009
http://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/
Source: http://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/
© 2020 SAP SE or an SAP affiliate company. All rights reserved. Public 4
Application security testing solutions at SAP
ABAP
SAP Code Vulnerability Analyzer (CVA)
Finding security issues at design time instead of in production is easier and less expensive!
SAP cloud
development
systems ~500
Eclipse
SAP GUI
Solution Manager (ADT)
Security (CVA)
Code robustness
CCLM SAP S/4HANA readiness
Extraction ABAP Test Cockpit
Custom checks
(ATC)
CHARM Unit tests
Performance
Usability
ABAP Quality
Developer Expert
R R
▼ ▼
R
▼
Code Inspector
Checks
ABAP Source
R
Code ▼
CVA Checks
set_expr:
STREET = 'xyz'
salary = '1500'
...
SET STREET = 'xyz'
salary = '1500'
© 2020 SAP SE or an SAP affiliate company. All rights reserved. Public 19
How the code analysis works
2. There is a potentially
dangerous statement
The Code Analyzer is searching for potentially vulnerable statements, where the input comes from
untrusted sources. Only such occurrences are reported!
Baseline concept
Baseline management
Transfer individual ATC results into the baseline
Options
suppress all findings (exclude from the ATC result)
indicate the findings as exempted
assign the low priority to the findings
The baseline is effective as long as the related code
sections remain unchanged
Baseline activities
Adding/removing individual check results
Deleting baseline (reset the test system to original state)
More about Working with Baseline in ATC
One central ATC system (SAP_BASIS >=7.51) Central Check System (SAP_BASIS ≥ 7.52)
for all security checks in your system
landscape ABAP Test Cockpit (ATC)
Remote stubs return a model from custom code
Check logic is executed on central system
RFC RFC RFC
Check variant is maintained in central system
New checks are installed on central system
Exemptions are stored on central system
Checked Checked Checked
Integrated in the development system System A System B System C
(>=7.00) (>=7.00) (>=7.00)
Customer
→Minimized administration efforts Code
Customer
Code
Customer
Code
SQL Injection
(ABAP SQL)
Directory
Call Injection
Traversal
OS Command
Injection
Integration: CVA is already in NetWeaver, it just needs to be activated – or is your solution running
elsewhere, say, on a Java engine with all the overhead that it involves?
How does your solution handle updates? CVA’s central scanning approach minimizes the
administrative work required to provide the latest CVA checks.
The number of checks is irrelevant – you need the right checks -> fewer false positives
Small company risk: Will the company still be around in 5 years’ time?
Documentation
http://help.sap.com/abapdocu_740/en/abenabap_security.htm
SAP Community
https://www.sap.com/community/topic/security.html
Blogs
https://blogs.sap.com/2017/01/19/code-vulnerability-analyzer-checks/
One central check system for multiple systems on various releases
Peter Barker
SAP Product Management, SAP SE
[email protected]
© 2020 SAP SE or an SAP affiliate company. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate
company) in Germany and other countries. Please see http://global12.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices.
Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors.
These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP SE or its
affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP SE or SAP affiliate company products and
services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as
constituting an additional warranty.
In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop
or release any functionality mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future
developments, products, and/or platform directions and functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time
for any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-
looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place
undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions.