Tohle souvisí s komplexitou softwaru, o které teď píši.
Méně rizikový je jednoduchý software (málo řádků kódu a málo závislostí) a software od známých autorů. Ideálně oboje dohromady.
Hodně rizikový je naopak komplexní software, ve kterém se chyba snadno skryje a hůř ji tam někdo najde, a software od málo známých autorů (ty „taky NodeJS a jeho milion balickov“ nebo náhodné projekty z GitHubu).
Pokud už něco komplexního nebo méně důvěryhodného musíš používat, tak je dobré to izolovat. V ideálním případě na samostatný hardware (protože i procesory bývají děravé). Další možnost je (plná) virtualizace (KVM, Xen, VirtualBox), dále pak kontejnerová virtualizace a nakonec samostatné uživatelské účty, AppArmor, SELinux nebo Firejail.
Na firewallu můžeš povolit přístup na síť jen některým uživatelům a jen na některé adresy/porty. Taky je fajn logovat provoz a mít přehled, že se děje něco neobvyklého. Některé systémy můžou fungovat kompletně offline, to je nejbezpečnější. Obecně je dobré dodržovat princip minimálních práv – každý (ne jen uživatel, ale i komponenta systému) má jen taková práva, která nezbytně nutně potřebuje. Tzn. např. monitorovací systém může číst nějaké hodnoty, ale nemůže napadnout monitorovaný stroj. Totéž pro zálohovací systém – ten může buď jen číst nebo to bude fungovat obráceně: nebude dělat nic a zálohované stroje mu budou posílat zálohy (a zálohovaný stroj zase nebude mít právo smazat staré zálohy). Totéž pro vzdálené logování – můžeš posílat logy, ale nemůžeš je mazat (nebo když si logy stahuješ, tak můžeš číst jen logy, ale nemůžeš nic jiného, abys neohrozil ten druhý systém).
Ztráta dat (smazání) je celkem snadno řešitelná pomocí záloh a snapshotů (např. Btrfs). Ty tě ochrání i před ransomwarem, který šifruje data a žádá výkupné. Ochrana proti odcizení dat je trochu složitější.