Apakah masuk sebagai pengguna bersama adalah kebiasaan buruk?

35

Saya telah bekerja di organisasi di mana alih-alih membuat pengguna Ubuntu baru per orang yang ingin masuk ke mesin, sysadmin hanya menambahkan kunci ssh dari setiap pengguna .ssh/authorized_keys, dan semua orang sshke mesin sebagai ( misalnya ) ubuntu@hostatau ec2-user@host. (Kebetulan, saya juga melihat ini dipraktikkan di mini Mac bersama dalam pengaturan lab.) Apakah ini praktik yang diterima, atau anti-pola?

Host yang dimaksud terutama digunakan untuk pengujian, tetapi ada juga tindakan yang diambil yang biasanya memerlukan konfigurasi per-pengguna dan dilacak sebagai yang dilakukan oleh pengguna tertentu, seperti membuat dan mendorong komit git, yang saat ini dilakukan dengan menggunakan generik git pengguna.

user22a6db72d7249
sumber
23
Sementara banyak orang mengalami masalah dengan hubungan yang tidak menyenangkan, yang lain menanganinya dengan baik, jadi saya tidak berpikir itu selalu merupakan "kebiasaan buruk" untuk berbagi ... oh, tidak apa-apa, yang Anda maksud adalah akun pengguna .
HopelessN00b
Awww, seseorang mengedit judul clickbait .. :(
Burgi

Jawaban:

42

Ya itu kebiasaan buruk. Itu bergantung pada asumsi dasar bahwa tidak ada orang jahat yang (atau akan) ada di sekitar dan tidak ada yang membuat kesalahan. Memiliki akun bersama menjadikannya hal yang sepele untuk terjadi tanpa akuntabilitas dan tanpa batasan apa pun - pengguna yang melanggar sesuatu merusaknya untuk semua orang.

Jika alasan skema pembagian uid ini hanya untuk mengurangi biaya administrasi pembuatan akun baru dan konfigurasi berbagi, maka mungkin administrator harus menginvestasikan waktu dalam sistem otomatisasi seperti Ansible , Chef , Puppet atau Salt yang membuat barang-barang seperti membuat pengguna akun di banyak mesin sangat sederhana.

thkala
sumber
4
Itu bahkan bukan kedengkian, dan bahkan juga tidak kompeten. Ketika apa pun yang saya lakukan tidak berhasil, saya tidak dapat menganggap saya akan mengingat apa pun yang telah dilakukan pada akun ini.
djechlin
Prinsip-prinsip data aman: Akuntabilitas Ketersediaan Kerahasiaan Integritas. +1 untuk menggunakan kata akuntabilitas
DeveloperWeeks
7

Untuk mulai dengan ini tidak mengejutkan saya, dan saya bekerja di lingkungan yang sangat aman. Setiap orang memiliki pengguna sendiri, mesin, dan kunci ssh, dan untuk bekerja di server kami ssh, sebagai root atau sebagai pengguna lain, melalui relai pencatatan jika perlu. Semua yang kami lakukan dicatat sebagai telah dilakukan oleh pemilik kunci ssh, jadi akuntabilitasnya OK.

Apa alternatifnya? Banyak hal yang harus dilakukan sebagai pengguna tertentu, belum lagi root. Sudo? Tidak apa-apa untuk tugas-tugas tertentu yang sangat terbatas, tetapi tidak untuk sysadminning mesin.

Namun saya tidak yakin tentang paragraf terakhir Anda, apakah maksud Anda seseorang dapat mendorong git melakukan sebuah pengguna generik? Itu akan merusak akuntabilitas, dan melanggar akuntabilitas itu buruk. Kami melakukan git dari mesin tempat kami masuk dan kami mengotentikasi untuk git dengan kunci ssh kami ...

Otentikasi, otorisasi, dan akuntansi (AAA) adalah ungkapan klasik: Anda diautentikasi dengan kunci ssh Anda, Anda diotorisasi untuk melakukan apa pun yang dapat dilakukan oleh pengguna umum karena kunci Anda ada di dalam kunci otor_, dan Anda perlu akuntansi sehingga apa yang Anda lakukan dapat ditinjau setelah fakta.

Hukum29
sumber
3
Jadi pengguna generik memiliki semacam otentikasi (kunci ssh?) Yang diizinkan untuk memodifikasi repo git? Itu benar-benar tidak baik. Bukan hanya karena itu merusak akuntabilitas untuk komitmen itu, tetapi juga karena siapa pun dapat menyalin kunci itu dan menggunakannya dari tempat lain. Ketika saya memiliki masalah seperti itu, saya menyalin kode atau diff ke mesin lokal saya dan melakukan itu dari sana.
Law29
2
Mengapa tepatnya tidak sudodapat diterima untuk administrasi umum mesin?
Blacklight Shining
4
Anda ssh sebagai root di "lingkungan yang sangat aman" oO?
xaa
@BlacklightShining Jika Anda harus dapat melakukan apa saja (chown, chmod file sewenang-wenang, instal server, mount filesystems, tidak ada yang bisa diperoleh dengan melakukan sshing sebagai pengguna dan melakukan sudo bash. Sebaliknya, ssh dalam menggunakan salah satu relay logging dan / atau mencatat semuanya ke server jauh dengan pemilik kunci ssh yang masuk.
Law29
1
@xaa Ya saya lakukan, dan saya gagal melihat masalah dengan itu. Semua yang saya ketik dicatat ke komputer lain. "Jangan bekerja sebagai root" adalah pepatah yang sama sekali tidak berguna ketika mesin adalah server di mana segala sesuatu yang Anda mungkin ingin lakukan mengharuskan Anda untuk menjadi root.
Law29
3

Ini jelas tergantung pada kasus penggunaan sistem. Jika ini adalah sistem untuk pengujian dari waktu ke waktu tidak masalah bagi saya. Kami juga memiliki sistem seperti itu. Jika perusahaan tidak memiliki manajemen identitas apa pun (LDAP, IPA), maka membuat pengguna baru tanpa kendali jarak jauh pada sistem acak cukup membebani.

Tetapi untuk pekerjaan sehari-hari ketika kesalahan seseorang membuat seluruh perusahaan tidak dapat beroperasi bukanlah ide yang baik.

Jakuje
sumber
Tepatnya, jika Anda tidak atau tidak dapat memiliki layanan direktori, membuat dan mengelola ribuan akun tidak praktis.
Jim B
Bahkan jika Anda tidak dapat menggunakan LDAP, Anda masih memiliki akses SSH (atau Powershell di Windows). Anda masih memerlukan cara untuk mengelola file otor_keys pada host Anda untuk semua akun tersebut (kecuali jika Anda juga berbagi kata sandi) dan banyak pengaturan lainnya. Saya harus bertanya-tanya mengapa Anda tidak menggunakan semacam manajemen konfigurasi (mis. Wayang, Chef, Ansible) Jika Anda memiliki banyak pengguna atau server. Membawa beban itu, dan memberi Anda kontrol proses, akuntabilitas dan auditabilitas sebagai imbalannya.
Martijn Heemels
3

Semua jawaban itu membahas masalah akuntabilitas yang merupakan masalah penting dan nyata dalam dirinya sendiri, tetapi menggunakan akun bersama juga memungkinkan untuk serangan yang tidak terlalu halus pada pengguna lain:

Pertimbangkan penyerang membuat sshskrip berbahaya yang mencatat kata sandi yang diketikkan dan meletakkannya di PATHuntuk pengguna yang dibagikan itu (yang dilakukan dengan mudah). Sekarang orang berikutnya yang masuk ke mesin itu dengan pengguna yang dibagikan dan memutuskan ke sshtempat lain (kali ini dengan akun pribadinya, yang tidak dibagikan,) mungkin memiliki kejutan yang tidak menyenangkan.

Pada dasarnya, menggunakan akun bersama di komputer sama seperti minum dari foot bath di kolam renang umum.

sebelum
sumber
1

Secara umum, berbagi satu akun adalah ide yang buruk karena alasan berikut:

  1. Setiap pengaturan yang dibuat untuk pengguna ini memengaruhi semua orang yang masuk. (Promt, alias, ...)
    1. Anda kehilangan kemungkinan untuk mengetahui siapa yang melakukan apa (akuntabilitas)
    2. Satu kesalahan dalam konfigurasi akun (misalnya menghapus ssh kay secara tidak sengaja) memengaruhi semua orang yang menggunakan akun pengguna itu (dalam contoh itu mengunci).

Dan tentunya ada lebih banyak kerugian ... Tapi saya tidak ingin membahasnya lebih jauh.

Intinya adalah, mungkin Anda menghadapi kebutuhan untuk berbagi akun untuk mengelola layanan yang dijalankan di bawah akun pengguna tertentu di mana semua admin harus dapat mengakses.

Dalam pengaturan seperti itu, Anda memiliki kemungkinan untuk membagikan akun ini untuk masuk (untuk revisi di atas saya lebih suka tidak melakukan ini) atau Anda masuk secara individual dan mengalihkan pengguna kemudian ke akun bersama (saya sarankan).

Alat audit masih akan memungkinkan Anda untuk melacak siapa yang telah melakukan apa tetapi masih berbagi akun yang sama.

Gerhard
sumber