멀웨어 분석 기초

중급

악성 바이너리를 안전하게 분석하는 방법을 배웁니다. 정적 분석을 통해 문자열과 헤더 정보를 추출하고, 동적 분석 도구인 strace 와 ltrace 를 사용하여 실행 중인 시스템 및 라이브러리 호출을 모니터링하는 방법을 결합하여 실습합니다.

cybersecurity-engineercybersecurity

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

악성코드 분석 기초

통제된 환경에서 체계적인 방식으로 의심스러운 바이너리를 검사하며 악성코드 분석의 기초를 학습합니다. 보안 팀은 복구된 실행 파일에 대해 이것이 무엇인지, 어떤 동작을 수행하는지, 어떤 파일에 접근하는지, 그리고 얼마나 위험한지 등 즉각적인 질문에 답해야 하는 경우가 많습니다. 본 과정에서는 실무적인 Linux 도구를 활용하여 정적 및 동적 분석을 수행하고 이러한 질문에 대한 답을 얻는 방법을 배웁니다.

왜 중요한가

악성코드 분석이 항상 완전한 리버스 엔지니어링 (Reverse Engineering) 으로 시작되는 것은 아닙니다. 많은 경우, 가장 우선시되는 작업은 알 수 없는 바이너리를 빠르고 안전하게 분류 (Triage) 하는 것입니다. 이는 실행 전에 유용한 신호를 추출하고, 실행 후에는 위협을 이해할 수 있을 만큼 충분히 런타임 동작을 관찰하는 것을 의미합니다.

본 과정은 이러한 분류 워크플로우에 중점을 둡니다. 바이너리를 정적으로 검사하고, 시스템 및 라이브러리 활동을 동적으로 추적하며, 이러한 발견 사항들을 종합하여 동작과 의도를 명확하게 파악하는 방법을 학습합니다.

학습 내용

  • 바이너리를 실행하지 않고 정적 분석을 수행합니다.
  • 문자열 (Strings), 해시 (Hashes), 아키텍처 세부 정보 및 기타 유용한 악성코드 지표를 추출합니다.
  • strace를 사용하여 시스템 호출 (System calls) 과 관찰 가능한 런타임 동작을 모니터링합니다.
  • ltrace를 사용하여 라이브러리 수준의 동작과 숨겨진 프로그램 로직을 검사합니다.
  • 안전성과 유용한 통찰력 사이의 균형을 맞춘 기본적인 악성코드 분석 워크플로우를 구축합니다.

과정 로드맵

  • 정적 악성코드 분석: 실행 전 바이너리를 안전하게 검사하고 지표를 추출합니다.
  • strace 를 이용한 동적 분석: 시스템 호출 추적을 통해 파일, 프로세스 및 네트워크 동작을 관찰합니다.
  • ltrace 를 이용한 라이브러리 호출 추적: 라이브러리 상호작용을 검사하여 내부 프로그램 로직을 이해합니다.
  • 악성코드 리버스 엔지니어링 챌린지: 정적 및 동적 분석을 결합하여 복구된 의심스러운 바이너리를 조사합니다.

수강 대상

  • 악성코드 분석 및 사고 대응 (Incident Response) 분류를 시작하려는 학습자.
  • 바이너리 조사를 위한 실무적인 시작점이 필요한 보안 분석가.
  • 고급 리버싱으로 바로 뛰어들지 않고도 악성코드의 동작 방식을 이해하고자 하는 방어자.

학습 성과

본 과정을 마치면 의심스러운 바이너리를 더욱 안전하게 분석하고, 의미 있는 동작과 지표를 추출하며, 정적 및 동적 증거가 어떻게 악성코드 분류를 뒷받침하는지 설명할 수 있게 됩니다.

강사

labby
Labby
Labby is the LabEx teacher.