Hoy me dió por instalarme el programa fortune así que sin más dilación hice:
sudo pacman -S fortune-mod
Luego me puse a ver que paquetes de mensajes para fortune había en el repositorio y me encontré con el jargon file!, lo instalé:
sudo pacman -S fortune-mod-jargon
Para quién no lo sepa, fortune, es un programa antiguo de UNIX (creado para BSD creo) que simplemente te escribe aleatoriamente un mensaje de todos los que tiene en unos ficheros. En mi caso están en /usr/share/fortune/, abrí jargon y ví que era el diccionario hacker, así que me puse a buscar cosas que se me ocurrían: C, virus, hacker, UNIX y acabé buscando Ken Thompson.
Cito textualmente una parte de la definición:
"Historically, back doors have often lurked in systems longer than
anyone expected or planned, and a few have become widely known.
Ken Thompson's 1983 Turing Award lecture to the ACM admitted the
existence of a back door in early Unix versions that may have
qualified as the most fiendishly clever security hack of all time.
In this scheme, the C compiler contained code that would recognize
when the `login' command was being recompiled and insert some
code recognizing a password chosen by Thompson, giving him entry to
the system whether or not an account had been created for him.
Normally such a back door could be removed by removing it from the
source code for the compiler and recompiling the compiler. But to
recompile the compiler, you have to use the compiler -- so
Thompson also arranged that the compiler would recognize when
it was compiling a version of itself, and insert into the
recompiled compiler the code to insert into the recompiled
`login' the code to allow Thompson entry -- and, of course, the
code to recognize itself and do the whole thing again the next time
around! And having done this once, he was then able to recompile
the compiler from the original sources; the hack perpetuated itself
invisibly, leaving the back door in place and active but with no
trace in the sources."
Traducción extremadamente libre hecha por mí.
Históricamente, los backdoors, han estado merodeando por los sistemas más de lo que ninguno se imaginó o planeó, y algunos se han vuelto ampliamente conocidos. La conferencia que Ken Thompson dió cuando en 1983 le otorgaron el "Turing Award" (premio Turing) a la ACM, admitía la existencia de un backdoor en las primeras versiones de Unix que puede ser calificado como el más diabólicamente inteligente hack de seguridad de todos los tiempos. En este plan, el compilador de C contenía código que reconocería cuándo el comando 'login' estaba siendo recompilado e insertaba código que reconocía una contraseña elegida por Thompson, dándole entrada al sistema tanto si la cuenta existía o no.
Normalmente un backdoor como éste puede eliminarse eliminándolo del código fuente del compilador y recompilando el compilador. Pero para recompilar el compilador necesitas el compilador -- entonces Thompson introdujo al compilador código para que reconociera cuándo estaba compilando una versión de si mismo e insertara en el compilador recompilado el código para insertar en el 'login' recompilado el código para dejar entrar a Thompson -- y, por supuesto, el código para reconocerse a sí mismo y hacer todo el proceso otra vez la próxima vez! Y haciendo esto una vez, pudo dejar que el compilador se compilara desde los fuentes originales; el hack se ocultaba a sí mismo, dejando un backdoor activo pero sin rastro en los fuentes.
Increíble truco x'DDDDDDDDDDD.
Mostrando entradas con la etiqueta unix. Mostrar todas las entradas
Mostrando entradas con la etiqueta unix. Mostrar todas las entradas
lunes, mayo 19, 2008
martes, marzo 11, 2008
Desengaño
Esta va a ser una entrada rápida. Resulta que he estado equivocado todo este tiempo, no sabía crear hilos (threads) en UN*X. Creía que se hacía con fork(2), pero no, esto crea procesos.
Para usar hilos hay que jugar MUUUUUCHO con la llamada al sistema sys_clone, que se accede mediante la llamada de biblioteca clone(2). Pero hay un problema, que realmente no estamos haciendo casi nada, hay que manejar un montón de cosas por debajo. Lo mejor es usar los famosos pthreads, normalmente ya vienen en el sistema (/usr/include/pthread.h) pero no siempre viene la documentación, al menos en Ubuntu no viene, asi que hay que instalar la documentacion completa de la glibc, "sudo apt-get install glibc-doc" y a partir de ahí "man 7 phtreads", "man phtread_create", etc...
Como curiosidad les diré que tanto pthreads como clone(2) como fork(2) utilizan por debajo sys_clone, pero esto no implica que lo que crea fork(2) sean hilos, no se dejen engañar.
Para usar hilos hay que jugar MUUUUUCHO con la llamada al sistema sys_clone, que se accede mediante la llamada de biblioteca clone(2). Pero hay un problema, que realmente no estamos haciendo casi nada, hay que manejar un montón de cosas por debajo. Lo mejor es usar los famosos pthreads, normalmente ya vienen en el sistema (/usr/include/pthread.h) pero no siempre viene la documentación, al menos en Ubuntu no viene, asi que hay que instalar la documentacion completa de la glibc, "sudo apt-get install glibc-doc" y a partir de ahí "man 7 phtreads", "man phtread_create", etc...
Como curiosidad les diré que tanto pthreads como clone(2) como fork(2) utilizan por debajo sys_clone, pero esto no implica que lo que crea fork(2) sean hilos, no se dejen engañar.
viernes, agosto 31, 2007
Instalar software limpiamente mediante GNU/Toast
Toast permite instalar y gestionar fácilmente software desde sus paquetes de código fuente en sistemas unix sin necesidad de permisos de administrador ni muchos quebraderos de cabeza.
Para ello solo basta seguir los siguientes pasos:
1.Vamos a la Pagina oficial del Toast y leemos un poquito acerca del proyecto
2.Descargamos mediante el comando
wget http://www.toastball.net/toast/toast-1.444.tar.gz
3.Descomprimimos el binario
tar xzf toast-1.444.tar.gz
4.Instalamos la ultima versión de toast con toast
./toast-1.444/toast arm toast
5.Comprovamos que la instalación fue correcta y así de paso vemos la ayuda rapida
toast
6.Darse el gusto instalando lo que necesitemos
toast arm install emacs
El funcionamiento de toast consiste en buscar los paquetes fuentes de una aplicación a partir una base de datos de software libre para posteriormente descargarlo, compilarlo, y ajustar correctamente las variables de entorno que nos permitirán ejecutarla.
Los binarios y fuentes descargados se guardan en el directorio ~/.toast
Para ello solo basta seguir los siguientes pasos:
1.Vamos a la Pagina oficial del Toast y leemos un poquito acerca del proyecto
2.Descargamos mediante el comando
wget http://www.toastball.net/toast/toast-1.444.tar.gz
3.Descomprimimos el binario
tar xzf toast-1.444.tar.gz
4.Instalamos la ultima versión de toast con toast
./toast-1.444/toast arm toast
5.Comprovamos que la instalación fue correcta y así de paso vemos la ayuda rapida
toast
6.Darse el gusto instalando lo que necesitemos
toast arm install emacs
El funcionamiento de toast consiste en buscar los paquetes fuentes de una aplicación a partir una base de datos de software libre para posteriormente descargarlo, compilarlo, y ajustar correctamente las variables de entorno que nos permitirán ejecutarla.
Los binarios y fuentes descargados se guardan en el directorio ~/.toast
Suscribirse a:
Entradas (Atom)