¿Qué repositorios de paquetes de linux distro son seguros y cuáles no?

14

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?

grm
fuente
si el sitio de la distribución es texto claro http o ftp y la distribución se obtiene como una iso de esta conexión y esta conexión base es MITM, ¿qué tan bueno es la firma de un paquete 'post-mortem' en los paquetes de actualización?
n611x007

Respuestas:

7

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.

Caleb
fuente
1
Hay un paquete para Arch llamado paccheckque hace esto, compara los paquetes con diferentes espejos antes de la instalación y advierte sobre cualquier discrepancia.
Wolf
Las listas espejo son probablemente públicas, ¿entonces un atacante no podría teóricamente trazar a MITM todas por patrón? Si un atacante apunta específicamente a su servidor, ¿no parece esto aún más probable? Sin embargo, esto es probablemente más de lo que hace la mayoría de Linux.
n611x007
10

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 aptadministrador 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.

jmtd
fuente
5

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.

kanak
fuente
y también lo hacen los paquetes
aguas abajo,
3

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

Alejandro
fuente
2
Todo es cierto, pero los paquetes no están firmados y, por lo tanto, siguen siendo vulnerables a los ataques de compromiso mitm y mirror, por remota que sea la posibilidad. Ha sido una característica solicitada desde hace mucho tiempo y la razón principal por la que dejé de usar a regañadientes Arch. Dicho esto, hay una discusión en curso sobre esto en los foros y wiki de Arch y Pacman; es un problema difícil de resolver. Aparte de este problema, Arch es una distribución fantástica.
Eli Heady
@Eli: No estoy debatiendo la verdad de esto, no tengo idea del estado de las cosas, pero ¿no sería un mercado desvaneciente para atacar? De acuerdo, Arch es una distribución bastante popular, pero ¿no se basan generalmente todos estos tipos de travesuras en poder ganar dinero?
boehj
1
Claro, después de todo, esta es la razón por la cual la base de usuarios de Windows está dirigida más que la de Linux, ¿verdad? La cuestión es que lo que se aplica al agregado generalmente no se aplica exactamente al individuo. Lo que quiero decir es que el modelo de amenaza de cada persona es diferente: si tiene motivos para temer que lo ataquen, debe tomar las medidas adecuadas para disminuir el riesgo. La falta de firma de paquetes presenta vectores de ataque que no son tan difíciles de explotar. Si tiene partes valiosas para proteger, este problema debe tenerse en cuenta en su estrategia de mitigación de amenazas.
Eli Heady
Puede instalar Arch desde un CD / DVD y luego asegurarse de verificar que las sumas md5 / sha1 de los paquetes binarios corresponden a las sumas de varios espejos antes de la instalación, similar a lo que sugirió Caleb. En cualquier caso, nunca hay un 100% de seguridad, aunque veo el punto de la firma del paquete y deseo que Arch lo tenga.
Alexander
Entonces, ¿cómo se logra que la suma de verificación se entregue de una manera más segura que texto claro http o ftp? ¿debería la verificación de firma estar en su lugar por qué medios sucede exactamente en el arco?
n611x007
1

¿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, como CHECKSUMS.MD5. Contiene una lista de sumas de verificación de los paquetes.

La distribución tiene una herramienta oficial llamada slackpkgpara descargar / instalar paquetes desde un espejo. Después de actualizar la base de datos de repositorio local con slackpkg updatela 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 gpgo simplemente importarla desde el CD de instalación congpg --import GPG-KEY

Hay otra herramienta no oficial slapt-getpara Slackware. ¡También es compatible con los controles GPG! De manera similar a slackpkg.

vago
fuente
-2

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.

baweaver
fuente
44
No está respondiendo la pregunta: se trata específicamente de verificar las firmas de los paquetes descargados (y los puertos, en el caso de * BSD).
Gilles 'SO- deja de ser malvado'
1
Estoy de acuerdo con @Gilles; OpenBSD es un gran sistema operativo, pero @grm preguntó sobre la seguridad de distribución de paquetes de Linux.
livingstaccato