Isi kandungan:
Video: Privacy, Security, Society - Computer Science for Business Leaders 2016 2024
Dalam kajian kes ini, Chip Andrews, pakar dalam keselamatan SQL Server, berkongsi pengalaman ini (secara etika) meretas ke klien pangkalan data untuk mendedahkan kecacatan keselamatan. Contoh ini memberikan kisah amaran untuk melindungi maklumat penting anda dengan menegaskan keselamatan pangkalan data yang kukuh.
Situasi
Semasa ujian penembusan rutin, Encik Andrews melakukan carian Google wajib, penyelidikan nama domain, cap jari sistem pengendalian, dan imbasan port, tetapi laman web ini dikunci ketat. Bergerak ke aplikasi berasaskan web yang berjalan pada sistem, dia segera dihadapkan dengan laman log masuk menggunakan pengesahan bentuk yang disulitkan SSL.
Dengan menyemak sumber halaman web, dia mendapati bahawa medan App_Name yang tersembunyi telah diserahkan kepada aplikasi apabila pengguna cuba masuk ke laman web ini. Bolehkah pemaju mungkin gagal melaksanakan pengesahan input yang betul pada parameter yang tidak bersalah ini? Memburu sedang berjalan.
Hasil
Pertama, sudah tiba masanya untuk memasang toolkit itu. Pada masa ujian penembusan ini, Encik Andrews lebih suka menggunakan yang berikut: Paros Proxy, Absinthe, Cain & Abel, Pencuri Data, dan Microsoft SQL Server Management Studio / SQL Server (Express Edition), semuanya boleh didapati secara percuma.
Sebagai permulaan, beliau menggunakan Paros Proxy untuk membolehkan lebih banyak kawalan dan keterlihatan ke permintaan web yang dibuat ke pelayan web.
Setelah meneliti tapak untuk halaman yang tersedia dan melakukan pemeriksaan kerentanan cepat untuk suntikan SQL, ia telah mengesahkan bahawa parameter App_Name muncul untuk menyebabkan aplikasi membuang pengecualian Ralat 500, menunjukkan kegagalan aplikasi. Ujian penembusan adalah salah satu peristiwa yang jarang berlaku apabila kegagalan aplikasi adalah hasil yang diingini.
Kerana kegagalan aplikasi menunjukkan bahawa Encik Andrews boleh menyuntik aksara yang tidak diingini ke dalam kod SQL yang dihantar dari aplikasi ke pangkalan data, dia dapat melihat sama ada ia adalah keadaan yang boleh diaplikasikan.
Ujian biasa yang berfungsi dengan pangkalan data Microsoft SQL Server adalah untuk menyuntik arahan, seperti WAITFOR DELAY '00: 00: 10 ', yang menyebabkan pelayan pangkalan data berhenti selama 10 saat. Dalam aplikasi yang biasanya mengembalikan halaman dalam satu saat atau kurang, kelewatan 10 saat yang konsisten adalah penunjuk yang baik bahawa anda boleh menyuntikkan arahan ke dalam aliran SQL.
Seterusnya, Encik Andrews cuba menggunakan alat Pencuri Data untuk menyerang laman log masuk.Alat ini cuba memaksa pangkalan data untuk menggunakan perintah OPENROWSET untuk menyalin data dari pangkalan data target ke pangkalan data Mr Andrews di Internet.
Ini biasanya merupakan cara yang sangat berkesan untuk menyedut sejumlah besar data dari pangkalan data terdedah, tetapi dalam kes ini, serangannya digagalkan! Pentadbir pangkalan data pada sasaran telah melumpuhkan kefungsian OPENROWSET dengan mengkonfigurasi dengan tepat pilihan Disable Adhoc Distributed Queries.
Dengan ketekunan sebagai kata sepakatnya, Encik Andrews bertahan dengan alat seterusnya - Absinthe. Alat ini menggunakan teknik yang dipanggil suntikan SQL buta untuk membuat penentuan tentang data menggunakan soalan ya atau tidak mudah pangkalan data. Sebagai contoh, alat itu mungkin meminta pangkalan data sama ada huruf pertama jadual kurang daripada "L. "
Jika ya, aplikasi mungkin tidak melakukan apa-apa, tetapi jika tidak, aplikasi mungkin membuang pengecualian. Menggunakan logik binari mudah ini, teknik ini boleh digunakan untuk mendedahkan keseluruhan struktur pangkalan data dan juga data yang disimpan di dalamnya - meskipun sangat perlahan. Menggunakan alat itu, dia mengenal pasti maklumat pelanggan yang sensitif dan memuat turun beberapa ratus rekod untuk menunjukkan kliennya.
Akhirnya, sudah tiba masanya untuk mencuba satu kebiasaan dastarditi pangkalan data terakhir. Pertama, Encik Andrews memuatkan alat yang dipanggil Cain & Abel dan menetapkannya untuk masuk mod sniffing. Kemudian, menggunakan Paros Proxy dan parameter terdedah yang telah dikenalpasti, dia menggunakan prosedur disimpan yang dimiliki oleh xp_dirtree, yang tersedia untuk pengguna pangkalan data SQL Server, untuk cuba menunjukkan direktori pada mesin yang disambungkan ke Internet menggunakan laluan Konvensyen Universal Naming.
Ini memaksa pangkalan data sasaran untuk benar-benar cuba mengesahkan dirinya terhadap mesin Encik Andrews. Kerana Cain & Abel sedang mendengarkan dawai, ia memperoleh hash dari cabaran yang digunakan untuk mengesahkan bahagian fail terdedah.
Dengan menyebarkan hash ini ke keretas kata laluan yang dibina ke Cain & Abel, Encik Andrews akan mempunyai nama pengguna dan kata laluan akaun di mana SQL Server yang lemah akan berjalan dalam masa yang singkat.
Adakah akaun yang digodam ini menggunakan kata laluan yang sama seperti akaun admin aplikasi web? Adakah kata laluan ini sama dengan akaun pentadbir tempatan pada hos? Mereka adalah soalan untuk hari yang lain. Sudah tiba masanya untuk mengumpulkan semua data yang dikumpulkan, menyediakan laporan untuk pelanggan, dan letakkan alat untuk hari yang lain.
Chip Andrews adalah pengasas bersama firma perunding keselamatan Special Ops Security, Inc. dan pemilik SQLSecurity. com, yang mempunyai pelbagai sumber mengenai keselamatan Microsoft SQL Server, termasuk alat SQLPing3. Seorang penulis bersama untuk beberapa buku mengenai keselamatan SQL Server dan penyampai Black Hat, Encik Andrews telah mempromosikan SQL Server dan keselamatan aplikasi sejak 1999.