Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
OpenBSD
OpenBSD
Logo d'OpenBSD avec Puffy, mascotte du système d'exploitation.
Famille BSD
Type de noyau Monolithique
Plates-formes AMD64, Alpha, i386, MIPS, 68000, PowerPC, Sparc, Sparc64, VAX, Zaurus et autres[1]
Entreprise/
Développeur
The OpenBSD (OpenBSD est un système d'exploitation libre de type Unix, dérivé de 4.4BSD. Créé en 1994 par Theo de Raadt, OpenBSD est issu de la séparation avec NetBSD, le plus ancien des trois autres principaux...) Project
Licence BSD
Dernière version stable 4.2
Site Web (Un site Web est un ensemble de pages Web hyperliées entre elles et mises en ligne à une adresse Web. On dit aussi site Internet par métonymie, le World Wide Web reposant sur Internet.) www.openbsd.org

OpenBSD est un système d'exploitation libre de type Unix, dérivé de 4.4BSD. Créé en 1994 par Theo de Raadt, OpenBSD est issu de la séparation avec NetBSD (NetBSD est un système d'exploitation libre de type unix BSD dérivé de 386BSD et de Net/2 (4.3BSD-Lite).), le plus ancien des trois autres principaux systèmes d'exploitation de la famille des BSD aujourd'hui en activité. Le projet (Un projet est un engagement irréversible de résultat incertain, non reproductible a priori à l’identique, nécessitant le...) OpenBSD est réputé pour son intransigeance sur la liberté du logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un appareil informatique. Y sont inclus les instructions de traitement, regroupées sous forme de programmes,...) et du code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un langage de programmation informatique de haut niveau, compréhensible par un être humain...), la qualité de sa documentation, et l'importance accordée à la sécurité et la cryptographie (La cryptographie est une des disciplines de la cryptologie s'attachant à protéger des messages (assurant confidentialité, authenticité et...) intégrée.

OpenBSD inclut un certain nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de mesures de sécurité absentes ou optionnelles dans d'autres systèmes d'exploitation. Ses développeurs ont pour tradition de réaliser des audits de code à la recherche (La recherche scientifique désigne en premier lieu l’ensemble des actions entreprises en vue de produire et de développer les connaissances scientifiques. Par extension métonymique,...) de problèmes de sécurité et de bogues. Le projet suit des politiques strictes sur les licences et préfère la licence open source BSD et ses variantes : dans le passé, ceci a conduit à un audit exhaustif des licences et des remplacements, voire des suppressions de codes sous licences considérées comme moins acceptables.

À l'instar de la plupart des systèmes d'exploitation basés sur BSD, le noyau d'OpenBSD et ses programmes utilisateurs, tels que le shell et les outils habituels comme cat et ps, sont développés dans un seul et même dépôt CVS. Les logiciels tiers sont offerts en paquets binaires, ou peuvent être compilés depuis leurs sources grâce à la collection des ports.

OpenBSD fonctionne sur 16 plates-formes matérielles différentes, notamment alpha, amd64, armish, hp300 (HP 9000 séries 300 et 400), hppa, i386, luna88k, mac68k, macppc (Power Macintosh), mvme68k, mvme88k, sgi, sparc, sparc64 (machines UltraSPARC), vax, zaurus. L'architecture (L’architecture peut se définir comme l’art de bâtir des édifices.) cats ne sera plus supportée après la version 4.0. OpenBSD supporte également l'émulation des binaires SVR4 (Solaris), FreeBSD (FreeBSD est un système d'exploitation UNIX libre. Le nom vient de l'association d'une part de free qui signifie à la fois libre (liberté) et gratuit dans l'anglais...), Linux (Au sens strict, Linux est le nom du noyau de système d'exploitation libre, multitâche, multiplate-forme et multi-utilisateur de type UNIX créé par...), BSD/OS, SunOS et HP-UX (HP-UX est un système d'exploitation propriétaire de type Unix (System V et BSD), développé par Hewlett-Packard, utilisé sur des serveurs et...).

Le projet est coordonné par Theo de Raadt de sa maison (Une maison est un bâtiment de taille moyenne destiné à l'habitation d'une famille, voire de plusieurs, sans être considérée comme un immeuble collectif.) à Calgary, Alberta, Canada, et la mascotte du projet est Puffy, un poisson-lune.

Histoire

Theo de Raadt était le cofondateur de NetBSD, et membre de l'équipe de développement. En 1994, l'équipe lui demanda de démissionner et son accès au CVS fut révoqué. Les raisons de cette éviction restent incertaines à ce jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la période entre deux nuits, pendant...), mais plusieurs autres membres de l'équipe de NetBSD ont évoqué des problèmes de relations avec de Raadt. Il lui était notamment reproché d'être désagréable avec les utilisateurs en employant un ton agressif sur les listes de discussion de NetBSD.

La personnalité de Theo de Raadt

Aux dires de nombreuses autres personnalités du logiciel libre (Un logiciel libre est un logiciel dont l'utilisation, l'étude, la modification, la duplication et la diffusion sont universellement autorisées sans contrepartie financière. Les droits correspondant...), dont Linus Torvalds (Linus Benedict Torvalds, né le 28 décembre 1969 à Helsinki en Finlande, est un informaticien finlandais. Il est connu pour avoir créé...), celle de Theo de Raadt est réputée comme étant franche et difficile. Ses prises de positions tranchées sont source de conflits, et sont parfois considérées comme blessantes. De Raadt déclarait ceci à propos du système d'exploitation GNU/Linux dans une interview au journal Forbes : « C'est terrible (Le Terrible était un vaisseau de ligne de 2e rang et de 78 canons, dessiné par François Coulomb, et lancé à Toulon en 1739. Il était long de 152 pieds français, large de 44,4 et profond de...) [...] Tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) le monde (Le mot monde peut désigner :) l'utilise, et ils ne réalisent pas à quel point (Graphie) il est mauvais. Et les utilisateurs de Linux s'en contenteront et l'étofferont plutôt que de prendre du recul et de dire "C'est n'importe quoi et nous devrions y remédier". » [2]

Bien que sa personnalité laisse rarement indifférent, la plupart des commentateurs s'accordent à reconnaître en Theo de Raadt un programmeur (En informatique, un développeur (ou programmeur) est un informaticien qui réalise du logiciel en créant des algorithmes et en les mettant en œuvre dans un...) talentueux et un gourou de la sécurité. Sa spontanéité, que certains apprécient, s'est illustrée dans ce conflit avec l'équipe de NetBSD, dont la plupart des membres gardent encore aujourd'hui le silence sur cet épisode.[3] À l'inverse (En mathématiques, l'inverse d'un élément x d'un ensemble muni d'une loi de composition interne · notée multiplicativement, est un élément y tel que...), Theo de Raadt répondit à toutes les questions qui lui furent posées, et mit à disposition les courriels échangés et les logs des salons de discussion avec l'équipe de NetBSD.

Une démission contrainte

Theo de Raadt ne fut pas exclu d'emblée du projet NetBSD. Le dépôt CVS de ce projet nécessite différents niveaux de droits en lecture et en écriture. En tant que cofondateur et deuxième contributeur le plus actif, de Raadt disposait d'un accès en lecture et écriture sur la base du système. L'équipe de NetBSD lui retira alors la possibilité d'envoyer directement des modifications dans le dépôt, et de rendre ces changements permanents. De Raadt était alors contraint d'envoyer chacune de ses contributions par courriel à un membre de l'équipe pour examen.

De Raadt considéra cette mesure comme abusive et essaya vainement de recouvrer un plein accès au dépôt CVS de NetBSD. L'équipe de développement voulant s'assurer que ses contributions seraient « positives », elle proposa à de Raadt plusieurs solutions parmi lesquelles une lettre à signer, résumant les conditions, les droits et les devoirs de de Raadt. Après plusieurs mois (Le mois (Du lat. mensis «mois», et anciennement au plur. «menstrues») est une période de temps arbitraire.) de disputes sur les listes de discussion du projet, de Raadt démissionna officiellement et créa en 1994 le système d'exploitation OpenBSD d'après la version 1.0 de NetBSD, comme l'en autorisait la licence.

La création d'OpenBSD

Après la création d'OpenBSD, chaque projet essaya d'attirer à lui des développeurs. Deux camps quasi hermétiques se formèrent rapidement, et plusieurs développeurs de NetBSD suivirent de Raadt. Ce dernier s'aperçut qu'un certain nombre de courriels et de lettres publiées sur son site web personnel avaient disparu. Bien qu'il refusa formellement d'incriminer des membres de l'équipe de NetBSD, Theo de Raadt décida d'examiner la sécurité de NetBSD, qu'il jugea déficiente.

Peu après la création d'OpenBSD, Theo de Raadt fut contacté par Secure Networks inc. (ou SNI), une société locale de logiciels de sécurité qui développait un outil (Un outil est un objet finalisé utilisé par un être vivant dans le but d'augmenter son efficacité naturelle dans l'action. Cette augmentation se traduit par la simplification des actions...) d'audit de la sécurité réseau nommé Ballista (renommé en Cybercop Scanner (Un scanneur, ou numériseur à balayage est l'équivalent du terme anglais scanner, qui vient du verbe anglais to scan, signifiant...) après le rachat de SNI par Network Associates), destiné à trouver et à essayer d'exploiter les possibles failles de sécurité d'un logiciel. Ceci coïncida avec l'intérêt propre de de Raadt dans la sécurité : les deux parties décidèrent ainsi de coopérer, dans une relation particulièrement bénéfique qui conduisit à la publication d'OpenBSD 2.3.

La sécurité et l'audit du code

Cette coopération permit également au projet de se concentrer sur un point précis : les développeurs OpenBSD devraient essayer de faire ce qui est correct, propre et sécurisé, même au détriment de la facilité d'utilisation, de la vitesse (On distingue :) ou des fonctionnalités. Les failles d'OpenBSD devenant plus difficilement détectables et exploitables, l'entreprise de sécurité statua que l'audit de code était devenu trop difficile et peu rentable. Après des années de coopération, les deux parties s'accordèrent à penser que leurs objectifs communs avaient été atteints et se séparèrent.

L'argument du faible nombre de failles exploitables à distance

Jusqu'en juin 2002, le site web d'OpenBSD affichait le slogan (Un slogan est une phrase facilement énoncée et retenue, qui exprime bien une idée qu'on veut diffuser (fonction de recrutement) ou autour de laquelle on veut...) suivant :

« Aucune faille de sécurité dans l'installation par défaut en près de 6 ans. »

En juin 2002, Mark Dow de la société Internet (Internet est le réseau informatique mondial qui rend accessibles au public des services variés comme le courrier électronique, la messagerie instantanée et le World Wide Web, en utilisant le protocole de...) Security Systems découvrit une faille dans le code d'OpenSSH qui implémentait l'authentification (L'authentification est la procédure qui consiste, pour un système informatique, à vérifier l'identité d'une entité (personne, ordinateur...), afin d'autoriser l'accès de cette entité...) par question. Ce fut la première vulnérabilité découverte dans l'installation par défaut d'OpenBSD qui permet à un attaquant d'accéder à distance au compte superutilisateur. L'usage (L’usage est l'action de se servir de quelque chose.) répandu d'OpenSSH à ce moment était à l'origine de la gravité de la faille, qui affectait un nombre considérable d'autres systèmes d'exploitation. Ce problème nécessita l'ajustement du slogan du site web d'OpenBSD :

« Une seule faille distante dans l'installation par défaut en plus de 10 ans. »

Cette affirmation a été critiquée du fait du peu de logiciels activés dans l'installation par défaut d'OpenBSD, et du fait également que des failles distantes avaient été découvertes après la publication d'une version. Toutefois, le projet insiste sur le fait que le slogan fait référence à l'installation par défaut, et qu'il est donc correct à ce niveau. Une des idées fondamentales sous-jacentes à OpenBSD est de concevoir un système simple, propre et sécurisé par défaut. Par exemple, les réglages minimaux par défaut correspondent à la pratique standard en sécurité informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement automatique de l'information par des machines telles que...) qui consiste à activer aussi peu de services que possible sur les systèmes en production, et le projet pratique des audits de codes considérés comme étant des éléments importants de la sécurité d'un système.

En mars 2007, la découverte d'une nouvelle faille dans OpenBSD[4], se situant dans la pile IPV6 (IPv6 (Internet protocol version 6) est le successeur du protocole IPv4 ; mais IPv4 est encore utilisé presque exclusivement sur Internet.), nécessita le remplacement du slogan par :

«  Uniquement deux vulnérabilités à distance dans l'installation par défaut, durant plus de 10 ans ! »

Les principales fonctionnalités de sécurité

OpenBSD inclut un grand nombre de fonctionnalités spécifiques destinées à améliorer la sécurité, notamment :

  • des modifications des API et des toolchains, tels que les fonctions strlcpy et strlcat, et une vérification des static bounds ;
  • des techniques de protection de la mémoire pour empêcher les accès invalides, tels que ProPolice, StackGhost, et des fonctionnalités de protection des pages mémoires W^X (W xor X), et des modifications de malloc ;
  • des fonctionnalités de cryptographie et de génération de nombres aléatoires, notamment par des améliorations de la couche réseau et l'ajout de l'algorithme Blowfish pour le chiffrage des mots de passe.

La gestion des privilèges

Pour réduire le risque d'une vulnérabilité ou d'une mauvaise configuration permettant l'usurpation de privilèges, certains programmes ont été écrits ou adaptés pour utiliser la séparation des privilèges, la révocation des privilèges ou la mise en cage.

La séparation des privilèges est une technique, pionnière sur OpenBSD et inspirée du principe du moindre privilège, dans lequel un programme est divisé en deux ou plusieurs parties, dont l'une effectue les opérations privilégiées, et l'autre — presque toujours le reste du code — fonctionne sans privilège. La révocation des privilèges est similaire et implique qu'un programme réalise toutes les opérations nécessaires avec les privilèges avec lesquels il a été lancé, puis qu'il abandonne ces privilèges. La mise en cage implique de restreindre l'environnement (L'environnement est tout ce qui nous entoure. C'est l'ensemble des éléments naturels et artificiels au sein duquel se déroule la vie...) d'exécution d'un programme à une partie du système de fichiers, l'interdisant ainsi d'accéder à des zones qui contiennent des fichiers systèmes ou privés.

Les développeurs ont appliqué ces fonctionnalités aux versions OpenBSD des applications communes, notamment tcpdump et le serveur web Apache, lequel n'est qu'une version 1.3 lourdement modifiée en raison de problèmes de licences avec la série Apache 2.

Audits de code

Le projet suit une politique d'audit permanent du code à la recherche de problèmes de sécurité, un travail que le développeur Marc Espie décrit comme « jamais terminé […] plus une question de processus que de recherche d'un bogue spécifique. » Ce dernier a d'ailleurs produit une liste de plusieurs étapes typiques à suivre lorsqu'un bogue est détecté, notamment l'examen complet des sources à la recherche de problèmes identiques et similaires, « [en] essayant de déterminer si la documentation nécessite d'être amendée », et en enquêtant pour savoir « s'il est possible d'améliorer le compilateur pour produire des avertissements sur ce problème spécifique. » À l'instar de DragonFly BSD (DragonFlyBSD est un système d'exploitation de type BSD. Il résulte d'un fork de FreeBSD 4.8 mené par Matt Dillon, jugeant le nouveau système de...), OpenBSD est l'un des deux systèmes d'exploitation libres dont la politique est de rechercher du code C au format classique pre-ANSI, et de le convertir en son équivalent moderne ANSI. Ceci ne doit pas impliquer des changements de fonctionnalités et n'est réalisé qu'à des fins de lisibilité et de cohérence. Un standard de style, le Kernel Normal Form, qui dicte quelle doit être la forme du code pour faciliter sa maintenance et sa compréhension, doit être appliqué à tout code avant qu'il ne puisse être inclus dans le système d'exploitation de base. Le code existant est sans cesse mis à jour pour correspondre à ces conventions de style.

Le nom

Le nom d'OpenBSD vient de l'aventure NetBSD de Theo de Raadt, en effet le CVS de NetBSD n'était pas accessible aux non-développeurs officiels (seul les releases étaient diffusées), pour son fork (Fork est un mot anglais signifiant « fourche », « fourchette ». Il vient du mot latin furca (qui est également à l'origine de plusieurs mots en...), Theo de Raadt mit en place un serveur CVS public (tout le monde pouvait accéder aux dernières sources du projet).

Mascotte

Comme les autres BSD (FreeBSD et NetBSD), OpenBSD a pour mascotte le BSD Daemon (Dans le domaine de l'informatique, le terme démon (ou daemon en anglais) désigne un type de programme. Le terme a été...) (alias Beastie). Il a aussi comme mascotte propre le Blowfish, alias Puffy. Cette dernière est une référence à l'algorithme cryptographique de Bruce Schneier du même nom (utilisé entre autres par OpenSSH) : son graphisme attrayant associé à l'aspect défensif impressionnant du Poisson-Lune hérissé de pointes (le fameux Fugu japonais) l'ont rendue très populaire. Chaque version d'OpenBSD est accompagnée d'un morceau de musique ainsi que d'une planche de bande dessinée mettant généralement en scène Puffy. Il existe depuis peu des dérivés du Blowfish dessinés façon manga, Sushi Fugu et Harisenbon.

État du projet

OpenBSD est actuellement en version 4.2 (depuis le 1er novembre 2007).

L'équipe réalise une version tous les 6 mois.

L'équipe de développement met en avant le fait que le système n'a été victime que de 2 failles de sécurité exploitables à distance dans l'installation par défaut en plus de dix ans.

Note : d'après le site undeadly.org, le projet OpenBSD subirait des pertes financières de l'ordre de 20 000 $ par an depuis 2004, soit un déficit s'élevant à près de 40 000 $.

Autres projets

L'équipe d'OpenBSD travaille également sur d'autres projets qui deviennent des pièces à part entière de l'OS et qui sont également portés (ou portables) sur d'autres systèmes d'exploitation. Parmi ces projets en cours, on peut citer :

  • OpenSSH : implémentation de SSH, le protocole de communication (Dans les réseaux informatiques et les télécommunications, un protocole de communication est une spécification de plusieurs...) sécurisée. C'est le projet le plus connu du groupe.
  • OpenBGPD : implémentation sécurisée du service de routage (En informatique, le terme routage désigne le mécanisme par lequel les données d'un équipement expéditeur sont acheminées jusqu'à leur destinataire en examinant les informations situées au...) BGP.
  • OpenNTPD : implémentation simplifiée et sécurisée du service de synchronisation horaire NTP.
  • OpenCVS : implémentation simplifiée et sécurisée du protocole CVS.
  • Le pare-feu et la suite logicielle Packet Filter (Packet Filter (ou PF) est le pare-feu logiciel et officiel de OpenBSD, écrit à l'origine par Daniel Hartmeier. C'est un Logiciel Libre gratuit.), qui sont maintenant intégrés dans la plupart des systèmes BSD.

En outre, diverses Interface de programmation (Une interface de programmation (Application Programming Interface ou API) permet de définir la manière dont un composant informatique peut communiquer avec un autre. C'est donc une...) sécurisées, comme strlcat(3), strlcpy(3), strtonum(3) ou encore arc4random(3) sont fournies. Ces API sont souvent reprises dans d'autres logiciels ou systèmes d'exploitation.

Notes et références

Source: Wikipédia publiée sous licence CC-BY-SA 3.0.

Vous pouvez soumettre une modification à cette définition sur cette page. La liste des auteurs de cet article est disponible ici.