Wie kann ich bestätigen, dass die Binärdateien in meinem Ubuntu aus dem Quellcode stammen, aus dem sie stammen sollen?

25

Wie 99% der Benutzer installiere ich Ubuntu von vorgefertigten Binärdateien.

Wie kann ich mich verifizieren, dass diese Binärdateien tatsächlich aus dem ursprünglichen Quellcode von Ubuntu stammen?

Es wäre gut zu überprüfen, ob NSA / Jemand nicht mit Ubuntu oder Linode (meinem VPS-Provider) zusammengearbeitet hat, um mit den Binärdateien herumzuspielen. Wenn wir die Binärdateien überprüfen könnten, wäre es auch unwahrscheinlich, dass sie dies versuchen, da es einfach wäre, sie darauf abzurufen.

mark1111
quelle
Sie können sich den Quellcode ansehen, ihn verwenden apt-get sourceoder zum Kompilieren Ihres eigenen Codes verwenden . Siehe diese Frage: askubuntu.com/questions/28372/…
Wilf
4
Möglicherweise nützlich: Wie überprüfe ich, ob die im Paket installierten Dateien mit den Originalen übereinstimmen? (Debian, sollte aber nah genug sein, um auf Ubuntu anwendbar zu sein)
ein Lebenslauf vom
@ MichaelKjörling Ich habe nach unserer Version dieser Frage
gesucht
1
@Braiam Ich denke, in diesem speziellen Fall macht Debian / Ubuntu keinen großen Unterschied. Was den Unterschied ausmacht , ist das Ziel der Fragen; Das oben verlinkte Programm versucht hauptsächlich, beschädigte Dateien zu einem bestimmten Zeitpunkt nach der Installation zu erkennen, wohingegen dieses Programm böswillig ersetzte oder geänderte Dateien oder Binärdateien zu erkennen scheint, die nicht mit dem angegebenen Quellcode übereinstimmen. Verschiedene Probleme, weshalb ich den Link nur als "evtl. sinnvoll" getaggt habe.
einen Lebenslauf vom
3
Interessanterweise vermeidet Gentoo dieses Problem, da Sie den heruntergeladenen Quellcode-Archiven vertrauen müssen. Verwenden Sie nach Belieben kryptografische Signaturen. Wenn Sie nicht darauf vertrauen können, dass das, was signiert ist, echt ist und dass es das ist, was es angeblich ist, gibt es wenig bis gar nichts zu tun.
einen

Antworten:

36

Sie können den Quellcode herunterladen und selbst kompilieren. Aber warten Sie - zuerst müssen Sie den Quellcode überprüfen, denn wenn Canonical mit der NSA zusammengearbeitet hat, haben sie wahrscheinlich irgendwo einen Code eingegeben, um einen Keylogger oder etwas zu ermöglichen, das per Fernzugriff aktiviert werden kann.

So...

  1. nach dem Download des Quellcodes,
  2. Sie müssen den gesamten Code überprüfen,
  3. und dann kompiliere es!

Aber warte - kannst du dem Compiler vertrauen ?

SPRBRN
quelle
15
"Können Sie dem Compiler vertrauen?" Dann gehen Sie auf eine Tangente und lesen die Frage, wie Sie den C-Compiler von Grund auf neu kompilieren und anschließend Unix / Linux von Grund auf neu kompilieren (und die dazugehörigen Antworten).
einen Lebenslauf vom
17
Aber können Sie Ihrer Hardware vertrauen? Vielleicht sollten Sie Ihren Computer auch von Grund auf neu bauen, und hier treten einige Probleme auf ...
Thomas,
Und können Sie dem Hypervisor vertrauen, auf dem Ihre VM ausgeführt wird?
Fernando Correia
1
Ich nehme nicht an, dass es sinnvoll sein könnte, den Quellcode auf einigen ähnlichen Compilern verschiedener Autoren zu kompilieren und die Ausgabe auf Unterschiede zu überprüfen. Aber woher wissen Sie, dass die Autoren unter Pseudonymen nicht wirklich dasselbe sind? Oder eher, was ist, wenn all diese Compiler einen gemeinsamen korrupten Vorfahren haben? Und nichts davon würde den Problemen mit der Hardware-Vertrauenswürdigkeit auf jeden Fall helfen.
Keen
6
Aber warten Sie - können Sie darauf vertrauen, dass askubuntu nicht von der NSA gefiltert oder vollständig kontrolliert wird, um Ihnen nicht alle potenziell gefährdeten Bereiche mitzuteilen?
TheZ
9

Wenn Sie nicht bereit sind zu akzeptieren, "weil Ubuntu dies sagt", können Sie dies nicht.

fkraiem
quelle
2
Ich möchte hinzufügen, dass Sie durch Vergleichen der Prüfsummen überprüfen können, ob die Binärdateien auf Ihrem speziellen System mit den Ubuntu-Original-Binärdateien übereinstimmen. Natürlich ist ein geeignetes Rootkit auf keinen Fall leicht vom System aus zu erkennen.
Peteris
2
Das funktioniert nur, wenn Sie darauf vertrauen, dass die "ursprünglichen Ubuntu-Binärdateien" nicht manipuliert wurden. Mit anderen Worten, wenn Sie akzeptieren, dass sie gut sind, weil Ubuntu dies sagt. ;)
fkraiem
5

Ubuntu bietet komfortable Möglichkeiten, ein Paket auf Ihrem eigenen Rechner zu kompilieren. Es ist jedoch nicht möglich zu überprüfen, ob die ausführbare Datei in einem von Ihnen heruntergeladenen Binärpaket aus diesem Quellcode stammt. Der von Ubuntu verwendete Signaturprozess verringert das Risiko von Manipulationen durch Dritte an den Paketen erheblich. Sie müssen jedoch darauf vertrauen, dass vor der Kompilierung kein schädlicher Code hinzugefügt wurde, der nicht im herunterladbaren Quellcode enthalten ist.

Der Grund dafür ist, dass es äußerst schwierig ist, genau dieselben Binärdateien wie in den kompilierten Paketen zu erhalten, da diese von der genauen Compilerversion, ihren Optionen und wahrscheinlich auch von einigen Pfaden oder Umgebungsvariablen abhängen, die in die Binärdatei kompiliert wurden. Daher können Sie beim Kompilieren nicht genau dieselbe Binärdatei erhalten, wodurch die heruntergeladene Binärdatei "verifiziert" wird.

Es gibt tatsächlich eine kleine Forschungsgemeinschaft, die sich mit genau diesem Problem befasst - wie man die Kompilierung reproduzierbar macht.

Having said that, heruntergeladen ein manueller Vergleich eines binären und eine selbst erstellte man kann detect hinzugefügt / geändert Code, so dass es für jemanden Angebot Binärdateien und den Quellcode zu verstecken etwas in den Binärdateien riskant sein würde, da dies nachgewiesen werden kann.

Aber dann gibt es auch das Problem, dem Compiler zu vertrauen, wie schon erwähnt ...

DCTLib
quelle
4

Es ist ein schwieriges Problem, auf zwei verschiedenen Computern exakt dieselben Binärdateien zu erstellen. Das TOR-Projekt macht dies als regulären Teil ihres Builds. Es gibt eine Beschreibung, wie sie es machen. Debian und Fedora scheinen Projekte zu haben, die dies für diese Distributionen ermöglichen, aber sie befinden sich in einem frühen Stadium. Es scheint nicht so, als ob in Ubuntu irgendwelche Arbeiten erledigt sind .

Um ein Ubuntu-Binärpaket zu reproduzieren, müssten Sie die Umgebung, in der es erstellt wurde, so genau wie möglich reproduzieren. Zunächst müssen Sie herausfinden, wo und wie diese Pakete kompiliert wurden. Es sieht nicht so aus, als wären diese Informationen leicht zu finden.

Josef
quelle
Details zu welchen konkreten?
Josef
Ignoriere mich, verwechselt mit einem anderen Beitrag :)
Tim
0

Überprüfung mit Ubuntus MD5. Wenn das MD5, das Sie aus Ihren Dateien erhalten, mit dem von Ubuntu veröffentlichten MD5 übereinstimmt, hat niemand die dazwischen liegenden Binärdateien manipuliert.

YoMismo
quelle
Dies ist nicht die Frage von OP. Er ist besorgt darüber, dass der von Ubuntu vertriebene Quellcode nicht mit den von Ubuntu vertriebenen Binärdateien identisch ist. Mit anderen Worten, sie sagen "das ist die Quelle", aber die Quelle, aus der sie die Binärdateien erstellen, enthält tatsächlich zusätzlichen von NSA eingeführten Code. Er macht sich keine Sorgen, dass die Binaries nach dem Build manipuliert wurden.
John Chrysostom
Das OP schrieb: "Wie kann ich mich verifizieren, dass diese Binärdateien tatsächlich aus dem Original-Quellcode von Ubuntu stammen?" Die Antwort ist für diese Frage. Der andere ist lächerlich, wer kann wissen, ob der Linux-Kernel nicht von irgendjemandem manipuliert wurde (NSA oder wer schon?) Einfach, den Code runterladen, lesen und wenn Sie glücklich sind, es selbst kompilieren. Ansonsten beantworte ich die Frage, die ich zu Beginn dieses Kommentars kopiert habe.
YoMismo
Sie haben die von Ihnen angegebene Frage nicht beantwortet. Mit dem MD5 kann er nur überprüfen, ob die Binärdateien auf seinem Computer mit den Binärdateien auf dem Server übereinstimmen. Sie lassen ihn NICHT überprüfen, ob die von ihm heruntergeladenen Binärdateien aus dem von Ubuntu bereitgestellten Quellcode kompiliert wurden. Jetzt stimme ich zu, dass seine Fragen aus dem Grund, den Sie (und andere) angegeben haben, lächerlich sind. Aber das war seine Frage.
John Chrysostom
0

Das ist ein harter Job, ich denke, Vertrauen ist hier besser als dieser komplizierte Job. Aber der Frage kannst du vertrauen?

Da Open-Source-Software Benutzern viele Freiheiten bietet, den Code zu ändern, können Sie niemandem vertrauen.

Lassen Ubuntu == source codeSie uns ein Szenario für diesen Zweck erstellen. Ich möchte das überprüfen . Warten Sie. Warum versuchen Sie nicht, Pakete mit ihrer Quelle zu vergleichen?

  1. Erstellen Sie ein Binärpaket für Ubuntu aus dem Quellcode.
  2. verglich das selbstgebaute Binärpaket mit dem von der Distribution veröffentlichten.
  3. Verwenden Sie apt-get -b source, um die Quelle herunterzuladen.

Aber wenn ich gut vergleiche, bekommst du geringfügig unterschiedliche Ergebnisse aufgrund unterschiedlicher Zeitstempel, Umgebungen, aber beweist das, dass es nicht aus dem Quellcode stammt!

nux
quelle