Jika skrip Anda dapat terhubung ke salah satu server itu, siapa pun yang memiliki akses ke skrip (atau akses istimewa ke mesin yang menjalankan skrip) dapat terhubung ke salah satu server tersebut.
Jika skrip perlu dijalankan secara mandiri, semua taruhan dibatalkan. Jawabannya di sini adalah tidak, tidak ada cara yang benar-benar aman untuk menyimpan kata sandi di lingkungan seperti itu . Tidak ada cara yang benar-benar aman dan praktis untuk melakukan sesuatu.
Alih-alih mencoba menghindari yang tak terhindarkan, Anda harus fokus pada pertahanan secara mendalam .
Fristly, tentu saja, Anda harus melindungi kata sandi secara memadai . Ini biasanya berarti menyimpannya dalam file yang terpisah dari skrip Anda dan mengonfigurasi izin sistem file yang terbatas . Hanya itu yang dapat Anda lakukan di front ini, dari sudut pandang keamanan.
Langkah-langkah lain pasti dapat menambah ketidakjelasan dalam proses tersebut. Mengenkripsi kata sandi akan membuat penyerang perlu mencari kunci dekripsi. Menggunakan semacam penyimpanan sistem operasi yang dilindungi umumnya melindungi terhadap pengguna lain yang mengakses kunci Anda (sehingga tidak memberikan keuntungan dibandingkan izin sistem file, selain menjadi kompleks untuk diserang - dan digunakan). Langkah-langkah ini akan menunda serangan, tetapi kemungkinan besar tidak mencegahnya terhadap penyerang yang gigih.
Sekarang, mari kita perlakukan kata sandi sebagai publik sejenak. Apa yang dapat Anda lakukan untuk mengurangi kerusakan?
Solusi lama dan teruji adalah membatasi apa yang dapat dilakukan kredensial tersebut. Pada sistem UNIX, cara yang baik untuk melakukan ini adalah mengatur pengguna yang terpisah untuk skrip Anda dan membatasi kemampuan pengguna itu , baik pada mengakses dan server yang diakses. Anda dapat membatasi kemampuan pengguna pada level SSH , pada level shell atau mungkin menggunakan mekanisme Kontrol Akses Wajib seperti SELinux .
Sesuatu yang Anda mungkin juga ingin pertimbangkan adalah memindahkan logika skrip ke server . Dengan begitu, Anda mendapatkan antarmuka yang lebih kecil yang lebih mudah dikendalikan, dan terutama ...
Monitor . Selalu pantau akses ke server. Lebih disukai, otentikasi log dan perintah dijalankan hanya untuk log tambahan . Jangan lupa memantau perubahan file skrip menggunakan auditd
, misalnya.
Tentu saja, banyak dari mekanisme ini tidak berguna jika Anda tidak memiliki kontrol atas server, karena pertanyaan Anda tampaknya menyiratkan. Jika itu masalahnya, saya akan menyarankan Anda untuk menghubungi orang-orang yang mengelola server dan memberi tahu mereka tentang skrip Anda dan potensi jebakan keamanan.