| Kriptópolis alojado en |
| Zilos-Veloxia Network |
| Tu mejor defensa: |
| Bufet Almeida |
Bug en kernel linux permite ser root
No parece necesario tener que recordar que ejecutar un exploit entraña sus riesgos y en cualquier caso sólo puedes hacerlo en tu propio sistema y bajo tu responsabilidad.
Como muchos ya sabréis, se ha descubierto una grave vulnerabilidad en el kernel linux (2.6.x - 2.6.24.1) que permite a un usuario con acceso local obtener privilegios de root ejecutando un simple exploit.
Si queréis podéis dedicar un minuto a jugar un poco con el exploit para comprobar por vosotros mismos si afecta a vuestra distribución. Para ello basta descargar el código fuente del exploit (y aquí otra variante), compilarlo y ejecutarlo como usuario normal. En este pantallazo os muestro el proceso y el (preocupante) resultado:

Casi tan pasmosa como la efectividad del exploit es la sencillez del parche que lo soluciona.
Ya hay nueva versión del kernel (2.6.24.2) con el bug resuelto.




Ya esta corregido....
Solo decir que en www.kernel.org ya se encuentra disponible la versión 2.6.24.2 con los parches que arreglan completamente el problema. Versión que ya está siendo incorporada en las distribuciones más importantes en este mismo momento.
Esta velocidad de respuesta es la verdadera fuerza del software libre!
Menudo susto....
Me sale esto al compilar
$ uname -r
2.6.18-8.el5
$ gcc exploit.c exploit.c
/tmp/ccGegR0n.o: In function `die':
exploit.c:(.text+0x0): multiple definition of `die'
/tmp/ccgHFcwe.o:exploit.c:(.text+0x0): first defined here
/tmp/ccGegR0n.o: In function `kernel_code':
exploit.c:(.text+0x69): multiple definition of `kernel_code'
/tmp/ccgHFcwe.o:exploit.c:(.text+0x69): first defined here
/tmp/ccGegR0n.o: In function `exit_code':
exploit.c:(.text+0x1ed): multiple definition of `exit_code'
/tmp/ccgHFcwe.o:exploit.c:(.text+0x1ed): first defined here
/tmp/ccGegR0n.o: In function `main':
exploit.c:(.text+0x265): multiple definition of `main'
/tmp/ccgHFcwe.o:exploit.c:(.text+0x265): first defined here
collect2: ld returned 1 exit status
Para compilarlo pon:$ gcc
Para compilarlo pon:
$ gcc -o exploit exploit.c
has repetido exploit.c dos veces y no has puesto el -o. Hazlo de esta forma o como te indica en el ejemplo.
muy bonito
muy bonito, pero no esta el codigo del exploit, el enlace no lleva a ningun lao
Pues yo lo veo
...aunque a ratos tarda un poco en cargar...
aca igual lo encuentras
también esta en esta dirección
http://www.securityfocus.com/bid/27704/exploit
yo lo compile y no funciono :P
me decía algo de que una función no estaba declarada, y como no me gusta mucho la programacion no le di muchas vueltas y hasta ahí no mas llegue
mmap
:~# ./exp
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[-] mmap: Cannot allocate memory
a mi me sale esto
[pancho@CALIGULAmain ~]$ gcc 45.c
[pancho@CALIGULAmain ~]$ ./a.out
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7fad000 .. 0xb7fdf000
[-] vmsplice: Function not implemented
[pancho@CALIGULAmain ~]$
loading...
loading...
Bueno el exploit funciona en Centos 4 y 5 hasta antes de la version del parche.
Lo he probado y pude vengarme.
connection closed.
El exploit parece muy grave pero...
¿Qué tanto...?
¿Es explotable solo en máquinas locales, y que tengan instalado gcc?, porque si solo es perjudicial en máquinas locales, con un CD de Knoppix se podrían obtener los mismos efectos... (mientras el sistema de archivos no esté cifrado) y siempre y cuando podamos arrancar desde el cdrom y...
Imagina
Que uno de los 1.200 usuarios de la red de tu empresa, universidad, etc. se te convierte en root por esta gracia.
De mondarse, vamos.
¿Pero... no es un exploit local?
No dice la noticia que es un exploit local, y por otro lado piensas que los 1200 usuarios serían malintencionados y tendrían acceso a los servidores?
Yo soy root de mi PC, y mi PC pertenece a una LAN de mi ISP y sin embargo no puedo tomar el control de la RED...
Si... local, o algo así
Hubo un exploit parecido hace como un año. Resulta que alguien con acceso ssh a un servidor de debian lo usó para reemplazar el ejecutable de ping (suid).
Local, en este caso, no implica estar fisicamente frente a la computadora, significa tener acceso a un shell (i.e., todos los lugares donde se usen thin clients.)
cagonto
mi máquina es vulnerable. Sin embargo el ordenador de mi amigo el profesor de instituto (un toshiba con guadalinex 3 edu del que no tiene root ni acceso al grub) no está compilado con vmsplice, una pena porque está deseando sacarle la clave para poder compilarse el ipw2200. Que dicho sea de paso tiene cojones tener que juankear el ordenador de uno mismo para poder usar el hardware que no soporta tu SO de serie.
total que para una vez que me encuentro con un exploit al que le podría sacar partido, resulta que nanai. pues vaya mierda de exploit (con perdón).
a todo esto, mi distro aún no ha sacado paquetes actualizados del kernel (ubuntu gutsy), lo que deja miles de desktops en todo el mundo con el culo al aire, lo cual es triste porque conociendolos, son capaces de decir "arreglado en hardy heron" y dejar a todo el mundo con cara de idiota (ese es su estilo, yo ya ni me molesto en notificar bugs, total, para el caso que hacen....)
Ubuntu
Ha fecha de 12 de febrero ya esta el parche en los repositorios de ubuntu. Ya ves lo que se tardo... un día. Mucho si comparamos con la velocidad con la que se tendria que haber solucionado, pero al final es sólo un día.
Y ya está resuelto.
A mi me ha funcionado pasmosamente bien. Ilustrativo, por cierto.
Estoy con el que ha dicho que esta es la fuerza del software libre. Lo puede corregir cualquiera, no cuando el desarrollador del mismo le venga en gana, o no.
Pues a mi me sale un mensaje que no me gusta...
[fer@casa tmp]$ ./exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7d9f000 .. 0xb7dd1000
[+] root
* Warning: can't find /home/fer/.ssh/id_rsa; skipping
Observar la parte que aparece en negrita, parece que el exploit intenta localizar el archivo de claves ssh y no lo encuentra. He de reconocer que no he mirado demasiado el código, solamente me lo he bajado, lo he compilado y lo he ejecutado.
Un saludo Fernando Acero
en debian ya esta solucionado
anoche pude comprobar que el exploit funcionaba en debian etch x86_64 totalmente actualizada. Hoy a eso de las 15.00 he recibido un mail en la lista debian-security anunciando una nueva versión del kernel que solucionaba el problema. Ya he actualizado todas las máquinas de mi cluster, he comprobado que efectivamente el exploit ya no es efectivo y me he quedado tranquilo :)
Está claro que ningún software en el mundo es 100% seguro pero la comunidad del software libre en estos casos reaccionan a toda velocidad. Asi da gusto, para que luego digan que es necesario el respaldo de una gran empresa para tener un soporte decente.....
PaX + GRSec
Un kernel bien configurado con los parches de GRSec y PaX no es vulnerable.
Preocupante...
andrey@debland:~$ ./script1
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x100000000000 .. 0x100000001000
[+] page: 0x100000000000
[+] page: 0x100000000038
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x7f8273f0b000 .. 0x7f8273f3d000
[+] root
root@debland:~# whoami
root
root@debland:~# uname -r
2.6.24-5-generic
root@debland:~#
Ubuntu vulnerable
Ubuntu gusty completamente actualizado (justo antes de esta prueba)
> uname -a
Linux legolas 2.6.22-14-generic #1 SMP Fri Feb 1 04:59:50 UTC 2008 i686 GNU/Linux
> gcc -o exploit exploit.c
> ./exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e4c000 .. 0xb7e7e000
[+] root
> whoami
root
Así de fácil. Más arriba dicen que hace falta tener el gcc. No es cierto. Como es natural, el exploit funciona aunque no sea compilado en la propia máquina.
Tengo un Debian etch (antes de actualizar el sistema) y he hecho la prueba con el exploit compilado en ubuntu. Ha funcionado.
A Debian etch ya ha llegado el parche y después de actualizar el sistema ya no es vulnerable. Copia pego porque es ilustrativo:
En Debian, antes de actualizar:
[nemesis@boromir] ~/Desktop
> ./exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e45000 .. 0xb7e77000
[+] root
> whoami
root
En Debian, después de actualizar y resetear el sistema:
> ./exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7dce000 .. 0xb7e00000
[-] vmsplice: Bad address
> whoami
jose
disculpas...
Por lo comentado mas arriba lo del gcc, era una pregunta, no había pensado que se podía compilar en otra máquina.
OpenSUSE, para mañana martes
http://www.net-security.org/secworld.php?id=5809
Empresas, soporte y tal
Me gustaría reflexionar sobre este punto: Seguro que todos estamos cansados de que nos digan eso de que el software detrás del cual hay una empresa ofrece más garantías y todo esto.
Debian: Arreglado desde las 15:00
Ubuntu Gusty (última versión estable): Vulnerable ahora mismo.
¿Qué tal han respondido Red Hat y Novell? ¿Alguien nos lo puede contar?
RedHat está en ello
https://bugzilla.redhat.com/show_bug.cgi?id=432251
Ubuntustudio Gutsy ok
"segmentation fault", me dice.
g
Y Debian es Debian...
Yo me enteré del exploit por Kriptopolis, cerca de las 15:15, probé si funcionaba en Debian Etch y comprobé que si lo hacia, luego se me abrí Synaptic (lo prefiero a la consola para administrar los paquetes) recargue/actualicé la lista de paquetes y ya estaba disponible el kernel corregido. En casi menos de una hora desde que me enteré, ya tenía la solución...
Hola. Yo también estoy
Hola. Yo también estoy usando Debian-Etch, pero los paquetes del kernel no se me actualizan a la versión 1.18, tengo la 1.17 y la distro sigue siendo vulnerable.
Le doy al "aptitude update" y al "aptitude upgrade", pero me dice que todo está actualizado, Voy al Synaptic y lo mismo, no hay nada nuevo que actualizar. Hace poco se me actualizaron algunos paquetes, pero el kernel dice que va a ser que no.
¿Qué tienes en el sources.list? Yo tengo esto:
####################
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
deb http://http.at.debian.org/debian/ stable main contrib non-free
deb-src http://http.at.debian.org/debian/ stable main contrib non-free
####################
Pruebo, a fecha de este post, con "aptitude update" y "aptitude upgrade" y sale que está todo actualizado:
############
No se instalará, actualizará o eliminará ningún paquete.
0 paquetes actualizados, 0 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 0B de ficheros. Después de desempaquetar se usarán 0B.
############
No me va a quedar otro remedio que bajarlos de forma manual e instalarlos con dpkg.
Saludos y gracias por adelantado.
Ya lo tengo solucionado
Ya lo tengo solucionado.
Es que pensaba que era una actualización del kernel 2.6.18-5. Mirando la lista encontré el 2.6.18.6 así que descargué los paquetes, arranqué con el nuevo kernel y borré el antiguo.
Ahora no tengo la distro vulnerable a ese exploit.
Gracias.
Ojo
¿Puede ser porque usabas upgrade en lugar de dist-upgrade? Con dist-upgrade creo que se actualizaría.
yo diría que es porque no
yo diría que es porque no tiene instalado el paquete linux-image-2.6-xxx
Todo actualizado y controlado.
Hola. Había probado también con dist-upgrade.
Estoy usando Etch, Hace unos días me enteré que a partir de Sid cambia "aptitude upgrade" por "aptitude safe-upgrade" y "aptitude dist-upgrade" por "aptitude full-upgrade". Creo que así es mejor porque se recordará mejor la sintaxis entre hacer una actualización segura u otra más agresiva.
Gracias y saludos.
Debian-64 acaba de actualizarme el kernel
Debian-64 acaba de actualizarme el kernel. Reboot y perfecto,como siempre.
A veces está muy bien que las cosas se hagan "solas", aunque siempre me ha gustado trastear, Debian y su sistema de instalación y actualización no me ha dado ni un solo problema en más de un año de uso y eso que yo soy de Slackware.
En cuanto al bug, bueno, ¿Que bug? ¿Alguien se acuerda?
Fedora
https://bugzilla.redhat.com/show_bug.cgi?id=432229
Fedora actualizado
Mi fedora 8 se ha actualizado en cuanto lo he encendido (07:00) con lo que han publicado el parche mientras dormía...
En Debian sarge
En Debian sarge hice la rutina de actualización a mano (apt-get upgrade), pero no encontró una nueva versión del kernel. Tengo un uptime de 164 días y un kernel 2.6.8-3-686. Sin embargo, el exploit no funciona ;-)
---%<-----
alonso@perlanegra:~/bin/exploit.2008-02-11$ gcc -o exploit exploit.c
alonso@perlanegra:~/bin/exploit.2008-02-11$ ./exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x40158000 .. 0x4018a000
[-] vmsplice: Function not implemented
alonso@perlanegra:~/bin/exploit.2008-02-11$
--->%------------
Versión anterior al bug
Normal. La función vmsplice apareció en el kernel con la versión 2.6.17
Aquí dice que la Sarge no
Aquí dice que la Sarge no está afectada.
http://www.debian.org/security/2008/dsa-1494
The old stable distribution (sarge) is not affected by this problem.
Debian-Etch si la tengo vulnerable. Tengo instalado la versión 1.17 de los paquetes. En los Servidores Debian veo que está disponible la 1.18, pero no se me quiere actualizar con "aptitude update" y "aptitude upgrade". Pone que está todo actualizado.
Esto el lo que tengo en el sources.list:
################
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
deb http://http.at.debian.org/debian/ stable main contrib non-free
deb-src http://http.at.debian.org/debian/ stable main contrib non-free
###################
Creo que todo está correcto. Esperaré unos día y si no se actualiza lo haré a mano.
Saludos.
No se
juan@juan-desktop:~$ uname -r
2.6.22-14-generic
juan@juan-desktop:~$ gcc -o exploit exploit.c
exploit.c:20:19: error: stdio.h: No existe el fichero ó directorio
exploit.c:21:19: error: errno.h: No existe el fichero ó directorio
exploit.c:22:20: error: stdlib.h: No existe el fichero ó directorio
exploit.c:23:20: error: string.h: No existe el fichero ó directorio
exploit.c:24:20: error: malloc.h: No existe el fichero ó directorio
En el fichero incluído de /usr/lib/gcc/i486-linux-gnu/4.1.3/include/syslimits.h:7,
de /usr/lib/gcc/i486-linux-gnu/4.1.3/include/limits.h:11,
de exploit.c:25:
/usr/lib/gcc/i486-linux-gnu/4.1.3/include/limits.h:122:61: error: limits.h: No existe el fichero ó directorio
exploit.c:26:20: error: signal.h: No existe el fichero ó directorio
exploit.c:27:20: error: unistd.h: No existe el fichero ó directorio
exploit.c:28:21: error: sys/uio.h: No existe el fichero ó directorio
exploit.c:29:22: error: sys/mman.h: No existe el fichero ó directorio
exploit.c:30:22: error: asm/page.h: No existe el fichero ó directorio
exploit.c:32:24: error: asm/unistd.h: No existe el fichero ó directorio
exploit.c: En la función ‘die’:
exploit.c:55: aviso: declaración implícita incompatible de la función interna ‘printf’
exploit.c:56: error: ‘stdout’ no se declaró aquí (primer uso en esta función)
exploit.c:56: error: (Cada identificador no declarado solamente se reporta una vez
exploit.c:56: error: ara cada funcion en la que aparece.)
exploit.c:57: error: ‘stderr’ no se declaró aquí (primer uso en esta función)
exploit.c:58: aviso: declaración implícita incompatible de la función interna ‘exit’
exploit.c: En la función ‘exit_code’:
exploit.c:183: aviso: declaración implícita incompatible de la función interna ‘printf’
exploit.c:185: aviso: declaración implícita incompatible de la función interna ‘execl’
exploit.c:185: error: ‘NULL’ no se declaró aquí (primer uso en esta función)
exploit.c:186: error: ‘errno’ no se declaró aquí (primer uso en esta función)
exploit.c: En la función ‘main’:
exploit.c:192: error: ‘size_t’ no se declaró aquí (primer uso en esta función)
exploit.c:192: error: expected ‘;’ before ‘map_size’
exploit.c:194: error: no se conoce el tamaño de almacenamiento de ‘iov’
exploit.c:202: aviso: declaración implícita incompatible de la función interna ‘printf’
exploit.c:211: error: ‘PAGE_SIZE’ no se declaró aquí (primer uso en esta función)
exploit.c:214: error: ‘map_size’ no se declaró aquí (primer uso en esta función)
exploit.c:215: error: ‘PROT_READ’ no se declaró aquí (primer uso en esta función)
exploit.c:215: error: ‘PROT_WRITE’ no se declaró aquí (primer uso en esta función)
exploit.c:216: error: ‘MAP_FIXED’ no se declaró aquí (primer uso en esta función)
exploit.c:216: error: ‘MAP_PRIVATE’ no se declaró aquí (primer uso en esta función)
exploit.c:216: error: ‘MAP_ANONYMOUS’ no se declaró aquí (primer uso en esta función)
exploit.c:216: aviso: la asignación crea un puntero desde un entero sin una conversión
exploit.c:217: error: ‘MAP_FAILED’ no se declaró aquí (primer uso en esta función)
exploit.c:218: error: ‘errno’ no se declaró aquí (primer uso en esta función)
exploit.c:220: aviso: declaración implícita incompatible de la función interna ‘memset’
exploit.c:236: aviso: la asignación crea un puntero desde un entero sin una conversión
exploit.c:254: aviso: la asignación crea un puntero desde un entero sin una conversión
exploit.c:263: error: ‘NULL’ no se declaró aquí (primer uso en esta función)
exploit.c:264: aviso: la asignación crea un puntero desde un entero sin una conversión
exploit.c:283: error: ‘SIGPIPE’ no se declaró aquí (primer uso en esta función)
*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
No se si he hecho algo mal o es que no me afecta
Saludos
Gargamel
Vamos a Cambiar el Mundo
Finger:B3A9 77E9 CA47 AF96 C9D9 812F EA88 B6E4 9841 AC9E
Compilar
No tienes instaladas las librerías de C para compilar
Lo que te falla
Lo que te falla es la compilación del exploit porque no encuentra includes (no tienes los headers instalados o no los encuentra).
Lo cual no quiere decir que el exploit compilado en otra máquina no pueda funcionar.
Los experimentos con gaseosa
Antes de lanzarse como loco a compilar y ejecutar cualquier exploit que encontramos no bien mal tomar algunas precauciones...
Fijaros en el comentario que aparece en el primer exploit:
"
* This is quite old code and I had to rewrite it to even compile.
* It should work well, but I don't remeber original intent of all
* the code, so I'm not 100% sure about it. You've been warned ;)
"
pues eso, estáis advertidos, cuidadito con donde y como se prueban los exploits.
Fedora 8 con kernel 2.6.23.14-115
No ha funcionado ninguno de los dos exploits.
En Fedora funciona // Extraño resultado
Funciona en Fedora Core 7 con el kernel 2.6.23.8-34.fc7.
Por cierto, alguien más ha obtenido un resultado como el de Fernando Acero? He estado echando un vistazo al código y no veo llamadas que se correspondan con la apertura de ningun fichero extraño.
comprueba con strace
comprueba a ver con strace si ves cosas raras...
strace ./exploit
¿Y ahora que?
Seguro que este bug no tendrá su minuto de gloria en las noticias de las 15.00h, pero su gravedad está a la altura (si es que no las supera) de algunos de los bug's mas conocidos de Windows. En empresas con sistemas de deserrollo bajo linux, cientos de usuarios podrán ahora mismo, reitero ahora mismo, promocionarse como root. Me temo que hoy va a ser un día de mucho trabajo.
A veces vemos a paja en ojo ajeno y no vemos la viga en el nuestro!!!!!
PD: Por gusto he mirado en las estadísticas de acceso web cuantas personas han leido ya esta noticia. Más de 35!!!! En fin....
Desgraciadamente es cierto
En nuestro Centro de calculo en la universidad. tenemos unos veinte servidores ( entre virtuales y reales ) y unos cuatrocientos usuarios que pueden ejecutar una shell. Efectivamente: si bien la actualización es automática, no lo es tanto el buscar como locos si algún cachondo mental nos ha instalado un rootkit o algo peor...
Bonito día llevamos entre actualizaciones y chequeos.
Menos mal que el laboratorio de alumnos está en una caja de arena y encerrados tras un firewall, y basta con rearrancar los equipos para que los pecés se limpien, que si no... (sudor frio)
Al menos una cosa positiva: la ventana de exposición ha sido realmente corta. A ver si el imperio de Bill puede decir lo mismo.
Exactamente como se actualiza Debian?
Pues eso alguien puede decir si la actualización que comentais es con un:
"apt-get update"
o algo así (acabo de empezar con Debian y aún estoy muy yogurín)
O para solucionar el problema hay que descargar kernel y recompilar, por que en ese caso, los que estamos verdecitos como yo, no nos es una solución factible, y somos vulnerables. Por que cada vez que he intentado ponerme a recompilar el kernel, me quedo a la midad de las preguntas estas que hay que responder, y para alguna vez que he llegado al final con toda mi ilusión, al instalar el nuevo kernel la maquina ya no arrancaba. :-(
PD: Mi sistema lo instale con el CD de NetInstall que me baje de la página oficial
Un saludo.
Debian howto.
En debian-64 con escritorio gnome (pero esto debería servir para cualquier debian con gnome) te vas a:
Escritorio>Administración>Gestor de actualizaciones,pones la contraseña de root y luego le das al boton de comprobar,si hay algo que actualizar te lo mostrará y sigues el sencillo asistente y ya está.
En el caso de la actualización del kernel del que se habla en el articulo sale una advertencia de que reinicies en cuanto hayas actualizado el sistema,así que haz caso y tras el reboot comprueba de nuevo que ya no tienes nada más que actualizar.
Respuesta Off-Topic
Hace varios años que no uso Debian, pero si mal no recuerdo, la actualización mdeiante apt sería asi:
apt-get update -- Para actualizar los repositorios
apt-get dist-upgrade -- Para actualizar el sistema
Busca en Google, que si algo no le falta a Debian es buena documentación...
También ten presente que puedes instalar gestores de paquetes que te resulten más amigables (como synaptic).
Con respecto a compilar tu propio kernel, lo mismo. Busca información, ten siempre una entrada en el grub apuntando a tu kernel anterior (para poder bootear si algo falla) y pregunta en los foros (Todas las distribuciones son parecidas a la hora de compilar el kernel, por lo que también puedes preguntar en los foros de Ubuntu, que presumo es de donde vienes ;))
Saludos y suerte en tu camino hacia el "devianismo".