🤖 내용 정리
👀클라이언트 시스템
: 프로세스들의 행위를 실시간으로 모니터링
구성 모듈
- 해쉬 생성 모듈 : MD5이용 -> 실행 파일에 대한 해쉬값 생성
- 조작에 대한 탐지 및 방지 모듈 : Win32 API 패턴 기반
- 분석 방지 모듈 :보호대상에 대한 디버거 등의 동작 감지
- 전송 모듈 : 수집 데이터 전송
=> 에이전트와 별개의 프로그램으로 동작
🔎동작 절차
- 보안정책 초기화
- 해쉬값 생성
- 해쉬값 비교 후 차단 대상인지 검사
- 차단 대상일 경우 정보 관리서버로 전송 후 종료
- 보호 대상 프로세스로의 접근, 디버거 동작 탐지 -> 탐지시 관리 서버로 정보 전송 후 종료
- 사용 API 패턴 & 파라미터 분석
- 메모리 조작 여부 검사
- 탐지시 Win32 API 차단 후 프로세스 정보를 관리 서버로 전송 후 종료
시스템 와이드 후킹
메모리 조작 판단 여부를 검사하기 위해 사용
-> 보통 DLL로 구현
(동적 링크 라이브러리로, 프로그램이 동적으로 불러서 실행될 수 있는 파일 형식이다. 여러가지 함수들을 담고 있음)
시스템 와이드 후킹이란?
: 운영체제, 응용프로그램 또는 다른 소프트웨어 구성 요소의 동작을 변경하거나 확장하기 위해 함수 호출이나 메시지 또는 이벤트를 가로채는 일련의 기법 (이 논문의 경우에는 다른 소프트웨어)
기본 요구사항?
- DLL 참조 : 시스템 와이드 후킹을 설정하려면
SetWindowsHookEx()
명령에서 DLL을 참조해야함
- 후킹 콜백 절차 : 후킹 콜백 절차가 시스템의 각 후킹된 프로세스의 주소 공간에서 실행되어야함
=> 로더가 호출하는 Win32 API에 대해 모니터하여 메모리 조작이 행하여진다고 판단할 경우 시스템 와이드 훅을 사용해 로더가 사용하는 Win32 AI 기능을 무력화
=> 그래서 계속적인 패턴 관리가 필요
분석 도구 탐지 방법
- FindWindow API를 이용한 분석도구의 원도우 정보 비교
- CreateToolhelp32Snapshot, Proces32First/Next API를 이용
-> 분석 도구 프로세스가 사용하는 힘, 모듈, 쓰레드 정보 비교
- SetUnhandledExceptionFilter API를 이용한 예외처리 핸들러 이용
- IsDebuggerPresent API를 이용한 디버거 동작 여부 감지
오 이거 전에 푼 CTF에서 봤던거
- 분석 도구가 사용하는 고유 메모리 영역 / 파일 정보 비교
전송 데이터
전송 모듈 : 아래와 같은 수집 데이터들에 대한 전송
- 프로그램 실행 모듈 해쉬값
- 실행 모듈 / 프로세스 이름
- 프로그램 캡션 스트링 및 클래스 이름
- Win32 API 사용 데이터
관리 서버