Sesión SSH duradera

Las conexiones SSH, así como las HTTP y de otros servicios, tienen por defecto una política de timeout que cierra la conexión si no hay actividad, por seguridad y por eficiencia para liberar los recursos no usados.

En muchas ocasiones, como cuando se hacen túneles SSH, es más cómodo mantener una conexión abierta que no se cierre por timeout. Una manera de hacerlo es mediante las políticas del servidor SSH, pero otra manera más sencilla es hacerlo por cada conexión desde el cliente.

Comúnmente en los clientes SSH en Unix están las opciones TCPKeepAlive y ServerAliveInterval. La primera indica que se quiere mandar un paquete SSL por TCP hacia el servidor para mantener la actividad y la otra indica el intervalo en segundos en el cual se van a mandar los paquetes. Un ejemplo de uso sería el siguiente:

ssh -o TCPKeepAlive=yes -o ServerAliveInterval=5 usuario@servidor

Así ya podrán mantener sus sesiones de SSH abiertas todo el tiempo que quieran y no olviden cerrarlas cuando las dejen de usar.

Cloud Computing aplicado a las empresas

El Cloud Computing es uno de los terminos más sonados en revistas y en diversos artículos en los últimos meses. Algunos alabándolo y otros criticándolo, pero hablando siempre de tecnologías futuristas y suponiendo que la nube es internet, cuando internet es sólo una parte de la nube.

La nube, como todo, tiene ventajas y desventajas. Por ejemplo, algunas ventajas son: no necesitas de una computadora con muchos recursos, no hay necesidad de instalar aplicaciones y sería muy difícil perder tus datos; pero una de sus desventajas es que deberás confiar en un tercero para que tus datos estén “seguros”.

Siempre se ha criticado mucho desde el aspecto de la seguridad y es por ello que muchas empresas ni consideran adoptarlo, aunque esas son las mismas empresas que se niegan a usar las redes sociales y prefieren bloquear twitter que usarlo para algo útil. Pero queramos o no todas las tecnologías van hacia ese rumbo pues cada vez hay más smartphones y computadoras con acceso a internet con menos recursos y más baratas. Todo parece apuntar a que en un futuro los smartphones serán los que dominen en internet. Si observamos el entorno es claro que las aplicaciones de escritorio desaparecerán en un futuro no muy lejano, la multiplataforma es lo que está en voga y más gente está usando las tecnologías de internet para intercomunicarse, por lo que sinceramente dudo mucho que las empresas puedan frenar este avance.

Es impresionante ver como la gran mayoría de las empresas siguen tan ciegas y centran sus esfuerzos en detener a los usuarios para usar las nuevas tecnologías. Llegan a poner proxies para limitar el acceso a facebook y twitter; para el correo electrónico compran sistemas para evitar enviar correos a personas que la compañía no considere confiables y usan filtros de spam poco útiles para el usuario final; gastan recursos humanos en revisar los antivirus de los usuarios y monitorear la red en busca de fugas de información, y prohíben a las personas instalar ciertos programas como iTunes por “problemas de seguridad potenciales”.

Pero ¿qué diferencía a las compañias con gran tecnología y productos realmente interesantes de las otras?

No piensan cómo es que podrían beneficiar las nuevas tecnologías a la empresa.

El cloud computing tiene muchas caras que ofrecer y depende de las empresas buscar una cara que les beneficie. Si pensamos en el Cloud Computing como una nube que sólo está dentro de la red de la empresa, entonces empieza a volverse interesante y es probable que las empresas adopten ese modelo.

Pero antes de seguir quiero aclarar que al hablar de cloud computing no me refiero sólo a aplicaciones web que hacen consultas con AJAX a un servidor central, o una aplicación que hace consultas SOAP o tiene web services. Cloud computing realmente es mucho más que eso.

Tomemos como ejemplo Google. Es una empresa totalmente dedicada a la nube, y sus tecnologías son realmente avanzadas, mucho más de lo que muchos creen. Bien se sabe que no sólo es un motor de búsqueda, es una gran parte de Internet y tiene tecnologías que se pueden aplicar perfectamente a las empresas como GMail, Google Docs, Google Calendar y Google Wave, además de otras tecnologías para desarrollar aplicaciones como Google App Engine y Google Web Toolkit; y tiene también su propio sistema operativo Google Chrome OS (totalmente enfocado a la nube) y su navegador Google Chrome.

Google Chrome OS, que aún continúa en su versión beta y no se le ha prestado suficiente atención, resulta ser una versión de Linux a la cual no se le puede instalar ninguna aplicación y que no tienen ningún medio de almacenamiento; toda tu información está en la nube, ni siquiera la música se puede guardar en el disco, a lo mucho se pueden guardar datos en un USB ¿qué locura no?. El sistema operativo completo funciona como un navegador: cuando cierras la sesión guarda el estado en el que te quedaste para que luego puedas continuar en cualquier otra computadora que tenga Chrome OS instalado; por lo cual las computadoras necesarias para correrlo no necesitan de mucho disco duro, ni de una capacidad de procesamiento brutal. Y es cierto para muchos esto puede parecer desconcertante e inservible, pero para la gran masa de usuarios podría funcionar perfectamente.

Hagamos ahora un ejercicio de imaginación y apliquemos la nube a una empresa como Coca Cola. Supongamos que tiene varios datacenters: uno en México, varios en Estados Unidos y en muchos otros países; y, en esos datacenters tuvieran instalados los appliances de Google, los cuales pudieran guardar la información correctamente duplicada en diferentes lados del mundo; luego supongamos que la empresa les diera a sus empleados una Laptop con un disco de estado sólido suficiente para alojar una versión de Chrome OS que se conectara a la VPN de Coca Cola.

Esto sería realmente seguro, pues al contratar a un empleado bastaría con dar de alta una nueva cuenta en la empresa con los privilegios de las aplicaciones que necesitara, usando la política del mínimo privilegio. Cuando el empleado necesitara conectarse a sus documentos podría hacerlo desde cualquier computadora y la información nunca estaría guardada en el disco duro, por lo que si se pediera una laptop en el aeropuerto no habría ningún problema ya que necesitarían de la contraseña para poder entrar a algo importante.

Pensemos también que el costo de mantenimiento se vería reducido totalmente, pues no habría que reinstalar prácticamente nada y podrían trabajar desde cualquier computadora que tuviera acceso a la red de Coca Cola mediante Chrome OS. El costo de todas las aplicaciones como antivirus, protectores contra intrusos y demás desaparecerían pues el sistema operativo no se podría modificar y estaría reducido a lo que el navegador te permitiera.

Es un hecho que todas las aplicaciones de Coca Cola necesitarían funcionar mediante Web, pero no me imagino alguna que actualmente no pudiera implementarse para funcionar en Web.

Los problemas de seguridad se verían reducidos de manera importante, pues se tendría mucho más control de todos los datos y éstos estarían alojados en los servidores de Coca Cola. Y aunque seguirían existiendo los mismos problemas de siempre: contraseñas débiles, fallas en la configuración, problemas de XSS en las aplicaciones web, servidores vulnerables y demás; ya no habría que preocuparse tanto por la seguridad de cada usuario final de la empresa. Sería ahora más complicado que pudiera haber una fuga importante de información y en todo caso se tendría registrado por dónde ocurrió.

Google es un ejemplo de empresa que ha aprovechado la nube y muchas más podrían estar incursionando en estos momentos, pero hay cosas de Google que ya funcionan muy bien y a menos que algunas empresas quieran reinventar la rueda bien podrían ya empezar a usarlas para satisfacer sus necesidades.

Java 4-Ever!

En Amarello desde siempre hemos apoyado el Open Source, y en el ámbito profesional siempre nos encontramos con muchas personas que prefieren tecnologías privativas, por lo que a veces nos hemos sentido fuera de lugar en algunos ambientes. Ojalá alguien nos entendiera…

El siguiente video es el trailer de la que podría  ser la mejor película geek del año. Disfrútenlo y tómenlo como lo que es: un chiste.


Java 4-Ever
Via: Koreus

Port Knocking : Evita ataques masivos a tu puertos

El port knocking se refiere a una combinación de puertos que debemos “tocar” para que el servidor nos de acceso a un servicio. Por ejemplo, cuando alguien establece una conexión por ssh implícitamente va un paquete al puerto 22 intentando iniciar la conexión, y esto sería “tocar” el puerto 22.

¿Para qué?

Si tenemos un servidor accesible desde internet, es común que recibamos ataques automáticos por diccionario contra nuestro servidor; esto es así porque hay muchas botnets que realizan ataques masivos contra todo lo que encuentren en internet. Pero al implementar port knocking estas botnets ignorarán nuestro servidor, y además los escaneos de puertos no podrán ver abiertos los puertos sensibles, aunque nosotros sí tengamos acceso a ellos.

Por otro lado, cuando un servicio como ssh o mysql están recibiendo un ataque por diccionario, la política automática por defecto es aumentar el tiempo de espera para hacer login, por lo que empezaríamos a notar comportamientos extraños en nuestro servidor (lentitud al realizar operaciones que requieran conexión a esos servicios).

Funcionamiento

El funcionamiento es simple: lo que va a pasar es que aparecerá cerrado el puerto 22, pues se está esperando a que le mandemos una combinación de puertos, supongamos la combinación 1200, 234, 654, 4509, 12; y, una vez enviada la combinación podremos establecer la conexión al puerto 22 (el del ssh).

Ya en la práctica tendríamos lo siguiente:

      Intentamos entrar al puerto 22 (aparece cerrado)
      Abrimos una conexión con el puerto 1200 (responderá que esta cerrado) pero el servidor sigue en espera de las demás conexiones
      Abriimos una conexión con el puerto 234 (nos aparece cerrado) el servidor ya sabe que tenemos las primeras dos combinaciones bien
      Abrimos una conexión con el puerto 654, luego 4509 y luego el 12
      Ahora tenemos 5 segundos para iniciar la conexion por ssh
      Iniciamos la conexión exitosamente

El port knocking es como si metieramos a una caja fuerte nuestra laptop, y aún después de poner la combinación se tendrían que poner el password de la computadora. Esto obviamente aumenta la seguridad en una forma considerable.

Hay que recordar que esto a pesar de ser una buena forma de asegurar un puerto, necesita tener dentrás una buena contraseña y unas buenas políticas, pues si para alguien que estuviera analizando nuestro tráfico sería trivial obtener la combinación de puertos.

Implementación con iptables

Con ayuda de iptables podríamos hacerlo suponiendo la combinacion 100, 200, 300, 400, ssh(22):

HOST_IP="12.34.56.78"

/sbin/iptables -N INTO-PHASE2
/sbin/iptables -A INTO-PHASE2 -m recent --name PHASE1 --remove
/sbin/iptables -A INTO-PHASE2 -m recent --name PHASE2 --set
/sbin/iptables -A INTO-PHASE2 -j LOG --log-prefix "INTO PHASE2: "

/sbin/iptables -N INTO-PHASE3
/sbin/iptables -A INTO-PHASE3 -m recent --name PHASE2 --remove
/sbin/iptables -A INTO-PHASE3 -m recent --name PHASE3 --set
/sbin/iptables -A INTO-PHASE3 -j LOG --log-prefix "INTO PHASE3: "

/sbin/iptables -N INTO-PHASE4
/sbin/iptables -A INTO-PHASE4 -m recent --name PHASE3 --remove
/sbin/iptables -A INTO-PHASE4 -m recent --name PHASE4 --set
/sbin/iptables -A INTO-PHASE4 -j LOG --log-prefix "INTO PHASE4: "

/sbin/iptables -A INPUT -m recent --update --name PHASE1

/sbin/iptables -A INPUT -p tcp --dport 100 -m recent --set --name PHASE1
/sbin/iptables -A INPUT -p tcp --dport 200 -m recent --rcheck --name PHASE1 -j INTO-PHASE2
/sbin/iptables -A INPUT -p tcp --dport 300 -m recent --rcheck --name PHASE2 -j INTO-PHASE3
/sbin/iptables -A INPUT -p tcp --dport 400 -m recent --rcheck --name PHASE3 -j INTO-PHASE4

/sbin/iptables -A INPUT -p tcp -s $HOST_IP --dport 22 -m recent --rcheck --seconds 5 --name PHASE4 -j ACCEPT

Y para hacer el knocking sería de esta forma:

$telnet 10.1.1.1 100 ; telnet 10.1.1.1 200 ; telnet 10.1.1.1 300 ; telnet 10.1.1.1 400 ; ssh 10.1.1.1

Luego presionamos Ctrl+C 4 veces y listo.

(Fuente: Debian Administration)

Como convertir un sistema de archivos de ext3 a ext4 sin perder nada

Primero que nada booteamos desde el nuevo livecd de ubuntu 9.04

Verificamos si tenemos instalado tunefs con:

$ sudo aptitude install tunefs

Para convertir un existente sistema de ficheros ext3 a ext4 emplearemos el siguiente comando:

$ tune2fs -O extents,uninit_bg,dir_index /dev/nuestro_sistema_de_archivos

Donde nuestro_sistema_de_archivos es la ruta donde tenemos instalado el sistema.

Por ejemplo si lo tenemos montado en /dev/sda1 ejecutamos:

$ tune2fs -O extents,uninit_bg,dir_index /dev/sda1

Despues tenemos que pasar el maravilloso fsck al sistema de archivos:

$ fsck -pf /dev/sda1

El paso anterior es básico dando consistencia al sistema de archivos, ya que sin el ext4 no montara.

Montamos la unidad de la siguiente manera:

$ mount -t ext4 /dev/sda1 /punto_de_montaje

Prey: rastrea tu laptop robada (OSX, Linux, Unix)

Navegando por malas aguas me he encontrado con una solución de seguridad muy buena de un desarrollador al que le robaron su laptop, que al no soportar el coraje de lo sucedido realizo este script que nos ayuda de manera muy completa quien fue, como y donde recuperarla.

Dandonos información valiosa como:

Información de red

  • La dirección IP pública y privada de donde esté conectado el PC.
  • El IP del gateway de la red que está usando para salir a Internet.
  • La dirección MAC de la tarjeta o controlador de red por el cual esté conectado a la red.
  • El nombre e ESSID de la red WiFi a la que esté conectado, en caso que lo esté.
  • Un listado de conexiones activas en el momento en que se ejecute el programa.

Información interna del PC

  • Cuánto tiempo lleva encendido el aparato.
  • Número de usuarios logeados.
  • Un listado con los programas en ejecución.
  • Un listado con los archivos modificados en la última hora (o el número de minutos que tú definas).

Información del ladrón

  • En caso que el PC tenga una webcam, una foto del impostor.
  • Un pantallazo del escritorio, para que veas qué está haciendo.
  • El tatuaje indistinguible de nuestro nuevo amigo.

¿Como Funciona?

Cada cierto intervalo de tiempo (default = 10 minutos) el programa se ejecuta y revisa si en la configuración pusiste una URL de checkeo o no. En caso que no lo hayas hecho, o que lo hayas hecho y la URL sí exista, el programa hará el proceso de recolección y envío de datos. Si definiste una URL que no existe, el programa se apagará para volver a ejecutarse en 10 minutos más.

Ejemplo

Para instalarlo:

  • Bajamos el siguiente paquete
  • Abrimos la grandiosa terminal y ejecutamos lo siguiente:

$ wget http://bootlog.org/downloads/prey-0.1.zip

$ unzip prey-0.1.zip

$ cd prey-0.1

$ chmod +x install.sh

$ ./install.sh

  • Seguimos las instrucciones como muestro a continuacion:
    prey

Escalamiento de privilegios en la rama 2.6.x del kernel de Linux

Leímos en Hispasec que se descubrió una vulnerabilidad en el kernel de Linux que permitiría escalamiento de privilegios, por lo que cualquier usuario normal podría volverse root.

La vulnerabilidad se debe a una función llamada readlink. Hasta el momento no se ha publicado ningún exploit, pero es uno de los problemas más graves a los que se ha enfrentado Linux ya que toda una rama que se creía segura es vulnerable antes de la versión 2.6.28.1

(Actualización: 29-Ene-2009. Damián)

Como bien explican aquí, la vulnerabilidad se debe a que el valor de retorno de la función readlink puede ser negativo y al no haber validación se podría provocar un buffer underflow. El código problemático se encuentra en la función follow_link en fs/encryptfs/inode.c. Por lo que sólo serían vulnerables aquellos sistemas linux que utilicen el sistema de archivos eCryptfs.

Ext4

Como mencioné en una entrada anterior , Ext4 ya está listo para sustituir a Ext3 y el kernel más nuevo de Linux ya incluye soporte estable para él. Los sistemas de archivos Extended (Ext, Ext2,…) han sido históricamente usados por defecto en sistemas Linux y son herederos de los viejos sistemas de archivos Unix; aunque Linux soporta otros sistemas de archivos más modernos como ReiserFS y XFS. En esta entrada voy a explicar a grandes rasgos las mejoras de Ext4 respecto a Ext3.

Ext3 supuso una mejora respecto a Ext2 al introducir journaling. El journaling es una técnica mediante la cual se lleva un registro de las actividades en el sistema de archivos y facilita la recuperación del sistema de archivos después de una interrupción abrupta (como una falla eléctrica). Cuando se borra un archivo ocurren dos procesos principales: eliminación de la entrada del directorio que lo contiene y marcado de los bloques ocupados como bloques libres en el mapa de bloques; si no se completan los dos procesos el sistema de archivos puede quedar en un estado inconsistente; además detectar y recuperarse del fallo puede toma mucho tiempo, pero con journaling esto se puede hacer de manera más eficiente y segura.

No me voy a centrar en datos sensacionalistas sobre el tamaño de archivos que ahora soporta, o la cantidad de archivos que puede contener cada directorio, ya que eso NO es un diferenciador importante a la hora de comparar sistemas de archivos. Quiero enumerar las nuevas características y mejoras conceptuales que se introdujeron:

  • Extents: Los sistemas de archivos derivados de Unix (como Ext3) mantienen un esquema de mapeo de bloques para llevar el rastreo de bloques que pertecen a un archivo, por ejemplo un i-nodo mantiene una lista de bloques de un archivo. Para archivos grandes esto es ineficiente en tiempo y espacio pues el mapa de bloques es enorme, ya que los bloques son de tamaño fijo. Un extent es básicamente un espacio de bloques físicamente adyacentes que ahora se puede utilizar en el mapeo de un archivo; esto mejora el rendimiento, reduce el espacio y reduce la fragmentación.
  • Alojamiento multibloque: Cuando Ext3 quiere escribir información a disco, el alojador de bloques decide qué bloques libres van a ser usados para escribir los datos. El problema es que el sistema de Ext3 sólo permite alojar un bloque (4 Kb) a la vez; esto no sólo es ineficiente para el tamaño de los archivos que se manejan actualmente, también impide que se pueda optimizar la asignación de bloques pues el alojador de bloques no sabe de qué tamaño es todo lo que se va a escribir. Con el alojamiento multibloque se pueden pedir muchos bloques al mismo tiempo. Esta característica ayuda a reducir la fragmentación.
  • Alojamiento retartado: Esta característica ya viene incluida en sistemas de archivos modernos como XFS, ZFS y Reiser, y consiste en retardar el alojamiento de bloques lo más posible. Lo que pasa actualmente es que cuando un proceso pide escribir a disco, inmediatamente se asigna el bloque al que se va a escribir, aún si la información va a estar en caché un tiempo o si se va esperar un tiempo antes de escribir. Este método trae desventajas como cuando un proceso está escribiendo un stream, ya que no se sabe de qué tamaño va a ser el archivo finalmente. El alojamiento retardado asigna los bloques hasta que realmente se va a escribir a disco, lo que permite optimizar el alojamiento. Esta característica se combina perfectamente con las dos anteriores: extents y alojamiento multibloque; para mejorar el rendimiento y la fragmentación.
  • Defragmentación al vuelo: Aunque con las características anteriores la fragmentación se va a reducir en la mayoría de lo casos, ahora existe la opción de defragmentar el sistema de archivos al vuelo. Esto porque en sistemas de alta concurrencia la fragmentación es un gran problema y la leyenda urbana de que Ext3 se fragmenta poco es completamente falsa para un sistema de mediana concurrencia al disco duro. Esta característica no está disponible todavía en el kernel (2.6.28) pero existe una herramienta llamada e4defrag por el momento.
  • Prealojamiento persistente: Cuando una aplicación necesite reservar espacio en disco pero todavía no tenga los datos que se van a escribir, se puede prealojar el espacio en el sistema de archivos; esto es que se construyan las estructuras internas del sistema de archivos y se reserven los bloques necesarios. Por ejemplo lo que hacen los clientes P2P es escribir un archivo relleno de ceros del tamaño del archivo que van a bajar, pero esto es sucio e ineficiente. Con el prealojamiento este problema se soluciona y además se reduce la posibilidad de fragmentación.

Además se introdujeron otras mejoras en los i-nodos y en el journal. Un efecto colateral con todas las mejoras es que el fsck ahora va a ser mucho más rápido, por lo que ya no tendremos que desesperarnos cada vez que nuestro Debian necesite hacer un chequeo de disco.


[Fuente]

[Fuente2]

2008 el año de las grandes fallas en Internet

Este 2008 fue el año de las grandes catástrofes en Internet segun Hispasec, término que me parece muy interesante y cierto pues ha habido una serie de problemas que afectan a Internet en general como en ningún otro año hubo.

  • El descuido del OpenSSL en Debian : Debian ha sido una de las distribuciones más estables y seguras, con la premisa de mantener solamente versiones estables de software, aunque viejas. En 2006 un desarrollador comentó una línea de código del paquete open-ssl para evitar algunas molestas alertas del compilador, aunque antes se asesoró con los desarrolladores de open-ssl para tener la certeza de que no estaba haciendo nada mal. El problema de comentar esa línea es que se redujo drásticamente el rango de valores para escoger llaves publicas, provocando que la “aleatoriedad” al escoger llaves ya no sirviera como medida de seguridad, y se pudieron calcular muchísimas listas que contenían todas las posibles llaves. Esta falla ya esta solucionada.
  • Kaminsky y los DNS : En julio Dan Kaminsky descubre una vulnerabilidad en el protocolo, lo que permitiría falsificar las respuestas de un DNS, y así un atacante podría apoderarse de una zona o dominio entero; y, por consiguiente el atacante podría enviar páginas falsas pareciendo correctas a miles de personas. Esta falla ya esta solucionada
  • La falla en la arquitectura del BGP : Tony Kapela y Alex Pilosov demostraron una ataque que permite interceptar el tráfico de Internet en una forma casi idetectable. Es una falla en la arquitectura del protocolo BGP (Border Gateway Protocol), que permite interceptar y hasta modificar el tráfico de Internet que no esté cifrado y sin que ninguna persona pueda darse cuenta. Esta vulnerabilidad no se basa en algún error de software, es una falla en la arquitectura del protocolo BGP, ya que este protocolo que se basa en la confianza mutua. La falla no esta solucionada, y la solución que proponen es que los routers en su comunicación usen certificados de seguridad que eviten la confianza mutua.
  • La supuesta denegación de servicio del TCP : Outpost24 presume haber descubierto una vulnerabilidad en el protocolo TCP, que podría causar una denegación de servicio a cualquier implementación del mismo. Cabe destacar que el protocolo TCP es el más importante para la comunicación en todo Internet. No se han dado detalles del problema.
  • Los avances en la inseguridad de Wireless : Este año se caracterizó entre otras cosas por empezar a sacar provecho de los GPU. Hay que señalar que un GPU es el procesador de las tarjetas gráficas. Algunas compañías aseguran poder crackear una clave WPA mucho más rapidamente mediante el uso combinado de GPU y CPU. Poco después se descubren vulnerabilidades en el algoritmo TKIP (un cifrado muy utilizado en WPA). Todo el mundo comentaba que la seguridad en redes wireless está por los suelos, pero la verdad es que el problema con TKIP ni siquiera facilita la obtención de la clave, sólo permite descifrar parcialmente los paquetes; y, para realmente obtener una aceleración impresionante en el crackeo por GPU necesitaríamos una tarjeta gráfica realmente cara, no una convencional como anunciaban esas empresas de software.
  • El clickjacking : Jeremiah Grossman y Robert Hansen, dos expertos en seguridad Web, se reunen para demostrar una vulnerabilidad basada principalmente en las etiquetas iframe. La vulnerabilidad permite a un atacante forzar a que un usuario, sin saberlo, “haga click” en un vínculo que el atacante quiera. Lo peor es que todos los navegadores son vulnerables y la única forma en la que se puede evitar es deshabilitando las etiquetas iframe en el navegador.

¡ Esperemos un mejor año !

Nuevo kernel linux (2.6.28)

Normalmente no hacemos comentarios acerca de nuevas versiones del kernel, pero esta versión es diferente pues introduce dos cambios especialmente radicales que van a alterar el mundo linux.

La primera de ellas es la elimición de la etiqueta experimental al sistema de archivos Ext4. Con lo que ahora Ext4 es una opción estable para sutituir al viejo Ext3. Veremos en un próximo artículo las mejoras respecto a Ext3.

La segunda es la mejora del manejo de memoria en tarjetas gráficas, sustituyendo la vieja administración (ineficiente) que se remonta a la década de los 80, por un nuevo sistema de administración al nivel que se merecen los poderosos y modernos GPUs que tan en boga están últimamente.

Otras mejoras menores son el soporte para para protección contra golpes, que permite desmontar las unidades de disco en caso de caída, cuyo fin es dar esa funcionalidad en laptops que cuenten con discos duros con soporte para entrar inmediatamente en suspensión y acelerómetros que indiquen la caída. También se introdujo una mejora en el manejo general de memoria para eficientar el “swapping” en sistemas con una gran cantidad de memoria; ahora las páginas de memoria se guardan en tres listas diferentes que indican que tan factible es para una página ser “swappeada”, antes sólo estaban en una lista y cada que se quería hacer “swap” había que recorrer toda la lista de páginas buscando candidatos; por ejemplo, ahora las páginas de un ramfs están en una lista especial de páginas que no pueden ser “swappeadas”.

[Fuente]