[논문 스터디] 윈도우 환경에서의 메모리 해킹 방지 시스템 연구(2)

흑흑코더·2023년 11월 18일
0

E-COPS

목록 보기
17/17
post-thumbnail

🤖 내용 정리


👀클라이언트 시스템

: 프로세스들의 행위를 실시간으로 모니터링

구성 모듈

  • 해쉬 생성 모듈 : MD5이용 -> 실행 파일에 대한 해쉬값 생성
  • 조작에 대한 탐지 및 방지 모듈 : Win32 API 패턴 기반
  • 분석 방지 모듈 :보호대상에 대한 디버거 등의 동작 감지
  • 전송 모듈 : 수집 데이터 전송

=> 에이전트와 별개의 프로그램으로 동작

🔎동작 절차

  1. 보안정책 초기화
  2. 해쉬값 생성
  3. 해쉬값 비교 후 차단 대상인지 검사
  4. 차단 대상일 경우 정보 관리서버로 전송 후 종료
  5. 보호 대상 프로세스로의 접근, 디버거 동작 탐지 -> 탐지시 관리 서버로 정보 전송 후 종료
  6. 사용 API 패턴 & 파라미터 분석
  7. 메모리 조작 여부 검사
  8. 탐지시 Win32 API 차단 후 프로세스 정보를 관리 서버로 전송 후 종료

시스템 와이드 후킹

메모리 조작 판단 여부를 검사하기 위해 사용
-> 보통 DLL로 구현
(동적 링크 라이브러리로, 프로그램이 동적으로 불러서 실행될 수 있는 파일 형식이다. 여러가지 함수들을 담고 있음)

시스템 와이드 후킹이란?
: 운영체제, 응용프로그램 또는 다른 소프트웨어 구성 요소의 동작을 변경하거나 확장하기 위해 함수 호출이나 메시지 또는 이벤트를 가로채는 일련의 기법 (이 논문의 경우에는 다른 소프트웨어)

기본 요구사항?

  • DLL 참조 : 시스템 와이드 후킹을 설정하려면 SetWindowsHookEx() 명령에서 DLL을 참조해야함
  • 후킹 콜백 절차 : 후킹 콜백 절차가 시스템의 각 후킹된 프로세스의 주소 공간에서 실행되어야함

=> 로더가 호출하는 Win32 API에 대해 모니터하여 메모리 조작이 행하여진다고 판단할 경우 시스템 와이드 훅을 사용해 로더가 사용하는 Win32 AI 기능을 무력화
=> 그래서 계속적인 패턴 관리가 필요

분석 도구 탐지 방법

  • FindWindow API를 이용한 분석도구의 원도우 정보 비교
  • CreateToolhelp32Snapshot, Proces32First/Next API를 이용
    -> 분석 도구 프로세스가 사용하는 힘, 모듈, 쓰레드 정보 비교
  • SetUnhandledExceptionFilter API를 이용한 예외처리 핸들러 이용
  • IsDebuggerPresent API를 이용한 디버거 동작 여부 감지
    오 이거 전에 푼 CTF에서 봤던거
  • 분석 도구가 사용하는 고유 메모리 영역 / 파일 정보 비교

전송 데이터

전송 모듈 : 아래와 같은 수집 데이터들에 대한 전송

  • 프로그램 실행 모듈 해쉬값
  • 실행 모듈 / 프로세스 이름
  • 프로그램 캡션 스트링 및 클래스 이름
  • Win32 API 사용 데이터

관리 서버

profile
공부합시다

0개의 댓글