I'm curious, in theory, how can one know if for example kernel that is distributed with Ubuntu Linux is really what is on https://github.com/torvalds/linux and not some modified kernel which contains tracking code etc...
In realtà, ciò che è distribuito con la distribuzione di solito non è ciò che è distribuito tramite l'albero git di torvald. La tua distribuzione Linux non è probabilmente un kernel vaniglia.
La ragione di ciò è che i distributori di solito risolvono il backport che può avere un impatto sui loro clienti da varie fonti. In Fedora, ad esempio (questi esempi sono stati scelti esclusivamente perché ho esperienza recente nella compilazione personalizzata di questi pacchetti):
- Il kernel (attualmente
3.11.4-201.fc19.x86_64
al momento della scrittura 'contiene un numero di patch per le correzioni v4l, iommu, drm-intel-nex, iwl (intel wireless) e così via.
- Grub2 contiene un numero di patch per risolvere vari problemi (di rottura) con la sua build e patch per far funzionare le build EFI.
Su Fedora (e altri sistemi basati su yum) yumdownloader --source kernel
tirerà verso il basso l'RPM del kernel sorgente - aprilo e troverai tutto ciò che è stato usato per compilare i pacchetti del kernel.
Quindi, no, il tuo Linux (e anche i tuoi pacchetti) potrebbero non essere pacchetti di vanilla vendor.
Ora, il prossimo:
The real question is, can you be sure that distributed open source software is really what you expect it to be?
Bene, il punto di cui sopra è che il contenuto del database del pacchetto potrebbe non essere quello che ci si aspetta che siano, ma la domanda è e potrebbe contenere contenuti dannosi? .
La risposta è che c'è poco da dire come utente finale a meno che non si ispezioni l'origine e si ricostruisca il pacchetto da quello.
Tuttavia , la maggior parte dei processi di invio dei pacchetti comporta un piccolo rigore. Di solito, non puoi semplicemente presentarti e diventare un manutentore di un pacchetto popolare. Dovresti essere conosciuto per i contributi, approvato da un membro dello staff / membro del comitato / qualunque sia ciò che ti dà i diritti di spingere i pacchetti.
Riesco a vedere che questo è un possibile vettore di attacco in un software oscuro, ma i pacchetti principali penso che sia sufficientemente probabile che un attacco possa essere rilevato alla fine. La maggior parte dei pacchetti sono costruiti dalla sorgente e ricevono controlli accurati a causa di bug, problemi degli utenti e così via. Lo sviluppo continua e i pacchetti vengono ricostruiti. Le patch potrebbero fallire. Qualcuno, da qualche parte, probabilmente noterà una stranezza, in pratica.
Su questa base, penso che tu debba prendere una decisione basata sul rischio. È ciò che intendi proteggere così prezioso che credi che avversari altamente capaci e persistenti provino a fare backdoor di un pacchetto in una distribuzione Linux per arrivare a te? Se è così, vai avanti e costruisci la tua distribuzione (non c'è ragione per cui non puoi rubare i pacchetti di un distributore esistente e semplicemente controlla attentamente / compila il tuo, a proposito: questa è la bellezza dell'open source).
Altrimenti, vorrei (personalmente) accettare il rischio esterno.