par Sükrü ilkel Birakoglu, Senior Director
Dans tous les langages de programmation courants, des erreurs lors du développement peuvent entraîner d’importantes vulnérabilités de sécurité dans les systèmes de production. ABAP/4 (Advanced Business Application Programming/langage de 4ème génération) qui est le langage de programmation des applications SAP ne fait pas exception à cette règle. La forte augmentation du nombre de notes de sécurité SAP (SAP Security Notes), au cours de ces dernières années, liées à la sécurité du code ABAP/4, montre la nécessité de prendre des mesures supplémentaires pour vérifier la sécurité du code dans les applications SAP.
Quels dangers découlent des failles de sécurité dans le code ABAP/4 ?
Les risques dus à une programmation non sécurisée peuvent être classés en différentes catégories. Ils décrivent l’impact respectif des failles de sécurité sur la conformité et les droits légaux potentiellement violés si du code non sécurisé devait se retrouver dans un système de production. Une programmation non sécurisée peut entraîner une exécution non autorisée de la logique métier, un accès en lecture non autorisé aux données métier et de configuration, une modification non autorisée des données métier et de configuration, le rejet des processus métier ou le vol d’identité.
Bien que les systèmes SAP disposent d’un outil intégré appelé SAP CVA (Code Vulnerability Analyzer) pour détecter les failles de sécurité dans les codes ABAP, cet outil est soumis à une licence distincte et est intégré à ABAP Test Cockpit. SAP CVA vérifie les failles de sécurité ABAP (ABAP Security Flaws) dans le code pour lequel il est configuré.
Quelles sont les vulnérabilités ABAP/4 codées dans votre système SAP ?
La nature complexe des systèmes SAP nécessite le développement d’applications internes ou des améliorations du code ABAP/4 standard fourni par SAP. Concernant la sécurité des applications, la première chose importante à comprendre est que le risque provient non seulement des transactions spécifiques, mais également des commandes ABAP/4 spéciales dans le code développé.
Il existe de nombreux types de vulnérabilités pouvant découler du code ABAP/4. Le problème de sécurité le plus évident dans le code ABAP/4 vient des contrôles d’autorisation manquants ou techniquement défectueux. Étant donné qu’ABAP/4 a un concept d’autorisation explicite, tout programme exécutant des actions pertinentes au niveau de l’autorisation doit également vérifier explicitement les objets d’autorisation appropriés. Si cette vérification du code est manquante ou défectueuse, le programme exécutera l’action même si l’utilisateur ne dispose pas de l’autorisation requise, ce qui générera des failles de sécurité dans les systèmes SAP.
Un autre problème majeur, mais moins évident, est celui concernant les vulnérabilités par injection. Grâce à ces dernières, les utilisateurs malveillants peuvent manipuler certaines commandes ABAP/4 programmées dynamiquement pour les faire se comporter de manière inattendue et imprévue. Cette manipulation des commandes ABAP/4 dynamiques fonctionne même si des vérifications d’autorisation correctes sont effectuées. Très souvent, les développeurs ne savent pas quels risques peuvent survenir lors de l’utilisation de techniques de programmation dynamique et ouvrent ainsi involontairement la porte aux cybercriminels.
Les problèmes de sécurité ABAP/4 les plus courants et les risques associés
Voici tout d’abord quelques exemples de vulnérabilités et leurs descriptions dans le tableau ci-dessous.
Voyons dans un exemple comment l’injection de commande ABAP (ABAP Command Injection) pourrait être utilisée dans un système SAP via des techniques de programmation dynamique.
Lors de l’examen du code, un programmeur ABAP/4 peut repérer immédiatement le code généré dynamiquement. Le code source du programme généré dynamiquement est développé avec les commandes ci-dessous :
Ce bout de code est inoffensif et imprime simplement le texte « Logpoint for SAP Solutions protect your SAP Systems! » sur l’écran (remarque : Logpoint for SAP, est maintenant devenu BCS for SAP). Un attaquant, qui peut également être un employé de l’entreprise, un éditeur de logiciels ou un sous-traitant, peut injecter n’importe quel code arbitraire à la place de ce bout de code inoffensif et l’exécuter en contournant tout contrôle d’autorisation et en supprimant automatiquement ensuite le code généré comme dans le programme pris pour exemple. Il ne faudrait pas 15 minutes à un programmeur ABAP moyen pour écrire du code ABAP/4 dynamique afin de supprimer toutes les principales données client, modifier les écritures comptables ou télécharger des données liées au service RH comme les informations sur les salaires des employés au niveau du système.
Comment utiliser Logpoint BCS for SAP pour que vos données essentielles soient entre de bonnes mains ?
Chez Logpoint, nous avons notre gamme de solutions de suivi de la sécurité SAP (BCS for SAP), SAP Security Monitoring Solutions, avec la sécurité du code ABAP/4 qui est également vérifiée. Si une demande de transport (un ensemble de programmes/objets ABAP/4) est importée dans un système de production, notre extracteur installé sur le système SAP exécute automatiquement SAP Code Inspector et SAP CVA et envoie ensuite les résultats à notre solution Logpoint SIEM.
L’affichage des failles de sécurité ABAP (ABAP Security Flaws) dans notre solution SIEM n’est qu’une partie de la solution que nous proposons. Vous pouvez avoir besoin de plus d’informations sur le code à risque importé, comme le nombre de fois qu’il a été exécuté et par qui, ou s’il a été exécuté par une personne dont le comportement utilisateur n’était pas normal. C’est là que nos autres extracteurs de log SAP (SAP Log Extractors) et notre solution UEBA (User and Entity Behavior Analytics) entrent en jeu.
Allons un peu plus loin et imaginons un scénario dans lequel votre employé SOC détecte l’exécution d’un code à haut risque dans un système de production, et il aimerait verrouiller le ou les utilisateurs exécutant le code ou créer un ticket avec une priorité très élevée pour la ‘SAP Basis Team’ au niveau de l’ IT Service Management Tool de l’entreprise, par exemple dans ServiceNow. Dans de tels cas, notre offre SOAR et ses playbooks prédéfinis pour les incidents de sécurité liés à SAP géreraient la situation, sans aucune difficulté.
Vous pouvez obtenir plus d’informations sur nos solutions de suivi de la sécurité SAP (SAP Security Monitoring Solutions) en visitant notre site Web : Logpoint BCS for SAP Si vous souhaitez échanger davantage avec nous sur ce sujet, veuillez nous contacter en appuyant sur le bouton de mise en contact dédié.