Source de danger Code client


E-3 : Monsieur Wiegenstein, comment avez-vous découvert les failles de sécurité dans le code Abap que vous avez écrit vous-même ?
Andreas Wiegenstein : Afin d'obtenir une transparence sur la proportion et la qualité du code client dans les systèmes SAP, Virtual Forge réalise en permanence un benchmark mondial.
Actuellement, nous avons analysé les scans anonymes de plus de 300 systèmes clients SAP. Des entreprises de toutes tailles et de tous secteurs, principalement en Allemagne et aux États-Unis, ont participé à cette étude, la plus complète de ce type à ce jour.
E-3 : Quels sont les principaux résultats du benchmark ?
Wiegenstein : Nous avons d'abord découvert que chaque système de production SAP comprend en moyenne environ deux millions de lignes de code Abap écrites par les clients eux-mêmes, qui adaptent les fonctions standard de SAP à leurs processus commerciaux.
Ce qui est très alarmant, c'est que nous avons trouvé dans chaque code client, sans exception, de nombreuses erreurs qui peuvent compromettre la sécurité et la stabilité d'un système SAP.
On estime à environ 2.000 le nombre d'erreurs critiques par système SAP, qui rendent les entreprises vulnérables aux attaques et peuvent également poser des problèmes d'audit de conformité.
E-3 : Dans quels domaines se trouvent ces points faibles ?
Wiegenstein : La plupart du temps, il s'agit de contrôles d'autorisation mal programmés ou manquants. Ces failles suffiraient à elles seules à causer de gros dégâts dans une entreprise, car les collaborateurs peuvent accéder à des informations sans y être autorisés - il y a là de quoi commettre de nombreux abus.
Mais le pire est à craindre des erreurs de sécurité vraiment graves - les "killer bugs" - dans les développements internes d'Abap. Nous en avons actuellement découvert 16 en moyenne dans chaque système SAP, ce qui est nettement plus que les années précédentes.
E-3 : Qu'est-ce qui est si dangereux dans ces "erreurs tueuses" ?
Wiegenstein : Chacune de ces erreurs tueuses est si critique qu'elle peut être exploitée par des attaquants pour prendre le contrôle complet du système.
Le code client SAP offre de nombreuses portes d'entrée pour voler, supprimer ou manipuler des ensembles complets de données et ainsi, par exemple, falsifier le résultat du bilan d'une entreprise ou saboter complètement le système SAP ou tout simplement l'arrêter.
Les dommages économiques qui peuvent en résulter sont énormes. Pensez par exemple au fait que les entreprises concernées doivent répondre de tous les dommages causés par le vol de données sensibles de collaborateurs ou de clients. Parallèlement, de tels incidents peuvent entraîner une forte perte d'image.
E-3 : Existe-t-il des connaissances sur le nombre d'incidents de sécurité SAP qui sont réellement dus à un code client défectueux ?
Wiegenstein : Malheureusement non, car la plupart du temps, après une attaque, il n'est pas possible de prouver sans faille par quelle faille de sécurité l'attaquant a pu s'introduire dans le système SAP.
S'agissait-il d'un défaut dans le code du client, dans le code standard SAP ou lors de l'installation du système ou du pare-feu ? Ce qui complique l'analyse des causes, c'est que de nombreuses entreprises ne découvrent qu'après un certain temps que leurs applications SAP ont été piratées, par exemple lors de contrôles de routine ou par hasard.
E-3 : Comment se fait-il que des développements propres à Abap soient défectueux ?
Wiegenstein : En principe, deux groupes peuvent être à l'origine de ce problème, à savoir les développeurs internes de l'entreprise ou les sociétés de conseil qui fournissent à l'entreprise les extensions SAP dont elle a besoin.
Les erreurs peuvent alors être introduites involontairement dans le code du client - par exemple par des programmeurs qui ne pensent pas à intégrer les contrôles d'autorisation nécessaires.
D'autre part, il arrive bien sûr aussi que des erreurs soient sciemment intégrées, par exemple par des employés frustrés qui veulent se venger de leur employeur ou par des programmeurs externes qui s'en servent pour accéder à des informations confidentielles de l'entreprise.
E-3 : Les attaques par code client peuvent donc aussi être menées par des pirates externes ?
Wiegenstein : Bien entendu, cela va de soi. Il n'est absolument pas vrai que les systèmes SAP ne sont accessibles que via le réseau interne, comme le prétendent encore de nombreux administrateurs SAP.
Certes, notre benchmark arrive également à la conclusion que seulement 0,3 % des développements internes Abap dans une entreprise sont accessibles via Internet. Mais il y a déjà eu quelques cas où des chevaux de Troie ont été introduits avec du code Abap acheté, ce qui a permis à des données SAP critiques de s'échapper.
Par exemple, une entreprise a reçu d'une société tierce un code Abap qu'elle avait écrit elle-même et qui, à la fin de chaque mois, agrégeait les résultats des cycles comptables et les envoyait à une adresse électronique externe. Un cas classique de cybercriminalité !
E-3 : Comment les clients SAP peuvent-ils se protéger contre les risques liés à leur propre code Abap ?
Wiegenstein : Comme le montrent ces exemples, les précautions traditionnelles, telles que les pare-feu, les logiciels antivirus et les bons mots de passe, ne suffisent en aucun cas à fermer les portes d'entrée potentielles du code client d'Abap.
Il ne suffit pas non plus que les entreprises veillent à une configuration sans erreur des rôles et des autorisations de leurs collaborateurs. Il faut plutôt mettre en place des stratégies et des mesures ciblées afin de nettoyer le code des erreurs et d'éviter les risques futurs.
Il est tout d'abord recommandé aux clients de soumettre les développements Abap à des analyses approfondies. Pour cela, il est possible d'utiliser un logiciel de contrôle spécial qui identifie automatiquement les erreurs et les risques existants et les corrige dans la mesure du possible. De telles analyses ne prennent en général que quelques minutes.
E-3 : Quelles mesures les entreprises devraient-elles prendre à long terme ?
Wiegenstein : Il faut adopter plusieurs approches, tant organisationnelles que techniques. Pour éviter les erreurs dès la programmation, les développeurs doivent suivre des formations spéciales sur la sécurité Abap et respecter des directives particulières lors de la programmation, comme par exemple celles de l'Office fédéral pour la sécurité dans la technologie de l'information (BSI).
Si du code est acheté à l'extérieur, les entreprises doivent veiller strictement à inclure les normes de qualité correspondantes dans les contrats avec les fournisseurs, à les contrôler et à les exiger. En outre, aucun développement interne SAP ne devrait à l'avenir être mis en production tant qu'il contient encore des erreurs critiques pour l'entreprise.
Le cahier des charges comprend également une mise en place rapide des patchs de sécurité SAP et une surveillance continue de tous les systèmes SAP afin de détecter les attaques le plus rapidement possible. Malgré toutes les mesures de précaution, des plans d'urgence appropriés sont indispensables pour pouvoir contrer les attaques le plus rapidement et le plus efficacement possible.
E-3 : Quelle est l'utilité de votre Abap Quality Benchmark dans ce contexte ?
Wiegenstein : Notre benchmark est une étude continue. Elle agrège les résultats d'un grand nombre d'analyses que les clients SAP nous fournissent de manière anonyme.
Étant donné que ces chiffres fournissent des informations statistiques sur la qualité du code client Abap, plus le nombre d'utilisateurs SAP qui y participent est élevé, plus la valeur du benchmark est importante. Nous nous réjouissons de chaque entreprise qui participe. Les entreprises elles-mêmes ont la possibilité, grâce à notre analyse, de se faire une idée de l'état du code qu'elles ont écrit en un temps record.
Pour ce faire, le code client d'un système SAP sélectionné est entièrement scanné. L'entreprise reçoit ensuite un rapport de contrôle qui indique, à titre d'exemple, cinq emplacements par type d'erreur.
Souvent, cela révèle des points faibles qui affectent non seulement la sécurité, mais aussi les performances d'un système SAP. Ainsi, notre expérience montre qu'après avoir corrigé le code du client, de nombreux systèmes fonctionnent non seulement de manière plus sûre, mais aussi de manière beaucoup plus stable et rapide.