API 모니터링 및 후킹

API 모니터링 및 후킹

저는 현재 "맬웨어 분석가의 요리책 및 DVD"를 읽고 있습니다. "동적 분석"에 대한 장이 있고 프로세스의 API 호출을 연결하고 모니터링하는 방법에 대한 몇 가지 팁이 있지만 이는 Windows용입니다.

레시피 9-10에 설명된 것과 동일한 작업을 수행하고 싶지만 Linux의 경우입니다. 그림 9-10은 "프로세스, 스레드 및 이미지 로딩 이벤트 캡처"라고 합니다. 이 영수증에는 "맬웨어 샘플이 실행되는 동안 시스템에서 이벤트가 발생할 때 경고하는 드라이버를 구현하는 방법"이 나와 있습니다. WDK(Windows Driver Kit) API 함수를 사용하여 사용자 정의 콜백 함수를 호출합니다. 콜백 함수를 사용합니다.

  • 프로세스 생성 콜백 함수는 PsSetCreateProcessNotifyRoutine(...)을 호출합니다.
  • 스레드 생성 콜백 함수는 PsSetCreateThreadNotifyRoutine(...)을 호출합니다.
  • 이미지 로딩 콜백 함수는 PsSetLoadImageNotifyRoutine(...)이라고 합니다.

이벤트가 발생하면 이를 디버그 메시지로 표시하고 DebugView 등에서 볼 수 있습니다.

Windows에는 좋은 문서가 있고 이에 대한 정보를 쉽게 찾을 수 있는 것 같지만 Linux에 대한 정보를 찾는 데 약간의 어려움이 있습니다.

드라이버에 대한 일반적인 소개와 후크에 대한 소개를 찾았지만 여전히 덜 일반적이거나 적어도 맬웨어 분석에 더 초점을 맞춘 소개는 찾지 못했습니다.

이 주제에 대해 더 자세히 읽을 수 있는 팁이나 권장 튜토리얼을 받아보고 싶습니다.

답변1

이 질문은 몇 년이 지났지만 여전히 관련성이 있습니다.
다음은 몇 가지 옵션입니다.

답변2

가장 쉬운 방법은 실행 중인 악성 코드 샘플을 사용하는 것입니다 strace.

strace추적 하에서 제공된 명령을 실행하고 애플리케이션 및 해당 인수에 의해 호출된 모든 시스템 호출을 표준 오류 또는 원하는 경우 파일로 출력합니다.

예를 들어, 새 프로세스나 스레드를 생성하는 모든 호출을 캡처하려면 다음을 실행할 수 있습니다.

strace -e trace=clone,fork -o trace.log -f malware
  • -e기록할 시스템 호출을 지정합니다. 지정하지 않으면 로그에 모든 시스템 호출이 표시됩니다.
  • -o추적이 기록될 파일을 지정하세요.
  • -f생성된 프로세스에 추적 연결

관련 정보