Oracle mencela otentikasi OS sesuai dengan Oracle Security Database Guide , yang mengatakan
Ketahuilah bahwa parameter REMOTE_OS_AUTHENT tidak digunakan lagi dalam Oracle Database 11g Release 1 (11.1), dan hanya disimpan untuk kompatibilitas ke belakang.
Selain itu, sebagian besar informasi dan alat keamanan menganggap otentikasi OS (eksternal) sebagai masalah keamanan. Saya mencoba memahami mengapa hal ini terjadi. Berikut ini beberapa kelebihan yang saya lihat dari otentikasi OS:
- Tanpa OS Authentication aplikasi harus menyimpan kata sandi di berbagai aplikasi masing-masing dengan model keamanan dan kerentanan mereka sendiri.
- Otentikasi domain sudah harus aman karena jika tidak maka keamanan database hanya memperlambat akses ke database, tetapi tidak dapat mencegahnya.
- Pengguna yang hanya perlu mengingat satu kata sandi domain dapat dibuat untuk membuat kata sandi domain yang lebih aman lebih mudah daripada membuat kata sandi basis data yang lebih tidak aman karena jumlah basis data berbeda yang harus mereka hubungkan untuk meningkat.
oracle
oracle-11g-r2
security
Leigh Riffel
sumber
sumber
Jawaban:
Pertimbangkan skenario berikut:
gaius
pada server Oracle dengan otentikasi eksternal, jadi di Oracle ada pengguna yang sesuai disebutops$gaius
. Ketika masuk ke dalam shell, saya juga bisa login langsung ke skema Oracle saya, dan pekerjaan cron saya tidak perlu kata sandi tertanam dalam skrip juga.rlogin
/rsh
biasanya diizinkan)gaius
dan menjalankan SQL * Plus sebagai pengguna ituOSUSER
dalamV$SESSION
) adalahgaius
dan mencatat bahwa pengguna jarak jauh sebagaiops$gaius
Itu tidak hanya laughably mudah untuk spoof, tapi mengenakan topi saya sinis ini, Oracle tidak dapat membuat lebih banyak uang menjual Anda mereka mewah single sign-on produk ... Yang dengan cara tidak memenuhi semua poin yang Anda meningkatkan sebagai keuntungan dari OS tingkat auth. Dua kata sandi yang lebih baik dari satu sama sekali palsu; kebanyakan orang akan tetap sama (tidak ada mekanisme di Oracle untuk mencegah hal ini).
Prinsip umum adalah bahwa sangat sulit untuk bertahan dalam perangkat lunak ketika penyerang memiliki akses fisik. Dan jangan pernah mempercayai klien.
sumber
Ini meningkatkan titik kegagalan tunggal dan memperbesar permukaan risiko data Anda.
Penyerang yang mendapatkan akses ke sistem akan, dengan Otentikasi OS, memiliki akses ke database. Dengan memerlukan akses yang lebih aman ke database, penyerang potensial harus meningkatkan hak istimewa mereka pada sistem yang dikompromikan untuk mendapatkan akses root atau oracle, daripada pengguna mana pun.
Masalah ini adalah fungsi dari akses eksternal ke database. Jika tidak ada akses eksternal dan mesin sepenuhnya diamankan maka pertanyaan tentang perizinan diperdebatkan. Namun, jika pengembang memiliki akses, izin pengguna tingkat OS meningkatkan cakupan potensi bencana keamanan.
Pertimbangkan untuk menggunakan akses multitier untuk membatasi ruang lingkup pelanggaran keamanan dan memberikan akses kepada pengguna, aplikasi, atau klien apa pun yang mereka butuhkan tanpa perlu membuat akun tingkat OS untuk setiap contoh.
sumber
Gayus telah menunjukkan mengapa otentikasi sistem operasi jarak jauh (yang bertentangan dengan otentikasi sistem operasi vanilla di mana Anda mengizinkan pengguna mesin lokal untuk mengakses database tanpa menentukan kata sandi yang terpisah) relatif tidak aman.
Saya berharap bahwa Oracle bergerak ke arah ini karena ingin mendorong orang untuk menggunakan pengguna perusahaan (atau rangkaian manajemen identitas lengkap) daripada pengguna yang diautentikasi sistem operasi jarak jauh. Pengguna perusahaan memiliki keuntungan yang sama dengan pengguna yang diautentikasi sistem operasi jarak jauh tetapi Oracle benar-benar keluar dan memukul server Active Directory Anda untuk mengautentikasi pengguna. Anda mendapatkan manfaat tanda tunggal yang sama tanpa meninggalkan pemeriksaan keamanan ke mesin klien.
sumber
Anda secara khusus menunjuk ke otentikasi gaya-identifikasi, tetapi saya juga ingin menunjukkan bahwa metode lain mengikat database atau login lain ke login OS sama buruknya. (baik itu file kata sandi lokal, LDAP, atau apa pun untuk penyimpanan kredensial yang sebenarnya)
Jika Anda mengizinkan koneksi jarak jauh ke basis data (atau server web, atau apa pun yang melakukan otentikasi), beberapa OS akan mengabaikan aturan yang mungkin diatur untuk menyulitkan brute paksa akun (misalnya, memblokir IP di mana upaya gagal berasal; mengunci pengguna untuk periode setelah jumlah kesalahan yang ditetapkan, dll). Biasanya, aturan-aturan ini terikat
sshd
, dan bukan sistem otentikasi secara keseluruhan.Jadi, jika seseorang dapat terhubung ke database / server web / apa pun dari jarak jauh, mereka dapat dengan kasar memaksa kata sandi, karena basis data tidak cenderung cenderung memiliki mekanisme yang sama untuk memperlambat upaya, kemudian ssh masuk begitu mereka menemukan kredensial yang diperlukan.
sumber
mod_auth_apple
danmod_auth_digest_apple
untuk versi standar, meskipun saya belum menguji apakah masalahnya masih ada di 10.6)