( vl | 2020. 12. 21., h – 01:14 )

igaz, alapvető biztonsági elvárás már elég régóta, hogy adott szerveren lehetőleg csak a feladatához szükséges komponensek legyenek

Ez sajnos nagyon régóta már csak egy elméleti síkon működő biztonsági stratégia. Valójában ugyanis kb. bármilyen valós alkalmazáshoz olyan mennyiségű egyéb szart kell fent tartani, hogy nem igazán tud megvalósulni ez az elv. Oké, cc nem lesz a gépen, meg devel libek sem, de lesz egy komplett perl és/vagy python, vagy ha az valamiért éppen megúszható, akkor is lesz shell. És ezeken keresztül kb. bármit meg lehet csinálni (a pythonban konkrétan komplett szerveralkalmazást lehet röhögve írni). Ergó "baszhatod" a biztonságodat. A samba nagyon szép példa, mert az integrációi pythonban vannak írva, ergó nincs samba python nélkül. Shell nélkül meg eleve teljesen menedzselhetetlen (és full unsupportált) a géped.

Személy szerint ezen legacy üzemeltetési stratégiánál biztonsági szempontból több klasszissal jobbnak tartom a konténer-alapú koncepciót. Ott megtehetem, hogy annyira kiherélem a környezetet bent, hogy még az üzemeltetéshez szükséges dolgok sincsenek meg, mert hiszen azt meg tudom csinálni máshogy is (és mivel meg lehet tenni műszakilag, még akár a vendorból is ki lehet préselni, hogy ehhez közelítsen az általa előállított konténer image). Persze egy fos alkalmazáson ez sem segít, igazából ennek az előnyei is akkor jönnek elő igazán, ha az alkalmazás is tud alkalmazkodni egy üres környezethez (lásd pl. a go-féle "egy szál statikusan linkelt bináris" koncepció).

Ugyanezt persze chrootban is meg lehet csinálni klasszikus üzemeltetésnél, csak ott nagyjából zéró segítséget kapok ehhez, írhatom az összes toolt magamnak, plusz ugyanúgy unsupportált lesz a végeredmény, ergó csak magamra hagyatkozhatok.