Một số người sẽ lập luận rằng sự hiện diện của các công cụ phát triển trên một máy sản xuất sẽ giúp cuộc sống của kẻ tấn công dễ dàng hơn. Tuy nhiên, đây là một rào cản nhỏ đối với kẻ tấn công, rằng bất kỳ đối số nào khác bạn có thể tìm thấy hoặc chống lại việc cài đặt các công cụ phát triển sẽ nặng hơn.
Nếu một kẻ tấn công có thể xâm nhập hệ thống cho đến nay, chúng có thể gọi bất kỳ công cụ nào có trên máy chủ, thì bạn đã vi phạm an ninh nghiêm trọng. Không có các công cụ phát triển, có nhiều cách khác để ghi dữ liệu nhị phân vào một tệp và sau đó chạy một chmod trên tệp đó. Kẻ tấn công muốn sử dụng một bản dựng thực thi tùy chỉnh trên hệ thống tại thời điểm này cũng có thể xây dựng nó trên máy của chính họ và chuyển nó đến máy chủ.
Có nhiều thứ khác có liên quan hơn nhiều để tìm kiếm. Nếu một phần mềm được cài đặt có lỗi bảo mật, có một số cách nó có thể bị phơi bày trước kẻ tấn công:
- Gói có thể chứa một thực thi suid hoặc sgid.
- Các gói có thể được bắt đầu dịch vụ trên hệ thống.
- Gói có thể cài đặt các tập lệnh được gọi tự động trong một số trường hợp nhất định (điều này bao gồm các công việc định kỳ, nhưng các tập lệnh có thể được gọi bởi các sự kiện khác, ví dụ như khi trạng thái của giao diện mạng thay đổi hoặc khi người dùng đăng nhập).
- Gói có thể cài đặt inodes thiết bị.
Tôi sẽ không mong đợi các công cụ phát triển phù hợp với một trong những điều trên và như vậy không phải là một gói rủi ro cao.
Nếu bạn có các quy trình công việc mà bạn sẽ sử dụng các công cụ phát triển, thì trước tiên bạn phải quyết định xem đó có phải là các quy trình công việc hợp lý hay không và nếu có, bạn nên cài đặt các công cụ phát triển.
Nếu bạn thấy rằng bạn không thực sự cần những công cụ đó trên máy chủ, bạn nên hạn chế cài đặt chúng vì nhiều lý do:
- Tiết kiệm không gian đĩa, cả trên máy chủ và sao lưu.
- Phần mềm ít được cài đặt giúp dễ dàng theo dõi những gì phụ thuộc của bạn.
- Nếu bạn không cần gói, sẽ không có rủi ro bảo mật bổ sung nào từ việc cài đặt nó, ngay cả khi rủi ro bảo mật đó là rất nhỏ.
Nếu bạn quyết định rằng vì lý do bảo mật, bạn sẽ không cho phép người dùng không có đặc quyền đặt tệp thực thi của riêng họ lên máy chủ, thì điều bạn nên tránh không phải là các công cụ phát triển mà là các thư mục có thể ghi đối với những người dùng trên hệ thống tệp được gắn quyền thực thi. Có thể vẫn còn sử dụng cho các công cụ phát triển ngay cả trong những trường hợp đó, nhưng nó không có khả năng lắm.