1000 Projects later. Security Code Scans at SAP



Similar documents
Bringing Security Testing to Development. How to Enable Developers to Act as Security Experts

Product Roadmap. Sushant Rao Principal Product Manager Fortify Software, a HP company

Creating Stronger, Safer, Web Facing Code. JPL IT Security Mary Rivera June 17, 2011

Adobe Systems Incorporated

Source Code Review Using Static Analysis Tools

SAP NetWeaver Application Server Add-On for Code Vulnerability Analysis

WebGoat for testing your Application Security tools

WEB SECURITY CONCERNS THAT WEB VULNERABILITY SCANNING CAN IDENTIFY

ArcGIS Server Security Threats & Best Practices David Cordes Michael Young

IBM Security AppScan Source

Security Think beyond! Patrick Hildenbrand, SAP HANA Platform Extensions June 17, 2014

TEAM Academy Catalog. 187 Ballardvale Street, Wilmington, MA

Integrating Application Security into the Mobile Software Development Lifecycle. WhiteHat Security Paper

SAST, DAST and Vulnerability Assessments, = 4

SAP NetWeaver Application Server Add-On for Code Vulnerability Analysis. Patrick Hildenbrand, Product Management Security, SAP AG September 2014

SAP Security Recommendations December Secure Software Development at SAP Embedding Security in the Product Innovation Lifecycle Version 1.

The Top Web Application Attacks: Are you vulnerable?

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

Agile Secure Software Development in a Large Software Development Organisation Security Testing

Application Security Testing

Acunetix Website Audit. 5 November, Developer Report. Generated by Acunetix WVS Reporter (v8.0 Build )

How to achieve PCI DSS Compliance with Checkmarx Source Code Analysis

Securing Your Web Application against security vulnerabilities. Ong Khai Wei, IT Specialist, Development Tools (Rational) IBM Software Group

Fortify Training Services. Securing Your Entire Software Portfolio FRAMEWORK*SSA

Web application security: automated scanning versus manual penetration testing.

Meister Going Beyond Maven

QualysGuard WAS. Getting Started Guide Version 3.3. March 21, 2014

CSUSB Web Application Security Standard CSUSB, Information Security & Emerging Technologies Office

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

Mobile Application Hacking for Android and iphone. 4-Day Hands-On Course. Syllabus

Application Backdoor Assessment. Complete securing of your applications

LEARNING CURRICULUM SECURITY COMPASS TRAINING 2015 Q3. Copyright Security Compass. 1

Client vs. Server Implementations of Mitigating XSS Security Threats on Web Applications

Web Application Report

A Holistic Approach to Security Testing

2,000 Websites Later Which Web Programming Languages are Most Secure?

FINAL DoIT v.8 APPLICATION SECURITY PROCEDURE

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

HP ESP Partner Enablement Fortify Proof of Concept Boot Camp Training

Mastering Continuous Integration with Jenkins

Out of the Fire - Adding Layers of Protection When Deploying Oracle EBS to the Internet

Web Application Security

Application Code Development Standards

Development. Resilient Software. Secure and. Mark S. Merkow Lakshmikanth Raghavan. CRC Press. Taylor& Francis Croup. Taylor St Francis Group,

(WAPT) Web Application Penetration Testing

OWASP Top Ten Tools and Tactics

SANDCAT THE WEB APPLICATION SECURITY ASSESSMENT SUITE WHAT IS SANDCAT? MAIN COMPONENTS. Web Application Security

FINAL DoIT v.4 PAYMENT CARD INDUSTRY DATA SECURITY STANDARDS APPLICATION DEVELOPMENT AND MAINTENANCE PROCEDURES

Unbreakable ABAP? Vulnerabilities in custom ABAP Code Markus Schumacher, Co-Founder Virtual Forge GmbH

Performing a Web Application Security Assessment

elearning for Secure Application Development

How To Protect Your Data From Attack

IBM Rational AppScan Source Edition

Web Application Security

Software Assurance Tools: Web Application Security Scanner Functional Specification Version 1.0

STATE OF WASHINGTON DEPARTMENT OF SOCIAL AND HEALTH SERVICES P.O. Box 45810, Olympia, Washington October 21, 2013

Chapter 1 Web Application (In)security 1

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

How To Ensure That Your Computer System Is Safe

IJMIE Volume 2, Issue 9 ISSN:

Secure Web Application Coding Team Introductory Meeting December 1, :00 2:00PM Bits & Pieces Room, Sansom West Room 306 Agenda

A Tale of the Weaknesses of Current Client-side XSS Filtering

Sandy. The Malicious Exploit Analysis. Static Analysis and Dynamic exploit analysis. Garage4Hackers

IBM Rational AppScan: Application security and risk management

Application Security Testing. Erez Metula (CISSP), Founder Application Security Expert

How to break in. Tecniche avanzate di pen testing in ambito Web Application, Internal Network and Social Engineering

Six Essential Elements of Web Application Security. Cost Effective Strategies for Defending Your Business

State of The Art: Automated Black Box Web Application Vulnerability Testing. Jason Bau, Elie Bursztein, Divij Gupta, John Mitchell

Security Vulnerabilities in Open Source Java Libraries. Patrycja Wegrzynowicz CTO, Yonita, Inc.

Measuring the Attack Surfaces of SAP Business Applications

Turning the Battleship: How to Build Secure Software in Large Organizations. Dan Cornell May 11 th, 2006

Architectural Risk Analysis for Android Applications

Top Ten Web Application Vulnerabilities in J2EE. Vincent Partington and Eelco Klaver Xebia

Programming Flaws and How to Fix Them

Security Testing & Load Testing for Online Document Management system

How To Write A Continuous Delivery

Introduction to Web Application Security. Microsoft CSO Roundtable Houston, TX. September 13 th, 2006

DISCOVERY OF WEB-APPLICATION VULNERABILITIES USING FUZZING TECHNIQUES

SWASCAN ALL in ONE. SWASCAN Web Application SWASCAN Network SWASCAN Code Review

Comprehensive Security for Internet-of-Things Devices With ARM TrustZone

Members of the UK cyber security forum. Soteria Health Check. A Cyber Security Health Check for SAP systems

LoadRunner and Performance Center v11.52 Technical Awareness Webinar Training

Web Application Hacking (Penetration Testing) 5-day Hands-On Course

Still Aren't Doing. Frank Kim

Data Breaches and Web Servers: The Giant Sucking Sound

Reliable Mitigation of DOM-based XSS

Automating Security Testing. Mark Fallon Senior Release Manager Oracle

Server-Side JavaScript Injection Bryan Sullivan, Senior Security Researcher, Adobe Secure Software Engineering Team July 2011

HP ALM11 & MS VS/TFS2010

Passing PCI Compliance How to Address the Application Security Mandates

Web applications. Web security: web basics. HTTP requests. URLs. GET request. Myrto Arapinis School of Informatics University of Edinburgh

Web Application Security: Exercise Development Approaches

Transcription:

1000 Projects later Security Code Scans at SAP

About Us Ruediger Bachmann is a Development Architect at SAP AG working, as member of the central code analyses team, in the areas application security and code analysis. Dr. Achim D. Brucker is a Senior Researcher in the Security & Trust Program of SAP Research as well as a member of the central code analysis team of SAP AG. His research interests includes static and dynamic security testing.

Agenda Why is SAP using Static Code Analysis? Secure Development Lifecycle at SAP Static Code Analysis at SAP Challenges and Outlook

Security Code Scans at SAP Overview Started rollout in June 2010 Centrally guided by a project team Definition of Security Requirements Establishment of Scan Infrastructure Support of the most important languages SAP development and third party code

Insecure Software

Evolution of Code

Security Testing

Dynamic Security Testing Characteristics Black box approach Sends input to applications and analyses response Advantages Provides concrete examples (attacks) Analyze dataflows accross multiple components Disadvantages Coverage unclear Requires test system

Static Security Testing Characteristics White box approach Analyses abstraction of the source (binary) Advantages Explores all data paths / control flows Can analyse single modules (unit test) Disadvantages High false positive rate (not exploitable findings) Does not consider application environment

Agenda Why is SAP using Static Code Analysis? Secure Development Lifecycle at SAP Static Code Analysis at SAP Challenges and Outlook

First Step: Security Training Education: The prerequisite for achieving a high security quality Security awareness: Reducing the number of built-in security problems Trained persons: Analyze and fix vulnerabilities much more efficiently Trainings: Secure Programming, Build & Scan, Auditing,.

Secure Development Lifecycle (SDLC) at SAP Structure the investment of time and resources to safeguard a high level of security to ensure security standards across all areas Security requirements are taken into account and are implemented in all phases of product development

The Different Roles Developer fixes software security issues Security Expert review scan results, decides on fixes Build Master scans the source code, manages results Scrum Master requests scan, assigns vulnerabilities to developers

Infrastructure

SAP Secure Software Development Life Cycle Code Scans For passing D2P Q-gate, evidence has to be provided that the source code has been scanned and exploitables have been fixed. P2D: Planning to Development. / D2P: Development to Production. / P2R: Production to Ramp-up (gradual roll-out to customers).

Third Party Code Third party code Open Source libaries and frameworks Freeware other third party components Different approaches SAST analysis by SAP Certificate from vendor SLA with vendor

Agenda Why is SAP using Static Code Analysis? Secure Development Lifecycle at SAP Static Code Analysis at SAP Challenges and Outlook

Code Scan Facts Over 2000 developers are using SAST tools Over 500 MLOC scanned ABAP Java C,C++,C# Java and C Others Statistics Jan 2012

Security Scan Tools used at SAP Language ABAP C/C++ Others Scan Application SAP Coverity HP/Fortify

Security Requirements SAP on Corporate Security Requirements SAP Applications shall be free of backdoors SQL injection vulnerabilities shall be avoided Cross-Site Scripting vulnerabilities shall be prevented Directory traversal vulnerabilities shall be prevented The system shall be protected against buffer overflow vulnerabilities OWASP Top 10 CWE/SANS Top 25 2011 CVE

Continuous Improvement Collect feedback from the Product Security Response Team Development Teams Develop rules/models to improve the scans Continuously improve the infrastructure Continuously improve the rollout process

Input to Improve Code Scans Security Response Team Security Messages Security Code Scan Team Rules/Models/Template/Filters Source Code Build Normalized/ Abstract Format Analyze/Scan Analysis Results Review and Fix Further input channels: Development teams, internal research, scan reviews, code reviews

Lessons Learned Scans have to be obligatory but not introduced brute force Establish Secure Development Life Cycle make scans a natural part of development Plan carefully Do not start with scans right before Dev. Close Do it regularly (nightly) Do not introduce changes during development

Agenda Why is SAP using Static Code Analysis? Secure Development Lifecycle at SAP Static Code Analysis at SAP Challenges and Outlook

Challenges C, C++, CVS, Perforce, ABAP Repository, Git, Ant, Maven, Make, Japro, Mapro, Hudson, Jenkins MS Foundation Server, Mobile, Android, ios, Objective-C, Java, Local Build, Central Build, Different Development Cycles, Development on/for different OS like Linux Windows, Unicode, Non- Unicode, Developer IDE Support (Plugins for Eclipse, Visual Studio), Silverlight, BSP, Flash, TCL/TK, Erlang, Perl, JSP, TagLib, OSS, HTML5/JavaScript, Convenient Access to Central Scan Result Repositories, Provide a Secure Code Scan Infrastructure, Convince everybody that code scanning helps to improve software, Open Source, Third Party Software, Merge Threat Modeling with Code Scans, Q-Gate-Reporting, Establish a stable plan-scan-check-correct workflow,

JavaScript I Unerstand the DOM Assume the following index.html: <TITLE>Welcome!</TITLE> Hi <SCRIPT> var pos=document.url.indexof("name=")+5; document.write(document.url.substring(pos,document.url.length)); </SCRIPT> Welcome to our system and a call index.html?name=<script>alert(document.cookie)</script> resulting in a DOM-based XSS attack DOM implementations are Browser specific

JavaScript II Dynamic Evaluation A simple script statement <script language="javascript"> document.write("<script>src= other.js ></script>"); </script> Dynamically creating script tags <script> var ohead = document.getelementsbytagname( HEAD ).item(0); var oscript= document.createelement("script"); oscript.type = "text/javascript"; oscript.src="other.js"; ohead.appendchild( oscript); </script> Or using eval() directly (not shown here)

JavaScript III Server-Side JavaScript Combining the comlexity of two worlds var entry=json.parse(data); query = insert into \ FOO(.NAME )\ ; var conn = $.db.getconnection(); conn.execute(query);

Challenges: Current Trends SAST works very well for traditional programming languages Analyzing data paths within one technology Many new development uses JavaScript HTML5/JavaScript UIs Server-side JavaScript JavaScript Untyped Dynamic programming model

Conclusion You cannot pay people well enough, to do proper code audits. I tried. (Yaron Minsky, Jane Street Capital)

Thank you!