Beberapa orang akan berpendapat bahwa kehadiran alat pengembangan pada mesin produksi akan membuat hidup lebih mudah bagi penyerang. Namun ini adalah penghalang kecil bagi penyerang, sehingga argumen lain yang dapat Anda temukan atau tidak menginstal alat pengembangan akan lebih berat.
Jika penyerang mampu menembus sistem sejauh ini, bahwa mereka dapat meminta alat apa pun yang ada di server, maka Anda sudah memiliki pelanggaran keamanan yang serius. Tanpa alat pengembangan ada banyak cara lain untuk menulis data biner ke file dan kemudian menjalankan chmod pada file itu. Seorang penyerang yang ingin menggunakan custom build dapat dieksekusi pada sistem pada saat ini bisa juga membangunnya di mesin mereka sendiri dan mentransfernya ke server.
Ada hal-hal lain yang jauh lebih relevan untuk diwaspadai. Jika perangkat lunak yang terinstal berisi bug keamanan, ada beberapa cara itu bisa terkena penyerang:
- Paket dapat berisi suid atau sgid yang dapat dieksekusi.
- Paket tersebut dapat memulai layanan pada sistem.
- Paket dapat menginstal skrip yang dipanggil secara otomatis dalam keadaan tertentu (ini termasuk pekerjaan cron, tetapi skrip dapat dipanggil oleh peristiwa lain misalnya ketika keadaan antarmuka jaringan berubah atau ketika pengguna login).
- Paket dapat menginstal inode perangkat.
Saya tidak akan mengharapkan alat pengembangan untuk mencocokkan salah satu di atas, dan karena itu bukan paket berisiko tinggi.
Jika Anda memiliki alur kerja di mana Anda akan menggunakan alat pengembangan, maka Anda pertama-tama harus memutuskan apakah itu alur kerja yang masuk akal, dan jika ada, Anda harus menginstal alat pengembangan.
Jika ternyata Anda tidak benar-benar membutuhkan alat-alat itu di server, Anda harus menahan diri untuk tidak menginstalnya karena beberapa alasan:
- Menghemat ruang disk, baik di server maupun di cadangan.
- Perangkat lunak yang kurang terinstal memudahkan Anda melacak dependensi Anda.
- Jika Anda tidak membutuhkan paket itu, tidak ada gunanya mengambil risiko keamanan tambahan dari menginstalnya, bahkan jika risiko keamanan itu kecil.
Jika Anda memutuskan bahwa karena alasan keamanan, Anda tidak akan mengizinkan pengguna yang tidak memiliki hak untuk menempatkan executabel mereka sendiri di server, maka yang harus Anda hindari bukanlah alat pengembangan, melainkan direktori yang dapat ditulis oleh para pengguna pada sistem file yang dipasang dengan izin pelaksanaan. Mungkin masih ada gunanya untuk alat pengembangan bahkan di bawah keadaan itu, tetapi itu tidak terlalu mungkin.