우회 이나 유사한 SQL Server 사용 하 여 예기치 않은 동작이 발생할 수 있습니다.

이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.

이 문서의 영문 버전 보기:920925
요약
Microsoft 기술 지원 서비스 Microsoft SQL Server 추가 기능을 제공 하기 위해 자유롭게 사용 하는 수많은 다른 공급 업체 제품을 발견 했습니다. 이러한 일반적으로 기능 감사 합니다. 제 자유롭게 Microsoft 응용 프로그램에 대 한 인증 과정이 없습니다. 따라서 일반적으로 Microsoft 강력한 인증은 자유롭게 사용 합니다.

우회 또는 이와 유사한 기술을 사용 하 여 SQL Server 동작을 변경 하는 기능에는 다음과 같은 문제가 발생할 수 있습니다.
  • 성능 문제
  • 잘못 된 결과
  • 디스크 및 메모리 손상
  • SQL Server 응답의 손실
  • 예기치 않은 프로세스 종료
  • Fn_get_sql 함수 및 DBCC inputbuffer가 지워지기 명령 등의 표준 진단 유틸리티를 사용할 수 없음으로
  • 100 %CPU 사용률 및 SQL Server 메모리 OLTP 테이블을 사용 하면 데이터베이스 복구 시간
연결 된 서버, 확장된 프로시저 또는 SQL Server 프로세스 내에서 COM 개체 같은 타사 소프트웨어를 사용할 때 이러한 동일한 문제가 발생할 수 있습니다. 우회는 DBA 보기에서 숨겨집니다. detour을 알아내는 데 다음에 나오는 "추가 정보" 절에 설명 되어 있는 기법을 사용 해야 합니다. 연결 된 서버, COM 개체 및 확장된 프로시저 등록이 명시적 및 인터페이스를 정의 합니다.

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

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

인텔의 목적을 한 detour을 밝히고 다음으로 지원 되는 SQL Server 인스턴스를 고려 하지 않습니다. Microsoft는 일부 구현에 필요한는 승인 합니다. 그러나 Microsoft에는 우회에 대 한 지원 가능성의 유효성을 검사 해야 합니다. 바이러스에 의해 사용 되는 예기치 않은 detour에서 유명 하 고 신뢰할 수 있는 회사에서 detour는 확실히 차이가 있습니다. Microsoft 보증 하지 않거나 이러한 제 3 자 제품이 나 다른 공급 업체 제품은 Microsoft 제품 및 서비스와 상호 작용 하는 방법을 확인 합니다. 이때 공급 업체 id 및 제품 및 서비스의 신뢰성에 대 한 책임이 있습니다. 다른 공급 업체 제품 및 서비스에 대 한 질문이 있으면 하십시오에 도달 하 여 해당 제 3 자. Microsoft는 타사 제품이 나 서비스와 관련 하 여 SQL Server 사용으로 인해 발생 하는 모든 문제에 대 한 책임이 없습니다.
추가 정보
우회 위험/보상 균형을 조절 하 고 향상 된 기능을 제공합니다. 일반적으로 SQL Server 구현 되는 detour 제 코드 프로세스 공간으로 삽입 됩니다. 이 작업의 SQL Server 동작을 변경할 수 있습니다.

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

    메모리 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 됩니다. 구현에 따라이 수준에서 로깅 기능 암호 및 기타 중요 한 데이터가 노출 될 수 있습니다. 전반적인 UMS와 SQLOS 예약 중단 됩니다. 이렇게 하면 SQL Server 응답 손실 하 고 서비스 중단.
  • 함수 테이블 수정 핵심 SQL Server 기능 또는 Windows API 리디렉션 및 SQL Server 프로세스 내에서 지원 되지 않습니다. SQL Server 기능이 불안정 및 예기치 않은 동작이 발생할 수 있습니다.
다음 예제는 kernel32! GetQueuedCompletionStatus 함수 detoured 되었습니다.
MyDLL!MyGetQueuedCompletionStatusssnetlib!ConnectionReadAsyncWait
GetQueuedCompletionStatus 함수에 대 한 어셈블리의 첫 번째 명령 점프 명령으로 대체 되었습니다.
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
삽입된 된 코드에 대 한 어셈블리 detoured 활동과 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]

자유롭게 사용 되는지 여부를 확인 하려면 Windows 용 디버깅 도구를 사용할 수 있습니다. 이렇게 하려면, 다음 단계를 수행하십시오.

참고: 프로덕션 환경에서 시도 하기 전에 항상이 메서드를 테스트 합니다. Windows 용 디버깅 도구를 사용 하면 명령을 실행 하면 프로세스가 정지 됩니다. 이 동작은 프로덕션 서버에 저하 될 수 있습니다.
  1. Windows 용 디버깅 도구를 SQL Server 연결 하거나 전체 사용자 덤프 파일을 로드 합니다.
  2. 다음 디버거 명령을 사용 합니다. 이 명령은 각 이미지는 자유롭게 삽입 되었는지 여부를 확인 하려면 디스크 이미지에 대해 검사 합니다.
    !for_each_module "!chkimg -v @#Base -d"
  3. 디버거를 분리 합니다.
Windows 용 디버깅 도구를 구하려면 다음 Microsoft 웹 사이트 방문 하십시오. 메모리에 이미지 변경 된 경우에 출력 다음과 유사할 수 있습니다.
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)
다음과 같이 문제가 더 자세히 볼 수 어셈블리를 검토할 수 있습니다.
0:038> u ssnetlib!ConnectionClosessnetlib!ConnectionClose]:0c263710 6800000000      push    00c263715 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 연구소 웹 사이트로 이동 합니다.

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 920925 - 마지막 검토: 11/29/2016 18:05:00 - 수정: 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 KbMtko
피드백