ไม่สนับสนุนการใช้ detours อื่นหรือเทคนิคที่คล้ายกันใน SQL Server

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 920925 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

คุณลักษณะที่ใช้ detours หรือเทคนิคที่คล้ายกันเพื่อเปลี่ยนลักษณะการทำงานของ Microsoft SQL Server อาจทำให้เกิดปัญหาต่อไปนี้:
  • ปัญหาด้านประสิทธิภาพ
  • ผลลัพธ์ไม่ถูกต้อง
  • ความเสียหายของดิสก์และหน่วยความจำ
  • การสูญหายของการตอบสนองของเซิร์ฟเวอร์ SQL
  • การหยุดชะงักของกระบวนการที่ไม่คาดคิด
  • ไม่สามารถใช้วินิจฉัยมาตรฐาน เช่นฟังก์ชันfn_get_sqlและคำสั่ง DBCC INPUTBUFFER
  • โอกาสของปัญหาด้านความปลอดภัยที่เพิ่มขึ้น
หมายเหตุ Microsoft ให้บริการด้านการสนับสนุนสำหรับคุณลักษณะของบุคคลที่สามที่ใช้ detours หรือเทคนิคที่คล้ายกันเพื่อเปลี่ยนลักษณะการทำงานของ SQL Server ถ้าคุณกำลังทำงานกับบริการสนับสนุน SQL Server ในการตัดสินค้าจากคลังของ SQL Server และให้ระบุว่าไม่สามารถเกี่ยวข้อง detours หรือเทคนิคที่คล้ายกันที่เปลี่ยนแปลงลักษณะการทำงานของ SQL Server การสนับสนุนระดับมืออาชีพจะถามคุณ เพื่อปิดใช้งาน หรือเอาออกเช่น detours หรือลักษณะการทำงานที่คล้ายกันเป็นขั้นตอนการแก้ไขปัญหาเบื้องต้น ก่อนที่แก้ปัญหาเพิ่มเติมสามารถเกิดขึ้นได้ ปัญหาที่รายงานต้องห้ามไม่ มีฟังก์ชัน detour ใด ๆ ที่มีอยู่ ควรปัญหาไม่เกิดขึ้น Microsoft อาจแนะนำให้ คุณติดต่อผู้จำหน่ายสำหรับลักษณะการทำงานของบุคคลที่สาม และแก้ปัญหา มีทิศทางจากผู้จัดจำหน่ายนั้นต่อ

ข้อมูลเพิ่มเติม

Detours กำลังมีประสิทธิภาพ Detours แสดงความสามารถพิเศษและมีข้อดีข้อเสียของความ เสี่ยง/reward โดยทั่วไป เมื่อใช้ detour แบบใน SQL Server รหัสที่ใช้ได้คือส่งลงในช่องว่างกระบวนการ ดักวิธีการเซิร์ฟเวอร์ SQL หรือฟังก์ชัน กิจกรรมนี้อาจเปลี่ยนแปลงลักษณะการทำงานประสิทธิภาพการทำงานพื้นฐานของ SQL Server

ต่อไปนี้คือ บางตัวอย่างสถานการณ์และผลข้างเคียงที่เป็นไปได้:
  • แพคเก็ต (TDS) ปริมาณการใช้เครือข่ายขาเข้าจะสแกน และเปลี่ยนแปลง Detour จะเพิ่มไปที่ตำแหน่งที่สำคัญในเธรดกระบวนการเครือข่าย net_readdata แม้แต่บางรอบ CPU 100 ที่ตำแหน่งที่ตั้งนี้อาจลดอัตราความเร็วอัตราชุดอย่างมาก

    การเปลี่ยนแปลงในข้อมูล TDS แท้จริงอาจทำให้หน่วยความจำ scribblers ปัญหานี้มีปัญหาด้านเสถียรภาพต่าง ๆ ของ SQL Server ที่ทริกเกอร์ และความเสียหายของข้อมูล ปัญหาที่อาจทำให้แพคเก็ต TDS จะเปลี่ยนแปลงบางส่วน และ การเล่นซ้ำขยะไปยัง SQL Server การเข้าสู่ระบบสิ่งอำนวยความสะดวกที่ระดับนี้อาจเปิดเผยรหัสผ่านและข้อมูลอื่น ๆ ที่สำคัญ SQL Server ที่ติดตามถูกออกแบบมา เพื่อระงับ และ เพื่อช่วยรักษาความปลอดภัย
  • คำสั่งในการแยกวิเคราะห์ SQL Server เป็น detoured เมื่อต้องการเปลี่ยนลักษณะการทำงาน ต่อไปนี้มีผลข้างเคียงที่เป็นไปได้:
    • แผนการดำเนินการไม่ตรงกับข้อความของแบบสอบถามที่เกิดขึ้นจริง
    • มีส่งคำสั่งเพียงครั้งเดียวจากไคลเอ็นต์ อย่างไรก็ตาม คำสั่งดำเนินการหลายครั้ง
    • เอาพุตการติดตามแสดงคำสั่งเดิมแทนที่เป็นแบบสอบถามที่มีการเปลี่ยนแปลง
    • คำสั่ง DBCC INPUTBUFFER แสดงคำสั่งเดิมแทนที่เป็นแบบสอบถามที่มีการเปลี่ยนแปลง
    • ฟังก์ชันfn_get_sqlแสดงข้อมูลที่ไม่ถูกต้อง นอกจากนี้ ฟังก์ชันfn_get_sqlจะควบคู่ กับข้อยกเว้น และผลลัพธ์ที่ไม่ถูกต้อง ฟังก์ชันfn_get_sqlใช้วิธีแก้ไขปัญหาการตรวจสอบมาก และอาจทำให้เกิดปัญหาในการแก้ไขปัญหาการตรวจสอบ
    • โดยรวม ตัวจัดกำหนดการในโหมดผู้ใช้ (UMS) และการวางแผนระบบปฏิบัติการเซิร์ฟเวอร์ SQL (SQLOS) อาจถูกขัดจังหวะ ลูกค้าเป้าหมาย เพื่อการสูญหายของการตอบสนองจากเซิร์ฟเวอร์ SQL การเปลี่ยนแปลงของประสิทธิภาพการทำงาน และขัดข้อง
  • มี detoured APIs Win32 ที่มีคุณลักษณะความปลอดภัยขั้นสูง ขึ้นอยู่กับการใช้งาน สิ่งอำนวยความสะดวกการล็อกระดับนี้ไม่สามารถเปิดเผยรหัสผ่านและข้อมูลอื่น ๆ ที่สำคัญ โดยรวม UMS และ SQLOS ที่วางแผนถูกขัดจังหวะ ลูกค้าเป้าหมายใน การสูญหายของการตอบสนองของเซิร์ฟเวอร์ SQL และขัดข้อง
  • ปรับเปลี่ยนตารางฟังก์ชัน และฟังก์ชัน SQL Server หลักหรือ Windows API ของการเปลี่ยนเส้นทางไม่ได้รับการสนับสนุนภายในกระบวนการเซิร์ฟเวอร์ SQL ซึ่งทำให้ความไม่มีเสถียรภาพและลักษณะการทำงานที่ไม่คาดคิดในการทำงานของ SQL Server
ตัวอย่างต่อไปนี้แสดงให้เห็นว่า kernel32 แบบGetQueuedCompletionStatusได้รับการ detoured ฟังก์ชัน
MyDLL!MyGetQueuedCompletionStatus
ssnetlib!ConnectionReadAsyncWait
ในแอสเซมบลีสำหรับฟังก์ชันGetQueuedCompletionStatusคำสั่งแรกได้ถูกแทนที่ ด้วยคำสั่งการกระโดด
0:038> u kernel32!GetQueuedCompletionStatus
kernel32!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
แอสเซมบลีสำหรับรหัสดังกล่าวแสดงกิจกรรมการ detoured และการเรียกไปยังแฟ้ม MyDLL
0:038> u 21e70000  

21e70000 55              push    ebp
21e70001 8bec            mov     ebp,esp
21e70003 51              push    ecx
21e70004 8b4518          mov     eax,dword ptr [ebp+18h]
21e70007 50              push    eax
21e70008 8b4d14          mov     ecx,dword ptr [ebp+14h]
21e7000b 51              push    ecx
21e7000c 8b5510          mov     edx,dword ptr [ebp+10h]
21e7000f 52              push    edx
21e70010 8b450c          mov     eax,dword ptr [ebp+0Ch]
21e70013 50              push    eax
21e70014 8b4d08          mov     ecx,dword ptr [ebp+8]
21e70017 51              push    ecx
21e70018 e8234d19ee      call   MyDLL+0x4d40 (10004d40)   <- Call to the MyDLL file.
21e7001d 8945fc          mov     dword ptr [ebp-4],eax
21e70020 8b55fc          mov     edx,dword ptr [ebp-4]

คุณสามารถใช้การตรวจแก้จุดบกพร่องเครื่องมือสำหรับ Windows เพื่อตรวจสอบว่า มีการใช้ detours เมื่อต้องการทำเช่นนี้ ให้ทำตามขั้นตอนเหล่านี้

หมายเหตุ ทดสอบวิธีนี้เสมอก่อนที่คุณลองในการผลิต เมื่อคุณใช้การตรวจแก้จุดบกพร่องเครื่องมือสำหรับ Windows กระบวนการอาจตรึงเมื่อคุณเรียกใช้คำสั่ง ลักษณะเช่นนี้อาจส่งผลกระทบในเซิร์ฟเวอร์การผลิต
  1. แนบดีบักเครื่องมือสำหรับ Windows ไปยัง SQL Server หรือโหลดแฟ้มการถ่ายโอนข้อมูลผู้ใช้ทั้งหมด
  2. ออกคำสั่งต่อไปนี้ของดีบักเกอร์ คำสั่งนี้ตรวจสอบแต่ละรูปกับรูปบนดิสก์เพื่อตรวจสอบว่า detours ได้ส่ง
    !for_each_module "!chkimg -v @#Base -d"
  3. ดีบักเกอร์แยกออก
เมื่อต้องการขอรับการตรวจแก้จุดบกพร่องเครื่องมือสำหรับ Windows แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
ถ้ารูปในหน่วยความจำที่ถูกเปลี่ยนแปลง ผลผลิตอาจมีลักษณะต่อไปนี้:
Comparison image path: c:\program files\microsoft sql server\mssql\binn\ssnetlib.dll\ssnetlib.dll
Scanning section:    .text
Size: 56488
Range to scan: 0c261000-0c26eca8
0c263710-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: 33
33 errors : 0c260000 (0c263710-0c26516a)
คุณสามารถตรวจทานแอสเซมบลีการดูมากขึ้น ปัญหาดังนี้:
0:038> u ssnetlib!ConnectionClose
ssnetlib!ConnectionClose]:
0c263710 6800000000      push    0
0c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

โปรแกรมป้องกันไวรัสที่ติดตามโจมตีใส่ SQL สามารถ detour รหัส SQL Server ในสถานการณ์นี้ เอาพุตของใบ! for_each_module "! @# - v chkimg Base -d " นามสกุลอาจแสดงว่า เซิร์ฟเวอร์ SQL ฟังก์ชัน yyparse และ ex_raise2 ที่มีการปรับเปลี่ยน:

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

เราขอแนะนำให้ คุณติดต่อผู้ให้บริการ ของการ detours หรือเทคนิคคล้ายกันสำหรับข้อมูลเกี่ยวกับวิธีการใช้ detours หรือเทคนิคที่คล้ายกันใน SQL Server สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ detours และเทคนิคคล้าย เยี่ยมชมไซต์เว็บศูนย์การวิจัยของ Microsoft ต่อไปนี้:
http://research.microsoft.com/sn/detours

คุณสมบัติ

หมายเลขบทความ (Article ID): 920925 - รีวิวครั้งสุดท้าย: 7 พฤษภาคม 2557 - Revision: 3.0
ใช้กับ
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • 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
  • 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
Keywords: 
kbtshoot kbexpertiseadvanced kbinfo kbmt KB920925 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:920925

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com