it-swarm.asia

Mengapa otentikasi OS dianggap keamanan yang buruk untuk database Oracle?

Oracle tidak lagi menggunakan otentikasi OS sesuai dengan Oracle Security Database Guide , yang mengatakan

Ketahuilah bahwa parameter REMOTE_OS_AUTHENT tidak digunakan lagi di 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:

  1. Tanpa OS Authentication aplikasi harus menyimpan kata sandi di berbagai aplikasi masing-masing dengan model keamanan dan kerentanan mereka sendiri.
  2. Otentikasi domain sudah harus aman karena jika tidak maka keamanan database hanya memperlambat akses ke database, tetapi tidak dapat mencegahnya.
  3. 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.
29
Leigh Riffel

Pertimbangkan skenario berikut:

  1. Ada pengguna Unix bernama gaius di server Oracle dengan otentikasi eksternal, jadi di Oracle ada pengguna yang sesuai bernama ops$gaius. Ketika masuk ke Shell, saya juga bisa masuk langsung ke skema Oracle saya, dan pekerjaan cron saya tidak perlu kata sandi yang tertanam dalam skrip juga.
  2. Otentikasi OS jarak jauh diizinkan, dengan asumsi bahwa LAN 100% aman dan klien dapat dipercaya (sama seperti rlogin/rsh dulu biasanya diizinkan)
  3. Seorang penyerang membawa laptopnya ke LAN dengan cara apa pun, tahu bahwa saya bekerja di sana, dan menciptakan pengguna lokal di laptop mereka yang disebut gaius dan menjalankan SQL * Plus sebagai pengguna itu
  4. Oracle melihat (mis. OSUSER dalam V$SESSION) adalah gaius dan mencatat pengguna jarak jauh itu sebagai ops$gaius

Itu tidak hanya sangat mudah untuk dipalsukan, tetapi mengenakan topi sinis saya, Oracle tidak dapat lagi menghasilkan uang dengan menjual kepada Anda produk mewah masuk tunggal ... Yang omong-omong tidak memenuhi semua poin yang Anda naikkan sebagai keuntungan auth level OS. 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.

16
Gaius

Ini meningkatkan satu titik kegagalan 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 aman 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.

Gayus telah menunjukkan mengapa otentikasi sistem operasi jarak jauh (sebagai lawan dari otentikasi sistem operasi Vanilla di mana Anda mengizinkan pengguna mesin lokal untuk mengakses database tanpa menentukan kata sandi terpisah) relatif tidak aman.

Saya akan berharap bahwa Oracle bergerak ke arah ini karena ingin mendorong orang untuk menggunakan pengguna perusahaan (atau rangkaian manajemen identitas lengkap) daripada pengguna sistem operasi jarak jauh yang diautentikasi. 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.

4
Justin Cave

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 mempersulit brute akun paksa (mis., Memblokir IP di mana upaya gagal berasal; mengunci pengguna untuk jangka waktu setelah jumlah kesalahan yang ditetapkan, dll). Biasanya, aturan-aturan ini terikat ke sshd, dan not 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.

4
Joe