다음을 통해 공유


IAntimalwareProvider 인터페이스(amsi.h)

맬웨어 방지 제품의 공급자를 나타냅니다. 코드 예제는 IAntimalwareProvider 인터페이스 샘플을 참조하세요.

IAntimalwareProvider 인터페이스는 IUnknown 인터페이스에서 상속됩니다.

상속

IAntimalwareProvider 인터페이스는 IUnknown 인터페이스에서 상속됩니다.

메서드

IAntimalwareProvider 인터페이스에는 이러한 메서드가 있습니다.

 
IAntimalwareProvider::CloseSession

세션을 닫습니다. (IAntimalwareProvider.CloseSession)
IAntimalwareProvider::D isplayName

표시할 맬웨어 방지 공급자의 이름입니다.
IAntimalwareProvider::Scan

콘텐츠 스트림을 검사합니다. (IAntimalwareProvider.Scan)

설명

Windows 10 버전 1903부터 Windows는 공급자에 대해 Authenticode 서명 검사를 사용하도록 설정하는 방법을 추가했습니다. 이 기능은 기본적으로 32비트 및 64비트 프로세스 모두에 대해 사용하지 않도록 설정됩니다. 테스트 목적으로 공급자를 만드는 경우 다음 Windows 레지스트리 값을 적절하게 설정하여 서명 검사를 사용하거나 사용하지 않도록 설정할 수 있습니다. 값은 DWORD입니다.

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AMSI\FeatureBits

동작
0x1 서명 검사 사용할 수 없습니다. 기본 동작입니다. 테스트하는 동안 이 값을 일시적으로 사용할 수도 있습니다.
0x2 Authenticode 서명에 대한 검사 사용하도록 설정됩니다.

레지스트리 값을 모두 삭제하면 0x1 값이 있는 것처럼 동작합니다.

참고

공급자는 SignTool/ac 함께 스위치를 사용하여 Authenticode 인증서로 교차 서명해야 합니다. 이진 파일에 서명하면 SignTool 및 /kp 옵션을 사용하여 확인할 수 있습니다. SignTool에서 오류를 반환하지 않으면 이진 파일이 제대로 서명됩니다.

중요

Windows 레지스트리 값이 운영 체제에 의해 보호되지 않더라도 컴퓨터의 바이러스 백신 공급자는 이 값을 보호하므로 쓰기가 보호됩니다.

공급자가 로드 중인지 여부를 검사 위해 코드 무결성 이벤트를 볼 수 있습니다. 코드 무결성 진단 이벤트의 자세한 로깅을 사용하도록 설정해야 합니다. 찾을 이벤트 ID는 30403041입니다. 다음은 몇 가지 예제입니다.

Log Name:      Microsoft-Windows-CodeIntegrity/Verbose
Source:        Microsoft-Windows-CodeIntegrity
Date:          M/DD/YYYY H:MM:SS PM
Event ID:      3040
Task Category: (14)
Level:         Verbose
Keywords:      
User:          [DOMAIN_NAME]\Administrator
Computer:      [COMPUTER_NAME]
Description:
Code Integrity started retrieving the cached data of [PATH_AND_FILENAME] file.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-CodeIntegrity" Guid="{4ee76bd8-3cf4-44a0-a0ac-3937643e37a3}" />
    <EventID>3040</EventID>
    <Version>0</Version>
    <Level>5</Level>
    <Task>14</Task>
    <Opcode>1</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="YYYY-MM-DDT02:26:48.875954700Z" />
    <EventRecordID>7</EventRecordID>
    <Correlation />
    <Execution ProcessID="4972" ThreadID="7752" ProcessorID="1" KernelTime="14" UserTime="2" />
    <Channel>Microsoft-Windows-CodeIntegrity/Verbose</Channel>
    <Computer>[COMPUTER_NAME]</Computer>
    <Security UserID="[USER_SID]" />
  </System>
  <EventData>
    <Data Name="FileNameLength">40</Data>
    <Data Name="FileNameBuffer">[PATH_AND_FILENAME]</Data>
  </EventData>
</Event>
Log Name:      Microsoft-Windows-CodeIntegrity/Verbose
Source:        Microsoft-Windows-CodeIntegrity
Date:          M/DD/YYYY H:MM:SS PM
Event ID:      3041
Task Category: (14)
Level:         Verbose
Keywords:      
User:          [DOMAIN_NAME]\Administrator
Computer:      [COMPUTER_NAME]
Description:
Code Integrity completed retrieval of file cache. Status 0xC0000225.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-CodeIntegrity" Guid="{4ee76bd8-3cf4-44a0-a0ac-3937643e37a3}" />
    <EventID>3041</EventID>
    <Version>2</Version>
    <Level>5</Level>
    <Task>14</Task>
    <Opcode>2</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="YYYY-MM-DDT02:26:48.875964700Z" />
    <EventRecordID>8</EventRecordID>
    <Correlation />
    <Execution ProcessID="4972" ThreadID="7752" ProcessorID="1" KernelTime="14" UserTime="2" />
    <Channel>Microsoft-Windows-CodeIntegrity/Verbose</Channel>
    <Computer>[COMPUTER_NAME]</Computer>
    <Security UserID="[USER_SID]" />
  </System>
  <EventData>
    <Data Name="Status">0xc0000225</Data>
    <Data Name="CachedFlags">0x0</Data>
    <Data Name="CacheSource">0</Data>
    <Data Name="CachedPolicy">0</Data>
  </EventData>
</Event>

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2016 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 amsi.h

추가 정보

IAntimalwareProvider 인터페이스 샘플

SignTool

AMSI가 도움이 되는 방법