La voie vers une application sécurisée
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

La voie vers une application sécurisée

on

  • 1,350 views

 

Statistics

Views

Total Views
1,350
Views on SlideShare
1,350
Embed Views
0

Actions

Likes
0
Downloads
21
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

La voie vers une application sécurisée Document Transcript

  • 1. Logiciel IBM Décembre 2009RationalLa voie vers une application sécuriséeUne liste de contrôle pour l’analyse de la sécurité du code source
  • 2. 2 La voie vers une application sécuriséeSommaire Il est reconnu qu’en détectant et en 2 I. Introduction corrigeant les vulnérabilités tôt sur 2 II. Les problèmes de coûts poussent les entreprises le cycle de développement des logiciels, vers le développement sécurisé les organisations peuvent réduire 3 III. La voie vers des pratiques de développement de considérablement leurs risques et code sécurisé leurs coûts. 4 III. Les étapes vers le code sécurisé Même si ces deux approches ont des effets positifs, les11 IV. Application de la liste de contrôle pour l’analyse de la sécurité du code source entreprises peuvent utiliser des outils d’analyse automatique des vulnérabilités pour une approche plus systématique,13 V. Annexe : Liste de contrôle pour l’analyse de la automatisée et efficace au développement de code. Ces sécurité du code source outils d’analyse automatique des vulnérabilités améliorent considérablement la vitesse et la précision du processusI. Introduction d’analyse de code et peuvent être intégrés sans problème auL’épidémie continue d’avertissements des brèches en matière cycle de développement. En effet, les meilleurs outils peuventde protection des données due aux lois actuelles sur la identifier les vulnérabilités à la ligne de code (LOC) près etdivulgation illégale des données souligne malheureusement fournissent des informations détaillées sur le type de faillel’insécurité de nombreuses applications. Comment les rencontré, le risque qu’elle présente et la méthode à suivreorganisations peuvent-elles s’assurer que leurs applications pour la corriger.sont sécurisées, éviter les retombées en termes de coûts et demauvaise publicité et empêcher de voir leur cours baisser en II. Les problèmes de coûts poussent lesbourse à cause de nombreux correctifs de sécurité ? Comment entreprises vers le développement defaire pour ne pas avoir à expliquer aux consommateurs et aux code sécuriséautorités réglementaires que du code défectueux à permis à La nécessité de créer du code sécurisé n’a jamais été aussides pirates de voler les informations sensibles, et peut-être les grande, compte tenu de l’apparition rapide des nouvellesinformations réglementées ? technologies, y compris les services Web et les Rich Internet Applications, et de la nécessité de garantir l’intégrité desLa voie vers la création d’une application sécurisée commence applications existantes, héritées et en cours de développementpar un test rigoureux du code source pour détecter toutes les dans un monde axé sur les réseaux. Les entreprises continuentvulnérabilités. Il faut également s’assurer que l’utilisation de à intégrer leurs systèmes chez leurs partenaires commerciauxl’application ne compromet ou ne permet à personne de pour accélérer le partage des informations. Dans cescompromettre la confidentialité et l’intégrité des données. conditions, les entreprises doivent s’assurer que leur code est sécurisé pour protéger la confidentialité des données,Cependant, pour les entreprises qui utilisent en interne des promouvoir la fidélité des clients, protéger les informationsapplications construites sur-mesure, externalisées ou en open sensibles et maintenir l’intégrité opérationnelle.source, vérifier que l’ensemble du code actuel et hérité estsécurisé ne sera pas chose facile. La détection et l’éradication Un défaut sur un logiciel peut entraîner une divulgation desdes vulnérabilités en matière de sécurité ont toujours été des données. Une des pires divulgations de données survenuestâches extrêmement difficiles. De nombreuses organisations dans le domaine de l’éducation est l’attaque portée en 2006 àoptaient pour une analyse de code manuelle, un processus la base de données de UCLA (University of California, Loscoûteux et mobilisant beaucoup de main-d’œuvre, ainsi que Angeles), qui contenait les informations personnelles depour l’ethical hacking, qui examine un sous-ensemble desvulnérabilités potentielles d’une application.
  • 3. Logiciel IBM 3800 000 personnes. Lors d’une conférence de presse, Jim ● Établir des priorités de résolution : lors de l’analyse deDavis, le vice-président associé du département informatique code existant, les développeurs doivent identifier toutes lesde UCLA, a révélé que le pirate avait profité d’une simple vulnérabilités du code et résoudre d’abord les risques lesdéfaillance logicielle pour accéder à la base de données. De plus importants.plus, le pirate a très bien su effacer ses traces, car on pense queles défaillances avaient commencé jusqu’à un an avant que A. La voie vers un développement sécurisé : commentUCLA ne les détecte. La divulgation involontaire des rechercher les vulnérabilitésinformations sensibles d’une entreprise ou d’informations Pour s’assurer que le code est sécurisé, il faut examiner tousprivées et réglementées peut entraîner des amendes, une baisse les endroits où des vulnérabilités peuvent exister. Mêmedes cours en bourse sans compter les dégâts engendrés pour la lorsqu’ils utilisent des outils automatisés, les développeursréputation de l’entreprise. doivent comprendre que pour créer une application sécurisée, il faut peut-être revoir les pratiques d’implémentation et deDe nombreuses études montrent que la détection et la conception, notamment les pratiques en matière de codecorrection des défauts de code tôt sur le cycle de externe et de réutilisation de code, même s’ils ne lesdéveloppement des logiciels coûtent beaucoup moins cher. Si considèrent pas comme vulnérables au premier abord. Parl’on regarde le coût d’un seul bogue qui se retrouve dans du conséquent, les entreprises doivent être exigeantes en matièrecode publié et entraîne une divulgation de données, on de développement de code sécurisé et s’assurer que tous lescomprend facilement les conséquences de la non détection de endroits pouvant présenter des vulnérabilités sont analysés.cette simple vulnérabilité en termes de coûts. Les études leconfirment. Une enquête menée auprès de 31 entreprises Pour mesurer efficacement le risque posé par une application,ayant connu des violations de données montre qu’une les analystes de sécurité ou les développeurs doiventviolation de données coûte en moyenne 3 millions GBP, en rechercher deux types d’erreurs :raison des frais associés au nettoyage informatique, aux fraisjuridiques, aux notifications, aux pertes de clients, aux services ● Les erreurs d’implémentation :de surveillance de crédit pour les consommateurs touchés et à Ces défauts de code qualitatifs sont plutôt atomiquesla charge de travail supplémentaire pour le service à la et sont généralement isolés lorsqu’ils sont identifiés etclientèle. Cette enquête, réalisée par Ponemon Institute©, a résolus. Les erreurs d’implémentation sont causées par deégalement montré que la perte de clients associée à une mauvaises pratiques de programmation. Les dépassementsviolation des données s’élevait à 2 % en moyenne, mais de la mémoire tampon sont des exemples d’erreurspouvait aller jusqu’à 7 % dans certains cas.1 d’implémentation. Ils sont dus à une mauvaise gestion de la mémoire et de la concurrence critique, qui entraîne des écarts en termes de durée de communication.III. La voie vers des pratiques de ● Les erreurs de conception :développement de code sécurisé Ces erreurs comprennent une mauvaise utilisation ou uneQuel est le meilleur moyen de s’assurer que le code est implémentation inadéquate des fonctions de sécurité. Parsécurisé ? La voie vers un développement de logiciels sécurisé exemple, l’authentification, le chiffrement, l’utilisation deet efficace implique que les processus d’analyse de code source types de code externe non sécurisés et la validation d’entréesaccomplissent trois choses : de données et de sorties d’application.● Créer une cohérence : Lorsqu’ils développent du code, les Alors que les erreurs d’implémentation sont les plus courantes, développeurs doivent créer des processus, des politiques et ce sont en fait les défauts de conception qui entraîne le plus de une culture cohérents pour une sécurité améliorée. risques pour les applications Web modernes. Existe-t-il un● Offrir une vue d’ensemble des questions de sécurité : contrôle d’accès ? Existe-t-il un chiffrement et est-il suffisant ? en ce qui concerne les vulnérabilités dangereuses, les défauts L’accès à la base de données est-il sécurisé et conforme à la de conception à grande échelle dépassent généralement les politique ? Ces problèmes de sécurité liés à la conception erreurs de code individuelles. Corriger les vulnérabilités doivent être analysés et corrigés pendant le développement individuelles aura très peu d’effet si les données ne sont pas d’application sécurisé. chiffrées, si le processus d’authentification est faible ou si des portes dérobées existent dans une application.
  • 4. 4 La voie vers une application sécuriséeB. La voie vers un développement sécurisé : comment III. Les étapes vers le code sécurisé :rechercher les vulnérabilités ce qu’il faut examinerLe processus destiné à détecter les erreurs ne consiste pas La technique la plus efficiente et efficace pour créer du codeseulement à définir le besoin de sécurité au cours du processus source sécurisé est d’évaluer les applications existantes ainside développement, mais aussi à examiner tous les endroits du que le code en cours de développement à l’aide de cinqcode où des défauts de conception existent ou peuvent exister. catégories de vulnérabilités de code :Ces emplacements sont généralement beaucoup plus étendusque les développeurs, même les meilleurs, ne le pensent. 1. Fonctions liées à la sécuritéEffectuer une analyse poussée du code source peut entraîner 2. Erreurs d’encodage et de validation des entrées/sortiesles testeurs dans des endroits inattendus. 3. Traitement des erreurs et journalisation des vulnérabilités 4. Composants non sécurisésS’assurer que le code existant et le nouveau code sont 5. Erreurs de codage.développés de manière sécurisée implique des processus et desprocédures de recherche des vulnérabilités ainsi que des outils Suivre les problèmes de sécurité par le biais du code sourcepour aider cette recherche. Quels sont les outils les plus d’une application réduit considérablement la vulnérabilité deefficaces pour développer des logiciels sécurisés ? l’application et des données critiques qu’elle traite et protège.L’analyse de code manuelle et l’ethical hacking sont des Voici de plus amples informations sur chaque catégorieapproches couramment utilisées. Même si ces deux approches d’erreurs :sont utiles, aucune n’est suffisante pour traiter l’étendue deserreurs de conception existantes et potentielles et donc pour 1. Fonctions liées à la sécurités’assurer que le code est sécurisé. L’analyse de code manuelle, Les applications sont la somme de nombreuses fonctionspar exemple, est longue et coûteuse. Repérer les lignes de code discrètes, qui semblent souvent inoffensives. Pourtant, unequi contiennent des défauts ou qui peuvent donner lieu à des combinaison imprudente de ces fonctions, ou un manque deerreurs opérationnelles est extrêmement difficile. L’ethical documentation concernant l’implémentation de ces fonctions,hacking ne peut identifier qu’un petit sous-ensemble des peut facilement créer un risque de sécurité et entraîner deserreurs qu’une application peut contenir. Même si cette divulgations de données personnelles, confidentielles, ou deapproche est utile pour mettre ces erreurs en évidence, elle l’intégrité du système.n’offre qu’une vision incomplète de la sécurité globale del’application. Ce risque est accentué par l’utilisation répandue de langages de programmation de haut niveau et de modules préconçus etCompte tenu de l’étendue des erreurs de conception existantes de bibliothèques précompilées en particulier. Avec ces outils,ou potentielles, selon les experts, les entreprises doivent les développeurs peuvent rapidement déployer des applicationsutiliser des outils de détection des vulnérabilités de logiciel complètes ayant accès à de nombreux services et sources deautomatisés pour repérer tous les défauts potentiels. Ils données. Ces outils aident également à éviter de nombreuxs’accordent sur le fait que l’approche la plus efficace pour problèmes de sécurité, par exemple en retirant la gestion de lales entreprises qui développent leurs propres logiciels est mémoire et les questions de contrôle des ressources auxd’intégrer des analyseurs de vulnérabilité du code source dans développeurs qui utilisent des interfaces de haut niveau.les processus de développement, d’intégration et de test desapplications. Seuls des outils de test de vulnérabilité du code Ces outils n’exigent pas une compréhension plus détaillée desource de pointe et les pratiques de cycle de développement l’utilisation des services et des données de manière sécurisée,de logiciel associées peuvent garantir efficacement que le code ni des conflits éventuels d’une telle utilisation avec lesest sécurisé. processus métier existants ou la sécurité des infrastructures d’une entreprise. En conséquence, l’implémentation non sécurisée de ces bibliothèques ou modules est en fait la cause
  • 5. Logiciel IBM 5de la majorité des problèmes de sécurité concernant lesapplications actuelles. En outre, ces types d’erreurs de Un chiffrement inexistantconception de sécurité sont souvent plus dangereux que les Lors de l’évaluation de la sécurité du code, faitestypes précédents de problèmes de codage, car les applications particulièrement attention à la présence et àd’aujourd’hui s’interfacent à la fois avec le back office des l’implémentation d’un chiffrement correct. Détectez toutentreprises et avec Internet, créant ainsi un conduit potentiel code manquant. Le non chiffrement des informationspour la perte de données sensibles. sensibles a entraîné de nombreuses brèches de données. Prenons par exemple l’incident qui a eu lieu aux EtatsUne identification complète de l’état de la sécurité d’une Unis, au Department of Veterans Affairs (le ministèreapplication doit comprendre une analyse des défauts de américain des anciens combattants) signalé en mai 2006.conception critiques suivants : Une des applications du ministère a stockée les numéros de sécurité sociale et les adresses personnelles de tousa. Cryptographie faible ou non conforme les anciens combattants retraités L’ordinateur portableUn des composants fondamentaux de la sécurité d’une d’un employé qui contenait ces informations a été volé, mettant ainsi en danger les données de 38,6 millionsapplication est le chiffrement des données. Les données d’anciens combattants.personnelles ou sensibles sont embrouillées à des fins de L’analyse du code peut aider à retrouver toutes lesprotection. Si les pirates parviennent à casser les algorithmes informations sensibles stockées de manière nonde chiffrement, ils peuvent voler des données sensibles. sécurisée. La question que l’on peut se poser estL’utilisation de générateurs de chiffres aléatoires faibles et pourquoi ces données étaient disponibles sur und’algorithmes cryptographiques non conformes est deux ordinateur portable ? Pourquoi ne pas passer des appelsvulnérabilités de chiffrement répandues qui permettent aux sécurisés à une base de données centralisée, protégéepirates de voler des données sensibles. par des contrôles d’accès et un système de surveillance rigoureux ? La réponse probable est qu’il était plus simplePour que le chiffrement soit efficace, le caractère aléatoire de de créer une application sur ordinateur portable stockantla cryptographie sous-jacente doit être suffisamment fort pour les informations dans un format non sécurisé.empêcher les pirates de deviner ou de reproduire facilementles clés utilisées pour autoriser le partage des données. Leschiffres aléatoires faibles ne sont pas assez aléatoires. Lorsque b. Communications réseau non sécuriséesles chiffres moins aléatoires ainsi obtenus sont utilisés pour Utiliser des méthodes légales pour envoyer ou recevoir desformer des clés, cet algorithme de chiffrement expose les données sans documenter ni protéger ces processus peutdonnées chiffrées à la prédiction de nombres séquentiels et à exposer des données critiques lors du transit, permettantla mystification de session. Les développeurs doivent éviter les ainsi aux pirates de les intercepter et de les lire facilement.générateurs de chiffres aléatoires faibles. Les développeurs doivent employer des protocoles de communication réseau sécurisés, comme Secure Sockets LayerAttention aux algorithmes cryptographiques non conformes. (SSL), autant que possible et documenter soigneusement cesLes algorithmes cryptographiques embrouillent les données et processus.seule une poignée d’algorithmes réellement sécurisés existe.Ces derniers ont été évalués de manière approfondie par des c. Vulnérabilités liées à la configuration de l’applicationexperts en cryptographie. Même pour ces experts, produire un Les développeurs doivent s’assurer que les fichiers dealgorithme vraiment sécurisé et acceptable est extrêmement configuration ou les options qui commandent leursdifficile. D’où l’utilisation continue de triple DES, Blowfish et applications sont également sécurisés. Autrement, un pirateautres algorithmes usés. Il arrive même qu’on parvient risque d’accéder à ces fichiers ou options non protégés, de lesultérieurement à casser ces algorithmes. Quoi qu’il en soit, manipuler et d’ajuster les propriétés ou les contrôles d’accèssuivez les recommandations des experts. D’autres algorithmes du logiciel pour accéder à des données sensibles.sont ou peuvent être suffisamment résistants pour empêcherun pirate de décrypter des données chiffrées.
  • 6. 6 La voie vers une application sécuriséed. Vulnérabilités liées aux contrôles d’accès ● Erreurs d’authentification : en utilisant les informationsSans contrôles d’accès, les pirates ayant accès au réseau, d’authentification d’utilisateurs légitimes, ou en trompantnotamment les éléments internes malicieux, peut accéder un système de sorte qu’il pense que les informationsfacilement aux données et ressources confidentielles. Les d’authentification légitimes sont utilisées, un pirate peutorganisations doivent mettre en place une technique efficace voler ou manipuler des données. Lors de l’incident depour identifier les utilisateurs, mapper les utilisateurs identifiés piratage survenu chez ChoicePoint, Inc© par exemple,en fonction des données et s’assurer que les utilisateurs ont les pirates ont pu acquérir les véritables informationsaccès aux données appropriées. d’authentification des utilisateurs, ce qui les a aidés à dissimuler leurs activités malicieuses.La vulnérabilité associée survient lorsqu’une applicationoctroie des droits d’accès supérieurs aux droits nécessaires à un 2. Erreurs de validation des entrées/sorties (E/S) etutilisateur ou une application. Selon le niveau d’accès octroyé, d’encodageun utilisateur peut accéder à des informations confidentielles Pour la plupart des applications, l’entrée doit être dynamique.ou même prendre le contrôle du système. Par conséquent, Les réponses et les sélections des utilisateurs dans unepour toute application traitant des données sensibles, application déterminent et personnalisent leur expérience deassurez-vous d’appliquer le principe du privilège le plus l’application. Chaque entrée peut introduire une vulnérabilitéfaible : n’octroyez que le niveau d’accès minimum nécessaire à et doit être validée pour s’assurer que sa forme ou sa tailleun utilisateur ou à une application pour fonctionner. Cette n’entraîne pas de comportement imprévisible de l’application.approche implique d’identifier les différentes autorisations Tous les sources d’entrées et en particulier celles issues desdont une application ou un utilisateur de cette application a interactions avec les utilisateurs doivent être contrôlées à unbesoin pour exécuter les actions requises. Elle implique moment donné après leur entrée dans le système et avantégalement de restreindre tous les modules et objets appropriés qu’elles n’atteignent leur lieu d’utilisation. Les développeursà ces privilèges. doivent vérifier que toutes les entrées sont validées et qu’elles sont conformes aux attentes. Sinon, une application doitLors de l’évaluation des contrôles d’accès, recherchez empêcher les entrées mal formées de pénétrer danségalement ces autres vulnérabilités en termes de sécurité : l’application.● Utilisation non protégée de la base de données et du système de fichiers : vous devez vous assurer que les outils Une faille des contrôles d’accès : la navigation forcée de sécurité de l’application analysent soigneusement les Lors de l’analyse du code, faites très attention à la appels aux bases de données et aux systèmes de fichiers dans navigation forcée (ou « forced browsing »). Voici comment le code source de l’application. Autrement, des pirates elle fonctionne : Les pirates émettent une requête pourraient manipuler ces appels pour exposer des données directement vers une page Web à laquelle ils ne sont sensibles. peut-être pas autorisés à accéder. Si des contrôles● Vulnérabilités du code dynamique : l’application d’accès insuffisants sont en place, il se peut que les charge-t-elle du code dynamique ? Les pirates peuvent pirates parviennent à accéder à la page Web ou aux insérer des commandes malicieuses dans les applications ressources dorsales. Ils peuvent alors voler ou corrompre qui chargent du code dynamique. Vous devez vous assurer ces ressources. d’examiner les applications en premier pour vérifier si ce Pour empêcher de telles attaques, les développeurs risque existe. doivent s’assurer qu’aucune page Web contenant des informations sensibles n’est mise en antémémoire sur les● Chargement du code externe : les pirates peuvent serveurs ou sur les ordinateurs personnels locaux des modifier, exposer ou détruire les données en manipulant utilisateurs. Toutes ces données ne sont accessibles que de manière incorrecte les appels système validés. par des requêtes accompagnées d’un jeton de session● Vulnérabilités liées au stockage des données : pourquoi actif et authentifié et associées à un utilisateur qui attaquer une application si les données ne sont pas possède les droits d’accès requis pour accéder à une sécurisées ? Les pirates risquent d’accéder aux serveurs pour page ou à des informations données. voler des données sensibles si elles ne sont pas stockées de manière sécurisée.
  • 7. Logiciel IBM 7Pour mieux comprendre quand et où utiliser la validation des défendre contre les attaques par scripting, protégez toutes lesE/S et pour savoir où elle est particulièrement nécessaire, il sorties fournies par les utilisateurs aux fichiers clients etfaut comprendre certaines des principales attaques et comment journaux avec HTML Entity Encoding. Ce codage organiseles arrêter : tous les caractères non alphanumériques dans une séquence de caractères spéciale qui ne peut pas être interprétée par lesa. Vulnérabilités liées à l’injection de Structured Query visualiseurs compatibles HTML.Language (SQL)Une vulnérabilité très courante liée à la validation des entrées c. Vulnérabilités liées à une injection dans le systèmeest l’injection de langage SQL. Les pirates utilisent cette d’exploitation (OS)technique pour voler de grandes quantités d’informations Les applications nécessitent parfois un accès aux commandesde cartes de crédit dans les bases de données. Comme le nom de niveau système d’exploitation. Soyez vigilant lorsque cede cette attaque l’indique, les pirates envoient des requêtes type d’accès implique aussi des entrées des utilisateurs carSQL inappropriées à une base de données afin d’accéder comme pour les injections de langage SQL, les piratesillégalement aux données ou de déstabiliser le comportement peuvent utiliser les entrées mal formées pour modifier lede la base de données. La méthode la plus efficace pour comportement du système d’exploitation, entraînant ainsi desstopper les attaques par injection de langage SQL est d’utiliser violations de données potentielles ou compromettantuniquement les procédures mémorisées ou les appels à la base l’ensemble du système.de données paramétrés qui n’autorisent pas l’injection de code.Cette technique simple permet d’arrêter les attaques par d. Manipulation des cookies personnalisés ou desinjection de langage SQL. champs masqués Les cookies sont un moyen utile et populaire d’assurer lab. Vulnérabilités liées au scripting intersites (XSS) maintenance des informations de l’utilisateur pendant lesLes attaques XSS profitent de mécanismes de sortie mal sessions et d’une session à l’autre. La création de cookiesprotégés dans les applications. Les pirates peuvent utiliser personnalisés avec des noms et des valeurs personnalisés estces mécanismes pour pousser les utilisateurs peu méfiants à une pratique dangereuse, qui incite souvent les développeurs àexécuter ou à accéder à du code malicieux. se reposer trop lourdement sur ces cookies non sécurisés, car les pirates peuvent facilement modifier les cookies. Si lesLes attaques XSS peuvent généralement être divisées en deux développeurs ne valident pas les cookies, ils donnent auxcatégories : pirates l’occasion de créer des injections de langage SQL et de lancer des attaques XSS efficaces.● Attaques mémorisées : le code injecté est mémorisé de façon permanente sur la base de données du serveur, le forum de messagerie ou le journal de visiteurs ciblé. Utilisation du scripting inter-sites (XSS) pour lancer des● Attaques réfléchies : le code injecté atteint une victime, par attaques sur d’autres sites le biais d’un e-mail par exemple, ou en vivant sur un autre serveur. Après que l’utilisateur a cliqué sur un lien ou a Les attaques par scripting intersites (XSS) concernent particulièrement les sites destinés aux consommateurs et soumis un formulaire, le code injecté est transféré au serveur les sites des réseaux sociaux, où la communication est Web vulnérable, qui renvoie l’attaque au navigateur de fortement orientée vers des supports multimédia de l’utilisateur. Le navigateur exécute alors le code car le code pointe au détriment de la sécurité. provient d’un serveur digne de confiance. Prenons par exemple le ver (worm) qui a ciblé MySpace.com© en 2006. Qualifié d’extrêmementLes attaques XSS les plus graves entraînent la divulgation des virulent par un analyste de sécurité, cette attaque XSS acookies de la session de l’utilisateur, ce qui permet au pirate de profité d’une vulnérabilité d’Apple© QuickTime (même siprendre le contrôle de la session de l’utilisateur et de son Apple ne l’a pas reconnue comme telle au départ) pourcompte. D’autres attaques graves incluent la divulgation des injecter du JavaScript depuis une source externe et sansfichiers d’utilisateurs finaux, l’installation d’applications de avertissement dans le profil d’un utilisateur, dans le but detype cheval de Troie, la redirection d’un utilisateur vers une voler les données de connexion MySpace d’un utilisateurautre page ou un autre site qui contient une attaque de type et de lancer des attaques de spam à travers MySpace. La vulnérabilité d’un lecteur multimédia a permis aux pirateshameçonnage et la modification du contenu. Pour vous de lancer une attaque étendue.
  • 8. 8 La voie vers une application sécurisée3.Traitement des erreurs et journalisation des révèlent aux utilisateurs de l’application. Évitez les applicationsvulnérabilités qui s’intègrent à un serveur Web en affichant les erreurs sur leVotre application présente-t-elle une défaillance progressive ? serveur. Un pirate extérieur peut se servir des informationsLa gestion et la journalisation des erreurs sont des tâches ainsi divulguées pour accéder aux systèmes.particulièrement difficiles pour les développeurs : qui peutprévoir toutes les défaillances potentielles d’une application et b. Journalisation non sécurisée ou inadaptéeleurs répercussions ? Les fichiers journaux sont essentiels pour surveiller le comportement d’une application, mais ils constituentLe traçage de la gestion et de la journalisation des également de précieuses ressources pour les pirates. Ne rendezerreurs d’une application est cependant capital. En effet, pas les fichiers journaux accessibles. Envisagez la journalisationaujourd’hui, de nombreuses attaques réussissent en du comportement de l’application pour les applications quiinjectant des données erronées dans une application et en traitent des données sensibles, afin de vous assurer que lesprofitant du comportement incorrect qu’elles provoquent pirates ne puissent pas couvrir leurs traces.dans l’application. 4. Composants non sécurisésLorsque vous notez une application en fonction de sa gestion Du code vulnérable peut se retrouver dans une application,des erreurs, évaluez d’abord ces deux aspects : par un acte malicieux, par inadvertance ou à cause de mauvaises pratiques d’écriture de code. Par exemple, una. Traitement des erreurs non sécurisée pirate peut insérer du code malicieux dans une applicationUne mauvaise gestion des erreurs peut fournir aux pirates pour contourner les mesures de sécurité existantes.des informations cruciales pour lancer leurs attaques. Par Malheureusement, le code malicieux est souvent d’aspectexemple, de mauvaises habitudes de gestion des erreurs identique au code non malicieux. Ces deux types de codepeuvent fournir des informations utiles concernant la manière peuvent permettre d’accéder à des réseaux et à des données etdont une application traite les entrées, surtout si la gestion ils fonctionnent tous les deux généralement comme les autresdes erreurs consiste en une écriture personnalisée en fonction parties d’une application.d’erreurs et d’éléments de données aux détails spécifiques.Les développeurs doivent limiter la quantité de détails qu’ils Par conséquent, il est extrêmement difficile d’identifier le code malicieux si l’évaluation des développeurs ne porte que sur la fonctionnalité. Au lieu de cela, les développeurs doivent se concentrer sur les emplacements. Commencez parWeb 2.0 : exposer l’insécurité sur le Web identifier les types de fonctionnalités spécifiques (commeLa nature axée sur le Web du commerce moderne communication réseau, événements programmés etpermet d’accéder via le Web à plus de données que modifications des privilèges) puis mappez chaque type avec lejamais auparavant. Les technologies comme AJAX module d’application dans lequel il fonctionne. Recherchez lespermettent aux développeurs de logiciels d’accéder plus inadéquations, comme une bibliothèque graphique exécutantfacilement aux informations et contribuent à améliorer des opérations réseau sortantes ou des événementsconsidérablement l’expérience des utilisateurs finaux.Mais ces technologies ne font pas grand chose pour programmés figés dans le code dans une applicationrégler les problèmes de sécurité. Les organisations majoritairement en temps réel. Ces inadéquations sont lesdoivent se montrer particulièrement vigilantes quant à leur signes avant-coureurs d’intentions malicieuse.qualité de code et à leurs vulnérabilités en termes desécurité à mesure qu’elles adoptent de nouveaux Aujourd’hui, les pratiques en matière de développementoutils et de nouvelles techniques de développement. d’applications impliquent une multitude de composants.Une innovation du Web 2.0, par exemple, est le mashup Même si ce nombre élevé de composants aide à créer desqui combine du contenu provenant d’un serveur hébergéà des flux publiquement disponibles. Cependant, cesnouvelles capacités ouvrent de nouvelles possibilitésd’attaque inter-sites. Lorsque les mashups Web 2.0 nesont pas réalisés de manière sécurisée, ils ouvrent la voieà de nouvelles formes de phishing (ou hameçonnage) etautres attaques.
  • 9. Logiciel IBM 9applications sécurisées plus rapidement, deux types Pour tout projet de logiciel, assurez-vous que tous les contratsd’utilisation de composants entraînent d’importants risques stipulent l’utilisation exclusive de méthodes prises en charge.de vulnérabilité : Pour les applications existent, trouvez les méthodes non prises en charge, supprimez-les et remplacez-les par des méthodesa. Méthodes Java Native Interface non sécurisées prises en charge.Si les développeurs emploient des méthodes Java NativeInterface (JNI) non sécurisées dans leur code, les pirates 5. Erreurs de codagepeuvent accéder facilement aux ressources critiques, comme la Les erreurs de codage, également connues sous le nommémoire système ou environnement. d’erreurs d’implémentation, peuvent être causées par une formation insuffisante des développeurs, par des délais tropEn quoi consistent les méthodes JNI ? Il s’agit de langages de serrés, par un manque de priorités en ce qui concerne lesplus haut niveau qui fournissent des interfaces pour vérifier exigences liées au projet ou par la réutilisation de code del’accès aux ressources. Par contraste, la méthode JNI est un qualité inconnue ou médiocre.moyen plus basique d’accéder à ces ressources, car elle évite cetype d’interfaces pour obtenir de meilleures performances. Lorsque des erreurs de codage existent dans les applications,Comme le code est écrit sans contrôles au niveau de elles peuvent provoquer des comportements inattendus,l’interface, le risque d’erreur de mauvais codage est comme donner le contrôle d’un système ou d’un processus àextrêmement élevé. De manière générale, évitez d’utiliser des un pirate ou même arrêter une application. En raison desméthodes JNI, sauf dans certains cas exceptionnels où les risques de sécurité inhérents aux erreurs de codage, ces erreursperformances sont prioritaires. Localisez et testez toujours de doivent être supprimées du code, qu’il soit en cours demanière approfondie les méthodes JNI utilisées. En outre, développement ou déjà en production.vous devez prendre en compte le fait que les bibliothèques JNIpeuvent contenir des erreurs intégrées, en particulier lors Lorsque vous évaluez le code, recherchez ces vulnérabilitésd’une programmation en C ou C++, qui sont plus vulnérables liées au codage :aux problèmes de dépassement de la mémoire tampon et deconcurrence critique. a. Vulnérabilités liées au dépassement de la mémoire tamponb. Méthodes non prises en charge Un dépassement de la mémoire tampon se produit lorsque laLes développeurs prennent parfois des raccourcis et utilisent quantité de données copiées dans une mémoire tampon estdes méthodes ou des appels non pris en charge au cours du supérieure à la capacité de cette mémoire. Même si l’ondéveloppement des applications. Utiliser des fonctions ou des comprend parfaitement les dépassements de mémoire tamponroutines non documentés peut produire des insécurités depuis plus de 20 ans, ils restent un problème courant etcachées, qui permettent aux pirates d’attaquer une application. entraînent un risque extrêmement élevé. Les pirates peuvent profiter de ce type de mauvaise gestion de la mémoire pour charger et exécuter du code défaillant dans la mémoire de l’ordinateur, ce qui permet aux pirates de prendre le contrôleComportement suspect de tout le système;Signes indiquant qu’une application peut contenir du codemalicieux Dans les langages structurés, comme C et C++, il existeSigne Indique littéralement des centaines d’appels et de combinaisons d’appels qui peuvent donner lieu à des erreurs d’allocationRaw socket access Portes dérobées possibles de mémoire et à une mauvaise compréhension desMinuterie ou fonction Déclencheur comportements de l’application. Cette complexité crée desd’obtention de l’heure conditions idéales pour les attaques par dépassement de la Niveaux d’accès nonModifications des privilèges autorisés mémoire tampon.
  • 10. 10 La voie vers une application sécuriséeDans les langages de plus haut niveau, comme Java, JavaServer Une vulnérabilité DoS est due à des erreurs d’implémentationPages (JSP), C#, .Net, les vulnérabilités sont beaucoup moins qui provoquent la consommation de ressources rares, limitéesnombreuses, car le langage et l’interprétation du moteur ou non renouvelables ou la destruction ou l’altération desd’exécution traitent toute la gestion de la mémoire au niveau informations de configuration. Pour éviter ces conditionsinférieur, qui est donc protégée de toute influence par le d’échec, les développeurs doivent concevoir leurs applicationsprogrammeur. Même dans ces langages de plus haut niveau, il pour fonctionner même dans les pires scénarios.se peut que des appels parfois non documentés créent unevulnérabilité de dépassement de la mémoire tampon à l’insu d. Vulnérabilités liées à l’augmentation des privilègesdu programmeur. Soyez très vigilant en matière de Dans de nombreux cas, le but ultime d’une attaque estdépassement de la mémoire tampon pour les langages de l’augmentation des privilèges. Un utilisateur ayant desplus haut niveau. informations d’authentification insuffisantes obtient un accès privilégié, ce qui permet au pirate d’accéder à ces données etb. Vulnérabilités liées à la chaîne de format des ressources confidentielles, et même de prendre le contrôleLes vulnérabilités liées à la chaîne de format illustrent la de tout le système ou de le détruire, tout en restant classérelation entre les erreurs d’implémentation et la qualité comme utilisateur de confiance.globale d’une base de code. Les vulnérabilités liées à la chaînede format sont souvent considérées comme un type de Un pirate élève généralement ses privilèges en exploitant lesdépassement de la mémoire tampon, mais cette comparaison sections des programmes dans lesquelles une applicationn’est pas entièrement correcte. Même si une vulnérabilité de délivre ou reçoit des privilèges de niveau supérieur. Parfois, leschaîne de format peut produire un dépassement de la mémoire applications doivent créer des processus sous des utilisateurstampon, elle peut aussi entraîner l’exposition d’informations, différents ou avec des niveaux d’accès différents. La charge desans dépassement. la preuve incombe aux développeurs afin de s’assurer que le processus d’augmentation des privilèges ne peut pas êtreLors du développement de code, une utilisation incomplète de exploité par des programmes malicieux. De même, lecertains appels peut entraîner des vulnérabilités de la chaîne processus de désaugmentation doit aussi être testé ende format. Les bonnes pratiques en matière de codage profondeur.impliquent l’utilisation cohérente de certains arguments,comme les spécificateurs de champs. Si au lieu de cela, les Par exemple, lorsqu’un processus de priorité inférieuredéveloppeurs élaborent du code à l’aide d’appels incomplets, redonne le contrôle à un autre programme doté de privilègesces appels ne sont pas suffisamment liés, ce qui permet aux plus élevés, l’application doit toujours vérifier la validité despirates d’insérer des données, des arguments ou des requêtes codes de retour, les conditions d’erreur et les opérations ded’informations supplémentaires dans ces appels. Analysez tout diminution des privilèges déclenchées par les erreurs. Si unele code à la recherche d’appels incomplets et corrigez ces de ces opérations échoue, les programmes peuvent continuer àappels. fonctionner à des niveaux ou des privilèges différents de ceux qui sont requis.c. Erreurs DoSToute application qui donne accès à des données ou desservices critiques ne peut remplir que cette fonction lorsqu’elleest exécutée. Les attaques DoS compromettent les applicationset affectent la livraison de données ou de services critiques.
  • 11. Logiciel IBM 11e. Concurrence critique IV. Application de la liste de contrôle pourDeux processus peuvent partager le contrôle ou les l’analyse du code sourcedonnées. La concurrence critique désigne la compromission A. Des applications coupables jusqu’à ce qu’elles soientde ce partage, qui découle généralement d’erreurs de prouvées innocentessynchronisation, lorsqu’il existe un risque de conflits entre les Les cinq grands types de vulnérabilités de code décritsprocessus et donc une vulnérabilité. Une faille classique précédemment représentent tous les risques les plusinterrompt une paire d’appels séquentiels qui doivent être probables et les plus dangereux contenus dans le codeexécutés automatiquement sans interruption par un autre fil existant et hérité. Les clients professionnels, les chefs deou processus sur la machine avec un troisième processus. projet de développement de logiciels et les développeurs doivent s’assurer que tout le code est analysé afin d’identifierUn exemple est la vérification combinée des droits d’accès à ces cinq catégories de vulnérabilités.un fichier, suivie par un appel ultérieur visant à écrire ou à lirece fichier. En interrompant le processus entre les deux appels, Compte tenu de la multitude de risques posée par cesun pirate peut réécrire ou modifier le fichier car ce vulnérabilités et par leur présence probable dans decomportement est prévisible. Le pirate peut placer des nombreuses applications, les équipes de projet doivent traiterinformations inappropriées dans un fichier ou accéder à un toutes les applications qu’elles mettent en service, qu’ellesfichier inapproprié. créent ou qu’elles réévaluent avec beaucoup de scepticisme en matière de sécurité. Cette attitude marque un changement important par rapport à l’approche de développement traditionnelle, qui consiste à analyser une application en seErreurs courantes liées au déni de service (DoS) basant sur sa vitesse, ses fonctionnalités et sa convivialité.DoS d’arrêt de l’application : Comment l’applications’arrête-t-elle ? Certains auteurs d’applications, lorsqu’ils Aujourd’hui, les équipes de développement traitent chaqueimplémentent la fonctionnalité de fermeture pour une application existante ou en cours de développement comme unapplication le font de manière trop générale. Par exemple, risque de sécurité avant que son innocuité puisse être prouvée.si une application se ferme automatiquement en raison Les équipes doivent réagir de la sorte à cause des risques qued’erreurs d’entrée au moyen d’une fonction système de représentent ces vulnérabilités pour l’entreprise. En effet,sortie, un pirate peut provoquer une suite d’événementssimilaire qui entraîne l’arrêt artificiel et intempestif de comme indiqué par un groupe de travail de l’Institute ofl’application. Electrical and Electronics Engineers (IEEE) étudiant leDoS des connexions à la base de données non fermées : nouveau rôle de la sécurité dans le cycle de développement desL’application se connecte-t-elle sans problème aux bases logiciels, les applications ont aujourd’hui un effet beaucoupde données ? Pour autoriser l’accès d’un processus aux plus important sur l’approbation des clients, sur la stabilité etdonnées, l’application et la source de données doivent sur la rentabilité des entreprises à long terme.2d’abord établir une connexion. Si ce processus est codéincorrectement, la queue des requêtes de récupération Par conséquent, le groupe de l’IEEE recommande auxpeut devenir embouteillée et surchargée en raison des équipes de projet traditionnellement concentrées uniquementtentatives de connexion échouées aux bases de données. sur la satisfaction des demandes des clients d’apprendre à communiquer le risque de sécurité aux sponsors en amont, afin de justifier les exigences appropriées en matière de budget et de projet. Même si ces changements sont peu populaires, aujourd’hui, les menaces de sécurité et l’obligation de protéger les informations sensibles et personnelles exigent une concentration dédiée à la sécurité de la part de tous les membres des équipes de projet.
  • 12. 12 La voie vers une application sécuriséeB. Tests de vulnérabilité du code source risques de violations de données coûteuses, la réductionLes outils de test de vulnérabilité du code source à eux des coûts liés au cycle de développement des logiciels, laseuls ne suffisent pas à sécuriser un logiciel. Ces outils conformité à des normes plus strictes et l’obtention d’unaident les développeurs et les analyseurs de code à évaluer avantage concurrentiel. Les entreprises doivent choisir l’outilles applications, même celles qui contiennent des millions qui fonctionne le mieux avec leurs ressources de codede lignes de code, pour identifier les vulnérabilités potentielles existantes et qui aide l’organisation à atteindre ses objectifs enles plus dangereuses. Avec ces outils de test, les équipes de termes de cycle de développement de logiciels. Elles doiventdéveloppement et de résolution peuvent classer leurs efforts également s’assurer que l’outil choisi couvre toutes les erreurspar ordre de priorité et adopter une approche axée sur les de codage et tous les défauts de conception qui doivent êtrerisques pour améliorer la base de code, en commençant par les identifiés et éliminés pour créer une application sécurisée.problèmes les plus critiques. Les nombreuses violations de données exposées par lesLa création d’applications sécurisées nécessite que les média à ce jour, qui sont souvent dues à des défauts deorganisations développent du code sécurisé et prévoient des code, soulignent la nécessité d’éradiquer les vulnérabilitéstests de vulnérabilité en continu. Pour toute application, la pour empêcher la divulgation d’informations sensibles ousécurité du code doit être une condition requise préalable à la réglementées par négligence ou par malveillance. Même pourpublication du code. L’explosion du nombre de menaces les organisations qui ne sont pas encore soumises à cesciblées doit faire des tests de vulnérabilité de la sécurité des réglementations, la croissance rapide en matière d’outils,applications un passage obligé dans toutes les entreprises. de technologies et de langages de programmation plus connectés, y compris les applications Web 2.0, rend toutesCe travail est pénible et compliqué car les applications les organisations qui utilisent ces technologies vulnérables.complexes peuvent contenir des erreurs de codage et des Compte tenu des coûts considérables aussi bien financiersvulnérabilités extrêmement complexes et difficiles à identifier. qu’en termes de réputation résultant des violations deLes équipes d’analyse du code ont besoin d’outils d’analyse de données, les entreprises cherchent de plus en plus à trouver lecode sophistiqués. En effet, la nature technique et les causes moyen le plus efficient et efficace pour garantir la sécurité dereconnues des erreurs d’implémentation et de codage poussent leur code source, pour développer des applications sécuriséesde nombreuses entreprises à faire de l’analyse du code le point et pour éliminer les bogues le plus tôt possible dans lede départ logique de l’amélioration de la sécurité globale de processus de développement, bien avant la livraison du code.l’application. Les entreprises qui parviennent à intégrer efficacementC. Choisir le bon outil les tests de vulnérabilité du code source à leurs pratiquesLorsqu’il s’agit de choisir un outil automatisé de test de de cycle de développement de logiciels peuvent éviter lesvulnérabilité du code source à utiliser tout au long du cycle impacts négatifs des défauts de sécurité. Ces pratiquesde développement d’un logiciel, les organisations doivent améliorées débouchent sur des économies considérables pourd’abord évaluer leurs ressources de développement de code les entreprises et pour les clients, les partenaires et les autresexistantes. Ces ressources comprennent l’expertise en sécurité acteurs qui utilisent leurs logiciels. Ces économies sont lainterne, les technologies et les partenaires de service ainsi que preuve de l’efficacité d’un programme de sécurité de codeleurs objectifs d’amélioration du cycle de développement de source.logiciels. Ces objectifs peuvent impliquer la diminution dunombre de correctifs de sécurité publiés, la réduction des
  • 13. Logiciel IBM 13V. ANNEXE : Liste de contrôle pour l’analyse de la sécurité du code sourceVérifier que les applications sont sécurisées commence par la recherche des vulnérabilités afin d’atténuer les risques qu’ellesposent pour l’application et l’intégrité des données : Catégorie Vulnérabilité Risque Fonctions liées à la sécurité Cryptographie faible ou non conforme Les pirates peuvent casser les algorithmes pour voler des données sensibles Communications réseau non sécurisées Les méthodes légitimes utilisées pour envoyer les informations ne sont pas documentées ni protégées, ce qui expose des données critiques Vulnérabilités liées à la configuration de l’application L’accès aux fichiers ou options de configuration non protégés permet de manipuler les propriétés ou les données du logiciel Vulnérabilités de contrôle d’accès Accès non autorisé aux données et aux ressources confidentielles Utilisation non protégée de la base de données et du Le piratage et la manipulation des appels aux bases système de fichiers de données et aux systèmes de fichiers exposent les données Vulnérabilités de code dynamique Insertion réussie de commandes malicieuse dans les applications qui chargent du code dynamique sans validation appropriée Chargement de code local La manipulation de ces appels au niveau du système permet la manipulation, l’exposition et la destruction des données Vulnérabilité liée au stockage des données Les données stockées de manière non sécurisée peuvent être volées facilement Erreurs d’authentification Les pirates utilisent les informations d’authentification d’utilisateurs légitimes pour voler ou pour manipuler des données Erreurs de validation des E/S Vulnérabilités liées à l’injection de langage SQL Envoi de commandes SQL directement aux bases de et les erreurs d’encodage données pour voler ou manipuler des données Vulnérabilités liées aux attaques XSS Les utilisateurs se font pirater leurs sessions à leur insu, téléchargent des chevaux de Troie à leur insu ou sont victimes d’arnaques par hameçonnage Vulnérabilités liées à une injection dans le système Les pirates modifient ou abusent des commandes du d’exploitation (OS) système d’exploitation pour contrôler les données et les ressources Manipulation des cookies personnalisés ou des Crée un niveau de confiance dont les pirates se champs masqués servent pour lancer des attaques, comme une injection de SQL ou une attaque XSS
  • 14. 14 La voie vers une application sécurisée Catégorie Vulnérabilité Risque Traitement des erreurs et Traitement des erreurs non sécurisée Fournit aux pirates des informations utiles pour leurs journalisation des vulnérabilités attaques Journalisation non sécurisée ou inadaptée Les fichiers journaux accessibles divulguent des informations utiles pour les attaques, tandis qu’une journalisation inappropriée permet aux pirates d’effacer leurs traces Composants non sécurisés Code malicieux Du code d’apparence légitime inséré dans le logiciel peut permettre aux pirates de contourner les mesures de sécurité Méthodes locales non sécurisées L’utilisation non contrôlée de méthodes locales permet aux pirates d’accéder à des ressources critiques comme la mémoire système ou environnement Méthodes non prises en charge Les fonctions ou routines non documentées sont une source d’insécurité cachée qui peut être exploitée Erreurs de codage Vulnérabilités liées au dépassement de la mémoire Les pirates peuvent prendre en otage les ressources tampon du système Vulnérabilités liées à la chaîne de format Entraîne des dépassements de la mémoire tampon ou l’exposition des données Erreurs DoS Empêche le logiciel de fonctionner Vulnérabilités liées à l’augmentation des privilèges Les pirates peuvent accéder aux données et aux ressources confidentielles Concurrence critique Contourner un processus d’application pour manipuler des opérations Utilisation de méthodes locales non sécurisées Peut sacrifier la sécurité au profit des performances, donnant ainsi un accès non sécurisé à la mémoire système ou environnement Méthode non prise en charge Des opérations légitimes peuvent lancer des appels à du code vulnérable à l’insu de l’utilisateur
  • 15. Notes
  • 16. Pour en savoir plusPour en savoir plus sur IBM Rational AppScan SourceEdition, contactez votre représentant commercial IBM, votrepartenaire commercial IBM ou rendez-vous à l’adresse :ibm.com/software/rational/products/appscan/source/ IBM France 17, avenue de l’EuropeÀ propos des auteurs 92275 Bois-Colombes CedexRyan Berg est Senior Security Architect chez IBM. Ryan estun orateur, un formateur et un auteur populaire dans lesdomaines de la sécurité, de la gestion des risques et des La page d’accueil d’IBM se trouve à l’adresse ibm.comprocessus de développement sécurisés. Il détient des brevets et IBM, le logo IBM, ibm.com, AppScan et Rational sont des marques oudes brevets en instance dans les secteurs de l’évaluation de la marques déposées d’International Business Machines Corporation aux États-Unis et/ou dans d’autres pays. Si ces marques et les autres termessécurité multilingue, de la sécurité au niveau du noyau, du déposés d’IBM comportent, sur la première occurrence dans ce document,langage d’évaluation de sécurité intermédiaire et des un symbole de marque de commerce (® ou ™), ces symboles indiquent desprotocoles de communication à distance sécurisés marques de commerce enregistrées aux États-Unis ou de common law appartenant à IBM au moment de la publication de ce document. Ces marques de commerce peuvent être enregistrées ou de common law dans d’autres pays. Une liste à jour des marques d’IBM est disponible sur Internet, sous la rubrique « Copyright and trademark information » (Informations sur les droits d’auteur et les marques), sur le site ibm.com/legal/copytrade.shtml Java ainsi que tous les logos et toutes les marques mentionnant Java sont des marques de Sun Microsystems, Inc. aux États-Unis et/ou dans d’autres pays. 1 Ponemon Institute, « 2006 Annual Study: Cost of a Data Breach, » octobre 2006. 2 Biscick-Lockwood, Bar, « The Benefits of Adopting IEEE P1074-2005, » 2 avril 2006. Le présent document peut contenir des informations ou des références concernant certains produits, logiciels ou services IBM non annoncés dans ce pays. Cela ne signifie pas qu’IBM ait l’intention de les y annoncer. Toute référence à un produit logiciel ou service IBM n’implique pas que seul ce produit, logiciel ou service puisse être utilisé. Tout élément fonctionnellement équivalent peut être utilisé s’il n’enfreint aucun droit d’IBM. Le présent document est publié uniquement à titre indicatif. Les informations qu’il contient sont soumises à modification sans préavis. Veuillez prendre contact avec votre revendeur IBM local pour obtenir les dernières informations sur les produits et les services IBM. IBM ne donne aucun avis juridique, comptable ou d’audit financier et ne garantit pas que ses produits ou services sont conformes aux lois applicables. Les utilisateurs sont seuls responsables du respect des lois et réglementations de sécurité en vigueur, en particulier les lois et réglementations nationales. © Copyright IBM Corporation 2009 Tous droits réservés. RAW14198-FRFR-00