SAP est -aussi- vulnérables aux injections

CERT-DVT Sécurité SAP

English version

dev-light.png

Introduction

 

En août 2016, SAP a corrigé une vulnérabilité dans SAP Netweaver, toutes versions confondues : une SQL / Code injection, SAP Note 2311011 et 2319506. Cette faille avait été remontée par Devoteam.

Nous n’avons pas le droit de décrire la vulnérabilité en détail, cependant cet article montre les risques liés à une telle faille dans un système SAP.

dev-logistic.png

Types d’injections dans SAP

 

Le langage de programmation propriétaire de SAP est l’ABAP, pour Advanced Business Application Programming. Propriétaire ne veut pas dire sécurisé, un programme ABAP est soumis lui aussi à différents problèmes de sécurité tel que : les directory traversal, cross client access, module execution, mais aussi les Code injection, SQL injection et OS injection.

En effet, un programme ABAP peut exécuter des commandes OS, et des requêtes SQL. Il est ainsi vulnérable à ces deux type d’injections en plus du code injection, appeler aussi ABAP injection.

Code injection : permet de créer et d’exécuter dynamiquement des programmes ABAP basés sur les entrées utilisateurs, en contournant le flux de développement.

Ici un ID est attendu. Nous pouvons également ajouter du code ABAP et faire de l’élévation de privilèges via une requête SQL.

SQL injection : permet l’exécution arbitraire, depuis une entrée utilisateur, de requête ‘Native SQL’ sur la base de données, contournant toutes les restrictions d’Open SQL de SAP.

Ici un numéro de commande est attendu, mais l’entrée peut être utilisée pour lancer directement des requêtes SQL.

OS injection : permet l’exécution arbitraire, depuis une entrée utilisateur, de commandes au niveau système d’exploitation, contournant les commandes autorisées dans les transactions SM49/SM69 ainsi que l’objet d’autorisation S_LOG_MON.

Ici le function module attend le nom d’une machine, mais il possible d’exécuter n’importe quelle commande au niveau OS.

Les vulnérabilités de type injection, ne sont pas rares sur SAP. 136 programmes ont été corrigés depuis 2010, dont 17 l’année dernière.

dev-network.png

Menaces liées aux injections SAP

 

Généralement, il est nécessaire d’avoir un utilisateur SAP ayant accès au report ou function module vulnérable. Cependant, la facilité d’exploitation et l’impact sur le système est tel que ces vulnérabilité sont souvent classées comme critiques.

Pour exemple, voici les informations CVSS la SAP security note 2319506 :

CVSS v3 Base Score: 7.2 / 10

CVSS v3 Base Vector:

AV : Attack Vector Network (N)
AC : Attack Complexity Low (L)
PR : Privileges Required High (H)
UI : User Interaction None (N)
S : Scope Unchanged (U)
C : Impact to Confidentiality High (H)
I : Impact to Integrity High (H)
A : Impact to Availability High (H)

 


Les impacts sont les suivants :

  • Lecture, modification ou suppression du contenu de la base de données
  • Exécution non autorisée de commandes au niveau système d’exploitation
  • Déni de service

Soit une compromission totale de l’ensemble du système SAP.

 

dev-target.png

Scénario d’attaque

 

Voici un scénario d’une attaque utilisant une injection SAP.

  • Infection, via un malware, d’une machine d’un utilisateur SAP et transfert du fichier sapshortcut.ini.

  • Récupération du mot de passe chiffré s’y trouvant.

  • Connexion au système SAP avec cet utilisateur (non administrateur).

  • Récupération d’informations sur le système SAP : version, composants, type de base donnée, etc. Puis exploitation d’un programme non patché avec une OS injection

  • Prise de contrôle du serveur SAP et post exploitation (création d’un utilisateur SAP administrateur, déni de service ou bien récupération de données confidentielles)

L’attaquant peut arrêter le système SAP…

 

dev-risk-and-security.png

Correction et conclusion

 

 

Il n’y a pas beaucoup d’alternatives pour se prémunir de ce type d’attaque : il est nécessaire de corriger les programmes vulnérables, et de réduire la possibilité d’usurpation d’identité SAP… Ce qui n’est ni rapide, ni facile sur un système SAP en production.

Auditer les systèmes SAP et mettre en place un plan global pour réduire le risque d’exploitation d’une injection SAP s’avère indispensable.

N’hésitez pas à consulter notre offre SAP Sécurité :

http://www.devoteam.fr/en/offers/risk-security/expert-articles/secure-your-sap-against-new-threats

  • SAP Audit Assessment
  • SAP Penetration Testing
  • Remediation Process
  • Training
  • etc.