run0, el reemplaçament transparent a sudo en systemd

run0: un reemplaçament segur per a sudo

El desenvolupament de la propera versió de systemd 256 està en curs i actualment és a prop del 80% i un dels canvis candidats a ser presentats en aquest llançament ve la mà del mateix creador de systemd «Lennart Pottering» qui, mitjançant una publicació en mastodon, va donar a conèixer la introducció nova utilitat anomenada «run0».

aquesta eina es presenta com un reemplaçament més segur de sudo i funciona com un complement de l'ordre systemd-run. L'avantatge clau és que elimina la necessitat d'utilitzar un fitxer executable amb l'indicador SUID, cosa que pot ser arriscada. S'esmenta que run0 està dissenyat per executar processos amb els identificadors d'altres usuaris de manera més segura.

Poettering argumenta que la introducció d'un substitut de sudo, és perquè el problema central de sudo radica en la seva naturalesa SUID, cosa que potencialment compromet la seguretat. En resposta a això, a partir de systemd 256 es busca operar amb privilegis de manera independent de la intervenció de codis no privilegiats. L'ús de l'indicador SUID en sudo per canviar l'identificador comporta riscos addicionals perquè el procés SUID hereta un context d'execució que inclou moltes propietats controlades per un usuari sense privilegis.

Els processos SUID són conceptes estranys: són invocats per codi sense privilegis i hereten el context d'execució previst i controlat per codi sense privilegis. Per context d'execució em refereixo a la gran quantitat de propietats que té un procés a Linux avui dia, des de variables d'entorn, propietats de programació de processos, assignacions de cgroup, contextos de seguretat, descriptors de fitxers passats, etc., etc .

aquestes propietats poden incloure variables d'entorn, descriptors de fitxers, opcions del programador i enllaços de grups. Tot i que algunes d'aquestes propietats són automàticament eliminades pel nucli per a processos SUID, i altres són eliminades per l'aplicació mateixa, encara es troben vulnerabilitats en programes SUID complexos com a sudo a causa d'un maneig descuidat de dades externes influenciades per usuaris sense privilegis .

En contrast, run0 no utilitza SUID i, al seu lloc, sol·licita a l'administrador del sistema que iniciï un shell o procés amb l'ID d'usuari específic, posterior a això crea un nou pseudoterminal (PTY) i maneja la transferència de dades entre aquest i el terminal actual (TTY). Aquest comportament recorda més l'execució mitjançant ssh que no pas el sue tradicional. El procés privilegiat s'executa en un context aïllat generat pel procés PID 1, en lloc del procés de l'usuari, cosa que significa que no hereta les propietats de l'entorn de l'usuari, excepte per la variable $TERM que es reenvia. A més, el reenviament es controla mitjançant una llista de propietats explícitament permeses, seguint un enfocament de llista blanca en lloc d'una llista negra.

Polkit s'encarrega d'autoritzar i determinar les capacitats de l'usuari en run0, mentre que el llenguatge clàssic de regles (/etc/sudoers) utilitzat per sudo no és compatible amb aquesta eina. La funcionalitat per executar programes amb altres privilegis està integrada en systemd-run, i l'ordre run0 es crea com un enllaç simbòlic a systemd-run, cosa que proporciona una interfície de línia d'ordre similar a sudo quan s'utilitza.

Però ja n'hi ha prou de tota aquesta xerrada sobre seguretat. L'eina també és molt més divertida d'usar que suo. Per exemple, per defecte tenyirà el fons del teu terminal en un to vermellós mentre estiguis operant amb privilegis elevats. Se suposa que això actua com un recordatori amistós que encara no ha renunciat als privilegis i marca la sortida de totes les ordres que es van executar amb els privilegis adequats

Una característica addicional de run0 és la indicació visual que s'està treballant amb privilegis elevats. Això s'aconsegueix configurant un fons vermellós a la terminal i afegint un punt vermell al títol de la finestra. Després de finalitzar lexecució amb privilegis elevats, el punt desapareix i el fons torna a la normalitat. A més, run0 admet totes les opcions de "systemd-run", com el paràmetre "--property", que permet establir configuracions arbitràries per als serveis systemd, com per exemple «CPUWeight=200 MemoryMax=2G IPAccounting=yes".

Si estàs interessat a poder conèixer-ne més, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.