La mayoría de las distribuciones que conozco tienen algún tipo de funcionalidad de repositorio donde se pueden descargar nuevos paquetes después de la instalación. Qué distribuciones hacen esto de manera segura y cuáles no lo hacen de manera segura.
Estoy pensando especialmente en los vectores de ataque como man-in-middle y problemas como la violación de la seguridad tanto en el meta servidor del repositorio como en los espejos de archivos del repositorio.
He oído que tanto Slackware como Arch linux son muy vulnerables porque carecen de firma de paquetes. ¿Es esto cierto? ¿Hay alguna otra distribución principal de Linux que sea vulnerable a ataques simples de hombre en el medio?
Respuestas:
Esta no es una respuesta directa a su pregunta, pero hay varias cosas que puede hacer para mitigar este riesgo. La más simple es verificar los paquetes descargados con las sumas de verificación desde un espejo diferente del que descargó.
Cuando mi administrador de paquetes (
poldek
) descarga un paquete, lo tengo configurado para mantener una copia de las rpm descargadas en una carpeta de caché. Comprueba automáticamente la suma de comprobación de la descarga contra el repositorio de paquetes y advierte / aborta si no coinciden, pero si le preocupara el ataque de man-in-the-middle contra su repositorio de distribución, sería fácil escribir un script secundario que examinara todos los paquetes descargados y verifíquelos con las sumas de verificación que descargue desde un espejo diferente. Incluso puede ejecutar su primera instalación como una ejecución en seco para que los paquetes se descarguen pero no se instalen, luego ejecute su script de verificación y luego realice la instalación real.Esto no impide que un paquete comprometido entre en el repositorio de la distribución, pero la mayoría de las distribuciones tienen otras formas de mitigar eso, e incluso los paquetes firmados no garantizarían que esto nunca fuera un problema. Lo que hace es sofocar el vector de ataque de hombre en el medio objetivo. Al usar una fuente separada y descargar en un canal separado, elimina la facilidad con la que un paquete comprometido podría caerse en una línea girada.
fuente
paccheck
que hace esto, compara los paquetes con diferentes espejos antes de la instalación y advierte sobre cualquier discrepancia.Los paquetes de Debian tienen una suma de verificación, y las sumas de verificación están firmadas por una clave en el llavero de Debian. El
apt
administrador de paquetes se asegura de que el paquete descargado tenga la suma de verificación correcta y que el archivo de suma de verificación se haya firmado correctamente.fuente
Los paquetes de Fedora están firmados y sumados. Incluso los repositorios de terceros, como rpmfusion, firman sus paquetes.
Yum (el administrador de paquetes) requiere un indicador especial (
--nogpgcheck
) para instalar paquetes que no se han firmado.fuente
Todos los paquetes de Arch Linux usan una suma md5 o sha1 para verificar que todos los bits estén en su lugar. Depende del responsable del paquete elegir el algoritmo de hash. Se supone que los paquetes instalados desde AUR (a menudo solo un pequeño archivo de texto PKGBUILD) deben ser verificados por el instalador antes de ser instalados. Los repositorios que contienen los paquetes binarios oficiales son supervisados por usuarios confiables (TU).
Actualización : Arch ahora ha introducido la firma de paquetes con pacman 4
fuente
¿Quién dijo que Slackware no tiene firma de paquetes?
Los paquetes de Slackware se firman con una clave pública de Slackware. Entonces cada paquete tiene su firma con extensión
.asc
. No solo los paquetes sino también otros archivos también están firmados, comoCHECKSUMS.MD5
. Contiene una lista de sumas de verificación de los paquetes.La distribución tiene una herramienta oficial llamada
slackpkg
para descargar / instalar paquetes desde un espejo. Después de actualizar la base de datos de repositorio local conslackpkg update
la herramienta, verifica la validez de la firma del nuevo archivo MD5 y el registro de cambios, etc.Después de descargar un paquete (pero antes de instalar), se verifican la firma y el MD5 del paquete.
Se puede obtener la clave pública con
slackpkg update gpg
o simplemente importarla desde el CD de instalación congpg --import GPG-KEY
Hay otra herramienta no oficial
slapt-get
para Slackware. ¡También es compatible con los controles GPG! De manera similar aslackpkg
.fuente
OpenBSD por lejos. Todo el proyecto está dedicado a la seguridad, el equipo incluso instaló un parche de más de 5000 líneas en el apache original porque no sentían que fuera lo suficientemente seguro como para ser utilizado. Esto es a través de pkg_add pero nunca he tenido problemas con él.
fuente