Docker, en çok kullanılan konteynerleştirme platformlarından biridir ve yazılım mühendisleri arasında çok sevilir. Docker kapsayıcılarını ve diğer ilgili görevleri yönetmek için güçlü bir CLI aracıyla birlikte gelir.
Varsayılan olarak, Linux'ta Docker ile ilgili herhangi bir komutu çalıştırmak için kök ayrıcalıklarına ihtiyacınız vardır. Tabii ki, kolaylık sağlamak için bunu değiştirebilir ve kök ayrıcalıkları olmadan Docker komutlarını çalıştırabilirsiniz, ancak güvenlik etkilerinin farkında olmalısınız.
Docker Saldırı Yüzeyi Nedir?
Saldırı yüzeyi, kötü niyetli bir kullanıcının sisteminize girmek ve ortalığı kasıp kavurmak için kullanabileceği, daha çok pencere sayısı gibi saldırı noktalarının sayısıdır. Genel bir kural olarak, güvenlik risklerini azaltmak için BT sistemlerinin minimum düzeyde saldırı yüzeyine sahip olması gerekir.
Genel olarak, Docker'ın saldırı yüzeyi çok azdır. Konteynerler, izole edilmiş güvenli bir ortamda çalışır ve aksi olmadıkça ana bilgisayar işletim sistemini etkilemez. Ek olarak, Docker kapsayıcıları yalnızca minimum düzeyde hizmet çalıştırır ve bu da onu daha güvenli hale getirir.
Linux sisteminizi Docker'ı sudo ayrıcalıkları olmadan kontrol edecek şekilde yapılandırabilirsiniz. Bu, geliştirme ortamlarında uygun olabilir, ancak üretim sistemlerinde ciddi bir güvenlik açığı olabilir. İşte bu yüzden Docker'ı asla sudo olmadan çalıştırmamalısınız.
1. Docker Konteynerlerini Kontrol Edebilme
Sudo ayrıcalıkları olmadan, sisteminize veya sunucunuza erişimi olan herkes Docker'ın her yönünü kontrol edebilir. Docker günlük dosyalarınıza erişimleri vardır ve kapsayıcıları istedikleri zaman veya kazara durdurabilir ve silebilir. İş sürekliliği için hayati önem taşıyan kritik verilerinizi de kaybedebilirsiniz.
Docker kapsayıcılarını üretim ortamlarında kullanıyorsanız, kapalı kalma süresi, iş ve güven kaybına neden olur.
2. Ana İşletim Sistemi Dizinlerinin Kontrolünü Kazanın
Docker Volumes, kapsayıcı verilerini ana işletim sistemindeki belirli bir klasöre yazarak paylaşmanıza ve sürdürmenize izin veren güçlü bir hizmettir.
Docker'ı sudo olmadan çalıştırmanın sunduğu en büyük tehditlerden biri, sisteminizdeki herhangi birinin kök dizin de dahil olmak üzere ana işletim sisteminin dizinlerinin kontrolünü ele geçirebilmesidir.
Tek yapmanız gereken, bir Linux Docker görüntüsünü, örneğin Ubuntu görüntüsünü çalıştırmak ve aşağıdaki komutu kullanarak onu kök klasöre bağlamaktır:
docker run -ti -v /:/hostproot ubuntu bash
Ve Linux Docker kapsayıcıları kök kullanıcı olarak çalıştığından, bu, temel olarak kök klasörün tamamına erişiminiz olduğu anlamına gelir.
Yukarıda belirtilen komut, en son Ubuntu görüntüsünü indirip çalıştıracak ve onu kök dizine bağlayacaktır.
Docker konteyner terminalinde şuraya gidin: /hostproot dizin kullanarak cd komutu:
CD /hostproot
ls komutunu kullanarak bu dizinin içeriğini listeleme artık kapsayıcınızda bulunan ana işletim sisteminin tüm dosyalarını gösterir. Artık dosyaları manipüle edebilir, gizli dosyaları görüntüleyebilir, dosyaları gizleyebilir ve gizleyebilir, izinleri değiştirebilir, vb.
3. Kötü Amaçlı Yazılım Yükleyin
İyi hazırlanmış bir Docker görüntüsü arka planda çalışabilir ve sisteminizi değiştirebilir veya hassas veriler toplayabilir. Daha da kötüsü, kötü niyetli bir kullanıcı, Docker kapsayıcıları aracılığıyla ağınıza kötü amaçlı kod yayabilir.
Var Docker kapsayıcılarının birkaç pratik kullanım durumuve her uygulamayla birlikte farklı bir dizi güvenlik tehdidi gelir.
Docker Konteynerlerinizi Linux'ta Güvenli Hale Getirin
Docker, güçlü ve güvenli bir platformdur. Docker'ı sudo olmadan çalıştırmak, saldırı yüzeyinizi artırır ve sisteminizi savunmasız hale getirir. Üretim ortamlarında Docker ile sudo kullanmanız önemle tavsiye edilir.
Bir sistemdeki bu kadar çok kullanıcıyla, her kullanıcıya izin atamak son derece zor hale gelir. Bu gibi durumlarda, en iyi erişim kontrolü uygulamalarını izlemek, sisteminizin güvenliğini korumanıza yardımcı olabilir.