Memutar atau teknik yang sama dapat menyebabkan perilaku tak terduga dengan SQL Server

PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.

Klik disini untuk melihat versi Inggris dari artikel ini: 920925
Ringkasan
Dukungan Microsoft telah mengalami berbagai produk pihak ketiga yang menggunakan memutar untuk menyediakan fungsionalitas tambahan untuk Microsoft SQL Server. Ini biasanya audit fungsionalitas. Ada tidak ada proses sertifikasi untuk memutar pihak ketiga untuk aplikasi Microsoft. Oleh karena itu, umumnya, Microsoft sangat menghambat penggunaan memutar.

Fitur yang menggunakan memutar atau teknik yang sama untuk mengubah perilaku dari SQL Server dapat menyebabkan masalah berikut ini:
  • Masalah kinerja
  • Hasil yang salah
  • Kerusakan disk dan kehabisan memori
  • Hilangnya respons SQL Server
  • Penghentian proses yang tak terduga
  • Ketidakmampuan untuk menggunakan standar diagnostik, seperti fungsi fn_get_sql dan perintah DBCC INPUTBUFFER
  • utilisasi CPU 100 persen dan lama pemulihan database waktu saat Anda menggunakan dalam kehabisan memori OLTP Daftar Tabel di SQL Server
Anda mungkin mengalami masalah ini sama ketika Anda menggunakan peranti penangkap lunak non-Microsoft seperti terkait server, prosedur yang diperluas, atau obyek COM dalam proses SQL Server. Memutar tersembunyi dari tampilan DBA. Untuk menemukan jalan memutar, Anda harus menggunakan teknik yang dijelaskan di bagian "Informasi selengkapnya" berikut. Server tertaut, obyek COM dan perluasan prosedur memiliki eksplisit registrasi dan ditetapkan antarmuka.

Catatan Karena sifat tersembunyi memutar dan kurangnya diterbitkan antarmuka, Microsoft tidak menyediakan layanan dukungan untuk fitur-fitur pihak ketiga yang menggunakan memutar atau teknik yang sama. Pihak ketiga bertanggung jawab untuk dukungan kode sendiri, seperti yang akan bertanggung jawab untuk server tertaut atau lain menyetujui penyebaran.

Ini adalah praktik umum, kursus biasa pemecahan masalah untuk layanan dukungan Microsoft untuk meminta Anda untuk menonaktifkan tidak penting pekerjaan dan untuk menonaktifkan atau menghapus komponen pihak ketiga dan teknik, serupa. Microsoft selalu mencoba untuk mengurangi jejak masalah sementara itu adalah mengidentifikasi masalah. Setelah masalah yang diidentifikasi sebagai tidak terkait dengan pekerjaan atau produk pihak ketiga, pekerjaan atau produk pihak ketiga yang mungkin akan memperkenalkan kembali ke dalam produksi.

Itu bukan tujuan kami untuk menemukan jalan memutar dan kemudian pertimbangkan contoh SQL Server agar tidak didukung. Microsoft mengakui bahwa beberapa implementasi diperlukan. Namun, Microsoft mengharuskan Anda untuk memvalidasi dukungan memutar. Memutar dari perusahaan terkemuka dan terpercaya benar-benar berbeda dari memutar tak terduga yang digunakan oleh virus. Microsoft tidak menjamin atau mengesahkan ini produk pihak ketiga atau bagaimana produk pihak ketiga berinteraksi dengan produk dan layanan Microsoft. Sebaliknya, vendor pihak ketiga bertanggung jawab identifikasi dan kepercayaan produk dan layanan. Jika Anda memiliki pertanyaan tentang produk pihak ketiga dan layanan, silakan menjangkau pihak ketiga yang dapat diterapkan. Microsoft tidak bertanggung jawab untuk setiap masalah yang disebabkan oleh penggunaan produk pihak ketiga atau layanan terkait dengan SQL Server.
Informasi lebih lanjut
Memutar menyediakan kapabilitas ditingkatkan dan tradeoff risiko imbalan. Biasanya, ketika memutar diterapkan di SQL Server, pihak ketiga kode dimasukkan ke proses ruang. Aktivitas ini akan mengubah perilaku dari SQL Server.

Berikut adalah beberapa contoh situasi dan kemungkinan efek samping:
  • Paket (TDS) lalu lintas jaringan masuk memindai dan diubah. Memutar ditambahkan di lokasi yang penting net_readdata jaringan proses thread. Bahkan 100 Lingkaran Berkelanjutan CPU di lokasi ini dapat mengurangi batch tingkat volume data.

    Perubahan data TDS aktual dapat menyebabkan scribblers kehabisan memori. Masalah ini telah memicu berbagai masalah stabilitas SQL Server dan kerusakan data. Masalah dapat menyebabkan paket TDS sebagian berubah dan replay sampah ke SQL Server. Pengelogan fasilitas di tingkat ini dapat memaparkan sandi dan data sensitif lainnya pelacakan dirancang untuk menekan dan untuk membantu mengamankan Server SQL.
  • SQL Server parsing rutinitas detoured untuk mengubah perilaku. Berikut ini adalah kemungkinan efek samping:
    • Rencana eksekusi tidak cocok teks pertanyaan sebenarnya.
    • Perintah ini dikirim hanya satu kali dari klien. Namun, perintah dijalankan beberapa kali.
    • Pelacakan output menunjukkan perintah asli dan bukan permintaan diubah.
    • Perintah DBCC INPUTBUFFER menunjukkan perintah asli dan bukan permintaan diubah.
    • Fn_get_sql function menampilkan data yang salah. Selain itu, fungsi fn_get_sql rentan pengecualian dan untuk hasil yang salah. Fungsi fn_get_sql digunakan oleh banyak solusi pemantauan dan dapat menyebabkan masalah pada solusi pemantauan.
    • Keseluruhan pengguna Mode penjadwal (UMS) dan penjadwalan SQL Server sistem operasi (SQLOS) mungkin terputus. Hal ini menyebabkan hilangnya respons SQL Server, perubahan kinerja, dan pemutusan.
  • Api Win32 yang menyediakan fitur keamanan yang ditingkatkan detoured. Tergantung pada implementasi, fasilitas logging pada tingkat ini dapat memaparkan sandi dan data sensitif lainnya. Keseluruhan UMS dan SQLOS penjadwalan terganggu. Hal ini menyebabkan hilangnya respons SQL Server dan pemutusan.
  • Mengubah Daftar Tabel fungsi dan mengarahkan fungsi SQL Server inti atau Windows API tidak didukung dalam proses SQL Server. Hal ini dapat menyebabkan ketidakstabilan dan perilaku tak terduga fungsionalitas SQL Server.
Contoh berikut ini menunjukkan bahwa kernel32! GetQueuedCompletionStatus fungsi detoured.
MyDLL!MyGetQueuedCompletionStatusssnetlib!ConnectionReadAsyncWait
Di Majelis untuk fungsi GetQueuedCompletionStatus , petunjuk pertama telah digantikan dengan instruksi langsung.
0:038> u kernel32!GetQueuedCompletionStatuskernel32!GetQueuedCompletionStatus 77e660f1 e90a9f00aa      jmp     21e70000   ß  This points to an address that does not appear in the loaded module list (lm). It is injected code.77e660f6 83ec10          sub     esp,10h
Rakitan untuk kode yang dimasuki oleh menunjukkan aktivitas detoured dan panggilan ke berkas MyDLL.
0:038> u 21e70000  21e70000 55              push    ebp21e70001 8bec            mov     ebp,esp21e70003 51              push    ecx21e70004 8b4518          mov     eax,dword ptr [ebp+18h]21e70007 50              push    eax21e70008 8b4d14          mov     ecx,dword ptr [ebp+14h]21e7000b 51              push    ecx21e7000c 8b5510          mov     edx,dword ptr [ebp+10h]21e7000f 52              push    edx21e70010 8b450c          mov     eax,dword ptr [ebp+0Ch]21e70013 50              push    eax21e70014 8b4d08          mov     ecx,dword ptr [ebp+8]21e70017 51              push    ecx21e70018 e8234d19ee      call   MyDLL+0x4d40 (10004d40)   <- Call to the MyDLL file.21e7001d 8945fc          mov     dword ptr [ebp-4],eax21e70020 8b55fc          mov     edx,dword ptr [ebp-4]

Anda dapat menggunakan alat Debugging Windows untuk menentukan apakah memutar sedang digunakan. Untuk melakukannya, ikuti langkah-langkah berikut.

Catatan Selalu menguji metode ini sebelum Anda mencoba produksi. Ketika Anda menggunakan Debugging Tools for Windows, proses membeku ketika Anda menjalankan perintah. Perilaku ini dapat mempengaruhi server produksi.
  1. Melampirkan Debugging Tools for Windows untuk SQL Server, atau memuat berkas dump pengguna penuh.
  2. Masalah debugger perintah berikut ini. Perintah ini akan memeriksa setiap gambar terhadap gambar pada disk untuk menentukan apakah memutar telah memasuki.
    !for_each_module "!chkimg -v @#Base -d"
  3. Pelepasan debugger.
Untuk mendapatkan Debugging Tools for Windows, kunjungi website Microsoft berikut: Jika gambar dalam kehabisan memori diubah, output akan seperti berikut ini:
Comparison image path: c:\program files\microsoft sql server\mssql\binn\ssnetlib.dll\ssnetlib.dllScanning section:    .textSize: 56488Range to scan: 0c261000-0c26eca80c263710-0c26371a  11 bytes - ssnetlib!ConnectionClose           	[ 8b ff 55 8b ec 83 ec 10:68 00 00 00 00 e9 27 8a ]0c2641e0-0c2641ea  11 bytes - ssnetlib!ConnectionReadAsync (+0xad0)	[ 8b ff 55 8b ec 83 ec 38:68 00 00 00 00 e9 00 7e ]0c265160-0c26516a  11 bytes - ssnetlib!ConnectionWriteAsync (+0xf80)	[ 8b ff 55 8b ec 83 ec 28:68 00 00 00 00 e9 ba 70 ]Total bytes compared: 56488(100%)Number of errors: 3333 errors : 0c260000 (0c263710-0c26516a)
Anda dapat meninjau rakitan untuk melihat secara lebih dekat masalah sebagai berikut:
0:038> u ssnetlib!ConnectionClosessnetlib!ConnectionClose]:0c263710 6800000000      push    00c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

Program antivirus yang melacak serangan injeksi SQL dapat memutar kode SQL Server. Dalam skenario ini, output! for_each_module "! chkimg - v @#Base -d" ekstensi mungkin menunjukkan bahwa SQL Server fungsi yyparse dan ex_raise2 diubah:

Comparison image path: <symbol file path>\sqlservr.exeRange to scan: c81000-3de7d48    ed71a8-ed71ad  6 bytes - sqlservr!yyparse [ ff f5 41 54 41 55:e9 c7 95 5c 76 90 ]1202820-1202824  5 bytes - sqlservr!ex_raise2 (+0x32b678) [ ff f3 57 41 54:e9 20 e0 29 76 ]Total bytes compared: 51801416(17%)Number of errors: 11

Kami sarankan Anda menghubungi penyedia memutar atau teknik yang sama untuk informasi selengkapnya tentang cara menggunakan pengalihan di SQL Server. Untuk informasi lebih lanjut tentang memutar dan teknik yang sama, kunjungi situs web Microsoft Research Center berikut ini:

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Proprietà

ID articolo: 920925 - Ultima revisione: 11/29/2016 18:03:00 - Revisione: 7.0

Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium-based Systems, Microsoft SQL Server 2005 Enterprise Edition for Itanium-based Systems, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbtshoot kbexpertiseadvanced kbinfo kbmt KB920925 KbMtid
Feedback