Vulnérabilité (informatique)
348081
29016010
2008-04-26T17:45:38Z
HERMAPHRODITE
288856
:''Pour une utilisation plus large du terme "Vulnérabilité", veuillez vous référer à [[vulnérabilité]].''
Dans le domaine de la [[sécurité informatique]], une '''vulnérabilité''' ou une '''faille''', est une erreur dans un [[système#Informatique, robotique|système informatique]] permettant à un attaquant de porter atteinte à l'intégrité de ce système, c'est-à-dire à son fonctionnement normal, à la confidentialité et l'intégrité des données qu'il contient. On parle aussi de '''faille de sécurité informatique'''.
Ces vulnérabilités sont la conséquence de faiblesses dans la conception, la mise en œuvre ou l'utilisation d'un composant matériel ou logiciel du système, mais il s'agit généralement de l'exploitation de [[Bogue informatique|bugs logiciels]]. Ces dysfonctionnements logiciels sont en général corrigés à mesure de leurs découvertes, c'est pourquoi il est important de maintenir les logiciels à jour avec les correctifs fournis par les éditeurs de logiciels.
Il arrive que la procédure d'exploitation d'une faille d'un logiciel soit publiquement documentée et utilisable sous la forme d'un petit logiciel appelé [[Exploit (informatique)|exploit]].
== Causes ==
Les vulnérabilités informatiques proviennent souvent de la négligence ou de l'inexpérimentation d'un programmeur. Il peut y avoir d'autres [[cause]]s liées au [[contexte]]. Une vulnérabilité permet généralement à l'attaquant de duper l'application, par exemple en outre-passant les vérifications de [[contrôle d'accès]] ou en exécutant des commandes sur le système hébergeant l'application.
Quelques vulnérabilités surviennent lorsque l'entrée d'un utilisateur n'est pas contrôlée, permettant l'exécution de commandes ou de requêtes SQL (connues sous le nom d'[[injection SQL]]). D'autres proviennent d'erreurs d'un [[programmeur]] lors de la vérification des buffers de [[donnée]]s (qui peuvent alors être [[dépassement de tampon|dépassés]]), causant ainsi une corruption de la [[pile mémoire]] (et ainsi permettre l'exécution de code fourni par l'attaquant).
== Publication d'une vulnérabilité ==
=== Méthode de publication ===
La méthode de publication des [[vulnérabilité]]s est un sujet qui fait débat au sein de la communauté de la [[sécurité des systèmes d'information]]. Certains affirment qu'il est nécessaire de publier immédiatement toutes les informations à propos d'une [[vulnérabilité]] dès qu'elle a été découverte ([[full disclosure]]). D'autres prétendent qu'il est préférable de limiter en premier lieu la publication uniquement aux utilisateurs qui ont un [[besoin]] important, et puis ensuite après un certain délai de publier en détail, s'il y a [[besoin]].
Ces délais peuvent permettre de laisser le [[temps]] à ces utilisateurs de corriger la [[vulnérabilité]] en développant et en appliquant les patchs de sécurité nécessaires, mais peuvent aussi accroître les [[risque]]s pour ceux qui n'ont pas ces informations.
=== Date et source de publication ===
La date de publication est la première date à laquelle une [[vulnérabilité]] est décrite sur un [[média]] où l'information révélée suit les conditions suivantes :
* l'information est disponible [[librement]] et publiquement,
* l'information sur la [[vulnérabilité]] est publiée par une source indépendante et de [[confiance]],
* la [[vulnérabilité]] a fait l'objet d'analyse par des experts, notamment sur l'estimation du [[risque]] de la révélation.
D'un point de vue [[sécurité]], seule une publication libre d'accès et complète peut assurer que toutes les parties intéressées obtiennent l'information appropriée. La [[sécurité par l'obscurité]] est un concept qui n'a jamais fonctionné.
La source de la publication doit être indépendante d'un [[éditeur de logiciel|éditeur]], d'un [[vendeur]], ou d'un [[gouvernement]]. Elle doit être impartiale pour permettre une diffusion de l'information juste et critique. Un média est considéré comme de [[confiance]] lorsqu'il est une source de la [[sécurité des systèmes d'information]] largement acceptée dans l'[[industrie]] (par exemple : [[CERT]], [[Centre d'évaluation de la sécurité des technologies de l'information|CESTI]], [[Securityfocus]], [[Secunia]]).
L'analyse et l'estimation du [[risque]] assurent la qualité de l'information révélée. Une unique discussion sur une faille potentielle dans une liste de diffusion ou une vague information d'un [[vendeur]] ne permettent donc pas de qualifier une [[vulnérabilité]]. L'analyse doit inclure assez de détails pour permettre à un utilisateur concerné d'évaluer lui-même son [[risque]] individuel, ou de prendre une mesure immédiate pour se [[protéger]].
=== Référence ===
Lorsqu'une vulnérabilité a été publiée, le [[MITRE]] lui attribue un [[Common Vulnerabilities and Exposures|identifiant CVE]]. Cet identifiant permet de faire des recherches croisées entre plusieurs sources d'information.
== Identification et correction des vulnérabilités ==
Il existe de nombreux outils qui peuvent faciliter la découverte de vulnérabilités sur un système information, certains permettant leur suppression. Mais, bien que ces outils puissent fournir à un auditeur une bonne vision d'ensemble des vulnérabilités potentiellement présentes, ils ne peuvent pas remplacer le jugement humain. Se reposer uniquement sur des scanners automatiques de vulnérabilité rapportera de nombreux faux positifs et une vue limitée des problèmes présents dans le système.
Des vulnérabilités ont été trouvées dans tous les principaux [[systèmes d'exploitation]], en premier lieu sur [[Microsoft Windows|Windows]], mais aussi sur [[Mac OS]], différentes versions d'[[Unix]] et [[Linux]], [[OpenVMS]], et d'autres. La seule manière de réduire la probabilité qu'une vulnérabilité puisse être exploitée est de rester constamment vigilant, en développant la maintenance système (par exemple en appliquant les patchs de sécurité), de déployer une architecture sécurisée (par exemple en plaçant judicieusement des [[pare-feu]]x), de [[contrôle d'accès|contrôler les accès]], et de mettre en place des [[audit de sécurité|audits de sécurité]] (à la fois pendant le développement et pendant le cycle de vie).
== Exploitation malicieuse ==
Les failles de sécurité deviennent particulièrement intéressantes lorsqu'un programme contenant une de ces vulnérabilités est lancé avec des [[setuid|privilèges spéciaux]], qu'il permet une [[authentification]] sur un système, ou bien encore lorsqu'il fournit un accès à des [[sécurité des données|données sensibles]].
Les [[pirate informatique|pirates]], grâce à leur connaissance et à des outils appropriés, peuvent prendre le contrôle de machines vulnérables. Les failles de sécurité découvertes sont généralement colmatées au plus vite à l'aide d'un [[patch]] afin d'empêcher des prises de contrôles intempestives ; cependant dans bien des cas, des machines restent vulnérables à des failles anciennes, les différents correctifs n'ayant pas été appliqués.
Certains [[logiciel malveillant|logiciels malveillants]] utilisent des vulnérabilités pour infecter un système, se propager sur un réseau, …
Une fois la faille exploitée, cela provoque généralement un [[déni de service]] du système (programme informatique, noyau du système d'exploitation, …), un accès à un [[système d'information|système]] ou à des informations sensibles, voire une [[élévation des privilèges]] d'un utilisateur.
On parle de '''vulnérabilité distante''' lorsque la vulnérabilité se situe dans un logiciel constituant un service réseau (par exemple un serveur web) et qu'elle peut être exploitée par un attaquant distant, qui ne dispose pas d'un compte local. On parle de '''vulnérabilité locale''' lorsque la vulnérabilité n'est exploitable que par un utilisateur disposant d'un compte local. Les vulnérabilités distantes peuvent être utilisées par des [[pirate informatique|pirates]] pour obtenir un accès sur un système. Les vulnérabilités locales peuvent être utilisées par un utilisateur mal-intentionné, qui possède un compte, pour effectuer une [[élévation des privilèges]], ou bien par un attaquant distant pour augmenter ses privilèges, après l'exploitation d'une vulnérabilité distante.
== Exemples de vulnérabilités ==
Les vulnérabilités ci-dessous font parties des plus connues :
* [[Dépassement de tampon]]
* [[Injection SQL]]
* [[Cross site scripting]]
== Annexes ==
=== Voir aussi ===
* [[Exploit (informatique)]]
* [[Sécurité des systèmes d'information]]
* [[sécurité de l'information]]
* [[Common Vulnerabilities and Exposures]] (CVE)
* [[Packet Storm]]
* [[Securityfocus]]
* [[Centre d'expertise gouvernemental de réponse et de traitement des attaques informatiques]]
=== Liens externes ===
* {{fr}}{{en}} [http://www.frsirt.com FrSIRT] : Portail francophone et anglophone dédié à la sécurité informatique et aux vulnérabilités
* {{de}}{{en}} [http://secunia.com/ Secunia.com] : Portail anglophone dédié principalement aux failles de sécurité
* {{fr}} [http://www.vulnerabilite.com/ Vulnerabilite.com] : Portail francophone dédié à la sécurité informatique
* {{fr}} [http://www.secuser.com/ Secuser.com] : Portail francophone dédié à la sécurité informatique
* {{fr}} [http://info.corroy.org/ info.corroy.org] : Une vue d'ensemble de l'actualité de la sécurité informatique
* {{fr}}{{en}} [http://vigilance.aql.fr/ Vigil@nce] : Veille technique sur les vulnérabilités et leurs solutions
* {{en}} [http://www.netcraft.com Netcraft]
* {{en}} [http://www.techzoom.net/risk TechZoom] : Empirical analysis of vulnerability disclosure dates for 14'000 vulnerabilites since 1996
* {{en}} [http://www.osvdb.org/ OSVDB] : Open Source Vulnerability Database homepage
* {{en}} [http://samate.nist.gov/ NIST SAMATE] : Software Assurance Metrics and Tool Evaluation project
* {{en}} [http://www.microsoft.com/technet/archive/community/columns/security/essays/vulnrbl.mspx Microsoft] : The Microsoft Security Response Center definition
[[Catégorie:Sécurité informatique]]
[[Catégorie:Exploit (informatique)]]
{{Portail sécurité informatique}}
[[ca:Vulnerabilitat (informàtica)]]
[[de:Sicherheitslücke]]
[[en:Vulnerability (computing)]]
[[es:Agujero de seguridad]]
[[fi:Tietoturva-aukko]]
[[ja:セキュリティホール]]
[[pt:Vulnerabilidade (computação)]]
[[ru:Уязвимость (компьютерная безопасность)]]
[[th:ช่องโหว่ของระบบ]]
[[uk:Уразливість]]
[[zh:计算机安全隐患]]