Làm cách nào tôi có thể xác nhận rằng các nhị phân trong Ubuntu của tôi là từ mã nguồn mà nó phải đến từ?


25

Giống như 99% người dùng, tôi cài đặt Ubuntu từ các tệp nhị phân đã sẵn sàng.

Làm cách nào tôi có thể tự xác minh rằng các tệp nhị phân đó thực tế là từ mã nguồn gốc từ Ubuntu?

Sẽ tốt hơn nếu xác minh rằng NSA / ai đó đã không hợp tác với Ubuntu hoặc Linode (nhà cung cấp VPS của tôi) để gây rối với các tệp nhị phân. Nếu chúng tôi có thể xác minh các tệp nhị phân, họ cũng sẽ không thể thử điều này ngay từ đầu vì sẽ dễ dàng gọi chúng ra trên đó.


Bạn có thể xem mã nguồn, sử dụng apt-get sourcehoặc sử dụng mã đó để biên dịch mã nguồn của riêng bạn. Xem câu hỏi này: askubfox.com/questions/28372/ khăn
Wilf

4
Có thể hữu ích: Làm thế nào để xác minh rằng các tệp được cài đặt gói khớp với bản gốc? (Debian, nhưng phải đủ gần để có thể áp dụng cho Ubuntu)
CVn

@ MichaelKjorling Tôi đang tìm phiên bản của chúng tôi cho câu hỏi đó ...
Braiam

1
@Braiam Tôi nghĩ trong trường hợp cụ thể này Debian / Ubuntu không tạo ra nhiều sự khác biệt. Có gì không tạo sự khác biệt là mục tiêu của các câu hỏi; một trong những liên kết ở trên chủ yếu nhằm phát hiện các tệp bị hỏng tại một số điểm sau khi cài đặt, trong khi đó, mục đích này dường như nhằm phát hiện các tệp bị thay thế hoặc thay đổi độc hại hoặc các tệp nhị phân không khớp với mã nguồn có mục đích. Các vấn đề khác nhau, đó là lý do tại sao tôi chỉ gắn thẻ liên kết "có thể hữu ích".
CVn

3
Thật thú vị, tôi nghĩ ngay cả Gentoo cũng tránh hoàn toàn vấn đề này: ở đó, bạn phải tin tưởng vào kho lưu trữ mã nguồn được tải xuống. Sử dụng chữ ký mã hóa tất cả những gì bạn muốn; nếu bạn không thể tin tưởng rằng những gì đã ký là chính hãng và đó là những gì nó được dự định là có, thì thực sự không có gì để làm.
một CVn

Câu trả lời:


36

Bạn có thể tải về mã nguồn và tự biên dịch nó. Nhưng chờ đã - trước tiên bạn phải kiểm tra mã nguồn đó, bởi vì nếu Canonical hợp tác với NSA, có lẽ họ đã nhập một số mã ở đâu đó để cho phép keylogger hoặc thứ gì đó có thể được kích hoạt từ xa.

Vì thế...

  1. Sau khi tải xuống mã nguồn,
  2. bạn phải kiểm tra tất cả mã
  3. và sau đó biên dịch nó!

Nhưng chờ đã - bạn có thể tin tưởng vào trình biên dịch không?


15
"Bạn có thể tin tưởng trình biên dịch?" Đó là khi bạn bắt đầu tiếp tục và đọc câu hỏi Làm thế nào để biên dịch trình biên dịch C từ đầu, sau đó biên dịch Unix / Linux từ đầu (và các câu trả lời liên quan).
CVn

17
Nhưng bạn có thể tin tưởng vào phần cứng của bạn? Có lẽ bạn cũng nên xây dựng máy tính của mình từ đầu, và đó là nơi bạn gặp phải một số vấn đề ...
Thomas

Và bạn có thể tin tưởng vào trình ảo hóa đang chạy VM của bạn không?
Fernando Correia

1
Tôi không cho rằng có thể có bất kỳ việc sử dụng nào trong việc biên dịch nguồn trên một vài trình biên dịch tương tự từ các tác giả khác nhau và kiểm tra sự khác biệt. Nhưng làm thế nào để bạn biết các tác giả không thực sự là cùng một thực thể dưới bí danh? Hoặc nhiều khả năng, điều gì sẽ xảy ra nếu tất cả các trình biên dịch có tổ tiên tham nhũng chung? Và không ai trong số đó sẽ giúp các vấn đề tin tưởng phần cứng nào.
Keen

6
Nhưng chờ đã - bạn có thể tin tưởng rằng Askubfox không bị NSA lọc hoặc kiểm soát hoàn toàn để tránh cho bạn biết tất cả các khu vực có khả năng bị xâm nhập không?
TheZ

9

Nếu bạn không sẵn sàng chấp nhận "vì Ubuntu nói như vậy", thì bạn không thể.


2
Tôi muốn thêm rằng bạn có thể [cố gắng] xác minh xem các nhị phân trên hệ thống cụ thể của bạn có khớp với các nhị phân gốc của Ubuntu hay không bằng cách so sánh tổng kiểm tra. Tất nhiên, một rootkit thích hợp sẽ không thể dễ dàng phát hiện từ bên trong hệ thống trong mọi trường hợp.
Peteris

2
Điều đó chỉ hoạt động nếu bạn tin tưởng rằng "nhị phân Ubuntu gốc" không bị giả mạo. Nói cách khác, nếu bạn chấp nhận rằng chúng tốt vì Ubuntu nói như vậy. ;)
fkraiem

5

Ubuntu cung cấp các phương tiện thuận tiện để biên dịch một gói trên máy của riêng bạn. Tuy nhiên, không có cách nào để kiểm tra xem tệp thực thi trong gói nhị phân mà bạn đã tải xuống có được lấy từ mã nguồn đó không. Quá trình ký được sử dụng bởi Ubuntu làm giảm đáng kể nguy cơ giả mạo bên thứ ba với các gói, nhưng bạn vẫn phải tin rằng không có mã độc hại nào được thêm vào trước khi biên dịch không được phản ánh trong mã nguồn có thể tải xuống.

Lý do là rất khó để có được chính xác các nhị phân giống như trong các gói đã biên dịch, vì chúng phụ thuộc vào phiên bản trình biên dịch chính xác, các tùy chọn của nó và có thể cũng có một số đường dẫn hoặc biến môi trường được biên dịch thành nhị phân. Vì vậy, bạn sẽ không thể có được chính xác nhị phân tương tự khi tự biên dịch, điều này sẽ "xác minh" nhị phân đã tải xuống.

Thực sự có một cộng đồng nghiên cứu nhỏ xung quanh chính xác vấn đề này - làm thế nào để biên dịch có thể tái tạo.

Phải nói rằng, so sánh thủ công nhị phân được tải xuống và tự biên dịch có thể phát hiện mã được thêm / sửa đổi, do đó sẽ rất rủi ro khi ai đó cung cấp mã nhị phân và mã nguồn để ẩn thứ gì đó trong tệp nhị phân, vì điều này có thể được phát hiện.

Nhưng sau đó cũng có vấn đề về việc tin tưởng trình biên dịch, như đã đề cập ...


4

Đó là một vấn đề khó khăn để tạo ra các nhị phân chính xác giống nhau trên hai máy khác nhau. Dự án TOR thực hiện điều này như một phần thường xuyên trong bản dựng của họ. Có một mô tả làm thế nào họ làm điều đó. DebianFedora dường như có các dự án làm cho điều này có thể thực hiện được cho bản phân phối này, nhưng chúng đang ở giai đoạn đầu. Nó không có vẻ như có bất kỳ công việc thực hiện trong Ubuntu .

Để tái tạo Gói nhị phân Ubuntu, bạn cần tái tạo môi trường mà nó được tạo càng gần càng tốt. Để bắt đầu, trước tiên bạn cần tìm hiểu gói này được biên dịch ở đâu và như thế nào. Dường như không dễ tìm thấy thông tin đó.


Chi tiết về những gì cụ thể?
Josef

Mặc kệ tôi, bối rối với một bài đăng khác :)
Tim

0

Kiểm tra với MD5 của Ubuntu. Nếu MD5 bạn nhận được từ các tệp của mình khớp với tệp được xuất bản bởi Ubuntu thì không ai bị giả mạo với các nhị phân nằm giữa.


Đây không phải là câu hỏi của OP. Anh ấy lo lắng về việc mã nguồn được phân phối bởi Ubuntu không giống như các mã nhị phân được phân phối bởi Ubuntu. Nói cách khác, họ nói "đây là nguồn", nhưng nguồn mà họ đang xây dựng các nhị phân từ thực tế có thêm một số mã được giới thiệu NSA. Anh ấy không lo lắng rằng các nhị phân đã bị giả mạo sau khi xây dựng.
John Chrysostom

OP đã đăng: "Làm thế nào tôi có thể tự xác minh rằng những nhị phân đó thực tế là từ mã nguồn gốc từ Ubuntu?" Câu trả lời cho câu hỏi đó. Một cái khác thật lố bịch, ai có thể biết liệu nhân Linux không bị ai giả mạo (NSA hay ai bao giờ?) Dễ dàng, tải xuống mã, đọc nó và một khi bạn vui lòng tự biên dịch nó. Ngoài ra, câu trả lời của tôi là cho câu hỏi tôi đã sao chép khi bắt đầu bình luận này.
YoMismo

Bạn chưa trả lời câu hỏi bạn trích dẫn. Sử dụng MD5 chỉ cho phép anh ta xác minh rằng các nhị phân trên máy tính của mình khớp với các nhị phân trên máy chủ. Họ KHÔNG để anh ta xác minh rằng các tệp nhị phân anh ta tải xuống được tổng hợp từ nguồn Ubuntu cung cấp. Bây giờ, tôi đồng ý rằng các câu hỏi của anh ấy là vô lý vì lý do bạn (và những người khác) đã nêu. Nhưng đó là câu hỏi của anh ấy.
John Chrysostom

0

Đó là một công việc khó khăn, tôi nghĩ rằng niềm tin ở đây tốt hơn công việc phức tạp này. Nhưng câu hỏi Bạn có thể tin tưởng?

Vì phần mềm nguồn mở cung cấp nhiều quyền tự do cho người dùng thay đổi mã, bạn không thể tin tưởng bất cứ ai.

Hãy tạo một kịch bản cho mục đích này, tôi muốn kiểm tra xem Ubuntu == source code, chờ xem Tại sao bạn không thử so sánh các gói với nguồn của chúng?

  1. Xây dựng gói nhị phân cho Ubuntu từ nguồn.
  2. so sánh gói nhị phân tự xây dựng với gói được phân phối bởi nhà phân phối.
  3. Sử dụng nguồn apt-get -b để tải xuống nguồn.

Nhưng đối với tôi, việc so sánh tốt cung cấp cho bạn các kết quả khác nhau nhỏ do các dấu thời gian, môi trường khác nhau, nhưng điều đó chứng tỏ rằng nó không phải từ mã nguồn!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.