Bazı insanlar bir üretim makinesindeki geliştirme araçlarının varlığının bir saldırganın hayatını kolaylaştıracağını iddia edecekler. Ancak bu, bir saldırgana giden ufak bir yol patlamasıdır, geliştirme araçlarını kurmak için veya aleyhine bulabileceğiniz herhangi bir argüman daha ağırlaşacaktır.
Bir saldırgan sisteme şu ana kadar girebildiyse, sunucuda ne tür bir araç bulunduğunu çağırabilirlerse, o zaman zaten ciddi bir güvenlik ihlali yaşarsınız. Geliştirme araçları olmadan, ikili verileri bir dosyaya yazmanın ve o dosya üzerinde bir chmod çalıştırmanın birçok yolu vardır. Bu noktada sistemde çalıştırılabilir bir özel yapı kullanmak isteyen bir saldırgan, bunu kendi makinelerinde derleyip sunucuya aktarabilir.
Dikkat edilmesi gereken daha başka önemli şeyler var. Yüklü bir yazılım parçası bir güvenlik hatası içeriyorsa, saldırgana maruz kalmasının birkaç yolu vardır:
- Paket, bir suid veya sgid çalıştırılabilir içerebilir.
- Paket sistemde hizmet vermeye başlıyor olabilir.
- Paket, belirli koşullar altında otomatik olarak başlatılan komut dosyalarını yükleyebilir (bu, cron işlerini içerir; ancak, örneğin bir ağ arabiriminin durumu değiştiğinde veya bir kullanıcı oturum açtığında, komut dosyaları başka olaylar tarafından da başlatılabilir).
- Paket cihaz inode'larını yükleyebilir.
Geliştirme araçlarının yukarıdakilerden biriyle eşleşmesini beklemiyorum ve bu nedenle yüksek riskli bir paket değil.
Geliştirme araçlarını kullanacağınız iş akışlarınız varsa, önce bunların makul iş akışları olup olmadığına karar vermelisiniz ve eğer öyleyse, geliştirme araçlarını kurmalısınız.
Sunucuda bu araçlara gerçekten ihtiyaç duymadığınızı tespit ederseniz, bunları çeşitli nedenlerle kurmaktan kaçınmalısınız:
- Hem sunucuda hem de yedeklerde disk alanı kazandırır.
- Daha az yüklü yazılım, bağımlılıklarınızın neler olduğunu izlemeyi kolaylaştırır.
- Pakete ihtiyacınız yoksa, güvenlik riski çok küçük olsa bile, kurulmasından kaynaklanan ek güvenlik riskini almanın bir anlamı yoktur.
Güvenlik nedeniyle, ayrıcalıklı olmayan kullanıcıların sunucuya kendi çalıştırılabilir dosyalarını koymalarına izin vermezseniz, kaçınmanız gereken şey geliştirme araçları değil, yürütme izinleri bulunan dosya sistemlerinde bu kullanıcılara yazılabilir dizinlerdir. Bu koşullar altında bile geliştirme araçlarının kullanımı hala olabilir, ancak bu pek olası değildir.