DetailPage-MSS-KB

기술 자료

기술 자료: 920925 - 마지막 검토: 2015년 3월 20일 금요일 - 수정: 4.0

 

요약

Microsoft 기술 지원 서비스를 자유롭게 사용 하 여 Microsoft SQL Server 추가 기능을 제공 하는 다양 한 타사 제품 발견 했습니다. 일반적으로 기능 감사는 이러한. 제 자유롭게 Microsoft 응용 프로그램에 대 한 인증 과정이 없습니다. 따라서 일반적으로 Microsoft 강력한 인증은 자유롭게 사용 합니다.

기능을 자유롭게 또는 유사한 기술을 사용 하 여 SQL Server 동작을 변경할 다음과 같은 문제가 발생할 수 있습니다.
  • 성능 문제
  • 잘못 된 결과
  • 디스크 및 메모리 손상
  • SQL Server 응답의 손실
  • 예기치 않은 프로세스 종료
  • Fn_get_sql 함수 및 DBCC inputbuffer가 지워지기 명령 표준 진단 유틸리티를 사용할 수 없음으로
연결 된 서버, 확장된 프로시저 또는 SQL Server 프로세스 내에서 COM 개체 같은 타사 소프트웨어를 사용할 때 이러한 동일한 문제가 발생할 수 있습니다. 자유롭게는 DBA 보기에서 숨겨집니다. Detour를 밝히고, 다음에 나오는 "추가 정보" 섹션에서 설명 하는 기술을 따라야 합니다. 연결 된 서버, COM 개체 및 확장된 프로시저 등록이 명시적 및 인터페이스를 정의 합니다.

참고: 자유롭게의 숨겨진된 특성 및 게시 된 인터페이스의 부족으로 인해 Microsoft는 자유롭게 또는 유사한 기술을 사용 하 여 타사 기능에 대 한 지원 서비스를 제공 하지 않습니다. 제 3 자는 해당 코드에 대 한 지원 또는 기타 승인 자체 연결 된 서버에 대 한 책임 것 처럼 배포 합니다.

것이 중요 하지 않은 작업을 사용 하지 않거나 타사 구성 요소와, 유사한 기술을 제거를 Microsoft 지원 서비스에 대 한 문제 해결의 일반적인 과정에서 일반적인 좋습니다. Microsoft는 항상 문제를 식별 하는 동안 문제의 줄어들어 하려고 합니다. 이 문제를 식별 한 후 작업 또는 타사 제품 관련이 이러한 작업 또는 타사 제품이 추가 될 수 있습니다 생산 환경으로 다시.

인텔의 목적을 한 detour 밝히고 다음으로 지원 되는 SQL Server 인스턴스를 고려 하지 않습니다. Microsoft는 일부 구현 필요 하다 승인 합니다. 그러나 Microsoft에는 자유롭게의 지원 가능성의 유효성을 검사 해야 합니다. 신뢰할 수 있고 믿을 수 있는 회사에서 detour 바이러스에 의해 사용 되는 예기치 않은 detour에서 확실히 차이가 있습니다. Microsoft 보증 하지 않거나 타사 제품 또는 타사 제품이 Microsoft 제품 및 서비스와 상호 작용 하는 방법을 확인 합니다. 이때 공급 업체 id 및 제품 및 서비스의 신뢰성에 대 한 책임이 있습니다. 타사 제품 및 서비스에 대 한 질문이 있으면 해당 타사 연결할 하십시오. Microsoft는 타사 제품이 나 서비스와 관련 하 여 SQL Server 사용으로 인해 발생 하는 모든 문제에 대 한 책임이 없습니다.

추가 정보

자유롭게 위험/보상 균형을 조절 하 고 향상 된 기능을 제공합니다. 일반적으로 SQL Server 구현 되는 detour 타사 코드 프로세스 공간에 삽입 됩니다. 이 작업의 SQL Server 동작을 변경할 수 있습니다.

다음은 일부 예제에서는 상황 및 가능한 부작용입니다.
  • 들어오는 네트워크 트래픽 (TDS) 패킷의 검색 되어 변경 됩니다. Detour의 net_readdata 네트워크 프로세스 스레드에서 중요 한 위치에 추가 됩니다. 이 여기에 CPU 사이클 100 일괄 처리 속도 처리량을 크게 줄일 수 있습니다.

    메모리 scribblers 실제 TDS 데이터가 변경 될 수 있습니다. 이 문제가 여러 SQL Server 안정성 문제가 트리거된 및 데이터 손상에서. 문제는 부분적으로 변경 하 고 재생 하려면 SQL Server 가비지 TDS 패킷을 발생할 수 있습니다. 로깅이 수준에서 기능 노출 될 수 있습니다 암호 및 기타 중요 한 데이터는 SQL Server 추적 억제 하 고 안전 하 게 설계 되었습니다.
  • SQL Server 구문 분석 루틴은 동작을 변경 하려면 detoured. 다음은 가능한 부작용입니다.
    • 실행 계획이 실제 쿼리 텍스트를 일치 하지 않습니다.
    • 명령은 한 번만 클라이언트에서 전송 됩니다. 그러나 명령은 여러 번 실행 합니다.
    • 추적 출력이 변경 된 쿼리 대신 원본 명령을 보여 줍니다.
    • DBCC inputbuffer가 지워지기 명령 변경 된 쿼리 대신 원본 명령을 보여 줍니다.
    • Fn_get_sql 함수는 잘못 된 데이터를 표시합니다. 또한 fn_get_sql 함수는 예외를 잘못 된 결과를 받기 쉽습니다. Fn_get_sql 함수에 의해 많은 모니터링 솔루션이 사용 되 고 모니터링 솔루션에서 문제가 발생할 수 있습니다.
    • 전체 사용자 모드 스케줄러 (UMS) 및 SQL Server 운영 체제 (SQLOS) 예약 중단 될 수 있습니다. 이렇게 하면 SQL Server 응답 손실, 성능 변경 및 중단.
  • 향상 된 보안 기능을 제공 하는 Win32 Api detoured 됩니다. 구현에 따라이 수준에서 로깅 기능 암호 및 기타 중요 한 데이터가 노출 될 수 있습니다. 전체 일정 SQLOS 및 UMS 중단 됩니다. 이 SQL Server 응답 손실 하 고 서비스 중단 안내.
  • 핵심 SQL Server 기능 또는 Windows API 리디렉션 및 함수 테이블 수정 SQL Server 프로세스 내에서 지원 되지 않습니다. 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 용 디버깅 도구를 사용할 수 있습니다. 이렇게 하려면 다음 단계를 수행하십시오.

참고: 항상 프로덕션에서 시도 하기 전에이 메서드를 테스트 합니다. Windows 용 디버깅 도구를 사용 하면 명령을 실행할 때 프로세스가 중지 될 수 있습니다. 이 동작은 프로덕션 서버에 저하 될 수 있습니다.
  1. Windows 용 디버깅 도구를 SQL Server 연결 하거나 전체 사용자 덤프 파일을 로드 합니다.
  2. 다음 디버거 명령을 실행 합니다. 이 명령은 각 이미지는 자유롭게 삽입 되었는지 여부를 확인 하려면 디스크 이미지에 대해 검사 합니다.
    !for_each_module "!chkimg -v @#Base -d"
  3. 디버거를 분리 합니다.
Windows 용 디버깅 도구를 구하려면 다음 Microsoft 웹 사이트 방문 하십시오.
http://www.microsoft.com/whdc/devtools/debugging/default.mspx (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 주입 공격을 추적 하는 SQL Server 코드를 detour 수 있습니다. 이 시나리오에서는 출력의! for_each_module "!-v @# chkimg Base-d" yyparse SQL Server 기능을 수행 하 고 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

SQL Server는 자유롭게 사용 하는 방법에 대 한 자세한 내용은 공급자에 자유롭게 또는 유사한 방법을 문의 하는 것이 좋습니다. 우회와 유사한 기술에 대 한 자세한 내용은 다음 Microsoft 연구소 웹 사이트로 이동 합니다.
http://research.microsoft.com/sn/detours (http://research.microsoft.com/sn/detours/)

본 문서의 정보는 다음의 제품에 적용됩니다.
  • 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
  • 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 KbMtko
기계 번역된 문서기계 번역된 문서
이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.
이 문서의 영문 버전 보기:920925  (http://support.microsoft.com/kb/920925/en-us/ )
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store