Development/Windows 16

Windows I/O Manager

Table of Contents Abstract Windows는 다양한 외부 디바이스와 Windows 시스템 상에서 동작하는 유저 모드 어플리케이션나 운영체제, 외부 디바이스간 원활하고 통일된 통신 방식을 위해 I/O Manager를 통한 I/O 인터페이스를 제공하고 있다. I/O Manager는 유저 모드 어플리케이션이 요청한 I/O를 IRP라는 I/O 요청서로 패키징해 드라이버에게 전달하고, 드라이버는 요청 내용을 적절히 처리해 디바이스로 전달한다. 본 글에서는 이러한 I/O 과정에서 중요한 Windows 커널 요소들을 정리해봤다. Windows I/O Components I/O Manager EDR을 포함해 많은 보안 프로그램들은 파일 시스템에서 발생하는 이벤트들을 모니터링 할 필요가 있다. 파일 ..

Development/Windows 2021.11.19

#5 AMSI - Regsvr32로 AMSI Provider 등록하기

Table of Contents Abstract Regsvr32는 Windows 레지스트리에 DLL을 등록하거나 해제하는 데 사용되는 유틸리티다. Regsvr32는 등록하려는 DLL을 로드한 후 해당 DLL의 DllRegisterServer 함수를 호출함으로써 등록하고, DllUnregisterServer를 호출함으로써 해제한다. 본 글에서는 이러한 Regsvr32를 통해 AMSI Provider를 레지스트리에 등록하는 방법을 서술한다. How to register using regsvr32 Regsvr32 Regsvr32는 Windows 레지스트리에 DLL이나 ActiveX 컨트롤 같은 OLE 컨트롤을 등록하거나 해제하는 커맨드 라인 유틸리티다. Windows XP부터 존재했으며 %systemroot%..

Development/Windows 2021.11.11

#4 AMSI - AMSI Provider 등록하기

Table of Contents Abstract AMSI Provider는 Windows의 레지스트리에 AMSI Provider의 프로필과 AMSI DLL 경로를 저장함으로써 AMSI Provider 로 등록된다. 위치는 아래와 같다. AMSI Provider Registry HKLM\SOFTWARE\Microsoft\AMSI\Providers\{} HKLM\SOFTWARE\Classes\CLSID\{} AMSI Provider WoW64 Registry HKLM\SOFTWARE\WOW6432Node\Microsoft\AMSI\Providers\{} HKLM\SOFTWARE\WOW6432Node\Classes\CLSID\{} How to register DLL as AMSI Provider AMSI Re..

Development/Windows 2021.11.09

#3 AMSI - AMSI Provider 작성하기

Table of Contents Abstract AMSI Provider는 Windows에 AMSI Provider로 등록되어 AMSI Scan 기능을 제공하는 서드 파티 멀웨어 방지 공급자를 말한다. 개요에서 보았듯이 AMSI Scan 기능을 이용하는 AMSI Client들은 AMSI API 함수를 호출하면 자동으로 레지스트리에서 AMSI Provider 관련 키와 값을 찾아 AMSI Provider의 DLL을 로드하고, AMSI DLL의 Scan 함수를 호출한다. 그러므로 AMSI Provider를 만든다는 것은 AMSI Client들이 로드할 DLL을 작성하고 이를 Windows 레지스트리에 등록하는 것을 의미한다. How to develop AMSI Provider Sample Code 우선 Vi..

Development/Windows 2021.11.08

#2 AMSI - AMSI 스캔 기능 사용하기

Table of Contents Abstract AMSI Provider가 제공하는 AMSI Scan 기능을 사용하기 위해서는 Windows SDK에서 제공하는 amsi.h를 인클루드하고 AmsiScanString 혹은 AmsiScanBuffer API를 호출하면 된다. AMSI API가 담긴 amsi.lib는 자동으로 링크되지 않으므로 #pargma 같은 전처리문이나 프로젝트 속성에서 amsi.lib를 포함시켜야 한다. How to use AMSI Scan 앞서 AMSI는 AMSI 스캔 기능을 제공하는 AMSI Provider와 이를 사용하는 일반 응용 프로그램들로 나뉜다고 설명했다. 본 글에서는 AMSI Provider가 제공하는 AMSI 스캔 기능을 사용하는 방법에 대해 적어보려 한다. AMSI 스..

Development/Windows 2021.11.06

#1 AMSI - 개요

Table of Contents Abstract AMSI는 Windows가 서드 파티 AV 프로그램들이 Fileless 악성코드를 탐지하고 차단할 수 있도록 제공하는 스캔 인터페이스다. PowerShell, CScript, WScript 등이 스크립트를 실행하기 전에 AMSI를 사용해 서드 파티 AV 프로그램들에게 스크립트의 악성 여부 검사를 요청할 수 있으며, 서드 파티 AV 프로그램들은 스크립트를 진단해 악성 여부를 판단한 뒤 이를 반환해 스크립트 실행을 차단할 수 있다. 본 AMSI 편에서는 AMSI에 대한 개요와 이용법, 작성법, 등록법을 알아보도록 하겠다. Overview AMSI AMSI(Anti-Malware Scan Interface)는 Windows 10부터 제공하는 다목적 스캔 인터페이..

Development/Windows 2021.11.05