Acabo de encontrar (acabo de rescatar de la cola de pendientes :-D) un artículo que explica los peligros de ejecutar comandos en un terminal Unix/Linux incluyendo información sensible en la línea de comandos (como, por ejemplo, claves de acceso). En este caso concreto se centra en el intérprete de SQL (sqlplus) de Oracle, pero no deja de ser aplicable a cualquier comando ejecutado en consola.

No he podido evitar recordar como hace unos doce o trece años teníamos que tener especial cuidado tras nuestros monitores de fósforo verde de los datos que los administradores del sistema podían ver sobre nuestra actividad en la red.

Para centrar un poco más la acción, debeis tener en cuenta que, por aquel entonces, el disponer en la facultad/escuela de una cuenta con acceso a internet era algo realmente difícil de conseguir. Aunque estuviera terminantemente prohibido compartir claves de acceso al sistema, era una práctica habitual. ¿Como puedes pretender que un futuro ingeniero no se interese por esa nueva cosa llamada internet? El acceso desde casa sólo podía hacerse a través de la línea telefónica, con un ISP que habitualmente no estaba en tu misma provincia. El precio era el equivalente a realizar una llamada telefónica interprovincial. No fue hasta que apareció Infovía que la red empezó a popularizarse en ambientes domésticos.

DEC-VT220-0a

En el caso de la escuela, nos conectábamos a través de terminales DEC. En concreto, recuerdo especialmente el VT220, supongo que porque era el que predominaba en la sala. Todos compartíamos un mismo servidor, donde teníamos nuestra cuenta en el sistema. El terminal era una “caja tonta” que se conectaba al servidor.

Como podeis suponer, el terminal tenía un monitor de fósforo verde y sin ningún tipo de capacidad gráfica. El acceso a internet era en modo texto y se hacía a través de distintas aplicaciones, en función de lo que quisieramos hacer. Así a bote pronto recuerdo:

  • Lynx: navegador web en modo texto. Posteriormente salió links, cuya principal característica es que ¡soporta frames! Todo un avance. La cantidad de páginas que no podíamos ver por culpa de los dichosos marcos.
  • Elm y, posteriormente mutt: gestor de correo.
  • Slrn: lector de news (para el acceso a usenet).
  • Sirc: Acceso a los canales de IRC.
  • Ftp, telnet, gopher, finger… y resto de utilería básica.

Por supuesto todas estas aplicaciones pueden seguir usándose y están disponibles en cualquier distribución de linux.

En este escenario, el administrador podía ver el comando que ejecutaba cada usuario símplemente ejecutando un “ps“. Si no queríamos que el administrador viera más de la cuenta, procurábamos ejecutar los comandos con el mínimo número de parámetros posibles. Por ejemplo, al invocar a links, podemos indicar en la línea de comandos directamente una página web. Haciendo esto, podrían ver dicha página en nuestro proceso:

Si ejecutamos

[lolo@desarrollo ~]$ links www.pedazodepaginaqueexplicacomopetarununix.com

Y otro usuario o administrador podría ver

[root@desarrollo ~]# ps aux | grep links
lolo 17613 0.0 0.1 8108 2428 pts/1 S+ 13:46 0:00 links www.pedazodepaginaqueexplicacomopetarununix.com
root 17644 0.0 0.0 4556 732 pts/3 S+ 13:46 0:00 grep links

En estos casos, es mucho más recomendable entrar en links llamando al comando sin ningún parámetro y, una vez dentro del mismo, cargar la página web que nos interese. Esto mismo es aplicable a la hora de hacer un ftp, llamar algún comando de correo…

En nuestro caso, el administrador solo habría visto

[root@desarrollo ~]# ps aux | grep links
lolo 17613 0.0 0.1 8108 2428 pts/1 S+ 13:46 0:00 links
root 17644 0.0 0.0 4556 732 pts/3 S+ 13:46 0:00 grep links

Y ahí queda este truquillo tan tonto de newbie pero que me recuerda a mis primeros escarceos con las redes y los unixes. Retro que es uno :’)