6

Tôi đã đọc khá một số bài viết liên quan đến việc sử dụng PermitUserEnvironment và tệp ~/.ssh/environment để chuyển các biến env vào trình bao ssh. Chính thức sshd docs và một vài tài nguyên khác ám chỉ đến một số rủi ro bảo mật khi thực hiện việc này.Rủi ro bảo mật của PermitUserEnvironment trong ssh

Enabling environment processing may enable users to bypass access restrictions in some configurations using mechanisms such as LD_PRELOAD. 

Sự cố bảo mật có khả năng kích hoạt PermitUserEnvironment là gì? Tôi đang tìm cách giữ các chi tiết kết nối DB trong các biến môi trường này, điều này có được khuyến khích không?

nhờ

Trả lời

3

Đó là đối với trường hợp bạn giới hạn người sử dụng một cách nào đó bằng cách sử dụng một lớp vỏ tùy chỉnh - nếu người dùng có thể thiết lập LD_PRELOAD sau đó họ có thể thực thi mã như người dùng của họ trên máy từ xa bằng cách chặn một tiêu chuẩn cuộc gọi thư viện. Một ví dụ đơn giản về điều này có thể là nếu bạn tắt đăng nhập cho người dùng chỉ SFTP bằng cách đặt trình bao của họ thành liên kết động/bin/false - nếu họ có thể sửa đổi ~/.ssh/environment hoặc ~/.ssh/authorized_keys sau đó họ có thể thêm LD_PRELOAD = nefarious.so

+0

Vì vậy, nó không có tác động đến đăng nhập shell thông thường mà tôi cung cấp cho người dùng một tài khoản Bash thông thường? (không có sudo) –

+1

Chính xác, nó chỉ là một vấn đề nếu bạn đang cố gắng hạn chế vỏ của chúng. Nếu bạn đã tin tưởng họ để thực thi mã tùy ý thì cho phép họ đặt LD_PRELOAD tại thời điểm đăng nhập không phải là vấn đề bảo mật – Peter

Các vấn đề liên quan