Se il tuo script può connettersi a uno di quei server, chiunque abbia accesso allo script (o accesso privilegiato alla macchina su cui viene eseguito lo script) può connettersi a uno di quei server.
Se lo script deve essere eseguito in modo autonomo, tutte le scommesse sono disattivate. La risposta qui è no, non esiste un modo assolutamente sicuro per archiviare le password in tale ambiente . Non esiste un modo assolutamente sicuro e pratico di fare qualcosa.
Invece di cercare di evitare l'inevitabile, dovresti concentrarti sulla difesa in profondità .
Sicuramente, ovviamente, dovresti proteggere adeguatamente le password . Questo di solito significa tenerli in un file separato dallo script e configurare le autorizzazioni restrittive del file system . Questo è tutto ciò che puoi fare in questo senso, dal punto di vista della sicurezza.
Altre misure possono sicuramente aggiungere oscurità al processo. La crittografia delle password renderà l'attaccante necessario cercare la chiave di decrittazione. L'uso di una sorta di memoria protetta dal sistema operativo generalmente protegge da altri utenti che accedono alla chiave (quindi non offre alcun vantaggio rispetto alle autorizzazioni del file system, oltre ad essere complesso da attaccare e utilizzare). Queste misure ritarderanno un attacco, ma certamente non lo impediranno contro un determinato attaccante.
Ora, trattiamo le password come pubbliche per un momento. Cosa puoi fare per mitigare il danno?
Una soluzione vecchia e testata è limitare ciò che queste credenziali possono fare. Su un sistema UNIX, un buon modo per farlo è configurare un utente separato per lo script e limitare le capacità di tale utente , sia sui server di accesso che sui server di accesso. È possibile limitare le capacità dell'utente a livello di SSH , a livello di shell o eventualmente utilizzando un meccanismo di controllo dell'accesso obbligatorio come SELinux .
Qualcosa che potresti anche prendere in considerazione è spostare la logica degli script nei server . In questo modo, ottieni un'interfaccia più piccola che è più facile da controllare e soprattutto per ...
Monitor . Monitorare sempre l'accesso ai server. Preferibilmente, autenticazione di registro e comandi eseguiti su un registro di sola aggiunta . Non dimenticare di monitorare le modifiche al file di script utilizzando auditd
, ad esempio.
Naturalmente, molti di questi meccanismi non sono utili se non si ha alcun controllo sui server, come sembra implicare la domanda. In tal caso, ti consiglierei di metterti in contatto con le persone che amministrano i server e far loro conoscere il tuo script e le potenziali insidie della sicurezza.