← Tornar als articles
Notícies· 5 min de lectura· David Carrero Fernández-Baillo

OpenBSD i la cultura de la seguretat: el sistema obsessionat amb el codi correcte

Concepte de seguretat informatica: codi font i un cadenat simbolitzant la cultura de seguretat d'OpenBSD
Foto: Laura Gigch · Pexels

Entre els sistemes operatius lliures hi ha projectes enormes i projectes influents, i poques vegades coincideixen. OpenBSD n’és l’exemple més clar: una comunitat petita, sense grans patrocinadors ni campanyes de màrqueting, que tot i això ha canviat la manera com tot internet entén la seguretat. Si aquesta nit et connectes per SSH a un servidor, estàs fent servir codi que va néixer a OpenBSD. Et conto com un projecte tan auster va acabar marcant el rumb de la indústria.

Un naixement marcat pel conflicte

Theo de Raadt, fundador del projecte OpenBSD
Theo de Raadt, fundador d'OpenBSD, que el 1995 va fer un fork de NetBSD per imposar el seu propi estandard de rigor. · Imagen: FAndrey / CC BY 2.0 · Wikimedia Commons

OpenBSD va néixer l’octubre de 1995, quan Theo de Raadt va decidir crear un fork de NetBSD. De Raadt havia estat membre fundador de NetBSD, però a finals de 1994 li van demanar que deixés l’equip principal després d’una sèrie de desavinences sobre el to i l’estil de treball. En lloc de retirar-se, va agafar el codi de NetBSD i va engegar un projecte nou amb una idea fixa: si controlava el seu propi arbre de fonts, podria imposar un estàndard de qualitat i rigor que ningú no li discutiria.

Aquest origen explica bona part del caràcter d’OpenBSD. És un projecte exigent, de vegades aspre, però coherent fins a l’extrem. El que l’obsessiona no és la popularitat ni el nombre de paquets, sinó que cada línia de codi estigui ben escrita.

Auditories de codi i “secure by default”

El segell distintiu d’OpenBSD és l’auditoria sistemàtica del codi. Durant anys l’equip ha pentinat l’arbre de fonts buscant errors clàssics (desbordaments de memòria intermèdia, condicions de cursa, gestió descurada de la memòria) i corregint-los sense esperar que algú els explotés. El punt de partida és senzill: un error de seguretat és, abans que res, un error de programació.

A aquesta pràctica s’hi afegeix el principi de “secure by default”. Una instal·lació acabada de fer d’OpenBSD arrenca amb gairebé tots els serveis no essencials desactivats. No hi ha ports oberts esperant una connexió que ningú no ha demanat. El sistema és segur perquè, senzillament, no fa res que no li hagis ordenat.

D’aquí surt un dels lemes més cèlebres del projecte: “Només dos forats remots a la instal·lació per defecte, en molt de temps”. L’eslògan ha anat canviant amb els anys. El 2002 parlava d’un sol forat en gairebé sis anys, i es va actualitzar el 2007 després d’una vulnerabilitat de xarxa. Però la idea de fons es manté: en la seva configuració bàsica, OpenBSD ha estat extraordinàriament difícil de comprometre de manera remota.

OpenSSH, LibreSSL i altres eines que fas servir sense saber-ho

OpenBSD arrencant el servidor SSH a la consola
OpenBSD iniciant el seu servidor SSH: OpenSSH va neixer aqui el 1999 i avui es l'estandard per administrar servidors en remot. · Imagen: Hpott / CC BY-SA 4.0 · Wikimedia Commons

La influència d’OpenBSD es mesura millor pel que ha regalat a la resta del món. El 1999 l’equip va agafar l’última versió lliure del codi d’SSH i va crear OpenSSH, passant-lo per la mateixa auditoria que la resta del sistema. Avui OpenSSH és l’estàndard absolut per administrar servidors de manera remota: és en gairebé qualsevol màquina Linux, a Ubuntu, a Debian, a macOS i fins i tot a Windows.

L’abril de 2014, després de conèixer-se el desastre de Heartbleed, els desenvolupadors d’OpenBSD van forkejar OpenSSL per crear LibreSSL. Van treure APIs obsoletes, van retallar més de cent mil línies de codi i van posar al davant la llegibilitat i l’auditabilitat. De Raadt no va tenir cap problema a descriure el disseny d’OpenSSL com a senzillament “trencat”. El projecte també hi ha al darrere d’OpenBGPD, una implementació neta del protocol d’enrutament BGP, entre moltes altres eines de xarxa.

Mitigacions que protegeixen fins i tot el codi amb errors

OpenBSD no es conforma a escriure codi correcte: dona per fet que sempre s’escaparà algun error i dissenya el sistema per limitar-ne el dany. El 2003 la versió 3.4 va introduir W^X, un esquema segons el qual una pàgina de memòria pot ser escrivible o executable, però mai les dues coses alhora. Això dificulta enormement els atacs per desbordament de memòria.

Més tard van arribar dues mitigacions especialment elegants. Pledge, disponible des de la versió 5.9 (2016), permet que un programa declari voluntàriament quines crides al sistema necessita; si intenta qualsevol altra cosa, el nucli el mata. Unveil, presentada a la 6.4 (2018), restringeix quines parts del sistema de fitxers pot veure un procés. Juntes fan que un programa compromès sigui gairebé inútil per a un atacant: encara que aconsegueixi executar codi, no pot tocar res per a què no estigués autoritzat. I gairebé tots els binaris que venen amb OpenBSD ja arriben blindats amb pledge.

Per què importa una distribució tan petita

OpenBSD mai no competirà en nombre d’usuaris amb Fedora, Arch o les grans distribucions d’escriptori. Tampoc és aquest el seu objectiu. El seu impacte és indirecte i profund: les idees que neixen aquí acaben adoptades en altres sistemes, les eines que s’escriuen aquí acaben a tot arreu, i el llistó de qualitat que imposa obliga la resta a prendre’s la seguretat més seriosament.

En un sector que sovint premia el ràpid per damunt del correcte, OpenBSD defensa just el contrari amb una tossuderia gairebé artesanal. Per això, encara que pocs l’instal·lin al portàtil, la seva cultura de la seguretat continua protegint milions de persones que ni tan sols saben que existeix. Si t’interessa el món BSD, fes un cop d’ull també a FreeBSD i NetBSD: tres germans amb filosofies diferents i un origen comú.