Solución:
La respuesta de Thomas Pornin a la pregunta vinculada comienza con una definición bastante buena de rootkit, creo:
Un rootkit es un conjunto de herramientas que ejecuta en una máquina de destino cuando de alguna manera obtuvo acceso a él con privilegios de nivel de root. El objetivo del rootkit es transformar ese acceso transitorio en una puerta siempre abierta.
Primero, veamos cómo encaja esto con sus puntos:
Es un fragmento de código escrito por el atacante e inyectado en un sistema.
“Inyectado en un sistema” es bastante amplio, pero preciso. No es necesario que haya sido escrito por esta atacante, sin embargo; podrían haber obtenido uno listo para usar, especialmente si está usando una herramienta común (como openssh) para mantener los privilegios elevados.
Permitir el acceso al sistema solo al usuario que escribió el código, o al menos tiene conocimiento del código
Un rootkit permite no autorizado usuario para obtener privilegios de root si conocen “el protocolo de enlace secreto” (cualquiera que sea el desencadenante del rootkit). Los usuarios autorizados (por ejemplo, administradores de sistemas) aún pueden hacer las cosas que hacen normalmente. Y otro atacante no necesita conocer los detalles de la implementación del rootkit, solo los detalles de cómo hacer que funcione (la interfaz de usuario, digamos). Un buen ejemplo de esta distinción es el rootkit de protección contra copias de Sony, que ocultaba cualquier proceso que coincidiera con un patrón de nombre determinado y fuera utilizado por varias piezas de malware no relacionadas.
Son difíciles de detectar y parchear.
Generalmente, sí, ya que el atacante tiene acceso de root y todos los privilegios que vienen con él.
Una puerta trasera es un término mucho más genérico, que generalmente se refiere a algún tipo de forma en que un usuario no autorizado puede acceder a un sistema. El nombre proviene del mundo físico, donde puede tener la puerta de entrada a un edificio vigilada, pero una puerta trasera poco conocida que no está vigilada (o menos vigilada).
Supongo que un rootkit es un subtipo de puerta trasera; el acceso específico que proporciona es un acceso raíz persistente en un sistema similar a Unix.
Sin embargo, las puertas traseras pueden cubrir un área mucho más amplia. Una de las asociaciones más comunes con las puertas traseras es la de los ex empleados descontentos. Imagine que tiene un desarrollador trabajando en su empresa en algún tipo de aplicación web que tiene un panel administrativo. Normalmente, el panel requiere un nombre de usuario y una contraseña válidos para acceder. Sin embargo, este desarrollador agregó en secreto un código que les permite hacer doble clic en la esquina superior izquierda y omitir la pantalla de inicio de sesión. Esta sería una puerta trasera (dado el acceso que no deberían), pero no es un rootkit (no hay una cuenta de root aquí).
un fragmento de código escrito por el atacante e inyectado en un sistema
No necesariamente escrito por un atacante, pero podría ser intencional por parte de los desarrolladores. “Sistema” no tiene por qué significar “computadora”, sino que también podría ser software, lo que significa que puede tener puertas traseras en cualquier lugar, pero solo hay rootkits en las máquinas.
Permitir el acceso al sistema solo al usuario que escribió el código, o al menos tiene conocimiento del código
Los rootkits no siempre permiten el acceso remoto.
Son difíciles de detectar y parchear.
No estoy seguro de que este punto sea relevante en una descripción o delineación de ninguno de los dos.