My laptop was broken into

Initially I titled this «My laptop was hacked» but because the way they got in was by guessing a password, so it’s difficult to consider this a hack. Furthermore, what they did was pretty standard stuff, so although they technically broke into my laptop, I feel more like I invited them, they had a couple of beers and left. Either way, it was a back-to-basics experience for me and I want to share it with you.

When a process goes crazy to a point that I can no longer open a terminal for further analysis, I am really glad that I have permanent real-time resource monitors on my screen. This has been a valuable tool multiple times at least to understand what is happening just by peeking and take quicker and better action than if I hadn’t. This screenshot is from Xfce 4.14:

Top bar on my laptop screen. A lot of monitoring in there.

Top bar on my laptop screen. Lots of monitoring in there.

Today was one of those days. Not that the computer was slow, but worse: the CPU monitor was showing this:

Resource monitors showing 200% CPU usage but all normal in other monitors

The top bar shows two virtual cores being fully used, but nothing else.

Two out of four CPU virtual cores were being used to their maximum capacity but the other monitors were fine. I had not left anything running through the night so it was possible that my computer was hacked. But… how?! Follow the story step-by-step so you can follow my train of thought and learn from my mistakes.

I immediately ran top to find out more and I found process 311250, called kswapd0, using 200% CPU.

Sigue leyendo

Rejuveneciendo mi laptop: temperatura, parte 1

Esta es la sexta parte de la serie Rejuveneciendo mi Laptop en la que narro, componente por componente, el proyecto en el cual busco darle una nueva vida a mi vieja laptop. Para la tabla de contenido, visita el primer post: Introducción: los problemas.

Temperatura, parte 1: una batalla perdida

La laptop siempre ha presentado problemas de calentamiento. Recuerdo, incluso, que por allá de 2014, a un tiempo de usarla al 100% de su capacidad de procesamiento con cuatro núcleos, el CPU alcanzaba 89 °C y la protección apagaba la laptop automáticamente. Estos problemas no eran tan obvios porque nunca fui mucho de usar juegos ni aplicaciones tan demandantes. Se volvió evidente al hacer los primeros intentos de grabar y procesar video para publicar presentaciones y charlas del Gultij y del Software Freedom Day en Tijuana.

Una opción que usé un tiempo fue limitar el uso a N núcleos para evitar sobrecalentar la laptop. Lo que hacía era anteponer cpulimit -l N*100 a cada instrucción. Por ejemplo, para limitar un proceso a 2 núcleos, usar un valor de 200. Desafortunadamente esto requiere de alterar scripts y hacer uso de otros trucos indeseables.

Total, que se siguió degradando después de tantos años de uso y sin haberle dado nunca una limpiada. Para 2018 ya no bastaba con limitarla a 3 núcleos: ¡ya no podía exceder de 1 CPU en plena carga (de los 4 virtuales) por más de unos cuantos segundos! Literalmente, la capacidad de mi laptop estaba reducida al 25% de su capacidad de procesamiento.

Sigue leyendo

Rejuveneciendo mi laptop: disco duro, parte 2

Esta es la quinta parte de la serie Rejuveneciendo mi Laptop en la que narro, componente por componente, el proyecto en el cual busco darle una nueva vida a mi vieja laptop. Para la tabla de contenido, visita el primer post: Introducción: los problemas.

Disco duro, parte 2: ajuste de las particiones y recuperación de espacio

Hasta aquí, tengo el sistema operativo (Debian) en el disco de estado sólido funcionando. Sin embargo, aún tengo la partición desperdiciada (93 GB) y la del sistema operativo viejo (169 GB) en el disco magnético; es lo que contaba en la Introducción: cómo quedaron las particiones cuando instalé Linux.

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048  41945087  41943040    20G 27 Hidden NTFS WinRE
/dev/sda2  *     41945088  42149887    204800   100M  7 HPFS/NTFS/exFAT
/dev/sda3        42149888 417540095 375390208   179G  7 HPFS/NTFS/exFAT
/dev/sda4       417542142 976771071 559228930 266.7G  f W95 Ext'd (LBA)
/dev/sda5       417542144 613193057 195650914  93.3G  7 HPFS/NTFS/exFAT
/dev/sda6       613193728 968802303 355608576 169.6G 83 Linux
/dev/sda7       968804352 976771071   7966720   3.8G 82 Linux swap / Solaris

Enumerando y resaltando las particiones relevantes: la de recuperación, la de arranque de Windows, la de Windows en sí y la extendida. Dentro de la extendida: la partición para compartir datos entre Windows y Linux (NTFS), la de Linux y la swap de Linux. Aunque hay tres particiones NTFS, en el resto de este capítulo me referiré como «la partición NTFS» a la que sirve para compartir datos entre Windows y Linux.

Lo que opté por hacer fue recuperar 73 GB de la partición NTFS para compartir datos entre Windows y Linux, reduciéndola de 93 GB a 20 GB y agregar ese espacio a mi /home/alvarezp en 73 GB.

El diablo está en los detalles: la partición NTFS está ubicada antes de mi home. Explico:

Sigue leyendo

Rejuveneciendo mi laptop: disco duro, parte 1

Esta es la cuarta parte de la serie Rejuveneciendo mi Laptop en la que narro, componente por componente, el proyecto en el cual busco darle una nueva vida a mi vieja laptop. Para la tabla de contenido, visita el primer post: Introducción: los problemas.

Disco duro, parte 1: agregué un disco de estado sólido

El disco duro siempre ha sido el cuello de botella en el rendimiento de mi laptop para arrancar el sistema; no es el CPU ni la memoria RAM. Esto no suele ser un problema porque cuando un sistema operativo lee un bloque desde disco duro, le aplica caching en memoria RAM, si hay suficiente. Es decir, la segunda vez que se lee el mismo bloque, ya no lo carga desde el disco duro sino desde la RAM. Esta operación es relativamente barata y desemboca en un funcionamiento más veloz de la computadora en términos generales.

Comparemos lo que ocurre al calcular dos veces el hash de un archivo de 1 GB, la primera vez contra la segunda vez. Con esto nos damos una idea de la diferencia entre leer desde disco y leer desde el caché de disco contenido en memoria RAM.

Sigue leyendo

Rejuveneciendo mi laptop: batería

Esta es la tercera parte de la serie Rejuveneciendo mi Laptop en la que narro componente por componente, el proyecto en el cual busco darle una nueva vida a mi vieja laptop. Para la tabla de contenido, visita el primer post: Introducción: los problemas.

Batería: la primera danza

Tarde o temprano la batería daría de sí. No recuerdo las fechas exactas pero digamos que para 2015 la batería ya no duraba ni 15 minutos. Decidí comprarle otra batería. En eBay encontré una que se supone era nueva y original de Samsung. La compré y con eso mi laptop volvió a tener vida… temporalmente. Lo de temporalmente era de esperarse; las baterías se desgastan con el tiempo. Lo que no esperaba fue la forma en que se dio.

Sigue leyendo