SAP NetWeaver Application Server Add-On for Code Vulnerability Analysis Patrick Hildenbrand, Product Management Security, SAP AG März 2014 Haftungsausschluss Die in diesem Dokument enthaltenen Informationen können ohne vorherige Ankündigung geändert werden. Dieses Dokument wird ohne jede Gewährleistung seitens SAP bezüglich der Richtigkeit, Vollständigkeit und Nutzung der enthaltenen Information und Angaben zur Verfügung gestellt. Es dient ausschließlich Informationszwecken. SAP übernimmt keine Haftung für Fehler in dem oder für die Vollständigkeit des Dokumentes, insbesondere nicht für die darin enthaltenen Informationen, Grafiken, Links oder andere Angaben und Inhalte. SAP übernimmt keine Haftung für Schäden, weder ausdrücklich noch stillschweigend, die sich aus dem Gebrauch des Dokumentes ergeben können, insbesondere nicht für die Marktgängigkeit und der Eignung für einen bestimmten Zweck sowie für die Gewährleistung der Nichtverletzung geltenden Rechts, es sei denn, dass Schäden durch Vorsatz oder grobe Fahrlässigkeit seitens SAP verursacht wurden. Hiervon umfasst sind insbesondere direkte, besondere, indirekte Schäden sowie Begleit- und Folgeschäden. © 2014 SAP AG. All rights reserved. 2 Quellcode die Quelle des Risikos Geschäftsanwendungen haben Geschichte Die heute verwendeten Geschäftsanwendungen sind meist Entstanden über Jahre hinweg Komplex Basierend auf sich ständig verändernden Anforderungen Entwickelt auf Basis unterschiedlicher Entwicklungsrichtlinien Optimiert für eine bestmögliche Performanz Immer wieder erweitert aber nicht neu erfunden und oft wurde Sicherheit erst nachträglich hineinprogrammiert. © 2014 SAP AG. All rights reserved. 4 Sicherheit als Herausforderung Um eine Applikation abzusichern, muss man alle Komponenten, Funktionen, Infrastrukturen und die dazugehörenden Gefährdungspotentiale verstehen. Um in eine Applikation einzubrechen, ist ein einziger Fehler in irgend einer Komponente, Funktion oder der Infrastruktur ausreichend. Das Problem: Jede neue Technologie birgt neue Gefährdungspotentiale. Firewalls, Intrusion Detection Systeme, Signaturen und Verschlüsselung machen allein noch keine Anwendung sicher. © 2014 SAP AG. All rights reserved. 5 Methoden der Sicherheitsuntersuchung Dynamische Anwendungs Sicherheits Tests (DAST) und Statische Anwendungs Sicherheits Tests (SAST) haben als Ziel die Verbesserung der Qualtät des Quellcodes und der Sicherheit der Anwendung. Weder DAST noch SAST geben eine Garantie alle Fehler in einer Anwendung zu finden. DAST Fehlersuche in der aktiven Anwendung Manuelle AnwendungsPenetrations Tests Automatisierte AnwendungsVerwundbarkeits Scans © 2014 SAP AG. All rights reserved. Fehlersuche im Quellcode SAST Manuelle Quellcode Untersuchung Automatisierte Quellcode Analyse 6 Wie nützlich sind Untersuchungen zur Applikationssicherheit? In a 2013 study by Kaspersky Labs, 85% of the companies interviewed have reported internal IT security incidents, and software vulnerabilities were the single biggest cause. Source: http://www.firstbiz.com/biztech/software-vulnerabilities-create-internal-data-security-problems-for-39-cos-19237.html In a 2010 white paper from independent consulting firm Mainstay, reports software security programs not only enhance security, they can generate as much as $37M annually in economic benefits. Source: http://www.thedatachain.com/materials/mainstay_roi_study_2010.pdf In a 2013 security workforce study from (ISC)², Application vulnerabilities were ranked highest in security concern by 69% of the respondents. Source: https://www.isc2cares.org/uploadedFiles/wwwisc2caresorg/Content/2013-ISC2-Global-Information-Security-Workforce-Study.pdf © 2014 SAP AG. All rights reserved. 7 Automatisiert Schwachstellen in ABAP Source Code entdecken SAP NetWeaver Code Vulnerability Analyzer Features Reduzierte Anzahl von Falschmeldungen durch Datenfluss-Analyse Workflow basierter Genehmigungsprozess für Ausnahmen Eingebettet in die Standard ABAP Entwicklungsumgebung für erhöhte Akzeptanz durch die Entwickler Verbesserte Sicherheit für Quellcode Unterstüzt automatisierte Qualitätssicherungsprozesse Gewichtung der Tests seperat anpassbar Umfangreiche Dokumentation als Hilfestellung für die Entwickler © 2014 SAP AG. All rights reserved. 9 Die Funktionsweise an einem Beispiel für SQL Injection Dateneingabe für street: xyz' salary = '1500 set_expr: STREET = 'xyz' salary = '1500' ... SET STREET = 'xyz' salary = '1500' © 2014 SAP AG. All rights reserved. 10 Datenflussanalyse zur verbesserten Erkennung von Schwachstellen 1. Daten aus einer externen Quelle 3. Es existiert ein Datenfluss zwischen der externen Quelle und dem gefährlichen Ausdruck 2. Ein potentiell gefährlicher Ausdruck • Der Code Analyzer sucht potentiell gefährliche Ausdrücke in die ungeprüfte Eingaben einfliessen. • Auf Basis von Kontext-Informationen ist eine weitere Reduktion von ‚False Positives‘ möglich. © 2014 SAP AG. All rights reserved. 11 Integriert in die SAP ABAP Entwicklungsumgebung Durch die tiefe Integration in das ABAP Test Cockpit wird eine einfache Erreichbarkeit der Tests sichergestellt und dadurch die Akzeptanz der Tests bei den Entwicklern verbessert. Der Entwickler kann die Tests jederzeit für einzelne Entwicklungsobjekte oder Gruppen von Objekte starten. © 2014 SAP AG. All rights reserved. 12 Hilfestellung bei der Behebung der Schwachstellen Die detailierte Dokumentation der Schwachstelle inklusiver der Darstellung des Datenflusses erleichtert das Beheben der Schwachstelle. Navigationspunkte erlauben das direkte Anspringen des Quellecodes oder Zugriff auf die Umfangreichen Hilfetexte, die die Schwachstellen erklären und Möglichkeiten zur Fehlerbehebung erläutern. Auch ist es direkt möglich einen Ausnahme-Workflow zu starten. © 2014 SAP AG. All rights reserved. 13 Korrektes Beispiel Hinzufügen von ' ' um den Inhalt von street und verdoppeln aller ' innerhalb. phone ist ein Integer Wert und muss daher nicht verändert werden. © 2014 SAP AG. All rights reserved. 14 Unterstützt bei der Vermeidung Bekannter Fehler aus den OWASP Top 10 Injection Injection Schwachstellen, wie beispielsweise SQL und OS-Injection entstehen, wenn nicht vertrauenswürdige Daten von einem Interpreter als Teil eines Kommandos oder einer Abfrage verarbeiet werden. Unsicher direkte Objektrefernzen Unsichere direkte Objektreferenzen treten auf, wenn Referenzen zu internen Objekten, wie Dateien, Ordner oder Datenbankschlüssel von außen zugänglich gemacht werden. Ohne Schutzmaßnahmen können Angreifer diese Referenzen manipulieren und dadurch unauthorisierten Zugriff auf Daten erhalten. Fehlender Zugriffs-schutz auf Funktionsebene Viele Anwendungen prüfen die Berechtigung zum Zugriff auf eine Funktion bevor sie diese in der Benutzeroberfläche anzeigen. Allerdings müssen dieses Prüfungen auch durchgeführt werden, wenn die Funktion ausgeführt wird. Verwendung von Komponenten mit bekannten Schwachstellen Komponenten, wie beispielsweise Bibliotheken, Frameworks oder Software Module werden oft mit erhöhten Rechten ausgeführt. Wenn eine verwundbare Komponente angegriffen wird, kann dieser Angriff schwere Schäden verursachen. © 2014 SAP AG. All rights reserved. 15 Feingranulare Steuerung der Meldungsprioritäten Durch die Möglichkeit die Priorität von Meldungen einzeln zu steuern sind Sie in der Lage auf die innerbetrieblichen Abläufe individuell Rücksicht zu nehmen. Über diese Möglichkeit lassen sich Tests auch ganz abschalten um eine Phasenweise Einführung der Tests möglich zu machen. © 2014 SAP AG. All rights reserved. 16 Integration in das ABAP Test Cockpit Das ABAP Test Cockpit ist ein Framework, das es erlaubt statische Quellcodeprüfungen und Unit Tests für ABAP Programme automatisiert und manuell durch den Benutzer gesteuert auszuführen. ATC biete eine schnelle Navigation von den Ergebnissen zu Quellcode, Hilfetexten und Anleitungen zur Fehlerbehebung. ATC unterstüztz das 4-Augen Prinzip beim Ausnahmeprozess um Fehlermeldungen effectiv behandlen zu können. ATC ist voll in das ABAP Tranportsystem integriert um auf allen System die gleichen Testergebnisse zu erhalten. ATC ist mehr als eine einfache Testumgebung, da es essentielle QA Techniken wie Q-Gates oder Regressionstest in Konsolidierungssystemen unterstützt. © 2014 SAP AG. All rights reserved. SAP Code Inspector (SCI) SAP Code Vulnerability Analyzer (SLIN_SEC) ATC ist direkt in die ABAP Entwicklungsumgebung integriert um Entwicklern und Qualitätsexperten beste Benutzbarkeit bieten zu können. Erweiterte Programmprüfung (SLIN) Syntax Check (Check , SE80) Die Vorteile des ATC: ABAP Test Cockpit (ATC) 17 Architecture Overview ABAP Developer Quality Expert R R ABAP Workbench ABAP Editors R ABAP Test Cockpit (ATC) Check Results R Transport Management Exemptions R Code Inspector Checks ABAP Source Code R SLIN Security Checks © 2014 SAP AG. All rights reserved. 18 Landschaftsweite Tests mit dem ABAP Test Cockpit (ATC) ABAP Test Cockpit (ATC) Das ATC ist eine ABAP Testumgebung, die es erlaubt sowohl statische Tests als auch Unit-Tests für ABAP Objekte auszuführen. ATC ermöglicht es von Prüftools gefundene Fehler direkt an zu navigieren und stellt detaillierte Dokumentation und Reperaturempfehlungen bereit. Was sind die Vorteile? © 2014 SAP AG. All rights reserved. ATC ist der zentrale Einstieg in alle statischen Prüfwerkzeuge ATC unterstützt einen auf dem 4-Augen Prinzip basierenden Ausnahmeprozess um effektiv auch mit Falschmeldungen umgehen zu können ATC ist voll in die ABAP Entwicklungsumgebungen integriert um eine bestmögliche Benutzbarkeit durch Entwickler und Qualitätsverantwortliche zu erlauben ATC ist nicht nur ein Prüfwerkzeug, sondern unterstützt notwendige QA Techniken wie Q-Gates oder Regressionstests in einem Konsolidierungssystem 20 ATC Konfiguration In der ATC Konfiguration werden definiert • Das ATC Master System • Die Standardauswahl der Prüfungen • Die Verwendung von Ausnahmen • Das Systemverhalten bei Transportfreigaben durch den Entwickler © 2014 SAP AG. All rights reserved. 21 ABAP Test Cockpit integriert in die ABAP IDE © 2014 SAP AG. All rights reserved. 22 Beispiel einer Entwicklungslandschaft unter Verwendung des ATC Q-Gate: Development System 1 Prüfung bei Transportfreigabe Q-Experten führen Massenläufe durch und Verteilen die Ergebnisse Entwickler führen statische / Unit-/ Scenario-Tests für Ihre Objekte aus Regelmäßige Testläufe zur Prüfung des Codes eines Entwicklungsteams Consolidation System Q-Gate: Massentestläufe und Konsolidierungstests Development System 2 © 2014 SAP AG. All rights reserved. Q-Gate: Prüfung bei Transportfreigabe i Verwenden Sie EINEN Standard für Q-Gates 23 Sicherheitstests für Entwicklungssysteme auf älteren Releases Sind die Entwicklungssysteme auf einem Releasestand, der eine Ausführung der Tests in den Entwicklungs und Konsolidierungssystemen nicht erlaubt, kann dies in einem seperaten Testsystemen auf höherem Releasestand erfolgen. 7.02 < SP14 Development System 1 Consolidation System 7.02 < SP14 7.02 >= SP14 Development System 2 Security Test System 7.02 < SP14 © 2014 SAP AG. All rights reserved. 24 Features for Developers Checks code during development and transport release Corrects bugs Requests exemptions for false-positives ATC Features Start ATC within different ABAP workbench tools: SE80, SE24, SE38, SE11… ATC automatically runs during release of transport requests Easy access to central ATC results in the development systems User-centric display of ATC results - incl. powerful filter, navigation, re-check… © 2014 SAP AG. All rights reserved. 25 Features for Quality Experts Defines commonly used check variant Monitors quality of the whole code base Approves exemptions ATC Features Exemption approval process E-mail ATC result to “responsible” contact person Statistics showing aggregation of ATC findings using different criteria Execution of ABAP Unit tests © 2014 SAP AG. All rights reserved. 26 ATC Administration Configures ATC in development and consolidation systems Monitors execution of ATC check runs and regular jobs ATC Features Powerful parallelization engine to run mass tests very effectively Restart capability in case of a canceled/crashed ATC run Possibility to schedule regular ATC runs Powerful monitoring tool and flexible logging Distribute ATC results to multiple target systems (e.g. from consolidation to dev. systems) © 2014 SAP AG. All rights reserved. 27 Security Checks im Einzelnen Überblick über die vorhandenen Prüfungen Kategorien der verfügbaren Prüfungen SQL Injection (Open SQL) Web Exploitability Backdoors & Authorizations SQL Injection (ADBC) Security Checks Directory Traversal Code Injection (ABAP) Call Injection OS Command Injection © 2014 SAP AG. All rights reserved. 29 Verfügbare Tests im einzelnen - SQL Injection (Open SQL) Manipulation of dynamic Open SQL • Potential manipulation of the dynamic WHERE condition (1101) • Potential manipulation of a dynamic WHERE condition using the parameter I_FILTER of the object services method CREATE_QUERY (1122) • Potential manipulation of the SET clause in the statement UPDATE (1112) • Potential read performed on an illegal database table in a SELECT statement (1118) • Potential read performed on an illegal database table in a modifying OpenSQL statement (1120) • Potential read performed on invalid table columns (1114) • Potential use of illegal columns in a dynamic GROUP BY clause (1116) • Potential use of illegal columns in a dynamic HAVING clause (1117) © 2014 SAP AG. All rights reserved. 30 Verfügbare Tests im einzelnen - SQL Injection (ADBC) Manipulation of SQL statements • Potential injection of harmful SQL statements of clauses in execution of DDL statements in ADBC (1128) • Potential injection of harmful SQL statements of clauses in execution of DML statements in ADBC (1130) © 2014 SAP AG. All rights reserved. 31 Verfügbare Tests im einzelnen - Code Injection (ABAP) Manipulation of ABAP code created dynamically • Potential injection of harmful code in the statements INSERT REPORT and GENERATE SUBROUTINE POOL (1108) • Potential manipulation of the dynamic WHERE condition in an internal table (1190) © 2014 SAP AG. All rights reserved. 32 Verfügbare Tests im einzelnen - Call Injection Manipulation in dynamic calls • Potential call of an illegal transaction using the statement CALL TRANSACTION (1142) • Potential call of an unwanted transaction using the statement LEAVE TO TRANSACTION (1143) • Potential call of an illegal program using the statement SUBMIT (1141) • Potential call of invalid function module using RFC (1140) © 2014 SAP AG. All rights reserved. 33 Verfügbare Tests im einzelnen - OS Command Injection Injections of operating system commands • Statement CALL 'SYSTEM' used (1170) • Potential manipulation in the FILTER addition of the statement OPEN DATASET (1106) © 2014 SAP AG. All rights reserved. 34 Verfügbare Tests im einzelnen - Directory Traversal Access to illegal directories and files • Potential manipulation of the file name in the statement OPEN DATASET or DELETE DATASET (1104) • Potential manipulation of the file name in the method CREATE_UTF8_FILE_WITH_BOM of the class CL_ABAP_FILE_UTILITIES (1124) © 2014 SAP AG. All rights reserved. 35 Verfügbare Tests im einzelnen - Backdoors & Authorizations Weak authorization checks or user administration bypassed • Hard-coded user name, possibly from undeleted test code or an indication of a back door (0821) • SY-SUBRC not evaluated after the statement AUTHORITY-CHECK (1160) • AUTHORITY-CHECK with explicit user name (1180) • AUTHORITY-CHECK with explicitly specified user name sy-uname (1181) © 2014 SAP AG. All rights reserved. 36 Verfügbare Tests im einzelnen - Web Exploitability Possible attacks using Web technologies • Obsolete escape method used (1150) © 2014 SAP AG. All rights reserved. 37 Zusammenfassung Der Weg zu sicherem ABAP Source Code • Eine Schwachstelle reicht aus um Angreifbar zu sein! • Mit dem SAP NetWeaver Application Server, add-on for code vulnerability analysis haben Sie die Möglichkeit, das Wissen der Experten zu Ihren Entwicklern zu bringen. • Schulen Sie Ihre Entwickler, damit diese Schwachstellen vermeiden. • Erwarten Sie nicht, das Sicherheit eine einmalige Investition ist. Sicherheit ist ein Lebenswerk! © 2014 SAP AG. All rights reserved. 39 SAP Code Vulnerability Analyzer Entwickelt vom Team, das auch die ABAP Sprache entwickelt Tiefe Integration in die Standard ABAP Entwicklungs- und Testwerkzeuge Seit Jahren erfolgreich bei der SAP Standard Software Entwicklung im Einsatz Erfolgreich bei Kunden pilotiert Die Auslieferung des SAP Code Vulnerability Analyzer ist geplant mit folgenden Versionen: SAP NetWeaver AS ABAP 7.0 EhP2 Support Package 14 SAP NetWeaver AS ABAP 7.0 EhP3 Support Package 09 SAP NetWeaver AS ABAP 7.3 EhP1 Support Package 09 SAP NetWeaver AS ABAP 7.4 Support Package 05 und nachfolgende Versionen © 2014 SAP AG. All rights reserved. 40 ABAP Test Cockpit ATC ist die Standard ABAP Prüfumgebung bei SAP Das ABAP Test Cockpit (ATC) ist ein Werkzeug für Statische und Dynamische Qualitätsprüfungen von ABAP Source Code und verwandten Repository Objekten ATC basiert auf dem Code Inspector Einfachste Migration: Einfach bestehende globale Code Inspector Check Varianten übernehmen ATC ist verfügbar als Teil von: SAP NetWeaver AS ABAP 7.0 EhP2 Support Package 12 SAP NetWeaver AS ABAP 7.0 EhP3 Support Package 05 SAP NetWeaver AS ABAP 7.3 EhP1 Support Package 05 SAP NetWeaver AS ABAP 7.4 and later releases © 2014 SAP AG. All rights reserved. 41 Weitere Veranstaltungen Espresso Webinar: ABAP Sourcecode Security Check - Einsatz und Potential des SAP NetWeaver AS, add-on for code vulnerability analysis Datum: 02.04.14 14:00 – 14:45 Zielgruppe: IT-Architekten ABAP-Entwickler SAP CCC Leiter Anmeldung: http://www.sap-webseminare.de/?page=espressofilter&subpage=details&webseminar=942 © 2014 SAP AG. All rights reserved. 42 Weitere Informationen SAP NetWeaver Application Server, add-on for code vulnerability analysis http://wiki.scn.sap.com/wiki/display/ABAP/SAP+NetWeaver+Application+Server%2C+add-on+for+code+vulnerability+analysis ABAP Test und Analyse Tools http://wiki.sdn.sap.com/wiki/display/ABAP/ABAP+Test+and+Analysis+Tools SAP Code Inspector http://wiki.sdn.sap.com/wiki/display/ABAP/Code+Inspector ABAP Test Cockpit (ATC) http://wiki.sdn.sap.com/wiki/display/ABAP/ABAP+Test+Cockpit SAP Community http://scn.sap.com/community/security http://scn.sap.com/community/abap/testing-and-troubleshooting © 2014 SAP AG. All rights reserved. 43 Thank you Contact information: Patrick Hildenbrand SAP NetWeaver Product Management Security [email protected] © 2014 SAP AG. 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 AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Excel, Outlook, PowerPoint, Silverlight, and Visual Studio are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, z10, z/VM, z/OS, OS/390, zEnterprise, PowerVM, Power Architecture, Power Systems, POWER7, POWER6+, POWER6, POWER, PowerHA, pureScale, PowerPC, BladeCenter, System Storage, Storwize, XIV, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, AIX, Intelligent Miner, WebSphere, Tivoli, Informix, and Smarter Planet are trademarks or registered trademarks of IBM Corporation. Linux is the registered trademark of Linus Torvalds in the United States and other countries. Adobe, the Adobe logo, Acrobat, PostScript, and Reader are trademarks or registered trademarks of Adobe Systems Incorporated in the United States and other countries. Oracle and Java are registered trademarks of Oracle and its affiliates. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Google App Engine, Google Apps, Google Checkout, Google Data API, Google Maps, Google Mobile Ads, Google Mobile Updater, Google Mobile, Google Store, Google Sync, Google Updater, Google Voice, Google Mail, Gmail, YouTube, Dalvik and Android are trademarks or registered trademarks of Google Inc. INTERMEC is a registered trademark of Intermec Technologies Corporation. Wi-Fi is a registered trademark of Wi-Fi Alliance. Bluetooth is a registered trademark of Bluetooth SIG Inc. Motorola is a registered trademark of Motorola Trademark Holdings LLC. Computop is a registered trademark of Computop Wirtschaftsinformatik GmbH. SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP BusinessObjects Explorer, StreamWork, SAP HANA, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and other countries. Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects Software Ltd. Business Objects is an SAP company. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems Inc. Sybase and Adaptive Server, iAnywhere, Sybase 365, SQL Anywhere, and other Sybase products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Sybase Inc. Sybase is an SAP company. HTML, XML, XHTML, and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology. Crossgate, m@gic EDDY, B2B 360°, and B2B 360° Services are registered trademarks of Crossgate AG in Germany and other countries. Crossgate is an SAP company. Apple, App Store, iBooks, iPad, iPhone, iPhoto, iPod, iTunes, Multi-Touch, Objective-C, Retina, Safari, Siri, and Xcode are trademarks or registered trademarks of Apple Inc. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. IOS is a registered trademark of Cisco Systems Inc. The information in this document is proprietary to SAP. No part of this document may be reproduced, copied, or transmitted in any form or for any purpose without the express prior written permission of SAP AG. RIM, BlackBerry, BBM, BlackBerry Curve, BlackBerry Bold, BlackBerry Pearl, BlackBerry Torch, BlackBerry Storm, BlackBerry Storm2, BlackBerry PlayBook, and BlackBerry App World are trademarks or registered trademarks of Research in Motion Limited. © 2014 SAP AG. All rights reserved. 45