SELinux es el acrónimo de Security-Enhanced Linux (en español, Linux con seguridad mejorada). Linux es bá­si­ca­me­n­te un sistema operativo como Windows, Android o iOS, con la di­fe­re­n­cia de que no lo de­sa­rro­lla una única empresa, ya que el software se diseñó como proyecto de código abierto desde sus inicios. El código fuente del núcleo de Linux, también llamado kernel de Linux, está a di­s­po­si­ción de todos los de­sa­rro­lla­do­res, tanto para fines sin ánimo de lucro como co­me­r­cia­les. Basándose en el núcleo de Linux, se han de­sa­rro­lla­do varias versiones del sistema operativo, conocidas co­mú­n­me­n­te como di­s­tri­bu­cio­nes. Algunas de las di­s­tri­bu­cio­nes de Linux más famosas son Ubuntu, Debian y Fedora.

¿Qué significa Security-Enhanced?

El código fuente del núcleo de Linux está en constante de­sa­rro­llo gracias a empresas, vo­lu­n­ta­rios y or­ga­ni­za­cio­nes sin ánimo de lucro. Security-Enhanced Linux (en español, Linux con seguridad mejorada) es una de estas ex­te­n­sio­nes del núcleo de Linux y está di­s­po­ni­ble como módulo de seguridad. SELinux ha sido un co­m­po­ne­n­te oficial del kernel de Linux desde 2003. Algunas di­s­tri­bu­cio­nes de Linux incluyen SELinux de serie, aunque este módulo puede des­ha­bi­li­tar­se fá­ci­l­me­n­te. SELinux ayuda a los ad­mi­ni­s­tra­do­res a controlar todos los procesos del sistema de manera estricta, blo­quea­n­do los que no se co­n­si­de­ren ne­ce­sa­rios. De esta manera, con SELinux se reduce en gran medida el riesgo que comportan las brechas de seguridad de los programas del usuario.

Por lo general, es co­n­ve­nie­n­te re­s­tri­n­gir los derechos de acceso de todos los programas, incluso cuando son de confianza. De este modo, si un tercero secuestra una apli­ca­ción, los daños oca­sio­na­dos pueden reducirse co­n­si­de­ra­ble­me­n­te. En cambio, si un programa infectado por malware puede acceder a todos los procesos y archivos del sistema, el peligro puede ser mayor. SELinux limita el acceso y, por lo tanto, también el alcance de los posibles daños.

Controlar es­tri­c­ta­me­n­te el acceso al sistema operativo

SELinux ofrece una ar­qui­te­c­tu­ra de seguridad especial basada en los pri­n­ci­pios del control de acceso obli­ga­to­rio (o MAC, del inglés mandatory access control). A di­fe­re­n­cia del núcleo co­n­ve­n­cio­nal de Linux, SELinux reduce al mínimo los accesos a los procesos y archivos del sistema operativo. Mediante estrictos métodos de control de acceso y las medidas de seguridad co­rre­s­po­n­die­n­tes, el módulo tiene por objetivo ga­ra­n­ti­zar la co­n­fi­de­n­cia­li­dad y la in­te­gri­dad de los datos. Asimismo, con SELinux, el sistema operativo y los programas del usuario quedan cla­ra­me­n­te de­li­mi­ta­dos.

¿Cómo se re­s­tri­n­gen los derechos de acceso con SELinux?

El sistema Linux co­n­ve­n­cio­nal utiliza el control de acceso di­s­cre­cio­nal (DAC, del inglés di­s­cre­tio­na­ry access control) para controlar el acceso. Por lo general, con este tipo de control, todos los usuarios o apli­ca­cio­nes que tengan los derechos adecuados pueden acceder sin re­s­tri­c­cio­nes a los archivos y procesos del sistema operativo. En cambio, con el control de acceso obli­ga­to­rio (MAC) utilizado por SELinux, el ad­mi­ni­s­tra­dor puede definir las medidas de seguridad con precisión y es­ta­ble­cer unos atributos adi­cio­na­les que indican bajo qué co­n­di­cio­nes y en qué si­tua­cio­nes un titular de derechos puede acceder a ciertos procesos o archivos del sistema operativo. Si no se dan estas co­n­di­cio­nes o re­la­cio­nes (es decir, atributos), se deniega el acceso.

En SELinux se emplean varias etiquetas para regular los accesos:

  • User
  • Role
  • Type
  • Level

Estas etiquetas pueden asignarse a cualquier proceso o archivo y, a co­n­ti­nua­ción, in­co­r­po­rar­se a las medidas es­ta­ble­ci­das. Por ejemplo, es posible que una apli­ca­ción solo pueda acceder a las carpetas que tengan una etiqueta concreta. La revisión de las medidas se conoce como en­fo­r­ce­me­nt en SELinux.

Ventajas e in­co­n­ve­nie­n­tes de SELinux

SELinux dificulta o evita el uso indebido de los derechos de usuario, como puede ocurrir cuando un problema presenta brechas de seguridad, por lo que protege la in­te­gri­dad del sistema operativo. Los di­s­tri­bui­do­res de Linux ofrecen el módulo SELinux con di­fe­re­n­tes paquetes de políticas y las medidas de seguridad co­rre­s­po­n­die­n­tes, lo que facilita la co­n­fi­gu­ra­ción de la capa de seguridad. Además, los ad­mi­ni­s­tra­do­res au­to­ri­za­dos pueden pe­r­so­na­li­zar las medidas de seguridad.

Como hemos visto, SELinux permite a los ad­mi­ni­s­tra­do­res controlar mucho mejor los procesos del sistema. Sin embargo, cuando se trata de ayudar a resolver problemas, el programa se queda un poco corto. Por ejemplo, al bloquear algún intento de acceso, SELinux emite un aviso de error que puede ser muy impreciso y que aporta escasa in­fo­r­ma­ción para so­lu­cio­nar rá­pi­da­me­n­te el problema en cuestión. Además, SELinux es un módulo re­la­ti­va­me­n­te complejo. Para muchos ad­mi­ni­s­tra­do­res, gestionar las medidas de seguridad y es­ta­ble­cer los atributos resulta demasiado co­m­pli­ca­do o requiere demasiado esfuerzo. También hay que tener en cuenta que SELinux reduce li­ge­ra­me­n­te el re­n­di­mie­n­to del sistema operativo.

En resumen

SELinux es una he­rra­mie­n­ta muy eficaz para ga­ra­n­ti­zar la seguridad, pero también requiere horas de trabajo: este software solo resulta útil si el usuario no teme en­fre­n­tar­se a la co­m­ple­ji­dad de la co­n­fi­gu­ra­ción. Si el sistema se configura solo a medias, las po­te­n­cia­les ventajas se reducen a cero. En todo caso, se re­co­mie­n­da uti­li­zar­lo en los entornos pro­fe­sio­na­les donde se trabaja con datos co­n­fi­de­n­cia­les.

¿Cómo surgió SELinux?

SELinux fue de­sa­rro­lla­do pri­n­ci­pa­l­me­n­te por la agencia de in­te­li­ge­n­cia es­ta­dou­ni­de­n­se NSA y el di­s­tri­bui­dor de Linux Red Hat. Linux 4, de Red Hat En­te­r­pri­se, y Fedora, la di­s­tri­bu­ción de Linux co­m­pa­ti­ble con Red Hat, fueron los primeros sistemas ope­ra­ti­vos to­ta­l­me­n­te co­m­pa­ti­bles con SELinux. Además de Red Hat y Fedora, también Gentoo Hardened Linux es co­m­pa­ti­ble con SELinux, al menos re­la­ti­va­me­n­te. Una al­te­r­na­ti­va a SELinux es el módulo de seguridad AppArmor, co­m­pa­ti­ble sobre todo con di­s­tri­bu­cio­nes como openSUSE o con pla­ta­fo­r­mas basadas en Debian.

Ir al menú principal