Có an toàn để lại một vỏ gốc chạy trong phiên màn hình tách ra không?


20

Tôi tò mò về tính bảo mật của việc để lại một vỏ gốc chạy bên trong một phiên màn hình tách rời. Tôi thường không bao giờ làm điều này.

Ngoài khả năng tài khoản người dùng không phải root của tôi bị xâm phạm (mật khẩu bị lộ, khóa ssh bị xâm phạm, v.v.), còn có các vectơ khác xâm nhập vào phiên màn hình được bảo vệ bằng mật khẩu mà tôi nên lo lắng hoặc có thể tách rời màn hình phiên được coi là trơ?


Đây không phải là một câu trả lời bởi vì tôi không biết điều đó, nhưng tôi không nghĩ nó có bất kỳ sự khác biệt nào giữa việc làm như bạn đã nói và rời bỏ công việc sudo.
phunehehe

7
@phunehehe Có một sự khác biệt bởi vì khi một công việc hoàn thành, sudohủy kích hoạt trong khi một vỏ gốc thực sự vẫn mở.
Michael

Câu trả lời:


5

Tôi nghĩ đó là một vấn đề bảo mật, bởi vì "Bên cạnh tiềm năng tài khoản người dùng không phải root của tôi bị xâm phạm" có thể khá lớn.

Nhưng có những rủi ro gia tăng khác ngoài điều đó. Ví dụ: giờ đây bạn đã tự mở một khai thác lý thuyết cho phép một người thay đổi quyền trong thư mục ổ cắm màn hình ( /var/run/screentrên hệ thống của tôi, nhưng đôi khi /tmpđược sử dụng). Khai thác đó bây giờ có một đường dẫn để có được root, mà nó có thể không khác.

sudocó những lợi thế khác, nếu bạn có thể tự đào tạo để sử dụng nó cho từng lệnh hơn là thực hiện sudo su -. Nó ghi nhật ký các hành động (trừ khi bạn đăng nhập từ xa, không có ý nghĩa tăng cường bảo mật, nhưng sẽ cung cấp cho bạn một dấu vết về những gì bạn đã làm). Và nó giúp ngăn ngừa tai nạn bằng cách yêu cầu leo ​​thang có chủ ý cho mỗi lệnh, thay vì chuyển sang một phiên hoàn toàn đặc quyền.


1
Mặc dù hiện tại không có khai thác như vậy, tôi sẽ tiếp tục không để các shell root mở trên màn hình. Rủi ro đối với tài khoản người dùng là đủ. Cảm ơn.
Michael

-1 Nếu tôi có một khai thác có thể thay đổi quyền truy cập tệp, tôi không cần phải hack một số màn hình đang chạy. Tôi có thể làm bất cứ điều gì tôi muốn với hệ thống.
Let_Me_Be

@Let_Me_Be - tùy thuộc vào quyền truy cập tệp nào mà khai thác của bạn cho phép bạn thay đổi. Có lẽ bạn chỉ có thể làm một vài điều cụ thể theo hệ thống phân cấp nhất định. Đó không phải là quá xa vời.
mattdm

Màn hình có bề mặt tấn công lớn. Tôi không có một cuộc tấn công đầy đủ để hiển thị , nhưng có những điểm yếu rõ ràng.
Gilles 'SO- đừng trở nên xấu xa'

sửa tôi nếu tôi sai, nhưng ứng dụng màn hình được giao tiếp qua phiên shell (trực tiếp trên bảng điều khiển hệ thống hoặc qua phiên ssh). theo như tôi biết thì nó không phải là một giao thức mạng như vậy. do đó, nó an toàn như phiên ssh hoặc phiên cuối của bạn. nếu một số người có quyền truy cập vào phiên ssh hoặc máy vật lý của bạn, tất cả các cược sẽ bị tắt. nếu họ có đủ quyền truy cập để truy cập vào bất kỳ loại dòng lệnh nào trong bất kỳ tài khoản người dùng nào, thì dù sao bạn cũng có thể vứt bỏ bảo mật của máy.
không đồng bộ

10

Nếu bạn có một vỏ gốc trong một phiên màn hình (tách ra hoặc không, có được bảo vệ bằng mật khẩu hay không) và screenthực thi của bạn không phải là setxid, thì kẻ tấn công giành được đặc quyền của bạn có thể chạy các lệnh trong vỏ đó. Nếu không có gì khác, họ có thể làm điều đó bằng cách ptracing quá trình màn hình.

Nếu màn hình là setuid hoặc setgid và phiên được tách ra và được bảo vệ bằng mật khẩu, thì về nguyên tắc, nó sẽ lấy mật khẩu màn hình để chạy các lệnh trong trình bao đó. Nếu nguyên tắc này được áp dụng, ai đó chỉ xâm phạm tài khoản của bạn sẽ phải đặt một trojan vào vị trí và chờ bạn nhập mật khẩu. Tuy nhiên, bề mặt tấn công (tức là số lượng nơi có thể xảy ra lỗi do lỗi hoặc cấu hình sai) là rất lớn. Ngoài các tính năng bảo mật hệ thống cơ bản, bạn đang tin tưởng:

  • màn hình để lấy mật khẩu kiểm tra ngay.
  • màn hình để ngăn chặn truy cập vào phiên bằng các phương tiện khác.
  • màn hình để sử dụng các cơ chế kiểm soát truy cập hệ điều hành đúng cách (ví dụ: quyền trên các đường ống).
  • hạt nhân để thực hiện kiểm tra bảo mật ptrace một cách chính xác (đây là nguồn lỗ hổng thường xuyên).
  • Vỏ chạy không làm gì ngu.
  • Một số tính năng khác không cắn bạn.

Một số tính năng khác không cắn bạn. Vâng, điều đó thật mơ hồ. Nhưng nó luôn luôn là một mối quan tâm trong bảo mật. Bạn có thể bị cám dỗ để loại bỏ điều này chỉ là suy nghĩ mong muốn đơn giản, nhưng bạn đã thực sự nghĩ về tất cả mọi thứ? Ví dụ…

Miễn là bạn có thể ghi vào thiết bị đầu cuối, bạn có thể đưa dữ liệu vào đầu vào của shell đó. Theo cấu hình mặc định của màn hình trên máy của tôi:

printf '\ekfoo\017bar\e\\' >/dev/pts/33
printf '\e[21t' >/dev/pts/33

Điều này chèn ␛]lfoobar␛lvào luồng đầu vào của shell. \eklà trình tự điều khiển cho phép một ứng dụng (hoặc bất cứ thứ gì có thể ghi vào thiết bị đầu cuối) đặt tiêu đề cửa sổ (xem phần Cửa sổ Nam đặt tên trong hướng dẫn trên màn hình ) và \e[21tlàm cho thiết bị đầu cuối báo cáo tiêu đề của nó trên đầu vào tiêu chuẩn của ứng dụng ( màn hình không ghi lại trình tự này, nhưng thực hiện nó, bạn có thể tìm thấy nó CSI Ps ; Ps ; Ps ; ttrong danh sách trình tự điều khiển xterm . Trên thực tế, ít nhất là dưới màn hình 4.0.3, tất cả các ký tự điều khiển đều bị tước khỏi tiêu đề được báo cáo, vì vậy trình bao đọc lfoobar(giả sử ␛]không bị ràng buộc với lệnh chỉnh sửa) và không có dòng mới. Vì vậy, kẻ tấn công thực sự không thể thực thi một lệnh theo cách đó, nhưng có thể nhồi một lệnh nhưchmod u+s /bin/sh theo sau là rất nhiều khoảng trống và một dấu nhắc có khả năng tìm kiếm.

Màn hình thực hiện một số trình tự kiểm soát rủi ro tương tự khác, tôi không biết tiềm năng của chúng đối với các lỗ hổng là gì. Nhưng hy vọng bây giờ bạn có thể thấy rằng sự bảo vệ được cung cấp bởi mật khẩu phiên màn hình không phải là tuyệt vời. Một công cụ bảo mật chuyên dụng như sudo sẽ ít có lỗ hổng hơn.


+1 Câu trả lời xuất sắc. Cảm ơn đã dành thời gian để giải thích tất cả.
Michael

1

Các đường ống được tạo bởi màn hình chỉ có thể được truy cập bởi chủ sở hữu, do đó đây không phải là vấn đề bảo mật.


5
Bạn đã sử dụng "are" trong phần đầu của câu mà bạn có thể có nghĩa là "nên". Chúng ta đừng có thói quen đưa ra các giả định.
Shadur

1
Ừm Các đường ống được tạo bởi màn hình chỉ được chủ sở hữu truy cập (nếu bạn không tự điều khiển chúng).
Let_Me_Be
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.